ir_to_mesa: Load all the STATE_VAR elements of a builtin uniform to a temp.
authorEric Anholt <eric@anholt.net>
Wed, 1 Sep 2010 23:06:32 +0000 (16:06 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 2 Sep 2010 00:08:23 +0000 (17:08 -0700)
commit5ad74779cea07cc6a19a52874cdaef8b018e2f1b
tree1e9e0a11b93ba87bfd23983cb14e83b82caf90e5
parent500e7b75995460537b0e682e5bde4c32eb40b85c
ir_to_mesa: Load all the STATE_VAR elements of a builtin uniform to a temp.

Like the constant handling and the handling of other uniforms, we add
the whole thing to the Parameters, avoiding messy, incomplete logic
for adding just the elements of a builting uniform that get used.
This means that a driver that relies only on ParameterValues[] for its
parameters will have an increased parameter load, but drivers
generally don't do that (since they have other params they need to
handle, too).

Fixes glsl-fs-statevar-call (testcase for Ember).  Bug #29687.

Regresses glsl-vs-array-04 on 965.  Thanks to a slight change in
register allocation, this test of undefined behavior now wraps around
the register space and unexpectedly reads the constant value it's
trying to compare to.  The test should probably not look at the
resulting color, since behavior is undefined.
src/mesa/program/ir_to_mesa.cpp