aco/insert_exec: reset top exec for p_discard_if

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12363
Fixes: 31f62a6123 ("aco/insert_exec: don't always reset top exec")
(cherry picked from commit 272ff275fa)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32852>
This commit is contained in:
Georg Lehmann
2025-01-02 12:27:11 +01:00
committed by Dylan Baker
parent d72bf5b122
commit cd01162e81
2 changed files with 2 additions and 1 deletions

View File

@@ -4,7 +4,7 @@
"description": "aco/insert_exec: reset top exec for p_discard_if",
"nominated": true,
"nomination_type": 2,
"resolution": 0,
"resolution": 3,
"main_sha": null,
"because_sha": "31f62a6123d46311bed7a54dc10e518bbe4c5f8d",
"notes": null

View File

@@ -467,6 +467,7 @@ process_instructions(exec_ctx& ctx, Block* block, std::vector<aco_ptr<Instructio
exit_cond = andn2->definitions[1].getTemp();
}
info.exec.back().op = Operand(exec, bld.lm);
instr->opcode = aco_opcode::p_exit_early_if;
instr->operands[0] = bld.scc(exit_cond);
assert(!ctx.handle_wqm || (info.exec[0].type & mask_type_wqm) == 0);