throw invalid_argument("Program::add_stages");
}
- finalize(mod);
+ finalize(mod, transient);
- if(mod.get_format()==Module::GLSL)
- {
- query_uniforms();
- query_attributes();
- apply_bindings(transient);
- }
- else if(mod.get_format()==Module::SPIR_V)
+ if(mod.get_format()==Module::SPIR_V)
{
collect_uniforms(static_cast<const SpirVModule &>(mod), transient.spec_values);
collect_attributes(static_cast<const SpirVModule &>(mod));
}
+ finalize_uniforms();
+
for(ReflectData::UniformBlockInfo &b: reflect_data.uniform_blocks)
if(!b.data_size && !b.uniforms.empty())
{