#version 450 #extension GL_ARB_gpu_shader_int64 : require #extension GL_EXT_buffer_reference : require layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; layout(buffer_reference) buffer Node; layout(buffer_reference, buffer_reference_align = 16, std430) buffer Node { layout(offset = 0) int value; layout(offset = 16) Node next; layout(offset = 32) Node prev; }; layout(set = 0, binding = 0, std430) restrict buffer LinkedList { Node head1; Node head2; } _50; void main() { Node _114; if (gl_WorkGroupID.x < 4u) { _114 = _50.head1; } else { _114 = _50.head2; } _114.next.value = _50.head1.value + _50.head2.value; _50.head1.value = 20; _50.head1.value = _50.head2.value * 10; }