From 7c1ea00eafc882b67784e6cfd8ee46a7c6fc05dc Mon Sep 17 00:00:00 2001 From: Anuj Phogat Date: Mon, 28 Jul 2014 15:41:55 -0700 Subject: [PATCH] i965: Bail on vec4 copy propagation for scratch writes with source modifiers Fixes Khronos GLES3 CTS test: dynamic_expression_array_access_vertex Cc: Signed-off-by: Anuj Phogat Reviewed-by: Matt Turner --- src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp index 28f162df5ba..37ca661d561 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp @@ -273,6 +273,10 @@ try_copy_propagate(struct brw_context *brw, vec4_instruction *inst, if (has_source_modifiers && value.type != inst->src[arg].type) return false; + if (has_source_modifiers && + inst->opcode == SHADER_OPCODE_GEN4_SCRATCH_WRITE) + return false; + bool is_3src_inst = (inst->opcode == BRW_OPCODE_LRP || inst->opcode == BRW_OPCODE_MAD || inst->opcode == BRW_OPCODE_BFE || -- 2.30.2