diff options
author | Eric Anholt <[email protected]> | 2010-08-23 10:57:54 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2010-08-23 11:03:13 -0700 |
commit | ebef04011736ea8e13692fed87623d425c4d1b08 (patch) | |
tree | 029d9665da23193ba460f03909c4443b2af4ed01 | |
parent | 61f73fec532b24ef5ec4b5baef81f5e6b9f20918 (diff) |
ir_to_mesa: Fix constant array handling to return the temp we created.
We ended up returning CONST[loc] rather than TEMP[loc2]. Things would
*usually* end up working out OK, since the constants often ended up
getting allocated to CONST[loc..loc+columns] with no swizzle. But for
the case where the contigous temporary copy of the swizzled constant
vec4 args was actually needed, we'd end up reading some other constant
values, possibly including ones not actually allocated.
Fixes: glsl-varying-mat3x2.
-rw-r--r-- | src/mesa/program/ir_to_mesa.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 676f68e5a02..17ebdbb220b 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -1817,6 +1817,7 @@ ir_to_mesa_visitor::visit(ir_constant *ir) } this->result = mat; + return; } src_reg.file = PROGRAM_CONSTANT; |