#version 450 #extension GL_EXT_buffer_reference : require layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; layout(buffer_reference) buffer Block; layout(buffer_reference, buffer_reference_align = 4, std430) buffer Block { float v; }; layout(set = 0, binding = 0, std140) uniform UBO { Block blocks[4]; } ubo; void main() { Block blocks[4]; blocks[0] = ubo.blocks[0]; blocks[1] = ubo.blocks[1]; blocks[2] = ubo.blocks[2]; blocks[3] = ubo.blocks[3]; blocks[gl_WorkGroupID.x].v = 20.0; }