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