i965/fs: Reduce the interference between payload regs and virtual GRFs.
authorEric Anholt <eric@anholt.net>
Tue, 2 Oct 2012 22:01:24 +0000 (15:01 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 17 Oct 2012 20:01:57 +0000 (13:01 -0700)
commita087e9f27f088c4bd00b2fddb65629c83d404860
treec7c74410e686ce09cab6b1b11a4c58e9fedd45af
parent551e1cd44f6857f7e29ea4c8f892da5a97844377
i965/fs: Reduce the interference between payload regs and virtual GRFs.

Improves performance of the Lightsmark penumbra shadows scene by 15.7% +/-
1.0% (n=15), by eliminating register spilling. (tested by smashing the list of
scenes to have all other scenes have 0 duration -- includes additional
rendering of scene description text that normally doesn't appear in that
scene)

v2: Allow allocation of all but g0/g1 of the payload.
v3: Pull count_to_loop_end() out to a helper function.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (v2, recommended v3)
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp