- if(get_gl_api()==OPENGL_ES2 && mode==PROGRAM)
- DefaultPrecisionGenerator().apply(stage);
- else if(mode==MODULE)
- PrecisionRemover().apply(stage);
+ if(mode==PROGRAM)
+ {
+ LegacyConverter().apply(stage, features);
+ resolve(stage, RESOLVE_VARIABLES|RESOLVE_FUNCTIONS);
+ PrecisionConverter().apply(stage);
+ }
+ else if(mode==SPIRV)
+ StructOrganizer().apply(stage);
+
+ // Collect bindings from all stages into the shared stage's maps
+ module->shared.texture_bindings.insert(stage.texture_bindings.begin(), stage.texture_bindings.end());
+ module->shared.uniform_block_bindings.insert(stage.uniform_block_bindings.begin(), stage.uniform_block_bindings.end());