diff --git a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp index dd60e7bc7..715acc3e3 100644 --- a/renderdoc/driver/shaders/spirv/spirv_reflect.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_reflect.cpp @@ -484,9 +484,13 @@ StructSizes CalculateStructProps(uint32_t emptyStructSize, const ShaderConstant } } - ret.scalarSize *= RDCMAX(c.type.elements, 1U); - ret.baseSize *= RDCMAX(c.type.elements, 1U); - ret.extendedSize *= RDCMAX(c.type.elements, 1U); + if(c.type.elements > 1) + { + const uint32_t nonFinalArraySize = (c.type.elements - 1) * c.type.arrayByteStride; + ret.scalarSize += nonFinalArraySize; + ret.baseSize += nonFinalArraySize; + ret.extendedSize += nonFinalArraySize; + } return ret; }