i965/vs: Keep track of indices into a per-register array for virtual GRFs.
authorEric Anholt <eric@anholt.net>
Thu, 1 Sep 2011 15:34:18 +0000 (08:34 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 9 Sep 2011 04:40:39 +0000 (21:40 -0700)
commit87b51fc4a807616eaab0c4b38e41c328c08875e3
treefdce6c8d131e2a330acd972de195003758de0b04
parentd7c6c8428c9908047c88f2672cd1edf6ba60f785
i965/vs: Keep track of indices into a per-register array for virtual GRFs.

Tracking virtual GRFs has tension between using a packed array per
virtual GRF (which is good for register allocation), and sparse arrays
where there's an element per actual register (so the first and second
column of a mat2 can be distinguished inside of an optimization pass).

The FS mostly avoided the need for this second sparse array by doing
virtual GRF splitting, but that meant that instances where virtual GRF
splitting didn't work, instructions using those registers got much
less optimized.
src/mesa/drivers/dri/i965/brw_vec4.h
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp