Add support for GL_EXT_samplerless_texture_functions

This commit is contained in:
Alex Smith
2018-06-23 09:34:24 +01:00
committed by Alex Smith
parent 0b964b3c35
commit e47bfaedf6
10 changed files with 229 additions and 20 deletions

View File

@@ -0,0 +1,46 @@
#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);
}