// Copyright 2016-2021 The Khronos Group Inc. // SPDX-License-Identifier: Apache-2.0 #version 310 es layout(local_size_x = 64) in; layout(set = 0, binding = 0, std430) readonly buffer SSBO0 { float inputs[]; }; layout(set = 0, binding = 1, std430) writeonly buffer SSBO1 { float outputs[]; }; layout(set = 0, binding = 2, std430) buffer SSBO2 { uint counter; }; void main() { // Builds a tightly packed list of all values less than 10.0. // The output order is random. float value = inputs[gl_GlobalInvocationID.x]; if (value < 10.0) { uint output_index = atomicAdd(counter, 1u); outputs[output_index] = value; } }