1#version 310 es 2 3#extension GL_EXT_tessellation_shader : enable 4#extension GL_OES_tessellation_shader : enable 5#extension GL_EXT_tessellation_shader : disable 6 7layout(vertices = 4) out; // ERROR 8layout(quads, cw) in; 9layout(triangles) in; // ERROR 10layout(isolines) in; // ERROR 11 12layout(ccw) in; // ERROR 13layout(cw) in; 14 15layout(fractional_odd_spacing) in; 16layout(equal_spacing) in; // ERROR 17layout(fractional_even_spacing) in; // ERROR 18 19layout(point_mode) in; 20 21patch in vec4 patchIn; 22patch out vec4 patchOut; // ERROR 23 24void main() 25{ 26 barrier(); // ERROR 27 28 int a = gl_MaxTessEvaluationInputComponents + 29 gl_MaxTessEvaluationOutputComponents + 30 gl_MaxTessEvaluationTextureImageUnits + 31 gl_MaxTessEvaluationUniformComponents + 32 gl_MaxTessPatchComponents + 33 gl_MaxPatchVertices + 34 gl_MaxTessGenLevel; 35 36 vec4 p = gl_in[1].gl_Position; 37 float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension 38 float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES 39 40 int pvi = gl_PatchVerticesIn; 41 int pid = gl_PrimitiveID; 42 vec3 tc = gl_TessCoord; 43 float tlo = gl_TessLevelOuter[3]; 44 float tli = gl_TessLevelInner[1]; 45 46 gl_Position = p; 47 gl_PointSize = ps; // ERROR, need point_size extension 48 gl_ClipDistance[2] = cd; // ERROR, not in ES 49} 50 51smooth patch in vec4 badp1; // ERROR 52flat patch in vec4 badp2; // ERROR 53noperspective patch in vec4 badp3; // ERROR 54patch sample in vec3 badp4; // ERROR 55 56#extension GL_ARB_separate_shader_objects : enable 57 58in gl_PerVertex 59{ 60 vec4 gl_Position; 61} gl_in[]; 62 63in gl_PerVertex // ERROR, second redeclaration of gl_in 64{ 65 vec4 gl_Position; 66} gl_in[]; 67 68layout(quads, cw) out; // ERROR 69layout(triangles) out; // ERROR 70layout(isolines) out; // ERROR 71layout(cw) out; // ERROR 72layout(fractional_odd_spacing) out; // ERROR 73layout(equal_spacing) out; // ERROR 74layout(fractional_even_spacing) out; // ERROR 75layout(point_mode) out; // ERROR 76 77in vec2 ina; // ERROR, not array 78in vec2 inb[]; 79in vec2 inc[18]; // ERROR, wrong size 80in vec2 ind[gl_MaxPatchVertices]; 81 82in testbla { // ERROR, not array 83 int f; 84} bla; 85 86in testblb { 87 int f; 88} blb[]; 89 90in testblc { // ERROR wrong size 91 int f; 92} blc[18]; 93 94in testbld { 95 int f; 96} bld[gl_MaxPatchVertices]; 97 98layout(location = 23) in vec4 ivla[]; 99layout(location = 24) in vec4 ivlb[]; 100layout(location = 24) in vec4 ivlc[]; // ERROR, overlap 101 102layout(location = 23) out vec4 ovla[2]; 103layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap 104 105in float gl_TessLevelOuter[4]; // ERROR, can't redeclare 106 107patch in pinbn { 108 int a; 109} pinbi; 110 111centroid out vec3 myColor2; 112centroid in vec3 centr[]; 113sample out vec4 perSampleColor; // ERROR without sample extensions 114 115#extension GL_OES_tessellation_point_size : enable 116 117void pointSize2() 118{ 119 float ps = gl_in[1].gl_PointSize; // ERROR, not in the redeclaration, but no error on use of gl_PointSize 120 gl_PointSize = ps; 121} 122 123#extension GL_EXT_primitive_bounding_box : enable 124 125void bbbad() 126{ 127 gl_BoundingBoxOES; // ERROR, wrong stage 128} 129