Mesa (master): freedreno/ir3: run nir_opt_loop_unroll in optimization loop

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jul 10 00:06:40 UTC 2020


Module: Mesa
Branch: master
Commit: ffb6eb6d5df7a227bedae31376f826099b4c00b9
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffb6eb6d5df7a227bedae31376f826099b4c00b9

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Sat Jul  4 17:46:24 2020 -0400

freedreno/ir3: run nir_opt_loop_unroll in optimization loop

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 at marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5818>

---

 .gitlab-ci/deqp-freedreno-a630-fails.txt | 1 -
 src/freedreno/ir3/ir3_nir.c              | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci/deqp-freedreno-a630-fails.txt b/.gitlab-ci/deqp-freedreno-a630-fails.txt
index 1b6b0fce2a5..daf0960d63b 100644
--- a/.gitlab-ci/deqp-freedreno-a630-fails.txt
+++ b/.gitlab-ci/deqp-freedreno-a630-fails.txt
@@ -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
diff --git a/src/freedreno/ir3/ir3_nir.c b/src/freedreno/ir3/ir3_nir.c
index 903f136860b..74013aa3bd1 100644
--- a/src/freedreno/ir3/ir3_nir.c
+++ b/src/freedreno/ir3/ir3_nir.c
@@ -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);



More information about the mesa-commit mailing list