#version 460 layout(std140) uniform UBO1 { vec4 a; }; layout(std430) buffer SSBO1 { float c[40]; }; layout(rgba8) uniform image2D Image1; uniform sampler2D Sampler1; layout(std140) uniform UBO2 { vec4 b; }; layout(std430) buffer SSBO2 { vec2 d[]; }; layout(rgba8) uniform image2D Image2; uniform sampler2D Sampler2; void main() { vec4 result = vec4(0.0); result += a; result += b; result.x += c[5]; result.yz += d[5]; result += imageLoad(Image1, ivec2(5, 10)); result += imageLoad(Image2, ivec2(5, 10)); result += texture(Sampler1, vec2(0.5, 0.5)); result += texture(Sampler2, vec2(0.5, 0.5)); gl_Position = result; }