summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-06-30 14:28:38 -0700
committerEric Anholt <eric@anholt.net>2010-06-30 14:46:06 -0700
commit3e2127b9dea6fd0628c4d7cb9e338d83583d2729 (patch)
tree527f33a6a7ba4d967dfbee2032f2f460cc4d41d9 /src
parentc64da87611823b4b53e93188f861f748a69936a3 (diff)
mesa: Don't look in unallocatd param slots for parameter values.
glsl-derivs would add 40.0, 0.0, and 1.0 in order. When we went looking for 0.0, we'd find it in the second slot of the param, and use it, but param->Size would still be 1. When we went to add 1.0 and didn't find it, we'd put allocate it to that second slot and the 0.0 would actualy end up being 1.0. Fixes glsl-derivs, glsl-deriv-varyings.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/shader/prog_parameter.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/shader/prog_parameter.c b/src/mesa/shader/prog_parameter.c
index aac488c79a..ddbfe95c15 100644
--- a/src/mesa/shader/prog_parameter.c
+++ b/src/mesa/shader/prog_parameter.c
@@ -591,7 +591,7 @@ _mesa_lookup_parameter_constant(const struct gl_program_parameter_list *list,
if (vSize == 1) {
/* look for v[0] anywhere within float[4] value */
GLuint j;
- for (j = 0; j < 4; j++) {
+ for (j = 0; j < list->Parameters[i].Size; j++) {
if (list->ParameterValues[i][j] == v[0]) {
/* found it */
*posOut = i;