80 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			GLSL
		
	
	
	
#version 140
 | 
						|
 | 
						|
uniform isamplerBuffer sbuf;
 | 
						|
 | 
						|
layout(std140) uniform blockName {
 | 
						|
    int anonMem;
 | 
						|
};
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    int id = gl_InstanceID;
 | 
						|
    id += anonMem;
 | 
						|
    id += texelFetch(sbuf, 8).w;
 | 
						|
    gl_ClipVertex;      // could be ERROR, but compiling under compatibility profile
 | 
						|
    gl_Color;           // could be ERROR, but compiling under compatibility profile
 | 
						|
    gl_LightSource[0];  // could be ERROR, but compiling under compatibility profile
 | 
						|
    gl_DepthRange.far;
 | 
						|
    gl_TexCoord;        // could be ERROR, but compiling under compatibility profile
 | 
						|
    gl_FogFragCoord;    // could be ERROR, but compiling under compatibility profile
 | 
						|
    gl_FrontColor;      // could be ERROR, but compiling under compatibility profile
 | 
						|
}
 | 
						|
 | 
						|
out vec4 gl_Position;  // ERROR
 | 
						|
 | 
						|
layout(location = 9) in vec4 locBad;  // ERROR
 | 
						|
 | 
						|
#extension GL_ARB_explicit_attrib_location : enable
 | 
						|
 | 
						|
layout(location = 9) in vec4 loc;
 | 
						|
 | 
						|
#extension GL_ARB_separate_shader_objects : enable
 | 
						|
 | 
						|
out vec4 gl_Position;
 | 
						|
in vec4 gl_Position;   // ERROR
 | 
						|
out vec3 gl_Position;  // ERROR
 | 
						|
 | 
						|
out float gl_PointSize;
 | 
						|
out vec4 gl_ClipVertex;
 | 
						|
out float gl_FogFragCoord;
 | 
						|
 | 
						|
uniform sampler2DRect s2dr;
 | 
						|
uniform sampler2DRectShadow s2drs;
 | 
						|
in ivec2 itloc2;
 | 
						|
in vec2 tloc2;
 | 
						|
in vec3 tloc3;
 | 
						|
in vec4 tloc4;
 | 
						|
 | 
						|
void foo()
 | 
						|
{
 | 
						|
    vec4 v = texelFetch(s2dr, itloc2);
 | 
						|
    v += texelFetch(s2dr, itloc2, 0.2);     // ERROR, no lod
 | 
						|
    v += texture(s2dr, tloc2);
 | 
						|
    v += texture(s2dr, tloc2, 0.3);         // ERROR, no bias
 | 
						|
    v += texture(s2drs, tloc3);
 | 
						|
    v += textureProj(s2dr, tloc3);
 | 
						|
    v += textureProj(s2dr, tloc4);
 | 
						|
    v += textureProjGradOffset(s2dr, tloc4, ivec2(0.0), ivec2(0.0), ivec2(1,2));
 | 
						|
    v += textureProjGradOffset(s2drs, tloc4, ivec2(0.0), ivec2(0.0), ivec2(1,2));
 | 
						|
}
 | 
						|
 | 
						|
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;
 | 
						|
}
 |