#version 450 #extension GL_EXT_buffer_reference : require layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; layout(buffer_reference) buffer Alias; layout(buffer_reference) buffer _8; layout(buffer_reference) buffer _9; layout(buffer_reference, buffer_reference_align = 16, std430) readonly buffer Alias { vec4 v[]; }; layout(buffer_reference, buffer_reference_align = 16, std430) restrict buffer _8 { vec4 v[]; }; layout(buffer_reference, buffer_reference_align = 16, std430) coherent writeonly buffer _9 { vec4 v[]; }; layout(push_constant, std430) uniform Registers { Alias ro; _8 rw; _9 wo; } registers; void main() { registers.rw.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; registers.wo.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x]; }