#version 450 layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; struct B2 { vec4 elem2; }; struct C { vec4 c; B2 b2; B2 b2_array[4]; }; struct B1 { vec4 elem1; }; struct A { vec4 a; B1 b1; B1 b1_array[4]; }; layout(binding = 0, std430) buffer _10_4 { A a_block; C c_block; } _4; void main() { A _24; _24.a = _4.c_block.c; _24.b1.elem1 = _4.c_block.b2.elem2; _24.b1_array[0].elem1 = _4.c_block.b2_array[0].elem2; _24.b1_array[1].elem1 = _4.c_block.b2_array[1].elem2; _24.b1_array[2].elem1 = _4.c_block.b2_array[2].elem2; _24.b1_array[3].elem1 = _4.c_block.b2_array[3].elem2; _4.a_block = _24; }