mirror of
https://github.com/love2d/love.git
synced 2026-08-16 00:02:12 +02:00
metal/vulkan: fix uniform numbers and vectors in arrays of structs.
This commit is contained in:
@@ -290,10 +290,11 @@ void Shader::buildLocalUniforms(const spirv_cross::CompilerMSL &msl, const spirv
|
||||
case SPIRType::Struct:
|
||||
if (membertype.op == spv::OpTypeArray)
|
||||
{
|
||||
size_t arraystride = comp.type_struct_member_array_stride(type, uindex);
|
||||
for (uint32 i = 0; i < membertype.array[0]; i++)
|
||||
{
|
||||
std::string structname = name + "[" + std::to_string(i) + "].";
|
||||
buildLocalUniforms(msl, membertype, offset, structname);
|
||||
buildLocalUniforms(msl, membertype, offset + i * arraystride, structname);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -447,10 +447,11 @@ void Shader::buildLocalUniforms(spirv_cross::Compiler &comp, const spirv_cross::
|
||||
case SPIRType::Struct:
|
||||
if (memberType.op == spv::OpTypeArray)
|
||||
{
|
||||
size_t arraystride = comp.type_struct_member_array_stride(type, uindex);
|
||||
for (uint32 i = 0; i < memberType.array[0]; i++)
|
||||
{
|
||||
std::string structname = name + "[" + std::to_string(i) + "].";
|
||||
buildLocalUniforms(comp, memberType, offset, structname);
|
||||
buildLocalUniforms(comp, memberType, offset + i * arraystride, structname);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user