123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #version 320 es
- precision mediump float;
- in fromVertex {
- in vec3 color;
- } fromV[];
- in vec4 nonBlockUnsized[];
- out toFragment {
- out vec3 color;
- } toF;
- out fromVertex { // okay to reuse a block name for another block name
- vec3 color;
- };
- out fooB { // ERROR, cannot reuse block name as block instance
- vec2 color;
- } fromVertex;
- int fromVertex; // ERROR, cannot reuse a block name for something else
- out fooC { // ERROR, cannot have same name for block and instance name
- vec2 color;
- } fooC;
- void main()
- {
- EmitVertex();
- EndPrimitive();
- EmitStreamVertex(1); // ERROR
- EndStreamPrimitive(0); // ERROR
- color = fromV[0].color;
- gl_ClipDistance[3] = // ERROR, no ClipDistance
- gl_in[1].gl_ClipDistance[2]; // ERROR, no ClipDistance
- gl_Position = gl_in[0].gl_Position;
- gl_PrimitiveID = gl_PrimitiveIDIn;
- gl_Layer = 2;
- }
- layout(stream = 4) out vec4 ov4; // ERROR, no streams
- layout(line_strip, points, triangle_strip, points, triangle_strip) out; // just means triangle_strip"
- out ooutb { vec4 a; } ouuaa6;
- layout(max_vertices = 200) out;
- layout(max_vertices = 300) out; // ERROR, too big
- void foo(layout(max_vertices = 4) int a) // ERROR
- {
- ouuaa6.a = vec4(1.0);
- }
- layout(line_strip, points, triangle_strip, points) out; // ERROR, changing output primitive
- layout(line_strip, points) out; // ERROR, changing output primitive
- layout(triangle_strip) in; // ERROR, not an input primitive
- layout(triangle_strip) uniform; // ERROR
- layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable
- layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input
- layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0
- out outbn2 {
- layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0
- layout(max_vertices = 3) int b; // ERROR, not on a block member
- layout(triangle_strip) int c; // ERROR, not on a block member
- } outbi;
- layout(lines) out; // ERROR, not on output
- layout(lines_adjacency) in;
- layout(triangles) in; // ERROR, can't change it
- layout(triangles_adjacency) in; // ERROR, can't change it
- layout(invocations = 4) in;
- in sameName {
- int a15;
- } insn[];
- out sameName {
- float f15;
- };
- uniform sameName {
- bool b15;
- };
- const int summ = gl_MaxVertexAttribs +
- gl_MaxGeometryInputComponents +
- gl_MaxGeometryOutputComponents +
- gl_MaxGeometryImageUniforms +
- gl_MaxGeometryTextureImageUnits +
- gl_MaxGeometryOutputVertices +
- gl_MaxGeometryTotalOutputComponents +
- gl_MaxGeometryUniformComponents +
- gl_MaxGeometryAtomicCounters +
- gl_MaxGeometryAtomicCounterBuffers +
- gl_MaxVertexTextureImageUnits +
- gl_MaxCombinedTextureImageUnits +
- gl_MaxTextureImageUnits +
- gl_MaxDrawBuffers;
- void fooe1()
- {
- gl_ViewportIndex; // ERROR, not in ES
- gl_MaxViewports; // ERROR, not in ES
- insn.length(); // 4: lines_adjacency
- int inv = gl_InvocationID;
- }
- in vec4 explArray[4];
- in vec4 explArrayBad[5]; // ERROR, wrong size
- in vec4 nonArrayed; // ERROR, not an array
- flat out vec3 myColor1;
- centroid out vec3 myColor2;
- centroid in vec3 centr[];
- sample out vec4 perSampleColor; // ERROR without sample extensions
- layout(max_vertices = 200) out; // matching redecl
- layout(location = 7, component = 2) in float comp[]; // ERROR, es has no component
- void notHere()
- {
- gl_MaxGeometryVaryingComponents; // ERROR, not in ES
- gl_VerticesIn; // ERROR, not in ES
- }
- void pointSize2()
- {
- highp float ps = gl_in[3].gl_PointSize; // ERROR, need extension
- gl_PointSize = ps; // ERROR, need extension
- }
|