summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2020-10-06 09:47:12 -0400
committerGitHub <noreply@github.com>2020-10-06 09:47:12 -0400
commitb6ad8dfb65358271f52ba76676db1926a90dcd46 (patch)
treec0b3d8509b9454fd68b542add0bd2e82ec455016 /source
parent41d8610653cacfb763e3e1a1c538e17037703108 (diff)
Added [__requiresNVAPI] to functions missing it (#1571)
* #include an absolute path didn't work - because paths were taken to always be relative. * Added [__requiresNVAPI] to functions that need nvapi support.
Diffstat (limited to 'source')
-rw-r--r--source/slang/hlsl.meta.slang8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang
index e677b9020..a4f551644 100644
--- a/source/slang/hlsl.meta.slang
+++ b/source/slang/hlsl.meta.slang
@@ -61,6 +61,7 @@ float __atomicAdd(__ref float value, float amount);
// Helper for hlsl, using NVAPI
__target_intrinsic(hlsl, "NvInterlockedAddUint64($0, $1, $2)")
+[__requiresNVAPI]
uint2 __atomicAdd(RWByteAddressBuffer buf, uint offset, uint2);
@@ -85,6 +86,7 @@ int64_t __atomicAdd(__ref int64_t value, int64_t amount);
// Helper for HLSL, using NVAPI
__target_intrinsic(hlsl, "NvInterlockedCompareExchangeUint64($0, $1, $2, $3)")
+[__requiresNVAPI]
uint2 __cas(RWByteAddressBuffer buf, uint offset, uint2 compareValue, uint2 value);
__target_intrinsic(glsl, "atomicCompSwap($0, $1, $2)")
@@ -95,6 +97,7 @@ uint64_t __cas(__ref uint64_t ioValue, uint64_t compareValue, uint64_t newValue)
// Max
__target_intrinsic(hlsl, "NvInterlockedMaxUint64($0, $1, $2)")
+[__requiresNVAPI]
uint2 __atomicMax(RWByteAddressBuffer buf, uint offset, uint2 value);
__target_intrinsic(glsl, "atomicMax($0, $1)")
@@ -105,6 +108,7 @@ uint64_t __atomicMax(__ref uint64_t ioValue, uint64_t value);
// Min
__target_intrinsic(hlsl, "NvInterlockedMinUint64($0, $1, $2)")
+[__requiresNVAPI]
uint2 __atomicMin(RWByteAddressBuffer buf, uint offset, uint2 value);
__target_intrinsic(glsl, "atomicMin($0, $1)")
@@ -115,6 +119,7 @@ uint64_t __atomicMin(__ref uint64_t ioValue, uint64_t value);
// And
__target_intrinsic(hlsl, "NvInterlockedAndUint64($0, $1, $2)")
+[__requiresNVAPI]
uint2 __atomicAnd(RWByteAddressBuffer buf, uint offset, uint2 value);
__target_intrinsic(glsl, "atomicAnd($0, $1)")
@@ -125,6 +130,7 @@ uint64_t __atomicAnd(__ref uint64_t ioValue, uint64_t value);
// Or
__target_intrinsic(hlsl, "NvInterlockedOrUint64($0, $1, $2)")
+[__requiresNVAPI]
uint2 __atomicOr(RWByteAddressBuffer buf, uint offset, uint2 value);
__target_intrinsic(glsl, "atomicOr($0, $1)")
@@ -135,6 +141,7 @@ uint64_t __atomicOr(__ref uint64_t ioValue, uint64_t value);
// Xor
__target_intrinsic(hlsl, "NvInterlockedXorUint64($0, $1, $2)")
+[__requiresNVAPI]
uint2 __atomicXor(RWByteAddressBuffer buf, uint offset, uint2 value);
__target_intrinsic(glsl, "atomicXor($0, $1)")
@@ -298,6 +305,7 @@ ${{{{
// Without returning original value
__target_intrinsic(hlsl, "(NvInterlockedAddFp32($0, $1, $2))")
+ [__requiresNVAPI]
__cuda_sm_version(2.0)
__target_intrinsic(cuda, "atomicAdd((float*)$0._getPtrAt($1), $2)")
void InterlockedAddF32(uint byteAddress, float valueToAdd);