X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fprogram.cpp;h=a82ac1d227279be4edd1175428af8e6c0dfe6ffd;hb=f1e296bb2442dfbea12e7b38a97cc152aa34569c;hp=e4250b6c05739b52d8f1e339db7c188ffac35aad;hpb=3efe3bab1c8290bd49a957ebec0ad97e58a35fcf;p=libs%2Fgl.git diff --git a/source/core/program.cpp b/source/core/program.cpp index e4250b6c..a82ac1d2 100644 --- a/source/core/program.cpp +++ b/source/core/program.cpp @@ -82,8 +82,12 @@ void Program::collect_uniforms(const SpirVModule &mod) reflect_data.uniform_blocks.emplace_back(); ReflectData::UniformBlockInfo &info = reflect_data.uniform_blocks.back(); info.name = v.struct_type->name; + info.data_size = v.struct_type->size; if(v.storage==SpirVModule::PUSH_CONSTANT) + { info.bind_point = ReflectData::PUSH_CONSTANT; + reflect_data.push_constants_size = info.data_size; + } else { if(v.binding>=0) @@ -92,7 +96,6 @@ void Program::collect_uniforms(const SpirVModule &mod) info.bind_point = ReflectData::DEFAULT_BLOCK; n_descriptor_sets = max(n_descriptor_sets, v.descriptor_set+1); } - info.data_size = v.struct_type->size; string prefix; if(!v.name.empty()) @@ -190,6 +193,8 @@ void Program::collect_attributes(const SpirVModule &mod) info.type = v->type; } } + + sort_member(reflect_data.attributes, &ReflectData::AttributeInfo::name); } void Program::collect_builtins(const SpirVModule &mod)