From 586ba9c2234cadba8f74eae30f7bca1601970512 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Thu, 8 Dec 2022 12:14:29 +0100 Subject: [PATCH] r600/sfn: implement GDS op channel mask evaluation Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp | 5 +++++ src/gallium/drivers/r600/sfn/sfn_instr_mem.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp index 457ee011992..4e3be66eae2 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp @@ -111,6 +111,11 @@ GDSInstr::emit_atomic_counter(nir_intrinsic_instr *intr, Shader& shader) } } +uint8_t GDSInstr::allowed_src_chan_mask() const +{ + return m_src.free_chan_mask(); +} + static ESDOp get_opcode(const nir_intrinsic_op opcode) { diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_mem.h b/src/gallium/drivers/r600/sfn/sfn_instr_mem.h index 4e9b0c1e168..5c05cc70dc0 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_mem.h +++ b/src/gallium/drivers/r600/sfn/sfn_instr_mem.h @@ -57,6 +57,7 @@ public: static bool emit_atomic_counter(nir_intrinsic_instr *intr, Shader& shader); uint32_t slots() const override { return 1; }; + uint8_t allowed_src_chan_mask() const override; private: static bool emit_atomic_read(nir_intrinsic_instr *intr, Shader& shader);