diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/slang-type-layout.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/slang/slang-type-layout.cpp b/source/slang/slang-type-layout.cpp index 5e63a7cfd..b54f813dd 100644 --- a/source/slang/slang-type-layout.cpp +++ b/source/slang/slang-type-layout.cpp @@ -4763,7 +4763,16 @@ static TypeLayoutResult _createTypeLayout(TypeLayoutContext& context, Type* type ptrLayout->addResourceUsage(info.kind, info.size); - const auto valueTypeLayout = _createTypeLayout(context, ptrType->getValueType()); + TypeLayoutResult valueTypeLayout; + if (context.rules != &kScalarLayoutRulesImpl_) + { + auto subContext = context.with(&kScalarLayoutRulesImpl_); + valueTypeLayout = _createTypeLayout(subContext, ptrType->getValueType()); + } + else + { + valueTypeLayout = _createTypeLayout(context, ptrType->getValueType()); + } ptrLayout->valueTypeLayout = valueTypeLayout.layout; |
