summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-layout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir-layout.cpp')
-rw-r--r--source/slang/slang-ir-layout.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/source/slang/slang-ir-layout.cpp b/source/slang/slang-ir-layout.cpp
index 558877aaf..c60b39248 100644
--- a/source/slang/slang-ir-layout.cpp
+++ b/source/slang/slang-ir-layout.cpp
@@ -186,8 +186,8 @@ static Result _calcSizeAndAlignment(
builder.getIntValue(intType, (IRIntegerValue)rules->ruleName),
builder.getIntValue(intType, fieldOffset));
}
-
- structLayout.size += fieldTypeLayout.size;
+ if (!seenFinalUnsizedArrayField)
+ structLayout.size += fieldTypeLayout.size;
offset = structLayout.size;
if (as<IRMatrixType>(field->getFieldType()) ||
as<IRArrayTypeBase>(field->getFieldType()) ||
@@ -340,7 +340,6 @@ static Result _calcSizeAndAlignment(
case kIROp_NativePtrType:
case kIROp_ComPtrType:
case kIROp_NativeStringType:
- case kIROp_HLSLConstBufferPointerType:
case kIROp_RaytracingAccelerationStructureType:
{
*outSizeAndAlignment = IRSizeAndAlignment(kPointerSize, kPointerSize);