#version 450 layout(std430, push_constant) uniform Push { vec4 push; } registers; layout(std140, set = 0, binding = 5) uniform UBO { vec4 ubo; }; layout(std430, set = 1, binding = 7) buffer SSBO { vec4 ssbo; }; layout(std430, set = 1, binding = 8) readonly buffer SSBOs { vec4 ssbo; } ssbos[2]; layout(std140, set = 2, binding = 4) uniform UBOs { vec4 ubo; } ubos[4]; layout(set = 0, binding = 2) uniform sampler2D uTexture; layout(set = 0, binding = 6) uniform sampler2D uTextures[2]; layout(set = 1, binding = 3) uniform texture2D uTexture2[4]; layout(set = 1, binding = 10) uniform sampler uSampler[2]; layout(location = 0) in vec2 vUV; layout(location = 0) out vec4 FragColor; vec4 sample_in_function2() { vec4 ret = texture(uTexture, vUV); ret += texture(sampler2D(uTexture2[2], uSampler[1]), vUV); ret += texture(uTextures[1], vUV); ret += ssbo; ret += ssbos[0].ssbo; ret += registers.push; return ret; } vec4 sample_in_function() { vec4 ret = sample_in_function2(); ret += ubo; ret += ubos[0].ubo; return ret; } void main() { FragColor = sample_in_function(); FragColor += ubo; FragColor += ssbo; FragColor += ubos[1].ubo; FragColor += registers.push; }