]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/compiler.cpp
Implement constant folding in the GLSL compiler
[libs/gl.git] / source / glsl / compiler.cpp
index 3516048ca7e62ae9fa83dc52c0f14a7fb0329745..e9933e2f9b67c4ec414999438a9e8c1c0ec60ba9 100644 (file)
@@ -214,7 +214,6 @@ void Compiler::append_stage(Stage &stage)
                target->required_features.glsl_version = stage.required_features.glsl_version;
        for(NodeList<Statement>::iterator i=stage.content.body.begin(); i!=stage.content.body.end(); ++i)
                target->content.body.push_back(*i);
-       DeclarationCombiner().apply(*target);
 }
 
 void Compiler::import(DataFile::Collection *resources, const string &name)
@@ -319,6 +318,8 @@ bool Compiler::diagnostic_line_order(const Diagnostic &diag1, const Diagnostic &
 
 Compiler::OptimizeResult Compiler::optimize(Stage &stage)
 {
+       if(ConstantFolder().apply(stage))
+               resolve(stage, RESOLVE_EXPRESSIONS);
        ConstantConditionEliminator().apply(stage);
 
        bool any_inlined = false;