Commit 1ee2ad58 authored by Hyunjun Ko's avatar Hyunjun Ko Committed by Marge Bot

freedreno/ir3: enable nir_opt_loop_unroll on a6xx

If precision lowering happens at GLSL IR, loop_analysis at IR doesn't
work as expected since it can't handle things like:

"(expression bool < (expression float16_t f2fmp (var_ref ndx) ) (constant float16_t (1.000000)) )"

So we'd rather do this optimization at the NIR stage.
Reviewed-by: Alyssa Rosenzweig's avatarAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Kristian H. Kristensen's avatarKristian H. Kristensen <hoegsberg@google.com>
Part-of: <!3885>
parent 61f7a1df
...@@ -116,6 +116,7 @@ static const nir_shader_compiler_options options_a6xx = { ...@@ -116,6 +116,7 @@ static const nir_shader_compiler_options options_a6xx = {
.vectorize_io = true, .vectorize_io = true,
.lower_to_scalar = true, .lower_to_scalar = true,
.has_imul24 = true, .has_imul24 = true,
.max_unroll_iterations = 32,
}; };
const nir_shader_compiler_options * const nir_shader_compiler_options *
...@@ -207,7 +208,6 @@ ir3_optimize_loop(nir_shader *s) ...@@ -207,7 +208,6 @@ ir3_optimize_loop(nir_shader *s)
progress |= OPT(s, nir_opt_if, false); progress |= OPT(s, nir_opt_if, false);
progress |= OPT(s, nir_opt_remove_phis); progress |= OPT(s, nir_opt_remove_phis);
progress |= OPT(s, nir_opt_undef); progress |= OPT(s, nir_opt_undef);
} while (progress); } while (progress);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment