Merge pull request #2913 from greg-lunarg/i2905
[platform/upstream/glslang.git] / Test / 420.frag
1 #version 420 core
2
3 layout(depth_any) out float gl_FragDepth;
4 layout(depth_greater) out float gl_FragDepth; // ERROR: redeclaration with different qualifier
5
6 void main()
7 {
8     gl_FragDepth = 0.3;
9 }
10
11 layout(depth_less) in float depth; // ERROR: depth_less only applies to gl_FragDepth
12 layout(depth_any) out float gl_FragDepth;  // ERROR, done after use
13
14 layout(binding=0) uniform atomic_uint a[];
15
16 uniform writeonly image2D      i2D;
17 ivec2 iv2dim = imageSize(i2D); // ERROR: imageSize called without enabling GL_ARB_shader_image_size extension
18 #extension GL_ARB_shader_image_size : enable
19 ivec2 iv2dim1 = imageSize(i2D);
20
21 #extension GL_ARB_shader_storage_buffer_object : enable
22
23 layout(binding = 0,std430) buffer Buffer
24 {
25     int atomi;
26     uint atomu;
27 };
28
29 void atomicOpPass()
30 {
31     int origi = atomicAdd(atomi, 3);
32     uint origu = atomicAnd(atomu, 7u);
33     origi = atomicExchange(atomi, 4);
34     origu = atomicCompSwap(atomu, 10u, 8u);
35 }
36
37 layout(binding = 2,std430) buffer ssboElem01
38 {
39     int member01;
40     int memberArr01[2];
41     int memberUnsizedArr01[];
42 } ssboStd430Arr[2];
43
44 // if turns on EShReflectionSharedStd140SSBO, SPIR-V would be different
45 layout(binding = 3,shared) buffer ssboElem02
46 {
47     int member02;
48     int memberArr02[2];
49     int memberUnsizedArr02[];
50 } ssboSharedArr[2];
51
52 #extension GL_ARB_shader_storage_buffer_object : disable
53
54 layout(binding = 1,std430) buffer BufferFail // Error std430 and "buffer" block support disabled 
55 {
56     int atom1i;
57 };