diff options
Diffstat (limited to 'source/slang/slang-type-layout.cpp')
| -rw-r--r-- | source/slang/slang-type-layout.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source/slang/slang-type-layout.cpp b/source/slang/slang-type-layout.cpp index 293dce7c6..eca0d0ec3 100644 --- a/source/slang/slang-type-layout.cpp +++ b/source/slang/slang-type-layout.cpp @@ -1811,11 +1811,21 @@ LayoutRulesFamilyImpl* getDefaultLayoutRulesFamilyForTarget(TargetRequest* targe } } -TypeLayoutContext getInitialLayoutContextForTarget(TargetRequest* targetReq, ProgramLayout* programLayout) +TypeLayoutContext getInitialLayoutContextForTarget(TargetRequest* targetReq, ProgramLayout* programLayout, slang::LayoutRules rules) { auto astBuilder = targetReq->getLinkage()->getASTBuilder(); - LayoutRulesFamilyImpl* rulesFamily = getDefaultLayoutRulesFamilyForTarget(targetReq); + LayoutRulesFamilyImpl* rulesFamily; + switch (rules) + { + case slang::LayoutRules::Default: + default: + rulesFamily = getDefaultLayoutRulesFamilyForTarget(targetReq); + break; + case slang::LayoutRules::MetalArgumentBufferTier2: + rulesFamily = &kCPULayoutRulesFamilyImpl; + break; + } TypeLayoutContext context; context.astBuilder = astBuilder; |
