X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fprogram.cpp;fp=source%2Fcore%2Fprogram.cpp;h=66fbb7af61179a7ccb64554f24afb3bb5ac26868;hb=fee6115b609b8726b50a1f9169d50e8f68170b75;hp=72eb03d8d92dcf233ee20a5fddd3d9127d7f6ab4;hpb=0a096b9bc02a67ea4a27645907c6b9d1fbdaae85;p=libs%2Fgl.git diff --git a/source/core/program.cpp b/source/core/program.cpp index 72eb03d8..66fbb7af 100644 --- a/source/core/program.cpp +++ b/source/core/program.cpp @@ -57,13 +57,18 @@ void Program::collect_uniforms(const SpirVModule &mod) for(const SpirVModule::Variable &v: mod.get_variables()) { - if(v.storage==SpirVModule::UNIFORM && v.struct_type) + if((v.storage==SpirVModule::UNIFORM || v.storage==SpirVModule::PUSH_CONSTANT) && v.struct_type) { reflect_data.uniform_blocks.push_back(ReflectData::UniformBlockInfo()); ReflectData::UniformBlockInfo &info = reflect_data.uniform_blocks.back(); info.name = v.struct_type->name; - info.bind_point = v.binding; - info.descriptor_set = v.descriptor_set; + if(v.storage==SpirVModule::PUSH_CONSTANT) + info.bind_point = ReflectData::PUSH_CONSTANT; + else + { + info.bind_point = v.binding; + info.descriptor_set = v.descriptor_set; + } info.data_size = v.struct_type->size; string prefix;