1617a3babSopenharmony_ci#version 320 es
2617a3babSopenharmony_ci
3617a3babSopenharmony_cilayout(vertices = 4) out; // ERROR
4617a3babSopenharmony_cilayout(quads, cw) in;
5617a3babSopenharmony_cilayout(triangles) in;     // ERROR
6617a3babSopenharmony_cilayout(isolines) in;      // ERROR
7617a3babSopenharmony_ci
8617a3babSopenharmony_cilayout(ccw) in;           // ERROR
9617a3babSopenharmony_cilayout(cw) in;
10617a3babSopenharmony_ci
11617a3babSopenharmony_cilayout(fractional_odd_spacing) in;    
12617a3babSopenharmony_cilayout(equal_spacing) in;              // ERROR
13617a3babSopenharmony_cilayout(fractional_even_spacing) in;    // ERROR
14617a3babSopenharmony_ci
15617a3babSopenharmony_cilayout(point_mode) in;
16617a3babSopenharmony_ci
17617a3babSopenharmony_cipatch in vec4 patchIn;
18617a3babSopenharmony_cipatch out vec4 patchOut;  // ERROR
19617a3babSopenharmony_ci
20617a3babSopenharmony_civoid main()
21617a3babSopenharmony_ci{
22617a3babSopenharmony_ci    barrier(); // ERROR
23617a3babSopenharmony_ci
24617a3babSopenharmony_ci    int a = gl_MaxTessEvaluationInputComponents +
25617a3babSopenharmony_ci            gl_MaxTessEvaluationOutputComponents +
26617a3babSopenharmony_ci            gl_MaxTessEvaluationTextureImageUnits +
27617a3babSopenharmony_ci            gl_MaxTessEvaluationUniformComponents +
28617a3babSopenharmony_ci            gl_MaxTessPatchComponents +
29617a3babSopenharmony_ci            gl_MaxPatchVertices +
30617a3babSopenharmony_ci            gl_MaxTessGenLevel;
31617a3babSopenharmony_ci
32617a3babSopenharmony_ci    vec4 p = gl_in[1].gl_Position;
33617a3babSopenharmony_ci    float ps = gl_in[1].gl_PointSize;        // ERROR, need point_size extension
34617a3babSopenharmony_ci    float cd = gl_in[1].gl_ClipDistance[2];  // ERROR, not in ES
35617a3babSopenharmony_ci
36617a3babSopenharmony_ci    int pvi = gl_PatchVerticesIn;
37617a3babSopenharmony_ci    int pid = gl_PrimitiveID;
38617a3babSopenharmony_ci    vec3 tc = gl_TessCoord;
39617a3babSopenharmony_ci    float tlo = gl_TessLevelOuter[3];
40617a3babSopenharmony_ci    float tli = gl_TessLevelInner[1];
41617a3babSopenharmony_ci
42617a3babSopenharmony_ci    gl_Position = p;
43617a3babSopenharmony_ci    gl_PointSize = ps;             // ERROR, need point_size extension
44617a3babSopenharmony_ci    gl_ClipDistance[2] = cd;       // ERROR, not in ES
45617a3babSopenharmony_ci}
46617a3babSopenharmony_ci
47617a3babSopenharmony_cismooth patch in vec4 badp1;         // ERROR
48617a3babSopenharmony_ciflat patch in vec4 badp2;           // ERROR
49617a3babSopenharmony_cinoperspective patch in vec4 badp3;  // ERROR
50617a3babSopenharmony_cipatch sample in vec3 badp4;         // ERROR
51617a3babSopenharmony_ci
52617a3babSopenharmony_ci#extension GL_ARB_separate_shader_objects : enable
53617a3babSopenharmony_ci
54617a3babSopenharmony_ciin gl_PerVertex
55617a3babSopenharmony_ci{
56617a3babSopenharmony_ci    vec4 gl_Position;
57617a3babSopenharmony_ci} gl_in[];
58617a3babSopenharmony_ci
59617a3babSopenharmony_ciin gl_PerVertex           // ERROR, second redeclaration of gl_in
60617a3babSopenharmony_ci{
61617a3babSopenharmony_ci    vec4 gl_Position;
62617a3babSopenharmony_ci} gl_in[];
63617a3babSopenharmony_ci
64617a3babSopenharmony_cilayout(quads, cw) out;     // ERROR
65617a3babSopenharmony_cilayout(triangles) out;     // ERROR
66617a3babSopenharmony_cilayout(isolines) out;      // ERROR
67617a3babSopenharmony_cilayout(cw) out;            // ERROR
68617a3babSopenharmony_cilayout(fractional_odd_spacing) out;    // ERROR
69617a3babSopenharmony_cilayout(equal_spacing) out;             // ERROR
70617a3babSopenharmony_cilayout(fractional_even_spacing) out;   // ERROR
71617a3babSopenharmony_cilayout(point_mode) out;                // ERROR
72617a3babSopenharmony_ci
73617a3babSopenharmony_ciin vec2 ina;      // ERROR, not array
74617a3babSopenharmony_ciin vec2 inb[];
75617a3babSopenharmony_ciin vec2 inc[18];  // ERROR, wrong size
76617a3babSopenharmony_ciin vec2 ind[gl_MaxPatchVertices];
77617a3babSopenharmony_ci
78617a3babSopenharmony_ciin testbla {      // ERROR, not array
79617a3babSopenharmony_ci    int f;
80617a3babSopenharmony_ci} bla;
81617a3babSopenharmony_ci
82617a3babSopenharmony_ciin testblb {
83617a3babSopenharmony_ci    int f;
84617a3babSopenharmony_ci} blb[];
85617a3babSopenharmony_ci
86617a3babSopenharmony_ciin testblc { // ERROR wrong size
87617a3babSopenharmony_ci    int f;
88617a3babSopenharmony_ci} blc[18];
89617a3babSopenharmony_ci
90617a3babSopenharmony_ciin testbld {
91617a3babSopenharmony_ci    int f;
92617a3babSopenharmony_ci} bld[gl_MaxPatchVertices];
93617a3babSopenharmony_ci
94617a3babSopenharmony_cilayout(location = 23) in vec4 ivla[];
95617a3babSopenharmony_cilayout(location = 24) in vec4 ivlb[];
96617a3babSopenharmony_cilayout(location = 24) in vec4 ivlc[];  // ERROR, overlap
97617a3babSopenharmony_ci
98617a3babSopenharmony_cilayout(location = 23) out vec4 ovla[2];
99617a3babSopenharmony_cilayout(location = 24) out vec4 ovlb[2];  // ERROR, overlap
100617a3babSopenharmony_ci
101617a3babSopenharmony_ciin float gl_TessLevelOuter[4];           // ERROR, can't redeclare
102617a3babSopenharmony_ci
103617a3babSopenharmony_cipatch in pinbn {
104617a3babSopenharmony_ci    int a;
105617a3babSopenharmony_ci} pinbi;
106617a3babSopenharmony_ci
107617a3babSopenharmony_cicentroid out vec3 myColor2;
108617a3babSopenharmony_cicentroid in vec3 centr[];
109617a3babSopenharmony_cisample out vec4 perSampleColor;
110617a3babSopenharmony_ci
111617a3babSopenharmony_civoid bbbad()
112617a3babSopenharmony_ci{
113617a3babSopenharmony_ci    gl_BoundingBoxOES; // ERROR, wrong stage
114617a3babSopenharmony_ci}
115