summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-type-layout.cpp11
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;