i956: Set the execution size correctly for scratch space writes.
authorEric Anholt <eric@anholt.net>
Wed, 21 Jul 2010 22:54:53 +0000 (15:54 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 22 Jul 2010 03:17:24 +0000 (20:17 -0700)
Otherwise, the second half isn't written, and we end up reading back
black.

Fixes the remaining junk drawn in glsl-max-varyings, and will likely
help with a number of large real-world shaders.

src/mesa/drivers/dri/i965/brw_eu_emit.c

index 7164a22560ef9c7a891c55e469de2b848700dee1..7cda28a4674d6fd240e16ca2c0c8a507c1655108 100644 (file)
@@ -1091,10 +1091,10 @@ void brw_dp_WRITE_16( struct brw_compile *p,
        * spilling within a thread.
        */
       if (intel->gen >= 6) {
-        dest = retype(brw_null_reg(), BRW_REGISTER_TYPE_UW);
+        dest = retype(vec16(brw_null_reg()), BRW_REGISTER_TYPE_UW);
         send_commit_msg = 0;
       } else {
-        dest = retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UW);
+        dest = brw_uw16_grf(0, 0);
         send_commit_msg = 1;
       }