• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // *** THIS FILE IS GENERATED - DO NOT EDIT ***
2 // See loader_extension_generator.py for modifications
3 
4 /*
5  * Copyright (c) 2015-2017 The Khronos Group Inc.
6  * Copyright (c) 2015-2017 Valve Corporation
7  * Copyright (c) 2015-2017 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_mir_surface extension commands
110 #ifdef VK_USE_PLATFORM_MIR_KHR
111     PFN_vkCreateMirSurfaceKHR CreateMirSurfaceKHR;
112 #endif // VK_USE_PLATFORM_MIR_KHR
113 #ifdef VK_USE_PLATFORM_MIR_KHR
114     PFN_vkGetPhysicalDeviceMirPresentationSupportKHR GetPhysicalDeviceMirPresentationSupportKHR;
115 #endif // VK_USE_PLATFORM_MIR_KHR
116 
117     // ---- VK_KHR_android_surface extension commands
118 #ifdef VK_USE_PLATFORM_ANDROID_KHR
119     PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR;
120 #endif // VK_USE_PLATFORM_ANDROID_KHR
121 
122     // ---- VK_KHR_win32_surface extension commands
123 #ifdef VK_USE_PLATFORM_WIN32_KHR
124     PFN_vkCreateWin32SurfaceKHR CreateWin32SurfaceKHR;
125 #endif // VK_USE_PLATFORM_WIN32_KHR
126 #ifdef VK_USE_PLATFORM_WIN32_KHR
127     PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR GetPhysicalDeviceWin32PresentationSupportKHR;
128 #endif // VK_USE_PLATFORM_WIN32_KHR
129 
130     // ---- VK_KHR_get_physical_device_properties2 extension commands
131     PFN_vkGetPhysicalDeviceFeatures2KHR GetPhysicalDeviceFeatures2KHR;
132     PFN_vkGetPhysicalDeviceProperties2KHR GetPhysicalDeviceProperties2KHR;
133     PFN_vkGetPhysicalDeviceFormatProperties2KHR GetPhysicalDeviceFormatProperties2KHR;
134     PFN_vkGetPhysicalDeviceImageFormatProperties2KHR GetPhysicalDeviceImageFormatProperties2KHR;
135     PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR GetPhysicalDeviceQueueFamilyProperties2KHR;
136     PFN_vkGetPhysicalDeviceMemoryProperties2KHR GetPhysicalDeviceMemoryProperties2KHR;
137     PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR GetPhysicalDeviceSparseImageFormatProperties2KHR;
138 
139     // ---- VK_KHR_device_group_creation extension commands
140     PFN_vkEnumeratePhysicalDeviceGroupsKHR EnumeratePhysicalDeviceGroupsKHR;
141 
142     // ---- VK_KHR_external_memory_capabilities extension commands
143     PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR GetPhysicalDeviceExternalBufferPropertiesKHR;
144 
145     // ---- VK_KHR_external_semaphore_capabilities extension commands
146     PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR GetPhysicalDeviceExternalSemaphorePropertiesKHR;
147 
148     // ---- VK_KHR_external_fence_capabilities extension commands
149     PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR GetPhysicalDeviceExternalFencePropertiesKHR;
150 
151     // ---- VK_KHR_get_surface_capabilities2 extension commands
152     PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR;
153     PFN_vkGetPhysicalDeviceSurfaceFormats2KHR GetPhysicalDeviceSurfaceFormats2KHR;
154 
155     // ---- VK_KHR_get_display_properties2 extension commands
156     PFN_vkGetPhysicalDeviceDisplayProperties2KHR GetPhysicalDeviceDisplayProperties2KHR;
157     PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR GetPhysicalDeviceDisplayPlaneProperties2KHR;
158     PFN_vkGetDisplayModeProperties2KHR GetDisplayModeProperties2KHR;
159     PFN_vkGetDisplayPlaneCapabilities2KHR GetDisplayPlaneCapabilities2KHR;
160 
161     // ---- VK_EXT_debug_report extension commands
162     PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
163     PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
164     PFN_vkDebugReportMessageEXT DebugReportMessageEXT;
165 
166     // ---- VK_NV_external_memory_capabilities extension commands
167     PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV GetPhysicalDeviceExternalImageFormatPropertiesNV;
168 
169     // ---- VK_NN_vi_surface extension commands
170 #ifdef VK_USE_PLATFORM_VI_NN
171     PFN_vkCreateViSurfaceNN CreateViSurfaceNN;
172 #endif // VK_USE_PLATFORM_VI_NN
173 
174     // ---- VK_NVX_device_generated_commands extension commands
175     PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX GetPhysicalDeviceGeneratedCommandsPropertiesNVX;
176 
177     // ---- VK_EXT_direct_mode_display extension commands
178     PFN_vkReleaseDisplayEXT ReleaseDisplayEXT;
179 
180     // ---- VK_EXT_acquire_xlib_display extension commands
181 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
182     PFN_vkAcquireXlibDisplayEXT AcquireXlibDisplayEXT;
183 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
184 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
185     PFN_vkGetRandROutputDisplayEXT GetRandROutputDisplayEXT;
186 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
187 
188     // ---- VK_EXT_display_surface_counter extension commands
189     PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT GetPhysicalDeviceSurfaceCapabilities2EXT;
190 
191     // ---- VK_MVK_ios_surface extension commands
192 #ifdef VK_USE_PLATFORM_IOS_MVK
193     PFN_vkCreateIOSSurfaceMVK CreateIOSSurfaceMVK;
194 #endif // VK_USE_PLATFORM_IOS_MVK
195 
196     // ---- VK_MVK_macos_surface extension commands
197 #ifdef VK_USE_PLATFORM_MACOS_MVK
198     PFN_vkCreateMacOSSurfaceMVK CreateMacOSSurfaceMVK;
199 #endif // VK_USE_PLATFORM_MACOS_MVK
200 
201     // ---- VK_EXT_debug_utils extension commands
202     PFN_vkCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT;
203     PFN_vkDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT;
204     PFN_vkSubmitDebugUtilsMessageEXT SubmitDebugUtilsMessageEXT;
205 
206     // ---- VK_EXT_sample_locations extension commands
207     PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT GetPhysicalDeviceMultisamplePropertiesEXT;
208 } VkLayerInstanceDispatchTable;
209 
210 // Device function pointer dispatch table
211 typedef struct VkLayerDispatchTable_ {
212 
213     // ---- Core 1_0 commands
214     PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
215     PFN_vkDestroyDevice DestroyDevice;
216     PFN_vkGetDeviceQueue GetDeviceQueue;
217     PFN_vkQueueSubmit QueueSubmit;
218     PFN_vkQueueWaitIdle QueueWaitIdle;
219     PFN_vkDeviceWaitIdle DeviceWaitIdle;
220     PFN_vkAllocateMemory AllocateMemory;
221     PFN_vkFreeMemory FreeMemory;
222     PFN_vkMapMemory MapMemory;
223     PFN_vkUnmapMemory UnmapMemory;
224     PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges;
225     PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges;
226     PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment;
227     PFN_vkBindBufferMemory BindBufferMemory;
228     PFN_vkBindImageMemory BindImageMemory;
229     PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements;
230     PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements;
231     PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements;
232     PFN_vkQueueBindSparse QueueBindSparse;
233     PFN_vkCreateFence CreateFence;
234     PFN_vkDestroyFence DestroyFence;
235     PFN_vkResetFences ResetFences;
236     PFN_vkGetFenceStatus GetFenceStatus;
237     PFN_vkWaitForFences WaitForFences;
238     PFN_vkCreateSemaphore CreateSemaphore;
239     PFN_vkDestroySemaphore DestroySemaphore;
240     PFN_vkCreateEvent CreateEvent;
241     PFN_vkDestroyEvent DestroyEvent;
242     PFN_vkGetEventStatus GetEventStatus;
243     PFN_vkSetEvent SetEvent;
244     PFN_vkResetEvent ResetEvent;
245     PFN_vkCreateQueryPool CreateQueryPool;
246     PFN_vkDestroyQueryPool DestroyQueryPool;
247     PFN_vkGetQueryPoolResults GetQueryPoolResults;
248     PFN_vkCreateBuffer CreateBuffer;
249     PFN_vkDestroyBuffer DestroyBuffer;
250     PFN_vkCreateBufferView CreateBufferView;
251     PFN_vkDestroyBufferView DestroyBufferView;
252     PFN_vkCreateImage CreateImage;
253     PFN_vkDestroyImage DestroyImage;
254     PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout;
255     PFN_vkCreateImageView CreateImageView;
256     PFN_vkDestroyImageView DestroyImageView;
257     PFN_vkCreateShaderModule CreateShaderModule;
258     PFN_vkDestroyShaderModule DestroyShaderModule;
259     PFN_vkCreatePipelineCache CreatePipelineCache;
260     PFN_vkDestroyPipelineCache DestroyPipelineCache;
261     PFN_vkGetPipelineCacheData GetPipelineCacheData;
262     PFN_vkMergePipelineCaches MergePipelineCaches;
263     PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines;
264     PFN_vkCreateComputePipelines CreateComputePipelines;
265     PFN_vkDestroyPipeline DestroyPipeline;
266     PFN_vkCreatePipelineLayout CreatePipelineLayout;
267     PFN_vkDestroyPipelineLayout DestroyPipelineLayout;
268     PFN_vkCreateSampler CreateSampler;
269     PFN_vkDestroySampler DestroySampler;
270     PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout;
271     PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout;
272     PFN_vkCreateDescriptorPool CreateDescriptorPool;
273     PFN_vkDestroyDescriptorPool DestroyDescriptorPool;
274     PFN_vkResetDescriptorPool ResetDescriptorPool;
275     PFN_vkAllocateDescriptorSets AllocateDescriptorSets;
276     PFN_vkFreeDescriptorSets FreeDescriptorSets;
277     PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
278     PFN_vkCreateFramebuffer CreateFramebuffer;
279     PFN_vkDestroyFramebuffer DestroyFramebuffer;
280     PFN_vkCreateRenderPass CreateRenderPass;
281     PFN_vkDestroyRenderPass DestroyRenderPass;
282     PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity;
283     PFN_vkCreateCommandPool CreateCommandPool;
284     PFN_vkDestroyCommandPool DestroyCommandPool;
285     PFN_vkResetCommandPool ResetCommandPool;
286     PFN_vkAllocateCommandBuffers AllocateCommandBuffers;
287     PFN_vkFreeCommandBuffers FreeCommandBuffers;
288     PFN_vkBeginCommandBuffer BeginCommandBuffer;
289     PFN_vkEndCommandBuffer EndCommandBuffer;
290     PFN_vkResetCommandBuffer ResetCommandBuffer;
291     PFN_vkCmdBindPipeline CmdBindPipeline;
292     PFN_vkCmdSetViewport CmdSetViewport;
293     PFN_vkCmdSetScissor CmdSetScissor;
294     PFN_vkCmdSetLineWidth CmdSetLineWidth;
295     PFN_vkCmdSetDepthBias CmdSetDepthBias;
296     PFN_vkCmdSetBlendConstants CmdSetBlendConstants;
297     PFN_vkCmdSetDepthBounds CmdSetDepthBounds;
298     PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask;
299     PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask;
300     PFN_vkCmdSetStencilReference CmdSetStencilReference;
301     PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets;
302     PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer;
303     PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers;
304     PFN_vkCmdDraw CmdDraw;
305     PFN_vkCmdDrawIndexed CmdDrawIndexed;
306     PFN_vkCmdDrawIndirect CmdDrawIndirect;
307     PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect;
308     PFN_vkCmdDispatch CmdDispatch;
309     PFN_vkCmdDispatchIndirect CmdDispatchIndirect;
310     PFN_vkCmdCopyBuffer CmdCopyBuffer;
311     PFN_vkCmdCopyImage CmdCopyImage;
312     PFN_vkCmdBlitImage CmdBlitImage;
313     PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage;
314     PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer;
315     PFN_vkCmdUpdateBuffer CmdUpdateBuffer;
316     PFN_vkCmdFillBuffer CmdFillBuffer;
317     PFN_vkCmdClearColorImage CmdClearColorImage;
318     PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage;
319     PFN_vkCmdClearAttachments CmdClearAttachments;
320     PFN_vkCmdResolveImage CmdResolveImage;
321     PFN_vkCmdSetEvent CmdSetEvent;
322     PFN_vkCmdResetEvent CmdResetEvent;
323     PFN_vkCmdWaitEvents CmdWaitEvents;
324     PFN_vkCmdPipelineBarrier CmdPipelineBarrier;
325     PFN_vkCmdBeginQuery CmdBeginQuery;
326     PFN_vkCmdEndQuery CmdEndQuery;
327     PFN_vkCmdResetQueryPool CmdResetQueryPool;
328     PFN_vkCmdWriteTimestamp CmdWriteTimestamp;
329     PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults;
330     PFN_vkCmdPushConstants CmdPushConstants;
331     PFN_vkCmdBeginRenderPass CmdBeginRenderPass;
332     PFN_vkCmdNextSubpass CmdNextSubpass;
333     PFN_vkCmdEndRenderPass CmdEndRenderPass;
334     PFN_vkCmdExecuteCommands CmdExecuteCommands;
335 
336     // ---- Core 1_1 commands
337     PFN_vkBindBufferMemory2 BindBufferMemory2;
338     PFN_vkBindImageMemory2 BindImageMemory2;
339     PFN_vkGetDeviceGroupPeerMemoryFeatures GetDeviceGroupPeerMemoryFeatures;
340     PFN_vkCmdSetDeviceMask CmdSetDeviceMask;
341     PFN_vkCmdDispatchBase CmdDispatchBase;
342     PFN_vkGetImageMemoryRequirements2 GetImageMemoryRequirements2;
343     PFN_vkGetBufferMemoryRequirements2 GetBufferMemoryRequirements2;
344     PFN_vkGetImageSparseMemoryRequirements2 GetImageSparseMemoryRequirements2;
345     PFN_vkTrimCommandPool TrimCommandPool;
346     PFN_vkGetDeviceQueue2 GetDeviceQueue2;
347     PFN_vkCreateSamplerYcbcrConversion CreateSamplerYcbcrConversion;
348     PFN_vkDestroySamplerYcbcrConversion DestroySamplerYcbcrConversion;
349     PFN_vkCreateDescriptorUpdateTemplate CreateDescriptorUpdateTemplate;
350     PFN_vkDestroyDescriptorUpdateTemplate DestroyDescriptorUpdateTemplate;
351     PFN_vkUpdateDescriptorSetWithTemplate UpdateDescriptorSetWithTemplate;
352     PFN_vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport;
353 
354     // ---- VK_KHR_swapchain extension commands
355     PFN_vkCreateSwapchainKHR CreateSwapchainKHR;
356     PFN_vkDestroySwapchainKHR DestroySwapchainKHR;
357     PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR;
358     PFN_vkAcquireNextImageKHR AcquireNextImageKHR;
359     PFN_vkQueuePresentKHR QueuePresentKHR;
360     PFN_vkGetDeviceGroupPresentCapabilitiesKHR GetDeviceGroupPresentCapabilitiesKHR;
361     PFN_vkGetDeviceGroupSurfacePresentModesKHR GetDeviceGroupSurfacePresentModesKHR;
362     PFN_vkAcquireNextImage2KHR AcquireNextImage2KHR;
363 
364     // ---- VK_KHR_display_swapchain extension commands
365     PFN_vkCreateSharedSwapchainsKHR CreateSharedSwapchainsKHR;
366 
367     // ---- VK_KHR_device_group extension commands
368     PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR GetDeviceGroupPeerMemoryFeaturesKHR;
369     PFN_vkCmdSetDeviceMaskKHR CmdSetDeviceMaskKHR;
370     PFN_vkCmdDispatchBaseKHR CmdDispatchBaseKHR;
371 
372     // ---- VK_KHR_maintenance1 extension commands
373     PFN_vkTrimCommandPoolKHR TrimCommandPoolKHR;
374 
375     // ---- VK_KHR_external_memory_win32 extension commands
376 #ifdef VK_USE_PLATFORM_WIN32_KHR
377     PFN_vkGetMemoryWin32HandleKHR GetMemoryWin32HandleKHR;
378 #endif // VK_USE_PLATFORM_WIN32_KHR
379 #ifdef VK_USE_PLATFORM_WIN32_KHR
380     PFN_vkGetMemoryWin32HandlePropertiesKHR GetMemoryWin32HandlePropertiesKHR;
381 #endif // VK_USE_PLATFORM_WIN32_KHR
382 
383     // ---- VK_KHR_external_memory_fd extension commands
384     PFN_vkGetMemoryFdKHR GetMemoryFdKHR;
385     PFN_vkGetMemoryFdPropertiesKHR GetMemoryFdPropertiesKHR;
386 
387     // ---- VK_KHR_external_semaphore_win32 extension commands
388 #ifdef VK_USE_PLATFORM_WIN32_KHR
389     PFN_vkImportSemaphoreWin32HandleKHR ImportSemaphoreWin32HandleKHR;
390 #endif // VK_USE_PLATFORM_WIN32_KHR
391 #ifdef VK_USE_PLATFORM_WIN32_KHR
392     PFN_vkGetSemaphoreWin32HandleKHR GetSemaphoreWin32HandleKHR;
393 #endif // VK_USE_PLATFORM_WIN32_KHR
394 
395     // ---- VK_KHR_external_semaphore_fd extension commands
396     PFN_vkImportSemaphoreFdKHR ImportSemaphoreFdKHR;
397     PFN_vkGetSemaphoreFdKHR GetSemaphoreFdKHR;
398 
399     // ---- VK_KHR_push_descriptor extension commands
400     PFN_vkCmdPushDescriptorSetKHR CmdPushDescriptorSetKHR;
401     PFN_vkCmdPushDescriptorSetWithTemplateKHR CmdPushDescriptorSetWithTemplateKHR;
402 
403     // ---- VK_KHR_descriptor_update_template extension commands
404     PFN_vkCreateDescriptorUpdateTemplateKHR CreateDescriptorUpdateTemplateKHR;
405     PFN_vkDestroyDescriptorUpdateTemplateKHR DestroyDescriptorUpdateTemplateKHR;
406     PFN_vkUpdateDescriptorSetWithTemplateKHR UpdateDescriptorSetWithTemplateKHR;
407 
408     // ---- VK_KHR_create_renderpass2 extension commands
409     PFN_vkCreateRenderPass2KHR CreateRenderPass2KHR;
410     PFN_vkCmdBeginRenderPass2KHR CmdBeginRenderPass2KHR;
411     PFN_vkCmdNextSubpass2KHR CmdNextSubpass2KHR;
412     PFN_vkCmdEndRenderPass2KHR CmdEndRenderPass2KHR;
413 
414     // ---- VK_KHR_shared_presentable_image extension commands
415     PFN_vkGetSwapchainStatusKHR GetSwapchainStatusKHR;
416 
417     // ---- VK_KHR_external_fence_win32 extension commands
418 #ifdef VK_USE_PLATFORM_WIN32_KHR
419     PFN_vkImportFenceWin32HandleKHR ImportFenceWin32HandleKHR;
420 #endif // VK_USE_PLATFORM_WIN32_KHR
421 #ifdef VK_USE_PLATFORM_WIN32_KHR
422     PFN_vkGetFenceWin32HandleKHR GetFenceWin32HandleKHR;
423 #endif // VK_USE_PLATFORM_WIN32_KHR
424 
425     // ---- VK_KHR_external_fence_fd extension commands
426     PFN_vkImportFenceFdKHR ImportFenceFdKHR;
427     PFN_vkGetFenceFdKHR GetFenceFdKHR;
428 
429     // ---- VK_KHR_get_memory_requirements2 extension commands
430     PFN_vkGetImageMemoryRequirements2KHR GetImageMemoryRequirements2KHR;
431     PFN_vkGetBufferMemoryRequirements2KHR GetBufferMemoryRequirements2KHR;
432     PFN_vkGetImageSparseMemoryRequirements2KHR GetImageSparseMemoryRequirements2KHR;
433 
434     // ---- VK_KHR_sampler_ycbcr_conversion extension commands
435     PFN_vkCreateSamplerYcbcrConversionKHR CreateSamplerYcbcrConversionKHR;
436     PFN_vkDestroySamplerYcbcrConversionKHR DestroySamplerYcbcrConversionKHR;
437 
438     // ---- VK_KHR_bind_memory2 extension commands
439     PFN_vkBindBufferMemory2KHR BindBufferMemory2KHR;
440     PFN_vkBindImageMemory2KHR BindImageMemory2KHR;
441 
442     // ---- VK_KHR_maintenance3 extension commands
443     PFN_vkGetDescriptorSetLayoutSupportKHR GetDescriptorSetLayoutSupportKHR;
444 
445     // ---- VK_KHR_draw_indirect_count extension commands
446     PFN_vkCmdDrawIndirectCountKHR CmdDrawIndirectCountKHR;
447     PFN_vkCmdDrawIndexedIndirectCountKHR CmdDrawIndexedIndirectCountKHR;
448 
449     // ---- VK_EXT_debug_marker extension commands
450     PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT;
451     PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
452     PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBeginEXT;
453     PFN_vkCmdDebugMarkerEndEXT CmdDebugMarkerEndEXT;
454     PFN_vkCmdDebugMarkerInsertEXT CmdDebugMarkerInsertEXT;
455 
456     // ---- VK_AMD_draw_indirect_count extension commands
457     PFN_vkCmdDrawIndirectCountAMD CmdDrawIndirectCountAMD;
458     PFN_vkCmdDrawIndexedIndirectCountAMD CmdDrawIndexedIndirectCountAMD;
459 
460     // ---- VK_AMD_shader_info extension commands
461     PFN_vkGetShaderInfoAMD GetShaderInfoAMD;
462 
463     // ---- VK_NV_external_memory_win32 extension commands
464 #ifdef VK_USE_PLATFORM_WIN32_KHR
465     PFN_vkGetMemoryWin32HandleNV GetMemoryWin32HandleNV;
466 #endif // VK_USE_PLATFORM_WIN32_KHR
467 
468     // ---- VK_EXT_conditional_rendering extension commands
469     PFN_vkCmdBeginConditionalRenderingEXT CmdBeginConditionalRenderingEXT;
470     PFN_vkCmdEndConditionalRenderingEXT CmdEndConditionalRenderingEXT;
471 
472     // ---- VK_NVX_device_generated_commands extension commands
473     PFN_vkCmdProcessCommandsNVX CmdProcessCommandsNVX;
474     PFN_vkCmdReserveSpaceForCommandsNVX CmdReserveSpaceForCommandsNVX;
475     PFN_vkCreateIndirectCommandsLayoutNVX CreateIndirectCommandsLayoutNVX;
476     PFN_vkDestroyIndirectCommandsLayoutNVX DestroyIndirectCommandsLayoutNVX;
477     PFN_vkCreateObjectTableNVX CreateObjectTableNVX;
478     PFN_vkDestroyObjectTableNVX DestroyObjectTableNVX;
479     PFN_vkRegisterObjectsNVX RegisterObjectsNVX;
480     PFN_vkUnregisterObjectsNVX UnregisterObjectsNVX;
481 
482     // ---- VK_NV_clip_space_w_scaling extension commands
483     PFN_vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV;
484 
485     // ---- VK_EXT_display_control extension commands
486     PFN_vkDisplayPowerControlEXT DisplayPowerControlEXT;
487     PFN_vkRegisterDeviceEventEXT RegisterDeviceEventEXT;
488     PFN_vkRegisterDisplayEventEXT RegisterDisplayEventEXT;
489     PFN_vkGetSwapchainCounterEXT GetSwapchainCounterEXT;
490 
491     // ---- VK_GOOGLE_display_timing extension commands
492     PFN_vkGetRefreshCycleDurationGOOGLE GetRefreshCycleDurationGOOGLE;
493     PFN_vkGetPastPresentationTimingGOOGLE GetPastPresentationTimingGOOGLE;
494 
495     // ---- VK_EXT_discard_rectangles extension commands
496     PFN_vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT;
497 
498     // ---- VK_EXT_hdr_metadata extension commands
499     PFN_vkSetHdrMetadataEXT SetHdrMetadataEXT;
500 
501     // ---- VK_EXT_debug_utils extension commands
502     PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT;
503     PFN_vkSetDebugUtilsObjectTagEXT SetDebugUtilsObjectTagEXT;
504     PFN_vkQueueBeginDebugUtilsLabelEXT QueueBeginDebugUtilsLabelEXT;
505     PFN_vkQueueEndDebugUtilsLabelEXT QueueEndDebugUtilsLabelEXT;
506     PFN_vkQueueInsertDebugUtilsLabelEXT QueueInsertDebugUtilsLabelEXT;
507     PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT;
508     PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT;
509     PFN_vkCmdInsertDebugUtilsLabelEXT CmdInsertDebugUtilsLabelEXT;
510 
511     // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
512 #ifdef VK_USE_PLATFORM_ANDROID_KHR
513     PFN_vkGetAndroidHardwareBufferPropertiesANDROID GetAndroidHardwareBufferPropertiesANDROID;
514 #endif // VK_USE_PLATFORM_ANDROID_KHR
515 #ifdef VK_USE_PLATFORM_ANDROID_KHR
516     PFN_vkGetMemoryAndroidHardwareBufferANDROID GetMemoryAndroidHardwareBufferANDROID;
517 #endif // VK_USE_PLATFORM_ANDROID_KHR
518 
519     // ---- VK_EXT_sample_locations extension commands
520     PFN_vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT;
521 
522     // ---- VK_EXT_validation_cache extension commands
523     PFN_vkCreateValidationCacheEXT CreateValidationCacheEXT;
524     PFN_vkDestroyValidationCacheEXT DestroyValidationCacheEXT;
525     PFN_vkMergeValidationCachesEXT MergeValidationCachesEXT;
526     PFN_vkGetValidationCacheDataEXT GetValidationCacheDataEXT;
527 
528     // ---- VK_EXT_external_memory_host extension commands
529     PFN_vkGetMemoryHostPointerPropertiesEXT GetMemoryHostPointerPropertiesEXT;
530 
531     // ---- VK_AMD_buffer_marker extension commands
532     PFN_vkCmdWriteBufferMarkerAMD CmdWriteBufferMarkerAMD;
533 
534     // ---- VK_NV_device_diagnostic_checkpoints extension commands
535     PFN_vkCmdSetCheckpointNV CmdSetCheckpointNV;
536     PFN_vkGetQueueCheckpointDataNV GetQueueCheckpointDataNV;
537 } VkLayerDispatchTable;
538 
539 
540