i965/fs: Fix stride for multiply in macro.
authorMatt Turner <mattst88@gmail.com>
Fri, 24 Apr 2015 18:28:04 +0000 (11:28 -0700)
committerMatt Turner <mattst88@gmail.com>
Mon, 27 Apr 2015 21:44:32 +0000 (14:44 -0700)
We have to use W/UW type for src1 of the multiply in the MUL/MACH macro,
but in order to read the low 16-bits of each 32-bit integer, we need to
set the appropriate stride.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp

index cf59570922ff4c87e75aefa34f6887c0718f6562..f37fdea6978eddb9502851784874caa8c50426f9 100644 (file)
@@ -916,8 +916,10 @@ fs_visitor::visit(ir_expression *ir)
                 mul->src[1].type == BRW_REGISTER_TYPE_UD);
          if (mul->src[1].type == BRW_REGISTER_TYPE_D) {
             mul->src[1].type = BRW_REGISTER_TYPE_W;
+            mul->src[1].stride = 2;
          } else {
             mul->src[1].type = BRW_REGISTER_TYPE_UW;
+            mul->src[1].stride = 2;
          }
       }