]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/optimize.cpp
Improve support for interface blocks
[libs/gl.git] / source / glsl / optimize.cpp
index 1f5b5d317c720993b91f2dbc5dd8fb880417cd7c..1ebb87c5c2ea23360c33917104745273de6d8da0 100644 (file)
@@ -160,7 +160,7 @@ void ConstantConditionEliminator::visit(Assignment &assign)
 
 void ConstantConditionEliminator::visit(VariableDeclaration &var)
 {
-       if(var.constant || current_block->parent)
+       if((var.constant || current_block->parent) && var.init_expression)
                variable_values[&var] = var.init_expression.get();
 }
 
@@ -264,6 +264,11 @@ void UnusedVariableRemover::visit(VariableReference &var)
        }
 }
 
+void UnusedVariableRemover::visit(InterfaceBlockReference &iface)
+{
+       unused_nodes.erase(iface.declaration);
+}
+
 void UnusedVariableRemover::visit(MemberAccess &memacc)
 {
        TraversingVisitor::visit(memacc);