summaryrefslogtreecommitdiff
path: root/tools/gfx/metal/metal-shader-object-layout.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-07-19 11:49:42 -0700
committerGitHub <noreply@github.com>2024-07-19 11:49:42 -0700
commitf114433debfba67cbe1db239b6e92278d41ed438 (patch)
tree3a8ff78deb657d203c87bd22bc2ee83575e834f6 /tools/gfx/metal/metal-shader-object-layout.cpp
parentadf758c8c4032afcd96d995840bd697d2adef34c (diff)
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 <yhe@nvidia.com>
Diffstat (limited to 'tools/gfx/metal/metal-shader-object-layout.cpp')
-rw-r--r--tools/gfx/metal/metal-shader-object-layout.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/tools/gfx/metal/metal-shader-object-layout.cpp b/tools/gfx/metal/metal-shader-object-layout.cpp
index abde03b54..94bcb6db6 100644
--- a/tools/gfx/metal/metal-shader-object-layout.cpp
+++ b/tools/gfx/metal/metal-shader-object-layout.cpp
@@ -219,6 +219,16 @@ SlangResult ShaderObjectLayoutImpl::Builder::build(ShaderObjectLayoutImpl** outL
return SLANG_OK;
}
+slang::TypeLayoutReflection* ShaderObjectLayoutImpl::getParameterBlockTypeLayout()
+{
+ if (!m_parameterBlockTypeLayout)
+ {
+ m_parameterBlockTypeLayout = m_slangSession->getTypeLayout(
+ m_elementTypeLayout->getType(), 0, slang::LayoutRules::MetalArgumentBufferTier2);
+ }
+ return m_parameterBlockTypeLayout;
+}
+
Result ShaderObjectLayoutImpl::createForElementType(
RendererBase* renderer,
slang::ISession* session,