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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user