i965: Set the destination horiz stride even for da16, as SNB seems to need it.
authorZhenyu Wang <zhenyuw@linux.intel.com>
Fri, 20 Aug 2010 22:01:11 +0000 (15:01 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 20 Aug 2010 23:17:40 +0000 (16:17 -0700)
src/mesa/drivers/dri/i965/brw_eu_emit.c
src/mesa/drivers/dri/i965/brw_structs.h

index 0d5d17f501d45692b5b0672fc267114548dd9bd7..523f119f435cca6f9650361702313badcc41f607 100644 (file)
@@ -75,6 +75,8 @@ static void brw_set_dest( struct brw_instruction *insn,
       else {
         insn->bits1.da16.dest_subreg_nr = dest.subnr / 16;
         insn->bits1.da16.dest_writemask = dest.dw1.bits.writemask;
+        /* even ignored in da16, still need to set as '01' */
+        insn->bits1.da16.dest_horiz_stride = 1;
       }
    }
    else {
@@ -90,6 +92,8 @@ static void brw_set_dest( struct brw_instruction *insn,
       }
       else {
         insn->bits1.ia16.dest_indirect_offset = dest.dw1.bits.indirect_offset;
+        /* even ignored in da16, still need to set as '01' */
+        insn->bits1.ia16.dest_horiz_stride = 1;
       }
    }
 
index 1d6018fa36e1b7a17b16211ba1b5fc850a3305d9..cdd2998627f9525c39f95bb6612ed5644edd4c58 100644 (file)
@@ -1360,7 +1360,7 @@ struct brw_instruction
         GLuint dest_writemask:4;
         GLuint dest_subreg_nr:1;
         GLuint dest_reg_nr:8;
-        GLuint pad1:2;
+        GLuint dest_horiz_stride:2;
         GLuint dest_address_mode:1;
       } da16;
 
@@ -1374,7 +1374,7 @@ struct brw_instruction
         GLuint dest_writemask:4;
         GLint dest_indirect_offset:6;
         GLuint dest_subreg_nr:3;
-        GLuint pad1:2;
+        GLuint dest_horiz_stride:2;
         GLuint dest_address_mode:1;
       } ia16;
    } bits1;