freedreno: pre-fs texture fetch
Since a4xx or so, the hardware has a feature where it can start doing simple 2D texture fetches before the FS invocation starts, when the texcoord comes directly from an unswizzled varying (ie.
varying.yz is ok, but
varying.yx is not). This MR enables this feature.
NOTE: at this point it gets thru manhattan without GPU hangs and seems to be work about +10% fps. Still quite a lot of cleanup to do, but opening a WIP to get a CI run. Current shader-db numbers:
total instructions in shared programs: 45038 -> 34665 (-23.03%) instructions in affected programs: 38234 -> 27861 (-27.13%) helped: 158 HURT: 43 total full in shared programs: 2345 -> 2396 (2.17%) full in affected programs: 1308 -> 1359 (3.90%) helped: 81 HURT: 92
there might be room to be a bit more clever about balancing register pressure