diff options
| author | Yong He <yonghe@outlook.com> | 2025-01-17 14:37:27 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-17 14:37:27 -0800 |
| commit | fc77070fdc9bfa599e8d66b21743778de3011e53 (patch) | |
| tree | a9a0983bd704b0e760ae94d5330a74bc72f1154f /tests/language-feature/capability | |
| parent | 3ff257816fc8f376d9bee76378a690757f8b5377 (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.slang | 384 |
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__ }) ; } |
