struct radix_sort_vk_memory_requirements
Defined at line 156 of file ../../src/graphics/lib/compute/radix_sort/platforms/vk/include/radix_sort/platforms/vk/radix_sort_vk.h
Returns the buffer size and alignment requirements when `.count` is the
maximum expected number of keyvals.
The radix sort implementation is not an in-place sorting algorithm so two
non-overlapping keyval buffers are required that are at least
`.keyvals_size`.
The radix sort instance also requires an internal buffer during sorting.
If the indirect dispatch sorting function is used, then an indirect buffer is
also required.
The alignment requirements for the keyval, internal, and indirect buffers
must be honored. All alignments are power of 2.
Input:
count : Maximum number of keyvals
Outputs:
keyval_size : Size of a single keyval
keyvals_size : Minimum size of the even and odd keyval buffers
keyvals_alignment : Alignment of each keyval buffer
internal_size : Minimum size of internal buffer
internal_aligment : Alignment of the internal buffer
indirect_size : Minimum size of indirect buffer
indirect_aligment : Alignment of the indirect buffer
.keyvals_even/odd
-----------------
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
.internal
---------
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
VK_BUFFER_USAGE_TRANSFER_DST_BIT ("direct" mode only)
.indirect
---------
VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT
Public Members
VkDeviceSize keyval_size
VkDeviceSize keyvals_size
VkDeviceSize keyvals_alignment
VkDeviceSize internal_size
VkDeviceSize internal_alignment
VkDeviceSize indirect_size
VkDeviceSize indirect_alignment