1#version 310 es 2layout(local_size_x = 1) in; 3 4layout(std430, binding = 0) readonly buffer SSBO 5{ 6 vec4 in_data[]; 7}; 8 9layout(std430, binding = 1) writeonly buffer SSBO2 10{ 11 vec4 out_data[]; 12}; 13 14layout(std430, binding = 2) buffer SSBO3 15{ 16 uint counter; 17}; 18 19void main() 20{ 21 uint ident = gl_GlobalInvocationID.x; 22 vec4 idata = in_data[ident]; 23 if (dot(idata, vec4(1.0, 5.0, 6.0, 2.0)) > 8.2) 24 { 25 out_data[atomicAdd(counter, 1u)] = idata; 26 } 27} 28 29