From a85c350df03c6cdf9b433f58fc0e66affda03e9e Mon Sep 17 00:00:00 2001 From: Darren Wihandi <65404740+fairywreath@users.noreply.github.com> Date: Sat, 18 Jan 2025 02:07:16 -0500 Subject: Implement Quad Control intrinsics (#5981) --- source/slang/core.meta.slang | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'source/slang/core.meta.slang') 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 __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 typealias NodePayloadPtr = Ptr; -- cgit v1.2.3