Mesa (master): glsl: don't run loop passes if loop unrolling is disabled

Marek Olšák mareko at kemper.freedesktop.org
Thu Nov 10 17:47:18 UTC 2016


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Fri Nov  4 12:57:53 2016 +0100

glsl: don't run loop passes if loop unrolling is disabled

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/compiler/glsl/glsl_parser_extras.cpp | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp
index db659adf..0cb3c12 100644
--- a/src/compiler/glsl/glsl_parser_extras.cpp
+++ b/src/compiler/glsl/glsl_parser_extras.cpp
@@ -2108,12 +2108,14 @@ do_common_optimization(exec_list *ir, bool linked,
    OPT(optimize_split_arrays, ir, linked);
    OPT(optimize_redundant_jumps, ir);
 
-   loop_state *ls = analyze_loop_variables(ir);
-   if (ls->loop_found) {
-      OPT(set_loop_controls, ir, ls);
-      OPT(unroll_loops, ir, ls, options);
+   if (options->MaxUnrollIterations) {
+      loop_state *ls = analyze_loop_variables(ir);
+      if (ls->loop_found) {
+         OPT(set_loop_controls, ir, ls);
+         OPT(unroll_loops, ir, ls, options);
+      }
+      delete ls;
    }
-   delete ls;
 
 #undef OPT
 




More information about the mesa-commit mailing list