i965/fs: Drop our dead push constants before overflowing to pull constants.
authorEric Anholt <eric@anholt.net>
Tue, 29 Oct 2013 00:00:23 +0000 (17:00 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 29 Oct 2013 20:43:01 +0000 (13:43 -0700)
commit774b787d6b7abe601309cf437b09b592fea0394d
tree788fb51d735d76205f3e991bfa6f65f8feb2c71b
parent9a9fb94ca99e05195f1faa747397bd26fb8f7cca
i965/fs: Drop our dead push constants before overflowing to pull constants.

The idea of the original order was that you'd dead code eliminate accesses
to push constants.  But I've never seen a case of that (nor has
shader-db), while we frequently see sparse accesses of large constant
arrays that would overflow into pull constants.

Cuts pull constant use on csgo, serious sam, planeshift, and the cave:

total instructions in shared programs: 1695103 -> 1688795 (-0.37%)
instructions in affected programs:     92024 -> 85716 (-6.85%)
GAINED:                                339
LOST:                                  0

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs.cpp