mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
aco/insert_exec_mask: ensure top mask is not a temporary at loop exits
This is problematic when the successor of the loop exit is an invert block. It assumes that the top mask is Operand(bld.lm) and doesn't change it when entering the else branch. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11348 Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29767>
This commit is contained in:
parent
5c6c8182c8
commit
71afacff39
1 changed files with 1 additions and 0 deletions
|
|
@ -270,6 +270,7 @@ add_coupling_code(exec_ctx& ctx, Block* block, std::vector<aco_ptr<Instruction>>
|
|||
for (unsigned i = 1; i < phi->operands.size(); i++)
|
||||
phi->operands[i] =
|
||||
get_exec_op(ctx.info[header_preds[i]].exec[info.num_exec_masks - 1].first);
|
||||
restore_exec = true;
|
||||
}
|
||||
|
||||
if (info.has_divergent_break) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue