mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
nir/opt_loop_unroll: Fix has_nested_loop handling
In87839680c0, a very subtle mistake was made with the CFG walking recursion. Instead of setting the local has_nested_loop variable when process child loops, has_nested_loop_out was passed directly into the process_loop_in_block call. This broke nested loop detection heuristics and caused loop unrolling to run massively out of control. In particular, it makes the following CTS test compile virtually forever: dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.struct_mixed_types.uniform_buffer_block_geom Fixes:87839680c0"nir: Fix breakage of foreach_list_typed_safe..." Closes: #2710 Reviewed-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4380> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4380>
This commit is contained in:
parent
92afe94d28
commit
b113170559
1 changed files with 1 additions and 1 deletions
|
|
@ -851,7 +851,7 @@ process_loops(nir_shader *sh, nir_cf_node *cf_node, bool *has_nested_loop_out,
|
|||
}
|
||||
case nir_cf_node_loop: {
|
||||
loop = nir_cf_node_as_loop(cf_node);
|
||||
progress |= process_loops_in_block(sh, &loop->body, has_nested_loop_out);
|
||||
progress |= process_loops_in_block(sh, &loop->body, &has_nested_loop);
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue