Merge pull request #2908 from Biswa96/cmake-spirv-remap
[platform/upstream/glslang.git] / Test / 450.vert
1 #version 450 core\r
2 \r
3 out gl_PerVertex {\r
4     float gl_CullDistance[3];\r
5 };\r
6 \r
7 void main()\r
8 {\r
9     gl_CullDistance[2] = 4.5;\r
10 }\r
11 \r
12 out bool outb;         // ERROR\r
13 out sampler2D outo;    // ERROR\r
14 out float outa[4];\r
15 out float outaa[4][2];\r
16 struct S { float f; };\r
17 out S outs;\r
18 out S[4] outasa;\r
19 out S outsa[4];\r
20 struct SA { float f[4]; };\r
21 out SA outSA;\r
22 struct SS { float f; S s; };\r
23 out SS outSS;\r
24 \r
25 layout(binding = 0) uniform atomic_uint aui;\r
26 uint ui;\r
27 \r
28 void foo()\r
29 {\r
30     SS::f;\r
31     atomicCounterAdd(aui, ui);           // ERROR, need 4.6\r
32     atomicCounterSubtract(aui, ui);      // ERROR, need 4.6\r
33     atomicCounterMin(aui, ui);           // ERROR, need 4.6\r
34     atomicCounterMax(aui, ui);           // ERROR, need 4.6\r
35     atomicCounterAnd(aui, ui);           // ERROR, need 4.6\r
36     atomicCounterOr(aui, ui);            // ERROR, need 4.6\r
37     atomicCounterXor(aui, ui);           // ERROR, need 4.6\r
38     atomicCounterExchange(aui, ui);      // ERROR, need 4.6\r
39     atomicCounterCompSwap(aui, ui, ui);  // ERROR, need 4.6\r
40 \r
41     int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; // ERROR, need 4.6\r
42 \r
43     bool b1;\r
44     anyInvocation(b1);        // ERROR, need 4.6\r
45     allInvocations(b1);       // ERROR, need 4.6\r
46     allInvocationsEqual(b1);  // ERROR, need 4.6\r
47 }\r
48 ; // ERROR: no extraneous semicolons\r
49 \r
50 layout(location = 0) uniform locBlock {        // ERROR, no location uniform block\r
51     int a;\r
52 };\r
53 \r
54 layout(location = 0) buffer locBuffBlock {     // ERROR, no location on buffer block\r
55     int b;\r
56 };\r