Skip to content

freedreno: pre-fs texture fetch

Rob Clark requested to merge robclark/mesa:wip/elima/tex-prefetch into master

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

Edited by Rob Clark

Merge request reports