summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-layout.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2025-01-10 10:57:04 -0800
committerGitHub <noreply@github.com>2025-01-10 10:57:04 -0800
commit5290c580632cfb56847b863a32dc020a21d1c93e (patch)
tree4c543f28d13f62a1dc3293b76151dda7585743ab /source/slang/slang-ir-layout.cpp
parent4cfae806a6f9c0203ce44c4ce04df5ad66cdc8a2 (diff)
Initial implementation of SP#015 `DescriptorHandle<T>`. (#6028)
* Initial implementation of `ResourcePtr<T>`. * Update docs * Fix build error. * Add more discussion. * Update documentation. * Update TOC. * Fix. * Fix. * Add test case for custom `getResourceFromBindlessHandle`. * Add namehint to generated descriptor heap param. * Fix. * Fix. * format code * Rename to `DescriptorHandle`, and add `T.Handle` alias. * Fix compiler error. * Fix. * Fix build. * Renames. * Fix documentation. * Documentation fix. --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'source/slang/slang-ir-layout.cpp')
-rw-r--r--source/slang/slang-ir-layout.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/slang/slang-ir-layout.cpp b/source/slang/slang-ir-layout.cpp
index 8180ea6aa..1332c8a25 100644
--- a/source/slang/slang-ir-layout.cpp
+++ b/source/slang/slang-ir-layout.cpp
@@ -355,6 +355,14 @@ static Result _calcSizeAndAlignment(
case kIROp_DefaultBufferLayoutType:
*outSizeAndAlignment = IRSizeAndAlignment(0, 4);
return SLANG_OK;
+ case kIROp_DescriptorHandleType:
+ {
+ IRBuilder builder(type);
+ builder.setInsertBefore(type);
+ auto uintType = builder.getUIntType();
+ auto uint2Type = builder.getVectorType(uintType, 2);
+ return getSizeAndAlignment(optionSet, rules, uint2Type, outSizeAndAlignment);
+ }
case kIROp_AttributedType:
{
auto attributedType = cast<IRAttributedType>(type);