From 63e7671c7e65f9df1678d3d79c92f358ae0bdc82 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 27 Dec 2016 12:29:09 -0800 Subject: [PATCH] vc4: Enable NIR-based loop unrolling. This successfully unrolls a new shader in GLB2.7, which also gets that shader to successfully compile in multithreaded mode. --- src/gallium/drivers/vc4/vc4_program.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 611c90d7bc3..54692bc73f9 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -1540,6 +1540,10 @@ vc4_optimize_nir(struct nir_shader *s) NIR_PASS(progress, s, nir_opt_algebraic); NIR_PASS(progress, s, nir_opt_constant_folding); NIR_PASS(progress, s, nir_opt_undef); + NIR_PASS(progress, s, nir_opt_loop_unroll, + nir_var_shader_in | + nir_var_shader_out | + nir_var_local); } while (progress); } @@ -2155,6 +2159,7 @@ static const nir_shader_compiler_options nir_options = { .lower_fsqrt = true, .lower_negate = true, .native_integers = true, + .max_unroll_iterations = 32, }; const void * -- 2.30.2