The piglit vp-address-01 test uses negative address-relative offsets. In this test we're indexing into PROGRAM_STATE_VAR which, in turn, contains references to ENV vars. We previously fixed this issue for PROGRAM_CONSTANT. piglit/vp-address-01 (the version from Feb 5) passes now.tags/mesa-7.7-4
@@ -172,13 +172,13 @@ src_register( struct st_translate *t, | |||
t->temps[index] = ureg_DECL_temporary( t->ureg ); | |||
return ureg_src(t->temps[index]); | |||
case PROGRAM_STATE_VAR: | |||
case PROGRAM_NAMED_PARAM: | |||
case PROGRAM_ENV_PARAM: | |||
case PROGRAM_LOCAL_PARAM: | |||
case PROGRAM_UNIFORM: | |||
ASSERT(index >= 0); | |||
return t->constants[index]; | |||
case PROGRAM_STATE_VAR: | |||
case PROGRAM_CONSTANT: /* ie, immediate */ | |||
if (index < 0) | |||
return ureg_DECL_constant( t->ureg, 0 ); |