From 80efb6369a5574fadfa942f760605d376559523b Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Fri, 30 Apr 2021 23:26:37 +0200 Subject: [PATCH] r600/sfn: Fix Cayman SSBO write with more than one value Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.cpp b/src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.cpp index 33b0e6b5702..8db6bd7bb45 100644 --- a/src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_emitssboinstruction.cpp @@ -350,7 +350,7 @@ bool EmitSSBOInstruction::emit_store_ssbo(const nir_intrinsic_instr* instr) m_store_ops.push_back(store); for (unsigned i = 1; i < nir_src_num_components(instr->src[0]); ++i) { - emit_instruction(new AluInstruction(op1_mov, temp2.reg_i(0), from_nir(instr->src[0], i), write)); + emit_instruction(new AluInstruction(op1_mov, temp2.reg_i(0), from_nir(instr->src[0], i), get_chip_class() == CAYMAN ? last_write : write)); emit_instruction(new AluInstruction(op2_add_int, addr_vec.reg_i(0), {addr_vec.reg_i(0), Value::one_i}, last_write)); store = new RatInstruction(cf_op, RatInstruction::STORE_TYPED,