From c6443eb1a38946437fe38123f600ed9944a9bb70 Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 3 May 2007 12:33:25 -0600 Subject: [PATCH] fix some matrix/state token indexing bugs (see bug 10848) --- src/mesa/drivers/dri/r300/r300_vertprog.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/r300/r300_vertprog.c b/src/mesa/drivers/dri/r300/r300_vertprog.c index 52fd1de4495..e8917980ba5 100644 --- a/src/mesa/drivers/dri/r300/r300_vertprog.c +++ b/src/mesa/drivers/dri/r300/r300_vertprog.c @@ -883,10 +883,11 @@ static void position_invariant(struct gl_program *prog) gl_state_index tokens[STATE_LENGTH] = { STATE_MVP_MATRIX, 0, 0, 0, 0 }; + /* tokens[4] = matrix modifier */ #ifdef PREFER_DP4 - tokens[5] = STATE_MATRIX; + tokens[4] = 0; /* not transposed or inverted */ #else - tokens[5] = STATE_MATRIX_TRANSPOSE; + tokens[4] = STATE_MATRIX_TRANSPOSE; #endif paramList = prog->Parameters; @@ -895,7 +896,7 @@ static void position_invariant(struct gl_program *prog) for (i=0; i < 4; i++) { GLint idx; - tokens[3] = tokens[4] = i; + tokens[2] = tokens[3] = i; /* matrix row[i]..row[i] */ idx = _mesa_add_state_reference(paramList, tokens); #ifdef PREFER_DP4 vpi[i].Opcode = OPCODE_DP4; -- 2.30.2