ir_to_mesa: Set the swizzle on constant struct src regs.
authorEric Anholt <eric@anholt.net>
Tue, 27 Jul 2010 17:39:40 +0000 (10:39 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 27 Jul 2010 17:41:01 +0000 (10:41 -0700)
MESA_GLSL=nopt now produces believable output for glsl-fs-raytrace.

src/mesa/program/ir_to_mesa.cpp

index defacc7fdc4f724db032a308096a45b51fdfccc2..5cc999c2e35d85e2041305748a4230748bb1e7f5 100644 (file)
@@ -1389,6 +1389,7 @@ ir_to_mesa_visitor::visit(ir_constant *ir)
 
    if (ir->type->base_type == GLSL_TYPE_STRUCT) {
       ir_to_mesa_src_reg temp_base = get_temp(ir->type);
+      temp_base.swizzle = SWIZZLE_NOOP;
       ir_to_mesa_dst_reg temp = ir_to_mesa_dst_reg_from_src(temp_base);
 
       foreach_iter(exec_list_iterator, iter, ir->components) {