1 // Copyright 2021 The Fuchsia Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef SRC_GRAPHICS_LIB_COMPUTE_RADIX_SORT_PLATFORMS_VK_RADIX_SORT_VK_EXT_H_ 6 #define SRC_GRAPHICS_LIB_COMPUTE_RADIX_SORT_PLATFORMS_VK_RADIX_SORT_VK_EXT_H_ 7 8 // 9 // 10 // 11 12 #include <vulkan/vulkan_core.h> 13 14 // 15 // 16 // 17 18 #include <stdbool.h> 19 #include <stdint.h> 20 21 // 22 // 23 // 24 25 #ifdef __cplusplus 26 extern "C" { 27 #endif 28 29 // 30 // Radix sort extensions 31 // --------------------- 32 // 33 #ifndef RADIX_SORT_VK_DISABLE_EXTENSIONS 34 35 // 36 // Extension types 37 // 38 enum radix_sort_vk_ext_type 39 { 40 RADIX_SORT_VK_EXT_TIMESTAMPS 41 }; 42 43 // 44 // Timestamp each logical step of the algorithm 45 // 46 // Number of timestamps is: 5 + (number of subpasses) 47 // 48 // * direct dispatch: 4 + subpass count 49 // * indirect dispatch: 5 + subpass count 50 // 51 // Indirect / 32-bit keyvals: 9 52 // Indirect / 64-bit keyvals: 13 53 // 54 struct radix_sort_vk_ext_timestamps 55 { 56 void * ext; 57 enum radix_sort_vk_ext_type type; 58 uint32_t timestamp_count; 59 VkQueryPool timestamps; 60 uint32_t timestamps_set; 61 }; 62 63 #endif 64 65 // 66 // 67 //dsc 68 69 #ifdef __cplusplus 70 } 71 #endif 72 73 // 74 // 75 // 76 77 #endif // SRC_GRAPHICS_LIB_COMPUTE_RADIX_SORT_PLATFORMS_VK_RADIX_SORT_VK_EXT_H_ 78