r600/sfn: Only switch to other CF if no AR uses are pending

Otherwise we end up with an incorrect array load (or an assertion failure).

Fixes: d617052db6
    r600/sfn: take address loads into account when scheduling

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24454>
This commit is contained in:
Gert Wollny
2023-08-01 10:29:34 +02:00
committed by Marge Bot
parent b1ce5fe20a
commit 5b75d86df9
@@ -357,7 +357,8 @@ BlockScheduler::schedule_block(Block& in_block,
sfn_log << SfnLog::schedule << " MEM_OPS:" << mem_ring_writes_ready.size()
<< "\n";
if (!m_current_block->lds_group_active()) {
if (!m_current_block->lds_group_active() &&
m_current_block->expected_ar_uses() == 0) {
if (last_shed != sched_free && memops_ready.size() > 8)
current_shed = sched_free;
else if (mem_ring_writes_ready.size() > 15)