throw invalid_shader_source(get_diagnostics());
unsigned n = 0;
- for(list<Stage>::iterator i=module->stages.begin(); (i!=module->stages.end() && n<10000); ++n)
+ for(list<Stage>::iterator i=module->stages.begin(); i!=module->stages.end(); ++n)
{
OptimizeResult result = optimize(*i);
if(result==REDO_PREVIOUS)
bool Compiler::validate(Stage &stage)
{
+ TypeValidator().apply(stage);
DeclarationValidator().apply(stage);
ReferenceValidator().apply(stage);
to become unused. */
bool any_removed = UnusedVariableRemover().apply(stage);
any_removed |= UnusedFunctionRemover().apply(stage);
+ any_removed |= UnusedTypeRemover().apply(stage);
return any_removed ? REDO_PREVIOUS : any_inlined ? REDO_STAGE : NEXT_STAGE;
}