aco/insert_exec: reset temporary when recreating wqm mask from exact mask

The old, now incorrect temporary was still used for invert blocks and loop masks.

Foz-DB Navi31:
Totals from 379 (0.48% of 79789) affected shaders:
Instrs: 399471 -> 399897 (+0.11%); split: -0.00%, +0.11%
CodeSize: 2197292 -> 2198908 (+0.07%); split: -0.00%, +0.08%
Latency: 2500636 -> 2500895 (+0.01%); split: -0.00%, +0.01%
SClause: 7912 -> 7918 (+0.08%); split: -0.04%, +0.11%
Copies: 25687 -> 26068 (+1.48%); split: -0.04%, +1.53%
PreSGPRs: 15648 -> 15562 (-0.55%)
SALU: 35125 -> 35517 (+1.12%)

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12901
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13019
Fixes: b872ff6ef2 ("aco/insert_exec_mask: if applicable, use s_wqm to restore exec after divergent CF")
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34659>
(cherry picked from commit dd3e1190a2bdbc6b996152510407adb9a8cb5618)
This commit is contained in:
Georg Lehmann
2025-04-22 19:34:12 +02:00
committed by Eric Engestrom
parent 4fb4880183
commit 3d9ac270e2
2 changed files with 2 additions and 1 deletions

View File

@@ -4,7 +4,7 @@
"description": "aco/insert_exec: reset temporary when recreating wqm mask from exact mask",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "b872ff6ef28bc44ac0f7aa5f963a273e40c79a61",
"notes": null

View File

@@ -378,6 +378,7 @@ add_coupling_code(exec_ctx& ctx, Block* block, std::vector<aco_ptr<Instruction>>
*/
bld.sop1(Builder::s_wqm, Definition(exec, bld.lm), bld.def(s1, scc),
ctx.info[idx].exec[0].op);
ctx.info[idx].exec[1].op = Operand(exec, bld.lm);
restore_exec = false;
ctx.had_demote_in_cf = false;
}