• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2018 The Android Open Source Project
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 #pragma once
15 
16 #define VK_USE_PLATFORM_ANDROID_KHR
17 
18 #include <vulkan/vulkan.h>
19 #include <vulkan/vk_android_native_buffer.h>
20 
21 extern "C" {
22 
23 struct android_vulkan_dispatch {
24 #ifdef VK_VERSION_1_0
25 PFN_vkCreateInstance vkCreateInstance;
26 PFN_vkDestroyInstance vkDestroyInstance;
27 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
28 PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
29 PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
30 PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
31 PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
32 PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
33 PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
34 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
35 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
36 PFN_vkCreateDevice vkCreateDevice;
37 PFN_vkDestroyDevice vkDestroyDevice;
38 PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
39 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
40 PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
41 PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
42 PFN_vkGetDeviceQueue vkGetDeviceQueue;
43 PFN_vkQueueSubmit vkQueueSubmit;
44 PFN_vkQueueWaitIdle vkQueueWaitIdle;
45 PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
46 PFN_vkAllocateMemory vkAllocateMemory;
47 PFN_vkFreeMemory vkFreeMemory;
48 PFN_vkMapMemory vkMapMemory;
49 PFN_vkUnmapMemory vkUnmapMemory;
50 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
51 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
52 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
53 PFN_vkBindBufferMemory vkBindBufferMemory;
54 PFN_vkBindImageMemory vkBindImageMemory;
55 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
56 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
57 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
58 PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties;
59 PFN_vkQueueBindSparse vkQueueBindSparse;
60 PFN_vkCreateFence vkCreateFence;
61 PFN_vkDestroyFence vkDestroyFence;
62 PFN_vkResetFences vkResetFences;
63 PFN_vkGetFenceStatus vkGetFenceStatus;
64 PFN_vkWaitForFences vkWaitForFences;
65 PFN_vkCreateSemaphore vkCreateSemaphore;
66 PFN_vkDestroySemaphore vkDestroySemaphore;
67 PFN_vkCreateEvent vkCreateEvent;
68 PFN_vkDestroyEvent vkDestroyEvent;
69 PFN_vkGetEventStatus vkGetEventStatus;
70 PFN_vkSetEvent vkSetEvent;
71 PFN_vkResetEvent vkResetEvent;
72 PFN_vkCreateQueryPool vkCreateQueryPool;
73 PFN_vkDestroyQueryPool vkDestroyQueryPool;
74 PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
75 PFN_vkCreateBuffer vkCreateBuffer;
76 PFN_vkDestroyBuffer vkDestroyBuffer;
77 PFN_vkCreateBufferView vkCreateBufferView;
78 PFN_vkDestroyBufferView vkDestroyBufferView;
79 PFN_vkCreateImage vkCreateImage;
80 PFN_vkDestroyImage vkDestroyImage;
81 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
82 PFN_vkCreateImageView vkCreateImageView;
83 PFN_vkDestroyImageView vkDestroyImageView;
84 PFN_vkCreateShaderModule vkCreateShaderModule;
85 PFN_vkDestroyShaderModule vkDestroyShaderModule;
86 PFN_vkCreatePipelineCache vkCreatePipelineCache;
87 PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
88 PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
89 PFN_vkMergePipelineCaches vkMergePipelineCaches;
90 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
91 PFN_vkCreateComputePipelines vkCreateComputePipelines;
92 PFN_vkDestroyPipeline vkDestroyPipeline;
93 PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
94 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
95 PFN_vkCreateSampler vkCreateSampler;
96 PFN_vkDestroySampler vkDestroySampler;
97 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
98 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
99 PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
100 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
101 PFN_vkResetDescriptorPool vkResetDescriptorPool;
102 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
103 PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
104 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
105 PFN_vkCreateFramebuffer vkCreateFramebuffer;
106 PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
107 PFN_vkCreateRenderPass vkCreateRenderPass;
108 PFN_vkDestroyRenderPass vkDestroyRenderPass;
109 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
110 PFN_vkCreateCommandPool vkCreateCommandPool;
111 PFN_vkDestroyCommandPool vkDestroyCommandPool;
112 PFN_vkResetCommandPool vkResetCommandPool;
113 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
114 PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
115 PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
116 PFN_vkEndCommandBuffer vkEndCommandBuffer;
117 PFN_vkResetCommandBuffer vkResetCommandBuffer;
118 PFN_vkCmdBindPipeline vkCmdBindPipeline;
119 PFN_vkCmdSetViewport vkCmdSetViewport;
120 PFN_vkCmdSetScissor vkCmdSetScissor;
121 PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
122 PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
123 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
124 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
125 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
126 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
127 PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
128 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
129 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
130 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
131 PFN_vkCmdDraw vkCmdDraw;
132 PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
133 PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
134 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
135 PFN_vkCmdDispatch vkCmdDispatch;
136 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
137 PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
138 PFN_vkCmdCopyImage vkCmdCopyImage;
139 PFN_vkCmdBlitImage vkCmdBlitImage;
140 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
141 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
142 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
143 PFN_vkCmdFillBuffer vkCmdFillBuffer;
144 PFN_vkCmdClearColorImage vkCmdClearColorImage;
145 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
146 PFN_vkCmdClearAttachments vkCmdClearAttachments;
147 PFN_vkCmdResolveImage vkCmdResolveImage;
148 PFN_vkCmdSetEvent vkCmdSetEvent;
149 PFN_vkCmdResetEvent vkCmdResetEvent;
150 PFN_vkCmdWaitEvents vkCmdWaitEvents;
151 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
152 PFN_vkCmdBeginQuery vkCmdBeginQuery;
153 PFN_vkCmdEndQuery vkCmdEndQuery;
154 PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
155 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
156 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
157 PFN_vkCmdPushConstants vkCmdPushConstants;
158 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
159 PFN_vkCmdNextSubpass vkCmdNextSubpass;
160 PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
161 PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
162 #endif
163 #ifdef VK_VERSION_1_1
164 PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion;
165 PFN_vkBindBufferMemory2 vkBindBufferMemory2;
166 PFN_vkBindImageMemory2 vkBindImageMemory2;
167 PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures;
168 PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask;
169 PFN_vkCmdDispatchBase vkCmdDispatchBase;
170 PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups;
171 PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2;
172 PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2;
173 PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2;
174 PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2;
175 PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2;
176 PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2;
177 PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2;
178 PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2;
179 PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2;
180 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2;
181 PFN_vkTrimCommandPool vkTrimCommandPool;
182 PFN_vkGetDeviceQueue2 vkGetDeviceQueue2;
183 PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion;
184 PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion;
185 PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate;
186 PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate;
187 PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate;
188 PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties;
189 PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties;
190 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties;
191 PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport;
192 #endif
193 #ifdef VK_KHR_surface
194 PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
195 PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
196 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
197 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
198 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
199 #endif
200 #ifdef VK_KHR_swapchain
201 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
202 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
203 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
204 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
205 PFN_vkQueuePresentKHR vkQueuePresentKHR;
206 PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR;
207 PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR;
208 PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR;
209 PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
210 #endif
211 #ifdef VK_KHR_display
212 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR;
213 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
214 PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR;
215 PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR;
216 PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR;
217 PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR;
218 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR;
219 #endif
220 #ifdef VK_KHR_display_swapchain
221 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR;
222 #endif
223 #ifdef VK_KHR_xlib_surface
224 PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
225 PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR;
226 #endif
227 #ifdef VK_KHR_xcb_surface
228 PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
229 PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
230 #endif
231 #ifdef VK_KHR_wayland_surface
232 PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
233 PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR;
234 #endif
235 #ifdef VK_KHR_mir_surface
236 PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR;
237 PFN_vkGetPhysicalDeviceMirPresentationSupportKHR vkGetPhysicalDeviceMirPresentationSupportKHR;
238 #endif
239 #ifdef VK_KHR_android_surface
240 PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR;
241 #endif
242 #ifdef VK_KHR_win32_surface
243 PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
244 PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR;
245 #endif
246 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
247 #endif
248 #ifdef VK_KHR_multiview
249 #endif
250 #ifdef VK_KHR_get_physical_device_properties2
251 PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR;
252 PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR;
253 PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR;
254 PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR;
255 PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR;
256 PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR;
257 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
258 #endif
259 #ifdef VK_KHR_device_group
260 PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR;
261 PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR;
262 PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR;
263 #endif
264 #ifdef VK_KHR_shader_draw_parameters
265 #endif
266 #ifdef VK_KHR_maintenance1
267 PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR;
268 #endif
269 #ifdef VK_KHR_device_group_creation
270 PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR;
271 #endif
272 #ifdef VK_KHR_external_memory_capabilities
273 PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR;
274 #endif
275 #ifdef VK_KHR_external_memory
276 #endif
277 #ifdef VK_KHR_external_memory_win32
278 PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR;
279 PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR;
280 #endif
281 #ifdef VK_KHR_external_memory_fd
282 PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR;
283 PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR;
284 #endif
285 #ifdef VK_KHR_win32_keyed_mutex
286 #endif
287 #ifdef VK_KHR_external_semaphore_capabilities
288 PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
289 #endif
290 #ifdef VK_KHR_external_semaphore
291 #endif
292 #ifdef VK_KHR_external_semaphore_win32
293 PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
294 PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
295 #endif
296 #ifdef VK_KHR_external_semaphore_fd
297 PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
298 PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR;
299 #endif
300 #ifdef VK_KHR_push_descriptor
301 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR;
302 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR;
303 #endif
304 #ifdef VK_KHR_16bit_storage
305 #endif
306 #ifdef VK_KHR_incremental_present
307 #endif
308 #ifdef VK_KHR_descriptor_update_template
309 PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR;
310 PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR;
311 PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR;
312 #endif
313 #ifdef VK_KHR_create_renderpass2
314 PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR;
315 PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR;
316 PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR;
317 PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR;
318 #endif
319 #ifdef VK_KHR_shared_presentable_image
320 PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR;
321 #endif
322 #ifdef VK_KHR_external_fence_capabilities
323 PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR;
324 #endif
325 #ifdef VK_KHR_external_fence
326 #endif
327 #ifdef VK_KHR_external_fence_win32
328 PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR;
329 PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR;
330 #endif
331 #ifdef VK_KHR_external_fence_fd
332 PFN_vkImportFenceFdKHR vkImportFenceFdKHR;
333 PFN_vkGetFenceFdKHR vkGetFenceFdKHR;
334 #endif
335 #ifdef VK_KHR_maintenance2
336 #endif
337 #ifdef VK_KHR_get_surface_capabilities2
338 PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR;
339 PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR;
340 #endif
341 #ifdef VK_KHR_variable_pointers
342 #endif
343 #ifdef VK_KHR_get_display_properties2
344 PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR;
345 PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR;
346 PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR;
347 PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR;
348 #endif
349 #ifdef VK_KHR_dedicated_allocation
350 #endif
351 #ifdef VK_KHR_storage_buffer_storage_class
352 #endif
353 #ifdef VK_KHR_relaxed_block_layout
354 #endif
355 #ifdef VK_KHR_get_memory_requirements2
356 PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
357 PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
358 PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR;
359 #endif
360 #ifdef VK_KHR_image_format_list
361 #endif
362 #ifdef VK_KHR_sampler_ycbcr_conversion
363 PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR;
364 PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR;
365 #endif
366 #ifdef VK_KHR_bind_memory2
367 PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;
368 PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;
369 #endif
370 #ifdef VK_KHR_maintenance3
371 PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR;
372 #endif
373 #ifdef VK_KHR_draw_indirect_count
374 PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR;
375 PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR;
376 #endif
377 #ifdef VK_KHR_8bit_storage
378 #endif
379 #ifdef VK_ANDROID_native_buffer
380 PFN_vkGetSwapchainGrallocUsageANDROID vkGetSwapchainGrallocUsageANDROID;
381 PFN_vkAcquireImageANDROID vkAcquireImageANDROID;
382 PFN_vkQueueSignalReleaseImageANDROID vkQueueSignalReleaseImageANDROID;
383 #endif
384 #ifdef VK_EXT_debug_report
385 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT;
386 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT;
387 PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT;
388 #endif
389 #ifdef VK_NV_glsl_shader
390 #endif
391 #ifdef VK_EXT_depth_range_unrestricted
392 #endif
393 #ifdef VK_IMG_filter_cubic
394 #endif
395 #ifdef VK_AMD_rasterization_order
396 #endif
397 #ifdef VK_AMD_shader_trinary_minmax
398 #endif
399 #ifdef VK_AMD_shader_explicit_vertex_parameter
400 #endif
401 #ifdef VK_EXT_debug_marker
402 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT;
403 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT;
404 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT;
405 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT;
406 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT;
407 #endif
408 #ifdef VK_AMD_gcn_shader
409 #endif
410 #ifdef VK_NV_dedicated_allocation
411 #endif
412 #ifdef VK_AMD_draw_indirect_count
413 PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD;
414 PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD;
415 #endif
416 #ifdef VK_AMD_negative_viewport_height
417 #endif
418 #ifdef VK_AMD_gpu_shader_half_float
419 #endif
420 #ifdef VK_AMD_shader_ballot
421 #endif
422 #ifdef VK_AMD_texture_gather_bias_lod
423 #endif
424 #ifdef VK_AMD_shader_info
425 PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD;
426 #endif
427 #ifdef VK_AMD_shader_image_load_store_lod
428 #endif
429 #ifdef VK_IMG_format_pvrtc
430 #endif
431 #ifdef VK_NV_external_memory_capabilities
432 PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
433 #endif
434 #ifdef VK_NV_external_memory
435 #endif
436 #ifdef VK_NV_external_memory_win32
437 PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV;
438 #endif
439 #ifdef VK_NV_win32_keyed_mutex
440 #endif
441 #ifdef VK_EXT_validation_flags
442 #endif
443 #ifdef VK_NN_vi_surface
444 PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN;
445 #endif
446 #ifdef VK_EXT_shader_subgroup_ballot
447 #endif
448 #ifdef VK_EXT_shader_subgroup_vote
449 #endif
450 #ifdef VK_EXT_conditional_rendering
451 PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT;
452 PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT;
453 #endif
454 #ifdef VK_NVX_device_generated_commands
455 PFN_vkCmdProcessCommandsNVX vkCmdProcessCommandsNVX;
456 PFN_vkCmdReserveSpaceForCommandsNVX vkCmdReserveSpaceForCommandsNVX;
457 PFN_vkCreateIndirectCommandsLayoutNVX vkCreateIndirectCommandsLayoutNVX;
458 PFN_vkDestroyIndirectCommandsLayoutNVX vkDestroyIndirectCommandsLayoutNVX;
459 PFN_vkCreateObjectTableNVX vkCreateObjectTableNVX;
460 PFN_vkDestroyObjectTableNVX vkDestroyObjectTableNVX;
461 PFN_vkRegisterObjectsNVX vkRegisterObjectsNVX;
462 PFN_vkUnregisterObjectsNVX vkUnregisterObjectsNVX;
463 PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX;
464 #endif
465 #ifdef VK_NV_clip_space_w_scaling
466 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV;
467 #endif
468 #ifdef VK_EXT_direct_mode_display
469 PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT;
470 #endif
471 #ifdef VK_EXT_acquire_xlib_display
472 PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT;
473 PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT;
474 #endif
475 #ifdef VK_EXT_display_surface_counter
476 PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT;
477 #endif
478 #ifdef VK_EXT_display_control
479 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT;
480 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT;
481 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT;
482 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT;
483 #endif
484 #ifdef VK_GOOGLE_display_timing
485 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE;
486 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE;
487 #endif
488 #ifdef VK_NV_sample_mask_override_coverage
489 #endif
490 #ifdef VK_NV_geometry_shader_passthrough
491 #endif
492 #ifdef VK_NV_viewport_array2
493 #endif
494 #ifdef VK_NVX_multiview_per_view_attributes
495 #endif
496 #ifdef VK_NV_viewport_swizzle
497 #endif
498 #ifdef VK_EXT_discard_rectangles
499 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT;
500 #endif
501 #ifdef VK_EXT_conservative_rasterization
502 #endif
503 #ifdef VK_EXT_swapchain_colorspace
504 #endif
505 #ifdef VK_EXT_hdr_metadata
506 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT;
507 #endif
508 #ifdef VK_MVK_ios_surface
509 PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK;
510 #endif
511 #ifdef VK_MVK_macos_surface
512 PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK;
513 #endif
514 #ifdef VK_EXT_external_memory_dma_buf
515 #endif
516 #ifdef VK_EXT_queue_family_foreign
517 #endif
518 #ifdef VK_EXT_debug_utils
519 PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT;
520 PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT;
521 PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT;
522 PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT;
523 PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT;
524 PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT;
525 PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT;
526 PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT;
527 PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT;
528 PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT;
529 PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT;
530 #endif
531 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
532 PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID;
533 PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID;
534 #endif
535 #ifdef VK_EXT_sampler_filter_minmax
536 #endif
537 #ifdef VK_AMD_gpu_shader_int16
538 #endif
539 #ifdef VK_AMD_mixed_attachment_samples
540 #endif
541 #ifdef VK_AMD_shader_fragment_mask
542 #endif
543 #ifdef VK_EXT_shader_stencil_export
544 #endif
545 #ifdef VK_EXT_sample_locations
546 PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT;
547 PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT;
548 #endif
549 #ifdef VK_EXT_blend_operation_advanced
550 #endif
551 #ifdef VK_NV_fragment_coverage_to_color
552 #endif
553 #ifdef VK_NV_framebuffer_mixed_samples
554 #endif
555 #ifdef VK_NV_fill_rectangle
556 #endif
557 #ifdef VK_EXT_post_depth_coverage
558 #endif
559 #ifdef VK_EXT_validation_cache
560 PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT;
561 PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT;
562 PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT;
563 PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT;
564 #endif
565 #ifdef VK_EXT_descriptor_indexing
566 #endif
567 #ifdef VK_EXT_shader_viewport_index_layer
568 #endif
569 #ifdef VK_EXT_global_priority
570 #endif
571 #ifdef VK_EXT_external_memory_host
572 PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT;
573 #endif
574 #ifdef VK_AMD_buffer_marker
575 PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD;
576 #endif
577 #ifdef VK_AMD_shader_core_properties
578 #endif
579 #ifdef VK_EXT_vertex_attribute_divisor
580 #endif
581 #ifdef VK_NV_shader_subgroup_partitioned
582 #endif
583 #ifdef VK_NV_device_diagnostic_checkpoints
584 PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV;
585 PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV;
586 #endif
587 #if defined(VK_GOOGLE_gfxstream) || defined(VK_GOOGLE_address_space)
588 PFN_vkMapMemoryIntoAddressSpaceGOOGLE vkMapMemoryIntoAddressSpaceGOOGLE;
589 #endif
590 };
591 
592 android_vulkan_dispatch* load_android_vulkan_dispatch(const char* path);
593 
594 } // extern "C"
595