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