On Mon, Jul 28, 2014 at 8:47 PM, Anuj Phogat <anuj.pho...@gmail.com> wrote: > Fixes Khronos GLES3 CTS test: > dynamic_expression_array_access_vertex > > Cc: <mesa-sta...@lists.freedesktop.org> > Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> > --- > I don't have a test case though it might be useful to also include > the check for VS_OPCODE_URB_WRITE here? > > 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 390448a..5a684a0 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 || > --
I think the thing to do here is to prevent scratch writes from having source modifiers. They're sends from MRFs, so adding it to is_send_from_grf seems wrong. I'd add it to the list in brw_shader.cpp:can_do_source_mods. VS_OPCODE_URB_WRITE shouldn't need any of this. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev