i965/fs: Manually set source regioning on PLN instructions.
authorMatt Turner <mattst88@gmail.com>
Tue, 7 Apr 2015 04:46:54 +0000 (21:46 -0700)
committerMatt Turner <mattst88@gmail.com>
Tue, 21 Apr 2015 16:24:48 +0000 (09:24 -0700)
Like LINE (commit 92346db0), src0 must have a scalar region. Setting
src1's region to <8,8,1> lets us pass a properly sized combined delta_xy
argument in a few commits without getting a bogus <16,16,1> region.

Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/drivers/dri/i965/brw_eu_emit.c

index 44b9ffb1d4eb8963142b125ead32ee90fc22251c..b9faf3641cc5e5cefe1543606baaac4ad2479ee2 100644 (file)
@@ -1008,7 +1008,6 @@ ALU2(DP4)
 ALU2(DPH)
 ALU2(DP3)
 ALU2(DP2)
-ALU2(PLN)
 ALU3F(MAD)
 ALU3F(LRP)
 ALU1(BFREV)
@@ -1112,6 +1111,19 @@ brw_LINE(struct brw_compile *p, struct brw_reg dest,
    return brw_alu2(p, BRW_OPCODE_LINE, dest, src0, src1);
 }
 
+brw_inst *
+brw_PLN(struct brw_compile *p, struct brw_reg dest,
+        struct brw_reg src0, struct brw_reg src1)
+{
+   src0.vstride = BRW_VERTICAL_STRIDE_0;
+   src0.width = BRW_WIDTH_1;
+   src0.hstride = BRW_HORIZONTAL_STRIDE_0;
+   src1.vstride = BRW_VERTICAL_STRIDE_8;
+   src1.width = BRW_WIDTH_8;
+   src1.hstride = BRW_HORIZONTAL_STRIDE_1;
+   return brw_alu2(p, BRW_OPCODE_PLN, dest, src0, src1);
+}
+
 brw_inst *
 brw_F32TO16(struct brw_compile *p, struct brw_reg dst, struct brw_reg src)
 {