1#version 450 2layout(local_size_x = 2) in; 3 4struct Data 5{ 6 float a; 7 float b; 8}; 9 10layout(std430, binding = 0) buffer SSBO 11{ 12 Data outdata[]; 13}; 14 15layout(constant_id = 0) const float X = 4.0; 16 17Data data[2] = Data[](Data(1.0, 2.0), Data(3.0, 4.0)); 18Data data2[2] = Data[](Data(X, 2.0), Data(3.0, 5.0)); 19 20Data combine(Data a, Data b) 21{ 22 return Data(a.a + b.a, a.b + b.b); 23} 24 25void main() 26{ 27 if (gl_LocalInvocationIndex == 0u) 28 outdata[gl_WorkGroupID.x] = combine(data[gl_LocalInvocationID.x], data2[gl_LocalInvocationID.x]); 29} 30