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 <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36572>
This commit is contained in:
Gert Wollny 2024-05-03 23:27:03 +02:00 committed by Marge Bot
parent 070f56237f
commit ed04848770

View file

@ -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;
}