aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2010-08-23 10:57:54 -0700
committerEric Anholt <[email protected]>2010-08-23 11:03:13 -0700
commitebef04011736ea8e13692fed87623d425c4d1b08 (patch)
tree029d9665da23193ba460f03909c4443b2af4ed01
parent61f73fec532b24ef5ec4b5baef81f5e6b9f20918 (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.cpp1
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;