st/mesa: fix indirect addressing of input/output regs

This fixes an issue that was missed with commit
9f544394c1.
Fixes piglit glsl-texcoord-array.shader_test
This commit is contained in:
Brian Paul
2010-06-02 17:37:42 -06:00
parent 14b7fdb8ac
commit dfe9dec04f
+9 -4
View File
@@ -319,10 +319,15 @@ translate_src( struct st_translate *t,
if (SrcReg->RelAddr) {
src = ureg_src_indirect( src, ureg_src(t->address[0]));
/* If SrcReg->Index was negative, it was set to zero in
* src_register(). Reassign it now.
*/
src.Index = SrcReg->Index;
if (SrcReg->File != PROGRAM_INPUT &&
SrcReg->File != PROGRAM_OUTPUT) {
/* If SrcReg->Index was negative, it was set to zero in
* src_register(). Reassign it now. But don't do this
* for input/output regs since they get remapped while
* const buffers don't.
*/
src.Index = SrcReg->Index;
}
}
return src;