diff options
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/main/ffvertex_prog.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c index 7a099b2376..a627a21f65 100644 --- a/src/mesa/main/ffvertex_prog.c +++ b/src/mesa/main/ffvertex_prog.c @@ -305,7 +305,7 @@ static struct state_key *make_state_key( GLcontext *ctx )   * generated program with line/function references for each   * instruction back into this file:   */ -#define DISASSEM 1 +#define DISASSEM (MESA_VERBOSE&VERBOSE_DISASSEM)  /* Should be tunable by the driver - do we want to do matrix   * multiplications with DP4's or with MUL/MAD's?  SSE works better @@ -687,9 +687,11 @@ static void emit_normalize_vec3( struct tnl_program *p,  				 struct ureg dest,  				 struct ureg src )  { -   emit_op2(p, OPCODE_DP3, dest, WRITEMASK_X, src, src); -   emit_op1(p, OPCODE_RSQ, dest, WRITEMASK_X, dest); -   emit_op2(p, OPCODE_MUL, dest, 0, src, swizzle1(dest, X)); +   struct ureg tmp = get_temp(p); +   emit_op2(p, OPCODE_DP3, tmp, WRITEMASK_X, src, src); +   emit_op1(p, OPCODE_RSQ, tmp, WRITEMASK_X, tmp); +   emit_op2(p, OPCODE_MUL, dest, 0, src, swizzle1(tmp, X)); +   release_temp(p, tmp);  }  static void emit_passthrough( struct tnl_program *p,  | 
