panfrost: Rewrite varying linking
This has been my experiment for the past few days: the existing linking code is a mess making a lot of assumptions that aren't really true (and especially won't be in ES3.2 land). The main motivation - beyond a good ol' cleanup - is properly supporting varyings smaller than 16 bytes, by using the appropriate number of vector channels and precision. In the most extreme case, a shader that only declares varying mediump float v;
will go from 16 bytes/vertex to 2 bytes/vertex, an 8x savings. To get there cleanly takes quite a bit of greasing, unfortunately.
Cc @bbrezillon