From 6f5c250b19b03a8eb4b6a9254613ce8539769a23 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 23 Apr 2020 14:40:01 -0400 Subject: 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. --- docs/target-compatibility.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/target-compatibility.md b/docs/target-compatibility.md index ff63a65a2..0b29a6152 100644 --- a/docs/target-compatibility.md +++ b/docs/target-compatibility.md @@ -37,7 +37,8 @@ Items with ^ means there is some discussion about support later in the document | Full bool | Yes | Yes | Yes | No | Yes ^ | Mesh Shader | No | No + | No + | No | No | `[unroll]` | Yes | Yes | Yes ^ | Yes | Limited + - +| Atomics | Yes | Yes | Yes | Yes | No + +| Atomics on RWBuffer | Yes | Yes | Yes | No | No + ## Half Type @@ -161,3 +162,10 @@ On GLSL and VK targets loop unrolling uses the [GL_EXT_control_flow_attributes]( Slang does have a cross target mechanism to [unroll loops](language-reference/06-statements.md), in the section `Compile-Time For Statement`. +## Atomics on RWBuffer + +For VK the GLSL output from Slang seems plausible, but VK binding fails in tests harness. + +On CUDA RWBuffer becomes CUsurfObject, which is a 'texture' type and does not support atomics. + +On the CPU atomics are not supported, but will be in the future. -- cgit v1.2.3