[Mesa-dev] [PATCH 74/95] i965/vec4: do not split scratch read/write opcodes

Iago Toral Quiroga itoral at igalia.com
Tue Jul 19 10:41:11 UTC 2016


64-bit scratch read/writes require to shuffle data around so we need
to have access to the full 64-bit data. We will do the right thing
for these when we emit the messages.
---
 src/mesa/drivers/dri/i965/brw_vec4.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index 9672b2c..99b30ce 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -2036,6 +2036,15 @@ get_lowered_simd_width(const struct brw_device_info *devinfo,
    if (devinfo->gen != 7 || inst->regs_written < 2)
       return inst->exec_size;
 
+   /* Do not split some instructions that require special handling */
+   switch (inst->opcode) {
+   case SHADER_OPCODE_GEN4_SCRATCH_READ:
+   case SHADER_OPCODE_GEN4_SCRATCH_WRITE:
+      return inst->exec_size;
+   default:
+      break;
+   }
+
    unsigned lowered_width = MIN2(8, inst->exec_size);
 
    /* Align16 8-wide double-precision bcsel does not work well. Verified
-- 
2.7.4



More information about the mesa-dev mailing list