#version 310 es layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; struct Foo { mat4 m; }; layout(binding = 1, std430) writeonly buffer SSBO2 { Foo out_data[]; } _23; layout(binding = 0, std430) readonly buffer SSBO { Foo in_data[]; } _30; void main() { _23.out_data[gl_GlobalInvocationID.x].m = _30.in_data[gl_GlobalInvocationID.x].m * _30.in_data[gl_GlobalInvocationID.x].m; }