1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 // Autogenerated module goldfish_vk_dispatch
17 //
18 // (header) generated by codegen/vulkan/vulkan-docs-next/scripts/genvk.py -registry
19 // codegen/vulkan/vulkan-docs-next/xml/vk.xml -registryGfxstream
20 // codegen/vulkan/vulkan-docs-next/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal
21 //
22 // Please do not modify directly;
23 // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
24 // or directly from Python by defining:
25 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
26 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
27 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
28 //
29 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
30 // $CEREAL_OUTPUT_DIR
31 //
32 #pragma once
33 #include <vulkan/vulkan.h>
34 
35 #include "goldfish_vk_private_defs.h"
36 #include "vk_android_native_buffer_gfxstream.h"
37 #include "vulkan_gfxstream.h"
38 namespace gfxstream {
39 namespace vk {
40 
41 struct VulkanDispatch;
42 
43 }  // namespace vk
44 }  // namespace gfxstream
45 using DlOpenFunc = void*(void);
46 using DlSymFunc = void*(void*, const char*);
47 
48 namespace gfxstream {
49 namespace vk {
50 
51 void init_vulkan_dispatch_from_system_loader(DlOpenFunc dlOpenFunc, DlSymFunc dlSymFunc,
52                                              VulkanDispatch* dispatch_out);
53 
54 void init_vulkan_dispatch_from_instance(VulkanDispatch* vk, VkInstance instance,
55                                         VulkanDispatch* dispatch_out);
56 
57 void init_vulkan_dispatch_from_device(VulkanDispatch* vk, VkDevice device,
58                                       VulkanDispatch* dispatch_out);
59 
60 bool vulkan_dispatch_check_instance_VK_VERSION_1_0(const VulkanDispatch* vk);
61 
62 bool vulkan_dispatch_check_instance_VK_VERSION_1_1(const VulkanDispatch* vk);
63 
64 bool vulkan_dispatch_check_device_VK_VERSION_1_0(const VulkanDispatch* vk);
65 
66 bool vulkan_dispatch_check_device_VK_VERSION_1_1(const VulkanDispatch* vk);
67 
68 struct VulkanDispatch {
69 #ifdef VK_VERSION_1_0
70     PFN_vkCreateInstance vkCreateInstance;
71     PFN_vkDestroyInstance vkDestroyInstance;
72     PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
73     PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
74     PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties;
75     PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties;
76     PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties;
77     PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties;
78     PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties;
79     PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr;
80     PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr;
81     PFN_vkCreateDevice vkCreateDevice;
82     PFN_vkDestroyDevice vkDestroyDevice;
83     PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties;
84     PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties;
85     PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties;
86     PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties;
87     PFN_vkGetDeviceQueue vkGetDeviceQueue;
88     PFN_vkQueueSubmit vkQueueSubmit;
89     PFN_vkQueueWaitIdle vkQueueWaitIdle;
90     PFN_vkDeviceWaitIdle vkDeviceWaitIdle;
91     PFN_vkAllocateMemory vkAllocateMemory;
92     PFN_vkFreeMemory vkFreeMemory;
93     PFN_vkMapMemory vkMapMemory;
94     PFN_vkUnmapMemory vkUnmapMemory;
95     PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges;
96     PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges;
97     PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment;
98     PFN_vkBindBufferMemory vkBindBufferMemory;
99     PFN_vkBindImageMemory vkBindImageMemory;
100     PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements;
101     PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements;
102     PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements;
103     PFN_vkGetPhysicalDeviceSparseImageFormatProperties
104         vkGetPhysicalDeviceSparseImageFormatProperties;
105     PFN_vkQueueBindSparse vkQueueBindSparse;
106     PFN_vkCreateFence vkCreateFence;
107     PFN_vkDestroyFence vkDestroyFence;
108     PFN_vkResetFences vkResetFences;
109     PFN_vkGetFenceStatus vkGetFenceStatus;
110     PFN_vkWaitForFences vkWaitForFences;
111     PFN_vkCreateSemaphore vkCreateSemaphore;
112     PFN_vkDestroySemaphore vkDestroySemaphore;
113     PFN_vkCreateEvent vkCreateEvent;
114     PFN_vkDestroyEvent vkDestroyEvent;
115     PFN_vkGetEventStatus vkGetEventStatus;
116     PFN_vkSetEvent vkSetEvent;
117     PFN_vkResetEvent vkResetEvent;
118     PFN_vkCreateQueryPool vkCreateQueryPool;
119     PFN_vkDestroyQueryPool vkDestroyQueryPool;
120     PFN_vkGetQueryPoolResults vkGetQueryPoolResults;
121     PFN_vkCreateBuffer vkCreateBuffer;
122     PFN_vkDestroyBuffer vkDestroyBuffer;
123     PFN_vkCreateBufferView vkCreateBufferView;
124     PFN_vkDestroyBufferView vkDestroyBufferView;
125     PFN_vkCreateImage vkCreateImage;
126     PFN_vkDestroyImage vkDestroyImage;
127     PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout;
128     PFN_vkCreateImageView vkCreateImageView;
129     PFN_vkDestroyImageView vkDestroyImageView;
130     PFN_vkCreateShaderModule vkCreateShaderModule;
131     PFN_vkDestroyShaderModule vkDestroyShaderModule;
132     PFN_vkCreatePipelineCache vkCreatePipelineCache;
133     PFN_vkDestroyPipelineCache vkDestroyPipelineCache;
134     PFN_vkGetPipelineCacheData vkGetPipelineCacheData;
135     PFN_vkMergePipelineCaches vkMergePipelineCaches;
136     PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines;
137     PFN_vkCreateComputePipelines vkCreateComputePipelines;
138     PFN_vkDestroyPipeline vkDestroyPipeline;
139     PFN_vkCreatePipelineLayout vkCreatePipelineLayout;
140     PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout;
141     PFN_vkCreateSampler vkCreateSampler;
142     PFN_vkDestroySampler vkDestroySampler;
143     PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout;
144     PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout;
145     PFN_vkCreateDescriptorPool vkCreateDescriptorPool;
146     PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool;
147     PFN_vkResetDescriptorPool vkResetDescriptorPool;
148     PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets;
149     PFN_vkFreeDescriptorSets vkFreeDescriptorSets;
150     PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets;
151     PFN_vkCreateFramebuffer vkCreateFramebuffer;
152     PFN_vkDestroyFramebuffer vkDestroyFramebuffer;
153     PFN_vkCreateRenderPass vkCreateRenderPass;
154     PFN_vkDestroyRenderPass vkDestroyRenderPass;
155     PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity;
156     PFN_vkCreateCommandPool vkCreateCommandPool;
157     PFN_vkDestroyCommandPool vkDestroyCommandPool;
158     PFN_vkResetCommandPool vkResetCommandPool;
159     PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers;
160     PFN_vkFreeCommandBuffers vkFreeCommandBuffers;
161     PFN_vkBeginCommandBuffer vkBeginCommandBuffer;
162     PFN_vkEndCommandBuffer vkEndCommandBuffer;
163     PFN_vkResetCommandBuffer vkResetCommandBuffer;
164     PFN_vkCmdBindPipeline vkCmdBindPipeline;
165     PFN_vkCmdSetViewport vkCmdSetViewport;
166     PFN_vkCmdSetScissor vkCmdSetScissor;
167     PFN_vkCmdSetLineWidth vkCmdSetLineWidth;
168     PFN_vkCmdSetDepthBias vkCmdSetDepthBias;
169     PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants;
170     PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds;
171     PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask;
172     PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask;
173     PFN_vkCmdSetStencilReference vkCmdSetStencilReference;
174     PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets;
175     PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer;
176     PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers;
177     PFN_vkCmdDraw vkCmdDraw;
178     PFN_vkCmdDrawIndexed vkCmdDrawIndexed;
179     PFN_vkCmdDrawIndirect vkCmdDrawIndirect;
180     PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect;
181     PFN_vkCmdDispatch vkCmdDispatch;
182     PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect;
183     PFN_vkCmdCopyBuffer vkCmdCopyBuffer;
184     PFN_vkCmdCopyImage vkCmdCopyImage;
185     PFN_vkCmdBlitImage vkCmdBlitImage;
186     PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage;
187     PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer;
188     PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer;
189     PFN_vkCmdFillBuffer vkCmdFillBuffer;
190     PFN_vkCmdClearColorImage vkCmdClearColorImage;
191     PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage;
192     PFN_vkCmdClearAttachments vkCmdClearAttachments;
193     PFN_vkCmdResolveImage vkCmdResolveImage;
194     PFN_vkCmdSetEvent vkCmdSetEvent;
195     PFN_vkCmdResetEvent vkCmdResetEvent;
196     PFN_vkCmdWaitEvents vkCmdWaitEvents;
197     PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier;
198     PFN_vkCmdBeginQuery vkCmdBeginQuery;
199     PFN_vkCmdEndQuery vkCmdEndQuery;
200     PFN_vkCmdResetQueryPool vkCmdResetQueryPool;
201     PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp;
202     PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults;
203     PFN_vkCmdPushConstants vkCmdPushConstants;
204     PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass;
205     PFN_vkCmdNextSubpass vkCmdNextSubpass;
206     PFN_vkCmdEndRenderPass vkCmdEndRenderPass;
207     PFN_vkCmdExecuteCommands vkCmdExecuteCommands;
208 #endif
209 #ifdef VK_VERSION_1_1
210     PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion;
211     PFN_vkBindBufferMemory2 vkBindBufferMemory2;
212     PFN_vkBindImageMemory2 vkBindImageMemory2;
213     PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures;
214     PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask;
215     PFN_vkCmdDispatchBase vkCmdDispatchBase;
216     PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups;
217     PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2;
218     PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2;
219     PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2;
220     PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2;
221     PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2;
222     PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2;
223     PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2;
224     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2;
225     PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2;
226     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2
227         vkGetPhysicalDeviceSparseImageFormatProperties2;
228     PFN_vkTrimCommandPool vkTrimCommandPool;
229     PFN_vkGetDeviceQueue2 vkGetDeviceQueue2;
230     PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion;
231     PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion;
232     PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate;
233     PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate;
234     PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate;
235     PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties;
236     PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties;
237     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties
238         vkGetPhysicalDeviceExternalSemaphoreProperties;
239     PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport;
240 #endif
241 #ifdef VK_VERSION_1_2
242     PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount;
243     PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount;
244     PFN_vkCreateRenderPass2 vkCreateRenderPass2;
245     PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2;
246     PFN_vkCmdNextSubpass2 vkCmdNextSubpass2;
247     PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2;
248     PFN_vkResetQueryPool vkResetQueryPool;
249     PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue;
250     PFN_vkWaitSemaphores vkWaitSemaphores;
251     PFN_vkSignalSemaphore vkSignalSemaphore;
252     PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress;
253     PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress;
254     PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress;
255 #endif
256 #ifdef VK_VERSION_1_3
257     PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties;
258     PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot;
259     PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot;
260     PFN_vkSetPrivateData vkSetPrivateData;
261     PFN_vkGetPrivateData vkGetPrivateData;
262     PFN_vkCmdSetEvent2 vkCmdSetEvent2;
263     PFN_vkCmdResetEvent2 vkCmdResetEvent2;
264     PFN_vkCmdWaitEvents2 vkCmdWaitEvents2;
265     PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2;
266     PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2;
267     PFN_vkQueueSubmit2 vkQueueSubmit2;
268     PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2;
269     PFN_vkCmdCopyImage2 vkCmdCopyImage2;
270     PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2;
271     PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2;
272     PFN_vkCmdBlitImage2 vkCmdBlitImage2;
273     PFN_vkCmdResolveImage2 vkCmdResolveImage2;
274     PFN_vkCmdBeginRendering vkCmdBeginRendering;
275     PFN_vkCmdEndRendering vkCmdEndRendering;
276     PFN_vkCmdSetCullMode vkCmdSetCullMode;
277     PFN_vkCmdSetFrontFace vkCmdSetFrontFace;
278     PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology;
279     PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount;
280     PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount;
281     PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2;
282     PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable;
283     PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable;
284     PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp;
285     PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable;
286     PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable;
287     PFN_vkCmdSetStencilOp vkCmdSetStencilOp;
288     PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable;
289     PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable;
290     PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable;
291     PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements;
292     PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements;
293     PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements;
294 #endif
295 #ifdef VK_KHR_surface
296     PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR;
297     PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR;
298     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
299     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR;
300     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR;
301 #endif
302 #ifdef VK_KHR_swapchain
303     PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR;
304     PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR;
305     PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR;
306     PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR;
307     PFN_vkQueuePresentKHR vkQueuePresentKHR;
308     PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR;
309     PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR;
310     PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR;
311     PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR;
312 #endif
313 #ifdef VK_KHR_xcb_surface
314     PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
315     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR;
316 #endif
317 #ifdef VK_KHR_android_surface
318 #endif
319 #ifdef VK_KHR_win32_surface
320     PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR;
321     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR
322         vkGetPhysicalDeviceWin32PresentationSupportKHR;
323 #endif
324 #ifdef VK_KHR_dynamic_rendering
325     PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR;
326     PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR;
327 #endif
328 #ifdef VK_KHR_get_physical_device_properties2
329     PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR;
330     PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR;
331     PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR;
332     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR;
333     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR;
334     PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR;
335     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR
336         vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
337 #endif
338 #ifdef VK_KHR_maintenance1
339     PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR;
340 #endif
341 #ifdef VK_KHR_external_memory_capabilities
342     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR
343         vkGetPhysicalDeviceExternalBufferPropertiesKHR;
344 #endif
345 #ifdef VK_KHR_external_memory
346 #endif
347 #ifdef VK_KHR_external_memory_win32
348     PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR;
349     PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR;
350 #endif
351 #ifdef VK_KHR_external_memory_fd
352     PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR;
353     PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR;
354 #endif
355 #ifdef VK_KHR_external_semaphore_capabilities
356     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
357         vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
358 #endif
359 #ifdef VK_KHR_external_semaphore
360 #endif
361 #ifdef VK_KHR_external_semaphore_win32
362     PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR;
363     PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR;
364 #endif
365 #ifdef VK_KHR_external_semaphore_fd
366     PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR;
367     PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR;
368 #endif
369 #ifdef VK_KHR_shader_float16_int8
370 #endif
371 #ifdef VK_KHR_incremental_present
372 #endif
373 #ifdef VK_KHR_descriptor_update_template
374     PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR;
375     PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR;
376     PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR;
377 #endif
378 #ifdef VK_KHR_imageless_framebuffer
379 #endif
380 #ifdef VK_KHR_create_renderpass2
381     PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR;
382     PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR;
383     PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR;
384     PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR;
385 #endif
386 #ifdef VK_KHR_external_fence_capabilities
387     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR;
388 #endif
389 #ifdef VK_KHR_external_fence
390 #endif
391 #ifdef VK_KHR_external_fence_fd
392     PFN_vkImportFenceFdKHR vkImportFenceFdKHR;
393     PFN_vkGetFenceFdKHR vkGetFenceFdKHR;
394 #endif
395 #ifdef VK_KHR_maintenance2
396 #endif
397 #ifdef VK_KHR_dedicated_allocation
398 #endif
399 #ifdef VK_KHR_storage_buffer_storage_class
400 #endif
401 #ifdef VK_KHR_get_memory_requirements2
402     PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;
403     PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;
404     PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR;
405 #endif
406 #ifdef VK_KHR_image_format_list
407 #endif
408 #ifdef VK_KHR_sampler_ycbcr_conversion
409     PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR;
410     PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR;
411 #endif
412 #ifdef VK_KHR_bind_memory2
413     PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;
414     PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;
415 #endif
416 #ifdef VK_KHR_maintenance3
417     PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR;
418 #endif
419 #ifdef VK_KHR_shader_subgroup_extended_types
420 #endif
421 #ifdef VK_KHR_vulkan_memory_model
422 #endif
423 #ifdef VK_KHR_shader_terminate_invocation
424 #endif
425 #ifdef VK_KHR_buffer_device_address
426     PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR;
427     PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR;
428     PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR;
429 #endif
430 #ifdef VK_KHR_pipeline_executable_properties
431     PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR;
432     PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR;
433     PFN_vkGetPipelineExecutableInternalRepresentationsKHR
434         vkGetPipelineExecutableInternalRepresentationsKHR;
435 #endif
436 #ifdef VK_KHR_shader_integer_dot_product
437 #endif
438 #ifdef VK_KHR_shader_non_semantic_info
439 #endif
440 #ifdef VK_KHR_synchronization2
441     PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR;
442     PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR;
443     PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR;
444     PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR;
445     PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR;
446     PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR;
447     PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD;
448     PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV;
449 #endif
450 #ifdef VK_KHR_zero_initialize_workgroup_memory
451 #endif
452 #ifdef VK_KHR_copy_commands2
453     PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR;
454     PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR;
455     PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR;
456     PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR;
457     PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR;
458     PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR;
459 #endif
460 #ifdef VK_KHR_format_feature_flags2
461 #endif
462 #ifdef VK_KHR_maintenance4
463     PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR;
464     PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR;
465     PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR;
466 #endif
467 #ifdef VK_KHR_maintenance5
468     PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR;
469     PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR;
470     PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR;
471     PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR;
472 #endif
473 #ifdef VK_ANDROID_native_buffer
474     PFN_vkGetSwapchainGrallocUsageANDROID vkGetSwapchainGrallocUsageANDROID;
475     PFN_vkAcquireImageANDROID vkAcquireImageANDROID;
476     PFN_vkQueueSignalReleaseImageANDROID vkQueueSignalReleaseImageANDROID;
477     PFN_vkGetSwapchainGrallocUsage2ANDROID vkGetSwapchainGrallocUsage2ANDROID;
478 #endif
479 #ifdef VK_EXT_transform_feedback
480     PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT;
481     PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT;
482     PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT;
483     PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT;
484     PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT;
485     PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT;
486 #endif
487 #ifdef VK_AMD_gpu_shader_half_float
488 #endif
489 #ifdef VK_EXT_texture_compression_astc_hdr
490 #endif
491 #ifdef VK_EXT_depth_clip_enable
492 #endif
493 #ifdef VK_EXT_swapchain_colorspace
494 #endif
495 #ifdef VK_MVK_moltenvk
496     PFN_vkGetMTLDeviceMVK vkGetMTLDeviceMVK;
497     PFN_vkSetMTLTextureMVK vkSetMTLTextureMVK;
498     PFN_vkGetMTLTextureMVK vkGetMTLTextureMVK;
499     PFN_vkGetMTLBufferMVK vkGetMTLBufferMVK;
500     PFN_vkUseIOSurfaceMVK vkUseIOSurfaceMVK;
501     PFN_vkGetIOSurfaceMVK vkGetIOSurfaceMVK;
502 #endif
503 #ifdef VK_EXT_queue_family_foreign
504 #endif
505 #ifdef VK_EXT_debug_utils
506     PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT;
507     PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT;
508     PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT;
509     PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT;
510     PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT;
511     PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT;
512     PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT;
513     PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT;
514     PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT;
515     PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT;
516     PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT;
517 #endif
518 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
519 #endif
520 #ifdef VK_EXT_inline_uniform_block
521 #endif
522 #ifdef VK_EXT_shader_stencil_export
523 #endif
524 #ifdef VK_EXT_vertex_attribute_divisor
525 #endif
526 #ifdef VK_EXT_pipeline_creation_feedback
527 #endif
528 #ifdef VK_NV_shader_subgroup_partitioned
529 #endif
530 #ifdef VK_EXT_metal_surface
531     PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT;
532 #endif
533 #ifdef VK_EXT_fragment_density_map
534 #endif
535 #ifdef VK_EXT_scalar_block_layout
536 #endif
537 #ifdef VK_EXT_subgroup_size_control
538 #endif
539 #ifdef VK_EXT_tooling_info
540     PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT;
541 #endif
542 #ifdef VK_EXT_validation_features
543 #endif
544 #ifdef VK_EXT_provoking_vertex
545 #endif
546 #ifdef VK_EXT_line_rasterization
547     PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT;
548 #endif
549 #ifdef VK_EXT_index_type_uint8
550 #endif
551 #ifdef VK_EXT_extended_dynamic_state
552     PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT;
553     PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT;
554     PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT;
555     PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT;
556     PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT;
557     PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT;
558     PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT;
559     PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT;
560     PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT;
561     PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT;
562     PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT;
563     PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT;
564 #endif
565 #ifdef VK_EXT_host_image_copy
566     PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT;
567     PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT;
568     PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT;
569     PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT;
570     PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT;
571 #endif
572 #ifdef VK_EXT_swapchain_maintenance1
573     PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT;
574 #endif
575 #ifdef VK_EXT_shader_demote_to_helper_invocation
576 #endif
577 #ifdef VK_EXT_texel_buffer_alignment
578 #endif
579 #ifdef VK_EXT_device_memory_report
580 #endif
581 #ifdef VK_EXT_robustness2
582 #endif
583 #ifdef VK_EXT_custom_border_color
584 #endif
585 #ifdef VK_EXT_private_data
586     PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT;
587     PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT;
588     PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT;
589     PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT;
590 #endif
591 #ifdef VK_EXT_pipeline_creation_cache_control
592 #endif
593 #ifdef VK_EXT_metal_objects
594     PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT;
595 #endif
596 #ifdef VK_EXT_graphics_pipeline_library
597 #endif
598 #ifdef VK_EXT_ycbcr_2plane_444_formats
599 #endif
600 #ifdef VK_EXT_image_robustness
601 #endif
602 #ifdef VK_EXT_image_compression_control
603 #endif
604 #ifdef VK_EXT_4444_formats
605 #endif
606 #ifdef VK_EXT_primitive_topology_list_restart
607 #endif
608 #ifdef VK_EXT_extended_dynamic_state2
609     PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT;
610     PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT;
611     PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT;
612     PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT;
613     PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT;
614 #endif
615 #ifdef VK_GOOGLE_gfxstream
616     PFN_vkMapMemoryIntoAddressSpaceGOOGLE vkMapMemoryIntoAddressSpaceGOOGLE;
617     PFN_vkUpdateDescriptorSetWithTemplateSizedGOOGLE vkUpdateDescriptorSetWithTemplateSizedGOOGLE;
618     PFN_vkBeginCommandBufferAsyncGOOGLE vkBeginCommandBufferAsyncGOOGLE;
619     PFN_vkEndCommandBufferAsyncGOOGLE vkEndCommandBufferAsyncGOOGLE;
620     PFN_vkResetCommandBufferAsyncGOOGLE vkResetCommandBufferAsyncGOOGLE;
621     PFN_vkCommandBufferHostSyncGOOGLE vkCommandBufferHostSyncGOOGLE;
622     PFN_vkCreateImageWithRequirementsGOOGLE vkCreateImageWithRequirementsGOOGLE;
623     PFN_vkCreateBufferWithRequirementsGOOGLE vkCreateBufferWithRequirementsGOOGLE;
624     PFN_vkGetMemoryHostAddressInfoGOOGLE vkGetMemoryHostAddressInfoGOOGLE;
625     PFN_vkFreeMemorySyncGOOGLE vkFreeMemorySyncGOOGLE;
626     PFN_vkQueueHostSyncGOOGLE vkQueueHostSyncGOOGLE;
627     PFN_vkQueueSubmitAsyncGOOGLE vkQueueSubmitAsyncGOOGLE;
628     PFN_vkQueueWaitIdleAsyncGOOGLE vkQueueWaitIdleAsyncGOOGLE;
629     PFN_vkQueueBindSparseAsyncGOOGLE vkQueueBindSparseAsyncGOOGLE;
630     PFN_vkGetLinearImageLayoutGOOGLE vkGetLinearImageLayoutGOOGLE;
631     PFN_vkGetLinearImageLayout2GOOGLE vkGetLinearImageLayout2GOOGLE;
632     PFN_vkQueueFlushCommandsGOOGLE vkQueueFlushCommandsGOOGLE;
633     PFN_vkQueueCommitDescriptorSetUpdatesGOOGLE vkQueueCommitDescriptorSetUpdatesGOOGLE;
634     PFN_vkCollectDescriptorPoolIdsGOOGLE vkCollectDescriptorPoolIdsGOOGLE;
635     PFN_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE vkQueueSignalReleaseImageANDROIDAsyncGOOGLE;
636     PFN_vkQueueFlushCommandsFromAuxMemoryGOOGLE vkQueueFlushCommandsFromAuxMemoryGOOGLE;
637     PFN_vkGetBlobGOOGLE vkGetBlobGOOGLE;
638     PFN_vkUpdateDescriptorSetWithTemplateSized2GOOGLE vkUpdateDescriptorSetWithTemplateSized2GOOGLE;
639     PFN_vkQueueSubmitAsync2GOOGLE vkQueueSubmitAsync2GOOGLE;
640 #endif
641 #ifdef VK_EXT_load_store_op_none
642 #endif
643 #ifdef VK_EXT_image_compression_control_swapchain
644 #endif
645 #ifdef VK_QNX_external_memory_screen_buffer
646     PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX;
647 #endif
648 };
649 
650 }  // namespace vk
651 }  // namespace gfxstream
652