From: Gert Wollny Date: Tue, 1 Aug 2023 08:29:34 +0000 (+0200) Subject: r600/sfn: Only switch to other CF if no AR uses are pending X-Git-Tag: upstream/23.3.3~4786 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5b75d86df9d478bfeb3ba4253b0ad50558f04785;p=platform%2Fupstream%2Fmesa.git 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: d617052db6b2f359d7242875013603ec63b069fc r600/sfn: take address loads into account when scheduling Signed-off-by: Gert Wollny Part-of: --- diff --git a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp index 9502016..b34bd5c 100644 --- a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp @@ -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)