summaryrefslogtreecommitdiff
path: root/src/mesa/shader/prog_execute.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/shader/prog_execute.c')
-rw-r--r--src/mesa/shader/prog_execute.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mesa/shader/prog_execute.c b/src/mesa/shader/prog_execute.c
index 28d195d0ee..bd64b57eb9 100644
--- a/src/mesa/shader/prog_execute.c
+++ b/src/mesa/shader/prog_execute.c
@@ -1316,22 +1316,22 @@ _mesa_execute_program(GLcontext * ctx,
* The rest of the time, just use zero (until we get a more
* sophisticated way of computing lambda).
*/
+ const GLuint unit = machine->Samplers[inst->TexSrcUnit];
GLfloat coord[4], color[4], lambda;
#if 0
if (inst->SrcReg[0].File == PROGRAM_INPUT &&
- inst->SrcReg[0].Index == FRAG_ATTRIB_TEX0 + inst->TexSrcUnit)
- lambda = span->array->lambda[inst->TexSrcUnit][column];
+ inst->SrcReg[0].Index == FRAG_ATTRIB_TEX0 + unit)
+ lambda = span->array->lambda[unit][column];
else
#endif
lambda = 0.0;
fetch_vector4(&inst->SrcReg[0], machine, coord);
- machine->FetchTexelLod(ctx, coord, lambda, inst->TexSrcUnit,
- color);
+ machine->FetchTexelLod(ctx, coord, lambda, unit, color);
if (DEBUG_PROG) {
printf("TEX (%g, %g, %g, %g) = texture[%d][%g, %g, %g, %g], "
"lod %f\n",
color[0], color[1], color[2], color[3],
- inst->TexSrcUnit,
+ unit,
coord[0], coord[1], coord[2], coord[3], lambda);
}
store_vector4(inst, machine, color);
@@ -1375,11 +1375,12 @@ _mesa_execute_program(GLcontext * ctx,
case OPCODE_TXP: /* GL_ARB_fragment_program only */
/* Texture lookup w/ projective divide */
{
+ const GLuint unit = machine->Samplers[inst->TexSrcUnit];
GLfloat texcoord[4], color[4], lambda;
#if 0
if (inst->SrcReg[0].File == PROGRAM_INPUT &&
inst->SrcReg[0].Index == FRAG_ATTRIB_TEX0 + inst->TexSrcUnit)
- lambda = span->array->lambda[inst->TexSrcUnit][column];
+ lambda = span->array->lambda[unit][column];
else
#endif
lambda = 0.0;
@@ -1393,8 +1394,7 @@ _mesa_execute_program(GLcontext * ctx,
texcoord[1] /= texcoord[3];
texcoord[2] /= texcoord[3];
}
- machine->FetchTexelLod(ctx, texcoord, lambda,
- inst->TexSrcUnit, color);
+ machine->FetchTexelLod(ctx, texcoord, lambda, unit, color);
store_vector4(inst, machine, color);
}
break;