#version 310 es layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; layout(binding = 0, std430) buffer SSBO { mat4 mvp; vec4 in_data[]; } _28; layout(binding = 1, std430) buffer SSBO2 { vec4 out_data[]; } _52; int i; void main() { uint ident = gl_GlobalInvocationID.x; i = 0; vec4 idat = _28.in_data[ident]; do { idat = (_28.mvp * idat); i = (i + 1); } while ((i < 16)); _52.out_data[ident] = idat; }