#version 310 es #extension GL_EXT_tessellation_shader : enable #extension GL_OES_tessellation_shader : enable #extension GL_EXT_tessellation_shader : disable layout(vertices = 4) out; // ERROR layout(quads, cw) in; layout(triangles) in; // ERROR layout(isolines) in; // ERROR layout(ccw) in; // ERROR layout(cw) in; layout(fractional_odd_spacing) in; layout(equal_spacing) in; // ERROR layout(fractional_even_spacing) in; // ERROR layout(point_mode) in; patch in vec4 patchIn; patch out vec4 patchOut; // ERROR void main() { barrier(); // ERROR int a = gl_MaxTessEvaluationInputComponents + gl_MaxTessEvaluationOutputComponents + gl_MaxTessEvaluationTextureImageUnits + gl_MaxTessEvaluationUniformComponents + gl_MaxTessPatchComponents + gl_MaxPatchVertices + gl_MaxTessGenLevel; vec4 p = gl_in[1].gl_Position; float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES int pvi = gl_PatchVerticesIn; int pid = gl_PrimitiveID; vec3 tc = gl_TessCoord; float tlo = gl_TessLevelOuter[3]; float tli = gl_TessLevelInner[1]; gl_Position = p; gl_PointSize = ps; // ERROR, need point_size extension gl_ClipDistance[2] = cd; // ERROR, not in ES } smooth patch in vec4 badp1; // ERROR flat patch in vec4 badp2; // ERROR noperspective patch in vec4 badp3; // ERROR patch sample in vec3 badp4; // ERROR #extension GL_ARB_separate_shader_objects : enable in gl_PerVertex // ERROR, no size { vec4 gl_Position; } gl_in[]; in gl_PerVertex // ERROR, second redeclaration of gl_in { vec4 gl_Position; } gl_in[]; layout(quads, cw) out; // ERROR layout(triangles) out; // ERROR layout(isolines) out; // ERROR layout(cw) out; // ERROR layout(fractional_odd_spacing) out; // ERROR layout(equal_spacing) out; // ERROR layout(fractional_even_spacing) out; // ERROR layout(point_mode) out; // ERROR in vec2 ina; // ERROR, not array in vec2 inb[]; in vec2 inc[18]; // ERROR, wrong size in vec2 ind[gl_MaxPatchVertices]; in testbla { // ERROR, not array int f; } bla; in testblb { int f; } blb[]; in testblc { // ERROR wrong size int f; } blc[18]; in testbld { int f; } bld[gl_MaxPatchVertices]; layout(location = 23) in vec4 ivla[]; layout(location = 24) in vec4 ivlb[]; layout(location = 24) in vec4 ivlc[]; // ERROR, overlap layout(location = 23) out vec4 ovla[2]; layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap in float gl_TessLevelOuter[4]; // ERROR, can't redeclare patch in pinbn { int a; } pinbi; centroid out vec3 myColor2; centroid in vec3 centr[]; sample out vec4 perSampleColor; // ERROR without sample extensions #extension GL_OES_tessellation_point_size : enable void pointSize2() { float ps = gl_in[1].gl_PointSize; // ERROR, not in the redeclaration, but no error on use of gl_PointSize gl_PointSize = ps; } #extension GL_EXT_primitive_bounding_box : enable void bbbad() { gl_BoundingBoxOES; // ERROR, wrong stage }