i965/vs: Fix types of varying outputs.
authorEric Anholt <eric@anholt.net>
Sat, 6 Aug 2011 03:54:25 +0000 (20:54 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 16 Aug 2011 20:04:42 +0000 (13:04 -0700)
For structs/arrays/matrices, they were ending up as uint because we
forgot to set them.  All varyings in GLSL 1.20 are of base type float,
so just force the matter here (which gets inherited at
emit_urb_writes() time).

Fixes vs-varying-array-mat2-col-rd.

src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp

index 4f7763d61bb4c2d570eadda5aa9d113fad0e66dd..5e2b3e5a5feac250192666241ac54335371836c6 100644 (file)
@@ -646,6 +646,7 @@ vec4_visitor::visit(ir_variable *ir)
       for (int i = 0; i < type_size(ir->type); i++) {
         output_reg[ir->location + i] = *reg;
         output_reg[ir->location + i].reg_offset = i;
+        output_reg[ir->location + i].type = BRW_REGISTER_TYPE_F;
       }
       break;