summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2016-01-13 20:33:15 -0800
committerKenneth Graunke <[email protected]>2016-02-09 17:01:45 -0800
commitd56ae2d1605fc1b5a3fdf5aba9aefc3c7692a4ba (patch)
tree3f05b681c25adf0fdff03956989904cc2d519252 /include
parentcac54d7987ce1b878d41160f6429fb38e85a603c (diff)
i965: Apply VS attribute workarounds in NIR.
This patch re-implements the pre-Haswell VS attribute workarounds. Instead of emitting shader code in the vec4 backend, we now simply call a NIR pass to emit the necessary code. This simplifies the vec4 backend. Beyond deleting code, it removes the primary use of ATTR as a destination. It also eliminates the requirement that the vec4 VS backend express the ATTR file in terms of VERT_ATTRIB_* locations, giving us a bit more flexibility. This approach is a little different: rather than munging the attributes at the top, we emit code to fix them up when they're accessed. However, we run the optimizer afterwards, so CSE should eliminate the redundant math. It may even be able to fuse it with other calculations based on the input value. shader-db does not handle non-default NOS settings, so I have no statistics about this patch. Note that the scalar backend does not implement VS attribute workarounds, as they are unnecessary on hardware which allows SIMD8 VS. v2: Do one multiply for FIXED rescaling and select components from either the original or scaled copy, rather than multiplying each component separately (suggested by Matt Turner). Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Chris Forbes <[email protected]>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions