summaryrefslogtreecommitdiff
path: root/source/slang/slang-lower-to-ir.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2022-05-18 10:09:28 -0400
committerGitHub <noreply@github.com>2022-05-18 10:09:28 -0400
commit1148564b9cdbbc8fec4fbecf65b0af60aa6af344 (patch)
treefc5ca7629aed7e60797163c33deb56a4137249b4 /source/slang/slang-lower-to-ir.cpp
parentd9fd0ff3f0fc7b775de1e05570f01798fbc8baa3 (diff)
Support for `[[vk::spirv_instruction(op)]]` (#2242)
* #include an absolute path didn't work - because paths were taken to always be relative. * Add extension required by SPIRVOpDecoration into part of emit (could be a prior pass). * Add [[vk::spirv_instruction]] attribute * Add documentation for [[vk::spirv_instruction]. * Update 08-attributes.md * Update 08-attributes.md
Diffstat (limited to 'source/slang/slang-lower-to-ir.cpp')
-rw-r--r--source/slang/slang-lower-to-ir.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp
index 585b02a02..4ff43b697 100644
--- a/source/slang/slang-lower-to-ir.cpp
+++ b/source/slang/slang-lower-to-ir.cpp
@@ -7517,6 +7517,12 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
getBuilder()->addDecoration(irFunc, kIROp_OutputControlPointsDecoration, intLit);
}
+ if (auto attr = decl->findModifier<SPIRVInstructionOpAttribute>())
+ {
+ IRIntLit* intLit = _getIntLitFromAttribute(getBuilder(), attr);
+ getBuilder()->addDecoration(irFunc, kIROp_SPIRVOpDecoration, intLit);
+ }
+
if(decl->findModifier<UnsafeForceInlineEarlyAttribute>())
{
getBuilder()->addDecoration(irFunc, kIROp_UnsafeForceInlineEarlyDecoration);