| #version 420 core |
| |
| layout(depth_any) out float gl_FragDepth; |
| layout(depth_greater) out float gl_FragDepth; // ERROR: redeclaration with different qualifier |
| |
| void main() |
| { |
| gl_FragDepth = 0.3; |
| } |
| |
| layout(depth_less) in float depth; // ERROR: depth_less only applies to gl_FragDepth |
| layout(depth_any) out float gl_FragDepth; // ERROR, done after use |
| |
| layout(binding=0) uniform atomic_uint a[]; |
| |
| uniform writeonly image2D i2D; |
| ivec2 iv2dim = imageSize(i2D); // ERROR: imageSize called without enabling GL_ARB_shader_image_size extension |
| #extension GL_ARB_shader_image_size : enable |
| ivec2 iv2dim1 = imageSize(i2D); |
| |
| #extension GL_ARB_shader_storage_buffer_object : enable |
| |
| layout(binding = 0,std430) buffer Buffer |
| { |
| int atomi; |
| uint atomu; |
| }; |
| |
| void atomicOpPass() |
| { |
| int origi = atomicAdd(atomi, 3); |
| uint origu = atomicAnd(atomu, 7u); |
| origi = atomicExchange(atomi, 4); |
| origu = atomicCompSwap(atomu, 10u, 8u); |
| } |
| |
| layout(binding = 2,std430) buffer ssboElem01 |
| { |
| int member01; |
| int memberArr01[2]; |
| int memberUnsizedArr01[]; |
| } ssboStd430Arr[2]; |
| |
| // if turns on EShReflectionSharedStd140SSBO, SPIR-V would be different |
| layout(binding = 3,shared) buffer ssboElem02 |
| { |
| int member02; |
| int memberArr02[2]; |
| int memberUnsizedArr02[]; |
| } ssboSharedArr[2]; |
| |
| #extension GL_ARB_shader_storage_buffer_object : disable |
| |
| layout(binding = 1,std430) buffer BufferFail // Error std430 and "buffer" block support disabled |
| { |
| int atom1i; |
| }; |