freedreno/ir3: run nir_opt_loop_unroll in optimization loop
authorJonathan Marek <jonathan@marek.ca>
Sat, 4 Jul 2020 21:46:24 +0000 (17:46 -0400)
committerMarge Bot <eric+marge@anholt.net>
Thu, 9 Jul 2020 23:30:33 +0000 (23:30 +0000)
GL driver was relying on this being done by gallium, but there might be
new loops to unroll during optimizations and turnip needs it.

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5818>

.gitlab-ci/deqp-freedreno-a630-fails.txt
src/freedreno/ir3/ir3_nir.c

index 1b6b0fce2a5381de88eb792deb86803336f0f8d6..daf0960d63ba85a4eba04c902f760ef5c3eb2f2f 100644 (file)
@@ -8,7 +8,6 @@ dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3
 dEQP-VK.glsl.derivate.fwidthfine.uniform_loop.vec3_mediump
 dEQP-VK.glsl.linkage.varying.struct.mat3x2
 dEQP-VK.graphicsfuzz.mat-array-deep-control-flow
-dEQP-VK.pipeline.spec_constant.compute.composite.array.mat4x3
 dEQP-VK.pipeline.spec_constant.graphics.geometry.composite.array.array_vec4
 dEQP-VK.pipeline.spec_constant.graphics.vertex.composite.array.mat4x3
 dEQP-VK.renderpass2.dedicated_allocation.formats.d24_unorm_s8_uint.input.load.store.self_dep_draw_stencil_read_only
index 903f136860b26548a4f47629777625e05cda5ffc..74013aa3bd1255353766f78d3a81c032fc7e191d 100644 (file)
@@ -194,6 +194,7 @@ ir3_optimize_loop(nir_shader *s)
                        OPT(s, nir_opt_dce);
                }
                progress |= OPT(s, nir_opt_if, false);
+               progress |= OPT(s, nir_opt_loop_unroll, nir_var_all);
                progress |= OPT(s, nir_opt_remove_phis);
                progress |= OPT(s, nir_opt_undef);
        } while (progress);