29 if (input.
size() == 1) {
31 std::vector<T> tmp{ 0 };
42 auto globalSize = input.
size();
44 std::vector<VkDeviceArray<T>> buffers;
59 sp.
n = buffers[0].size();
66 mScan->flush(groupSize, &buffers[0], &buffers[0], &buffers[1], &uniformParam);
68 for (std::size_t i = 1; i < buffers.size() - 1; i++)
70 sp.
n = buffers[i].size();
75 mScan->flush(groupSizeScan, &buffers[i], &buffers[i], &buffers[i + 1], &uniformParam);
96 for (std::size_t i = buffers.size() - 1; i > 0; i--)
100 mAdd->enqueue(groupSizeAdd, &buffers[i], &buffers[i - 1], &num);
111 mSub->flush(groupSize, &buffers[0], &output, &num);
114 for (std::size_t i = 0; i < buffers.size(); i++)