3 #extension GL_OES_tessellation_shader : enable
\r
5 layout(vertices = 4) out;
\r
6 out int outa[gl_out.length()];
\r
8 layout(quads) in; // ERROR
\r
9 layout(ccw) out; // ERROR
\r
10 layout(fractional_even_spacing) in; // ERROR
\r
12 patch in vec4 patchIn; // ERROR
\r
13 patch out vec4 patchOut;
\r
19 int a = gl_MaxTessControlInputComponents +
\r
20 gl_MaxTessControlOutputComponents +
\r
21 gl_MaxTessControlTextureImageUnits +
\r
22 gl_MaxTessControlUniformComponents +
\r
23 gl_MaxTessControlTotalOutputComponents;
\r
25 vec4 p = gl_in[1].gl_Position;
\r
26 float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
\r
27 float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES
\r
29 int pvi = gl_PatchVerticesIn;
\r
30 int pid = gl_PrimitiveID;
\r
31 int iid = gl_InvocationID;
\r
33 gl_out[gl_InvocationID].gl_Position = p;
\r
34 gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension
\r
35 gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; // ERROR, not in ES
\r
37 gl_TessLevelOuter[3] = 3.2;
\r
38 gl_TessLevelInner[1] = 1.3;
\r
56 a < 12 ? a : (barrier(), a); // ERROR
\r
66 layout(vertices = 4) in; // ERROR, not on in
\r
67 layout(vertices = 5) out; // ERROR, changing #
\r
71 gl_out[4].gl_Position; // ERROR, out of range
\r
73 barrier(); // ERROR, not in main
\r
76 in vec2 ina; // ERROR, not array
\r
78 in vec2 inc[18]; // ERROR, wrong size
\r
79 in vec2 ind[gl_MaxPatchVertices];
\r
80 patch out float implA[]; // ERROR, not sized
\r
82 #extension GL_ARB_separate_shader_objects : enable
\r
84 layout(location = 3) in vec4 ivla[];
\r
85 layout(location = 4) in vec4 ivlb[];
\r
86 layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping
\r
88 layout(location = 3) out vec4 ovla[];
\r
89 layout(location = 4) out vec4 ovlb[];
\r
90 layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping
\r
94 precise float d; // ERROR without gpu_shader5
\r
95 d = fma(d, d, d); // ERROR without gpu_shader5
\r
102 centroid out vec3 myColor2[];
\r
103 centroid in vec3 centr[];
\r
104 sample out vec4 perSampleColor[]; // ERROR without sample extensions
\r
106 layout(vertices = 4) out float badlay[]; // ERROR, not on a variable
\r
107 out float misSized[5]; // ERROR, size doesn't match
\r
108 out float okaySize[4];
\r
110 #extension GL_OES_tessellation_point_size : enable
\r
114 float ps = gl_in[1].gl_PointSize;
\r
115 gl_out[gl_InvocationID].gl_PointSize = ps;
\r
118 #extension GL_OES_gpu_shader5 : enable
\r
127 pv3 = fma(pv3, pv3, pv3);
\r
133 gl_BoundingBoxEXT; // ERROR without GL_EXT_primitive_bounding_box
\r
134 gl_BoundingBox; // ERROR, version < 320
\r
137 #extension GL_EXT_primitive_bounding_box : enable
\r
141 gl_BoundingBoxEXT[0] = vec4(0.0);
\r
142 gl_BoundingBoxEXT[1] = vec4(1.0);
\r
143 gl_BoundingBoxEXT[2] = vec4(2.0); // ERROR, overflow
\r
148 gl_BoundingBoxOES; // ERROR without GL_OES_primitive_bounding_box
\r
151 #extension GL_OES_primitive_bounding_box : enable
\r
155 gl_BoundingBoxOES[0] = vec4(0.0);
\r
156 gl_BoundingBoxOES[1] = vec4(1.0);
\r
157 gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow
\r
160 out patch badpatchBName { // ERROR, array size required
\r
164 out patch patchBName {
\r
168 void outputtingOutparam(out int a)
\r
175 outa[gl_InvocationID] = 2;
\r
176 outa[1] = 2; // ERROR, not gl_InvocationID
\r
177 gl_out[0].gl_Position = vec4(1.0); // ERROR, not gl_InvocationID
\r
180 outputtingOutparam(outa[0]); // ERROR, not gl_InvocationID
\r
181 outputtingOutparam(outa[gl_InvocationID]);
\r
182 patchIName[1].f = 3.14;
\r
183 outa[(gl_InvocationID)] = 2;
\r