summaryrefslogtreecommitdiff
path: root/source/slang/core.meta.slang
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-02-02 22:04:40 -0800
committerGitHub <noreply@github.com>2024-02-02 22:04:40 -0800
commitc15e7ade4e27e1649d5b98f5854e9e52bb9e60ae (patch)
tree22082fda85b2b25eec36da8c4505de7b6cb987fc /source/slang/core.meta.slang
parenta67cb0609587c230746b52567ff5775cab215220 (diff)
Atomics+Wave ops intrinsics fixes. (#3542)
* Fix atomics intrinsics, increase kMaxDescriptorSets. * Add SPIRVASM to known non-differentiable insts. * Support fp16 wave ops when targeting glsl. * Fixes. * Fix vk validation errors. * Fix. * Add to allowed failures.
Diffstat (limited to 'source/slang/core.meta.slang')
-rw-r--r--source/slang/core.meta.slang14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang
index 3df11fffe..3ebb77f03 100644
--- a/source/slang/core.meta.slang
+++ b/source/slang/core.meta.slang
@@ -217,6 +217,9 @@ attribute_syntax [Differentiable(order:int = 0)] : BackwardDifferentiableAttribu
__intrinsic_op($(kIROp_RequirePrelude))
void __requirePrelude(constexpr String preludeText);
+__intrinsic_op($(kIROp_RequireGLSLExtension))
+void __requireGLSLExtension(constexpr String preludeText);
+
/// Interface to denote types as differentiable.
/// Allows for user-specified differential types as
/// well as automatic generation, for when the associated type
@@ -2255,6 +2258,10 @@ __intrinsic_op($(kIROp_IsFloat))
bool __isFloat_impl(T t);
__generic<T>
+__intrinsic_op($(kIROp_IsHalf))
+bool __isHalf_impl(T t);
+
+__generic<T>
[__unsafeForceInlineEarly]
bool __isFloat()
{
@@ -2262,6 +2269,13 @@ bool __isFloat()
}
__generic<T>
+[__unsafeForceInlineEarly]
+bool __isHalf()
+{
+ return __isHalf_impl(__declVal<T>());
+}
+
+__generic<T>
__intrinsic_op($(kIROp_IsUnsignedInt))
bool __isUnsignedInt_impl(T t);