From 96acd6d9761ee235b61c44286be035e3c019bf97 Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Mon, 11 Aug 2025 14:44:17 +0200 Subject: [PATCH] r600/sfn: When splitting an ALU CF update possible start of next CF Without this update a very long ALU block may not be splitted as required and lowering to assembly may fail because the maximum supported length of a ALU CF is overrun. Fixes: 6aafa2bb490 ("r600/sfn: Split ALU blocks in scheduler to fit into 128 slots") Signed-off-by: Gert Wollny Part-of: (cherry picked from commit 63c801e8c266802ad2e1c9ee7371188cd45a72d3) --- .pick_status.json | 2 +- src/gallium/drivers/r600/sfn/sfn_scheduler.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index ce0d3101e63..3da09bc422e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2774,7 +2774,7 @@ "description": "r600/sfn: When splitting an ALU CF update possible start of next CF", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "6aafa2bb4903db20269b3062dfa73b3fe781facd", "notes": null diff --git a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp index 483f281f984..2a8eb6ace22 100644 --- a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp @@ -788,6 +788,7 @@ void BlockScheduler::maybe_split_alu_block(Shader::ShaderBlocks& out_blocks) next_block_start->set_instr_flag(Instr::force_cf); used_slots = pending_slots; pending_slots = cur_group->slots(); + next_block_start = cur_group; } }