X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fglsl%2Fcompiler.cpp;h=7021c62d9a2949c9459e6fa183955829bf04f469;hb=5bc24ab4e232241a9e4696787e22f2cb0c3602d8;hp=0ad41dfac46c2de102c827e17fa550b421166f3e;hpb=8f2713a3f1501e90016bb8069ecd08dde2f90e56;p=libs%2Fgl.git diff --git a/source/glsl/compiler.cpp b/source/glsl/compiler.cpp index 0ad41dfa..7021c62d 100644 --- a/source/glsl/compiler.cpp +++ b/source/glsl/compiler.cpp @@ -323,6 +323,7 @@ void Compiler::validate(Stage &stage) IdentifierValidator().apply(stage); ReferenceValidator().apply(stage); ExpressionValidator().apply(stage); + FlowControlValidator().apply(stage); StageInterfaceValidator().apply(stage); } @@ -372,7 +373,8 @@ Compiler::OptimizeResult Compiler::optimize(Stage &stage) /* Removing variables or functions may cause things from the previous stage to become unused. */ - bool any_removed = UnusedVariableRemover().apply(stage); + bool any_removed = UnreachableCodeRemover().apply(stage); + any_removed |= UnusedVariableRemover().apply(stage); any_removed |= UnusedFunctionRemover().apply(stage); any_removed |= UnusedTypeRemover().apply(stage);