1#version 450 core
2
3layout(binding = 1) uniform texture2D tex2D;
4layout(binding = 1) uniform texture2DMS texMS;
5layout(binding = 0) uniform textureBuffer buf;
6
7void testBad()
8{
9    vec4 tex2DFetch = texelFetch(tex2D, ivec2(0, 0), 0);
10    vec4 texMSFetch = texelFetch(texMS, ivec2(0, 0), 0);
11
12    // Allowed by KHR_vulkan_glsl without the extension. All others should
13    // error.
14    vec4 bufFetch = texelFetch(buf, 0);
15
16    vec4 tex2DFetchOffset = texelFetchOffset(tex2D, ivec2(0, 0), 0, ivec2(0, 0));
17
18    ivec2 tex2DSize = textureSize(tex2D, 0);
19    ivec2 texMSSize = textureSize(texMS);
20    int bufSize = textureSize(buf);
21
22    int tex2DLevels = textureQueryLevels(tex2D);
23
24    int texMSSamples = textureSamples(texMS);
25}
26
27#extension GL_EXT_samplerless_texture_functions : enable
28
29void main()
30{
31    // These should all succeed.
32
33    vec4 tex2DFetch = texelFetch(tex2D, ivec2(0, 0), 0);
34    vec4 texMSFetch = texelFetch(texMS, ivec2(0, 0), 0);
35    vec4 bufFetch = texelFetch(buf, 0);
36
37    vec4 tex2DFetchOffset = texelFetchOffset(tex2D, ivec2(0, 0), 0, ivec2(0, 0));
38
39    ivec2 tex2DSize = textureSize(tex2D, 0);
40    ivec2 texMSSize = textureSize(texMS);
41    int bufSize = textureSize(buf);
42
43    int tex2DLevels = textureQueryLevels(tex2D);
44
45    int texMSSamples = textureSamples(texMS);
46}
47