i965/vs: Implement register spilling.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 1 Oct 2012 22:28:56 +0000 (15:28 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 10 Oct 2012 20:22:56 +0000 (13:22 -0700)
commit9237f0ea8d176fb5dcd41868dcc723fe34f6b1f3
tree2f8e4d42694eb4dfd4392afc5be847406706216b
parent46e529672bb124b78eb454cbf55c72074ef6d35c
i965/vs: Implement register spilling.

To validate this code, I ran piglit -t vs quick.tests with the "go spill
everything" debugging code enabled.  There was only one regression:
glsl-vs-unroll-explosion simply ran out of registers.  This should be
fine in the real world, since no one actually spills every single
register.

NOTE: This is a candidate for the 9.0 branch. Even if it proves to have
bugs, it's likely better than simply failing to compile.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_vec4.h
src/mesa/drivers/dri/i965/brw_vec4_emit.cpp
src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp