xref: /aosp_15_r20/external/mesa3d/src/gfxstream/guest/vulkan_enc/VulkanHandles.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2018 Google LLC
3  * SPDX-License-Identifier: MIT
4  */
5 #pragma once
6 
7 #include <vulkan/vulkan.h>
8 
9 namespace gfxstream {
10 namespace vk {
11 
12 #define GOLDFISH_VK_LIST_TRIVIAL_DISPATCHABLE_HANDLE_TYPES(f) f(VkPhysicalDevice)
13 
14 #define GOLDFISH_VK_LIST_DISPATCHABLE_HANDLE_TYPES(f) \
15     f(VkInstance)                                     \
16     f(VkDevice)                                       \
17     f(VkCommandBuffer)                                \
18     f(VkQueue)                                        \
19     GOLDFISH_VK_LIST_TRIVIAL_DISPATCHABLE_HANDLE_TYPES(f)
20 
21 #ifdef VK_NVX_binary_import
22 
23 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NVX_BINARY_IMPORT(f) \
24     f(VkCuModuleNVX)                                                          \
25     f(VkCuFunctionNVX)
26 
27 #else
28 
29 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NVX_BINARY_IMPORT(f)
30 
31 #endif  // VK_NVX_binary_import
32 
33 #ifdef VK_NVX_device_generated_commands
34 
35 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NVX_DEVICE_GENERATED_COMMANDS(f) \
36     f(VkObjectTableNVX)                                                                   \
37     f(VkIndirectCommandsLayoutNVX)
38 
39 #else
40 
41 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NVX_DEVICE_GENERATED_COMMANDS(f)
42 
43 #endif  // VK_NVX_device_generated_commands
44 
45 #ifdef VK_NV_device_generated_commands
46 
47 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_DEVICE_GENERATED_COMMANDS(f) \
48     f(VkIndirectCommandsLayoutNV)
49 
50 #else
51 
52 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_DEVICE_GENERATED_COMMANDS(f)
53 
54 #endif  // VK_NV_device_generated_commands
55 
56 #ifdef VK_NV_ray_tracing
57 
58 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_RAY_TRACING(f) \
59     f(VkAccelerationStructureNV)
60 
61 #else
62 
63 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_RAY_TRACING(f)
64 
65 #endif  // VK_NV_ray_tracing
66 
67 #ifdef VK_KHR_acceleration_structure
68 
69 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_KHR_ACCELERATION_STRUCTURE(f) \
70     f(VkAccelerationStructureKHR)
71 
72 #else
73 
74 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_KHR_ACCELERATION_STRUCTURE(f)
75 
76 #endif  // VK_KHR_acceleration_structure
77 
78 #ifdef VK_USE_PLATFORM_FUCHSIA
79 
80 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_FUCHSIA(f) f(VkBufferCollectionFUCHSIA)
81 
82 #else
83 
84 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_FUCHSIA(f)
85 
86 #endif  // VK_USE_PLATFORM_FUCHSIA
87 
88 #define GOLDFISH_VK_LIST_TRIVIAL_NON_DISPATCHABLE_HANDLE_TYPES(f)                     \
89     f(VkBufferView)                                                                   \
90     f(VkImageView)                                                                    \
91     f(VkShaderModule)                                                                 \
92     f(VkPipeline)                                                                     \
93     f(VkPipelineCache)                                                                \
94     f(VkPipelineLayout)                                                               \
95     f(VkRenderPass)                                                                   \
96     f(VkFramebuffer)                                                                  \
97     f(VkEvent)                                                                        \
98     f(VkQueryPool)                                                                    \
99     f(VkSamplerYcbcrConversion)                                                       \
100     f(VkSurfaceKHR)                                                                   \
101     f(VkSwapchainKHR)                                                                 \
102     f(VkDisplayKHR)                                                                   \
103     f(VkDisplayModeKHR)                                                               \
104     f(VkValidationCacheEXT)                                                           \
105     f(VkDebugReportCallbackEXT)                                                       \
106     f(VkDebugUtilsMessengerEXT)                                                       \
107     f(VkPrivateDataSlot)                                                              \
108     f(VkMicromapEXT)                                                                  \
109     __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NVX_BINARY_IMPORT(f)             \
110     __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NVX_DEVICE_GENERATED_COMMANDS(f) \
111     __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_DEVICE_GENERATED_COMMANDS(f)  \
112     __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_RAY_TRACING(f)                \
113     __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_KHR_ACCELERATION_STRUCTURE(f)
114 
115 #define GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES(f)       \
116     f(VkDeviceMemory)                                           \
117     f(VkBuffer)                                                 \
118     f(VkImage)                                                  \
119     f(VkSemaphore)                                              \
120     f(VkDescriptorUpdateTemplate)                               \
121     f(VkFence)                                                  \
122     f(VkDescriptorPool)                                         \
123     f(VkDescriptorSet)                                          \
124     f(VkDescriptorSetLayout)                                    \
125     f(VkCommandPool)                                            \
126     f(VkSampler)                                                \
127     __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_FUCHSIA(f) \
128     GOLDFISH_VK_LIST_TRIVIAL_NON_DISPATCHABLE_HANDLE_TYPES(f)
129 
130 #define GOLDFISH_VK_LIST_HANDLE_TYPES(f)          \
131     GOLDFISH_VK_LIST_DISPATCHABLE_HANDLE_TYPES(f) \
132     GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES(f)
133 
134 #define GOLDFISH_VK_LIST_TRIVIAL_HANDLE_TYPES(f)          \
135     GOLDFISH_VK_LIST_TRIVIAL_DISPATCHABLE_HANDLE_TYPES(f) \
136     GOLDFISH_VK_LIST_TRIVIAL_NON_DISPATCHABLE_HANDLE_TYPES(f)
137 
138 #define GOLDFISH_VK_LIST_AUTODEFINED_STRUCT_DISPATCHABLE_HANDLE_TYPES(f) \
139     f(VkInstance)                                                        \
140     f(VkDevice)                                                          \
141     f(VkQueue)                                                           \
142     GOLDFISH_VK_LIST_TRIVIAL_DISPATCHABLE_HANDLE_TYPES(f)
143 
144 #define GOLDFISH_VK_LIST_AUTODEFINED_STRUCT_NON_DISPATCHABLE_HANDLE_TYPES(f) \
145     f(VkDeviceMemory)                                                        \
146     f(VkBuffer)                                                              \
147     f(VkImage)                                                               \
148     f(VkSemaphore)                                                           \
149     f(VkFence)                                                               \
150     f(VkDescriptorUpdateTemplate)                                            \
151     f(VkCommandPool)                                                         \
152     f(VkSampler)                                                             \
153     __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_FUCHSIA(f)              \
154     GOLDFISH_VK_LIST_TRIVIAL_NON_DISPATCHABLE_HANDLE_TYPES(f)
155 
156 #define GOLDFISH_VK_LIST_MANUAL_STRUCT_NON_DISPATCHABLE_HANDLE_TYPES(f) \
157     f(VkDescriptorPool)                                                 \
158     f(VkDescriptorSetLayout)                                            \
159     f(VkDescriptorSet)
160 
161 }  // namespace vk
162 }  // namespace gfxstream
163