From f114433debfba67cbe1db239b6e92278d41ed438 Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 19 Jul 2024 11:49:42 -0700 Subject: Support parameter block in metal shader objects. (#4671) * Support parameter block in metal shader objects. * Ingore parameter block tests on devices without tier2 argument buffer. * Fix warning. * Fix texture subscript test. --------- Co-authored-by: Yong He --- source/slang/slang-type-layout.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'source/slang/slang-type-layout.cpp') 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; -- cgit v1.2.3