From b2df9c2f886887d1408b0fbaad89ec5ec7dde36e Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Wed, 23 Sep 2020 23:56:35 +0200 Subject: [PATCH] r600/sfn: Fix emitting shared atomics with constant sources Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp b/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp index 6807eb9deee..c8c9abaef55 100644 --- a/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp @@ -1071,14 +1071,10 @@ bool AssemblyFromShaderLegacyImpl::emit_ldsatomic(const LDSAtomicInstruction& in alu_fetch.op = instr.op(); copy_src(alu_fetch.src[0], instr.address()); - auto& src0 = instr.src0(); - alu_fetch.src[1].sel = src0.sel(); - alu_fetch.src[1].chan = src0.chan(); - if (instr.src1()) { - auto& src1 = *instr.src1(); - alu_fetch.src[2].sel = src1.sel(); - alu_fetch.src[2].chan = src1.chan(); - } + copy_src(alu_fetch.src[1], instr.src0()); + + if (instr.src1()) + copy_src(alu_fetch.src[2], *instr.src1()); alu_fetch.last = 1; int r = r600_bytecode_add_alu(m_bc, &alu_fetch); if (r)