From ed048487700c93bdfe5cfb15ebd05792d3cdf2ab Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Fri, 3 May 2024 23:27:03 +0200 Subject: [PATCH] r600/sfn: update readports before trying to schedule group instrutions We only do minimal checks to ensure that copy propagation doesn't break the readport setup, but we don't update the groups readport setup. So before scheduling the group do this update. Also check the readport constellation when scheduling a group is finished. Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_scheduler.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp index e1f03d01ff7..301b9fb42f7 100644 --- a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp @@ -552,6 +552,7 @@ BlockScheduler::schedule_alu(Shader::ShaderBlocks& out_blocks) * fetch + read from queue has to be in the same ALU CF block */ if (!alu_groups_ready.empty() && !has_lds_ready && !has_ar_read_ready) { group = *alu_groups_ready.begin(); + group->update_readport_reserver(); if (!check_array_reads(*group)) { @@ -687,7 +688,7 @@ BlockScheduler::schedule_alu(Shader::ShaderBlocks& out_blocks) assert(m_current_block->expected_ar_uses() == 0); start_new_block(out_blocks, Block::alu); } - + group->update_readport_reserver(); return success; }