diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2020-04-23 14:40:01 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-23 14:40:01 -0400 |
| commit | 6f5c250b19b03a8eb4b6a9254613ce8539769a23 (patch) | |
| tree | fad6585589f143838a831f94ff07ec9a556ab7d2 /tests | |
| parent | 806ab08f64c76e961ecdf40ecaf9499c5a88ac5f (diff) | |
Small improvements around atomics (#1333)
* Use the original value in the test.
Run test on VK.
* Added RWBuffer and Buffer types to C++ prelude.
* Add vk to atomics.slang tests
* Update target-compatibility around atomics.
When tests disabled in atomics-buffer.slang explained why.
* tabs -> spaces.
* Small docs improvement.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/compute/atomics-buffer.slang | 7 | ||||
| -rw-r--r-- | tests/compute/atomics-groupshared.slang | 18 | ||||
| -rw-r--r-- | tests/compute/atomics-groupshared.slang.expected.txt | 8 | ||||
| -rw-r--r-- | tests/compute/atomics.slang | 1 |
4 files changed, 25 insertions, 9 deletions
diff --git a/tests/compute/atomics-buffer.slang b/tests/compute/atomics-buffer.slang index 1739d4bbc..cf92f1b21 100644 --- a/tests/compute/atomics-buffer.slang +++ b/tests/compute/atomics-buffer.slang @@ -2,6 +2,13 @@ //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 +// Doesn't work on VK - GLSL output doesn't replace InterlockedAdd. +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk +// Cannot work on CUDA, as outputBuffer becomes a CUsurfObject - which do not appear to have atomics available. +// If the buffer was a StructuredBuffer this would work on CUDA. +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda +// Atomics not available on CPU currently +//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cpu //TEST_INPUT:ubuffer(format=R_UInt32, data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]):out,name outputBuffer diff --git a/tests/compute/atomics-groupshared.slang b/tests/compute/atomics-groupshared.slang index 9e237bee1..9c3e1ab8d 100644 --- a/tests/compute/atomics-groupshared.slang +++ b/tests/compute/atomics-groupshared.slang @@ -2,6 +2,7 @@ //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 +//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer @@ -18,13 +19,20 @@ uint test(uint val) GroupMemoryBarrierWithGroupSync(); - InterlockedAdd(shared[val], val, originalValue); - InterlockedAdd(shared[val ^ 1], val*16, originalValue); - InterlockedAdd(shared[val ^ 2], val*16*16, originalValue); - + uint originalSum = 0; + + InterlockedAdd(shared[val], val, originalValue); + originalSum += originalValue; + + InterlockedAdd(shared[val ^ 1], val*16, originalValue); + originalSum += originalValue; + + InterlockedAdd(shared[val ^ 2], val*16*16, originalValue); + originalSum += originalValue; + GroupMemoryBarrierWithGroupSync(); - return shared[val]; + return shared[val] ^ originalSum; } [numthreads(4, 1, 1)] diff --git a/tests/compute/atomics-groupshared.slang.expected.txt b/tests/compute/atomics-groupshared.slang.expected.txt index 30966f0df..11ea781c9 100644 --- a/tests/compute/atomics-groupshared.slang.expected.txt +++ b/tests/compute/atomics-groupshared.slang.expected.txt @@ -1,4 +1,4 @@ -210 -301 - 32 -123 +223 +322 +21 +120 diff --git a/tests/compute/atomics.slang b/tests/compute/atomics.slang index ddb5523e9..cbd35d1dc 100644 --- a/tests/compute/atomics.slang +++ b/tests/compute/atomics.slang @@ -2,6 +2,7 @@ //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 +//TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -vk //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -cuda //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name outputBuffer |
