finalize_uniforms();
- for(ReflectData::UniformBlockInfo &b: reflect_data.uniform_blocks)
- if(!b.data_size && !b.uniforms.empty())
- {
- const ReflectData::UniformInfo &uni = *b.uniforms.back();
- b.data_size = uni.location*16+uni.array_size*get_type_size(uni.type);
- }
-
for(const ReflectData::UniformInfo &u: reflect_data.uniforms)
require_type(u.type);
for(const ReflectData::AttributeInfo &a: reflect_data.attributes)
info.tag = v.name;
info.location = v.location;
info.binding = v.binding;
- info.array_size = v.array_size;
+ info.array_size = max(v.array_size, 1U);
info.type = v.type;
}
}
info.name = name;
info.tag = name;
info.offset = offset;
- info.array_size = m.array_size;
+ info.array_size = max(m.array_size, 1U);
info.array_stride = m.array_stride;
info.matrix_stride = m.matrix_stride;
info.type = m.type;