]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/program.cpp
Build the list of glUniform* calls even for SPIR-V modules
[libs/gl.git] / source / core / program.cpp
index 1a7ac17b3e99325d33918cebff6593b4c257a989..9193cd7be155b54a4f8b1fc8a87de974cc3d72b4 100644 (file)
@@ -32,20 +32,16 @@ void Program::add_stages(const Module &mod, const map<string, int> &spec_values)
                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())
                {