10 vec2 v2 = dFdxFine(in2);
\r
11 vec3 v3 = dFdyCoarse(in3);
\r
12 vec4 v4 = fwidth(in4);
\r
15 float f = dFdx(in1) + dFdxFine(in1) + dFdxCoarse(in1);
\r
16 v4 = fwidthCoarse(in4) + fwidthFine(in4);
\r
18 float cull = gl_CullDistance[2];
\r
19 float consts = gl_MaxCullDistances + gl_MaxCombinedClipAndCullDistances + gl_MaxSamples;
\r
21 if (gl_HelperInvocation)
\r
24 int sum = gl_MaxVertexImageUniforms +
\r
25 gl_MaxFragmentImageUniforms +
\r
26 gl_MaxComputeImageUniforms +
\r
27 gl_MaxCombinedImageUniforms +
\r
28 gl_MaxCombinedShaderOutputResources;
\r
32 bvec2 b2 = mix(bvec2(b1), bvec2(b3), bvec2(b));
\r
33 uint um = mix(uin, uin, b);
\r
34 ivec3 im3 = mix(ivec3(uin), ivec3(uin), bvec3(b));
\r
37 uniform sampler2DMS s2dms;
\r
38 uniform usampler2DMSArray us2dmsa;
\r
39 layout(rgba32i) uniform iimage2DMS ii2dms;
\r
40 layout(rgba32f) uniform image2DMSArray i2dmsa;
\r
44 int s = textureSamples(s2dms);
\r
45 s += textureSamples(us2dmsa);
\r
46 s += imageSamples(ii2dms);
\r
47 s += imageSamples(i2dmsa);
\r
48 float f = imageAtomicExchange(i2dmsa, ivec3(in3), 2, 4.5);
\r
51 #extension GL_ARB_sparse_texture2: enable
\r
53 uniform sampler2D s2D;
\r
54 uniform isampler2DArray is2DArray;
\r
55 uniform sampler2DRectShadow s2DRectShadow;
\r
57 in flat ivec2 offsets[4];
\r
63 vec4 texel = vec4(0.0);
\r
64 ivec4 itexel = ivec4(0);
\r
65 const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0));
\r
66 sparseTextureGatherOffsetsARB(s2D, c2, constOffsets, texel);
\r
67 sparseTextureGatherOffsetsARB(is2DArray, c3, constOffsets, itexel, 2);
\r
68 sparseTextureGatherOffsetsARB(s2DRectShadow, c2, 2.0, constOffsets, texel);
\r
70 sparseTextureGatherOffsetsARB(s2D, c2, offsets, texel); // Error : Non constant offsets
\r
71 sparseTextureGatherOffsetsARB(is2DArray, c3, offsets, itexel, 2); // Error : Non constant offsets
\r
72 sparseTextureGatherOffsetsARB(s2DRectShadow, c2, 2.0, offsets, texel); // Error : Non constant offsets
\r
76 in float gl_CullDistance[6];
\r
80 return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i];
\r
83 layout(location = 6) in bName1 {
\r
85 layout(location = 7) float g;
\r
88 layout(location = 12) in bName2 {
\r
90 layout(location = 13) float g; // ERROR, location on array
\r
93 layout(early_fragment_tests) in float f; // ERROR, must be standalone
\r