From: Eric Anholt Date: Tue, 27 Dec 2016 20:29:09 +0000 (-0800) Subject: vc4: Enable NIR-based loop unrolling. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=63e7671c7e65f9df1678d3d79c92f358ae0bdc82;p=mesa.git 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. --- 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 *