#version 450 #define LOCAL_SIZE 8 layout (local_size_x = LOCAL_SIZE, local_size_y = LOCAL_SIZE, local_size_z = 1) in; layout (set = 1, binding = 0, rgba8) uniform writeonly image2D outImage; layout(set = 2, binding = 0) uniform UBO { uvec2 workgroupSize; } ubo; void main() { vec2 coord = gl_GlobalInvocationID.xy; vec2 totalWorkgroupSize = vec2(ubo.workgroupSize) * vec2(LOCAL_SIZE); vec4 col = vec4( coord.x / totalWorkgroupSize.x, coord.y / totalWorkgroupSize.y, 1.0, 1.0 ); imageStore(outImage, ivec2(coord), col); }