diff options
| author | Darren Wihandi <65404740+fairywreath@users.noreply.github.com> | 2025-01-18 02:07:16 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-17 23:07:16 -0800 |
| commit | a85c350df03c6cdf9b433f58fc0e66affda03e9e (patch) | |
| tree | 3e80ea7121b3b5bb5c17aee88599212b78abec38 /source/slang/core.meta.slang | |
| parent | 87a08160289c194ddfb337d521893f576ceb9f97 (diff) | |
Implement Quad Control intrinsics (#5981)
Diffstat (limited to 'source/slang/core.meta.slang')
| -rw-r--r-- | source/slang/core.meta.slang | 21 |
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)>; |
