From a34003d4720fff4dc7c82978dc1f67cb3ab78ef7 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Wed, 5 Oct 2022 15:05:40 +0200 Subject: [PATCH] r600/sfn: Always enforce LDS operation order Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_instr_lds.cpp | 1 + src/gallium/drivers/r600/sfn/tests/sfn_test_shaders.cpp | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_lds.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_lds.cpp index b6590a5fe5d..8b42bc9371e 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_lds.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_lds.cpp @@ -278,6 +278,7 @@ AluInstr *LDSAtomicInstr::split(std::vector& out_block, AluInstr *la if (last_lds_instr) { op_instr->add_required_instr(last_lds_instr); } + last_lds_instr = op_instr; out_block.push_back(op_instr); if (m_dest) { diff --git a/src/gallium/drivers/r600/sfn/tests/sfn_test_shaders.cpp b/src/gallium/drivers/r600/sfn/tests/sfn_test_shaders.cpp index b95829a145f..82a3f8a756f 100644 --- a/src/gallium/drivers/r600/sfn/tests/sfn_test_shaders.cpp +++ b/src/gallium/drivers/r600/sfn/tests/sfn_test_shaders.cpp @@ -2637,9 +2637,6 @@ ALU_GROUP_END ALU_GROUP_BEGIN ALU ADD_INT S12.x@chan : L[0x8] S10.x@free {WL} ALU_GROUP_END -ALU_GROUP_BEGIN - ALU LDS WRITE_REL __.x : S12.x@chan I[0] I[1.0] {L} -ALU_GROUP_END BLOCK_END BLOCK_START LOAD_BUF S5.xyzw : S4.x@group + 96b RID:0 @@ -2648,6 +2645,9 @@ BLOCK_START ALU_GROUP_BEGIN ALU LDS WRITE_REL __.x : S10.x@free S5.x@group S5.y@group {L} ALU_GROUP_END +ALU_GROUP_BEGIN + ALU LDS WRITE_REL __.x : S12.x@chan I[0] I[1.0] {L} +ALU_GROUP_END BLOCK_END)"; const char *tcs_nir =