[Mesa-dev] [PATCH 3/6] glsl: Drop do_common_optimization's max_unroll_iterations parameter.

Kenneth Graunke kenneth at whitecape.org
Tue Apr 8 20:51:51 PDT 2014


Now that we pass in gl_shader_compiler_options, it makes sense to just
use options->MaxUnrollIterations, rather than passing a separate
parameter.

Half of the invocations already passed options->MaxUnrollIterations,
while the other half passed in a hardcoded value of 32.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/glsl/glsl_parser_extras.cpp            | 5 ++---
 src/glsl/ir_optimization.h                 | 1 -
 src/glsl/linker.cpp                        | 4 +---
 src/glsl/test_optpass.cpp                  | 5 ++---
 src/mesa/drivers/dri/i965/brw_shader.cpp   | 2 +-
 src/mesa/main/ff_fragment_shader.cpp       | 2 +-
 src/mesa/program/ir_to_mesa.cpp            | 1 -
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 4 +---
 8 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/src/glsl/glsl_parser_extras.cpp b/src/glsl/glsl_parser_extras.cpp
index a42f3d2..1fcd5f8 100644
--- a/src/glsl/glsl_parser_extras.cpp
+++ b/src/glsl/glsl_parser_extras.cpp
@@ -1444,7 +1444,7 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
       /* Do some optimization at compile time to reduce shader IR size
        * and reduce later work if the same shader is linked multiple times
        */
-      while (do_common_optimization(shader->ir, false, false, 32, options,
+      while (do_common_optimization(shader->ir, false, false, options,
                                     ctx->Const.NativeIntegers))
          ;
 
@@ -1492,7 +1492,6 @@ _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *shader,
 bool
 do_common_optimization(exec_list *ir, bool linked,
 		       bool uniform_locations_assigned,
-		       unsigned max_unroll_iterations,
                        const struct gl_shader_compiler_options *options,
                        bool native_integers)
 {
@@ -1543,7 +1542,7 @@ do_common_optimization(exec_list *ir, bool linked,
    loop_state *ls = analyze_loop_variables(ir);
    if (ls->loop_found) {
       progress = set_loop_controls(ir, ls) || progress;
-      progress = unroll_loops(ir, ls, max_unroll_iterations) || progress;
+      progress = unroll_loops(ir, ls, options->MaxUnrollIterations) || progress;
    }
    delete ls;
 
diff --git a/src/glsl/ir_optimization.h b/src/glsl/ir_optimization.h
index 665124a..40bb613 100644
--- a/src/glsl/ir_optimization.h
+++ b/src/glsl/ir_optimization.h
@@ -66,7 +66,6 @@ enum lower_packing_builtins_op {
 
 bool do_common_optimization(exec_list *ir, bool linked,
 			    bool uniform_locations_assigned,
-			    unsigned max_unroll_iterations,
                             const struct gl_shader_compiler_options *options,
                             bool native_integers);
 
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 7c194a2..c8dc066 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -2296,10 +2296,8 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
          lower_clip_distance(prog->_LinkedShaders[i]);
       }
 
-      unsigned max_unroll = ctx->ShaderCompilerOptions[i].MaxUnrollIterations;
-
       while (do_common_optimization(prog->_LinkedShaders[i]->ir, true, false,
-                                    max_unroll, &ctx->ShaderCompilerOptions[i],
+                                    &ctx->ShaderCompilerOptions[i],
                                     ctx->Const.NativeIntegers))
 	 ;
    }
diff --git a/src/glsl/test_optpass.cpp b/src/glsl/test_optpass.cpp
index 79fb17a..db5cb26 100644
--- a/src/glsl/test_optpass.cpp
+++ b/src/glsl/test_optpass.cpp
@@ -62,9 +62,8 @@ do_optimization(struct exec_list *ir, const char *optimization,
    int int_3;
    int int_4;
 
-   if (sscanf(optimization, "do_common_optimization ( %d , %d ) ",
-              &int_0, &int_1) == 2) {
-      return do_common_optimization(ir, int_0 != 0, false, int_1, options, true);
+   if (sscanf(optimization, "do_common_optimization ( %d ) ", &int_0) == 1) {
+      return do_common_optimization(ir, int_0 != 0, false, options, true);
    } else if (strcmp(optimization, "do_algebraic") == 0) {
       return do_algebraic(ir, true);
    } else if (strcmp(optimization, "do_constant_folding") == 0) {
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 7a6cd7c..c32e66c 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -200,7 +200,7 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
 				   false /* loops */
 				   ) || progress;
 
-	 progress = do_common_optimization(shader->base.ir, true, true, 32,
+	 progress = do_common_optimization(shader->base.ir, true, true,
                                            options, ctx->Const.NativeIntegers)
 	   || progress;
       } while (progress);
diff --git a/src/mesa/main/ff_fragment_shader.cpp b/src/mesa/main/ff_fragment_shader.cpp
index e41dcef..66c18fa 100644
--- a/src/mesa/main/ff_fragment_shader.cpp
+++ b/src/mesa/main/ff_fragment_shader.cpp
@@ -1344,7 +1344,7 @@ create_new_program(struct gl_context *ctx, struct state_key *key)
    const struct gl_shader_compiler_options *options =
       &ctx->ShaderCompilerOptions[MESA_SHADER_FRAGMENT];
 
-   while (do_common_optimization(p.shader->ir, false, false, 32, options,
+   while (do_common_optimization(p.shader->ir, false, false, options,
                                  ctx->Const.NativeIntegers))
       ;
    reparent_ir(p.shader->ir, p.shader->ir);
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 675e58e..59cf123 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -3007,7 +3007,6 @@ _mesa_ir_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
 	 progress = do_lower_jumps(ir, true, true, options->EmitNoMainReturn, options->EmitNoCont, options->EmitNoLoops) || progress;
 
 	 progress = do_common_optimization(ir, true, true,
-					   options->MaxUnrollIterations,
                                            options, ctx->Const.NativeIntegers)
 	   || progress;
 
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 28e8f1e..edd0aa7 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -5357,9 +5357,7 @@ st_link_shader(struct gl_context *ctx, struct gl_shader_program *prog)
 
          progress = do_lower_jumps(ir, true, true, options->EmitNoMainReturn, options->EmitNoCont, options->EmitNoLoops) || progress;
 
-         progress = do_common_optimization(ir, true, true,
-					   options->MaxUnrollIterations,
-                                           options,
+         progress = do_common_optimization(ir, true, true, options,
                                            ctx->Const.NativeIntegers)
 	   || progress;
 
-- 
1.9.1



More information about the mesa-dev mailing list