]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/opengl/program_backend.cpp
Remove support for array size specialization from the engine as well
[libs/gl.git] / source / backends / opengl / program_backend.cpp
index 911ce34e69fbf591ccd1950adea30ed91d6fda83..1fc8c4420556257c19a5611ce66b9d212b86da86 100644 (file)
@@ -162,7 +162,7 @@ void OpenGLProgram::compile_glsl_stage(const GlslModule &mod, unsigned stage_id)
 #endif
 }
 
-void OpenGLProgram::add_spirv_stages(const SpirVModule &mod, const map<string, int> &spec_values, TransientData &transient)
+void OpenGLProgram::add_spirv_stages(const SpirVModule &mod, const map<string, int> &spec_values)
 {
        static Require _req(ARB_gl_spirv);
        static Require _req2(ARB_ES2_compatibility);
@@ -201,7 +201,6 @@ void OpenGLProgram::add_spirv_stages(const SpirVModule &mod, const map<string, i
                {
                        spec_id_array.push_back(c.constant_id);
                        spec_value_array.push_back(i->second);
-                       transient.spec_values[c.constant_id] = i->second;
                }
        }
 
@@ -493,6 +492,12 @@ void OpenGLProgram::finalize_uniforms()
                                if(func)
                                        uniform_calls.push_back(UniformCall(u->location, u->array_size, func));
                        }
+
+               if(i->data_size<=0)
+               {
+                       const ReflectData::UniformInfo &last = *i->uniforms.back();
+                       i->data_size = last.location*16+last.array_size*get_type_size(last.type);
+               }
        }
 }