summaryrefslogtreecommitdiff
path: root/src/compiler/glsl/propagate_invariance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/glsl/propagate_invariance.cpp')
-rw-r--r--src/compiler/glsl/propagate_invariance.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/glsl/propagate_invariance.cpp b/src/compiler/glsl/propagate_invariance.cpp
index b3f1d810cdb..2673fa16378 100644
--- a/src/compiler/glsl/propagate_invariance.cpp
+++ b/src/compiler/glsl/propagate_invariance.cpp
@@ -113,13 +113,17 @@ ir_invariance_propagation_visitor::visit(ir_dereference_variable *ir)
return visit_continue;
}
-void
+bool
propagate_invariance(exec_list *instructions)
{
ir_invariance_propagation_visitor visitor;
+ bool progress = false;
do {
visitor.progress = false;
visit_list_elements(&visitor, instructions);
+ progress = progress || visitor.progress;
} while (visitor.progress);
+
+ return progress;
}