#version 310 es layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; struct S0 { vec4 a; }; struct S1 { vec4 a; }; layout(binding = 0, std430) buffer SSBO0 { S0 s0s[]; } _36; layout(binding = 1, std430) buffer SSBO1 { S1 s1s[]; } _55; layout(binding = 2, std430) buffer SSBO2 { vec4 outputs[]; } _66; vec4 overload(S0 s0) { return s0.a; } vec4 overload(S1 s1) { return s1.a; } void main() { S0 s0; s0.a = _36.s0s[gl_GlobalInvocationID.x].a; S1 s1; s1.a = _55.s1s[gl_GlobalInvocationID.x].a; S0 param = s0; S1 param_1 = s1; _66.outputs[gl_GlobalInvocationID.x] = overload(param) + overload(param_1); }