| #version 450 |
| #extension GL_ARB_sparse_texture2 : require |
| #extension GL_ARB_sparse_texture_clamp : require |
| |
| layout(set = 0, binding = 0) uniform sampler2D uSamp; |
| layout(set = 0, binding = 1) uniform sampler2DMS uSampMS; |
| layout(set = 0, binding = 2, rgba8) uniform image2D uImage; |
| layout(set = 0, binding = 3, rgba8) uniform image2DMS uImageMS; |
| layout(location = 0) out vec4 FragColor; |
| layout(location = 0) in vec2 vUV; |
| |
| void main() |
| { |
| vec4 texel; |
| bool ret; |
| |
| ret = sparseTexelsResidentARB(sparseTextureARB(uSamp, vUV, texel)); |
| ret = sparseTexelsResidentARB(sparseTextureARB(uSamp, vUV, texel, 1.1)); |
| ret = sparseTexelsResidentARB(sparseTextureLodARB(uSamp, vUV, 1.0, texel)); |
| ret = sparseTexelsResidentARB(sparseTextureOffsetARB(uSamp, vUV, ivec2(1, 1), texel)); |
| ret = sparseTexelsResidentARB(sparseTextureOffsetARB(uSamp, vUV, ivec2(2, 2), texel, 0.5)); |
| ret = sparseTexelsResidentARB(sparseTexelFetchARB(uSamp, ivec2(vUV), 1, texel)); |
| ret = sparseTexelsResidentARB(sparseTexelFetchARB(uSampMS, ivec2(vUV), 2, texel)); |
| ret = sparseTexelsResidentARB(sparseTexelFetchOffsetARB(uSamp, ivec2(vUV), 1, ivec2(2, 3), texel)); |
| ret = sparseTexelsResidentARB(sparseTextureLodOffsetARB(uSamp, vUV, 1.5, ivec2(2, 3), texel)); |
| ret = sparseTexelsResidentARB(sparseTextureGradARB(uSamp, vUV, vec2(1.0), vec2(3.0), texel)); |
| ret = sparseTexelsResidentARB(sparseTextureGradOffsetARB(uSamp, vUV, vec2(1.0), vec2(3.0), ivec2(-2, -3), texel)); |
| ret = sparseTexelsResidentARB(sparseTextureClampARB(uSamp, vUV, 4.0, texel)); |
| ret = sparseTexelsResidentARB(sparseImageLoadARB(uImage, ivec2(vUV), texel)); |
| ret = sparseTexelsResidentARB(sparseImageLoadARB(uImageMS, ivec2(vUV), 1, texel)); |
| } |