| #version 450 core |
| |
| layout(binding = 1) uniform texture2D tex2D; |
| layout(binding = 1) uniform texture2DMS texMS; |
| layout(binding = 0) uniform textureBuffer buf; |
| |
| void testBad() |
| { |
| vec4 tex2DFetch = texelFetch(tex2D, ivec2(0, 0), 0); |
| vec4 texMSFetch = texelFetch(texMS, ivec2(0, 0), 0); |
| |
| // Allowed by KHR_vulkan_glsl without the extension. All others should |
| // error. |
| vec4 bufFetch = texelFetch(buf, 0); |
| |
| vec4 tex2DFetchOffset = texelFetchOffset(tex2D, ivec2(0, 0), 0, ivec2(0, 0)); |
| |
| ivec2 tex2DSize = textureSize(tex2D, 0); |
| ivec2 texMSSize = textureSize(texMS); |
| int bufSize = textureSize(buf); |
| |
| int tex2DLevels = textureQueryLevels(tex2D); |
| |
| int texMSSamples = textureSamples(texMS); |
| } |
| |
| #extension GL_EXT_samplerless_texture_functions : enable |
| |
| void main() |
| { |
| // These should all succeed. |
| |
| vec4 tex2DFetch = texelFetch(tex2D, ivec2(0, 0), 0); |
| vec4 texMSFetch = texelFetch(texMS, ivec2(0, 0), 0); |
| vec4 bufFetch = texelFetch(buf, 0); |
| |
| vec4 tex2DFetchOffset = texelFetchOffset(tex2D, ivec2(0, 0), 0, ivec2(0, 0)); |
| |
| ivec2 tex2DSize = textureSize(tex2D, 0); |
| ivec2 texMSSize = textureSize(texMS); |
| int bufSize = textureSize(buf); |
| |
| int tex2DLevels = textureQueryLevels(tex2D); |
| |
| int texMSSamples = textureSamples(texMS); |
| } |