mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-09 20:10:06 +00:00
16526fd9d2
Add missing callgraph clean for bindless status flag. Add test cases. Add support to check special extensions not be available for Vulkan when using GLSL.
50 lines
1.9 KiB
GLSL
50 lines
1.9 KiB
GLSL
#version 460 compatibility
|
|
|
|
#extension GL_ARB_bindless_texture: require
|
|
|
|
#if !defined GL_ARB_bindless_texture
|
|
# error GL_ARB_bindless_texture is not defined
|
|
#elif GL_ARB_bindless_texture != 1
|
|
# error GL_ARB_bindless_texture is not equal to 1
|
|
#endif
|
|
|
|
// Valid usage cases
|
|
layout(bindless_sampler) uniform sampler2D s0; // case0: bindless layout
|
|
in sampler2D s1; // case1: sampler as an input
|
|
uniform uvec2 s2; // case2: uvec2 as sampler constructor
|
|
uniform ivec2 s3; // case3: ivec2 as sampler constructor
|
|
uniform int index;
|
|
in sampler2D s4[2][3]; // case4: sampler arrays of arrays
|
|
uniform BB {sampler2D s5;} bbs5[2]; // case5: uniform block member as a sampler
|
|
in samplerBuffer s6; // case6: samplerBuffer input
|
|
uniform UBO9 {samplerBuffer s7;}; // case7: samplerBuffer as an uniform block member
|
|
buffer SSBO10 {samplerBuffer s8;}; // case8: samplerBuffer as an ssbo member
|
|
layout(rgba8, bindless_image) in image2D i9; // case9: bindless image as an input
|
|
|
|
|
|
uniform vec2 coord; // bindless coord 2-D
|
|
uniform int icoord; // bindless coord 1-D
|
|
out vec4 color0;
|
|
out vec4 color1;
|
|
out vec4 color2;
|
|
out vec4 color3;
|
|
out vec4 color4;
|
|
out vec4 color5;
|
|
out vec4 color6;
|
|
out vec4 color7;
|
|
out vec4 color8;
|
|
out vec4 color9;
|
|
|
|
void main()
|
|
{
|
|
color0 = texture(s0, coord);
|
|
color1 = texture(s1, coord);
|
|
color2 = texture(sampler2D(s2), coord);
|
|
color3 = texture(sampler2D(s3), coord);
|
|
color4 = texture(s4[index][index], coord);
|
|
color5 = texture(bbs5[index].s5, coord);
|
|
color6 = texelFetch(s6, icoord);
|
|
color7 = texelFetch(s7, icoord);
|
|
color8 = texelFetch(s8, icoord);
|
|
color9 = imageLoad(i9, ivec2(0,0));
|
|
} |