diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp')
-rw-r--r-- | 3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp b/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp index c4e7a03cccc..e91b86a935e 100644 --- a/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp +++ b/3rdparty/bgfx/3rdparty/glsl-optimizer/src/glsl/glsl_optimizer.cpp @@ -440,8 +440,12 @@ static bool propagate_precision(exec_list* list, bool assign_high_to_undefined) static void do_optimization_passes(exec_list* ir, bool linked, _mesa_glsl_parse_state* state, void* mem_ctx) { bool progress; + // FIXME: Shouldn't need to bound the number of passes + int passes = 0, + kMaximumPasses = 1000; do { progress = false; + ++passes; bool progress2; debug_print_ir ("Initial", ir, state, mem_ctx); if (linked) { @@ -497,7 +501,7 @@ static void do_optimization_passes(exec_list* ir, bool linked, _mesa_glsl_parse_ } delete ls; } - } while (progress); + } while (progress && passes < kMaximumPasses); if (!state->metal_target) { |