13 smooth in float fsmooth;
14 noperspective in float fnop;
18 float clip = gl_ClipDistance[3];
21 uniform samplerCube sampC;
25 vec4 s = textureGather(sampC, vec3(0.2));
28 #extension GL_ARB_texture_gather : enable
32 vec4 s = textureGather(sampC, vec3(0.2));
35 flat in vec3 gl_Color; // ERROR, type
37 flat in vec4 gl_Color;
38 flat in vec4 gl_Color[2]; // ERROR, array
39 vec4 gl_Color; // ERROR, storage
41 #extension GL_ARB_texture_gather : warn
45 vec4 s = textureGather(sampC, vec3(0.2));
49 b3 = lessThan(uv3, uv3);
51 const bvec2 bl1 = greaterThanEqual(uvec2(2, 3), uvec2(3,3));
52 const bvec2 bl2 = equal(uvec2(2, 3), uvec2(3,3));
53 const bvec2 bl3 = equal(bl1, bl2); // yes, equal
58 const bvec4 bl4 = notEqual(greaterThan(uvec4(1,2,3,4), uvec4(0,2,0,6)), lessThanEqual(uvec4(7,8,9,10), uvec4(6, 8, 0, 11))); // compare (t,f,t,f) with (f,t,f,t)
59 int a3[int(bl4.x)+int(bl4.y)+int(bl4.z)+int(bl4.w)];
64 uvec2(2, 3) >= uvec2(3,3); // ERROR
65 int(bl4) <= int(bl4); // true
66 int(bl4.x) > int(bl4.y); // false
69 #extension GL_ARB_texture_gather : enable
70 #extension GL_ARB_texture_rectangle : enable
72 uniform sampler2D samp2D;
73 uniform sampler2DShadow samp2DS;
74 uniform sampler2DRect samp2DR;
75 uniform sampler2DArray samp2DA;
80 s = textureGatherOffset(sampC, vec3(0.3), ivec2(1)); // ERROR
81 s = textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); // ERROR
82 s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1));
83 s = textureGatherOffset(samp2DA, vec3(0.3), ivec2(1));
84 s = textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); // ERROR
85 s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); // ERROR
88 #extension GL_ARB_gpu_shader5 : enable
93 s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1));
94 s = textureGatherOffset(samp2DA, vec3(0.3), ivec2(1));
95 s = textureGatherOffset(samp2DR, vec2(0.3), ivec2(1));
96 s = textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1));
97 s = textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2);
100 #extension GL_ARB_texture_cube_map_array : enable
102 uniform samplerCubeArray Sca;
103 uniform isamplerCubeArray Isca;
104 uniform usamplerCubeArray Usca;
105 uniform samplerCubeArrayShadow Scas;
109 ivec3 a = textureSize(Sca, 3);
110 vec4 b = texture(Sca, i);
111 ivec4 c = texture(Isca, i, 0.7);
112 uvec4 d = texture(Usca, i);
114 b = textureLod(Sca, i, 1.7);
115 a = textureSize(Scas, a.x);
116 float f = texture(Scas, i, b.y);
117 c = textureGrad(Isca, i, vec3(0.1), vec3(0.2));
121 x; // ERROR until 420pack is turned on
123 #extension GL_ARB_shading_language_420pack : enable
125 const int ai[3] = { 10, 23, 32 };
126 layout(binding=0) uniform blockname { int a; } instanceName; // ERROR
127 uniform layout(binding=0) sampler2D bounds;
134 int a2 = m43.length();
135 a2 += m43[1].length();
137 const float b = 2 * a1;
138 a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset;
140 boolb.length(); // ERROR
141 m43[3][1].length(); // ERROR
143 v3.length(b); // ERROR
146 in float gl_FogFragCoord;
148 #extension GL_ARB_separate_shader_objects : enable
150 in float gl_FogFragCoord;
151 in int gl_FogFragCoord; // ERROR
153 layout(early_fragment_tests) in; // ERROR
154 layout(r32i) uniform iimage2D iimg2Dbad; // ERROR
156 #extension GL_ARB_shader_image_load_store : enable
158 layout(early_fragment_tests) in;
160 layout(r32i) uniform iimage2D iimg2D;
165 imageAtomicCompSwap(iimg2D, ivec2(i,i), i, i);
166 ivec4 pos = imageLoad(iimg2D, ivec2(i,i));
169 layout(early_fragment_tests) out; // ERROR