From fbded04e3b31fdc690aaa254dcd1577a225dff11 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Thu, 28 Aug 2025 23:56:39 +0200 Subject: [PATCH] r600/sfn: Add method to query whether an ALU group sets the predicate Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_instr_alugroup.cpp | 11 +++++++++++ src/gallium/drivers/r600/sfn/sfn_instr_alugroup.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_alugroup.cpp b/src/gallium/drivers/r600/sfn/sfn_instr_alugroup.cpp index fa05fbd675f..c778be43b15 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_alugroup.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_instr_alugroup.cpp @@ -135,6 +135,17 @@ AluGroup::add_trans_instructions(AluInstr *instr) return false; } +bool +AluGroup::require_push() const +{ + for (auto& i : m_slots) { + if (i) + if (i->cf_type() == cf_alu_push_before) + return true; + } + return false; +} + bool AluGroup::add_vec_instructions(AluInstr *instr) { diff --git a/src/gallium/drivers/r600/sfn/sfn_instr_alugroup.h b/src/gallium/drivers/r600/sfn/sfn_instr_alugroup.h index 3892bc800c9..e694c9e520a 100644 --- a/src/gallium/drivers/r600/sfn/sfn_instr_alugroup.h +++ b/src/gallium/drivers/r600/sfn/sfn_instr_alugroup.h @@ -87,6 +87,8 @@ public: AluGroup *as_alu_group() override { return this;} + bool require_push() const; + private: bool update_readport_reserver_vec(int i, AluReadportReservation& readports_evaluator); bool update_readport_reserver_trans(AluReadportReservation& readports_evaluator);