126 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			GLSL
		
	
	
	
#version 400 core
 | 
						|
 | 
						|
layout(vertices = 4) out;
 | 
						|
int outa[gl_out.length()];
 | 
						|
 | 
						|
layout(quads) in;                   // ERROR
 | 
						|
layout(ccw) out;                    // ERROR
 | 
						|
layout(fractional_even_spacing) in; // ERROR
 | 
						|
 | 
						|
patch in vec4 patchIn;              // ERROR
 | 
						|
patch out vec4 patchOut;
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    barrier();
 | 
						|
 | 
						|
    int a = gl_MaxTessControlInputComponents +
 | 
						|
            gl_MaxTessControlOutputComponents +
 | 
						|
            gl_MaxTessControlTextureImageUnits +
 | 
						|
            gl_MaxTessControlUniformComponents +
 | 
						|
            gl_MaxTessControlTotalOutputComponents;
 | 
						|
 | 
						|
    vec4 p = gl_in[1].gl_Position;
 | 
						|
    float ps = gl_in[1].gl_PointSize;
 | 
						|
    float cd = gl_in[1].gl_ClipDistance[2];
 | 
						|
 | 
						|
    int pvi = gl_PatchVerticesIn;
 | 
						|
    int pid = gl_PrimitiveID;
 | 
						|
    int iid = gl_InvocationID;
 | 
						|
 | 
						|
    gl_out[gl_InvocationID].gl_Position = p;
 | 
						|
    gl_out[gl_InvocationID].gl_PointSize = ps;
 | 
						|
    gl_out[gl_InvocationID].gl_ClipDistance[1] = cd;
 | 
						|
 | 
						|
    gl_TessLevelOuter[3] = 3.2;
 | 
						|
    gl_TessLevelInner[1] = 1.3;
 | 
						|
 | 
						|
    if (a > 10)
 | 
						|
        barrier();           // ERROR
 | 
						|
    else
 | 
						|
        barrier();           // ERROR
 | 
						|
 | 
						|
    barrier();
 | 
						|
 | 
						|
    do {
 | 
						|
        barrier();           // ERROR
 | 
						|
    } while (a > 10);
 | 
						|
 | 
						|
    switch (a) {
 | 
						|
    default:
 | 
						|
        barrier();           // ERROR
 | 
						|
        break;
 | 
						|
    }
 | 
						|
    a < 12 ? a : (barrier(), a); // ERROR
 | 
						|
    {
 | 
						|
        barrier();
 | 
						|
    }
 | 
						|
 | 
						|
    return;
 | 
						|
 | 
						|
    barrier();               // ERROR
 | 
						|
}
 | 
						|
 | 
						|
layout(vertices = 4) in;    // ERROR
 | 
						|
layout(vertices = 5) out;   // ERROR
 | 
						|
 | 
						|
void foo()
 | 
						|
{
 | 
						|
    gl_out[4].gl_PointSize;  // ERROR
 | 
						|
 | 
						|
    barrier();                // ERROR
 | 
						|
}
 | 
						|
 | 
						|
in vec2 ina;   // ERROR, not array
 | 
						|
in vec2 inb[];
 | 
						|
in vec2 inc[18];  // ERROR, wrong size
 | 
						|
in vec2 ind[gl_MaxPatchVertices];
 | 
						|
 | 
						|
#extension GL_ARB_separate_shader_objects : enable
 | 
						|
 | 
						|
layout(location = 3) in vec4 ivla[];
 | 
						|
layout(location = 4) in vec4 ivlb[];
 | 
						|
layout(location = 4) in vec4 ivlc[];  // ERROR, overlapping
 | 
						|
 | 
						|
layout(location = 3) out vec4 ovla[];
 | 
						|
layout(location = 4) out vec4 ovlb[];
 | 
						|
layout(location = 4) out vec4 ovlc[];  // ERROR, overlapping
 | 
						|
 | 
						|
precise vec3 pv3;
 | 
						|
 | 
						|
void foop()
 | 
						|
{
 | 
						|
    precise double d;
 | 
						|
 | 
						|
    pv3 *= pv3;
 | 
						|
    pv3 = fma(pv3, pv3, pv3);
 | 
						|
    d = fma(d, d, d);
 | 
						|
}
 | 
						|
 | 
						|
patch out pinbn {
 | 
						|
    int a;
 | 
						|
} pinbi;
 | 
						|
 | 
						|
invariant precise out vec4 badOrder[]; // ERROR, precise must appear first
 | 
						|
void badp(out precise float f);        // ERROR, precise must appear first
 | 
						|
 | 
						|
void devi()
 | 
						|
{
 | 
						|
    gl_DeviceIndex; // ERROR, no extension
 | 
						|
    gl_ViewIndex;   // ERROR, no extension
 | 
						|
}
 | 
						|
 | 
						|
#ifdef GL_EXT_device_group
 | 
						|
#extension GL_EXT_device_group : enable
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef GL_EXT_multiview
 | 
						|
#extension GL_EXT_multiview : enable
 | 
						|
#endif
 | 
						|
 | 
						|
void devie()
 | 
						|
{
 | 
						|
    gl_DeviceIndex;
 | 
						|
    gl_ViewIndex;
 | 
						|
}
 |