summaryrefslogtreecommitdiff
path: root/src/mesa/main/atifragshader.c
diff options
context:
space:
mode:
authorBenjamin Segovia <benjamin.segovia@intel.com>2010-07-25 21:30:19 -0700
committerEric Anholt <eric@anholt.net>2010-07-26 13:08:25 -0700
commita64def5f2ae1336cafff64a782ec5314d31c310f (patch)
tree384f052b7d92b34ed2726518068a2cea04cbe57e /src/mesa/main/atifragshader.c
parente4aa9440d9a71a04e9122588191d0357cc5e0c18 (diff)
i965: Improve (i.e. remove) some grf-to-mrf unnecessary moves
Several routines directly analyze the grf-to-mrf moves from the Gen binary code. When it is possible, the mov is removed and the message register is directly written in the arithmetic instruction Also redundant mrf-to-grf moves are removed (frequently for example, when sampling many textures with the same uv) Code was tested with piglit, warsow and nexuiz on an Ironlake machine. No regression was found there Note that the optimizations are *deactivated* on Gen4 and Gen6 since I did test them properly yet. No reason there are bugs but who knows The optimizations are currently done in branch free programs *only*. Considering branches is more complicated and there are actually two paths: one for branch free programs and one for programs with branches Also some other optimizations should be done during the emission itself but considering that some code is shader between vertex shaders (AOS) and pixel shaders (SOA) and that we may have branches or not, it is pretty hard to both factorize the code and have one good set of strategies
Diffstat (limited to 'src/mesa/main/atifragshader.c')
0 files changed, 0 insertions, 0 deletions