diff --git a/.pick_status.json b/.pick_status.json index 0b66bc4fbb2..f523c7ee3cd 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -10318,7 +10318,7 @@ "description": "r600/sfn: Don't tag mem-ring and stream instructions as exports", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "79ca456b4837b3bc21cf9ef3c03c505c4b4909f6" }, diff --git a/src/gallium/drivers/r600/sfn/sfn_liverangeevaluator.cpp b/src/gallium/drivers/r600/sfn/sfn_liverangeevaluator.cpp index cd8b113bd53..277e1e392c3 100644 --- a/src/gallium/drivers/r600/sfn/sfn_liverangeevaluator.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_liverangeevaluator.cpp @@ -308,14 +308,14 @@ void LiveRangeInstrVisitor::visit(StreamOutInstr *instr) { sfn_log << SfnLog::merge << "Visit " << *instr << "\n"; auto src = instr->value(); - record_read(src, LiveRangeEntry::use_export); + record_read(src, LiveRangeEntry::use_unspecified); } void LiveRangeInstrVisitor::visit(MemRingOutInstr *instr) { sfn_log << SfnLog::merge << "Visit " << *instr << "\n"; auto src = instr->value(); - record_read(src, LiveRangeEntry::use_export); + record_read(src, LiveRangeEntry::use_unspecified); auto idx = instr->export_index(); if (idx && idx->as_register()) diff --git a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp index 6c95c778695..a8c0d3665b4 100644 --- a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp @@ -329,7 +329,7 @@ void BlockSheduler::schedule_block(Block& in_block, Shader::ShaderBlocks& out_bl if (!m_current_block->lds_group_active()) { if (last_shed != sched_free && memops_ready.size() > 8) current_shed = sched_free; - else if (mem_ring_writes_ready.size() > 5) + else if (mem_ring_writes_ready.size() > 15) current_shed = sched_mem_ring; else if (rat_instr_ready.size() > 3) current_shed = sched_rat;