summaryrefslogtreecommitdiff
path: root/source/slang/core.meta.slang
diff options
context:
space:
mode:
authorDarren Wihandi <65404740+fairywreath@users.noreply.github.com>2025-01-18 02:07:16 -0500
committerGitHub <noreply@github.com>2025-01-17 23:07:16 -0800
commita85c350df03c6cdf9b433f58fc0e66affda03e9e (patch)
tree3e80ea7121b3b5bb5c17aee88599212b78abec38 /source/slang/core.meta.slang
parent87a08160289c194ddfb337d521893f576ceb9f97 (diff)
Implement Quad Control intrinsics (#5981)
Diffstat (limited to 'source/slang/core.meta.slang')
-rw-r--r--source/slang/core.meta.slang21
1 files changed, 21 insertions, 0 deletions
diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang
index 5c30da1e7..2224b8e82 100644
--- a/source/slang/core.meta.slang
+++ b/source/slang/core.meta.slang
@@ -3244,6 +3244,12 @@ __Addr<T> __getLegalizedSPIRVGlobalParamAddr(T val);
__intrinsic_op($(kIROp_RequireComputeDerivative))
void __requireComputeDerivative();
+__intrinsic_op($(kIROp_RequireMaximallyReconverges))
+void __requireMaximallyReconverges();
+
+__intrinsic_op($(kIROp_RequireQuadDerivatives))
+void __requireQuadDerivatives();
+
//@ public:
/// @category misc_types
enum MemoryOrder
@@ -3978,6 +3984,21 @@ attribute_syntax [DerivativeGroupQuad] : DerivativeGroupQuadAttribute;
__attributeTarget(FuncDecl)
attribute_syntax [DerivativeGroupLinear] : DerivativeGroupLinearAttribute;
+/// Emits `MaximallyReconvergesKHR` execution mode when producing SPIR-V.
+/// This attribute has no effect on other targets.
+__attributeTarget(FuncDecl)
+attribute_syntax [MaximallyReconverges] : MaximallyReconvergesAttribute;
+
+/// Emits `QuadDerivativesKHR` execution mode when producing SPIR-V.
+/// This attribute has no effect on other targets.
+__attributeTarget(FuncDecl)
+attribute_syntax [QuadDerivatives] : QuadDerivativesAttribute;
+
+/// Emits `RequireFullQuadsKHR` execution mode when producing SPIR-V.
+/// This attribute has no effect on other targets.
+__attributeTarget(FuncDecl)
+attribute_syntax [RequireFullQuads] : RequireFullQuadsAttribute;
+
__generic<T>
typealias NodePayloadPtr = Ptr<T, $( (uint64_t)AddressSpace::NodePayloadAMDX)>;