summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Arceri <timothy.arceri@collabora.com>2017-01-18 13:12:37 +1100
committerTimothy Arceri <t_arceri@yahoo.com.au>2017-01-25 09:43:29 +1100
commitdd65f0efc91418bbafd5cc4b63840b5a734d43d1 (patch)
tree33ea2eaa194dff3886d69043bdde474f89970ebe
parent34ab9b0947cdc1f035ca8379a92677b66ec604a5 (diff)
nir: bump loop max unroll limit
The original number was chosen in an attempt to match the limits applied to GLSL IR. A look at the git history of the why these limits were chosen for GLSL IR shows it was more to do with the slow speed of unrolling large loops in GLSL IR than anything else. The speed of loop unrolling in NIR is not a problem so we may wish to bump this even higher in future. No shader-db change, however a furture change will disbale the GLSL IR optimisation loop in the i965 backend results in 4 loops from The Talos Principle failing to unroll. Bumping the limit allows them to unroll which results in the instruction count matching the previous output from when the GLSL IR opts were still enabled. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
-rw-r--r--src/compiler/nir/nir_opt_loop_unroll.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/nir/nir_opt_loop_unroll.c b/src/compiler/nir/nir_opt_loop_unroll.c
index 2c19980c742..37cbced43dd 100644
--- a/src/compiler/nir/nir_opt_loop_unroll.c
+++ b/src/compiler/nir/nir_opt_loop_unroll.c
@@ -460,7 +460,7 @@ is_loop_small_enough_to_unroll(nir_shader *shader, nir_loop_info *li)
return true;
bool loop_not_too_large =
- li->num_instructions * li->trip_count <= max_iter * 25;
+ li->num_instructions * li->trip_count <= max_iter * 26;
return loop_not_too_large;
}