summaryrefslogtreecommitdiffstats
path: root/tests/language-feature/capability
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2025-01-17 14:37:27 -0800
committerGitHub <noreply@github.com>2025-01-17 14:37:27 -0800
commitfc77070fdc9bfa599e8d66b21743778de3011e53 (patch)
treea9a0983bd704b0e760ae94d5330a74bc72f1154f /tests/language-feature/capability
parent3ff257816fc8f376d9bee76378a690757f8b5377 (diff)
Refactor _Texture to constrain on texel types. (#6115)
* Refactor _Texture to constrain on texel types. * Fix tests. * Fix. * Disable glsl texture test because rhi can't run it correctly.
Diffstat (limited to 'tests/language-feature/capability')
-rw-r--r--tests/language-feature/capability/intrinsic-texture-ignore-capability.slang384
1 files changed, 192 insertions, 192 deletions
diff --git a/tests/language-feature/capability/intrinsic-texture-ignore-capability.slang b/tests/language-feature/capability/intrinsic-texture-ignore-capability.slang
index 148eff07a..dfdbb7083 100644
--- a/tests/language-feature/capability/intrinsic-texture-ignore-capability.slang
+++ b/tests/language-feature/capability/intrinsic-texture-ignore-capability.slang
@@ -50,19 +50,19 @@ uniform usampler2DArray uniform_usampler2DArray;
uniform usamplerCubeArray uniform_usamplerCubeArray;
uniform usamplerBuffer uniform_usamplerBuffer;
-__generic<T : __BuiltinFloatingPointType, let N : int>
-bool textureFuncs( Sampler1D<vector<T,N>> gsampler1D
- , Sampler2D<vector<T,N>> gsampler2D
- , Sampler2DRect<vector<T,N>> gsampler2DRect
- , Sampler3D<vector<T,N>> gsampler3D
- , SamplerCube<vector<T,N>> gsamplerCube
- , Sampler1DArray<vector<T,N>> gsampler1DArray
- , Sampler2DArray<vector<T,N>> gsampler2DArray
- , SamplerCubeArray<vector<T,N>> gsamplerCubeArray
- , SamplerBuffer<vector<T,N>> gsamplerBuffer
+__generic<T : ITexelElement>
+bool textureFuncs( Sampler1D<T> gsampler1D
+ , Sampler2D<T> gsampler2D
+ , Sampler2DRect<T> gsampler2DRect
+ , Sampler3D<T> gsampler3D
+ , SamplerCube<T> gsamplerCube
+ , Sampler1DArray<T> gsampler1DArray
+ , Sampler2DArray<T> gsampler2DArray
+ , SamplerCubeArray<T> gsamplerCubeArray
+ , SamplerBuffer<T> gsamplerBuffer
)
{
- typealias gvec4 = vector<T,4>;
+ typealias gvec4 = vector<T.Element,4>;
constexpr ivec2 ivec2_0 = ivec2(0);
@@ -111,209 +111,209 @@ bool textureFuncs( Sampler1D<vector<T,N>> gsampler1D
&& int(0) == textureQueryLevels(uniform_sampler2DArrayShadow)
&& int(0) == textureQueryLevels(uniform_samplerCubeArrayShadow)
// 8.9.2. Texel Lookup Functions
- && gvec4(T(0)) == texture(gsampler1D, float(0))
- && gvec4(T(0)) == texture(gsampler1D, float(0), float(0))
- && gvec4(T(0)) == texture(gsampler2D, vec2(0))
- && gvec4(T(0)) == texture(gsampler2D, vec2(0), float(0))
- && gvec4(T(0)) == texture(gsampler3D, vec3(0))
- && gvec4(T(0)) == texture(gsampler3D, vec3(0), float(0))
- && gvec4(T(0)) == texture(gsamplerCube, vec3(0) )
- && gvec4(T(0)) == texture(gsamplerCube, vec3(0), float(0))
+ && gvec4(T.Element(0)) == texture(gsampler1D, float(0))
+ && gvec4(T.Element(0)) == texture(gsampler1D, float(0), float(0))
+ && gvec4(T.Element(0)) == texture(gsampler2D, vec2(0))
+ && gvec4(T.Element(0)) == texture(gsampler2D, vec2(0), float(0))
+ && gvec4(T.Element(0)) == texture(gsampler3D, vec3(0))
+ && gvec4(T.Element(0)) == texture(gsampler3D, vec3(0), float(0))
+ && gvec4(T.Element(0)) == texture(gsamplerCube, vec3(0) )
+ && gvec4(T.Element(0)) == texture(gsamplerCube, vec3(0), float(0))
&& float(0) == texture(uniform_sampler1DShadow, vec3(0))
&& float(0) == texture(uniform_sampler1DShadow, vec3(0), float(0))
&& float(0) == texture(uniform_sampler2DShadow, vec3(0))
&& float(0) == texture(uniform_sampler2DShadow, vec3(0), float(0))
&& float(0) == texture(uniform_samplerCubeShadow, vec4(0))
&& float(0) == texture(uniform_samplerCubeShadow, vec4(0), float(0))
- && gvec4(T(0)) == texture(gsampler2DArray, vec3(0))
- && gvec4(T(0)) == texture(gsampler2DArray, vec3(0), float(0))
- && gvec4(T(0)) == texture(gsamplerCubeArray, vec4(0) )
- && gvec4(T(0)) == texture(gsamplerCubeArray, vec4(0), float(0))
- && gvec4(T(0)) == texture(gsampler1DArray, vec2(0))
- && gvec4(T(0)) == texture(gsampler1DArray, vec2(0), float(0))
+ && gvec4(T.Element(0)) == texture(gsampler2DArray, vec3(0))
+ && gvec4(T.Element(0)) == texture(gsampler2DArray, vec3(0), float(0))
+ && gvec4(T.Element(0)) == texture(gsamplerCubeArray, vec4(0) )
+ && gvec4(T.Element(0)) == texture(gsamplerCubeArray, vec4(0), float(0))
+ && gvec4(T.Element(0)) == texture(gsampler1DArray, vec2(0))
+ && gvec4(T.Element(0)) == texture(gsampler1DArray, vec2(0), float(0))
&& float(0) == texture(uniform_sampler1DArrayShadow, vec3(0))
&& float(0) == texture(uniform_sampler1DArrayShadow, vec3(0), float(0))
&& float(0) == texture(uniform_sampler2DArrayShadow, vec4(0))
- && gvec4(T(0)) == texture(gsampler2DRect, vec2(0))
+ && gvec4(T.Element(0)) == texture(gsampler2DRect, vec2(0))
&& float(0) == texture(uniform_sampler2DRectShadow, vec3(0))
&& float(0) == texture(uniform_samplerCubeArrayShadow, vec4(0), float(0))
- && gvec4(T(0)) == textureProj(gsampler1D, vec2(0))
- && gvec4(T(0)) == textureProj(gsampler1D, vec2(0), float(0))
- && gvec4(T(0)) == textureProj(gsampler1D, vec4(0))
- && gvec4(T(0)) == textureProj(gsampler1D, vec4(0), float(0))
- && gvec4(T(0)) == textureProj(gsampler2D, vec3(0))
- && gvec4(T(0)) == textureProj(gsampler2D, vec3(0), float(0))
- && gvec4(T(0)) == textureProj(gsampler2D, vec4(0))
- && gvec4(T(0)) == textureProj(gsampler2D, vec4(0), float(0))
- && gvec4(T(0)) == textureProj(gsampler3D, vec4(0))
- && gvec4(T(0)) == textureProj(gsampler3D, vec4(0), float(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler1D, vec2(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler1D, vec2(0), float(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler1D, vec4(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler1D, vec4(0), float(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler2D, vec3(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler2D, vec3(0), float(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler2D, vec4(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler2D, vec4(0), float(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler3D, vec4(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler3D, vec4(0), float(0))
&& float(0) == textureProj(uniform_sampler1DShadow, vec4(0))
&& float(0) == textureProj(uniform_sampler1DShadow, vec4(0), float(0))
&& float(0) == textureProj(uniform_sampler2DShadow, vec4(0))
&& float(0) == textureProj(uniform_sampler2DShadow, vec4(0), float(0))
- && gvec4(T(0)) == textureProj(gsampler2DRect, vec3(0))
- && gvec4(T(0)) == textureProj(gsampler2DRect, vec4(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler2DRect, vec3(0))
+ && gvec4(T.Element(0)) == textureProj(gsampler2DRect, vec4(0))
&& float(0) == textureProj(uniform_sampler2DRectShadow, vec4(0))
- && gvec4(T(0)) == textureLod(gsampler1D, float(0), float(0))
- && gvec4(T(0)) == textureLod(gsampler2D, vec2(0), float(0))
- && gvec4(T(0)) == textureLod(gsampler3D, vec3(0), float(0))
- && gvec4(T(0)) == textureLod(gsamplerCube, vec3(0), float(0))
+ && gvec4(T.Element(0)) == textureLod(gsampler1D, float(0), float(0))
+ && gvec4(T.Element(0)) == textureLod(gsampler2D, vec2(0), float(0))
+ && gvec4(T.Element(0)) == textureLod(gsampler3D, vec3(0), float(0))
+ && gvec4(T.Element(0)) == textureLod(gsamplerCube, vec3(0), float(0))
&& float(0) == textureLod(uniform_sampler2DShadow, vec3(0), float(0))
&& float(0) == textureLod(uniform_sampler1DShadow, vec3(0), float(0))
- && gvec4(T(0)) == textureLod(gsampler1DArray, vec2(0), float(0))
+ && gvec4(T.Element(0)) == textureLod(gsampler1DArray, vec2(0), float(0))
&& float(0) == textureLod(uniform_sampler1DArrayShadow, vec3(0), float(0))
- && gvec4(T(0)) == textureLod(gsampler2DArray, vec3(0), float(0))
- && gvec4(T(0)) == textureLod(gsamplerCubeArray, vec4(0), float(0))
- && gvec4(T(0)) == textureOffset(gsampler1D, float(0), __LINE__)
- && gvec4(T(0)) == textureOffset(gsampler1D, float(0), __LINE__, float(0))
- && gvec4(T(0)) == textureOffset(gsampler2D, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureOffset(gsampler2D, vec2(0), { __LINE__ }, float(0))
- && gvec4(T(0)) == textureOffset(gsampler3D, vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureOffset(gsampler3D, vec3(0), { __LINE__ }, float(0))
+ && gvec4(T.Element(0)) == textureLod(gsampler2DArray, vec3(0), float(0))
+ && gvec4(T.Element(0)) == textureLod(gsamplerCubeArray, vec4(0), float(0))
+ && gvec4(T.Element(0)) == textureOffset(gsampler1D, float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureOffset(gsampler1D, float(0), __LINE__, float(0))
+ && gvec4(T.Element(0)) == textureOffset(gsampler2D, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureOffset(gsampler2D, vec2(0), { __LINE__ }, float(0))
+ && gvec4(T.Element(0)) == textureOffset(gsampler3D, vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureOffset(gsampler3D, vec3(0), { __LINE__ }, float(0))
&& float(0) == textureOffset(uniform_sampler2DShadow, vec3(0), { __LINE__ })
&& float(0) == textureOffset(uniform_sampler2DShadow, vec3(0), { __LINE__ }, float(0))
- && gvec4(T(0)) == textureOffset(gsampler2DRect, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureOffset(gsampler2DRect, vec2(0), { __LINE__ })
&& float(0) == textureOffset(uniform_sampler2DRectShadow, vec3(0), { __LINE__ })
&& float(0) == textureOffset(uniform_sampler1DShadow, vec3(0), __LINE__)
&& float(0) == textureOffset(uniform_sampler1DShadow, vec3(0), __LINE__, float(0))
- && gvec4(T(0)) == textureOffset(gsampler1DArray, vec2(0), __LINE__)
- && gvec4(T(0)) == textureOffset(gsampler1DArray, vec2(0), __LINE__, float(0))
- && gvec4(T(0)) == textureOffset(gsampler2DArray, vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureOffset(gsampler2DArray, vec3(0), { __LINE__ }, float(0))
+ && gvec4(T.Element(0)) == textureOffset(gsampler1DArray, vec2(0), __LINE__)
+ && gvec4(T.Element(0)) == textureOffset(gsampler1DArray, vec2(0), __LINE__, float(0))
+ && gvec4(T.Element(0)) == textureOffset(gsampler2DArray, vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureOffset(gsampler2DArray, vec3(0), { __LINE__ }, float(0))
&& float(0) == textureOffset(uniform_sampler1DArrayShadow, vec3(0), __LINE__)
&& float(0) == textureOffset(uniform_sampler1DArrayShadow, vec3(0), __LINE__, float(0))
&& float(0) == textureOffset(uniform_sampler2DArrayShadow, vec4(0), { __LINE__ })
- && gvec4(T(0)) == texelFetch(gsampler1D, int(0), int(0))
- && gvec4(T(0)) == texelFetch(gsampler2D, ivec2(0), int(0))
- && gvec4(T(0)) == texelFetch(gsampler3D, ivec3(0), int(0))
- && gvec4(T(0)) == texelFetch(gsampler2DRect, ivec2(0))
- && gvec4(T(0)) == texelFetch(gsampler1DArray, ivec2(0), int(0))
- && gvec4(T(0)) == texelFetch(gsampler2DArray, ivec3(0), int(0))
- && gvec4(T(0)) == texelFetch(gsamplerBuffer, int(0))
- && gvec4(T(0)) == texelFetchOffset(gsampler1D, int(0), int(0), __LINE__)
- && gvec4(T(0)) == texelFetchOffset(gsampler2D, ivec2(0), int(0), { __LINE__ })
- && gvec4(T(0)) == texelFetchOffset(gsampler3D, ivec3(0), int(0), { __LINE__ })
- && gvec4(T(0)) == texelFetchOffset(gsampler2DRect, ivec2(0), { __LINE__ })
- && gvec4(T(0)) == texelFetchOffset(gsampler1DArray, ivec2(0), int(0), __LINE__)
- && gvec4(T(0)) == texelFetchOffset(gsampler2DArray, ivec3(0), int(0), { __LINE__ })
- && gvec4(T(0)) == textureProjOffset(gsampler1D, vec2(0), __LINE__)
- && gvec4(T(0)) == textureProjOffset(gsampler1D, vec2(0), __LINE__, float(0))
- && gvec4(T(0)) == textureProjOffset(gsampler1D, vec4(0), __LINE__)
- && gvec4(T(0)) == textureProjOffset(gsampler1D, vec4(0), __LINE__,float(0))
- && gvec4(T(0)) == textureProjOffset(gsampler2D, vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureProjOffset(gsampler2D, vec3(0), { __LINE__ }, float(0))
- && gvec4(T(0)) == textureProjOffset(gsampler2D, vec4(0), { __LINE__ })
- && gvec4(T(0)) == textureProjOffset(gsampler2D, vec4(0), { __LINE__ }, float(0))
- && gvec4(T(0)) == textureProjOffset(gsampler3D, vec4(0), { __LINE__ })
- && gvec4(T(0)) == textureProjOffset(gsampler3D, vec4(0), { __LINE__ }, float(0))
- && gvec4(T(0)) == textureProjOffset(gsampler2DRect, vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureProjOffset(gsampler2DRect, vec4(0), { __LINE__ })
+ && gvec4(T.Element(0)) == texelFetch(gsampler1D, int(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler2D, ivec2(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler3D, ivec3(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler2DRect, ivec2(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler1DArray, ivec2(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler2DArray, ivec3(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsamplerBuffer, int(0))
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler1D, int(0), int(0), __LINE__)
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler2D, ivec2(0), int(0), { __LINE__ })
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler3D, ivec3(0), int(0), { __LINE__ })
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler2DRect, ivec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler1DArray, ivec2(0), int(0), __LINE__)
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler2DArray, ivec3(0), int(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler1D, vec2(0), __LINE__)
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler1D, vec2(0), __LINE__, float(0))
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler1D, vec4(0), __LINE__)
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler1D, vec4(0), __LINE__,float(0))
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler2D, vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler2D, vec3(0), { __LINE__ }, float(0))
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler2D, vec4(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler2D, vec4(0), { __LINE__ }, float(0))
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler3D, vec4(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler3D, vec4(0), { __LINE__ }, float(0))
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler2DRect, vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjOffset(gsampler2DRect, vec4(0), { __LINE__ })
&& float(0) == textureProjOffset(uniform_sampler2DRectShadow, vec4(0), { __LINE__ })
&& float(0) == textureProjOffset(uniform_sampler1DShadow, vec4(0), __LINE__)
&& float(0) == textureProjOffset(uniform_sampler1DShadow, vec4(0), __LINE__, float(0))
&& float(0) == textureProjOffset(uniform_sampler2DShadow, vec4(0), { __LINE__ })
&& float(0) == textureProjOffset(uniform_sampler2DShadow, vec4(0), { __LINE__ }, float(0))
- && gvec4(T(0)) == textureLodOffset(gsampler1D, float(0), float(0), __LINE__)
- && gvec4(T(0)) == textureLodOffset(gsampler2D, vec2(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureLodOffset(gsampler3D, vec3(0), float(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureLodOffset(gsampler1D, float(0), float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureLodOffset(gsampler2D, vec2(0), float(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureLodOffset(gsampler3D, vec3(0), float(0), { __LINE__ })
&& float(0) == textureLodOffset(uniform_sampler1DShadow, vec3(0), float(0), __LINE__)
&& float(1) == textureLodOffset(uniform_sampler2DShadow, vec3(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureLodOffset(gsampler1DArray, vec2(0), float(0), __LINE__)
- && gvec4(T(0)) == textureLodOffset(gsampler2DArray, vec3(0), float(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureLodOffset(gsampler1DArray, vec2(0), float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureLodOffset(gsampler2DArray, vec3(0), float(0), { __LINE__ })
&& float(0) == textureLodOffset(uniform_sampler1DArrayShadow, vec3(0), float(0), __LINE__)
- && gvec4(T(0)) == textureProjLod(gsampler1D, vec2(0), float(0))
- && gvec4(T(0)) == textureProjLod(gsampler1D, vec4(0), float(0))
- && gvec4(T(0)) == textureProjLod(gsampler2D, vec3(0), float(0))
- && gvec4(T(0)) == textureProjLod(gsampler2D, vec4(0), float(0))
- && gvec4(T(0)) == textureProjLod(gsampler3D, vec4(0), float(0))
+ && gvec4(T.Element(0)) == textureProjLod(gsampler1D, vec2(0), float(0))
+ && gvec4(T.Element(0)) == textureProjLod(gsampler1D, vec4(0), float(0))
+ && gvec4(T.Element(0)) == textureProjLod(gsampler2D, vec3(0), float(0))
+ && gvec4(T.Element(0)) == textureProjLod(gsampler2D, vec4(0), float(0))
+ && gvec4(T.Element(0)) == textureProjLod(gsampler3D, vec4(0), float(0))
&& float(0) == textureProjLod(uniform_sampler1DShadow, vec4(0), float(0))
&& float(0) == textureProjLod(uniform_sampler2DShadow, vec4(0), float(0))
- && gvec4(T(0)) == textureProjLodOffset(gsampler1D, vec2(0), float(0), __LINE__)
- && gvec4(T(0)) == textureProjLodOffset(gsampler1D, vec4(0), float(0), __LINE__)
- && gvec4(T(0)) == textureProjLodOffset(gsampler2D, vec3(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureProjLodOffset(gsampler2D, vec4(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureProjLodOffset(gsampler3D, vec4(0), float(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjLodOffset(gsampler1D, vec2(0), float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureProjLodOffset(gsampler1D, vec4(0), float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureProjLodOffset(gsampler2D, vec3(0), float(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjLodOffset(gsampler2D, vec4(0), float(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjLodOffset(gsampler3D, vec4(0), float(0), { __LINE__ })
&& float(0) == textureProjLodOffset(uniform_sampler1DShadow, vec4(0), float(0), __LINE__)
&& float(0) == textureProjLodOffset(uniform_sampler2DShadow, vec4(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureGrad(gsampler1D, float(0), float(0), float(0))
- && gvec4(T(0)) == textureGrad(gsampler2D, vec2(0), vec2(0), vec2(0))
- && gvec4(T(0)) == textureGrad(gsampler3D, vec3(0), vec3(0), vec3(0))
- && gvec4(T(0)) == textureGrad(gsamplerCube, vec3(0), vec3(0), vec3(0))
- && gvec4(T(0)) == textureGrad(gsampler2DRect, vec2(0), vec2(0), vec2(0))
+ && gvec4(T.Element(0)) == textureGrad(gsampler1D, float(0), float(0), float(0))
+ && gvec4(T.Element(0)) == textureGrad(gsampler2D, vec2(0), vec2(0), vec2(0))
+ && gvec4(T.Element(0)) == textureGrad(gsampler3D, vec3(0), vec3(0), vec3(0))
+ && gvec4(T.Element(0)) == textureGrad(gsamplerCube, vec3(0), vec3(0), vec3(0))
+ && gvec4(T.Element(0)) == textureGrad(gsampler2DRect, vec2(0), vec2(0), vec2(0))
&& float(0) == textureGrad(uniform_sampler2DRectShadow, vec3(0), vec2(0), vec2(0))
&& float(0) == textureGrad(uniform_sampler1DShadow, vec3(0), float(0), float(0))
- && gvec4(T(0)) == textureGrad(gsampler1DArray, vec2(0), float(0), float(0))
- && gvec4(T(0)) == textureGrad(gsampler2DArray, vec3(0), vec2(0), vec2(0))
+ && gvec4(T.Element(0)) == textureGrad(gsampler1DArray, vec2(0), float(0), float(0))
+ && gvec4(T.Element(0)) == textureGrad(gsampler2DArray, vec3(0), vec2(0), vec2(0))
&& float(0) == textureGrad(uniform_sampler1DArrayShadow, vec3(0), float(0), float(0))
&& float(0) == textureGrad(uniform_sampler2DShadow, vec3(0), vec2(0), vec2(0))
&& float(0) == textureGrad(uniform_samplerCubeShadow, vec4(0), vec3(0), vec3(0))
&& float(0) == textureGrad(uniform_sampler2DArrayShadow, vec4(0), vec2(0), vec2(0))
- && gvec4(T(0)) == textureGrad(gsamplerCubeArray, vec4(0), vec3(0), vec3(0))
- && gvec4(T(0)) == textureGradOffset(gsampler1D, float(0), float(0), float(0), __LINE__)
- && gvec4(T(0)) == textureGradOffset(gsampler2D, vec2(0), vec2(0), vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGradOffset(gsampler3D, vec3(0), vec3(0), vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureGradOffset(gsampler2DRect, vec2(0), vec2(0), vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGrad(gsamplerCubeArray, vec4(0), vec3(0), vec3(0))
+ && gvec4(T.Element(0)) == textureGradOffset(gsampler1D, float(0), float(0), float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureGradOffset(gsampler2D, vec2(0), vec2(0), vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGradOffset(gsampler3D, vec3(0), vec3(0), vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGradOffset(gsampler2DRect, vec2(0), vec2(0), vec2(0), { __LINE__ })
&& float(0) == textureGradOffset(uniform_sampler2DRectShadow, vec3(0), vec2(0), vec2(0), { __LINE__ })
&& float(0) == textureGradOffset(uniform_sampler1DShadow, vec3(0), float(0), float(0), __LINE__)
&& float(0) == textureGradOffset(uniform_sampler2DShadow, vec3(0), vec2(0), vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGradOffset(gsampler2DArray, vec3(0), vec2(0), vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGradOffset(gsampler1DArray, vec2(0), float(0), float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureGradOffset(gsampler2DArray, vec3(0), vec2(0), vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGradOffset(gsampler1DArray, vec2(0), float(0), float(0), __LINE__)
&& float(0) == textureGradOffset(uniform_sampler1DArrayShadow, vec3(0), float(0), float(0), __LINE__)
&& float(0) == textureGradOffset(uniform_sampler2DArrayShadow, vec4(0), vec2(0), vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureProjGrad(gsampler1D, vec2(0), float(0), float(0))
- && gvec4(T(0)) == textureProjGrad(gsampler1D, vec4(0), float(0), float(0))
- && gvec4(T(0)) == textureProjGrad(gsampler2D, vec3(0), vec2(0), vec2(0))
- && gvec4(T(0)) == textureProjGrad(gsampler2D, vec4(0), vec2(0), vec2(0))
- && gvec4(T(0)) == textureProjGrad(gsampler3D, vec4(0), vec3(0), vec3(0))
- && gvec4(T(0)) == textureProjGrad(gsampler2DRect, vec3(0), vec2(0), vec2(0))
- && gvec4(T(0)) == textureProjGrad(gsampler2DRect, vec4(0), vec2(0), vec2(0))
+ && gvec4(T.Element(0)) == textureProjGrad(gsampler1D, vec2(0), float(0), float(0))
+ && gvec4(T.Element(0)) == textureProjGrad(gsampler1D, vec4(0), float(0), float(0))
+ && gvec4(T.Element(0)) == textureProjGrad(gsampler2D, vec3(0), vec2(0), vec2(0))
+ && gvec4(T.Element(0)) == textureProjGrad(gsampler2D, vec4(0), vec2(0), vec2(0))
+ && gvec4(T.Element(0)) == textureProjGrad(gsampler3D, vec4(0), vec3(0), vec3(0))
+ && gvec4(T.Element(0)) == textureProjGrad(gsampler2DRect, vec3(0), vec2(0), vec2(0))
+ && gvec4(T.Element(0)) == textureProjGrad(gsampler2DRect, vec4(0), vec2(0), vec2(0))
&& float(0) == textureProjGrad(uniform_sampler2DRectShadow, vec4(0), vec2(0), vec2(0))
&& float(0) == textureProjGrad(uniform_sampler1DShadow, vec4(0), float(0), float(0))
&& float(0) == textureProjGrad(uniform_sampler2DShadow, vec4(0), vec2(0), vec2(0))
- && gvec4(T(0)) == textureProjGradOffset(gsampler1D, vec2(0), float(0), float(0), __LINE__)
- && gvec4(T(0)) == textureProjGradOffset(gsampler1D, vec4(0), float(0), float(0), __LINE__)
- && gvec4(T(0)) == textureProjGradOffset(gsampler2D, vec3(0), vec2(0), vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureProjGradOffset(gsampler2D, vec4(0), vec2(0), vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureProjGradOffset(gsampler3D, vec4(0), vec3(0), vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureProjGradOffset(gsampler2DRect, vec3(0), vec2(0), vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureProjGradOffset(gsampler2DRect, vec4(0), vec2(0), vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjGradOffset(gsampler1D, vec2(0), float(0), float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureProjGradOffset(gsampler1D, vec4(0), float(0), float(0), __LINE__)
+ && gvec4(T.Element(0)) == textureProjGradOffset(gsampler2D, vec3(0), vec2(0), vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjGradOffset(gsampler2D, vec4(0), vec2(0), vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjGradOffset(gsampler3D, vec4(0), vec3(0), vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjGradOffset(gsampler2DRect, vec3(0), vec2(0), vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureProjGradOffset(gsampler2DRect, vec4(0), vec2(0), vec2(0), { __LINE__ })
&& float(0) == textureProjGradOffset(uniform_sampler2DRectShadow, vec4(0), vec2(0), vec2(0), { __LINE__ })
&& float(0) == textureProjGradOffset(uniform_sampler1DShadow, vec4(0), float(0), float(0), __LINE__)
&& float(0) == textureProjGradOffset(uniform_sampler2DShadow, vec4(0), vec2(0), vec2(0), { __LINE__ })
// 8.9.4. Texture Gather Functions
- && gvec4(T(0)) == textureGather(gsampler2D, vec2(0))
- && gvec4(T(0)) == textureGather(gsampler2D, vec2(0), int(0))
- && gvec4(T(0)) == textureGather(gsampler2DArray, vec3(0))
- && gvec4(T(0)) == textureGather(gsampler2DArray, vec3(0), int(0))
- && gvec4(T(0)) == textureGather(gsamplerCube, vec3(0))
- && gvec4(T(0)) == textureGather(gsamplerCube, vec3(0), int(0))
- && gvec4(T(0)) == textureGather(gsamplerCubeArray, vec4(0))
- && gvec4(T(0)) == textureGather(gsamplerCubeArray, vec4(0), int(0))
- && gvec4(T(0)) == textureGather(gsampler2DRect, vec2(0))
- && gvec4(T(0)) == textureGather(gsampler2DRect, vec2(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2D, vec2(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2D, vec2(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2DArray, vec3(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2DArray, vec3(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsamplerCube, vec3(0))
+ && gvec4(T.Element(0)) == textureGather(gsamplerCube, vec3(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsamplerCubeArray, vec4(0))
+ && gvec4(T.Element(0)) == textureGather(gsamplerCubeArray, vec4(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2DRect, vec2(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2DRect, vec2(0), int(0))
&& vec4(0) == textureGather(uniform_sampler2DShadow, vec2(0), float(0))
&& vec4(0) == textureGather(uniform_sampler2DArrayShadow, vec3(0), float(0))
&& vec4(0) == textureGather(uniform_samplerCubeShadow, vec3(0), float(0))
&& vec4(0) == textureGather(uniform_samplerCubeArrayShadow, vec4(0), float(0))
&& vec4(0) == textureGather(uniform_sampler2DRectShadow, vec2(0), float(0))
- && gvec4(T(0)) == textureGatherOffset(gsampler2D, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffset(gsampler2D, vec2(0), { __LINE__ }, int(0))
- && gvec4(T(0)) == textureGatherOffset(gsampler2DArray, vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffset(gsampler2DArray, vec3(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2D, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2D, vec2(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2DArray, vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2DArray, vec3(0), { __LINE__ }, int(0))
&& vec4(0) == textureGatherOffset(uniform_sampler2DShadow, vec2(0), float(0), { __LINE__ })
&& vec4(0) == textureGatherOffset(uniform_sampler2DArrayShadow, vec3(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffset(gsampler2DRect, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffset(gsampler2DRect, vec2(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2DRect, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2DRect, vec2(0), { __LINE__ }, int(0))
&& vec4(0) == textureGatherOffset(uniform_sampler2DRectShadow, vec2(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2D, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2D, vec2(0), { __LINE__ }, int(0))
- && gvec4(T(0)) == textureGatherOffsets(gsampler2DArray, vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2DArray, vec3(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2D, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2D, vec2(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2DArray, vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2DArray, vec3(0), { __LINE__ }, int(0))
&& vec4(0) == textureGatherOffsets(uniform_sampler2DShadow, vec2(0), float(0), { __LINE__ })
&& vec4(0) == textureGatherOffsets(uniform_sampler2DArrayShadow, vec3(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2DRect, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2DRect, vec2(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2DRect, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2DRect, vec2(0), { __LINE__ }, int(0))
&& vec4(0) == textureGatherOffsets(uniform_sampler2DRectShadow, vec2(0), float(0), { __LINE__ })
// 8.9.5. Compatibility Profile Texture Functions
@@ -359,19 +359,19 @@ bool textureFuncs( Sampler1D<vector<T,N>> gsampler1D
;
}
-__generic<T : __BuiltinArithmeticType, let N : int>
-bool itextureFuncs(Sampler1D<vector<T, N>> gsampler1D
- , Sampler2D<vector<T, N>> gsampler2D
- , Sampler2DRect<vector<T, N>> gsampler2DRect
- , Sampler3D<vector<T, N>> gsampler3D
- , SamplerCube<vector<T, N>> gsamplerCube
- , Sampler1DArray<vector<T, N>> gsampler1DArray
- , Sampler2DArray<vector<T, N>> gsampler2DArray
- , SamplerCubeArray<vector<T, N>> gsamplerCubeArray
- , SamplerBuffer<vector<T, N>> gsamplerBuffer
+__generic<T : ITexelElement>
+bool itextureFuncs(Sampler1D<T> gsampler1D
+ , Sampler2D<T> gsampler2D
+ , Sampler2DRect<T> gsampler2DRect
+ , Sampler3D<T> gsampler3D
+ , SamplerCube<T> gsamplerCube
+ , Sampler1DArray<T> gsampler1DArray
+ , Sampler2DArray<T> gsampler2DArray
+ , SamplerCubeArray<T> gsamplerCubeArray
+ , SamplerBuffer<T> gsamplerBuffer
)
{
- typealias gvec4 = vector<T, 4>;
+ typealias gvec4 = vector<T.Element, 4>;
constexpr ivec2 ivec2_0 = ivec2(0);
@@ -394,53 +394,53 @@ bool itextureFuncs(Sampler1D<vector<T, N>> gsampler1D
&& ivec3(0) == textureSize(uniform_sampler2DArrayShadow, int(0))
&& int(0) == textureSize(gsamplerBuffer)
- && gvec4(T(0)) == texelFetch(gsampler1D, int(0), int(0))
- && gvec4(T(0)) == texelFetch(gsampler2D, ivec2(0), int(0))
- && gvec4(T(0)) == texelFetch(gsampler3D, ivec3(0), int(0))
- && gvec4(T(0)) == texelFetch(gsampler2DRect, ivec2(0))
- && gvec4(T(0)) == texelFetch(gsampler1DArray, ivec2(0), int(0))
- && gvec4(T(0)) == texelFetch(gsampler2DArray, ivec3(0), int(0))
- && gvec4(T(0)) == texelFetch(gsamplerBuffer, int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler1D, int(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler2D, ivec2(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler3D, ivec3(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler2DRect, ivec2(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler1DArray, ivec2(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsampler2DArray, ivec3(0), int(0))
+ && gvec4(T.Element(0)) == texelFetch(gsamplerBuffer, int(0))
- && gvec4(T(0)) == texelFetchOffset(gsampler1D, int(0), int(0), __LINE__)
- && gvec4(T(0)) == texelFetchOffset(gsampler2D, ivec2(0), int(0), { __LINE__ })
- && gvec4(T(0)) == texelFetchOffset(gsampler3D, ivec3(0), int(0), { __LINE__ })
- && gvec4(T(0)) == texelFetchOffset(gsampler2DRect, ivec2(0), { __LINE__ })
- && gvec4(T(0)) == texelFetchOffset(gsampler1DArray, ivec2(0), int(0), __LINE__)
- && gvec4(T(0)) == texelFetchOffset(gsampler2DArray, ivec3(0), int(0), { __LINE__ })
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler1D, int(0), int(0), __LINE__)
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler2D, ivec2(0), int(0), { __LINE__ })
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler3D, ivec3(0), int(0), { __LINE__ })
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler2DRect, ivec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler1DArray, ivec2(0), int(0), __LINE__)
+ && gvec4(T.Element(0)) == texelFetchOffset(gsampler2DArray, ivec3(0), int(0), { __LINE__ })
// 8.9.4. Texture Gather Functions
- && gvec4(T(0)) == textureGather(gsampler2D, vec2(0))
- && gvec4(T(0)) == textureGather(gsampler2D, vec2(0), int(0))
- && gvec4(T(0)) == textureGather(gsampler2DArray, vec3(0))
- && gvec4(T(0)) == textureGather(gsampler2DArray, vec3(0), int(0))
- && gvec4(T(0)) == textureGather(gsamplerCube, vec3(0))
- && gvec4(T(0)) == textureGather(gsamplerCube, vec3(0), int(0))
- && gvec4(T(0)) == textureGather(gsamplerCubeArray, vec4(0))
- && gvec4(T(0)) == textureGather(gsamplerCubeArray, vec4(0), int(0))
- && gvec4(T(0)) == textureGather(gsampler2DRect, vec2(0))
- && gvec4(T(0)) == textureGather(gsampler2DRect, vec2(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2D, vec2(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2D, vec2(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2DArray, vec3(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2DArray, vec3(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsamplerCube, vec3(0))
+ && gvec4(T.Element(0)) == textureGather(gsamplerCube, vec3(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsamplerCubeArray, vec4(0))
+ && gvec4(T.Element(0)) == textureGather(gsamplerCubeArray, vec4(0), int(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2DRect, vec2(0))
+ && gvec4(T.Element(0)) == textureGather(gsampler2DRect, vec2(0), int(0))
&& vec4(0) == textureGather(uniform_sampler2DShadow, vec2(0), float(0))
&& vec4(0) == textureGather(uniform_sampler2DArrayShadow, vec3(0), float(0))
&& vec4(0) == textureGather(uniform_samplerCubeShadow, vec3(0), float(0))
&& vec4(0) == textureGather(uniform_samplerCubeArrayShadow, vec4(0), float(0))
&& vec4(0) == textureGather(uniform_sampler2DRectShadow, vec2(0), float(0))
- && gvec4(T(0)) == textureGatherOffset(gsampler2D, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffset(gsampler2D, vec2(0), { __LINE__ }, int(0))
- && gvec4(T(0)) == textureGatherOffset(gsampler2DArray, vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffset(gsampler2DArray, vec3(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2D, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2D, vec2(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2DArray, vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2DArray, vec3(0), { __LINE__ }, int(0))
&& vec4(0) == textureGatherOffset(uniform_sampler2DShadow, vec2(0), float(0), { __LINE__ })
&& vec4(0) == textureGatherOffset(uniform_sampler2DArrayShadow, vec3(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffset(gsampler2DRect, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffset(gsampler2DRect, vec2(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2DRect, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffset(gsampler2DRect, vec2(0), { __LINE__ }, int(0))
&& vec4(0) == textureGatherOffset(uniform_sampler2DRectShadow, vec2(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2D, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2D, vec2(0), { __LINE__ }, int(0))
- && gvec4(T(0)) == textureGatherOffsets(gsampler2DArray, vec3(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2DArray, vec3(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2D, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2D, vec2(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2DArray, vec3(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2DArray, vec3(0), { __LINE__ }, int(0))
&& vec4(0) == textureGatherOffsets(uniform_sampler2DShadow, vec2(0), float(0), { __LINE__ })
&& vec4(0) == textureGatherOffsets(uniform_sampler2DArrayShadow, vec3(0), float(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2DRect, vec2(0), { __LINE__ })
- && gvec4(T(0)) == textureGatherOffsets(gsampler2DRect, vec2(0), { __LINE__ }, int(0))
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2DRect, vec2(0), { __LINE__ })
+ && gvec4(T.Element(0)) == textureGatherOffsets(gsampler2DRect, vec2(0), { __LINE__ }, int(0))
&& vec4(0) == textureGatherOffsets(uniform_sampler2DRectShadow, vec2(0), float(0), { __LINE__ })
;
}