3 in vec4 gl_FragCoord;
\r
4 layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR
\r
5 layout(pixel_center_integer) in vec4 gl_FragCoord; // ERROR
\r
6 layout(origin_upper_left) in vec4 foo; // ERROR
\r
7 layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;
\r
11 vec4 c = gl_FragCoord;
\r
14 layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use
\r
16 in struct S { float f; } s;
\r
20 uniform sampler2DMS sms;
\r
21 uniform isampler2DMS isms;
\r
22 uniform usampler2DMS usms;
\r
23 uniform sampler2DMSArray smsa;
\r
24 uniform isampler2DMSArray ismsa;
\r
25 uniform usampler2DMSArray usmsa;
\r
33 ivec2 t11 = textureSize( sms);
\r
34 ivec2 t12 = textureSize(isms);
\r
35 ivec2 t13 = textureSize(usms);
\r
36 ivec3 t21 = textureSize( smsa);
\r
37 ivec3 t22 = textureSize(ismsa);
\r
38 ivec3 t23 = textureSize(usmsa);
\r
39 vec4 t31 = texelFetch( sms, p2, samp);
\r
40 ivec4 t32 = texelFetch(isms, p2, samp);
\r
41 uvec4 t33 = texelFetch(usms, p2, 3);
\r
42 vec4 t41 = texelFetch( smsa, p3, samp);
\r
43 ivec4 t42 = texelFetch(ismsa, ivec3(2), samp);
\r
44 uvec4 t43 = texelFetch(usmsa, p3, samp);
\r
49 return gl_PrimitiveID;
\r
50 gl_PerFragment; // ERROR, block name can't get reused
\r
53 in double type1; // ERROR
\r
54 #extension GL_ARB_gpu_shader_fp64 : enable
\r
57 int absTest = sqrt(type3);
\r
58 double absTest2 = sqrt(type3);
\r
59 double absTest3 = sqrt(2);
\r
60 float dk = sqrt(11);
\r
62 #extension GL_ARB_shader_bit_encoding: enable
\r
68 void bitEncodingPass()
\r
70 int i = floatBitsToInt(f);
\r
71 uvec4 uv11 = floatBitsToUint(v4);
\r
72 vec4 v14 = intBitsToFloat(iv4a);
\r
73 vec2 v15 = uintBitsToFloat(uv2c);
\r
76 #extension GL_ARB_shader_bit_encoding: disable
\r
78 void bitEncodingFail()
\r
80 int i = floatBitsToInt(f); // Error, extention GL_ARB_bit_encoding is diabled
\r
83 #extension GL_ARB_shading_language_packing : enable
\r
89 uint u19 = packSnorm2x16(v2a);
\r
90 vec2 v20 = unpackSnorm2x16(uy);
\r
91 uint u15 = packUnorm2x16(v2a);
\r
92 vec2 v16 = unpackUnorm2x16(uy);
\r
93 uint u17 = packHalf2x16(v2a);
\r
94 vec2 v18 = unpackHalf2x16(uy);
\r
97 #extension GL_ARB_shading_language_packing : disable
\r
100 uint u19 = packSnorm2x16(v2a); // Error, extension GL_ARB_shading_language_packing is disabled
\r
103 // Testing extension GL_ARB_texture_query_lod
\r
104 uniform sampler1D samp1D;
\r
105 uniform sampler2DShadow samp2Ds;
\r
114 lod = textureQueryLod(samp1D, pf); // ERROR, extension GL_ARB_texture_query_lod needed
\r
115 lod = textureQueryLod(samp2Ds, pf2); // ERROR, extension GL_ARB_texture_query_lod needed
\r
118 #extension GL_ARB_texture_query_lod : enable
\r
120 uniform isampler2D isamp2D;
\r
121 uniform usampler3D usamp3D;
\r
122 uniform samplerCube sampCube;
\r
123 uniform isampler1DArray isamp1DA;
\r
124 uniform usampler2DArray usamp2DA;
\r
126 uniform sampler1DShadow samp1Ds;
\r
127 uniform samplerCubeShadow sampCubes;
\r
128 uniform sampler1DArrayShadow samp1DAs;
\r
129 uniform sampler2DArrayShadow samp2DAs;
\r
131 uniform samplerBuffer sampBuf;
\r
132 uniform sampler2DRect sampRect;
\r
141 lod = textureQueryLod(samp1D, pf);
\r
142 lod = textureQueryLod(isamp2D, pf2);
\r
143 lod = textureQueryLod(usamp3D, pf3);
\r
144 lod = textureQueryLod(sampCube, pf3);
\r
145 lod = textureQueryLod(isamp1DA, pf);
\r
146 lod = textureQueryLod(usamp2DA, pf2);
\r
148 lod = textureQueryLod(samp1Ds, pf);
\r
149 lod = textureQueryLod(samp2Ds, pf2);
\r
150 lod = textureQueryLod(sampCubes, pf3);
\r
151 lod = textureQueryLod(samp1DAs, pf);
\r
152 lod = textureQueryLod(samp2DAs, pf2);
\r
154 lod = textureQueryLod(sampBuf, pf); // ERROR
\r
155 lod = textureQueryLod(sampRect, pf2); // ERROR
\r
158 // Test extension GL_EXT_shader_integer_mix
\r
159 #extension GL_EXT_shader_integer_mix : enable
\r
166 int ival = mix(x, y, b);
\r
167 ivec2 iv2 = mix(ivec2(x), ivec2(y), bvec2(b));
\r
168 ivec3 iv3 = mix(ivec3(x), ivec3(y), bvec3(b));
\r
169 ivec4 iv4 = mix(ivec4(x), ivec4(x), bvec4(b));
\r
170 uint uiv = mix(z, w, b);
\r
171 uvec2 uv2 = mix(uvec2(z), uvec2(z), bvec2(b));
\r
172 uvec3 uv3 = mix(uvec3(z), uvec3(z), bvec3(b));
\r
173 uvec4 uv4 = mix(uvec4(z), uvec4(z), bvec4(b));
\r
174 bool bv = mix(b1, b2, b);
\r
175 bvec2 bv2 = mix(bvec2(b1), bvec2(b2), bvec2(b));
\r
176 bvec3 bv3 = mix(bvec3(b1), bvec3(b2), bvec3(b));
\r
177 bvec4 bv4 = mix(bvec4(b1), bvec4(b2), bvec4(b));
\r
180 #extension GL_EXT_shader_integer_mix : disable
\r
183 int ival = mix(x, y, b); // Error since extenson GL_EXT_shader_integer_mix is disabled
\r