diff options
Diffstat (limited to 'chromium/third_party/glslang/src/Test/atomic_uint.frag')
-rw-r--r-- | chromium/third_party/glslang/src/Test/atomic_uint.frag | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/chromium/third_party/glslang/src/Test/atomic_uint.frag b/chromium/third_party/glslang/src/Test/atomic_uint.frag new file mode 100644 index 00000000000..1234435695c --- /dev/null +++ b/chromium/third_party/glslang/src/Test/atomic_uint.frag @@ -0,0 +1,48 @@ +#version 420 core + +layout(binding = 0) uniform atomic_uint counter; + +uint func(atomic_uint c) +{ + return atomicCounterIncrement(c); +} + +uint func2(out atomic_uint c) // ERROR +{ + return counter; // ERROR, type mismatch + return atomicCounter(counter); +} + +void main() +{ + atomic_uint non_uniform_counter; // ERROR + uint val = atomicCounter(counter); + atomicCounterDecrement(counter); +} + +layout(binding = 1, offset = 3) uniform atomic_uint countArr[4]; +uniform int i; + +void opac() +{ + counter + counter; // ERROR + -counter; // ERROR + int a[3]; + a[counter]; // ERROR + countArr[2]; + countArr[i]; + counter = 4; // ERROR +} + +in atomic_uint acin; // ERROR +atomic_uint acg; // ERROR +uniform atomic_uint; +uniform atomic_uint aNoBind; // ERROR, no binding +layout(binding=0, offset=32) uniform atomic_uint aOffset; +layout(binding=0, offset=4) uniform atomic_uint; +layout(binding=0) uniform atomic_uint bar3; // offset is 4 +layout(binding=0) uniform atomic_uint ac[3]; // offset = 8 +layout(binding=0) uniform atomic_uint ad; // offset = 20 +layout(offset=8) uniform atomic_uint bar4; // ERROR, no binding +layout(binding = 0, offset = 12) uniform atomic_uint overlap; // ERROR, overlapping offsets +layout(binding = 20) uniform atomic_uint bigBind; // ERROR, binding too big |