• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // *** THIS FILE IS GENERATED - DO NOT EDIT ***
2 // See layer_dispatch_table_generator.py for modifications
3 
4 /*
5  * Copyright (c) 2015-2019 The Khronos Group Inc.
6  * Copyright (c) 2015-2019 Valve Corporation
7  * Copyright (c) 2015-2019 LunarG, Inc.
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *     http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Author: Mark Lobodzinski <mark@lunarg.com>
22  * Author: Mark Young <marky@lunarg.com>
23  */
24 
25 #pragma once
26 
27 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName);
28 
29 // Instance function pointer dispatch table
30 typedef struct VkLayerInstanceDispatchTable_ {
31     // Manually add in GetPhysicalDeviceProcAddr entry
32     PFN_GetPhysicalDeviceProcAddr GetPhysicalDeviceProcAddr;
33 
34     // ---- Core 1_0 commands
35     PFN_vkCreateInstance CreateInstance;
36     PFN_vkDestroyInstance DestroyInstance;
37     PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
38     PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
39     PFN_vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties;
40     PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties;
41     PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties;
42     PFN_vkGetPhysicalDeviceQueueFamilyProperties GetPhysicalDeviceQueueFamilyProperties;
43     PFN_vkGetPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties;
44     PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
45     PFN_vkCreateDevice CreateDevice;
46     PFN_vkEnumerateInstanceExtensionProperties EnumerateInstanceExtensionProperties;
47     PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
48     PFN_vkEnumerateInstanceLayerProperties EnumerateInstanceLayerProperties;
49     PFN_vkEnumerateDeviceLayerProperties EnumerateDeviceLayerProperties;
50     PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties;
51 
52     // ---- Core 1_1 commands
53     PFN_vkEnumerateInstanceVersion EnumerateInstanceVersion;
54     PFN_vkEnumeratePhysicalDeviceGroups EnumeratePhysicalDeviceGroups;
55     PFN_vkGetPhysicalDeviceFeatures2 GetPhysicalDeviceFeatures2;
56     PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2;
57     PFN_vkGetPhysicalDeviceFormatProperties2 GetPhysicalDeviceFormatProperties2;
58     PFN_vkGetPhysicalDeviceImageFormatProperties2 GetPhysicalDeviceImageFormatProperties2;
59     PFN_vkGetPhysicalDeviceQueueFamilyProperties2 GetPhysicalDeviceQueueFamilyProperties2;
60     PFN_vkGetPhysicalDeviceMemoryProperties2 GetPhysicalDeviceMemoryProperties2;
61     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 GetPhysicalDeviceSparseImageFormatProperties2;
62     PFN_vkGetPhysicalDeviceExternalBufferProperties GetPhysicalDeviceExternalBufferProperties;
63     PFN_vkGetPhysicalDeviceExternalFenceProperties GetPhysicalDeviceExternalFenceProperties;
64     PFN_vkGetPhysicalDeviceExternalSemaphoreProperties GetPhysicalDeviceExternalSemaphoreProperties;
65 
66     // ---- VK_KHR_surface extension commands
67     PFN_vkDestroySurfaceKHR DestroySurfaceKHR;
68     PFN_vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR;
69     PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR;
70     PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR;
71     PFN_vkGetPhysicalDeviceSurfacePresentModesKHR GetPhysicalDeviceSurfacePresentModesKHR;
72 
73     // ---- VK_KHR_swapchain extension commands
74     PFN_vkGetPhysicalDevicePresentRectanglesKHR GetPhysicalDevicePresentRectanglesKHR;
75 
76     // ---- VK_KHR_display extension commands
77     PFN_vkGetPhysicalDeviceDisplayPropertiesKHR GetPhysicalDeviceDisplayPropertiesKHR;
78     PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR GetPhysicalDeviceDisplayPlanePropertiesKHR;
79     PFN_vkGetDisplayPlaneSupportedDisplaysKHR GetDisplayPlaneSupportedDisplaysKHR;
80     PFN_vkGetDisplayModePropertiesKHR GetDisplayModePropertiesKHR;
81     PFN_vkCreateDisplayModeKHR CreateDisplayModeKHR;
82     PFN_vkGetDisplayPlaneCapabilitiesKHR GetDisplayPlaneCapabilitiesKHR;
83     PFN_vkCreateDisplayPlaneSurfaceKHR CreateDisplayPlaneSurfaceKHR;
84 
85     // ---- VK_KHR_xlib_surface extension commands
86 #ifdef VK_USE_PLATFORM_XLIB_KHR
87     PFN_vkCreateXlibSurfaceKHR CreateXlibSurfaceKHR;
88 #endif // VK_USE_PLATFORM_XLIB_KHR
89 #ifdef VK_USE_PLATFORM_XLIB_KHR
90     PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR GetPhysicalDeviceXlibPresentationSupportKHR;
91 #endif // VK_USE_PLATFORM_XLIB_KHR
92 
93     // ---- VK_KHR_xcb_surface extension commands
94 #ifdef VK_USE_PLATFORM_XCB_KHR
95     PFN_vkCreateXcbSurfaceKHR CreateXcbSurfaceKHR;
96 #endif // VK_USE_PLATFORM_XCB_KHR
97 #ifdef VK_USE_PLATFORM_XCB_KHR
98     PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR GetPhysicalDeviceXcbPresentationSupportKHR;
99 #endif // VK_USE_PLATFORM_XCB_KHR
100 
101     // ---- VK_KHR_wayland_surface extension commands
102 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
103     PFN_vkCreateWaylandSurfaceKHR CreateWaylandSurfaceKHR;
104 #endif // VK_USE_PLATFORM_WAYLAND_KHR
105 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
106     PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR GetPhysicalDeviceWaylandPresentationSupportKHR;
107 #endif // VK_USE_PLATFORM_WAYLAND_KHR
108 
109     // ---- VK_KHR_android_surface extension commands
110 #ifdef VK_USE_PLATFORM_ANDROID_KHR
111     PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR;
112 #endif // VK_USE_PLATFORM_ANDROID_KHR
113 
114     // ---- VK_KHR_win32_surface extension commands
115 #ifdef VK_USE_PLATFORM_WIN32_KHR
116     PFN_vkCreateWin32SurfaceKHR CreateWin32SurfaceKHR;
117 #endif // VK_USE_PLATFORM_WIN32_KHR
118 #ifdef VK_USE_PLATFORM_WIN32_KHR
119     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR GetPhysicalDeviceWin32PresentationSupportKHR;
120 #endif // VK_USE_PLATFORM_WIN32_KHR
121 
122     // ---- VK_KHR_get_physical_device_properties2 extension commands
123     PFN_vkGetPhysicalDeviceFeatures2KHR GetPhysicalDeviceFeatures2KHR;
124     PFN_vkGetPhysicalDeviceProperties2KHR GetPhysicalDeviceProperties2KHR;
125     PFN_vkGetPhysicalDeviceFormatProperties2KHR GetPhysicalDeviceFormatProperties2KHR;
126     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR GetPhysicalDeviceImageFormatProperties2KHR;
127     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR GetPhysicalDeviceQueueFamilyProperties2KHR;
128     PFN_vkGetPhysicalDeviceMemoryProperties2KHR GetPhysicalDeviceMemoryProperties2KHR;
129     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR GetPhysicalDeviceSparseImageFormatProperties2KHR;
130 
131     // ---- VK_KHR_device_group_creation extension commands
132     PFN_vkEnumeratePhysicalDeviceGroupsKHR EnumeratePhysicalDeviceGroupsKHR;
133 
134     // ---- VK_KHR_external_memory_capabilities extension commands
135     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR GetPhysicalDeviceExternalBufferPropertiesKHR;
136 
137     // ---- VK_KHR_external_semaphore_capabilities extension commands
138     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR GetPhysicalDeviceExternalSemaphorePropertiesKHR;
139 
140     // ---- VK_KHR_external_fence_capabilities extension commands
141     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR GetPhysicalDeviceExternalFencePropertiesKHR;
142 
143     // ---- VK_KHR_get_surface_capabilities2 extension commands
144     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR;
145     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR GetPhysicalDeviceSurfaceFormats2KHR;
146 
147     // ---- VK_KHR_get_display_properties2 extension commands
148     PFN_vkGetPhysicalDeviceDisplayProperties2KHR GetPhysicalDeviceDisplayProperties2KHR;
149     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR GetPhysicalDeviceDisplayPlaneProperties2KHR;
150     PFN_vkGetDisplayModeProperties2KHR GetDisplayModeProperties2KHR;
151     PFN_vkGetDisplayPlaneCapabilities2KHR GetDisplayPlaneCapabilities2KHR;
152 
153     // ---- VK_EXT_debug_report extension commands
154     PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
155     PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
156     PFN_vkDebugReportMessageEXT DebugReportMessageEXT;
157 
158     // ---- VK_GGP_stream_descriptor_surface extension commands
159 #ifdef VK_USE_PLATFORM_GGP
160     PFN_vkCreateStreamDescriptorSurfaceGGP CreateStreamDescriptorSurfaceGGP;
161 #endif // VK_USE_PLATFORM_GGP
162 
163     // ---- VK_NV_external_memory_capabilities extension commands
164     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV GetPhysicalDeviceExternalImageFormatPropertiesNV;
165 
166     // ---- VK_NN_vi_surface extension commands
167 #ifdef VK_USE_PLATFORM_VI_NN
168     PFN_vkCreateViSurfaceNN CreateViSurfaceNN;
169 #endif // VK_USE_PLATFORM_VI_NN
170 
171     // ---- VK_NVX_device_generated_commands extension commands
172     PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX GetPhysicalDeviceGeneratedCommandsPropertiesNVX;
173 
174     // ---- VK_EXT_direct_mode_display extension commands
175     PFN_vkReleaseDisplayEXT ReleaseDisplayEXT;
176 
177     // ---- VK_EXT_acquire_xlib_display extension commands
178 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
179     PFN_vkAcquireXlibDisplayEXT AcquireXlibDisplayEXT;
180 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
181 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
182     PFN_vkGetRandROutputDisplayEXT GetRandROutputDisplayEXT;
183 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
184 
185     // ---- VK_EXT_display_surface_counter extension commands
186     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT GetPhysicalDeviceSurfaceCapabilities2EXT;
187 
188     // ---- VK_MVK_ios_surface extension commands
189 #ifdef VK_USE_PLATFORM_IOS_MVK
190     PFN_vkCreateIOSSurfaceMVK CreateIOSSurfaceMVK;
191 #endif // VK_USE_PLATFORM_IOS_MVK
192 
193     // ---- VK_MVK_macos_surface extension commands
194 #ifdef VK_USE_PLATFORM_MACOS_MVK
195     PFN_vkCreateMacOSSurfaceMVK CreateMacOSSurfaceMVK;
196 #endif // VK_USE_PLATFORM_MACOS_MVK
197 
198     // ---- VK_EXT_debug_utils extension commands
199     PFN_vkCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT;
200     PFN_vkDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT;
201     PFN_vkSubmitDebugUtilsMessageEXT SubmitDebugUtilsMessageEXT;
202 
203     // ---- VK_EXT_sample_locations extension commands
204     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT GetPhysicalDeviceMultisamplePropertiesEXT;
205 
206     // ---- VK_EXT_calibrated_timestamps extension commands
207     PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT GetPhysicalDeviceCalibrateableTimeDomainsEXT;
208 
209     // ---- VK_FUCHSIA_imagepipe_surface extension commands
210 #ifdef VK_USE_PLATFORM_FUCHSIA
211     PFN_vkCreateImagePipeSurfaceFUCHSIA CreateImagePipeSurfaceFUCHSIA;
212 #endif // VK_USE_PLATFORM_FUCHSIA
213 
214     // ---- VK_EXT_metal_surface extension commands
215 #ifdef VK_USE_PLATFORM_METAL_EXT
216     PFN_vkCreateMetalSurfaceEXT CreateMetalSurfaceEXT;
217 #endif // VK_USE_PLATFORM_METAL_EXT
218 
219     // ---- VK_NV_cooperative_matrix extension commands
220     PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV GetPhysicalDeviceCooperativeMatrixPropertiesNV;
221 
222     // ---- VK_NV_coverage_reduction_mode extension commands
223     PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
224 
225     // ---- VK_EXT_full_screen_exclusive extension commands
226 #ifdef VK_USE_PLATFORM_WIN32_KHR
227     PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT GetPhysicalDeviceSurfacePresentModes2EXT;
228 #endif // VK_USE_PLATFORM_WIN32_KHR
229 
230     // ---- VK_EXT_headless_surface extension commands
231     PFN_vkCreateHeadlessSurfaceEXT CreateHeadlessSurfaceEXT;
232 } VkLayerInstanceDispatchTable;
233 
234 // Device function pointer dispatch table
235 typedef struct VkLayerDispatchTable_ {
236 
237     // ---- Core 1_0 commands
238     PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
239     PFN_vkDestroyDevice DestroyDevice;
240     PFN_vkGetDeviceQueue GetDeviceQueue;
241     PFN_vkQueueSubmit QueueSubmit;
242     PFN_vkQueueWaitIdle QueueWaitIdle;
243     PFN_vkDeviceWaitIdle DeviceWaitIdle;
244     PFN_vkAllocateMemory AllocateMemory;
245     PFN_vkFreeMemory FreeMemory;
246     PFN_vkMapMemory MapMemory;
247     PFN_vkUnmapMemory UnmapMemory;
248     PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges;
249     PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges;
250     PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment;
251     PFN_vkBindBufferMemory BindBufferMemory;
252     PFN_vkBindImageMemory BindImageMemory;
253     PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements;
254     PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements;
255     PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements;
256     PFN_vkQueueBindSparse QueueBindSparse;
257     PFN_vkCreateFence CreateFence;
258     PFN_vkDestroyFence DestroyFence;
259     PFN_vkResetFences ResetFences;
260     PFN_vkGetFenceStatus GetFenceStatus;
261     PFN_vkWaitForFences WaitForFences;
262     PFN_vkCreateSemaphore CreateSemaphore;
263     PFN_vkDestroySemaphore DestroySemaphore;
264     PFN_vkCreateEvent CreateEvent;
265     PFN_vkDestroyEvent DestroyEvent;
266     PFN_vkGetEventStatus GetEventStatus;
267     PFN_vkSetEvent SetEvent;
268     PFN_vkResetEvent ResetEvent;
269     PFN_vkCreateQueryPool CreateQueryPool;
270     PFN_vkDestroyQueryPool DestroyQueryPool;
271     PFN_vkGetQueryPoolResults GetQueryPoolResults;
272     PFN_vkCreateBuffer CreateBuffer;
273     PFN_vkDestroyBuffer DestroyBuffer;
274     PFN_vkCreateBufferView CreateBufferView;
275     PFN_vkDestroyBufferView DestroyBufferView;
276     PFN_vkCreateImage CreateImage;
277     PFN_vkDestroyImage DestroyImage;
278     PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout;
279     PFN_vkCreateImageView CreateImageView;
280     PFN_vkDestroyImageView DestroyImageView;
281     PFN_vkCreateShaderModule CreateShaderModule;
282     PFN_vkDestroyShaderModule DestroyShaderModule;
283     PFN_vkCreatePipelineCache CreatePipelineCache;
284     PFN_vkDestroyPipelineCache DestroyPipelineCache;
285     PFN_vkGetPipelineCacheData GetPipelineCacheData;
286     PFN_vkMergePipelineCaches MergePipelineCaches;
287     PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines;
288     PFN_vkCreateComputePipelines CreateComputePipelines;
289     PFN_vkDestroyPipeline DestroyPipeline;
290     PFN_vkCreatePipelineLayout CreatePipelineLayout;
291     PFN_vkDestroyPipelineLayout DestroyPipelineLayout;
292     PFN_vkCreateSampler CreateSampler;
293     PFN_vkDestroySampler DestroySampler;
294     PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout;
295     PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout;
296     PFN_vkCreateDescriptorPool CreateDescriptorPool;
297     PFN_vkDestroyDescriptorPool DestroyDescriptorPool;
298     PFN_vkResetDescriptorPool ResetDescriptorPool;
299     PFN_vkAllocateDescriptorSets AllocateDescriptorSets;
300     PFN_vkFreeDescriptorSets FreeDescriptorSets;
301     PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
302     PFN_vkCreateFramebuffer CreateFramebuffer;
303     PFN_vkDestroyFramebuffer DestroyFramebuffer;
304     PFN_vkCreateRenderPass CreateRenderPass;
305     PFN_vkDestroyRenderPass DestroyRenderPass;
306     PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity;
307     PFN_vkCreateCommandPool CreateCommandPool;
308     PFN_vkDestroyCommandPool DestroyCommandPool;
309     PFN_vkResetCommandPool ResetCommandPool;
310     PFN_vkAllocateCommandBuffers AllocateCommandBuffers;
311     PFN_vkFreeCommandBuffers FreeCommandBuffers;
312     PFN_vkBeginCommandBuffer BeginCommandBuffer;
313     PFN_vkEndCommandBuffer EndCommandBuffer;
314     PFN_vkResetCommandBuffer ResetCommandBuffer;
315     PFN_vkCmdBindPipeline CmdBindPipeline;
316     PFN_vkCmdSetViewport CmdSetViewport;
317     PFN_vkCmdSetScissor CmdSetScissor;
318     PFN_vkCmdSetLineWidth CmdSetLineWidth;
319     PFN_vkCmdSetDepthBias CmdSetDepthBias;
320     PFN_vkCmdSetBlendConstants CmdSetBlendConstants;
321     PFN_vkCmdSetDepthBounds CmdSetDepthBounds;
322     PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask;
323     PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask;
324     PFN_vkCmdSetStencilReference CmdSetStencilReference;
325     PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets;
326     PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer;
327     PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers;
328     PFN_vkCmdDraw CmdDraw;
329     PFN_vkCmdDrawIndexed CmdDrawIndexed;
330     PFN_vkCmdDrawIndirect CmdDrawIndirect;
331     PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect;
332     PFN_vkCmdDispatch CmdDispatch;
333     PFN_vkCmdDispatchIndirect CmdDispatchIndirect;
334     PFN_vkCmdCopyBuffer CmdCopyBuffer;
335     PFN_vkCmdCopyImage CmdCopyImage;
336     PFN_vkCmdBlitImage CmdBlitImage;
337     PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage;
338     PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer;
339     PFN_vkCmdUpdateBuffer CmdUpdateBuffer;
340     PFN_vkCmdFillBuffer CmdFillBuffer;
341     PFN_vkCmdClearColorImage CmdClearColorImage;
342     PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage;
343     PFN_vkCmdClearAttachments CmdClearAttachments;
344     PFN_vkCmdResolveImage CmdResolveImage;
345     PFN_vkCmdSetEvent CmdSetEvent;
346     PFN_vkCmdResetEvent CmdResetEvent;
347     PFN_vkCmdWaitEvents CmdWaitEvents;
348     PFN_vkCmdPipelineBarrier CmdPipelineBarrier;
349     PFN_vkCmdBeginQuery CmdBeginQuery;
350     PFN_vkCmdEndQuery CmdEndQuery;
351     PFN_vkCmdResetQueryPool CmdResetQueryPool;
352     PFN_vkCmdWriteTimestamp CmdWriteTimestamp;
353     PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults;
354     PFN_vkCmdPushConstants CmdPushConstants;
355     PFN_vkCmdBeginRenderPass CmdBeginRenderPass;
356     PFN_vkCmdNextSubpass CmdNextSubpass;
357     PFN_vkCmdEndRenderPass CmdEndRenderPass;
358     PFN_vkCmdExecuteCommands CmdExecuteCommands;
359 
360     // ---- Core 1_1 commands
361     PFN_vkBindBufferMemory2 BindBufferMemory2;
362     PFN_vkBindImageMemory2 BindImageMemory2;
363     PFN_vkGetDeviceGroupPeerMemoryFeatures GetDeviceGroupPeerMemoryFeatures;
364     PFN_vkCmdSetDeviceMask CmdSetDeviceMask;
365     PFN_vkCmdDispatchBase CmdDispatchBase;
366     PFN_vkGetImageMemoryRequirements2 GetImageMemoryRequirements2;
367     PFN_vkGetBufferMemoryRequirements2 GetBufferMemoryRequirements2;
368     PFN_vkGetImageSparseMemoryRequirements2 GetImageSparseMemoryRequirements2;
369     PFN_vkTrimCommandPool TrimCommandPool;
370     PFN_vkGetDeviceQueue2 GetDeviceQueue2;
371     PFN_vkCreateSamplerYcbcrConversion CreateSamplerYcbcrConversion;
372     PFN_vkDestroySamplerYcbcrConversion DestroySamplerYcbcrConversion;
373     PFN_vkCreateDescriptorUpdateTemplate CreateDescriptorUpdateTemplate;
374     PFN_vkDestroyDescriptorUpdateTemplate DestroyDescriptorUpdateTemplate;
375     PFN_vkUpdateDescriptorSetWithTemplate UpdateDescriptorSetWithTemplate;
376     PFN_vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport;
377 
378     // ---- VK_KHR_swapchain extension commands
379     PFN_vkCreateSwapchainKHR CreateSwapchainKHR;
380     PFN_vkDestroySwapchainKHR DestroySwapchainKHR;
381     PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR;
382     PFN_vkAcquireNextImageKHR AcquireNextImageKHR;
383     PFN_vkQueuePresentKHR QueuePresentKHR;
384     PFN_vkGetDeviceGroupPresentCapabilitiesKHR GetDeviceGroupPresentCapabilitiesKHR;
385     PFN_vkGetDeviceGroupSurfacePresentModesKHR GetDeviceGroupSurfacePresentModesKHR;
386     PFN_vkAcquireNextImage2KHR AcquireNextImage2KHR;
387 
388     // ---- VK_KHR_display_swapchain extension commands
389     PFN_vkCreateSharedSwapchainsKHR CreateSharedSwapchainsKHR;
390 
391     // ---- VK_KHR_device_group extension commands
392     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR GetDeviceGroupPeerMemoryFeaturesKHR;
393     PFN_vkCmdSetDeviceMaskKHR CmdSetDeviceMaskKHR;
394     PFN_vkCmdDispatchBaseKHR CmdDispatchBaseKHR;
395 
396     // ---- VK_KHR_maintenance1 extension commands
397     PFN_vkTrimCommandPoolKHR TrimCommandPoolKHR;
398 
399     // ---- VK_KHR_external_memory_win32 extension commands
400 #ifdef VK_USE_PLATFORM_WIN32_KHR
401     PFN_vkGetMemoryWin32HandleKHR GetMemoryWin32HandleKHR;
402 #endif // VK_USE_PLATFORM_WIN32_KHR
403 #ifdef VK_USE_PLATFORM_WIN32_KHR
404     PFN_vkGetMemoryWin32HandlePropertiesKHR GetMemoryWin32HandlePropertiesKHR;
405 #endif // VK_USE_PLATFORM_WIN32_KHR
406 
407     // ---- VK_KHR_external_memory_fd extension commands
408     PFN_vkGetMemoryFdKHR GetMemoryFdKHR;
409     PFN_vkGetMemoryFdPropertiesKHR GetMemoryFdPropertiesKHR;
410 
411     // ---- VK_KHR_external_semaphore_win32 extension commands
412 #ifdef VK_USE_PLATFORM_WIN32_KHR
413     PFN_vkImportSemaphoreWin32HandleKHR ImportSemaphoreWin32HandleKHR;
414 #endif // VK_USE_PLATFORM_WIN32_KHR
415 #ifdef VK_USE_PLATFORM_WIN32_KHR
416     PFN_vkGetSemaphoreWin32HandleKHR GetSemaphoreWin32HandleKHR;
417 #endif // VK_USE_PLATFORM_WIN32_KHR
418 
419     // ---- VK_KHR_external_semaphore_fd extension commands
420     PFN_vkImportSemaphoreFdKHR ImportSemaphoreFdKHR;
421     PFN_vkGetSemaphoreFdKHR GetSemaphoreFdKHR;
422 
423     // ---- VK_KHR_push_descriptor extension commands
424     PFN_vkCmdPushDescriptorSetKHR CmdPushDescriptorSetKHR;
425     PFN_vkCmdPushDescriptorSetWithTemplateKHR CmdPushDescriptorSetWithTemplateKHR;
426 
427     // ---- VK_KHR_descriptor_update_template extension commands
428     PFN_vkCreateDescriptorUpdateTemplateKHR CreateDescriptorUpdateTemplateKHR;
429     PFN_vkDestroyDescriptorUpdateTemplateKHR DestroyDescriptorUpdateTemplateKHR;
430     PFN_vkUpdateDescriptorSetWithTemplateKHR UpdateDescriptorSetWithTemplateKHR;
431 
432     // ---- VK_KHR_create_renderpass2 extension commands
433     PFN_vkCreateRenderPass2KHR CreateRenderPass2KHR;
434     PFN_vkCmdBeginRenderPass2KHR CmdBeginRenderPass2KHR;
435     PFN_vkCmdNextSubpass2KHR CmdNextSubpass2KHR;
436     PFN_vkCmdEndRenderPass2KHR CmdEndRenderPass2KHR;
437 
438     // ---- VK_KHR_shared_presentable_image extension commands
439     PFN_vkGetSwapchainStatusKHR GetSwapchainStatusKHR;
440 
441     // ---- VK_KHR_external_fence_win32 extension commands
442 #ifdef VK_USE_PLATFORM_WIN32_KHR
443     PFN_vkImportFenceWin32HandleKHR ImportFenceWin32HandleKHR;
444 #endif // VK_USE_PLATFORM_WIN32_KHR
445 #ifdef VK_USE_PLATFORM_WIN32_KHR
446     PFN_vkGetFenceWin32HandleKHR GetFenceWin32HandleKHR;
447 #endif // VK_USE_PLATFORM_WIN32_KHR
448 
449     // ---- VK_KHR_external_fence_fd extension commands
450     PFN_vkImportFenceFdKHR ImportFenceFdKHR;
451     PFN_vkGetFenceFdKHR GetFenceFdKHR;
452 
453     // ---- VK_KHR_get_memory_requirements2 extension commands
454     PFN_vkGetImageMemoryRequirements2KHR GetImageMemoryRequirements2KHR;
455     PFN_vkGetBufferMemoryRequirements2KHR GetBufferMemoryRequirements2KHR;
456     PFN_vkGetImageSparseMemoryRequirements2KHR GetImageSparseMemoryRequirements2KHR;
457 
458     // ---- VK_KHR_sampler_ycbcr_conversion extension commands
459     PFN_vkCreateSamplerYcbcrConversionKHR CreateSamplerYcbcrConversionKHR;
460     PFN_vkDestroySamplerYcbcrConversionKHR DestroySamplerYcbcrConversionKHR;
461 
462     // ---- VK_KHR_bind_memory2 extension commands
463     PFN_vkBindBufferMemory2KHR BindBufferMemory2KHR;
464     PFN_vkBindImageMemory2KHR BindImageMemory2KHR;
465 
466     // ---- VK_KHR_maintenance3 extension commands
467     PFN_vkGetDescriptorSetLayoutSupportKHR GetDescriptorSetLayoutSupportKHR;
468 
469     // ---- VK_KHR_draw_indirect_count extension commands
470     PFN_vkCmdDrawIndirectCountKHR CmdDrawIndirectCountKHR;
471     PFN_vkCmdDrawIndexedIndirectCountKHR CmdDrawIndexedIndirectCountKHR;
472 
473     // ---- VK_KHR_pipeline_executable_properties extension commands
474     PFN_vkGetPipelineExecutablePropertiesKHR GetPipelineExecutablePropertiesKHR;
475     PFN_vkGetPipelineExecutableStatisticsKHR GetPipelineExecutableStatisticsKHR;
476     PFN_vkGetPipelineExecutableInternalRepresentationsKHR GetPipelineExecutableInternalRepresentationsKHR;
477 
478     // ---- VK_EXT_debug_marker extension commands
479     PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT;
480     PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
481     PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBeginEXT;
482     PFN_vkCmdDebugMarkerEndEXT CmdDebugMarkerEndEXT;
483     PFN_vkCmdDebugMarkerInsertEXT CmdDebugMarkerInsertEXT;
484 
485     // ---- VK_EXT_transform_feedback extension commands
486     PFN_vkCmdBindTransformFeedbackBuffersEXT CmdBindTransformFeedbackBuffersEXT;
487     PFN_vkCmdBeginTransformFeedbackEXT CmdBeginTransformFeedbackEXT;
488     PFN_vkCmdEndTransformFeedbackEXT CmdEndTransformFeedbackEXT;
489     PFN_vkCmdBeginQueryIndexedEXT CmdBeginQueryIndexedEXT;
490     PFN_vkCmdEndQueryIndexedEXT CmdEndQueryIndexedEXT;
491     PFN_vkCmdDrawIndirectByteCountEXT CmdDrawIndirectByteCountEXT;
492 
493     // ---- VK_NVX_image_view_handle extension commands
494     PFN_vkGetImageViewHandleNVX GetImageViewHandleNVX;
495 
496     // ---- VK_AMD_draw_indirect_count extension commands
497     PFN_vkCmdDrawIndirectCountAMD CmdDrawIndirectCountAMD;
498     PFN_vkCmdDrawIndexedIndirectCountAMD CmdDrawIndexedIndirectCountAMD;
499 
500     // ---- VK_AMD_shader_info extension commands
501     PFN_vkGetShaderInfoAMD GetShaderInfoAMD;
502 
503     // ---- VK_NV_external_memory_win32 extension commands
504 #ifdef VK_USE_PLATFORM_WIN32_KHR
505     PFN_vkGetMemoryWin32HandleNV GetMemoryWin32HandleNV;
506 #endif // VK_USE_PLATFORM_WIN32_KHR
507 
508     // ---- VK_EXT_conditional_rendering extension commands
509     PFN_vkCmdBeginConditionalRenderingEXT CmdBeginConditionalRenderingEXT;
510     PFN_vkCmdEndConditionalRenderingEXT CmdEndConditionalRenderingEXT;
511 
512     // ---- VK_NVX_device_generated_commands extension commands
513     PFN_vkCmdProcessCommandsNVX CmdProcessCommandsNVX;
514     PFN_vkCmdReserveSpaceForCommandsNVX CmdReserveSpaceForCommandsNVX;
515     PFN_vkCreateIndirectCommandsLayoutNVX CreateIndirectCommandsLayoutNVX;
516     PFN_vkDestroyIndirectCommandsLayoutNVX DestroyIndirectCommandsLayoutNVX;
517     PFN_vkCreateObjectTableNVX CreateObjectTableNVX;
518     PFN_vkDestroyObjectTableNVX DestroyObjectTableNVX;
519     PFN_vkRegisterObjectsNVX RegisterObjectsNVX;
520     PFN_vkUnregisterObjectsNVX UnregisterObjectsNVX;
521 
522     // ---- VK_NV_clip_space_w_scaling extension commands
523     PFN_vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV;
524 
525     // ---- VK_EXT_display_control extension commands
526     PFN_vkDisplayPowerControlEXT DisplayPowerControlEXT;
527     PFN_vkRegisterDeviceEventEXT RegisterDeviceEventEXT;
528     PFN_vkRegisterDisplayEventEXT RegisterDisplayEventEXT;
529     PFN_vkGetSwapchainCounterEXT GetSwapchainCounterEXT;
530 
531     // ---- VK_GOOGLE_display_timing extension commands
532     PFN_vkGetRefreshCycleDurationGOOGLE GetRefreshCycleDurationGOOGLE;
533     PFN_vkGetPastPresentationTimingGOOGLE GetPastPresentationTimingGOOGLE;
534 
535     // ---- VK_EXT_discard_rectangles extension commands
536     PFN_vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT;
537 
538     // ---- VK_EXT_hdr_metadata extension commands
539     PFN_vkSetHdrMetadataEXT SetHdrMetadataEXT;
540 
541     // ---- VK_EXT_debug_utils extension commands
542     PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT;
543     PFN_vkSetDebugUtilsObjectTagEXT SetDebugUtilsObjectTagEXT;
544     PFN_vkQueueBeginDebugUtilsLabelEXT QueueBeginDebugUtilsLabelEXT;
545     PFN_vkQueueEndDebugUtilsLabelEXT QueueEndDebugUtilsLabelEXT;
546     PFN_vkQueueInsertDebugUtilsLabelEXT QueueInsertDebugUtilsLabelEXT;
547     PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT;
548     PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT;
549     PFN_vkCmdInsertDebugUtilsLabelEXT CmdInsertDebugUtilsLabelEXT;
550 
551     // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
552 #ifdef VK_USE_PLATFORM_ANDROID_KHR
553     PFN_vkGetAndroidHardwareBufferPropertiesANDROID GetAndroidHardwareBufferPropertiesANDROID;
554 #endif // VK_USE_PLATFORM_ANDROID_KHR
555 #ifdef VK_USE_PLATFORM_ANDROID_KHR
556     PFN_vkGetMemoryAndroidHardwareBufferANDROID GetMemoryAndroidHardwareBufferANDROID;
557 #endif // VK_USE_PLATFORM_ANDROID_KHR
558 
559     // ---- VK_EXT_sample_locations extension commands
560     PFN_vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT;
561 
562     // ---- VK_EXT_image_drm_format_modifier extension commands
563     PFN_vkGetImageDrmFormatModifierPropertiesEXT GetImageDrmFormatModifierPropertiesEXT;
564 
565     // ---- VK_EXT_validation_cache extension commands
566     PFN_vkCreateValidationCacheEXT CreateValidationCacheEXT;
567     PFN_vkDestroyValidationCacheEXT DestroyValidationCacheEXT;
568     PFN_vkMergeValidationCachesEXT MergeValidationCachesEXT;
569     PFN_vkGetValidationCacheDataEXT GetValidationCacheDataEXT;
570 
571     // ---- VK_NV_shading_rate_image extension commands
572     PFN_vkCmdBindShadingRateImageNV CmdBindShadingRateImageNV;
573     PFN_vkCmdSetViewportShadingRatePaletteNV CmdSetViewportShadingRatePaletteNV;
574     PFN_vkCmdSetCoarseSampleOrderNV CmdSetCoarseSampleOrderNV;
575 
576     // ---- VK_NV_ray_tracing extension commands
577     PFN_vkCreateAccelerationStructureNV CreateAccelerationStructureNV;
578     PFN_vkDestroyAccelerationStructureNV DestroyAccelerationStructureNV;
579     PFN_vkGetAccelerationStructureMemoryRequirementsNV GetAccelerationStructureMemoryRequirementsNV;
580     PFN_vkBindAccelerationStructureMemoryNV BindAccelerationStructureMemoryNV;
581     PFN_vkCmdBuildAccelerationStructureNV CmdBuildAccelerationStructureNV;
582     PFN_vkCmdCopyAccelerationStructureNV CmdCopyAccelerationStructureNV;
583     PFN_vkCmdTraceRaysNV CmdTraceRaysNV;
584     PFN_vkCreateRayTracingPipelinesNV CreateRayTracingPipelinesNV;
585     PFN_vkGetRayTracingShaderGroupHandlesNV GetRayTracingShaderGroupHandlesNV;
586     PFN_vkGetAccelerationStructureHandleNV GetAccelerationStructureHandleNV;
587     PFN_vkCmdWriteAccelerationStructuresPropertiesNV CmdWriteAccelerationStructuresPropertiesNV;
588     PFN_vkCompileDeferredNV CompileDeferredNV;
589 
590     // ---- VK_EXT_external_memory_host extension commands
591     PFN_vkGetMemoryHostPointerPropertiesEXT GetMemoryHostPointerPropertiesEXT;
592 
593     // ---- VK_AMD_buffer_marker extension commands
594     PFN_vkCmdWriteBufferMarkerAMD CmdWriteBufferMarkerAMD;
595 
596     // ---- VK_EXT_calibrated_timestamps extension commands
597     PFN_vkGetCalibratedTimestampsEXT GetCalibratedTimestampsEXT;
598 
599     // ---- VK_NV_mesh_shader extension commands
600     PFN_vkCmdDrawMeshTasksNV CmdDrawMeshTasksNV;
601     PFN_vkCmdDrawMeshTasksIndirectNV CmdDrawMeshTasksIndirectNV;
602     PFN_vkCmdDrawMeshTasksIndirectCountNV CmdDrawMeshTasksIndirectCountNV;
603 
604     // ---- VK_NV_scissor_exclusive extension commands
605     PFN_vkCmdSetExclusiveScissorNV CmdSetExclusiveScissorNV;
606 
607     // ---- VK_NV_device_diagnostic_checkpoints extension commands
608     PFN_vkCmdSetCheckpointNV CmdSetCheckpointNV;
609     PFN_vkGetQueueCheckpointDataNV GetQueueCheckpointDataNV;
610 
611     // ---- VK_INTEL_performance_query extension commands
612     PFN_vkInitializePerformanceApiINTEL InitializePerformanceApiINTEL;
613     PFN_vkUninitializePerformanceApiINTEL UninitializePerformanceApiINTEL;
614     PFN_vkCmdSetPerformanceMarkerINTEL CmdSetPerformanceMarkerINTEL;
615     PFN_vkCmdSetPerformanceStreamMarkerINTEL CmdSetPerformanceStreamMarkerINTEL;
616     PFN_vkCmdSetPerformanceOverrideINTEL CmdSetPerformanceOverrideINTEL;
617     PFN_vkAcquirePerformanceConfigurationINTEL AcquirePerformanceConfigurationINTEL;
618     PFN_vkReleasePerformanceConfigurationINTEL ReleasePerformanceConfigurationINTEL;
619     PFN_vkQueueSetPerformanceConfigurationINTEL QueueSetPerformanceConfigurationINTEL;
620     PFN_vkGetPerformanceParameterINTEL GetPerformanceParameterINTEL;
621 
622     // ---- VK_AMD_display_native_hdr extension commands
623     PFN_vkSetLocalDimmingAMD SetLocalDimmingAMD;
624 
625     // ---- VK_EXT_buffer_device_address extension commands
626     PFN_vkGetBufferDeviceAddressEXT GetBufferDeviceAddressEXT;
627 
628     // ---- VK_EXT_full_screen_exclusive extension commands
629 #ifdef VK_USE_PLATFORM_WIN32_KHR
630     PFN_vkAcquireFullScreenExclusiveModeEXT AcquireFullScreenExclusiveModeEXT;
631 #endif // VK_USE_PLATFORM_WIN32_KHR
632 #ifdef VK_USE_PLATFORM_WIN32_KHR
633     PFN_vkReleaseFullScreenExclusiveModeEXT ReleaseFullScreenExclusiveModeEXT;
634 #endif // VK_USE_PLATFORM_WIN32_KHR
635 #ifdef VK_USE_PLATFORM_WIN32_KHR
636     PFN_vkGetDeviceGroupSurfacePresentModes2EXT GetDeviceGroupSurfacePresentModes2EXT;
637 #endif // VK_USE_PLATFORM_WIN32_KHR
638 
639     // ---- VK_EXT_line_rasterization extension commands
640     PFN_vkCmdSetLineStippleEXT CmdSetLineStippleEXT;
641 
642     // ---- VK_EXT_host_query_reset extension commands
643     PFN_vkResetQueryPoolEXT ResetQueryPoolEXT;
644 } VkLayerDispatchTable;
645 
646 
647