1 // *** THIS FILE IS GENERATED - DO NOT EDIT ***
2 // See loader_extension_generator.py for modifications
3
4 /*
5 * Copyright (c) 2015-2022 The Khronos Group Inc.
6 * Copyright (c) 2015-2022 Valve Corporation
7 * Copyright (c) 2015-2022 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 #include <stdio.h>
26 #include <stdlib.h>
27 #include <string.h>
28 #include "vk_loader_platform.h"
29 #include "loader.h"
30 #include "vk_loader_extensions.h"
31 #include <vulkan/vk_icd.h>
32 #include "wsi.h"
33 #include "debug_utils.h"
34 #include "extension_manual.h"
35
36 // Device extension error function
vkDevExtError(VkDevice dev)37 VKAPI_ATTR VkResult VKAPI_CALL vkDevExtError(VkDevice dev) {
38 struct loader_device *found_dev;
39 // The device going in is a trampoline device
40 struct loader_icd_term *icd_term = loader_get_icd_and_device(dev, &found_dev, NULL);
41
42 if (icd_term)
43 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
44 "Bad destination in loader trampoline dispatch,"
45 "Are layers and extensions that you are calling enabled?");
46 return VK_ERROR_EXTENSION_NOT_PRESENT;
47 }
48
loader_icd_init_entries(struct loader_icd_term * icd_term,VkInstance inst,const PFN_vkGetInstanceProcAddr fp_gipa)49 VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_icd_term *icd_term, VkInstance inst,
50 const PFN_vkGetInstanceProcAddr fp_gipa) {
51
52 #define LOOKUP_GIPA(func, required) \
53 do { \
54 icd_term->dispatch.func = (PFN_vk##func)fp_gipa(inst, "vk" #func); \
55 if (!icd_term->dispatch.func && required) { \
56 loader_log((struct loader_instance *)inst, VULKAN_LOADER_WARN_BIT, 0, \
57 loader_platform_get_proc_address_error("vk" #func)); \
58 return false; \
59 } \
60 } while (0)
61
62
63 // ---- Core 1_0
64 LOOKUP_GIPA(DestroyInstance, true);
65 LOOKUP_GIPA(EnumeratePhysicalDevices, true);
66 LOOKUP_GIPA(GetPhysicalDeviceFeatures, true);
67 LOOKUP_GIPA(GetPhysicalDeviceFormatProperties, true);
68 LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties, true);
69 LOOKUP_GIPA(GetPhysicalDeviceProperties, true);
70 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties, true);
71 LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties, true);
72 LOOKUP_GIPA(GetDeviceProcAddr, true);
73 LOOKUP_GIPA(CreateDevice, true);
74 LOOKUP_GIPA(EnumerateDeviceExtensionProperties, true);
75 LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties, true);
76
77 // ---- Core 1_1
78 LOOKUP_GIPA(EnumeratePhysicalDeviceGroups, false);
79 LOOKUP_GIPA(GetPhysicalDeviceFeatures2, false);
80 LOOKUP_GIPA(GetPhysicalDeviceProperties2, false);
81 LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2, false);
82 LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2, false);
83 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2, false);
84 LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2, false);
85 LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2, false);
86 LOOKUP_GIPA(GetPhysicalDeviceExternalBufferProperties, false);
87 LOOKUP_GIPA(GetPhysicalDeviceExternalFenceProperties, false);
88 LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphoreProperties, false);
89
90 // ---- Core 1_3
91 LOOKUP_GIPA(GetPhysicalDeviceToolProperties, false);
92
93 // ---- VK_KHR_surface extension commands
94 LOOKUP_GIPA(DestroySurfaceKHR, false);
95 LOOKUP_GIPA(GetPhysicalDeviceSurfaceSupportKHR, false);
96 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilitiesKHR, false);
97 LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormatsKHR, false);
98 LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModesKHR, false);
99
100 // ---- VK_KHR_swapchain extension commands
101 LOOKUP_GIPA(CreateSwapchainKHR, false);
102 LOOKUP_GIPA(GetDeviceGroupSurfacePresentModesKHR, false);
103 LOOKUP_GIPA(GetPhysicalDevicePresentRectanglesKHR, false);
104
105 // ---- VK_KHR_display extension commands
106 LOOKUP_GIPA(GetPhysicalDeviceDisplayPropertiesKHR, false);
107 LOOKUP_GIPA(GetPhysicalDeviceDisplayPlanePropertiesKHR, false);
108 LOOKUP_GIPA(GetDisplayPlaneSupportedDisplaysKHR, false);
109 LOOKUP_GIPA(GetDisplayModePropertiesKHR, false);
110 LOOKUP_GIPA(CreateDisplayModeKHR, false);
111 LOOKUP_GIPA(GetDisplayPlaneCapabilitiesKHR, false);
112 LOOKUP_GIPA(CreateDisplayPlaneSurfaceKHR, false);
113
114 // ---- VK_KHR_display_swapchain extension commands
115 LOOKUP_GIPA(CreateSharedSwapchainsKHR, false);
116
117 // ---- VK_KHR_xlib_surface extension commands
118 #ifdef VK_USE_PLATFORM_XLIB_KHR
119 LOOKUP_GIPA(CreateXlibSurfaceKHR, false);
120 #endif // VK_USE_PLATFORM_XLIB_KHR
121 #ifdef VK_USE_PLATFORM_XLIB_KHR
122 LOOKUP_GIPA(GetPhysicalDeviceXlibPresentationSupportKHR, false);
123 #endif // VK_USE_PLATFORM_XLIB_KHR
124
125 // ---- VK_KHR_xcb_surface extension commands
126 #ifdef VK_USE_PLATFORM_XCB_KHR
127 LOOKUP_GIPA(CreateXcbSurfaceKHR, false);
128 #endif // VK_USE_PLATFORM_XCB_KHR
129 #ifdef VK_USE_PLATFORM_XCB_KHR
130 LOOKUP_GIPA(GetPhysicalDeviceXcbPresentationSupportKHR, false);
131 #endif // VK_USE_PLATFORM_XCB_KHR
132
133 // ---- VK_KHR_wayland_surface extension commands
134 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
135 LOOKUP_GIPA(CreateWaylandSurfaceKHR, false);
136 #endif // VK_USE_PLATFORM_WAYLAND_KHR
137 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
138 LOOKUP_GIPA(GetPhysicalDeviceWaylandPresentationSupportKHR, false);
139 #endif // VK_USE_PLATFORM_WAYLAND_KHR
140
141 // ---- VK_KHR_android_surface extension commands
142 #ifdef VK_USE_PLATFORM_ANDROID_KHR
143 LOOKUP_GIPA(CreateAndroidSurfaceKHR, false);
144 #endif // VK_USE_PLATFORM_ANDROID_KHR
145
146 // ---- VK_KHR_win32_surface extension commands
147 #ifdef VK_USE_PLATFORM_WIN32_KHR
148 LOOKUP_GIPA(CreateWin32SurfaceKHR, false);
149 #endif // VK_USE_PLATFORM_WIN32_KHR
150 #ifdef VK_USE_PLATFORM_WIN32_KHR
151 LOOKUP_GIPA(GetPhysicalDeviceWin32PresentationSupportKHR, false);
152 #endif // VK_USE_PLATFORM_WIN32_KHR
153
154 // ---- VK_KHR_video_queue extension commands
155 #ifdef VK_ENABLE_BETA_EXTENSIONS
156 LOOKUP_GIPA(GetPhysicalDeviceVideoCapabilitiesKHR, false);
157 #endif // VK_ENABLE_BETA_EXTENSIONS
158 #ifdef VK_ENABLE_BETA_EXTENSIONS
159 LOOKUP_GIPA(GetPhysicalDeviceVideoFormatPropertiesKHR, false);
160 #endif // VK_ENABLE_BETA_EXTENSIONS
161
162 // ---- VK_KHR_get_physical_device_properties2 extension commands
163 LOOKUP_GIPA(GetPhysicalDeviceFeatures2KHR, false);
164 LOOKUP_GIPA(GetPhysicalDeviceProperties2KHR, false);
165 LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2KHR, false);
166 LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2KHR, false);
167 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2KHR, false);
168 LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2KHR, false);
169 LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2KHR, false);
170
171 // ---- VK_KHR_device_group_creation extension commands
172 LOOKUP_GIPA(EnumeratePhysicalDeviceGroupsKHR, false);
173
174 // ---- VK_KHR_external_memory_capabilities extension commands
175 LOOKUP_GIPA(GetPhysicalDeviceExternalBufferPropertiesKHR, false);
176
177 // ---- VK_KHR_external_semaphore_capabilities extension commands
178 LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphorePropertiesKHR, false);
179
180 // ---- VK_KHR_external_fence_capabilities extension commands
181 LOOKUP_GIPA(GetPhysicalDeviceExternalFencePropertiesKHR, false);
182
183 // ---- VK_KHR_performance_query extension commands
184 LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, false);
185 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, false);
186
187 // ---- VK_KHR_get_surface_capabilities2 extension commands
188 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2KHR, false);
189 LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormats2KHR, false);
190
191 // ---- VK_KHR_get_display_properties2 extension commands
192 LOOKUP_GIPA(GetPhysicalDeviceDisplayProperties2KHR, false);
193 LOOKUP_GIPA(GetPhysicalDeviceDisplayPlaneProperties2KHR, false);
194 LOOKUP_GIPA(GetDisplayModeProperties2KHR, false);
195 LOOKUP_GIPA(GetDisplayPlaneCapabilities2KHR, false);
196
197 // ---- VK_KHR_fragment_shading_rate extension commands
198 LOOKUP_GIPA(GetPhysicalDeviceFragmentShadingRatesKHR, false);
199
200 // ---- VK_EXT_debug_report extension commands
201 LOOKUP_GIPA(CreateDebugReportCallbackEXT, false);
202 LOOKUP_GIPA(DestroyDebugReportCallbackEXT, false);
203 LOOKUP_GIPA(DebugReportMessageEXT, false);
204
205 // ---- VK_EXT_debug_marker extension commands
206 LOOKUP_GIPA(DebugMarkerSetObjectTagEXT, false);
207 LOOKUP_GIPA(DebugMarkerSetObjectNameEXT, false);
208
209 // ---- VK_GGP_stream_descriptor_surface extension commands
210 #ifdef VK_USE_PLATFORM_GGP
211 LOOKUP_GIPA(CreateStreamDescriptorSurfaceGGP, false);
212 #endif // VK_USE_PLATFORM_GGP
213
214 // ---- VK_NV_external_memory_capabilities extension commands
215 LOOKUP_GIPA(GetPhysicalDeviceExternalImageFormatPropertiesNV, false);
216
217 // ---- VK_NN_vi_surface extension commands
218 #ifdef VK_USE_PLATFORM_VI_NN
219 LOOKUP_GIPA(CreateViSurfaceNN, false);
220 #endif // VK_USE_PLATFORM_VI_NN
221
222 // ---- VK_EXT_direct_mode_display extension commands
223 LOOKUP_GIPA(ReleaseDisplayEXT, false);
224
225 // ---- VK_EXT_acquire_xlib_display extension commands
226 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
227 LOOKUP_GIPA(AcquireXlibDisplayEXT, false);
228 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
229 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
230 LOOKUP_GIPA(GetRandROutputDisplayEXT, false);
231 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
232
233 // ---- VK_EXT_display_surface_counter extension commands
234 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2EXT, false);
235
236 // ---- VK_MVK_ios_surface extension commands
237 #ifdef VK_USE_PLATFORM_IOS_MVK
238 LOOKUP_GIPA(CreateIOSSurfaceMVK, false);
239 #endif // VK_USE_PLATFORM_IOS_MVK
240
241 // ---- VK_MVK_macos_surface extension commands
242 #ifdef VK_USE_PLATFORM_MACOS_MVK
243 LOOKUP_GIPA(CreateMacOSSurfaceMVK, false);
244 #endif // VK_USE_PLATFORM_MACOS_MVK
245
246 // ---- VK_EXT_debug_utils extension commands
247 LOOKUP_GIPA(SetDebugUtilsObjectNameEXT, false);
248 LOOKUP_GIPA(SetDebugUtilsObjectTagEXT, false);
249 LOOKUP_GIPA(QueueBeginDebugUtilsLabelEXT, false);
250 LOOKUP_GIPA(QueueEndDebugUtilsLabelEXT, false);
251 LOOKUP_GIPA(QueueInsertDebugUtilsLabelEXT, false);
252 LOOKUP_GIPA(CmdBeginDebugUtilsLabelEXT, false);
253 LOOKUP_GIPA(CmdEndDebugUtilsLabelEXT, false);
254 LOOKUP_GIPA(CmdInsertDebugUtilsLabelEXT, false);
255 LOOKUP_GIPA(CreateDebugUtilsMessengerEXT, false);
256 LOOKUP_GIPA(DestroyDebugUtilsMessengerEXT, false);
257 LOOKUP_GIPA(SubmitDebugUtilsMessageEXT, false);
258
259 // ---- VK_EXT_sample_locations extension commands
260 LOOKUP_GIPA(GetPhysicalDeviceMultisamplePropertiesEXT, false);
261
262 // ---- VK_EXT_calibrated_timestamps extension commands
263 LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsEXT, false);
264
265 // ---- VK_FUCHSIA_imagepipe_surface extension commands
266 #ifdef VK_USE_PLATFORM_FUCHSIA
267 LOOKUP_GIPA(CreateImagePipeSurfaceFUCHSIA, false);
268 #endif // VK_USE_PLATFORM_FUCHSIA
269
270 // ---- VK_EXT_metal_surface extension commands
271 #ifdef VK_USE_PLATFORM_METAL_EXT
272 LOOKUP_GIPA(CreateMetalSurfaceEXT, false);
273 #endif // VK_USE_PLATFORM_METAL_EXT
274
275 // ---- VK_EXT_tooling_info extension commands
276 LOOKUP_GIPA(GetPhysicalDeviceToolPropertiesEXT, false);
277
278 // ---- VK_NV_cooperative_matrix extension commands
279 LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesNV, false);
280
281 // ---- VK_NV_coverage_reduction_mode extension commands
282 LOOKUP_GIPA(GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, false);
283
284 // ---- VK_EXT_full_screen_exclusive extension commands
285 #ifdef VK_USE_PLATFORM_WIN32_KHR
286 LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModes2EXT, false);
287 #endif // VK_USE_PLATFORM_WIN32_KHR
288 #ifdef VK_USE_PLATFORM_WIN32_KHR
289 LOOKUP_GIPA(GetDeviceGroupSurfacePresentModes2EXT, false);
290 #endif // VK_USE_PLATFORM_WIN32_KHR
291
292 // ---- VK_EXT_headless_surface extension commands
293 LOOKUP_GIPA(CreateHeadlessSurfaceEXT, false);
294
295 // ---- VK_EXT_acquire_drm_display extension commands
296 LOOKUP_GIPA(AcquireDrmDisplayEXT, false);
297 LOOKUP_GIPA(GetDrmDisplayEXT, false);
298
299 // ---- VK_NV_acquire_winrt_display extension commands
300 #ifdef VK_USE_PLATFORM_WIN32_KHR
301 LOOKUP_GIPA(AcquireWinrtDisplayNV, false);
302 #endif // VK_USE_PLATFORM_WIN32_KHR
303 #ifdef VK_USE_PLATFORM_WIN32_KHR
304 LOOKUP_GIPA(GetWinrtDisplayNV, false);
305 #endif // VK_USE_PLATFORM_WIN32_KHR
306
307 // ---- VK_EXT_directfb_surface extension commands
308 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
309 LOOKUP_GIPA(CreateDirectFBSurfaceEXT, false);
310 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
311 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
312 LOOKUP_GIPA(GetPhysicalDeviceDirectFBPresentationSupportEXT, false);
313 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
314
315 // ---- VK_QNX_screen_surface extension commands
316 #ifdef VK_USE_PLATFORM_SCREEN_QNX
317 LOOKUP_GIPA(CreateScreenSurfaceQNX, false);
318 #endif // VK_USE_PLATFORM_SCREEN_QNX
319 #ifdef VK_USE_PLATFORM_SCREEN_QNX
320 LOOKUP_GIPA(GetPhysicalDeviceScreenPresentationSupportQNX, false);
321 #endif // VK_USE_PLATFORM_SCREEN_QNX
322
323 // ---- VK_NV_optical_flow extension commands
324 LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV, false);
325
326 // ---- VK_OHOS_surface extension commands
327 #ifdef VK_USE_PLATFORM_OHOS
328 LOOKUP_GIPA(CreateSurfaceOHOS, false);
329 #endif // VK_USE_PLATFORM_OHOS
330
331 #undef LOOKUP_GIPA
332
333 return true;
334 };
335
336 // Init Device function pointer dispatch table with core commands
loader_init_device_dispatch_table(struct loader_dev_dispatch_table * dev_table,PFN_vkGetDeviceProcAddr gpa,VkDevice dev)337 VKAPI_ATTR void VKAPI_CALL loader_init_device_dispatch_table(struct loader_dev_dispatch_table *dev_table, PFN_vkGetDeviceProcAddr gpa,
338 VkDevice dev) {
339 VkLayerDispatchTable *table = &dev_table->core_dispatch;
340 table->magic = DEVICE_DISP_TABLE_MAGIC_NUMBER;
341 for (uint32_t i = 0; i < MAX_NUM_UNKNOWN_EXTS; i++) dev_table->ext_dispatch[i] = (PFN_vkDevExt)vkDevExtError;
342
343 // ---- Core 1_0 commands
344 table->GetDeviceProcAddr = gpa;
345 table->DestroyDevice = (PFN_vkDestroyDevice)gpa(dev, "vkDestroyDevice");
346 table->GetDeviceQueue = (PFN_vkGetDeviceQueue)gpa(dev, "vkGetDeviceQueue");
347 table->QueueSubmit = (PFN_vkQueueSubmit)gpa(dev, "vkQueueSubmit");
348 table->QueueWaitIdle = (PFN_vkQueueWaitIdle)gpa(dev, "vkQueueWaitIdle");
349 table->DeviceWaitIdle = (PFN_vkDeviceWaitIdle)gpa(dev, "vkDeviceWaitIdle");
350 table->AllocateMemory = (PFN_vkAllocateMemory)gpa(dev, "vkAllocateMemory");
351 table->FreeMemory = (PFN_vkFreeMemory)gpa(dev, "vkFreeMemory");
352 table->MapMemory = (PFN_vkMapMemory)gpa(dev, "vkMapMemory");
353 table->UnmapMemory = (PFN_vkUnmapMemory)gpa(dev, "vkUnmapMemory");
354 table->FlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)gpa(dev, "vkFlushMappedMemoryRanges");
355 table->InvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)gpa(dev, "vkInvalidateMappedMemoryRanges");
356 table->GetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)gpa(dev, "vkGetDeviceMemoryCommitment");
357 table->BindBufferMemory = (PFN_vkBindBufferMemory)gpa(dev, "vkBindBufferMemory");
358 table->BindImageMemory = (PFN_vkBindImageMemory)gpa(dev, "vkBindImageMemory");
359 table->GetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)gpa(dev, "vkGetBufferMemoryRequirements");
360 table->GetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)gpa(dev, "vkGetImageMemoryRequirements");
361 table->GetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)gpa(dev, "vkGetImageSparseMemoryRequirements");
362 table->QueueBindSparse = (PFN_vkQueueBindSparse)gpa(dev, "vkQueueBindSparse");
363 table->CreateFence = (PFN_vkCreateFence)gpa(dev, "vkCreateFence");
364 table->DestroyFence = (PFN_vkDestroyFence)gpa(dev, "vkDestroyFence");
365 table->ResetFences = (PFN_vkResetFences)gpa(dev, "vkResetFences");
366 table->GetFenceStatus = (PFN_vkGetFenceStatus)gpa(dev, "vkGetFenceStatus");
367 table->WaitForFences = (PFN_vkWaitForFences)gpa(dev, "vkWaitForFences");
368 table->CreateSemaphore = (PFN_vkCreateSemaphore)gpa(dev, "vkCreateSemaphore");
369 table->DestroySemaphore = (PFN_vkDestroySemaphore)gpa(dev, "vkDestroySemaphore");
370 table->CreateEvent = (PFN_vkCreateEvent)gpa(dev, "vkCreateEvent");
371 table->DestroyEvent = (PFN_vkDestroyEvent)gpa(dev, "vkDestroyEvent");
372 table->GetEventStatus = (PFN_vkGetEventStatus)gpa(dev, "vkGetEventStatus");
373 table->SetEvent = (PFN_vkSetEvent)gpa(dev, "vkSetEvent");
374 table->ResetEvent = (PFN_vkResetEvent)gpa(dev, "vkResetEvent");
375 table->CreateQueryPool = (PFN_vkCreateQueryPool)gpa(dev, "vkCreateQueryPool");
376 table->DestroyQueryPool = (PFN_vkDestroyQueryPool)gpa(dev, "vkDestroyQueryPool");
377 table->GetQueryPoolResults = (PFN_vkGetQueryPoolResults)gpa(dev, "vkGetQueryPoolResults");
378 table->CreateBuffer = (PFN_vkCreateBuffer)gpa(dev, "vkCreateBuffer");
379 table->DestroyBuffer = (PFN_vkDestroyBuffer)gpa(dev, "vkDestroyBuffer");
380 table->CreateBufferView = (PFN_vkCreateBufferView)gpa(dev, "vkCreateBufferView");
381 table->DestroyBufferView = (PFN_vkDestroyBufferView)gpa(dev, "vkDestroyBufferView");
382 table->CreateImage = (PFN_vkCreateImage)gpa(dev, "vkCreateImage");
383 table->DestroyImage = (PFN_vkDestroyImage)gpa(dev, "vkDestroyImage");
384 table->GetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)gpa(dev, "vkGetImageSubresourceLayout");
385 table->CreateImageView = (PFN_vkCreateImageView)gpa(dev, "vkCreateImageView");
386 table->DestroyImageView = (PFN_vkDestroyImageView)gpa(dev, "vkDestroyImageView");
387 table->CreateShaderModule = (PFN_vkCreateShaderModule)gpa(dev, "vkCreateShaderModule");
388 table->DestroyShaderModule = (PFN_vkDestroyShaderModule)gpa(dev, "vkDestroyShaderModule");
389 table->CreatePipelineCache = (PFN_vkCreatePipelineCache)gpa(dev, "vkCreatePipelineCache");
390 table->DestroyPipelineCache = (PFN_vkDestroyPipelineCache)gpa(dev, "vkDestroyPipelineCache");
391 table->GetPipelineCacheData = (PFN_vkGetPipelineCacheData)gpa(dev, "vkGetPipelineCacheData");
392 table->MergePipelineCaches = (PFN_vkMergePipelineCaches)gpa(dev, "vkMergePipelineCaches");
393 table->CreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)gpa(dev, "vkCreateGraphicsPipelines");
394 table->CreateComputePipelines = (PFN_vkCreateComputePipelines)gpa(dev, "vkCreateComputePipelines");
395 table->DestroyPipeline = (PFN_vkDestroyPipeline)gpa(dev, "vkDestroyPipeline");
396 table->CreatePipelineLayout = (PFN_vkCreatePipelineLayout)gpa(dev, "vkCreatePipelineLayout");
397 table->DestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)gpa(dev, "vkDestroyPipelineLayout");
398 table->CreateSampler = (PFN_vkCreateSampler)gpa(dev, "vkCreateSampler");
399 table->DestroySampler = (PFN_vkDestroySampler)gpa(dev, "vkDestroySampler");
400 table->CreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)gpa(dev, "vkCreateDescriptorSetLayout");
401 table->DestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)gpa(dev, "vkDestroyDescriptorSetLayout");
402 table->CreateDescriptorPool = (PFN_vkCreateDescriptorPool)gpa(dev, "vkCreateDescriptorPool");
403 table->DestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)gpa(dev, "vkDestroyDescriptorPool");
404 table->ResetDescriptorPool = (PFN_vkResetDescriptorPool)gpa(dev, "vkResetDescriptorPool");
405 table->AllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)gpa(dev, "vkAllocateDescriptorSets");
406 table->FreeDescriptorSets = (PFN_vkFreeDescriptorSets)gpa(dev, "vkFreeDescriptorSets");
407 table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)gpa(dev, "vkUpdateDescriptorSets");
408 table->CreateFramebuffer = (PFN_vkCreateFramebuffer)gpa(dev, "vkCreateFramebuffer");
409 table->DestroyFramebuffer = (PFN_vkDestroyFramebuffer)gpa(dev, "vkDestroyFramebuffer");
410 table->CreateRenderPass = (PFN_vkCreateRenderPass)gpa(dev, "vkCreateRenderPass");
411 table->DestroyRenderPass = (PFN_vkDestroyRenderPass)gpa(dev, "vkDestroyRenderPass");
412 table->GetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)gpa(dev, "vkGetRenderAreaGranularity");
413 table->CreateCommandPool = (PFN_vkCreateCommandPool)gpa(dev, "vkCreateCommandPool");
414 table->DestroyCommandPool = (PFN_vkDestroyCommandPool)gpa(dev, "vkDestroyCommandPool");
415 table->ResetCommandPool = (PFN_vkResetCommandPool)gpa(dev, "vkResetCommandPool");
416 table->AllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)gpa(dev, "vkAllocateCommandBuffers");
417 table->FreeCommandBuffers = (PFN_vkFreeCommandBuffers)gpa(dev, "vkFreeCommandBuffers");
418 table->BeginCommandBuffer = (PFN_vkBeginCommandBuffer)gpa(dev, "vkBeginCommandBuffer");
419 table->EndCommandBuffer = (PFN_vkEndCommandBuffer)gpa(dev, "vkEndCommandBuffer");
420 table->ResetCommandBuffer = (PFN_vkResetCommandBuffer)gpa(dev, "vkResetCommandBuffer");
421 table->CmdBindPipeline = (PFN_vkCmdBindPipeline)gpa(dev, "vkCmdBindPipeline");
422 table->CmdSetViewport = (PFN_vkCmdSetViewport)gpa(dev, "vkCmdSetViewport");
423 table->CmdSetScissor = (PFN_vkCmdSetScissor)gpa(dev, "vkCmdSetScissor");
424 table->CmdSetLineWidth = (PFN_vkCmdSetLineWidth)gpa(dev, "vkCmdSetLineWidth");
425 table->CmdSetDepthBias = (PFN_vkCmdSetDepthBias)gpa(dev, "vkCmdSetDepthBias");
426 table->CmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)gpa(dev, "vkCmdSetBlendConstants");
427 table->CmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)gpa(dev, "vkCmdSetDepthBounds");
428 table->CmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)gpa(dev, "vkCmdSetStencilCompareMask");
429 table->CmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)gpa(dev, "vkCmdSetStencilWriteMask");
430 table->CmdSetStencilReference = (PFN_vkCmdSetStencilReference)gpa(dev, "vkCmdSetStencilReference");
431 table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)gpa(dev, "vkCmdBindDescriptorSets");
432 table->CmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)gpa(dev, "vkCmdBindIndexBuffer");
433 table->CmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)gpa(dev, "vkCmdBindVertexBuffers");
434 table->CmdDraw = (PFN_vkCmdDraw)gpa(dev, "vkCmdDraw");
435 table->CmdDrawIndexed = (PFN_vkCmdDrawIndexed)gpa(dev, "vkCmdDrawIndexed");
436 table->CmdDrawIndirect = (PFN_vkCmdDrawIndirect)gpa(dev, "vkCmdDrawIndirect");
437 table->CmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)gpa(dev, "vkCmdDrawIndexedIndirect");
438 table->CmdDispatch = (PFN_vkCmdDispatch)gpa(dev, "vkCmdDispatch");
439 table->CmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)gpa(dev, "vkCmdDispatchIndirect");
440 table->CmdCopyBuffer = (PFN_vkCmdCopyBuffer)gpa(dev, "vkCmdCopyBuffer");
441 table->CmdCopyImage = (PFN_vkCmdCopyImage)gpa(dev, "vkCmdCopyImage");
442 table->CmdBlitImage = (PFN_vkCmdBlitImage)gpa(dev, "vkCmdBlitImage");
443 table->CmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)gpa(dev, "vkCmdCopyBufferToImage");
444 table->CmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)gpa(dev, "vkCmdCopyImageToBuffer");
445 table->CmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)gpa(dev, "vkCmdUpdateBuffer");
446 table->CmdFillBuffer = (PFN_vkCmdFillBuffer)gpa(dev, "vkCmdFillBuffer");
447 table->CmdClearColorImage = (PFN_vkCmdClearColorImage)gpa(dev, "vkCmdClearColorImage");
448 table->CmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)gpa(dev, "vkCmdClearDepthStencilImage");
449 table->CmdClearAttachments = (PFN_vkCmdClearAttachments)gpa(dev, "vkCmdClearAttachments");
450 table->CmdResolveImage = (PFN_vkCmdResolveImage)gpa(dev, "vkCmdResolveImage");
451 table->CmdSetEvent = (PFN_vkCmdSetEvent)gpa(dev, "vkCmdSetEvent");
452 table->CmdResetEvent = (PFN_vkCmdResetEvent)gpa(dev, "vkCmdResetEvent");
453 table->CmdWaitEvents = (PFN_vkCmdWaitEvents)gpa(dev, "vkCmdWaitEvents");
454 table->CmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)gpa(dev, "vkCmdPipelineBarrier");
455 table->CmdBeginQuery = (PFN_vkCmdBeginQuery)gpa(dev, "vkCmdBeginQuery");
456 table->CmdEndQuery = (PFN_vkCmdEndQuery)gpa(dev, "vkCmdEndQuery");
457 table->CmdResetQueryPool = (PFN_vkCmdResetQueryPool)gpa(dev, "vkCmdResetQueryPool");
458 table->CmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)gpa(dev, "vkCmdWriteTimestamp");
459 table->CmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)gpa(dev, "vkCmdCopyQueryPoolResults");
460 table->CmdPushConstants = (PFN_vkCmdPushConstants)gpa(dev, "vkCmdPushConstants");
461 table->CmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)gpa(dev, "vkCmdBeginRenderPass");
462 table->CmdNextSubpass = (PFN_vkCmdNextSubpass)gpa(dev, "vkCmdNextSubpass");
463 table->CmdEndRenderPass = (PFN_vkCmdEndRenderPass)gpa(dev, "vkCmdEndRenderPass");
464 table->CmdExecuteCommands = (PFN_vkCmdExecuteCommands)gpa(dev, "vkCmdExecuteCommands");
465
466 // ---- Core 1_1 commands
467 table->BindBufferMemory2 = (PFN_vkBindBufferMemory2)gpa(dev, "vkBindBufferMemory2");
468 table->BindImageMemory2 = (PFN_vkBindImageMemory2)gpa(dev, "vkBindImageMemory2");
469 table->GetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)gpa(dev, "vkGetDeviceGroupPeerMemoryFeatures");
470 table->CmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)gpa(dev, "vkCmdSetDeviceMask");
471 table->CmdDispatchBase = (PFN_vkCmdDispatchBase)gpa(dev, "vkCmdDispatchBase");
472 table->GetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)gpa(dev, "vkGetImageMemoryRequirements2");
473 table->GetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)gpa(dev, "vkGetBufferMemoryRequirements2");
474 table->GetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)gpa(dev, "vkGetImageSparseMemoryRequirements2");
475 table->TrimCommandPool = (PFN_vkTrimCommandPool)gpa(dev, "vkTrimCommandPool");
476 table->GetDeviceQueue2 = (PFN_vkGetDeviceQueue2)gpa(dev, "vkGetDeviceQueue2");
477 table->CreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)gpa(dev, "vkCreateSamplerYcbcrConversion");
478 table->DestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)gpa(dev, "vkDestroySamplerYcbcrConversion");
479 table->CreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)gpa(dev, "vkCreateDescriptorUpdateTemplate");
480 table->DestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)gpa(dev, "vkDestroyDescriptorUpdateTemplate");
481 table->UpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)gpa(dev, "vkUpdateDescriptorSetWithTemplate");
482 table->GetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)gpa(dev, "vkGetDescriptorSetLayoutSupport");
483
484 // ---- Core 1_2 commands
485 table->CmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)gpa(dev, "vkCmdDrawIndirectCount");
486 table->CmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)gpa(dev, "vkCmdDrawIndexedIndirectCount");
487 table->CreateRenderPass2 = (PFN_vkCreateRenderPass2)gpa(dev, "vkCreateRenderPass2");
488 table->CmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)gpa(dev, "vkCmdBeginRenderPass2");
489 table->CmdNextSubpass2 = (PFN_vkCmdNextSubpass2)gpa(dev, "vkCmdNextSubpass2");
490 table->CmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)gpa(dev, "vkCmdEndRenderPass2");
491 table->ResetQueryPool = (PFN_vkResetQueryPool)gpa(dev, "vkResetQueryPool");
492 table->GetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)gpa(dev, "vkGetSemaphoreCounterValue");
493 table->WaitSemaphores = (PFN_vkWaitSemaphores)gpa(dev, "vkWaitSemaphores");
494 table->SignalSemaphore = (PFN_vkSignalSemaphore)gpa(dev, "vkSignalSemaphore");
495 table->GetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)gpa(dev, "vkGetBufferDeviceAddress");
496 table->GetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)gpa(dev, "vkGetBufferOpaqueCaptureAddress");
497 table->GetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)gpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddress");
498
499 // ---- Core 1_3 commands
500 table->CreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)gpa(dev, "vkCreatePrivateDataSlot");
501 table->DestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)gpa(dev, "vkDestroyPrivateDataSlot");
502 table->SetPrivateData = (PFN_vkSetPrivateData)gpa(dev, "vkSetPrivateData");
503 table->GetPrivateData = (PFN_vkGetPrivateData)gpa(dev, "vkGetPrivateData");
504 table->CmdSetEvent2 = (PFN_vkCmdSetEvent2)gpa(dev, "vkCmdSetEvent2");
505 table->CmdResetEvent2 = (PFN_vkCmdResetEvent2)gpa(dev, "vkCmdResetEvent2");
506 table->CmdWaitEvents2 = (PFN_vkCmdWaitEvents2)gpa(dev, "vkCmdWaitEvents2");
507 table->CmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)gpa(dev, "vkCmdPipelineBarrier2");
508 table->CmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)gpa(dev, "vkCmdWriteTimestamp2");
509 table->QueueSubmit2 = (PFN_vkQueueSubmit2)gpa(dev, "vkQueueSubmit2");
510 table->CmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)gpa(dev, "vkCmdCopyBuffer2");
511 table->CmdCopyImage2 = (PFN_vkCmdCopyImage2)gpa(dev, "vkCmdCopyImage2");
512 table->CmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)gpa(dev, "vkCmdCopyBufferToImage2");
513 table->CmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)gpa(dev, "vkCmdCopyImageToBuffer2");
514 table->CmdBlitImage2 = (PFN_vkCmdBlitImage2)gpa(dev, "vkCmdBlitImage2");
515 table->CmdResolveImage2 = (PFN_vkCmdResolveImage2)gpa(dev, "vkCmdResolveImage2");
516 table->CmdBeginRendering = (PFN_vkCmdBeginRendering)gpa(dev, "vkCmdBeginRendering");
517 table->CmdEndRendering = (PFN_vkCmdEndRendering)gpa(dev, "vkCmdEndRendering");
518 table->CmdSetCullMode = (PFN_vkCmdSetCullMode)gpa(dev, "vkCmdSetCullMode");
519 table->CmdSetFrontFace = (PFN_vkCmdSetFrontFace)gpa(dev, "vkCmdSetFrontFace");
520 table->CmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)gpa(dev, "vkCmdSetPrimitiveTopology");
521 table->CmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)gpa(dev, "vkCmdSetViewportWithCount");
522 table->CmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)gpa(dev, "vkCmdSetScissorWithCount");
523 table->CmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)gpa(dev, "vkCmdBindVertexBuffers2");
524 table->CmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)gpa(dev, "vkCmdSetDepthTestEnable");
525 table->CmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)gpa(dev, "vkCmdSetDepthWriteEnable");
526 table->CmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)gpa(dev, "vkCmdSetDepthCompareOp");
527 table->CmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)gpa(dev, "vkCmdSetDepthBoundsTestEnable");
528 table->CmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)gpa(dev, "vkCmdSetStencilTestEnable");
529 table->CmdSetStencilOp = (PFN_vkCmdSetStencilOp)gpa(dev, "vkCmdSetStencilOp");
530 table->CmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)gpa(dev, "vkCmdSetRasterizerDiscardEnable");
531 table->CmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)gpa(dev, "vkCmdSetDepthBiasEnable");
532 table->CmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)gpa(dev, "vkCmdSetPrimitiveRestartEnable");
533 table->GetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)gpa(dev, "vkGetDeviceBufferMemoryRequirements");
534 table->GetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)gpa(dev, "vkGetDeviceImageMemoryRequirements");
535 table->GetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)gpa(dev, "vkGetDeviceImageSparseMemoryRequirements");
536 }
537
538 // Init Device function pointer dispatch table with extension commands
loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table * dev_table,PFN_vkGetInstanceProcAddr gipa,PFN_vkGetDeviceProcAddr gdpa,VkInstance inst,VkDevice dev)539 VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table *dev_table,
540 PFN_vkGetInstanceProcAddr gipa,
541 PFN_vkGetDeviceProcAddr gdpa,
542 VkInstance inst,
543 VkDevice dev) {
544 VkLayerDispatchTable *table = &dev_table->core_dispatch;
545 table->magic = DEVICE_DISP_TABLE_MAGIC_NUMBER;
546
547 // ---- VK_KHR_swapchain extension commands
548 table->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gdpa(dev, "vkCreateSwapchainKHR");
549 table->DestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)gdpa(dev, "vkDestroySwapchainKHR");
550 table->GetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)gdpa(dev, "vkGetSwapchainImagesKHR");
551 table->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)gdpa(dev, "vkAcquireNextImageKHR");
552 table->QueuePresentKHR = (PFN_vkQueuePresentKHR)gdpa(dev, "vkQueuePresentKHR");
553 table->GetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)gdpa(dev, "vkGetDeviceGroupPresentCapabilitiesKHR");
554 table->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gdpa(dev, "vkGetDeviceGroupSurfacePresentModesKHR");
555 table->AcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)gdpa(dev, "vkAcquireNextImage2KHR");
556
557 // ---- VK_KHR_display_swapchain extension commands
558 table->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gdpa(dev, "vkCreateSharedSwapchainsKHR");
559
560 // ---- VK_KHR_video_queue extension commands
561 #ifdef VK_ENABLE_BETA_EXTENSIONS
562 table->CreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)gdpa(dev, "vkCreateVideoSessionKHR");
563 #endif // VK_ENABLE_BETA_EXTENSIONS
564 #ifdef VK_ENABLE_BETA_EXTENSIONS
565 table->DestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)gdpa(dev, "vkDestroyVideoSessionKHR");
566 #endif // VK_ENABLE_BETA_EXTENSIONS
567 #ifdef VK_ENABLE_BETA_EXTENSIONS
568 table->GetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)gdpa(dev, "vkGetVideoSessionMemoryRequirementsKHR");
569 #endif // VK_ENABLE_BETA_EXTENSIONS
570 #ifdef VK_ENABLE_BETA_EXTENSIONS
571 table->BindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)gdpa(dev, "vkBindVideoSessionMemoryKHR");
572 #endif // VK_ENABLE_BETA_EXTENSIONS
573 #ifdef VK_ENABLE_BETA_EXTENSIONS
574 table->CreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)gdpa(dev, "vkCreateVideoSessionParametersKHR");
575 #endif // VK_ENABLE_BETA_EXTENSIONS
576 #ifdef VK_ENABLE_BETA_EXTENSIONS
577 table->UpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)gdpa(dev, "vkUpdateVideoSessionParametersKHR");
578 #endif // VK_ENABLE_BETA_EXTENSIONS
579 #ifdef VK_ENABLE_BETA_EXTENSIONS
580 table->DestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)gdpa(dev, "vkDestroyVideoSessionParametersKHR");
581 #endif // VK_ENABLE_BETA_EXTENSIONS
582 #ifdef VK_ENABLE_BETA_EXTENSIONS
583 table->CmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)gdpa(dev, "vkCmdBeginVideoCodingKHR");
584 #endif // VK_ENABLE_BETA_EXTENSIONS
585 #ifdef VK_ENABLE_BETA_EXTENSIONS
586 table->CmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)gdpa(dev, "vkCmdEndVideoCodingKHR");
587 #endif // VK_ENABLE_BETA_EXTENSIONS
588 #ifdef VK_ENABLE_BETA_EXTENSIONS
589 table->CmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)gdpa(dev, "vkCmdControlVideoCodingKHR");
590 #endif // VK_ENABLE_BETA_EXTENSIONS
591
592 // ---- VK_KHR_video_decode_queue extension commands
593 #ifdef VK_ENABLE_BETA_EXTENSIONS
594 table->CmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)gdpa(dev, "vkCmdDecodeVideoKHR");
595 #endif // VK_ENABLE_BETA_EXTENSIONS
596
597 // ---- VK_KHR_dynamic_rendering extension commands
598 table->CmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)gdpa(dev, "vkCmdBeginRenderingKHR");
599 table->CmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)gdpa(dev, "vkCmdEndRenderingKHR");
600
601 // ---- VK_KHR_device_group extension commands
602 table->GetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)gdpa(dev, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
603 table->CmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)gdpa(dev, "vkCmdSetDeviceMaskKHR");
604 table->CmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)gdpa(dev, "vkCmdDispatchBaseKHR");
605
606 // ---- VK_KHR_maintenance1 extension commands
607 table->TrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)gdpa(dev, "vkTrimCommandPoolKHR");
608
609 // ---- VK_KHR_external_memory_win32 extension commands
610 #ifdef VK_USE_PLATFORM_WIN32_KHR
611 table->GetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)gdpa(dev, "vkGetMemoryWin32HandleKHR");
612 #endif // VK_USE_PLATFORM_WIN32_KHR
613 #ifdef VK_USE_PLATFORM_WIN32_KHR
614 table->GetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)gdpa(dev, "vkGetMemoryWin32HandlePropertiesKHR");
615 #endif // VK_USE_PLATFORM_WIN32_KHR
616
617 // ---- VK_KHR_external_memory_fd extension commands
618 table->GetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)gdpa(dev, "vkGetMemoryFdKHR");
619 table->GetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)gdpa(dev, "vkGetMemoryFdPropertiesKHR");
620
621 // ---- VK_KHR_external_semaphore_win32 extension commands
622 #ifdef VK_USE_PLATFORM_WIN32_KHR
623 table->ImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)gdpa(dev, "vkImportSemaphoreWin32HandleKHR");
624 #endif // VK_USE_PLATFORM_WIN32_KHR
625 #ifdef VK_USE_PLATFORM_WIN32_KHR
626 table->GetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)gdpa(dev, "vkGetSemaphoreWin32HandleKHR");
627 #endif // VK_USE_PLATFORM_WIN32_KHR
628
629 // ---- VK_KHR_external_semaphore_fd extension commands
630 table->ImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)gdpa(dev, "vkImportSemaphoreFdKHR");
631 table->GetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)gdpa(dev, "vkGetSemaphoreFdKHR");
632
633 // ---- VK_KHR_push_descriptor extension commands
634 table->CmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)gdpa(dev, "vkCmdPushDescriptorSetKHR");
635 table->CmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplateKHR");
636
637 // ---- VK_KHR_descriptor_update_template extension commands
638 table->CreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)gdpa(dev, "vkCreateDescriptorUpdateTemplateKHR");
639 table->DestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)gdpa(dev, "vkDestroyDescriptorUpdateTemplateKHR");
640 table->UpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)gdpa(dev, "vkUpdateDescriptorSetWithTemplateKHR");
641
642 // ---- VK_KHR_create_renderpass2 extension commands
643 table->CreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)gdpa(dev, "vkCreateRenderPass2KHR");
644 table->CmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)gdpa(dev, "vkCmdBeginRenderPass2KHR");
645 table->CmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)gdpa(dev, "vkCmdNextSubpass2KHR");
646 table->CmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)gdpa(dev, "vkCmdEndRenderPass2KHR");
647
648 // ---- VK_KHR_shared_presentable_image extension commands
649 table->GetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)gdpa(dev, "vkGetSwapchainStatusKHR");
650
651 // ---- VK_KHR_external_fence_win32 extension commands
652 #ifdef VK_USE_PLATFORM_WIN32_KHR
653 table->ImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)gdpa(dev, "vkImportFenceWin32HandleKHR");
654 #endif // VK_USE_PLATFORM_WIN32_KHR
655 #ifdef VK_USE_PLATFORM_WIN32_KHR
656 table->GetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)gdpa(dev, "vkGetFenceWin32HandleKHR");
657 #endif // VK_USE_PLATFORM_WIN32_KHR
658
659 // ---- VK_KHR_external_fence_fd extension commands
660 table->ImportFenceFdKHR = (PFN_vkImportFenceFdKHR)gdpa(dev, "vkImportFenceFdKHR");
661 table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR)gdpa(dev, "vkGetFenceFdKHR");
662
663 // ---- VK_KHR_performance_query extension commands
664 table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)gdpa(dev, "vkAcquireProfilingLockKHR");
665 table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)gdpa(dev, "vkReleaseProfilingLockKHR");
666
667 // ---- VK_KHR_get_memory_requirements2 extension commands
668 table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)gdpa(dev, "vkGetImageMemoryRequirements2KHR");
669 table->GetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)gdpa(dev, "vkGetBufferMemoryRequirements2KHR");
670 table->GetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)gdpa(dev, "vkGetImageSparseMemoryRequirements2KHR");
671
672 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
673 table->CreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)gdpa(dev, "vkCreateSamplerYcbcrConversionKHR");
674 table->DestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)gdpa(dev, "vkDestroySamplerYcbcrConversionKHR");
675
676 // ---- VK_KHR_bind_memory2 extension commands
677 table->BindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)gdpa(dev, "vkBindBufferMemory2KHR");
678 table->BindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)gdpa(dev, "vkBindImageMemory2KHR");
679
680 // ---- VK_KHR_maintenance3 extension commands
681 table->GetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)gdpa(dev, "vkGetDescriptorSetLayoutSupportKHR");
682
683 // ---- VK_KHR_draw_indirect_count extension commands
684 table->CmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)gdpa(dev, "vkCmdDrawIndirectCountKHR");
685 table->CmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)gdpa(dev, "vkCmdDrawIndexedIndirectCountKHR");
686
687 // ---- VK_KHR_timeline_semaphore extension commands
688 table->GetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)gdpa(dev, "vkGetSemaphoreCounterValueKHR");
689 table->WaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)gdpa(dev, "vkWaitSemaphoresKHR");
690 table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)gdpa(dev, "vkSignalSemaphoreKHR");
691
692 // ---- VK_KHR_fragment_shading_rate extension commands
693 table->CmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)gdpa(dev, "vkCmdSetFragmentShadingRateKHR");
694
695 // ---- VK_KHR_present_wait extension commands
696 table->WaitForPresentKHR = (PFN_vkWaitForPresentKHR)gdpa(dev, "vkWaitForPresentKHR");
697
698 // ---- VK_KHR_buffer_device_address extension commands
699 table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)gdpa(dev, "vkGetBufferDeviceAddressKHR");
700 table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)gdpa(dev, "vkGetBufferOpaqueCaptureAddressKHR");
701 table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)gdpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
702
703 // ---- VK_KHR_deferred_host_operations extension commands
704 table->CreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)gdpa(dev, "vkCreateDeferredOperationKHR");
705 table->DestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)gdpa(dev, "vkDestroyDeferredOperationKHR");
706 table->GetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)gdpa(dev, "vkGetDeferredOperationMaxConcurrencyKHR");
707 table->GetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)gdpa(dev, "vkGetDeferredOperationResultKHR");
708 table->DeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)gdpa(dev, "vkDeferredOperationJoinKHR");
709
710 // ---- VK_KHR_pipeline_executable_properties extension commands
711 table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)gdpa(dev, "vkGetPipelineExecutablePropertiesKHR");
712 table->GetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)gdpa(dev, "vkGetPipelineExecutableStatisticsKHR");
713 table->GetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)gdpa(dev, "vkGetPipelineExecutableInternalRepresentationsKHR");
714
715 // ---- VK_KHR_video_encode_queue extension commands
716 #ifdef VK_ENABLE_BETA_EXTENSIONS
717 table->CmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)gdpa(dev, "vkCmdEncodeVideoKHR");
718 #endif // VK_ENABLE_BETA_EXTENSIONS
719
720 // ---- VK_KHR_synchronization2 extension commands
721 table->CmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)gdpa(dev, "vkCmdSetEvent2KHR");
722 table->CmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)gdpa(dev, "vkCmdResetEvent2KHR");
723 table->CmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)gdpa(dev, "vkCmdWaitEvents2KHR");
724 table->CmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)gdpa(dev, "vkCmdPipelineBarrier2KHR");
725 table->CmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)gdpa(dev, "vkCmdWriteTimestamp2KHR");
726 table->QueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)gdpa(dev, "vkQueueSubmit2KHR");
727 table->CmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)gdpa(dev, "vkCmdWriteBufferMarker2AMD");
728 table->GetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)gdpa(dev, "vkGetQueueCheckpointData2NV");
729
730 // ---- VK_KHR_copy_commands2 extension commands
731 table->CmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)gdpa(dev, "vkCmdCopyBuffer2KHR");
732 table->CmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)gdpa(dev, "vkCmdCopyImage2KHR");
733 table->CmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)gdpa(dev, "vkCmdCopyBufferToImage2KHR");
734 table->CmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)gdpa(dev, "vkCmdCopyImageToBuffer2KHR");
735 table->CmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)gdpa(dev, "vkCmdBlitImage2KHR");
736 table->CmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)gdpa(dev, "vkCmdResolveImage2KHR");
737
738 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
739 table->CmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)gdpa(dev, "vkCmdTraceRaysIndirect2KHR");
740
741 // ---- VK_KHR_maintenance4 extension commands
742 table->GetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceBufferMemoryRequirementsKHR");
743 table->GetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageMemoryRequirementsKHR");
744 table->GetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageSparseMemoryRequirementsKHR");
745
746 // ---- VK_EXT_debug_marker extension commands
747 table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gdpa(dev, "vkDebugMarkerSetObjectTagEXT");
748 table->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gdpa(dev, "vkDebugMarkerSetObjectNameEXT");
749 table->CmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)gdpa(dev, "vkCmdDebugMarkerBeginEXT");
750 table->CmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)gdpa(dev, "vkCmdDebugMarkerEndEXT");
751 table->CmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)gdpa(dev, "vkCmdDebugMarkerInsertEXT");
752
753 // ---- VK_EXT_transform_feedback extension commands
754 table->CmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)gdpa(dev, "vkCmdBindTransformFeedbackBuffersEXT");
755 table->CmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)gdpa(dev, "vkCmdBeginTransformFeedbackEXT");
756 table->CmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)gdpa(dev, "vkCmdEndTransformFeedbackEXT");
757 table->CmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)gdpa(dev, "vkCmdBeginQueryIndexedEXT");
758 table->CmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)gdpa(dev, "vkCmdEndQueryIndexedEXT");
759 table->CmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)gdpa(dev, "vkCmdDrawIndirectByteCountEXT");
760
761 // ---- VK_NVX_binary_import extension commands
762 table->CreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)gdpa(dev, "vkCreateCuModuleNVX");
763 table->CreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)gdpa(dev, "vkCreateCuFunctionNVX");
764 table->DestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)gdpa(dev, "vkDestroyCuModuleNVX");
765 table->DestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)gdpa(dev, "vkDestroyCuFunctionNVX");
766 table->CmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)gdpa(dev, "vkCmdCuLaunchKernelNVX");
767
768 // ---- VK_NVX_image_view_handle extension commands
769 table->GetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)gdpa(dev, "vkGetImageViewHandleNVX");
770 table->GetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)gdpa(dev, "vkGetImageViewAddressNVX");
771
772 // ---- VK_AMD_draw_indirect_count extension commands
773 table->CmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)gdpa(dev, "vkCmdDrawIndirectCountAMD");
774 table->CmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)gdpa(dev, "vkCmdDrawIndexedIndirectCountAMD");
775
776 // ---- VK_AMD_shader_info extension commands
777 table->GetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)gdpa(dev, "vkGetShaderInfoAMD");
778
779 // ---- VK_NV_external_memory_win32 extension commands
780 #ifdef VK_USE_PLATFORM_WIN32_KHR
781 table->GetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)gdpa(dev, "vkGetMemoryWin32HandleNV");
782 #endif // VK_USE_PLATFORM_WIN32_KHR
783
784 // ---- VK_EXT_conditional_rendering extension commands
785 table->CmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)gdpa(dev, "vkCmdBeginConditionalRenderingEXT");
786 table->CmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)gdpa(dev, "vkCmdEndConditionalRenderingEXT");
787
788 // ---- VK_NV_clip_space_w_scaling extension commands
789 table->CmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)gdpa(dev, "vkCmdSetViewportWScalingNV");
790
791 // ---- VK_EXT_display_control extension commands
792 table->DisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)gdpa(dev, "vkDisplayPowerControlEXT");
793 table->RegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)gdpa(dev, "vkRegisterDeviceEventEXT");
794 table->RegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)gdpa(dev, "vkRegisterDisplayEventEXT");
795 table->GetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)gdpa(dev, "vkGetSwapchainCounterEXT");
796
797 // ---- VK_GOOGLE_display_timing extension commands
798 table->GetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)gdpa(dev, "vkGetRefreshCycleDurationGOOGLE");
799 table->GetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)gdpa(dev, "vkGetPastPresentationTimingGOOGLE");
800
801 // ---- VK_EXT_discard_rectangles extension commands
802 table->CmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)gdpa(dev, "vkCmdSetDiscardRectangleEXT");
803
804 // ---- VK_EXT_hdr_metadata extension commands
805 table->SetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)gdpa(dev, "vkSetHdrMetadataEXT");
806
807 // ---- VK_EXT_debug_utils extension commands
808 table->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gipa(inst, "vkSetDebugUtilsObjectNameEXT");
809 table->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gipa(inst, "vkSetDebugUtilsObjectTagEXT");
810 table->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gipa(inst, "vkQueueBeginDebugUtilsLabelEXT");
811 table->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gipa(inst, "vkQueueEndDebugUtilsLabelEXT");
812 table->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gipa(inst, "vkQueueInsertDebugUtilsLabelEXT");
813 table->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gipa(inst, "vkCmdBeginDebugUtilsLabelEXT");
814 table->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gipa(inst, "vkCmdEndDebugUtilsLabelEXT");
815 table->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gipa(inst, "vkCmdInsertDebugUtilsLabelEXT");
816
817 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
818 #ifdef VK_USE_PLATFORM_ANDROID_KHR
819 table->GetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)gdpa(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
820 #endif // VK_USE_PLATFORM_ANDROID_KHR
821 #ifdef VK_USE_PLATFORM_ANDROID_KHR
822 table->GetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)gdpa(dev, "vkGetMemoryAndroidHardwareBufferANDROID");
823 #endif // VK_USE_PLATFORM_ANDROID_KHR
824
825 // ---- VK_EXT_sample_locations extension commands
826 table->CmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)gdpa(dev, "vkCmdSetSampleLocationsEXT");
827
828 // ---- VK_EXT_image_drm_format_modifier extension commands
829 table->GetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)gdpa(dev, "vkGetImageDrmFormatModifierPropertiesEXT");
830
831 // ---- VK_EXT_validation_cache extension commands
832 table->CreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)gdpa(dev, "vkCreateValidationCacheEXT");
833 table->DestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)gdpa(dev, "vkDestroyValidationCacheEXT");
834 table->MergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)gdpa(dev, "vkMergeValidationCachesEXT");
835 table->GetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)gdpa(dev, "vkGetValidationCacheDataEXT");
836
837 // ---- VK_NV_shading_rate_image extension commands
838 table->CmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)gdpa(dev, "vkCmdBindShadingRateImageNV");
839 table->CmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)gdpa(dev, "vkCmdSetViewportShadingRatePaletteNV");
840 table->CmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)gdpa(dev, "vkCmdSetCoarseSampleOrderNV");
841
842 // ---- VK_NV_ray_tracing extension commands
843 table->CreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)gdpa(dev, "vkCreateAccelerationStructureNV");
844 table->DestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)gdpa(dev, "vkDestroyAccelerationStructureNV");
845 table->GetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)gdpa(dev, "vkGetAccelerationStructureMemoryRequirementsNV");
846 table->BindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)gdpa(dev, "vkBindAccelerationStructureMemoryNV");
847 table->CmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)gdpa(dev, "vkCmdBuildAccelerationStructureNV");
848 table->CmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)gdpa(dev, "vkCmdCopyAccelerationStructureNV");
849 table->CmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)gdpa(dev, "vkCmdTraceRaysNV");
850 table->CreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)gdpa(dev, "vkCreateRayTracingPipelinesNV");
851 table->GetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingShaderGroupHandlesKHR");
852 table->GetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)gdpa(dev, "vkGetRayTracingShaderGroupHandlesNV");
853 table->GetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)gdpa(dev, "vkGetAccelerationStructureHandleNV");
854 table->CmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesNV");
855 table->CompileDeferredNV = (PFN_vkCompileDeferredNV)gdpa(dev, "vkCompileDeferredNV");
856
857 // ---- VK_EXT_external_memory_host extension commands
858 table->GetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)gdpa(dev, "vkGetMemoryHostPointerPropertiesEXT");
859
860 // ---- VK_AMD_buffer_marker extension commands
861 table->CmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)gdpa(dev, "vkCmdWriteBufferMarkerAMD");
862
863 // ---- VK_EXT_calibrated_timestamps extension commands
864 table->GetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)gdpa(dev, "vkGetCalibratedTimestampsEXT");
865
866 // ---- VK_NV_mesh_shader extension commands
867 table->CmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)gdpa(dev, "vkCmdDrawMeshTasksNV");
868 table->CmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectNV");
869 table->CmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountNV");
870
871 // ---- VK_NV_scissor_exclusive extension commands
872 table->CmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)gdpa(dev, "vkCmdSetExclusiveScissorNV");
873
874 // ---- VK_NV_device_diagnostic_checkpoints extension commands
875 table->CmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)gdpa(dev, "vkCmdSetCheckpointNV");
876 table->GetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)gdpa(dev, "vkGetQueueCheckpointDataNV");
877
878 // ---- VK_INTEL_performance_query extension commands
879 table->InitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)gdpa(dev, "vkInitializePerformanceApiINTEL");
880 table->UninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)gdpa(dev, "vkUninitializePerformanceApiINTEL");
881 table->CmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceMarkerINTEL");
882 table->CmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceStreamMarkerINTEL");
883 table->CmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)gdpa(dev, "vkCmdSetPerformanceOverrideINTEL");
884 table->AcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)gdpa(dev, "vkAcquirePerformanceConfigurationINTEL");
885 table->ReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)gdpa(dev, "vkReleasePerformanceConfigurationINTEL");
886 table->QueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)gdpa(dev, "vkQueueSetPerformanceConfigurationINTEL");
887 table->GetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)gdpa(dev, "vkGetPerformanceParameterINTEL");
888
889 // ---- VK_AMD_display_native_hdr extension commands
890 table->SetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)gdpa(dev, "vkSetLocalDimmingAMD");
891
892 // ---- VK_EXT_buffer_device_address extension commands
893 table->GetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)gdpa(dev, "vkGetBufferDeviceAddressEXT");
894
895 // ---- VK_EXT_full_screen_exclusive extension commands
896 #ifdef VK_USE_PLATFORM_WIN32_KHR
897 table->AcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)gdpa(dev, "vkAcquireFullScreenExclusiveModeEXT");
898 #endif // VK_USE_PLATFORM_WIN32_KHR
899 #ifdef VK_USE_PLATFORM_WIN32_KHR
900 table->ReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)gdpa(dev, "vkReleaseFullScreenExclusiveModeEXT");
901 #endif // VK_USE_PLATFORM_WIN32_KHR
902 #ifdef VK_USE_PLATFORM_WIN32_KHR
903 table->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gdpa(dev, "vkGetDeviceGroupSurfacePresentModes2EXT");
904 #endif // VK_USE_PLATFORM_WIN32_KHR
905
906 // ---- VK_EXT_line_rasterization extension commands
907 table->CmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)gdpa(dev, "vkCmdSetLineStippleEXT");
908
909 // ---- VK_EXT_host_query_reset extension commands
910 table->ResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)gdpa(dev, "vkResetQueryPoolEXT");
911
912 // ---- VK_EXT_extended_dynamic_state extension commands
913 table->CmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)gdpa(dev, "vkCmdSetCullModeEXT");
914 table->CmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)gdpa(dev, "vkCmdSetFrontFaceEXT");
915 table->CmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)gdpa(dev, "vkCmdSetPrimitiveTopologyEXT");
916 table->CmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)gdpa(dev, "vkCmdSetViewportWithCountEXT");
917 table->CmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)gdpa(dev, "vkCmdSetScissorWithCountEXT");
918 table->CmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)gdpa(dev, "vkCmdBindVertexBuffers2EXT");
919 table->CmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)gdpa(dev, "vkCmdSetDepthTestEnableEXT");
920 table->CmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)gdpa(dev, "vkCmdSetDepthWriteEnableEXT");
921 table->CmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)gdpa(dev, "vkCmdSetDepthCompareOpEXT");
922 table->CmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)gdpa(dev, "vkCmdSetDepthBoundsTestEnableEXT");
923 table->CmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)gdpa(dev, "vkCmdSetStencilTestEnableEXT");
924 table->CmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)gdpa(dev, "vkCmdSetStencilOpEXT");
925
926 // ---- VK_NV_device_generated_commands extension commands
927 table->GetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsNV");
928 table->CmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)gdpa(dev, "vkCmdPreprocessGeneratedCommandsNV");
929 table->CmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)gdpa(dev, "vkCmdExecuteGeneratedCommandsNV");
930 table->CmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)gdpa(dev, "vkCmdBindPipelineShaderGroupNV");
931 table->CreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)gdpa(dev, "vkCreateIndirectCommandsLayoutNV");
932 table->DestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)gdpa(dev, "vkDestroyIndirectCommandsLayoutNV");
933
934 // ---- VK_EXT_private_data extension commands
935 table->CreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)gdpa(dev, "vkCreatePrivateDataSlotEXT");
936 table->DestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)gdpa(dev, "vkDestroyPrivateDataSlotEXT");
937 table->SetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)gdpa(dev, "vkSetPrivateDataEXT");
938 table->GetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)gdpa(dev, "vkGetPrivateDataEXT");
939
940 // ---- VK_EXT_metal_objects extension commands
941 #ifdef VK_USE_PLATFORM_METAL_EXT
942 table->ExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)gdpa(dev, "vkExportMetalObjectsEXT");
943 #endif // VK_USE_PLATFORM_METAL_EXT
944
945 // ---- VK_NV_fragment_shading_rate_enums extension commands
946 table->CmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)gdpa(dev, "vkCmdSetFragmentShadingRateEnumNV");
947
948 // ---- VK_EXT_image_compression_control extension commands
949 table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)gdpa(dev, "vkGetImageSubresourceLayout2EXT");
950
951 // ---- VK_EXT_device_fault extension commands
952 table->GetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)gdpa(dev, "vkGetDeviceFaultInfoEXT");
953
954 // ---- VK_EXT_vertex_input_dynamic_state extension commands
955 table->CmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)gdpa(dev, "vkCmdSetVertexInputEXT");
956
957 // ---- VK_FUCHSIA_external_memory extension commands
958 #ifdef VK_USE_PLATFORM_FUCHSIA
959 table->GetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandleFUCHSIA");
960 #endif // VK_USE_PLATFORM_FUCHSIA
961 #ifdef VK_USE_PLATFORM_FUCHSIA
962 table->GetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
963 #endif // VK_USE_PLATFORM_FUCHSIA
964
965 // ---- VK_FUCHSIA_external_semaphore extension commands
966 #ifdef VK_USE_PLATFORM_FUCHSIA
967 table->ImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkImportSemaphoreZirconHandleFUCHSIA");
968 #endif // VK_USE_PLATFORM_FUCHSIA
969 #ifdef VK_USE_PLATFORM_FUCHSIA
970 table->GetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkGetSemaphoreZirconHandleFUCHSIA");
971 #endif // VK_USE_PLATFORM_FUCHSIA
972
973 // ---- VK_FUCHSIA_buffer_collection extension commands
974 #ifdef VK_USE_PLATFORM_FUCHSIA
975 table->CreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)gdpa(dev, "vkCreateBufferCollectionFUCHSIA");
976 #endif // VK_USE_PLATFORM_FUCHSIA
977 #ifdef VK_USE_PLATFORM_FUCHSIA
978 table->SetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionImageConstraintsFUCHSIA");
979 #endif // VK_USE_PLATFORM_FUCHSIA
980 #ifdef VK_USE_PLATFORM_FUCHSIA
981 table->SetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
982 #endif // VK_USE_PLATFORM_FUCHSIA
983 #ifdef VK_USE_PLATFORM_FUCHSIA
984 table->DestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)gdpa(dev, "vkDestroyBufferCollectionFUCHSIA");
985 #endif // VK_USE_PLATFORM_FUCHSIA
986 #ifdef VK_USE_PLATFORM_FUCHSIA
987 table->GetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)gdpa(dev, "vkGetBufferCollectionPropertiesFUCHSIA");
988 #endif // VK_USE_PLATFORM_FUCHSIA
989
990 // ---- VK_HUAWEI_subpass_shading extension commands
991 table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)gdpa(dev, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
992 table->CmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)gdpa(dev, "vkCmdSubpassShadingHUAWEI");
993
994 // ---- VK_HUAWEI_invocation_mask extension commands
995 table->CmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)gdpa(dev, "vkCmdBindInvocationMaskHUAWEI");
996
997 // ---- VK_NV_external_memory_rdma extension commands
998 table->GetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)gdpa(dev, "vkGetMemoryRemoteAddressNV");
999
1000 // ---- VK_EXT_pipeline_properties extension commands
1001 table->GetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)gdpa(dev, "vkGetPipelinePropertiesEXT");
1002
1003 // ---- VK_EXT_extended_dynamic_state2 extension commands
1004 table->CmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)gdpa(dev, "vkCmdSetPatchControlPointsEXT");
1005 table->CmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)gdpa(dev, "vkCmdSetRasterizerDiscardEnableEXT");
1006 table->CmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)gdpa(dev, "vkCmdSetDepthBiasEnableEXT");
1007 table->CmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)gdpa(dev, "vkCmdSetLogicOpEXT");
1008 table->CmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)gdpa(dev, "vkCmdSetPrimitiveRestartEnableEXT");
1009
1010 // ---- VK_EXT_color_write_enable extension commands
1011 table->CmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)gdpa(dev, "vkCmdSetColorWriteEnableEXT");
1012
1013 // ---- VK_EXT_multi_draw extension commands
1014 table->CmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)gdpa(dev, "vkCmdDrawMultiEXT");
1015 table->CmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)gdpa(dev, "vkCmdDrawMultiIndexedEXT");
1016
1017 // ---- VK_EXT_opacity_micromap extension commands
1018 table->CreateMicromapEXT = (PFN_vkCreateMicromapEXT)gdpa(dev, "vkCreateMicromapEXT");
1019 table->DestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)gdpa(dev, "vkDestroyMicromapEXT");
1020 table->CmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)gdpa(dev, "vkCmdBuildMicromapsEXT");
1021 table->BuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)gdpa(dev, "vkBuildMicromapsEXT");
1022 table->CopyMicromapEXT = (PFN_vkCopyMicromapEXT)gdpa(dev, "vkCopyMicromapEXT");
1023 table->CopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)gdpa(dev, "vkCopyMicromapToMemoryEXT");
1024 table->CopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)gdpa(dev, "vkCopyMemoryToMicromapEXT");
1025 table->WriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)gdpa(dev, "vkWriteMicromapsPropertiesEXT");
1026 table->CmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)gdpa(dev, "vkCmdCopyMicromapEXT");
1027 table->CmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)gdpa(dev, "vkCmdCopyMicromapToMemoryEXT");
1028 table->CmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)gdpa(dev, "vkCmdCopyMemoryToMicromapEXT");
1029 table->CmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)gdpa(dev, "vkCmdWriteMicromapsPropertiesEXT");
1030 table->GetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)gdpa(dev, "vkGetDeviceMicromapCompatibilityEXT");
1031 table->GetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)gdpa(dev, "vkGetMicromapBuildSizesEXT");
1032
1033 // ---- VK_EXT_pageable_device_local_memory extension commands
1034 table->SetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)gdpa(dev, "vkSetDeviceMemoryPriorityEXT");
1035
1036 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
1037 table->GetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)gdpa(dev, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
1038 table->GetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)gdpa(dev, "vkGetDescriptorSetHostMappingVALVE");
1039
1040 // ---- VK_EXT_extended_dynamic_state3 extension commands
1041 table->CmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)gdpa(dev, "vkCmdSetTessellationDomainOriginEXT");
1042 table->CmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)gdpa(dev, "vkCmdSetDepthClampEnableEXT");
1043 table->CmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)gdpa(dev, "vkCmdSetPolygonModeEXT");
1044 table->CmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)gdpa(dev, "vkCmdSetRasterizationSamplesEXT");
1045 table->CmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)gdpa(dev, "vkCmdSetSampleMaskEXT");
1046 table->CmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)gdpa(dev, "vkCmdSetAlphaToCoverageEnableEXT");
1047 table->CmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)gdpa(dev, "vkCmdSetAlphaToOneEnableEXT");
1048 table->CmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)gdpa(dev, "vkCmdSetLogicOpEnableEXT");
1049 table->CmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)gdpa(dev, "vkCmdSetColorBlendEnableEXT");
1050 table->CmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)gdpa(dev, "vkCmdSetColorBlendEquationEXT");
1051 table->CmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)gdpa(dev, "vkCmdSetColorWriteMaskEXT");
1052 table->CmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)gdpa(dev, "vkCmdSetRasterizationStreamEXT");
1053 table->CmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)gdpa(dev, "vkCmdSetConservativeRasterizationModeEXT");
1054 table->CmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)gdpa(dev, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
1055 table->CmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)gdpa(dev, "vkCmdSetDepthClipEnableEXT");
1056 table->CmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)gdpa(dev, "vkCmdSetSampleLocationsEnableEXT");
1057 table->CmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)gdpa(dev, "vkCmdSetColorBlendAdvancedEXT");
1058 table->CmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)gdpa(dev, "vkCmdSetProvokingVertexModeEXT");
1059 table->CmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)gdpa(dev, "vkCmdSetLineRasterizationModeEXT");
1060 table->CmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)gdpa(dev, "vkCmdSetLineStippleEnableEXT");
1061 table->CmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)gdpa(dev, "vkCmdSetDepthClipNegativeOneToOneEXT");
1062 table->CmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)gdpa(dev, "vkCmdSetViewportWScalingEnableNV");
1063 table->CmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)gdpa(dev, "vkCmdSetViewportSwizzleNV");
1064 table->CmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)gdpa(dev, "vkCmdSetCoverageToColorEnableNV");
1065 table->CmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)gdpa(dev, "vkCmdSetCoverageToColorLocationNV");
1066 table->CmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)gdpa(dev, "vkCmdSetCoverageModulationModeNV");
1067 table->CmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)gdpa(dev, "vkCmdSetCoverageModulationTableEnableNV");
1068 table->CmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)gdpa(dev, "vkCmdSetCoverageModulationTableNV");
1069 table->CmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)gdpa(dev, "vkCmdSetShadingRateImageEnableNV");
1070 table->CmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)gdpa(dev, "vkCmdSetRepresentativeFragmentTestEnableNV");
1071 table->CmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)gdpa(dev, "vkCmdSetCoverageReductionModeNV");
1072
1073 // ---- VK_EXT_shader_module_identifier extension commands
1074 table->GetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)gdpa(dev, "vkGetShaderModuleIdentifierEXT");
1075 table->GetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)gdpa(dev, "vkGetShaderModuleCreateInfoIdentifierEXT");
1076
1077 // ---- VK_NV_optical_flow extension commands
1078 table->CreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)gdpa(dev, "vkCreateOpticalFlowSessionNV");
1079 table->DestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)gdpa(dev, "vkDestroyOpticalFlowSessionNV");
1080 table->BindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)gdpa(dev, "vkBindOpticalFlowSessionImageNV");
1081 table->CmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)gdpa(dev, "vkCmdOpticalFlowExecuteNV");
1082
1083 // ---- VK_QCOM_tile_properties extension commands
1084 table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)gdpa(dev, "vkGetFramebufferTilePropertiesQCOM");
1085 table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)gdpa(dev, "vkGetDynamicRenderingTilePropertiesQCOM");
1086
1087 // ---- VK_OHOS_native_buffer extension commands
1088 #ifdef VK_USE_PLATFORM_OHOS
1089 table->SetNativeFenceFdOpenHarmony = (PFN_vkSetNativeFenceFdOpenHarmony)gdpa(dev, "vkSetNativeFenceFdOpenHarmony");
1090 #endif // VK_USE_PLATFORM_OHOS
1091 #ifdef VK_USE_PLATFORM_OHOS
1092 table->GetNativeFenceFdOpenHarmony = (PFN_vkGetNativeFenceFdOpenHarmony)gdpa(dev, "vkGetNativeFenceFdOpenHarmony");
1093 #endif // VK_USE_PLATFORM_OHOS
1094 #ifdef VK_USE_PLATFORM_OHOS
1095 table->GetSwapchainGrallocUsageOHOS = (PFN_vkGetSwapchainGrallocUsageOHOS)gdpa(dev, "vkGetSwapchainGrallocUsageOHOS");
1096 #endif // VK_USE_PLATFORM_OHOS
1097 #ifdef VK_USE_PLATFORM_OHOS
1098 table->AcquireImageOHOS = (PFN_vkAcquireImageOHOS)gdpa(dev, "vkAcquireImageOHOS");
1099 #endif // VK_USE_PLATFORM_OHOS
1100 #ifdef VK_USE_PLATFORM_OHOS
1101 table->QueueSignalReleaseImageOHOS = (PFN_vkQueueSignalReleaseImageOHOS)gdpa(dev, "vkQueueSignalReleaseImageOHOS");
1102 #endif // VK_USE_PLATFORM_OHOS
1103
1104 // ---- VK_OHOS_external_memory extension commands
1105 #ifdef VK_USE_PLATFORM_OHOS
1106 table->GetNativeBufferPropertiesOHOS = (PFN_vkGetNativeBufferPropertiesOHOS)gdpa(dev, "vkGetNativeBufferPropertiesOHOS");
1107 #endif // VK_USE_PLATFORM_OHOS
1108 #ifdef VK_USE_PLATFORM_OHOS
1109 table->GetMemoryNativeBufferOHOS = (PFN_vkGetMemoryNativeBufferOHOS)gdpa(dev, "vkGetMemoryNativeBufferOHOS");
1110 #endif // VK_USE_PLATFORM_OHOS
1111
1112 // ---- VK_KHR_acceleration_structure extension commands
1113 table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)gdpa(dev, "vkCreateAccelerationStructureKHR");
1114 table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)gdpa(dev, "vkDestroyAccelerationStructureKHR");
1115 table->CmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresKHR");
1116 table->CmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresIndirectKHR");
1117 table->BuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)gdpa(dev, "vkBuildAccelerationStructuresKHR");
1118 table->CopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)gdpa(dev, "vkCopyAccelerationStructureKHR");
1119 table->CopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCopyAccelerationStructureToMemoryKHR");
1120 table->CopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCopyMemoryToAccelerationStructureKHR");
1121 table->WriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkWriteAccelerationStructuresPropertiesKHR");
1122 table->CmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)gdpa(dev, "vkCmdCopyAccelerationStructureKHR");
1123 table->CmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCmdCopyAccelerationStructureToMemoryKHR");
1124 table->CmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCmdCopyMemoryToAccelerationStructureKHR");
1125 table->GetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)gdpa(dev, "vkGetAccelerationStructureDeviceAddressKHR");
1126 table->CmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesKHR");
1127 table->GetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)gdpa(dev, "vkGetDeviceAccelerationStructureCompatibilityKHR");
1128 table->GetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)gdpa(dev, "vkGetAccelerationStructureBuildSizesKHR");
1129
1130 // ---- VK_KHR_ray_tracing_pipeline extension commands
1131 table->CmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)gdpa(dev, "vkCmdTraceRaysKHR");
1132 table->CreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)gdpa(dev, "vkCreateRayTracingPipelinesKHR");
1133 table->GetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
1134 table->CmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)gdpa(dev, "vkCmdTraceRaysIndirectKHR");
1135 table->GetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)gdpa(dev, "vkGetRayTracingShaderGroupStackSizeKHR");
1136 table->CmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)gdpa(dev, "vkCmdSetRayTracingPipelineStackSizeKHR");
1137
1138 // ---- VK_EXT_mesh_shader extension commands
1139 table->CmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)gdpa(dev, "vkCmdDrawMeshTasksEXT");
1140 table->CmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectEXT");
1141 table->CmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountEXT");
1142 }
1143
1144 // Init Instance function pointer dispatch table with core commands
loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable * table,PFN_vkGetInstanceProcAddr gpa,VkInstance inst)1145 VKAPI_ATTR void VKAPI_CALL loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1146 VkInstance inst) {
1147
1148 // ---- Core 1_0 commands
1149 table->DestroyInstance = (PFN_vkDestroyInstance)gpa(inst, "vkDestroyInstance");
1150 table->EnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)gpa(inst, "vkEnumeratePhysicalDevices");
1151 table->GetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)gpa(inst, "vkGetPhysicalDeviceFeatures");
1152 table->GetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)gpa(inst, "vkGetPhysicalDeviceFormatProperties");
1153 table->GetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties");
1154 table->GetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)gpa(inst, "vkGetPhysicalDeviceProperties");
1155 table->GetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties");
1156 table->GetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)gpa(inst, "vkGetPhysicalDeviceMemoryProperties");
1157 table->GetInstanceProcAddr = gpa;
1158 table->EnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)gpa(inst, "vkEnumerateDeviceExtensionProperties");
1159 table->EnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)gpa(inst, "vkEnumerateDeviceLayerProperties");
1160 table->GetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties");
1161
1162 // ---- Core 1_1 commands
1163 table->EnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)gpa(inst, "vkEnumeratePhysicalDeviceGroups");
1164 table->GetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)gpa(inst, "vkGetPhysicalDeviceFeatures2");
1165 table->GetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)gpa(inst, "vkGetPhysicalDeviceProperties2");
1166 table->GetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)gpa(inst, "vkGetPhysicalDeviceFormatProperties2");
1167 table->GetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2");
1168 table->GetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2");
1169 table->GetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2");
1170 table->GetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2");
1171 table->GetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)gpa(inst, "vkGetPhysicalDeviceExternalBufferProperties");
1172 table->GetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)gpa(inst, "vkGetPhysicalDeviceExternalFenceProperties");
1173 table->GetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)gpa(inst, "vkGetPhysicalDeviceExternalSemaphoreProperties");
1174
1175 // ---- Core 1_3 commands
1176 table->GetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)gpa(inst, "vkGetPhysicalDeviceToolProperties");
1177 }
1178
1179 // Init Instance function pointer dispatch table with core commands
loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable * table,PFN_vkGetInstanceProcAddr gpa,VkInstance inst)1180 VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1181 VkInstance inst) {
1182
1183 // ---- VK_KHR_surface extension commands
1184 table->DestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)gpa(inst, "vkDestroySurfaceKHR");
1185 table->GetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceSupportKHR");
1186 table->GetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
1187 table->GetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormatsKHR");
1188 table->GetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModesKHR");
1189
1190 // ---- VK_KHR_swapchain extension commands
1191 table->GetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)gpa(inst, "vkGetPhysicalDevicePresentRectanglesKHR");
1192
1193 // ---- VK_KHR_display extension commands
1194 table->GetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPropertiesKHR");
1195 table->GetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
1196 table->GetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)gpa(inst, "vkGetDisplayPlaneSupportedDisplaysKHR");
1197 table->GetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)gpa(inst, "vkGetDisplayModePropertiesKHR");
1198 table->CreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)gpa(inst, "vkCreateDisplayModeKHR");
1199 table->GetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)gpa(inst, "vkGetDisplayPlaneCapabilitiesKHR");
1200 table->CreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)gpa(inst, "vkCreateDisplayPlaneSurfaceKHR");
1201
1202 // ---- VK_KHR_xlib_surface extension commands
1203 #ifdef VK_USE_PLATFORM_XLIB_KHR
1204 table->CreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)gpa(inst, "vkCreateXlibSurfaceKHR");
1205 #endif // VK_USE_PLATFORM_XLIB_KHR
1206 #ifdef VK_USE_PLATFORM_XLIB_KHR
1207 table->GetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
1208 #endif // VK_USE_PLATFORM_XLIB_KHR
1209
1210 // ---- VK_KHR_xcb_surface extension commands
1211 #ifdef VK_USE_PLATFORM_XCB_KHR
1212 table->CreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)gpa(inst, "vkCreateXcbSurfaceKHR");
1213 #endif // VK_USE_PLATFORM_XCB_KHR
1214 #ifdef VK_USE_PLATFORM_XCB_KHR
1215 table->GetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
1216 #endif // VK_USE_PLATFORM_XCB_KHR
1217
1218 // ---- VK_KHR_wayland_surface extension commands
1219 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
1220 table->CreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)gpa(inst, "vkCreateWaylandSurfaceKHR");
1221 #endif // VK_USE_PLATFORM_WAYLAND_KHR
1222 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
1223 table->GetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
1224 #endif // VK_USE_PLATFORM_WAYLAND_KHR
1225
1226 // ---- VK_KHR_android_surface extension commands
1227 #ifdef VK_USE_PLATFORM_ANDROID_KHR
1228 table->CreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)gpa(inst, "vkCreateAndroidSurfaceKHR");
1229 #endif // VK_USE_PLATFORM_ANDROID_KHR
1230
1231 // ---- VK_KHR_win32_surface extension commands
1232 #ifdef VK_USE_PLATFORM_WIN32_KHR
1233 table->CreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)gpa(inst, "vkCreateWin32SurfaceKHR");
1234 #endif // VK_USE_PLATFORM_WIN32_KHR
1235 #ifdef VK_USE_PLATFORM_WIN32_KHR
1236 table->GetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
1237 #endif // VK_USE_PLATFORM_WIN32_KHR
1238
1239 // ---- VK_KHR_video_queue extension commands
1240 #ifdef VK_ENABLE_BETA_EXTENSIONS
1241 table->GetPhysicalDeviceVideoCapabilitiesKHR = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
1242 #endif // VK_ENABLE_BETA_EXTENSIONS
1243 #ifdef VK_ENABLE_BETA_EXTENSIONS
1244 table->GetPhysicalDeviceVideoFormatPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
1245 #endif // VK_ENABLE_BETA_EXTENSIONS
1246
1247 // ---- VK_KHR_get_physical_device_properties2 extension commands
1248 table->GetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)gpa(inst, "vkGetPhysicalDeviceFeatures2KHR");
1249 table->GetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)gpa(inst, "vkGetPhysicalDeviceProperties2KHR");
1250 table->GetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceFormatProperties2KHR");
1251 table->GetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2KHR");
1252 table->GetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
1253 table->GetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2KHR");
1254 table->GetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
1255
1256 // ---- VK_KHR_device_group_creation extension commands
1257 table->EnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)gpa(inst, "vkEnumeratePhysicalDeviceGroupsKHR");
1258
1259 // ---- VK_KHR_external_memory_capabilities extension commands
1260 table->GetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
1261
1262 // ---- VK_KHR_external_semaphore_capabilities extension commands
1263 table->GetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
1264
1265 // ---- VK_KHR_external_fence_capabilities extension commands
1266 table->GetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
1267
1268 // ---- VK_KHR_performance_query extension commands
1269 table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
1270 table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
1271
1272 // ---- VK_KHR_get_surface_capabilities2 extension commands
1273 table->GetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
1274 table->GetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormats2KHR");
1275
1276 // ---- VK_KHR_get_display_properties2 extension commands
1277 table->GetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayProperties2KHR");
1278 table->GetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
1279 table->GetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)gpa(inst, "vkGetDisplayModeProperties2KHR");
1280 table->GetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)gpa(inst, "vkGetDisplayPlaneCapabilities2KHR");
1281
1282 // ---- VK_KHR_fragment_shading_rate extension commands
1283 table->GetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)gpa(inst, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
1284
1285 // ---- VK_EXT_debug_report extension commands
1286 table->CreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)gpa(inst, "vkCreateDebugReportCallbackEXT");
1287 table->DestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)gpa(inst, "vkDestroyDebugReportCallbackEXT");
1288 table->DebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)gpa(inst, "vkDebugReportMessageEXT");
1289
1290 // ---- VK_GGP_stream_descriptor_surface extension commands
1291 #ifdef VK_USE_PLATFORM_GGP
1292 table->CreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)gpa(inst, "vkCreateStreamDescriptorSurfaceGGP");
1293 #endif // VK_USE_PLATFORM_GGP
1294
1295 // ---- VK_NV_external_memory_capabilities extension commands
1296 table->GetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)gpa(inst, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
1297
1298 // ---- VK_NN_vi_surface extension commands
1299 #ifdef VK_USE_PLATFORM_VI_NN
1300 table->CreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)gpa(inst, "vkCreateViSurfaceNN");
1301 #endif // VK_USE_PLATFORM_VI_NN
1302
1303 // ---- VK_EXT_direct_mode_display extension commands
1304 table->ReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)gpa(inst, "vkReleaseDisplayEXT");
1305
1306 // ---- VK_EXT_acquire_xlib_display extension commands
1307 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
1308 table->AcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)gpa(inst, "vkAcquireXlibDisplayEXT");
1309 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1310 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
1311 table->GetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)gpa(inst, "vkGetRandROutputDisplayEXT");
1312 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1313
1314 // ---- VK_EXT_display_surface_counter extension commands
1315 table->GetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
1316
1317 // ---- VK_MVK_ios_surface extension commands
1318 #ifdef VK_USE_PLATFORM_IOS_MVK
1319 table->CreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)gpa(inst, "vkCreateIOSSurfaceMVK");
1320 #endif // VK_USE_PLATFORM_IOS_MVK
1321
1322 // ---- VK_MVK_macos_surface extension commands
1323 #ifdef VK_USE_PLATFORM_MACOS_MVK
1324 table->CreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)gpa(inst, "vkCreateMacOSSurfaceMVK");
1325 #endif // VK_USE_PLATFORM_MACOS_MVK
1326
1327 // ---- VK_EXT_debug_utils extension commands
1328 table->CreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)gpa(inst, "vkCreateDebugUtilsMessengerEXT");
1329 table->DestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)gpa(inst, "vkDestroyDebugUtilsMessengerEXT");
1330 table->SubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)gpa(inst, "vkSubmitDebugUtilsMessageEXT");
1331
1332 // ---- VK_EXT_sample_locations extension commands
1333 table->GetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)gpa(inst, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1334
1335 // ---- VK_EXT_calibrated_timestamps extension commands
1336 table->GetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1337
1338 // ---- VK_FUCHSIA_imagepipe_surface extension commands
1339 #ifdef VK_USE_PLATFORM_FUCHSIA
1340 table->CreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)gpa(inst, "vkCreateImagePipeSurfaceFUCHSIA");
1341 #endif // VK_USE_PLATFORM_FUCHSIA
1342
1343 // ---- VK_EXT_metal_surface extension commands
1344 #ifdef VK_USE_PLATFORM_METAL_EXT
1345 table->CreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)gpa(inst, "vkCreateMetalSurfaceEXT");
1346 #endif // VK_USE_PLATFORM_METAL_EXT
1347
1348 // ---- VK_EXT_tooling_info extension commands
1349 table->GetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)gpa(inst, "vkGetPhysicalDeviceToolPropertiesEXT");
1350
1351 // ---- VK_NV_cooperative_matrix extension commands
1352 table->GetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1353
1354 // ---- VK_NV_coverage_reduction_mode extension commands
1355 table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)gpa(inst, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1356
1357 // ---- VK_EXT_full_screen_exclusive extension commands
1358 #ifdef VK_USE_PLATFORM_WIN32_KHR
1359 table->GetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1360 #endif // VK_USE_PLATFORM_WIN32_KHR
1361
1362 // ---- VK_EXT_headless_surface extension commands
1363 table->CreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)gpa(inst, "vkCreateHeadlessSurfaceEXT");
1364
1365 // ---- VK_EXT_acquire_drm_display extension commands
1366 table->AcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)gpa(inst, "vkAcquireDrmDisplayEXT");
1367 table->GetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)gpa(inst, "vkGetDrmDisplayEXT");
1368
1369 // ---- VK_NV_acquire_winrt_display extension commands
1370 #ifdef VK_USE_PLATFORM_WIN32_KHR
1371 table->AcquireWinrtDisplayNV = (PFN_vkAcquireWinrtDisplayNV)gpa(inst, "vkAcquireWinrtDisplayNV");
1372 #endif // VK_USE_PLATFORM_WIN32_KHR
1373 #ifdef VK_USE_PLATFORM_WIN32_KHR
1374 table->GetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)gpa(inst, "vkGetWinrtDisplayNV");
1375 #endif // VK_USE_PLATFORM_WIN32_KHR
1376
1377 // ---- VK_EXT_directfb_surface extension commands
1378 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
1379 table->CreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)gpa(inst, "vkCreateDirectFBSurfaceEXT");
1380 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
1381 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
1382 table->GetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)gpa(inst, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1383 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
1384
1385 // ---- VK_QNX_screen_surface extension commands
1386 #ifdef VK_USE_PLATFORM_SCREEN_QNX
1387 table->CreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)gpa(inst, "vkCreateScreenSurfaceQNX");
1388 #endif // VK_USE_PLATFORM_SCREEN_QNX
1389 #ifdef VK_USE_PLATFORM_SCREEN_QNX
1390 table->GetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)gpa(inst, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
1391 #endif // VK_USE_PLATFORM_SCREEN_QNX
1392
1393 // ---- VK_NV_optical_flow extension commands
1394 table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
1395
1396 // ---- VK_OHOS_surface extension commands
1397 #ifdef VK_USE_PLATFORM_OHOS
1398 table->CreateSurfaceOHOS = (PFN_vkCreateSurfaceOHOS)gpa(inst, "vkCreateSurfaceOHOS");
1399 #endif // VK_USE_PLATFORM_OHOS
1400 }
1401
1402 // Device command lookup function
loader_lookup_device_dispatch_table(const VkLayerDispatchTable * table,const char * name)1403 VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDispatchTable *table, const char *name) {
1404 if (!name || name[0] != 'v' || name[1] != 'k') return NULL;
1405
1406 name += 2;
1407
1408 // ---- Core 1_0 commands
1409 if (!strcmp(name, "GetDeviceProcAddr")) return (void *)table->GetDeviceProcAddr;
1410 if (!strcmp(name, "DestroyDevice")) return (void *)table->DestroyDevice;
1411 if (!strcmp(name, "GetDeviceQueue")) return (void *)table->GetDeviceQueue;
1412 if (!strcmp(name, "QueueSubmit")) return (void *)table->QueueSubmit;
1413 if (!strcmp(name, "QueueWaitIdle")) return (void *)table->QueueWaitIdle;
1414 if (!strcmp(name, "DeviceWaitIdle")) return (void *)table->DeviceWaitIdle;
1415 if (!strcmp(name, "AllocateMemory")) return (void *)table->AllocateMemory;
1416 if (!strcmp(name, "FreeMemory")) return (void *)table->FreeMemory;
1417 if (!strcmp(name, "MapMemory")) return (void *)table->MapMemory;
1418 if (!strcmp(name, "UnmapMemory")) return (void *)table->UnmapMemory;
1419 if (!strcmp(name, "FlushMappedMemoryRanges")) return (void *)table->FlushMappedMemoryRanges;
1420 if (!strcmp(name, "InvalidateMappedMemoryRanges")) return (void *)table->InvalidateMappedMemoryRanges;
1421 if (!strcmp(name, "GetDeviceMemoryCommitment")) return (void *)table->GetDeviceMemoryCommitment;
1422 if (!strcmp(name, "BindBufferMemory")) return (void *)table->BindBufferMemory;
1423 if (!strcmp(name, "BindImageMemory")) return (void *)table->BindImageMemory;
1424 if (!strcmp(name, "GetBufferMemoryRequirements")) return (void *)table->GetBufferMemoryRequirements;
1425 if (!strcmp(name, "GetImageMemoryRequirements")) return (void *)table->GetImageMemoryRequirements;
1426 if (!strcmp(name, "GetImageSparseMemoryRequirements")) return (void *)table->GetImageSparseMemoryRequirements;
1427 if (!strcmp(name, "QueueBindSparse")) return (void *)table->QueueBindSparse;
1428 if (!strcmp(name, "CreateFence")) return (void *)table->CreateFence;
1429 if (!strcmp(name, "DestroyFence")) return (void *)table->DestroyFence;
1430 if (!strcmp(name, "ResetFences")) return (void *)table->ResetFences;
1431 if (!strcmp(name, "GetFenceStatus")) return (void *)table->GetFenceStatus;
1432 if (!strcmp(name, "WaitForFences")) return (void *)table->WaitForFences;
1433 if (!strcmp(name, "CreateSemaphore")) return (void *)table->CreateSemaphore;
1434 if (!strcmp(name, "DestroySemaphore")) return (void *)table->DestroySemaphore;
1435 if (!strcmp(name, "CreateEvent")) return (void *)table->CreateEvent;
1436 if (!strcmp(name, "DestroyEvent")) return (void *)table->DestroyEvent;
1437 if (!strcmp(name, "GetEventStatus")) return (void *)table->GetEventStatus;
1438 if (!strcmp(name, "SetEvent")) return (void *)table->SetEvent;
1439 if (!strcmp(name, "ResetEvent")) return (void *)table->ResetEvent;
1440 if (!strcmp(name, "CreateQueryPool")) return (void *)table->CreateQueryPool;
1441 if (!strcmp(name, "DestroyQueryPool")) return (void *)table->DestroyQueryPool;
1442 if (!strcmp(name, "GetQueryPoolResults")) return (void *)table->GetQueryPoolResults;
1443 if (!strcmp(name, "CreateBuffer")) return (void *)table->CreateBuffer;
1444 if (!strcmp(name, "DestroyBuffer")) return (void *)table->DestroyBuffer;
1445 if (!strcmp(name, "CreateBufferView")) return (void *)table->CreateBufferView;
1446 if (!strcmp(name, "DestroyBufferView")) return (void *)table->DestroyBufferView;
1447 if (!strcmp(name, "CreateImage")) return (void *)table->CreateImage;
1448 if (!strcmp(name, "DestroyImage")) return (void *)table->DestroyImage;
1449 if (!strcmp(name, "GetImageSubresourceLayout")) return (void *)table->GetImageSubresourceLayout;
1450 if (!strcmp(name, "CreateImageView")) return (void *)table->CreateImageView;
1451 if (!strcmp(name, "DestroyImageView")) return (void *)table->DestroyImageView;
1452 if (!strcmp(name, "CreateShaderModule")) return (void *)table->CreateShaderModule;
1453 if (!strcmp(name, "DestroyShaderModule")) return (void *)table->DestroyShaderModule;
1454 if (!strcmp(name, "CreatePipelineCache")) return (void *)table->CreatePipelineCache;
1455 if (!strcmp(name, "DestroyPipelineCache")) return (void *)table->DestroyPipelineCache;
1456 if (!strcmp(name, "GetPipelineCacheData")) return (void *)table->GetPipelineCacheData;
1457 if (!strcmp(name, "MergePipelineCaches")) return (void *)table->MergePipelineCaches;
1458 if (!strcmp(name, "CreateGraphicsPipelines")) return (void *)table->CreateGraphicsPipelines;
1459 if (!strcmp(name, "CreateComputePipelines")) return (void *)table->CreateComputePipelines;
1460 if (!strcmp(name, "DestroyPipeline")) return (void *)table->DestroyPipeline;
1461 if (!strcmp(name, "CreatePipelineLayout")) return (void *)table->CreatePipelineLayout;
1462 if (!strcmp(name, "DestroyPipelineLayout")) return (void *)table->DestroyPipelineLayout;
1463 if (!strcmp(name, "CreateSampler")) return (void *)table->CreateSampler;
1464 if (!strcmp(name, "DestroySampler")) return (void *)table->DestroySampler;
1465 if (!strcmp(name, "CreateDescriptorSetLayout")) return (void *)table->CreateDescriptorSetLayout;
1466 if (!strcmp(name, "DestroyDescriptorSetLayout")) return (void *)table->DestroyDescriptorSetLayout;
1467 if (!strcmp(name, "CreateDescriptorPool")) return (void *)table->CreateDescriptorPool;
1468 if (!strcmp(name, "DestroyDescriptorPool")) return (void *)table->DestroyDescriptorPool;
1469 if (!strcmp(name, "ResetDescriptorPool")) return (void *)table->ResetDescriptorPool;
1470 if (!strcmp(name, "AllocateDescriptorSets")) return (void *)table->AllocateDescriptorSets;
1471 if (!strcmp(name, "FreeDescriptorSets")) return (void *)table->FreeDescriptorSets;
1472 if (!strcmp(name, "UpdateDescriptorSets")) return (void *)table->UpdateDescriptorSets;
1473 if (!strcmp(name, "CreateFramebuffer")) return (void *)table->CreateFramebuffer;
1474 if (!strcmp(name, "DestroyFramebuffer")) return (void *)table->DestroyFramebuffer;
1475 if (!strcmp(name, "CreateRenderPass")) return (void *)table->CreateRenderPass;
1476 if (!strcmp(name, "DestroyRenderPass")) return (void *)table->DestroyRenderPass;
1477 if (!strcmp(name, "GetRenderAreaGranularity")) return (void *)table->GetRenderAreaGranularity;
1478 if (!strcmp(name, "CreateCommandPool")) return (void *)table->CreateCommandPool;
1479 if (!strcmp(name, "DestroyCommandPool")) return (void *)table->DestroyCommandPool;
1480 if (!strcmp(name, "ResetCommandPool")) return (void *)table->ResetCommandPool;
1481 if (!strcmp(name, "AllocateCommandBuffers")) return (void *)table->AllocateCommandBuffers;
1482 if (!strcmp(name, "FreeCommandBuffers")) return (void *)table->FreeCommandBuffers;
1483 if (!strcmp(name, "BeginCommandBuffer")) return (void *)table->BeginCommandBuffer;
1484 if (!strcmp(name, "EndCommandBuffer")) return (void *)table->EndCommandBuffer;
1485 if (!strcmp(name, "ResetCommandBuffer")) return (void *)table->ResetCommandBuffer;
1486 if (!strcmp(name, "CmdBindPipeline")) return (void *)table->CmdBindPipeline;
1487 if (!strcmp(name, "CmdSetViewport")) return (void *)table->CmdSetViewport;
1488 if (!strcmp(name, "CmdSetScissor")) return (void *)table->CmdSetScissor;
1489 if (!strcmp(name, "CmdSetLineWidth")) return (void *)table->CmdSetLineWidth;
1490 if (!strcmp(name, "CmdSetDepthBias")) return (void *)table->CmdSetDepthBias;
1491 if (!strcmp(name, "CmdSetBlendConstants")) return (void *)table->CmdSetBlendConstants;
1492 if (!strcmp(name, "CmdSetDepthBounds")) return (void *)table->CmdSetDepthBounds;
1493 if (!strcmp(name, "CmdSetStencilCompareMask")) return (void *)table->CmdSetStencilCompareMask;
1494 if (!strcmp(name, "CmdSetStencilWriteMask")) return (void *)table->CmdSetStencilWriteMask;
1495 if (!strcmp(name, "CmdSetStencilReference")) return (void *)table->CmdSetStencilReference;
1496 if (!strcmp(name, "CmdBindDescriptorSets")) return (void *)table->CmdBindDescriptorSets;
1497 if (!strcmp(name, "CmdBindIndexBuffer")) return (void *)table->CmdBindIndexBuffer;
1498 if (!strcmp(name, "CmdBindVertexBuffers")) return (void *)table->CmdBindVertexBuffers;
1499 if (!strcmp(name, "CmdDraw")) return (void *)table->CmdDraw;
1500 if (!strcmp(name, "CmdDrawIndexed")) return (void *)table->CmdDrawIndexed;
1501 if (!strcmp(name, "CmdDrawIndirect")) return (void *)table->CmdDrawIndirect;
1502 if (!strcmp(name, "CmdDrawIndexedIndirect")) return (void *)table->CmdDrawIndexedIndirect;
1503 if (!strcmp(name, "CmdDispatch")) return (void *)table->CmdDispatch;
1504 if (!strcmp(name, "CmdDispatchIndirect")) return (void *)table->CmdDispatchIndirect;
1505 if (!strcmp(name, "CmdCopyBuffer")) return (void *)table->CmdCopyBuffer;
1506 if (!strcmp(name, "CmdCopyImage")) return (void *)table->CmdCopyImage;
1507 if (!strcmp(name, "CmdBlitImage")) return (void *)table->CmdBlitImage;
1508 if (!strcmp(name, "CmdCopyBufferToImage")) return (void *)table->CmdCopyBufferToImage;
1509 if (!strcmp(name, "CmdCopyImageToBuffer")) return (void *)table->CmdCopyImageToBuffer;
1510 if (!strcmp(name, "CmdUpdateBuffer")) return (void *)table->CmdUpdateBuffer;
1511 if (!strcmp(name, "CmdFillBuffer")) return (void *)table->CmdFillBuffer;
1512 if (!strcmp(name, "CmdClearColorImage")) return (void *)table->CmdClearColorImage;
1513 if (!strcmp(name, "CmdClearDepthStencilImage")) return (void *)table->CmdClearDepthStencilImage;
1514 if (!strcmp(name, "CmdClearAttachments")) return (void *)table->CmdClearAttachments;
1515 if (!strcmp(name, "CmdResolveImage")) return (void *)table->CmdResolveImage;
1516 if (!strcmp(name, "CmdSetEvent")) return (void *)table->CmdSetEvent;
1517 if (!strcmp(name, "CmdResetEvent")) return (void *)table->CmdResetEvent;
1518 if (!strcmp(name, "CmdWaitEvents")) return (void *)table->CmdWaitEvents;
1519 if (!strcmp(name, "CmdPipelineBarrier")) return (void *)table->CmdPipelineBarrier;
1520 if (!strcmp(name, "CmdBeginQuery")) return (void *)table->CmdBeginQuery;
1521 if (!strcmp(name, "CmdEndQuery")) return (void *)table->CmdEndQuery;
1522 if (!strcmp(name, "CmdResetQueryPool")) return (void *)table->CmdResetQueryPool;
1523 if (!strcmp(name, "CmdWriteTimestamp")) return (void *)table->CmdWriteTimestamp;
1524 if (!strcmp(name, "CmdCopyQueryPoolResults")) return (void *)table->CmdCopyQueryPoolResults;
1525 if (!strcmp(name, "CmdPushConstants")) return (void *)table->CmdPushConstants;
1526 if (!strcmp(name, "CmdBeginRenderPass")) return (void *)table->CmdBeginRenderPass;
1527 if (!strcmp(name, "CmdNextSubpass")) return (void *)table->CmdNextSubpass;
1528 if (!strcmp(name, "CmdEndRenderPass")) return (void *)table->CmdEndRenderPass;
1529 if (!strcmp(name, "CmdExecuteCommands")) return (void *)table->CmdExecuteCommands;
1530
1531 // ---- Core 1_1 commands
1532 if (!strcmp(name, "BindBufferMemory2")) return (void *)table->BindBufferMemory2;
1533 if (!strcmp(name, "BindImageMemory2")) return (void *)table->BindImageMemory2;
1534 if (!strcmp(name, "GetDeviceGroupPeerMemoryFeatures")) return (void *)table->GetDeviceGroupPeerMemoryFeatures;
1535 if (!strcmp(name, "CmdSetDeviceMask")) return (void *)table->CmdSetDeviceMask;
1536 if (!strcmp(name, "CmdDispatchBase")) return (void *)table->CmdDispatchBase;
1537 if (!strcmp(name, "GetImageMemoryRequirements2")) return (void *)table->GetImageMemoryRequirements2;
1538 if (!strcmp(name, "GetBufferMemoryRequirements2")) return (void *)table->GetBufferMemoryRequirements2;
1539 if (!strcmp(name, "GetImageSparseMemoryRequirements2")) return (void *)table->GetImageSparseMemoryRequirements2;
1540 if (!strcmp(name, "TrimCommandPool")) return (void *)table->TrimCommandPool;
1541 if (!strcmp(name, "GetDeviceQueue2")) return (void *)table->GetDeviceQueue2;
1542 if (!strcmp(name, "CreateSamplerYcbcrConversion")) return (void *)table->CreateSamplerYcbcrConversion;
1543 if (!strcmp(name, "DestroySamplerYcbcrConversion")) return (void *)table->DestroySamplerYcbcrConversion;
1544 if (!strcmp(name, "CreateDescriptorUpdateTemplate")) return (void *)table->CreateDescriptorUpdateTemplate;
1545 if (!strcmp(name, "DestroyDescriptorUpdateTemplate")) return (void *)table->DestroyDescriptorUpdateTemplate;
1546 if (!strcmp(name, "UpdateDescriptorSetWithTemplate")) return (void *)table->UpdateDescriptorSetWithTemplate;
1547 if (!strcmp(name, "GetDescriptorSetLayoutSupport")) return (void *)table->GetDescriptorSetLayoutSupport;
1548
1549 // ---- Core 1_2 commands
1550 if (!strcmp(name, "CmdDrawIndirectCount")) return (void *)table->CmdDrawIndirectCount;
1551 if (!strcmp(name, "CmdDrawIndexedIndirectCount")) return (void *)table->CmdDrawIndexedIndirectCount;
1552 if (!strcmp(name, "CreateRenderPass2")) return (void *)table->CreateRenderPass2;
1553 if (!strcmp(name, "CmdBeginRenderPass2")) return (void *)table->CmdBeginRenderPass2;
1554 if (!strcmp(name, "CmdNextSubpass2")) return (void *)table->CmdNextSubpass2;
1555 if (!strcmp(name, "CmdEndRenderPass2")) return (void *)table->CmdEndRenderPass2;
1556 if (!strcmp(name, "ResetQueryPool")) return (void *)table->ResetQueryPool;
1557 if (!strcmp(name, "GetSemaphoreCounterValue")) return (void *)table->GetSemaphoreCounterValue;
1558 if (!strcmp(name, "WaitSemaphores")) return (void *)table->WaitSemaphores;
1559 if (!strcmp(name, "SignalSemaphore")) return (void *)table->SignalSemaphore;
1560 if (!strcmp(name, "GetBufferDeviceAddress")) return (void *)table->GetBufferDeviceAddress;
1561 if (!strcmp(name, "GetBufferOpaqueCaptureAddress")) return (void *)table->GetBufferOpaqueCaptureAddress;
1562 if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddress")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddress;
1563
1564 // ---- Core 1_3 commands
1565 if (!strcmp(name, "CreatePrivateDataSlot")) return (void *)table->CreatePrivateDataSlot;
1566 if (!strcmp(name, "DestroyPrivateDataSlot")) return (void *)table->DestroyPrivateDataSlot;
1567 if (!strcmp(name, "SetPrivateData")) return (void *)table->SetPrivateData;
1568 if (!strcmp(name, "GetPrivateData")) return (void *)table->GetPrivateData;
1569 if (!strcmp(name, "CmdSetEvent2")) return (void *)table->CmdSetEvent2;
1570 if (!strcmp(name, "CmdResetEvent2")) return (void *)table->CmdResetEvent2;
1571 if (!strcmp(name, "CmdWaitEvents2")) return (void *)table->CmdWaitEvents2;
1572 if (!strcmp(name, "CmdPipelineBarrier2")) return (void *)table->CmdPipelineBarrier2;
1573 if (!strcmp(name, "CmdWriteTimestamp2")) return (void *)table->CmdWriteTimestamp2;
1574 if (!strcmp(name, "QueueSubmit2")) return (void *)table->QueueSubmit2;
1575 if (!strcmp(name, "CmdCopyBuffer2")) return (void *)table->CmdCopyBuffer2;
1576 if (!strcmp(name, "CmdCopyImage2")) return (void *)table->CmdCopyImage2;
1577 if (!strcmp(name, "CmdCopyBufferToImage2")) return (void *)table->CmdCopyBufferToImage2;
1578 if (!strcmp(name, "CmdCopyImageToBuffer2")) return (void *)table->CmdCopyImageToBuffer2;
1579 if (!strcmp(name, "CmdBlitImage2")) return (void *)table->CmdBlitImage2;
1580 if (!strcmp(name, "CmdResolveImage2")) return (void *)table->CmdResolveImage2;
1581 if (!strcmp(name, "CmdBeginRendering")) return (void *)table->CmdBeginRendering;
1582 if (!strcmp(name, "CmdEndRendering")) return (void *)table->CmdEndRendering;
1583 if (!strcmp(name, "CmdSetCullMode")) return (void *)table->CmdSetCullMode;
1584 if (!strcmp(name, "CmdSetFrontFace")) return (void *)table->CmdSetFrontFace;
1585 if (!strcmp(name, "CmdSetPrimitiveTopology")) return (void *)table->CmdSetPrimitiveTopology;
1586 if (!strcmp(name, "CmdSetViewportWithCount")) return (void *)table->CmdSetViewportWithCount;
1587 if (!strcmp(name, "CmdSetScissorWithCount")) return (void *)table->CmdSetScissorWithCount;
1588 if (!strcmp(name, "CmdBindVertexBuffers2")) return (void *)table->CmdBindVertexBuffers2;
1589 if (!strcmp(name, "CmdSetDepthTestEnable")) return (void *)table->CmdSetDepthTestEnable;
1590 if (!strcmp(name, "CmdSetDepthWriteEnable")) return (void *)table->CmdSetDepthWriteEnable;
1591 if (!strcmp(name, "CmdSetDepthCompareOp")) return (void *)table->CmdSetDepthCompareOp;
1592 if (!strcmp(name, "CmdSetDepthBoundsTestEnable")) return (void *)table->CmdSetDepthBoundsTestEnable;
1593 if (!strcmp(name, "CmdSetStencilTestEnable")) return (void *)table->CmdSetStencilTestEnable;
1594 if (!strcmp(name, "CmdSetStencilOp")) return (void *)table->CmdSetStencilOp;
1595 if (!strcmp(name, "CmdSetRasterizerDiscardEnable")) return (void *)table->CmdSetRasterizerDiscardEnable;
1596 if (!strcmp(name, "CmdSetDepthBiasEnable")) return (void *)table->CmdSetDepthBiasEnable;
1597 if (!strcmp(name, "CmdSetPrimitiveRestartEnable")) return (void *)table->CmdSetPrimitiveRestartEnable;
1598 if (!strcmp(name, "GetDeviceBufferMemoryRequirements")) return (void *)table->GetDeviceBufferMemoryRequirements;
1599 if (!strcmp(name, "GetDeviceImageMemoryRequirements")) return (void *)table->GetDeviceImageMemoryRequirements;
1600 if (!strcmp(name, "GetDeviceImageSparseMemoryRequirements")) return (void *)table->GetDeviceImageSparseMemoryRequirements;
1601
1602 // ---- VK_KHR_swapchain extension commands
1603 if (!strcmp(name, "CreateSwapchainKHR")) return (void *)table->CreateSwapchainKHR;
1604 if (!strcmp(name, "DestroySwapchainKHR")) return (void *)table->DestroySwapchainKHR;
1605 if (!strcmp(name, "GetSwapchainImagesKHR")) return (void *)table->GetSwapchainImagesKHR;
1606 if (!strcmp(name, "AcquireNextImageKHR")) return (void *)table->AcquireNextImageKHR;
1607 if (!strcmp(name, "QueuePresentKHR")) return (void *)table->QueuePresentKHR;
1608 if (!strcmp(name, "GetDeviceGroupPresentCapabilitiesKHR")) return (void *)table->GetDeviceGroupPresentCapabilitiesKHR;
1609 if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) return (void *)table->GetDeviceGroupSurfacePresentModesKHR;
1610 if (!strcmp(name, "AcquireNextImage2KHR")) return (void *)table->AcquireNextImage2KHR;
1611
1612 // ---- VK_KHR_display_swapchain extension commands
1613 if (!strcmp(name, "CreateSharedSwapchainsKHR")) return (void *)table->CreateSharedSwapchainsKHR;
1614
1615 // ---- VK_KHR_video_queue extension commands
1616 #ifdef VK_ENABLE_BETA_EXTENSIONS
1617 if (!strcmp(name, "CreateVideoSessionKHR")) return (void *)table->CreateVideoSessionKHR;
1618 #endif // VK_ENABLE_BETA_EXTENSIONS
1619 #ifdef VK_ENABLE_BETA_EXTENSIONS
1620 if (!strcmp(name, "DestroyVideoSessionKHR")) return (void *)table->DestroyVideoSessionKHR;
1621 #endif // VK_ENABLE_BETA_EXTENSIONS
1622 #ifdef VK_ENABLE_BETA_EXTENSIONS
1623 if (!strcmp(name, "GetVideoSessionMemoryRequirementsKHR")) return (void *)table->GetVideoSessionMemoryRequirementsKHR;
1624 #endif // VK_ENABLE_BETA_EXTENSIONS
1625 #ifdef VK_ENABLE_BETA_EXTENSIONS
1626 if (!strcmp(name, "BindVideoSessionMemoryKHR")) return (void *)table->BindVideoSessionMemoryKHR;
1627 #endif // VK_ENABLE_BETA_EXTENSIONS
1628 #ifdef VK_ENABLE_BETA_EXTENSIONS
1629 if (!strcmp(name, "CreateVideoSessionParametersKHR")) return (void *)table->CreateVideoSessionParametersKHR;
1630 #endif // VK_ENABLE_BETA_EXTENSIONS
1631 #ifdef VK_ENABLE_BETA_EXTENSIONS
1632 if (!strcmp(name, "UpdateVideoSessionParametersKHR")) return (void *)table->UpdateVideoSessionParametersKHR;
1633 #endif // VK_ENABLE_BETA_EXTENSIONS
1634 #ifdef VK_ENABLE_BETA_EXTENSIONS
1635 if (!strcmp(name, "DestroyVideoSessionParametersKHR")) return (void *)table->DestroyVideoSessionParametersKHR;
1636 #endif // VK_ENABLE_BETA_EXTENSIONS
1637 #ifdef VK_ENABLE_BETA_EXTENSIONS
1638 if (!strcmp(name, "CmdBeginVideoCodingKHR")) return (void *)table->CmdBeginVideoCodingKHR;
1639 #endif // VK_ENABLE_BETA_EXTENSIONS
1640 #ifdef VK_ENABLE_BETA_EXTENSIONS
1641 if (!strcmp(name, "CmdEndVideoCodingKHR")) return (void *)table->CmdEndVideoCodingKHR;
1642 #endif // VK_ENABLE_BETA_EXTENSIONS
1643 #ifdef VK_ENABLE_BETA_EXTENSIONS
1644 if (!strcmp(name, "CmdControlVideoCodingKHR")) return (void *)table->CmdControlVideoCodingKHR;
1645 #endif // VK_ENABLE_BETA_EXTENSIONS
1646
1647 // ---- VK_KHR_video_decode_queue extension commands
1648 #ifdef VK_ENABLE_BETA_EXTENSIONS
1649 if (!strcmp(name, "CmdDecodeVideoKHR")) return (void *)table->CmdDecodeVideoKHR;
1650 #endif // VK_ENABLE_BETA_EXTENSIONS
1651
1652 // ---- VK_KHR_dynamic_rendering extension commands
1653 if (!strcmp(name, "CmdBeginRenderingKHR")) return (void *)table->CmdBeginRenderingKHR;
1654 if (!strcmp(name, "CmdEndRenderingKHR")) return (void *)table->CmdEndRenderingKHR;
1655
1656 // ---- VK_KHR_device_group extension commands
1657 if (!strcmp(name, "GetDeviceGroupPeerMemoryFeaturesKHR")) return (void *)table->GetDeviceGroupPeerMemoryFeaturesKHR;
1658 if (!strcmp(name, "CmdSetDeviceMaskKHR")) return (void *)table->CmdSetDeviceMaskKHR;
1659 if (!strcmp(name, "CmdDispatchBaseKHR")) return (void *)table->CmdDispatchBaseKHR;
1660
1661 // ---- VK_KHR_maintenance1 extension commands
1662 if (!strcmp(name, "TrimCommandPoolKHR")) return (void *)table->TrimCommandPoolKHR;
1663
1664 // ---- VK_KHR_external_memory_win32 extension commands
1665 #ifdef VK_USE_PLATFORM_WIN32_KHR
1666 if (!strcmp(name, "GetMemoryWin32HandleKHR")) return (void *)table->GetMemoryWin32HandleKHR;
1667 #endif // VK_USE_PLATFORM_WIN32_KHR
1668 #ifdef VK_USE_PLATFORM_WIN32_KHR
1669 if (!strcmp(name, "GetMemoryWin32HandlePropertiesKHR")) return (void *)table->GetMemoryWin32HandlePropertiesKHR;
1670 #endif // VK_USE_PLATFORM_WIN32_KHR
1671
1672 // ---- VK_KHR_external_memory_fd extension commands
1673 if (!strcmp(name, "GetMemoryFdKHR")) return (void *)table->GetMemoryFdKHR;
1674 if (!strcmp(name, "GetMemoryFdPropertiesKHR")) return (void *)table->GetMemoryFdPropertiesKHR;
1675
1676 // ---- VK_KHR_external_semaphore_win32 extension commands
1677 #ifdef VK_USE_PLATFORM_WIN32_KHR
1678 if (!strcmp(name, "ImportSemaphoreWin32HandleKHR")) return (void *)table->ImportSemaphoreWin32HandleKHR;
1679 #endif // VK_USE_PLATFORM_WIN32_KHR
1680 #ifdef VK_USE_PLATFORM_WIN32_KHR
1681 if (!strcmp(name, "GetSemaphoreWin32HandleKHR")) return (void *)table->GetSemaphoreWin32HandleKHR;
1682 #endif // VK_USE_PLATFORM_WIN32_KHR
1683
1684 // ---- VK_KHR_external_semaphore_fd extension commands
1685 if (!strcmp(name, "ImportSemaphoreFdKHR")) return (void *)table->ImportSemaphoreFdKHR;
1686 if (!strcmp(name, "GetSemaphoreFdKHR")) return (void *)table->GetSemaphoreFdKHR;
1687
1688 // ---- VK_KHR_push_descriptor extension commands
1689 if (!strcmp(name, "CmdPushDescriptorSetKHR")) return (void *)table->CmdPushDescriptorSetKHR;
1690 if (!strcmp(name, "CmdPushDescriptorSetWithTemplateKHR")) return (void *)table->CmdPushDescriptorSetWithTemplateKHR;
1691
1692 // ---- VK_KHR_descriptor_update_template extension commands
1693 if (!strcmp(name, "CreateDescriptorUpdateTemplateKHR")) return (void *)table->CreateDescriptorUpdateTemplateKHR;
1694 if (!strcmp(name, "DestroyDescriptorUpdateTemplateKHR")) return (void *)table->DestroyDescriptorUpdateTemplateKHR;
1695 if (!strcmp(name, "UpdateDescriptorSetWithTemplateKHR")) return (void *)table->UpdateDescriptorSetWithTemplateKHR;
1696
1697 // ---- VK_KHR_create_renderpass2 extension commands
1698 if (!strcmp(name, "CreateRenderPass2KHR")) return (void *)table->CreateRenderPass2KHR;
1699 if (!strcmp(name, "CmdBeginRenderPass2KHR")) return (void *)table->CmdBeginRenderPass2KHR;
1700 if (!strcmp(name, "CmdNextSubpass2KHR")) return (void *)table->CmdNextSubpass2KHR;
1701 if (!strcmp(name, "CmdEndRenderPass2KHR")) return (void *)table->CmdEndRenderPass2KHR;
1702
1703 // ---- VK_KHR_shared_presentable_image extension commands
1704 if (!strcmp(name, "GetSwapchainStatusKHR")) return (void *)table->GetSwapchainStatusKHR;
1705
1706 // ---- VK_KHR_external_fence_win32 extension commands
1707 #ifdef VK_USE_PLATFORM_WIN32_KHR
1708 if (!strcmp(name, "ImportFenceWin32HandleKHR")) return (void *)table->ImportFenceWin32HandleKHR;
1709 #endif // VK_USE_PLATFORM_WIN32_KHR
1710 #ifdef VK_USE_PLATFORM_WIN32_KHR
1711 if (!strcmp(name, "GetFenceWin32HandleKHR")) return (void *)table->GetFenceWin32HandleKHR;
1712 #endif // VK_USE_PLATFORM_WIN32_KHR
1713
1714 // ---- VK_KHR_external_fence_fd extension commands
1715 if (!strcmp(name, "ImportFenceFdKHR")) return (void *)table->ImportFenceFdKHR;
1716 if (!strcmp(name, "GetFenceFdKHR")) return (void *)table->GetFenceFdKHR;
1717
1718 // ---- VK_KHR_performance_query extension commands
1719 if (!strcmp(name, "AcquireProfilingLockKHR")) return (void *)table->AcquireProfilingLockKHR;
1720 if (!strcmp(name, "ReleaseProfilingLockKHR")) return (void *)table->ReleaseProfilingLockKHR;
1721
1722 // ---- VK_KHR_get_memory_requirements2 extension commands
1723 if (!strcmp(name, "GetImageMemoryRequirements2KHR")) return (void *)table->GetImageMemoryRequirements2KHR;
1724 if (!strcmp(name, "GetBufferMemoryRequirements2KHR")) return (void *)table->GetBufferMemoryRequirements2KHR;
1725 if (!strcmp(name, "GetImageSparseMemoryRequirements2KHR")) return (void *)table->GetImageSparseMemoryRequirements2KHR;
1726
1727 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
1728 if (!strcmp(name, "CreateSamplerYcbcrConversionKHR")) return (void *)table->CreateSamplerYcbcrConversionKHR;
1729 if (!strcmp(name, "DestroySamplerYcbcrConversionKHR")) return (void *)table->DestroySamplerYcbcrConversionKHR;
1730
1731 // ---- VK_KHR_bind_memory2 extension commands
1732 if (!strcmp(name, "BindBufferMemory2KHR")) return (void *)table->BindBufferMemory2KHR;
1733 if (!strcmp(name, "BindImageMemory2KHR")) return (void *)table->BindImageMemory2KHR;
1734
1735 // ---- VK_KHR_maintenance3 extension commands
1736 if (!strcmp(name, "GetDescriptorSetLayoutSupportKHR")) return (void *)table->GetDescriptorSetLayoutSupportKHR;
1737
1738 // ---- VK_KHR_draw_indirect_count extension commands
1739 if (!strcmp(name, "CmdDrawIndirectCountKHR")) return (void *)table->CmdDrawIndirectCountKHR;
1740 if (!strcmp(name, "CmdDrawIndexedIndirectCountKHR")) return (void *)table->CmdDrawIndexedIndirectCountKHR;
1741
1742 // ---- VK_KHR_timeline_semaphore extension commands
1743 if (!strcmp(name, "GetSemaphoreCounterValueKHR")) return (void *)table->GetSemaphoreCounterValueKHR;
1744 if (!strcmp(name, "WaitSemaphoresKHR")) return (void *)table->WaitSemaphoresKHR;
1745 if (!strcmp(name, "SignalSemaphoreKHR")) return (void *)table->SignalSemaphoreKHR;
1746
1747 // ---- VK_KHR_fragment_shading_rate extension commands
1748 if (!strcmp(name, "CmdSetFragmentShadingRateKHR")) return (void *)table->CmdSetFragmentShadingRateKHR;
1749
1750 // ---- VK_KHR_present_wait extension commands
1751 if (!strcmp(name, "WaitForPresentKHR")) return (void *)table->WaitForPresentKHR;
1752
1753 // ---- VK_KHR_buffer_device_address extension commands
1754 if (!strcmp(name, "GetBufferDeviceAddressKHR")) return (void *)table->GetBufferDeviceAddressKHR;
1755 if (!strcmp(name, "GetBufferOpaqueCaptureAddressKHR")) return (void *)table->GetBufferOpaqueCaptureAddressKHR;
1756 if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddressKHR")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddressKHR;
1757
1758 // ---- VK_KHR_deferred_host_operations extension commands
1759 if (!strcmp(name, "CreateDeferredOperationKHR")) return (void *)table->CreateDeferredOperationKHR;
1760 if (!strcmp(name, "DestroyDeferredOperationKHR")) return (void *)table->DestroyDeferredOperationKHR;
1761 if (!strcmp(name, "GetDeferredOperationMaxConcurrencyKHR")) return (void *)table->GetDeferredOperationMaxConcurrencyKHR;
1762 if (!strcmp(name, "GetDeferredOperationResultKHR")) return (void *)table->GetDeferredOperationResultKHR;
1763 if (!strcmp(name, "DeferredOperationJoinKHR")) return (void *)table->DeferredOperationJoinKHR;
1764
1765 // ---- VK_KHR_pipeline_executable_properties extension commands
1766 if (!strcmp(name, "GetPipelineExecutablePropertiesKHR")) return (void *)table->GetPipelineExecutablePropertiesKHR;
1767 if (!strcmp(name, "GetPipelineExecutableStatisticsKHR")) return (void *)table->GetPipelineExecutableStatisticsKHR;
1768 if (!strcmp(name, "GetPipelineExecutableInternalRepresentationsKHR")) return (void *)table->GetPipelineExecutableInternalRepresentationsKHR;
1769
1770 // ---- VK_KHR_video_encode_queue extension commands
1771 #ifdef VK_ENABLE_BETA_EXTENSIONS
1772 if (!strcmp(name, "CmdEncodeVideoKHR")) return (void *)table->CmdEncodeVideoKHR;
1773 #endif // VK_ENABLE_BETA_EXTENSIONS
1774
1775 // ---- VK_KHR_synchronization2 extension commands
1776 if (!strcmp(name, "CmdSetEvent2KHR")) return (void *)table->CmdSetEvent2KHR;
1777 if (!strcmp(name, "CmdResetEvent2KHR")) return (void *)table->CmdResetEvent2KHR;
1778 if (!strcmp(name, "CmdWaitEvents2KHR")) return (void *)table->CmdWaitEvents2KHR;
1779 if (!strcmp(name, "CmdPipelineBarrier2KHR")) return (void *)table->CmdPipelineBarrier2KHR;
1780 if (!strcmp(name, "CmdWriteTimestamp2KHR")) return (void *)table->CmdWriteTimestamp2KHR;
1781 if (!strcmp(name, "QueueSubmit2KHR")) return (void *)table->QueueSubmit2KHR;
1782 if (!strcmp(name, "CmdWriteBufferMarker2AMD")) return (void *)table->CmdWriteBufferMarker2AMD;
1783 if (!strcmp(name, "GetQueueCheckpointData2NV")) return (void *)table->GetQueueCheckpointData2NV;
1784
1785 // ---- VK_KHR_copy_commands2 extension commands
1786 if (!strcmp(name, "CmdCopyBuffer2KHR")) return (void *)table->CmdCopyBuffer2KHR;
1787 if (!strcmp(name, "CmdCopyImage2KHR")) return (void *)table->CmdCopyImage2KHR;
1788 if (!strcmp(name, "CmdCopyBufferToImage2KHR")) return (void *)table->CmdCopyBufferToImage2KHR;
1789 if (!strcmp(name, "CmdCopyImageToBuffer2KHR")) return (void *)table->CmdCopyImageToBuffer2KHR;
1790 if (!strcmp(name, "CmdBlitImage2KHR")) return (void *)table->CmdBlitImage2KHR;
1791 if (!strcmp(name, "CmdResolveImage2KHR")) return (void *)table->CmdResolveImage2KHR;
1792
1793 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
1794 if (!strcmp(name, "CmdTraceRaysIndirect2KHR")) return (void *)table->CmdTraceRaysIndirect2KHR;
1795
1796 // ---- VK_KHR_maintenance4 extension commands
1797 if (!strcmp(name, "GetDeviceBufferMemoryRequirementsKHR")) return (void *)table->GetDeviceBufferMemoryRequirementsKHR;
1798 if (!strcmp(name, "GetDeviceImageMemoryRequirementsKHR")) return (void *)table->GetDeviceImageMemoryRequirementsKHR;
1799 if (!strcmp(name, "GetDeviceImageSparseMemoryRequirementsKHR")) return (void *)table->GetDeviceImageSparseMemoryRequirementsKHR;
1800
1801 // ---- VK_EXT_debug_marker extension commands
1802 if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) return (void *)table->DebugMarkerSetObjectTagEXT;
1803 if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) return (void *)table->DebugMarkerSetObjectNameEXT;
1804 if (!strcmp(name, "CmdDebugMarkerBeginEXT")) return (void *)table->CmdDebugMarkerBeginEXT;
1805 if (!strcmp(name, "CmdDebugMarkerEndEXT")) return (void *)table->CmdDebugMarkerEndEXT;
1806 if (!strcmp(name, "CmdDebugMarkerInsertEXT")) return (void *)table->CmdDebugMarkerInsertEXT;
1807
1808 // ---- VK_EXT_transform_feedback extension commands
1809 if (!strcmp(name, "CmdBindTransformFeedbackBuffersEXT")) return (void *)table->CmdBindTransformFeedbackBuffersEXT;
1810 if (!strcmp(name, "CmdBeginTransformFeedbackEXT")) return (void *)table->CmdBeginTransformFeedbackEXT;
1811 if (!strcmp(name, "CmdEndTransformFeedbackEXT")) return (void *)table->CmdEndTransformFeedbackEXT;
1812 if (!strcmp(name, "CmdBeginQueryIndexedEXT")) return (void *)table->CmdBeginQueryIndexedEXT;
1813 if (!strcmp(name, "CmdEndQueryIndexedEXT")) return (void *)table->CmdEndQueryIndexedEXT;
1814 if (!strcmp(name, "CmdDrawIndirectByteCountEXT")) return (void *)table->CmdDrawIndirectByteCountEXT;
1815
1816 // ---- VK_NVX_binary_import extension commands
1817 if (!strcmp(name, "CreateCuModuleNVX")) return (void *)table->CreateCuModuleNVX;
1818 if (!strcmp(name, "CreateCuFunctionNVX")) return (void *)table->CreateCuFunctionNVX;
1819 if (!strcmp(name, "DestroyCuModuleNVX")) return (void *)table->DestroyCuModuleNVX;
1820 if (!strcmp(name, "DestroyCuFunctionNVX")) return (void *)table->DestroyCuFunctionNVX;
1821 if (!strcmp(name, "CmdCuLaunchKernelNVX")) return (void *)table->CmdCuLaunchKernelNVX;
1822
1823 // ---- VK_NVX_image_view_handle extension commands
1824 if (!strcmp(name, "GetImageViewHandleNVX")) return (void *)table->GetImageViewHandleNVX;
1825 if (!strcmp(name, "GetImageViewAddressNVX")) return (void *)table->GetImageViewAddressNVX;
1826
1827 // ---- VK_AMD_draw_indirect_count extension commands
1828 if (!strcmp(name, "CmdDrawIndirectCountAMD")) return (void *)table->CmdDrawIndirectCountAMD;
1829 if (!strcmp(name, "CmdDrawIndexedIndirectCountAMD")) return (void *)table->CmdDrawIndexedIndirectCountAMD;
1830
1831 // ---- VK_AMD_shader_info extension commands
1832 if (!strcmp(name, "GetShaderInfoAMD")) return (void *)table->GetShaderInfoAMD;
1833
1834 // ---- VK_NV_external_memory_win32 extension commands
1835 #ifdef VK_USE_PLATFORM_WIN32_KHR
1836 if (!strcmp(name, "GetMemoryWin32HandleNV")) return (void *)table->GetMemoryWin32HandleNV;
1837 #endif // VK_USE_PLATFORM_WIN32_KHR
1838
1839 // ---- VK_EXT_conditional_rendering extension commands
1840 if (!strcmp(name, "CmdBeginConditionalRenderingEXT")) return (void *)table->CmdBeginConditionalRenderingEXT;
1841 if (!strcmp(name, "CmdEndConditionalRenderingEXT")) return (void *)table->CmdEndConditionalRenderingEXT;
1842
1843 // ---- VK_NV_clip_space_w_scaling extension commands
1844 if (!strcmp(name, "CmdSetViewportWScalingNV")) return (void *)table->CmdSetViewportWScalingNV;
1845
1846 // ---- VK_EXT_display_control extension commands
1847 if (!strcmp(name, "DisplayPowerControlEXT")) return (void *)table->DisplayPowerControlEXT;
1848 if (!strcmp(name, "RegisterDeviceEventEXT")) return (void *)table->RegisterDeviceEventEXT;
1849 if (!strcmp(name, "RegisterDisplayEventEXT")) return (void *)table->RegisterDisplayEventEXT;
1850 if (!strcmp(name, "GetSwapchainCounterEXT")) return (void *)table->GetSwapchainCounterEXT;
1851
1852 // ---- VK_GOOGLE_display_timing extension commands
1853 if (!strcmp(name, "GetRefreshCycleDurationGOOGLE")) return (void *)table->GetRefreshCycleDurationGOOGLE;
1854 if (!strcmp(name, "GetPastPresentationTimingGOOGLE")) return (void *)table->GetPastPresentationTimingGOOGLE;
1855
1856 // ---- VK_EXT_discard_rectangles extension commands
1857 if (!strcmp(name, "CmdSetDiscardRectangleEXT")) return (void *)table->CmdSetDiscardRectangleEXT;
1858
1859 // ---- VK_EXT_hdr_metadata extension commands
1860 if (!strcmp(name, "SetHdrMetadataEXT")) return (void *)table->SetHdrMetadataEXT;
1861
1862 // ---- VK_EXT_debug_utils extension commands
1863 if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) return (void *)table->SetDebugUtilsObjectNameEXT;
1864 if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) return (void *)table->SetDebugUtilsObjectTagEXT;
1865 if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) return (void *)table->QueueBeginDebugUtilsLabelEXT;
1866 if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) return (void *)table->QueueEndDebugUtilsLabelEXT;
1867 if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) return (void *)table->QueueInsertDebugUtilsLabelEXT;
1868 if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) return (void *)table->CmdBeginDebugUtilsLabelEXT;
1869 if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) return (void *)table->CmdEndDebugUtilsLabelEXT;
1870 if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) return (void *)table->CmdInsertDebugUtilsLabelEXT;
1871
1872 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
1873 #ifdef VK_USE_PLATFORM_ANDROID_KHR
1874 if (!strcmp(name, "GetAndroidHardwareBufferPropertiesANDROID")) return (void *)table->GetAndroidHardwareBufferPropertiesANDROID;
1875 #endif // VK_USE_PLATFORM_ANDROID_KHR
1876 #ifdef VK_USE_PLATFORM_ANDROID_KHR
1877 if (!strcmp(name, "GetMemoryAndroidHardwareBufferANDROID")) return (void *)table->GetMemoryAndroidHardwareBufferANDROID;
1878 #endif // VK_USE_PLATFORM_ANDROID_KHR
1879
1880 // ---- VK_EXT_sample_locations extension commands
1881 if (!strcmp(name, "CmdSetSampleLocationsEXT")) return (void *)table->CmdSetSampleLocationsEXT;
1882
1883 // ---- VK_EXT_image_drm_format_modifier extension commands
1884 if (!strcmp(name, "GetImageDrmFormatModifierPropertiesEXT")) return (void *)table->GetImageDrmFormatModifierPropertiesEXT;
1885
1886 // ---- VK_EXT_validation_cache extension commands
1887 if (!strcmp(name, "CreateValidationCacheEXT")) return (void *)table->CreateValidationCacheEXT;
1888 if (!strcmp(name, "DestroyValidationCacheEXT")) return (void *)table->DestroyValidationCacheEXT;
1889 if (!strcmp(name, "MergeValidationCachesEXT")) return (void *)table->MergeValidationCachesEXT;
1890 if (!strcmp(name, "GetValidationCacheDataEXT")) return (void *)table->GetValidationCacheDataEXT;
1891
1892 // ---- VK_NV_shading_rate_image extension commands
1893 if (!strcmp(name, "CmdBindShadingRateImageNV")) return (void *)table->CmdBindShadingRateImageNV;
1894 if (!strcmp(name, "CmdSetViewportShadingRatePaletteNV")) return (void *)table->CmdSetViewportShadingRatePaletteNV;
1895 if (!strcmp(name, "CmdSetCoarseSampleOrderNV")) return (void *)table->CmdSetCoarseSampleOrderNV;
1896
1897 // ---- VK_NV_ray_tracing extension commands
1898 if (!strcmp(name, "CreateAccelerationStructureNV")) return (void *)table->CreateAccelerationStructureNV;
1899 if (!strcmp(name, "DestroyAccelerationStructureNV")) return (void *)table->DestroyAccelerationStructureNV;
1900 if (!strcmp(name, "GetAccelerationStructureMemoryRequirementsNV")) return (void *)table->GetAccelerationStructureMemoryRequirementsNV;
1901 if (!strcmp(name, "BindAccelerationStructureMemoryNV")) return (void *)table->BindAccelerationStructureMemoryNV;
1902 if (!strcmp(name, "CmdBuildAccelerationStructureNV")) return (void *)table->CmdBuildAccelerationStructureNV;
1903 if (!strcmp(name, "CmdCopyAccelerationStructureNV")) return (void *)table->CmdCopyAccelerationStructureNV;
1904 if (!strcmp(name, "CmdTraceRaysNV")) return (void *)table->CmdTraceRaysNV;
1905 if (!strcmp(name, "CreateRayTracingPipelinesNV")) return (void *)table->CreateRayTracingPipelinesNV;
1906 if (!strcmp(name, "GetRayTracingShaderGroupHandlesKHR")) return (void *)table->GetRayTracingShaderGroupHandlesKHR;
1907 if (!strcmp(name, "GetRayTracingShaderGroupHandlesNV")) return (void *)table->GetRayTracingShaderGroupHandlesNV;
1908 if (!strcmp(name, "GetAccelerationStructureHandleNV")) return (void *)table->GetAccelerationStructureHandleNV;
1909 if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesNV")) return (void *)table->CmdWriteAccelerationStructuresPropertiesNV;
1910 if (!strcmp(name, "CompileDeferredNV")) return (void *)table->CompileDeferredNV;
1911
1912 // ---- VK_EXT_external_memory_host extension commands
1913 if (!strcmp(name, "GetMemoryHostPointerPropertiesEXT")) return (void *)table->GetMemoryHostPointerPropertiesEXT;
1914
1915 // ---- VK_AMD_buffer_marker extension commands
1916 if (!strcmp(name, "CmdWriteBufferMarkerAMD")) return (void *)table->CmdWriteBufferMarkerAMD;
1917
1918 // ---- VK_EXT_calibrated_timestamps extension commands
1919 if (!strcmp(name, "GetCalibratedTimestampsEXT")) return (void *)table->GetCalibratedTimestampsEXT;
1920
1921 // ---- VK_NV_mesh_shader extension commands
1922 if (!strcmp(name, "CmdDrawMeshTasksNV")) return (void *)table->CmdDrawMeshTasksNV;
1923 if (!strcmp(name, "CmdDrawMeshTasksIndirectNV")) return (void *)table->CmdDrawMeshTasksIndirectNV;
1924 if (!strcmp(name, "CmdDrawMeshTasksIndirectCountNV")) return (void *)table->CmdDrawMeshTasksIndirectCountNV;
1925
1926 // ---- VK_NV_scissor_exclusive extension commands
1927 if (!strcmp(name, "CmdSetExclusiveScissorNV")) return (void *)table->CmdSetExclusiveScissorNV;
1928
1929 // ---- VK_NV_device_diagnostic_checkpoints extension commands
1930 if (!strcmp(name, "CmdSetCheckpointNV")) return (void *)table->CmdSetCheckpointNV;
1931 if (!strcmp(name, "GetQueueCheckpointDataNV")) return (void *)table->GetQueueCheckpointDataNV;
1932
1933 // ---- VK_INTEL_performance_query extension commands
1934 if (!strcmp(name, "InitializePerformanceApiINTEL")) return (void *)table->InitializePerformanceApiINTEL;
1935 if (!strcmp(name, "UninitializePerformanceApiINTEL")) return (void *)table->UninitializePerformanceApiINTEL;
1936 if (!strcmp(name, "CmdSetPerformanceMarkerINTEL")) return (void *)table->CmdSetPerformanceMarkerINTEL;
1937 if (!strcmp(name, "CmdSetPerformanceStreamMarkerINTEL")) return (void *)table->CmdSetPerformanceStreamMarkerINTEL;
1938 if (!strcmp(name, "CmdSetPerformanceOverrideINTEL")) return (void *)table->CmdSetPerformanceOverrideINTEL;
1939 if (!strcmp(name, "AcquirePerformanceConfigurationINTEL")) return (void *)table->AcquirePerformanceConfigurationINTEL;
1940 if (!strcmp(name, "ReleasePerformanceConfigurationINTEL")) return (void *)table->ReleasePerformanceConfigurationINTEL;
1941 if (!strcmp(name, "QueueSetPerformanceConfigurationINTEL")) return (void *)table->QueueSetPerformanceConfigurationINTEL;
1942 if (!strcmp(name, "GetPerformanceParameterINTEL")) return (void *)table->GetPerformanceParameterINTEL;
1943
1944 // ---- VK_AMD_display_native_hdr extension commands
1945 if (!strcmp(name, "SetLocalDimmingAMD")) return (void *)table->SetLocalDimmingAMD;
1946
1947 // ---- VK_EXT_buffer_device_address extension commands
1948 if (!strcmp(name, "GetBufferDeviceAddressEXT")) return (void *)table->GetBufferDeviceAddressEXT;
1949
1950 // ---- VK_EXT_full_screen_exclusive extension commands
1951 #ifdef VK_USE_PLATFORM_WIN32_KHR
1952 if (!strcmp(name, "AcquireFullScreenExclusiveModeEXT")) return (void *)table->AcquireFullScreenExclusiveModeEXT;
1953 #endif // VK_USE_PLATFORM_WIN32_KHR
1954 #ifdef VK_USE_PLATFORM_WIN32_KHR
1955 if (!strcmp(name, "ReleaseFullScreenExclusiveModeEXT")) return (void *)table->ReleaseFullScreenExclusiveModeEXT;
1956 #endif // VK_USE_PLATFORM_WIN32_KHR
1957 #ifdef VK_USE_PLATFORM_WIN32_KHR
1958 if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) return (void *)table->GetDeviceGroupSurfacePresentModes2EXT;
1959 #endif // VK_USE_PLATFORM_WIN32_KHR
1960
1961 // ---- VK_EXT_line_rasterization extension commands
1962 if (!strcmp(name, "CmdSetLineStippleEXT")) return (void *)table->CmdSetLineStippleEXT;
1963
1964 // ---- VK_EXT_host_query_reset extension commands
1965 if (!strcmp(name, "ResetQueryPoolEXT")) return (void *)table->ResetQueryPoolEXT;
1966
1967 // ---- VK_EXT_extended_dynamic_state extension commands
1968 if (!strcmp(name, "CmdSetCullModeEXT")) return (void *)table->CmdSetCullModeEXT;
1969 if (!strcmp(name, "CmdSetFrontFaceEXT")) return (void *)table->CmdSetFrontFaceEXT;
1970 if (!strcmp(name, "CmdSetPrimitiveTopologyEXT")) return (void *)table->CmdSetPrimitiveTopologyEXT;
1971 if (!strcmp(name, "CmdSetViewportWithCountEXT")) return (void *)table->CmdSetViewportWithCountEXT;
1972 if (!strcmp(name, "CmdSetScissorWithCountEXT")) return (void *)table->CmdSetScissorWithCountEXT;
1973 if (!strcmp(name, "CmdBindVertexBuffers2EXT")) return (void *)table->CmdBindVertexBuffers2EXT;
1974 if (!strcmp(name, "CmdSetDepthTestEnableEXT")) return (void *)table->CmdSetDepthTestEnableEXT;
1975 if (!strcmp(name, "CmdSetDepthWriteEnableEXT")) return (void *)table->CmdSetDepthWriteEnableEXT;
1976 if (!strcmp(name, "CmdSetDepthCompareOpEXT")) return (void *)table->CmdSetDepthCompareOpEXT;
1977 if (!strcmp(name, "CmdSetDepthBoundsTestEnableEXT")) return (void *)table->CmdSetDepthBoundsTestEnableEXT;
1978 if (!strcmp(name, "CmdSetStencilTestEnableEXT")) return (void *)table->CmdSetStencilTestEnableEXT;
1979 if (!strcmp(name, "CmdSetStencilOpEXT")) return (void *)table->CmdSetStencilOpEXT;
1980
1981 // ---- VK_NV_device_generated_commands extension commands
1982 if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsNV")) return (void *)table->GetGeneratedCommandsMemoryRequirementsNV;
1983 if (!strcmp(name, "CmdPreprocessGeneratedCommandsNV")) return (void *)table->CmdPreprocessGeneratedCommandsNV;
1984 if (!strcmp(name, "CmdExecuteGeneratedCommandsNV")) return (void *)table->CmdExecuteGeneratedCommandsNV;
1985 if (!strcmp(name, "CmdBindPipelineShaderGroupNV")) return (void *)table->CmdBindPipelineShaderGroupNV;
1986 if (!strcmp(name, "CreateIndirectCommandsLayoutNV")) return (void *)table->CreateIndirectCommandsLayoutNV;
1987 if (!strcmp(name, "DestroyIndirectCommandsLayoutNV")) return (void *)table->DestroyIndirectCommandsLayoutNV;
1988
1989 // ---- VK_EXT_private_data extension commands
1990 if (!strcmp(name, "CreatePrivateDataSlotEXT")) return (void *)table->CreatePrivateDataSlotEXT;
1991 if (!strcmp(name, "DestroyPrivateDataSlotEXT")) return (void *)table->DestroyPrivateDataSlotEXT;
1992 if (!strcmp(name, "SetPrivateDataEXT")) return (void *)table->SetPrivateDataEXT;
1993 if (!strcmp(name, "GetPrivateDataEXT")) return (void *)table->GetPrivateDataEXT;
1994
1995 // ---- VK_EXT_metal_objects extension commands
1996 #ifdef VK_USE_PLATFORM_METAL_EXT
1997 if (!strcmp(name, "ExportMetalObjectsEXT")) return (void *)table->ExportMetalObjectsEXT;
1998 #endif // VK_USE_PLATFORM_METAL_EXT
1999
2000 // ---- VK_NV_fragment_shading_rate_enums extension commands
2001 if (!strcmp(name, "CmdSetFragmentShadingRateEnumNV")) return (void *)table->CmdSetFragmentShadingRateEnumNV;
2002
2003 // ---- VK_EXT_image_compression_control extension commands
2004 if (!strcmp(name, "GetImageSubresourceLayout2EXT")) return (void *)table->GetImageSubresourceLayout2EXT;
2005
2006 // ---- VK_EXT_device_fault extension commands
2007 if (!strcmp(name, "GetDeviceFaultInfoEXT")) return (void *)table->GetDeviceFaultInfoEXT;
2008
2009 // ---- VK_EXT_vertex_input_dynamic_state extension commands
2010 if (!strcmp(name, "CmdSetVertexInputEXT")) return (void *)table->CmdSetVertexInputEXT;
2011
2012 // ---- VK_FUCHSIA_external_memory extension commands
2013 #ifdef VK_USE_PLATFORM_FUCHSIA
2014 if (!strcmp(name, "GetMemoryZirconHandleFUCHSIA")) return (void *)table->GetMemoryZirconHandleFUCHSIA;
2015 #endif // VK_USE_PLATFORM_FUCHSIA
2016 #ifdef VK_USE_PLATFORM_FUCHSIA
2017 if (!strcmp(name, "GetMemoryZirconHandlePropertiesFUCHSIA")) return (void *)table->GetMemoryZirconHandlePropertiesFUCHSIA;
2018 #endif // VK_USE_PLATFORM_FUCHSIA
2019
2020 // ---- VK_FUCHSIA_external_semaphore extension commands
2021 #ifdef VK_USE_PLATFORM_FUCHSIA
2022 if (!strcmp(name, "ImportSemaphoreZirconHandleFUCHSIA")) return (void *)table->ImportSemaphoreZirconHandleFUCHSIA;
2023 #endif // VK_USE_PLATFORM_FUCHSIA
2024 #ifdef VK_USE_PLATFORM_FUCHSIA
2025 if (!strcmp(name, "GetSemaphoreZirconHandleFUCHSIA")) return (void *)table->GetSemaphoreZirconHandleFUCHSIA;
2026 #endif // VK_USE_PLATFORM_FUCHSIA
2027
2028 // ---- VK_FUCHSIA_buffer_collection extension commands
2029 #ifdef VK_USE_PLATFORM_FUCHSIA
2030 if (!strcmp(name, "CreateBufferCollectionFUCHSIA")) return (void *)table->CreateBufferCollectionFUCHSIA;
2031 #endif // VK_USE_PLATFORM_FUCHSIA
2032 #ifdef VK_USE_PLATFORM_FUCHSIA
2033 if (!strcmp(name, "SetBufferCollectionImageConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionImageConstraintsFUCHSIA;
2034 #endif // VK_USE_PLATFORM_FUCHSIA
2035 #ifdef VK_USE_PLATFORM_FUCHSIA
2036 if (!strcmp(name, "SetBufferCollectionBufferConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionBufferConstraintsFUCHSIA;
2037 #endif // VK_USE_PLATFORM_FUCHSIA
2038 #ifdef VK_USE_PLATFORM_FUCHSIA
2039 if (!strcmp(name, "DestroyBufferCollectionFUCHSIA")) return (void *)table->DestroyBufferCollectionFUCHSIA;
2040 #endif // VK_USE_PLATFORM_FUCHSIA
2041 #ifdef VK_USE_PLATFORM_FUCHSIA
2042 if (!strcmp(name, "GetBufferCollectionPropertiesFUCHSIA")) return (void *)table->GetBufferCollectionPropertiesFUCHSIA;
2043 #endif // VK_USE_PLATFORM_FUCHSIA
2044
2045 // ---- VK_HUAWEI_subpass_shading extension commands
2046 if (!strcmp(name, "GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) return (void *)table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
2047 if (!strcmp(name, "CmdSubpassShadingHUAWEI")) return (void *)table->CmdSubpassShadingHUAWEI;
2048
2049 // ---- VK_HUAWEI_invocation_mask extension commands
2050 if (!strcmp(name, "CmdBindInvocationMaskHUAWEI")) return (void *)table->CmdBindInvocationMaskHUAWEI;
2051
2052 // ---- VK_NV_external_memory_rdma extension commands
2053 if (!strcmp(name, "GetMemoryRemoteAddressNV")) return (void *)table->GetMemoryRemoteAddressNV;
2054
2055 // ---- VK_EXT_pipeline_properties extension commands
2056 if (!strcmp(name, "GetPipelinePropertiesEXT")) return (void *)table->GetPipelinePropertiesEXT;
2057
2058 // ---- VK_EXT_extended_dynamic_state2 extension commands
2059 if (!strcmp(name, "CmdSetPatchControlPointsEXT")) return (void *)table->CmdSetPatchControlPointsEXT;
2060 if (!strcmp(name, "CmdSetRasterizerDiscardEnableEXT")) return (void *)table->CmdSetRasterizerDiscardEnableEXT;
2061 if (!strcmp(name, "CmdSetDepthBiasEnableEXT")) return (void *)table->CmdSetDepthBiasEnableEXT;
2062 if (!strcmp(name, "CmdSetLogicOpEXT")) return (void *)table->CmdSetLogicOpEXT;
2063 if (!strcmp(name, "CmdSetPrimitiveRestartEnableEXT")) return (void *)table->CmdSetPrimitiveRestartEnableEXT;
2064
2065 // ---- VK_EXT_color_write_enable extension commands
2066 if (!strcmp(name, "CmdSetColorWriteEnableEXT")) return (void *)table->CmdSetColorWriteEnableEXT;
2067
2068 // ---- VK_EXT_multi_draw extension commands
2069 if (!strcmp(name, "CmdDrawMultiEXT")) return (void *)table->CmdDrawMultiEXT;
2070 if (!strcmp(name, "CmdDrawMultiIndexedEXT")) return (void *)table->CmdDrawMultiIndexedEXT;
2071
2072 // ---- VK_EXT_opacity_micromap extension commands
2073 if (!strcmp(name, "CreateMicromapEXT")) return (void *)table->CreateMicromapEXT;
2074 if (!strcmp(name, "DestroyMicromapEXT")) return (void *)table->DestroyMicromapEXT;
2075 if (!strcmp(name, "CmdBuildMicromapsEXT")) return (void *)table->CmdBuildMicromapsEXT;
2076 if (!strcmp(name, "BuildMicromapsEXT")) return (void *)table->BuildMicromapsEXT;
2077 if (!strcmp(name, "CopyMicromapEXT")) return (void *)table->CopyMicromapEXT;
2078 if (!strcmp(name, "CopyMicromapToMemoryEXT")) return (void *)table->CopyMicromapToMemoryEXT;
2079 if (!strcmp(name, "CopyMemoryToMicromapEXT")) return (void *)table->CopyMemoryToMicromapEXT;
2080 if (!strcmp(name, "WriteMicromapsPropertiesEXT")) return (void *)table->WriteMicromapsPropertiesEXT;
2081 if (!strcmp(name, "CmdCopyMicromapEXT")) return (void *)table->CmdCopyMicromapEXT;
2082 if (!strcmp(name, "CmdCopyMicromapToMemoryEXT")) return (void *)table->CmdCopyMicromapToMemoryEXT;
2083 if (!strcmp(name, "CmdCopyMemoryToMicromapEXT")) return (void *)table->CmdCopyMemoryToMicromapEXT;
2084 if (!strcmp(name, "CmdWriteMicromapsPropertiesEXT")) return (void *)table->CmdWriteMicromapsPropertiesEXT;
2085 if (!strcmp(name, "GetDeviceMicromapCompatibilityEXT")) return (void *)table->GetDeviceMicromapCompatibilityEXT;
2086 if (!strcmp(name, "GetMicromapBuildSizesEXT")) return (void *)table->GetMicromapBuildSizesEXT;
2087
2088 // ---- VK_EXT_pageable_device_local_memory extension commands
2089 if (!strcmp(name, "SetDeviceMemoryPriorityEXT")) return (void *)table->SetDeviceMemoryPriorityEXT;
2090
2091 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
2092 if (!strcmp(name, "GetDescriptorSetLayoutHostMappingInfoVALVE")) return (void *)table->GetDescriptorSetLayoutHostMappingInfoVALVE;
2093 if (!strcmp(name, "GetDescriptorSetHostMappingVALVE")) return (void *)table->GetDescriptorSetHostMappingVALVE;
2094
2095 // ---- VK_EXT_extended_dynamic_state3 extension commands
2096 if (!strcmp(name, "CmdSetTessellationDomainOriginEXT")) return (void *)table->CmdSetTessellationDomainOriginEXT;
2097 if (!strcmp(name, "CmdSetDepthClampEnableEXT")) return (void *)table->CmdSetDepthClampEnableEXT;
2098 if (!strcmp(name, "CmdSetPolygonModeEXT")) return (void *)table->CmdSetPolygonModeEXT;
2099 if (!strcmp(name, "CmdSetRasterizationSamplesEXT")) return (void *)table->CmdSetRasterizationSamplesEXT;
2100 if (!strcmp(name, "CmdSetSampleMaskEXT")) return (void *)table->CmdSetSampleMaskEXT;
2101 if (!strcmp(name, "CmdSetAlphaToCoverageEnableEXT")) return (void *)table->CmdSetAlphaToCoverageEnableEXT;
2102 if (!strcmp(name, "CmdSetAlphaToOneEnableEXT")) return (void *)table->CmdSetAlphaToOneEnableEXT;
2103 if (!strcmp(name, "CmdSetLogicOpEnableEXT")) return (void *)table->CmdSetLogicOpEnableEXT;
2104 if (!strcmp(name, "CmdSetColorBlendEnableEXT")) return (void *)table->CmdSetColorBlendEnableEXT;
2105 if (!strcmp(name, "CmdSetColorBlendEquationEXT")) return (void *)table->CmdSetColorBlendEquationEXT;
2106 if (!strcmp(name, "CmdSetColorWriteMaskEXT")) return (void *)table->CmdSetColorWriteMaskEXT;
2107 if (!strcmp(name, "CmdSetRasterizationStreamEXT")) return (void *)table->CmdSetRasterizationStreamEXT;
2108 if (!strcmp(name, "CmdSetConservativeRasterizationModeEXT")) return (void *)table->CmdSetConservativeRasterizationModeEXT;
2109 if (!strcmp(name, "CmdSetExtraPrimitiveOverestimationSizeEXT")) return (void *)table->CmdSetExtraPrimitiveOverestimationSizeEXT;
2110 if (!strcmp(name, "CmdSetDepthClipEnableEXT")) return (void *)table->CmdSetDepthClipEnableEXT;
2111 if (!strcmp(name, "CmdSetSampleLocationsEnableEXT")) return (void *)table->CmdSetSampleLocationsEnableEXT;
2112 if (!strcmp(name, "CmdSetColorBlendAdvancedEXT")) return (void *)table->CmdSetColorBlendAdvancedEXT;
2113 if (!strcmp(name, "CmdSetProvokingVertexModeEXT")) return (void *)table->CmdSetProvokingVertexModeEXT;
2114 if (!strcmp(name, "CmdSetLineRasterizationModeEXT")) return (void *)table->CmdSetLineRasterizationModeEXT;
2115 if (!strcmp(name, "CmdSetLineStippleEnableEXT")) return (void *)table->CmdSetLineStippleEnableEXT;
2116 if (!strcmp(name, "CmdSetDepthClipNegativeOneToOneEXT")) return (void *)table->CmdSetDepthClipNegativeOneToOneEXT;
2117 if (!strcmp(name, "CmdSetViewportWScalingEnableNV")) return (void *)table->CmdSetViewportWScalingEnableNV;
2118 if (!strcmp(name, "CmdSetViewportSwizzleNV")) return (void *)table->CmdSetViewportSwizzleNV;
2119 if (!strcmp(name, "CmdSetCoverageToColorEnableNV")) return (void *)table->CmdSetCoverageToColorEnableNV;
2120 if (!strcmp(name, "CmdSetCoverageToColorLocationNV")) return (void *)table->CmdSetCoverageToColorLocationNV;
2121 if (!strcmp(name, "CmdSetCoverageModulationModeNV")) return (void *)table->CmdSetCoverageModulationModeNV;
2122 if (!strcmp(name, "CmdSetCoverageModulationTableEnableNV")) return (void *)table->CmdSetCoverageModulationTableEnableNV;
2123 if (!strcmp(name, "CmdSetCoverageModulationTableNV")) return (void *)table->CmdSetCoverageModulationTableNV;
2124 if (!strcmp(name, "CmdSetShadingRateImageEnableNV")) return (void *)table->CmdSetShadingRateImageEnableNV;
2125 if (!strcmp(name, "CmdSetRepresentativeFragmentTestEnableNV")) return (void *)table->CmdSetRepresentativeFragmentTestEnableNV;
2126 if (!strcmp(name, "CmdSetCoverageReductionModeNV")) return (void *)table->CmdSetCoverageReductionModeNV;
2127
2128 // ---- VK_EXT_shader_module_identifier extension commands
2129 if (!strcmp(name, "GetShaderModuleIdentifierEXT")) return (void *)table->GetShaderModuleIdentifierEXT;
2130 if (!strcmp(name, "GetShaderModuleCreateInfoIdentifierEXT")) return (void *)table->GetShaderModuleCreateInfoIdentifierEXT;
2131
2132 // ---- VK_NV_optical_flow extension commands
2133 if (!strcmp(name, "CreateOpticalFlowSessionNV")) return (void *)table->CreateOpticalFlowSessionNV;
2134 if (!strcmp(name, "DestroyOpticalFlowSessionNV")) return (void *)table->DestroyOpticalFlowSessionNV;
2135 if (!strcmp(name, "BindOpticalFlowSessionImageNV")) return (void *)table->BindOpticalFlowSessionImageNV;
2136 if (!strcmp(name, "CmdOpticalFlowExecuteNV")) return (void *)table->CmdOpticalFlowExecuteNV;
2137
2138 // ---- VK_QCOM_tile_properties extension commands
2139 if (!strcmp(name, "GetFramebufferTilePropertiesQCOM")) return (void *)table->GetFramebufferTilePropertiesQCOM;
2140 if (!strcmp(name, "GetDynamicRenderingTilePropertiesQCOM")) return (void *)table->GetDynamicRenderingTilePropertiesQCOM;
2141
2142 // ---- VK_OHOS_native_buffer extension commands
2143 #ifdef VK_USE_PLATFORM_OHOS
2144 if (!strcmp(name, "SetNativeFenceFdOpenHarmony")) return (void *)table->SetNativeFenceFdOpenHarmony;
2145 #endif // VK_USE_PLATFORM_OHOS
2146 #ifdef VK_USE_PLATFORM_OHOS
2147 if (!strcmp(name, "GetNativeFenceFdOpenHarmony")) return (void *)table->GetNativeFenceFdOpenHarmony;
2148 #endif // VK_USE_PLATFORM_OHOS
2149 #ifdef VK_USE_PLATFORM_OHOS
2150 if (!strcmp(name, "GetSwapchainGrallocUsageOHOS")) return (void *)table->GetSwapchainGrallocUsageOHOS;
2151 #endif // VK_USE_PLATFORM_OHOS
2152 #ifdef VK_USE_PLATFORM_OHOS
2153 if (!strcmp(name, "AcquireImageOHOS")) return (void *)table->AcquireImageOHOS;
2154 #endif // VK_USE_PLATFORM_OHOS
2155 #ifdef VK_USE_PLATFORM_OHOS
2156 if (!strcmp(name, "QueueSignalReleaseImageOHOS")) return (void *)table->QueueSignalReleaseImageOHOS;
2157 #endif // VK_USE_PLATFORM_OHOS
2158
2159 // ---- VK_OHOS_external_memory extension commands
2160 #ifdef VK_USE_PLATFORM_OHOS
2161 if (!strcmp(name, "GetNativeBufferPropertiesOHOS")) return (void *)table->GetNativeBufferPropertiesOHOS;
2162 #endif // VK_USE_PLATFORM_OHOS
2163 #ifdef VK_USE_PLATFORM_OHOS
2164 if (!strcmp(name, "GetMemoryNativeBufferOHOS")) return (void *)table->GetMemoryNativeBufferOHOS;
2165 #endif // VK_USE_PLATFORM_OHOS
2166
2167 // ---- VK_KHR_acceleration_structure extension commands
2168 if (!strcmp(name, "CreateAccelerationStructureKHR")) return (void *)table->CreateAccelerationStructureKHR;
2169 if (!strcmp(name, "DestroyAccelerationStructureKHR")) return (void *)table->DestroyAccelerationStructureKHR;
2170 if (!strcmp(name, "CmdBuildAccelerationStructuresKHR")) return (void *)table->CmdBuildAccelerationStructuresKHR;
2171 if (!strcmp(name, "CmdBuildAccelerationStructuresIndirectKHR")) return (void *)table->CmdBuildAccelerationStructuresIndirectKHR;
2172 if (!strcmp(name, "BuildAccelerationStructuresKHR")) return (void *)table->BuildAccelerationStructuresKHR;
2173 if (!strcmp(name, "CopyAccelerationStructureKHR")) return (void *)table->CopyAccelerationStructureKHR;
2174 if (!strcmp(name, "CopyAccelerationStructureToMemoryKHR")) return (void *)table->CopyAccelerationStructureToMemoryKHR;
2175 if (!strcmp(name, "CopyMemoryToAccelerationStructureKHR")) return (void *)table->CopyMemoryToAccelerationStructureKHR;
2176 if (!strcmp(name, "WriteAccelerationStructuresPropertiesKHR")) return (void *)table->WriteAccelerationStructuresPropertiesKHR;
2177 if (!strcmp(name, "CmdCopyAccelerationStructureKHR")) return (void *)table->CmdCopyAccelerationStructureKHR;
2178 if (!strcmp(name, "CmdCopyAccelerationStructureToMemoryKHR")) return (void *)table->CmdCopyAccelerationStructureToMemoryKHR;
2179 if (!strcmp(name, "CmdCopyMemoryToAccelerationStructureKHR")) return (void *)table->CmdCopyMemoryToAccelerationStructureKHR;
2180 if (!strcmp(name, "GetAccelerationStructureDeviceAddressKHR")) return (void *)table->GetAccelerationStructureDeviceAddressKHR;
2181 if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesKHR")) return (void *)table->CmdWriteAccelerationStructuresPropertiesKHR;
2182 if (!strcmp(name, "GetDeviceAccelerationStructureCompatibilityKHR")) return (void *)table->GetDeviceAccelerationStructureCompatibilityKHR;
2183 if (!strcmp(name, "GetAccelerationStructureBuildSizesKHR")) return (void *)table->GetAccelerationStructureBuildSizesKHR;
2184
2185 // ---- VK_KHR_ray_tracing_pipeline extension commands
2186 if (!strcmp(name, "CmdTraceRaysKHR")) return (void *)table->CmdTraceRaysKHR;
2187 if (!strcmp(name, "CreateRayTracingPipelinesKHR")) return (void *)table->CreateRayTracingPipelinesKHR;
2188 if (!strcmp(name, "GetRayTracingCaptureReplayShaderGroupHandlesKHR")) return (void *)table->GetRayTracingCaptureReplayShaderGroupHandlesKHR;
2189 if (!strcmp(name, "CmdTraceRaysIndirectKHR")) return (void *)table->CmdTraceRaysIndirectKHR;
2190 if (!strcmp(name, "GetRayTracingShaderGroupStackSizeKHR")) return (void *)table->GetRayTracingShaderGroupStackSizeKHR;
2191 if (!strcmp(name, "CmdSetRayTracingPipelineStackSizeKHR")) return (void *)table->CmdSetRayTracingPipelineStackSizeKHR;
2192
2193 // ---- VK_EXT_mesh_shader extension commands
2194 if (!strcmp(name, "CmdDrawMeshTasksEXT")) return (void *)table->CmdDrawMeshTasksEXT;
2195 if (!strcmp(name, "CmdDrawMeshTasksIndirectEXT")) return (void *)table->CmdDrawMeshTasksIndirectEXT;
2196 if (!strcmp(name, "CmdDrawMeshTasksIndirectCountEXT")) return (void *)table->CmdDrawMeshTasksIndirectCountEXT;
2197
2198 return NULL;
2199 }
2200
2201 // Instance command lookup function
loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable * table,const char * name,bool * found_name)2202 VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable *table, const char *name,
2203 bool *found_name) {
2204 if (!name || name[0] != 'v' || name[1] != 'k') {
2205 *found_name = false;
2206 return NULL;
2207 }
2208
2209 *found_name = true;
2210 name += 2;
2211
2212 // ---- Core 1_0 commands
2213 if (!strcmp(name, "DestroyInstance")) return (void *)table->DestroyInstance;
2214 if (!strcmp(name, "EnumeratePhysicalDevices")) return (void *)table->EnumeratePhysicalDevices;
2215 if (!strcmp(name, "GetPhysicalDeviceFeatures")) return (void *)table->GetPhysicalDeviceFeatures;
2216 if (!strcmp(name, "GetPhysicalDeviceFormatProperties")) return (void *)table->GetPhysicalDeviceFormatProperties;
2217 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties")) return (void *)table->GetPhysicalDeviceImageFormatProperties;
2218 if (!strcmp(name, "GetPhysicalDeviceProperties")) return (void *)table->GetPhysicalDeviceProperties;
2219 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties;
2220 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties")) return (void *)table->GetPhysicalDeviceMemoryProperties;
2221 if (!strcmp(name, "GetInstanceProcAddr")) return (void *)table->GetInstanceProcAddr;
2222 if (!strcmp(name, "EnumerateDeviceExtensionProperties")) return (void *)table->EnumerateDeviceExtensionProperties;
2223 if (!strcmp(name, "EnumerateDeviceLayerProperties")) return (void *)table->EnumerateDeviceLayerProperties;
2224 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties;
2225
2226 // ---- Core 1_1 commands
2227 if (!strcmp(name, "EnumeratePhysicalDeviceGroups")) return (void *)table->EnumeratePhysicalDeviceGroups;
2228 if (!strcmp(name, "GetPhysicalDeviceFeatures2")) return (void *)table->GetPhysicalDeviceFeatures2;
2229 if (!strcmp(name, "GetPhysicalDeviceProperties2")) return (void *)table->GetPhysicalDeviceProperties2;
2230 if (!strcmp(name, "GetPhysicalDeviceFormatProperties2")) return (void *)table->GetPhysicalDeviceFormatProperties2;
2231 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2")) return (void *)table->GetPhysicalDeviceImageFormatProperties2;
2232 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2;
2233 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2")) return (void *)table->GetPhysicalDeviceMemoryProperties2;
2234 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2;
2235 if (!strcmp(name, "GetPhysicalDeviceExternalBufferProperties")) return (void *)table->GetPhysicalDeviceExternalBufferProperties;
2236 if (!strcmp(name, "GetPhysicalDeviceExternalFenceProperties")) return (void *)table->GetPhysicalDeviceExternalFenceProperties;
2237 if (!strcmp(name, "GetPhysicalDeviceExternalSemaphoreProperties")) return (void *)table->GetPhysicalDeviceExternalSemaphoreProperties;
2238
2239 // ---- Core 1_3 commands
2240 if (!strcmp(name, "GetPhysicalDeviceToolProperties")) return (void *)table->GetPhysicalDeviceToolProperties;
2241
2242 // ---- VK_KHR_surface extension commands
2243 if (!strcmp(name, "DestroySurfaceKHR")) return (void *)table->DestroySurfaceKHR;
2244 if (!strcmp(name, "GetPhysicalDeviceSurfaceSupportKHR")) return (void *)table->GetPhysicalDeviceSurfaceSupportKHR;
2245 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilitiesKHR;
2246 if (!strcmp(name, "GetPhysicalDeviceSurfaceFormatsKHR")) return (void *)table->GetPhysicalDeviceSurfaceFormatsKHR;
2247 if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModesKHR")) return (void *)table->GetPhysicalDeviceSurfacePresentModesKHR;
2248
2249 // ---- VK_KHR_swapchain extension commands
2250 if (!strcmp(name, "GetPhysicalDevicePresentRectanglesKHR")) return (void *)table->GetPhysicalDevicePresentRectanglesKHR;
2251
2252 // ---- VK_KHR_display extension commands
2253 if (!strcmp(name, "GetPhysicalDeviceDisplayPropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPropertiesKHR;
2254 if (!strcmp(name, "GetPhysicalDeviceDisplayPlanePropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPlanePropertiesKHR;
2255 if (!strcmp(name, "GetDisplayPlaneSupportedDisplaysKHR")) return (void *)table->GetDisplayPlaneSupportedDisplaysKHR;
2256 if (!strcmp(name, "GetDisplayModePropertiesKHR")) return (void *)table->GetDisplayModePropertiesKHR;
2257 if (!strcmp(name, "CreateDisplayModeKHR")) return (void *)table->CreateDisplayModeKHR;
2258 if (!strcmp(name, "GetDisplayPlaneCapabilitiesKHR")) return (void *)table->GetDisplayPlaneCapabilitiesKHR;
2259 if (!strcmp(name, "CreateDisplayPlaneSurfaceKHR")) return (void *)table->CreateDisplayPlaneSurfaceKHR;
2260
2261 // ---- VK_KHR_xlib_surface extension commands
2262 #ifdef VK_USE_PLATFORM_XLIB_KHR
2263 if (!strcmp(name, "CreateXlibSurfaceKHR")) return (void *)table->CreateXlibSurfaceKHR;
2264 #endif // VK_USE_PLATFORM_XLIB_KHR
2265 #ifdef VK_USE_PLATFORM_XLIB_KHR
2266 if (!strcmp(name, "GetPhysicalDeviceXlibPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXlibPresentationSupportKHR;
2267 #endif // VK_USE_PLATFORM_XLIB_KHR
2268
2269 // ---- VK_KHR_xcb_surface extension commands
2270 #ifdef VK_USE_PLATFORM_XCB_KHR
2271 if (!strcmp(name, "CreateXcbSurfaceKHR")) return (void *)table->CreateXcbSurfaceKHR;
2272 #endif // VK_USE_PLATFORM_XCB_KHR
2273 #ifdef VK_USE_PLATFORM_XCB_KHR
2274 if (!strcmp(name, "GetPhysicalDeviceXcbPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXcbPresentationSupportKHR;
2275 #endif // VK_USE_PLATFORM_XCB_KHR
2276
2277 // ---- VK_KHR_wayland_surface extension commands
2278 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
2279 if (!strcmp(name, "CreateWaylandSurfaceKHR")) return (void *)table->CreateWaylandSurfaceKHR;
2280 #endif // VK_USE_PLATFORM_WAYLAND_KHR
2281 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
2282 if (!strcmp(name, "GetPhysicalDeviceWaylandPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWaylandPresentationSupportKHR;
2283 #endif // VK_USE_PLATFORM_WAYLAND_KHR
2284
2285 // ---- VK_KHR_android_surface extension commands
2286 #ifdef VK_USE_PLATFORM_ANDROID_KHR
2287 if (!strcmp(name, "CreateAndroidSurfaceKHR")) return (void *)table->CreateAndroidSurfaceKHR;
2288 #endif // VK_USE_PLATFORM_ANDROID_KHR
2289
2290 // ---- VK_KHR_win32_surface extension commands
2291 #ifdef VK_USE_PLATFORM_WIN32_KHR
2292 if (!strcmp(name, "CreateWin32SurfaceKHR")) return (void *)table->CreateWin32SurfaceKHR;
2293 #endif // VK_USE_PLATFORM_WIN32_KHR
2294 #ifdef VK_USE_PLATFORM_WIN32_KHR
2295 if (!strcmp(name, "GetPhysicalDeviceWin32PresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWin32PresentationSupportKHR;
2296 #endif // VK_USE_PLATFORM_WIN32_KHR
2297
2298 // ---- VK_KHR_video_queue extension commands
2299 #ifdef VK_ENABLE_BETA_EXTENSIONS
2300 if (!strcmp(name, "GetPhysicalDeviceVideoCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceVideoCapabilitiesKHR;
2301 #endif // VK_ENABLE_BETA_EXTENSIONS
2302 #ifdef VK_ENABLE_BETA_EXTENSIONS
2303 if (!strcmp(name, "GetPhysicalDeviceVideoFormatPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoFormatPropertiesKHR;
2304 #endif // VK_ENABLE_BETA_EXTENSIONS
2305
2306 // ---- VK_KHR_get_physical_device_properties2 extension commands
2307 if (!strcmp(name, "GetPhysicalDeviceFeatures2KHR")) return (void *)table->GetPhysicalDeviceFeatures2KHR;
2308 if (!strcmp(name, "GetPhysicalDeviceProperties2KHR")) return (void *)table->GetPhysicalDeviceProperties2KHR;
2309 if (!strcmp(name, "GetPhysicalDeviceFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceFormatProperties2KHR;
2310 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceImageFormatProperties2KHR;
2311 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2KHR")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2KHR;
2312 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2KHR")) return (void *)table->GetPhysicalDeviceMemoryProperties2KHR;
2313 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2KHR;
2314
2315 // ---- VK_KHR_device_group_creation extension commands
2316 if (!strcmp(name, "EnumeratePhysicalDeviceGroupsKHR")) return (void *)table->EnumeratePhysicalDeviceGroupsKHR;
2317
2318 // ---- VK_KHR_external_memory_capabilities extension commands
2319 if (!strcmp(name, "GetPhysicalDeviceExternalBufferPropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalBufferPropertiesKHR;
2320
2321 // ---- VK_KHR_external_semaphore_capabilities extension commands
2322 if (!strcmp(name, "GetPhysicalDeviceExternalSemaphorePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalSemaphorePropertiesKHR;
2323
2324 // ---- VK_KHR_external_fence_capabilities extension commands
2325 if (!strcmp(name, "GetPhysicalDeviceExternalFencePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalFencePropertiesKHR;
2326
2327 // ---- VK_KHR_performance_query extension commands
2328 if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
2329 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) return (void *)table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
2330
2331 // ---- VK_KHR_get_surface_capabilities2 extension commands
2332 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2KHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2KHR;
2333 if (!strcmp(name, "GetPhysicalDeviceSurfaceFormats2KHR")) return (void *)table->GetPhysicalDeviceSurfaceFormats2KHR;
2334
2335 // ---- VK_KHR_get_display_properties2 extension commands
2336 if (!strcmp(name, "GetPhysicalDeviceDisplayProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayProperties2KHR;
2337 if (!strcmp(name, "GetPhysicalDeviceDisplayPlaneProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayPlaneProperties2KHR;
2338 if (!strcmp(name, "GetDisplayModeProperties2KHR")) return (void *)table->GetDisplayModeProperties2KHR;
2339 if (!strcmp(name, "GetDisplayPlaneCapabilities2KHR")) return (void *)table->GetDisplayPlaneCapabilities2KHR;
2340
2341 // ---- VK_KHR_fragment_shading_rate extension commands
2342 if (!strcmp(name, "GetPhysicalDeviceFragmentShadingRatesKHR")) return (void *)table->GetPhysicalDeviceFragmentShadingRatesKHR;
2343
2344 // ---- VK_EXT_debug_report extension commands
2345 if (!strcmp(name, "CreateDebugReportCallbackEXT")) return (void *)table->CreateDebugReportCallbackEXT;
2346 if (!strcmp(name, "DestroyDebugReportCallbackEXT")) return (void *)table->DestroyDebugReportCallbackEXT;
2347 if (!strcmp(name, "DebugReportMessageEXT")) return (void *)table->DebugReportMessageEXT;
2348
2349 // ---- VK_GGP_stream_descriptor_surface extension commands
2350 #ifdef VK_USE_PLATFORM_GGP
2351 if (!strcmp(name, "CreateStreamDescriptorSurfaceGGP")) return (void *)table->CreateStreamDescriptorSurfaceGGP;
2352 #endif // VK_USE_PLATFORM_GGP
2353
2354 // ---- VK_NV_external_memory_capabilities extension commands
2355 if (!strcmp(name, "GetPhysicalDeviceExternalImageFormatPropertiesNV")) return (void *)table->GetPhysicalDeviceExternalImageFormatPropertiesNV;
2356
2357 // ---- VK_NN_vi_surface extension commands
2358 #ifdef VK_USE_PLATFORM_VI_NN
2359 if (!strcmp(name, "CreateViSurfaceNN")) return (void *)table->CreateViSurfaceNN;
2360 #endif // VK_USE_PLATFORM_VI_NN
2361
2362 // ---- VK_EXT_direct_mode_display extension commands
2363 if (!strcmp(name, "ReleaseDisplayEXT")) return (void *)table->ReleaseDisplayEXT;
2364
2365 // ---- VK_EXT_acquire_xlib_display extension commands
2366 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
2367 if (!strcmp(name, "AcquireXlibDisplayEXT")) return (void *)table->AcquireXlibDisplayEXT;
2368 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
2369 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
2370 if (!strcmp(name, "GetRandROutputDisplayEXT")) return (void *)table->GetRandROutputDisplayEXT;
2371 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
2372
2373 // ---- VK_EXT_display_surface_counter extension commands
2374 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2EXT")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2EXT;
2375
2376 // ---- VK_MVK_ios_surface extension commands
2377 #ifdef VK_USE_PLATFORM_IOS_MVK
2378 if (!strcmp(name, "CreateIOSSurfaceMVK")) return (void *)table->CreateIOSSurfaceMVK;
2379 #endif // VK_USE_PLATFORM_IOS_MVK
2380
2381 // ---- VK_MVK_macos_surface extension commands
2382 #ifdef VK_USE_PLATFORM_MACOS_MVK
2383 if (!strcmp(name, "CreateMacOSSurfaceMVK")) return (void *)table->CreateMacOSSurfaceMVK;
2384 #endif // VK_USE_PLATFORM_MACOS_MVK
2385
2386 // ---- VK_EXT_debug_utils extension commands
2387 if (!strcmp(name, "CreateDebugUtilsMessengerEXT")) return (void *)table->CreateDebugUtilsMessengerEXT;
2388 if (!strcmp(name, "DestroyDebugUtilsMessengerEXT")) return (void *)table->DestroyDebugUtilsMessengerEXT;
2389 if (!strcmp(name, "SubmitDebugUtilsMessageEXT")) return (void *)table->SubmitDebugUtilsMessageEXT;
2390
2391 // ---- VK_EXT_sample_locations extension commands
2392 if (!strcmp(name, "GetPhysicalDeviceMultisamplePropertiesEXT")) return (void *)table->GetPhysicalDeviceMultisamplePropertiesEXT;
2393
2394 // ---- VK_EXT_calibrated_timestamps extension commands
2395 if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsEXT")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsEXT;
2396
2397 // ---- VK_FUCHSIA_imagepipe_surface extension commands
2398 #ifdef VK_USE_PLATFORM_FUCHSIA
2399 if (!strcmp(name, "CreateImagePipeSurfaceFUCHSIA")) return (void *)table->CreateImagePipeSurfaceFUCHSIA;
2400 #endif // VK_USE_PLATFORM_FUCHSIA
2401
2402 // ---- VK_EXT_metal_surface extension commands
2403 #ifdef VK_USE_PLATFORM_METAL_EXT
2404 if (!strcmp(name, "CreateMetalSurfaceEXT")) return (void *)table->CreateMetalSurfaceEXT;
2405 #endif // VK_USE_PLATFORM_METAL_EXT
2406
2407 // ---- VK_EXT_tooling_info extension commands
2408 if (!strcmp(name, "GetPhysicalDeviceToolPropertiesEXT")) return (void *)table->GetPhysicalDeviceToolPropertiesEXT;
2409
2410 // ---- VK_NV_cooperative_matrix extension commands
2411 if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesNV;
2412
2413 // ---- VK_NV_coverage_reduction_mode extension commands
2414 if (!strcmp(name, "GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) return (void *)table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
2415
2416 // ---- VK_EXT_full_screen_exclusive extension commands
2417 #ifdef VK_USE_PLATFORM_WIN32_KHR
2418 if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModes2EXT")) return (void *)table->GetPhysicalDeviceSurfacePresentModes2EXT;
2419 #endif // VK_USE_PLATFORM_WIN32_KHR
2420
2421 // ---- VK_EXT_headless_surface extension commands
2422 if (!strcmp(name, "CreateHeadlessSurfaceEXT")) return (void *)table->CreateHeadlessSurfaceEXT;
2423
2424 // ---- VK_EXT_acquire_drm_display extension commands
2425 if (!strcmp(name, "AcquireDrmDisplayEXT")) return (void *)table->AcquireDrmDisplayEXT;
2426 if (!strcmp(name, "GetDrmDisplayEXT")) return (void *)table->GetDrmDisplayEXT;
2427
2428 // ---- VK_NV_acquire_winrt_display extension commands
2429 #ifdef VK_USE_PLATFORM_WIN32_KHR
2430 if (!strcmp(name, "AcquireWinrtDisplayNV")) return (void *)table->AcquireWinrtDisplayNV;
2431 #endif // VK_USE_PLATFORM_WIN32_KHR
2432 #ifdef VK_USE_PLATFORM_WIN32_KHR
2433 if (!strcmp(name, "GetWinrtDisplayNV")) return (void *)table->GetWinrtDisplayNV;
2434 #endif // VK_USE_PLATFORM_WIN32_KHR
2435
2436 // ---- VK_EXT_directfb_surface extension commands
2437 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
2438 if (!strcmp(name, "CreateDirectFBSurfaceEXT")) return (void *)table->CreateDirectFBSurfaceEXT;
2439 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
2440 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
2441 if (!strcmp(name, "GetPhysicalDeviceDirectFBPresentationSupportEXT")) return (void *)table->GetPhysicalDeviceDirectFBPresentationSupportEXT;
2442 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
2443
2444 // ---- VK_QNX_screen_surface extension commands
2445 #ifdef VK_USE_PLATFORM_SCREEN_QNX
2446 if (!strcmp(name, "CreateScreenSurfaceQNX")) return (void *)table->CreateScreenSurfaceQNX;
2447 #endif // VK_USE_PLATFORM_SCREEN_QNX
2448 #ifdef VK_USE_PLATFORM_SCREEN_QNX
2449 if (!strcmp(name, "GetPhysicalDeviceScreenPresentationSupportQNX")) return (void *)table->GetPhysicalDeviceScreenPresentationSupportQNX;
2450 #endif // VK_USE_PLATFORM_SCREEN_QNX
2451
2452 // ---- VK_NV_optical_flow extension commands
2453 if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV;
2454
2455 // ---- VK_OHOS_surface extension commands
2456 #ifdef VK_USE_PLATFORM_OHOS
2457 if (!strcmp(name, "CreateSurfaceOHOS")) return (void *)table->CreateSurfaceOHOS;
2458 #endif // VK_USE_PLATFORM_OHOS
2459
2460 *found_name = false;
2461 return NULL;
2462 }
2463
2464
2465 // ---- VK_KHR_video_queue extension trampoline/terminators
2466
2467 #ifdef VK_ENABLE_BETA_EXTENSIONS
GetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice,const VkVideoProfileInfoKHR * pVideoProfile,VkVideoCapabilitiesKHR * pCapabilities)2468 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR(
2469 VkPhysicalDevice physicalDevice,
2470 const VkVideoProfileInfoKHR* pVideoProfile,
2471 VkVideoCapabilitiesKHR* pCapabilities) {
2472 const VkLayerInstanceDispatchTable *disp;
2473 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
2474 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
2475 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2476 "vkGetPhysicalDeviceVideoCapabilitiesKHR: Invalid physicalDevice "
2477 "[VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter]");
2478 abort(); /* Intentionally fail so user can correct issue. */
2479 }
2480 disp = loader_get_instance_layer_dispatch(physicalDevice);
2481 return disp->GetPhysicalDeviceVideoCapabilitiesKHR(unwrapped_phys_dev, pVideoProfile, pCapabilities);
2482 }
2483
terminator_GetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice,const VkVideoProfileInfoKHR * pVideoProfile,VkVideoCapabilitiesKHR * pCapabilities)2484 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoCapabilitiesKHR(
2485 VkPhysicalDevice physicalDevice,
2486 const VkVideoProfileInfoKHR* pVideoProfile,
2487 VkVideoCapabilitiesKHR* pCapabilities) {
2488 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
2489 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
2490 if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR) {
2491 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
2492 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoCapabilitiesKHR");
2493 abort(); /* Intentionally fail so user can correct issue. */
2494 }
2495 return icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR(phys_dev_term->phys_dev, pVideoProfile, pCapabilities);
2496 }
2497
2498 #endif // VK_ENABLE_BETA_EXTENSIONS
2499 #ifdef VK_ENABLE_BETA_EXTENSIONS
GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VkVideoFormatPropertiesKHR * pVideoFormatProperties)2500 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR(
2501 VkPhysicalDevice physicalDevice,
2502 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
2503 uint32_t* pVideoFormatPropertyCount,
2504 VkVideoFormatPropertiesKHR* pVideoFormatProperties) {
2505 const VkLayerInstanceDispatchTable *disp;
2506 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
2507 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
2508 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2509 "vkGetPhysicalDeviceVideoFormatPropertiesKHR: Invalid physicalDevice "
2510 "[VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter]");
2511 abort(); /* Intentionally fail so user can correct issue. */
2512 }
2513 disp = loader_get_instance_layer_dispatch(physicalDevice);
2514 return disp->GetPhysicalDeviceVideoFormatPropertiesKHR(unwrapped_phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
2515 }
2516
terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VkVideoFormatPropertiesKHR * pVideoFormatProperties)2517 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(
2518 VkPhysicalDevice physicalDevice,
2519 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
2520 uint32_t* pVideoFormatPropertyCount,
2521 VkVideoFormatPropertiesKHR* pVideoFormatProperties) {
2522 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
2523 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
2524 if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR) {
2525 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
2526 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoFormatPropertiesKHR");
2527 abort(); /* Intentionally fail so user can correct issue. */
2528 }
2529 return icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR(phys_dev_term->phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
2530 }
2531
2532 #endif // VK_ENABLE_BETA_EXTENSIONS
2533 #ifdef VK_ENABLE_BETA_EXTENSIONS
CreateVideoSessionKHR(VkDevice device,const VkVideoSessionCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionKHR * pVideoSession)2534 VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR(
2535 VkDevice device,
2536 const VkVideoSessionCreateInfoKHR* pCreateInfo,
2537 const VkAllocationCallbacks* pAllocator,
2538 VkVideoSessionKHR* pVideoSession) {
2539 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2540 if (NULL == disp) {
2541 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2542 "vkCreateVideoSessionKHR: Invalid device "
2543 "[VUID-vkCreateVideoSessionKHR-device-parameter]");
2544 abort(); /* Intentionally fail so user can correct issue. */
2545 }
2546 return disp->CreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession);
2547 }
2548
2549 #endif // VK_ENABLE_BETA_EXTENSIONS
2550 #ifdef VK_ENABLE_BETA_EXTENSIONS
DestroyVideoSessionKHR(VkDevice device,VkVideoSessionKHR videoSession,const VkAllocationCallbacks * pAllocator)2551 VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionKHR(
2552 VkDevice device,
2553 VkVideoSessionKHR videoSession,
2554 const VkAllocationCallbacks* pAllocator) {
2555 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2556 if (NULL == disp) {
2557 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2558 "vkDestroyVideoSessionKHR: Invalid device "
2559 "[VUID-vkDestroyVideoSessionKHR-device-parameter]");
2560 abort(); /* Intentionally fail so user can correct issue. */
2561 }
2562 disp->DestroyVideoSessionKHR(device, videoSession, pAllocator);
2563 }
2564
2565 #endif // VK_ENABLE_BETA_EXTENSIONS
2566 #ifdef VK_ENABLE_BETA_EXTENSIONS
GetVideoSessionMemoryRequirementsKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t * pMemoryRequirementsCount,VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements)2567 VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR(
2568 VkDevice device,
2569 VkVideoSessionKHR videoSession,
2570 uint32_t* pMemoryRequirementsCount,
2571 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements) {
2572 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2573 if (NULL == disp) {
2574 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2575 "vkGetVideoSessionMemoryRequirementsKHR: Invalid device "
2576 "[VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter]");
2577 abort(); /* Intentionally fail so user can correct issue. */
2578 }
2579 return disp->GetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements);
2580 }
2581
2582 #endif // VK_ENABLE_BETA_EXTENSIONS
2583 #ifdef VK_ENABLE_BETA_EXTENSIONS
BindVideoSessionMemoryKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t bindSessionMemoryInfoCount,const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos)2584 VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR(
2585 VkDevice device,
2586 VkVideoSessionKHR videoSession,
2587 uint32_t bindSessionMemoryInfoCount,
2588 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos) {
2589 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2590 if (NULL == disp) {
2591 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2592 "vkBindVideoSessionMemoryKHR: Invalid device "
2593 "[VUID-vkBindVideoSessionMemoryKHR-device-parameter]");
2594 abort(); /* Intentionally fail so user can correct issue. */
2595 }
2596 return disp->BindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos);
2597 }
2598
2599 #endif // VK_ENABLE_BETA_EXTENSIONS
2600 #ifdef VK_ENABLE_BETA_EXTENSIONS
CreateVideoSessionParametersKHR(VkDevice device,const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionParametersKHR * pVideoSessionParameters)2601 VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR(
2602 VkDevice device,
2603 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
2604 const VkAllocationCallbacks* pAllocator,
2605 VkVideoSessionParametersKHR* pVideoSessionParameters) {
2606 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2607 if (NULL == disp) {
2608 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2609 "vkCreateVideoSessionParametersKHR: Invalid device "
2610 "[VUID-vkCreateVideoSessionParametersKHR-device-parameter]");
2611 abort(); /* Intentionally fail so user can correct issue. */
2612 }
2613 return disp->CreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters);
2614 }
2615
2616 #endif // VK_ENABLE_BETA_EXTENSIONS
2617 #ifdef VK_ENABLE_BETA_EXTENSIONS
UpdateVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo)2618 VKAPI_ATTR VkResult VKAPI_CALL UpdateVideoSessionParametersKHR(
2619 VkDevice device,
2620 VkVideoSessionParametersKHR videoSessionParameters,
2621 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) {
2622 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2623 if (NULL == disp) {
2624 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2625 "vkUpdateVideoSessionParametersKHR: Invalid device "
2626 "[VUID-vkUpdateVideoSessionParametersKHR-device-parameter]");
2627 abort(); /* Intentionally fail so user can correct issue. */
2628 }
2629 return disp->UpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo);
2630 }
2631
2632 #endif // VK_ENABLE_BETA_EXTENSIONS
2633 #ifdef VK_ENABLE_BETA_EXTENSIONS
DestroyVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkAllocationCallbacks * pAllocator)2634 VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionParametersKHR(
2635 VkDevice device,
2636 VkVideoSessionParametersKHR videoSessionParameters,
2637 const VkAllocationCallbacks* pAllocator) {
2638 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2639 if (NULL == disp) {
2640 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2641 "vkDestroyVideoSessionParametersKHR: Invalid device "
2642 "[VUID-vkDestroyVideoSessionParametersKHR-device-parameter]");
2643 abort(); /* Intentionally fail so user can correct issue. */
2644 }
2645 disp->DestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator);
2646 }
2647
2648 #endif // VK_ENABLE_BETA_EXTENSIONS
2649 #ifdef VK_ENABLE_BETA_EXTENSIONS
CmdBeginVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoBeginCodingInfoKHR * pBeginInfo)2650 VKAPI_ATTR void VKAPI_CALL CmdBeginVideoCodingKHR(
2651 VkCommandBuffer commandBuffer,
2652 const VkVideoBeginCodingInfoKHR* pBeginInfo) {
2653 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2654 if (NULL == disp) {
2655 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2656 "vkCmdBeginVideoCodingKHR: Invalid commandBuffer "
2657 "[VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter]");
2658 abort(); /* Intentionally fail so user can correct issue. */
2659 }
2660 disp->CmdBeginVideoCodingKHR(commandBuffer, pBeginInfo);
2661 }
2662
2663 #endif // VK_ENABLE_BETA_EXTENSIONS
2664 #ifdef VK_ENABLE_BETA_EXTENSIONS
CmdEndVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoEndCodingInfoKHR * pEndCodingInfo)2665 VKAPI_ATTR void VKAPI_CALL CmdEndVideoCodingKHR(
2666 VkCommandBuffer commandBuffer,
2667 const VkVideoEndCodingInfoKHR* pEndCodingInfo) {
2668 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2669 if (NULL == disp) {
2670 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2671 "vkCmdEndVideoCodingKHR: Invalid commandBuffer "
2672 "[VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter]");
2673 abort(); /* Intentionally fail so user can correct issue. */
2674 }
2675 disp->CmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo);
2676 }
2677
2678 #endif // VK_ENABLE_BETA_EXTENSIONS
2679 #ifdef VK_ENABLE_BETA_EXTENSIONS
CmdControlVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoCodingControlInfoKHR * pCodingControlInfo)2680 VKAPI_ATTR void VKAPI_CALL CmdControlVideoCodingKHR(
2681 VkCommandBuffer commandBuffer,
2682 const VkVideoCodingControlInfoKHR* pCodingControlInfo) {
2683 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2684 if (NULL == disp) {
2685 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2686 "vkCmdControlVideoCodingKHR: Invalid commandBuffer "
2687 "[VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter]");
2688 abort(); /* Intentionally fail so user can correct issue. */
2689 }
2690 disp->CmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo);
2691 }
2692
2693 #endif // VK_ENABLE_BETA_EXTENSIONS
2694
2695 // ---- VK_KHR_video_decode_queue extension trampoline/terminators
2696
2697 #ifdef VK_ENABLE_BETA_EXTENSIONS
CmdDecodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoDecodeInfoKHR * pDecodeInfo)2698 VKAPI_ATTR void VKAPI_CALL CmdDecodeVideoKHR(
2699 VkCommandBuffer commandBuffer,
2700 const VkVideoDecodeInfoKHR* pDecodeInfo) {
2701 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2702 if (NULL == disp) {
2703 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2704 "vkCmdDecodeVideoKHR: Invalid commandBuffer "
2705 "[VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter]");
2706 abort(); /* Intentionally fail so user can correct issue. */
2707 }
2708 disp->CmdDecodeVideoKHR(commandBuffer, pDecodeInfo);
2709 }
2710
2711 #endif // VK_ENABLE_BETA_EXTENSIONS
2712
2713 // ---- VK_KHR_dynamic_rendering extension trampoline/terminators
2714
CmdBeginRenderingKHR(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)2715 VKAPI_ATTR void VKAPI_CALL CmdBeginRenderingKHR(
2716 VkCommandBuffer commandBuffer,
2717 const VkRenderingInfo* pRenderingInfo) {
2718 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2719 if (NULL == disp) {
2720 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2721 "vkCmdBeginRenderingKHR: Invalid commandBuffer "
2722 "[VUID-vkCmdBeginRenderingKHR-commandBuffer-parameter]");
2723 abort(); /* Intentionally fail so user can correct issue. */
2724 }
2725 disp->CmdBeginRenderingKHR(commandBuffer, pRenderingInfo);
2726 }
2727
CmdEndRenderingKHR(VkCommandBuffer commandBuffer)2728 VKAPI_ATTR void VKAPI_CALL CmdEndRenderingKHR(
2729 VkCommandBuffer commandBuffer) {
2730 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2731 if (NULL == disp) {
2732 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2733 "vkCmdEndRenderingKHR: Invalid commandBuffer "
2734 "[VUID-vkCmdEndRenderingKHR-commandBuffer-parameter]");
2735 abort(); /* Intentionally fail so user can correct issue. */
2736 }
2737 disp->CmdEndRenderingKHR(commandBuffer);
2738 }
2739
2740
2741 // ---- VK_KHR_device_group extension trampoline/terminators
2742
GetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)2743 VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR(
2744 VkDevice device,
2745 uint32_t heapIndex,
2746 uint32_t localDeviceIndex,
2747 uint32_t remoteDeviceIndex,
2748 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
2749 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2750 if (NULL == disp) {
2751 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2752 "vkGetDeviceGroupPeerMemoryFeaturesKHR: Invalid device "
2753 "[VUID-vkGetDeviceGroupPeerMemoryFeaturesKHR-device-parameter]");
2754 abort(); /* Intentionally fail so user can correct issue. */
2755 }
2756 disp->GetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2757 }
2758
CmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask)2759 VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHR(
2760 VkCommandBuffer commandBuffer,
2761 uint32_t deviceMask) {
2762 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2763 if (NULL == disp) {
2764 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2765 "vkCmdSetDeviceMaskKHR: Invalid commandBuffer "
2766 "[VUID-vkCmdSetDeviceMaskKHR-commandBuffer-parameter]");
2767 abort(); /* Intentionally fail so user can correct issue. */
2768 }
2769 disp->CmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2770 }
2771
CmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)2772 VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR(
2773 VkCommandBuffer commandBuffer,
2774 uint32_t baseGroupX,
2775 uint32_t baseGroupY,
2776 uint32_t baseGroupZ,
2777 uint32_t groupCountX,
2778 uint32_t groupCountY,
2779 uint32_t groupCountZ) {
2780 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2781 if (NULL == disp) {
2782 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2783 "vkCmdDispatchBaseKHR: Invalid commandBuffer "
2784 "[VUID-vkCmdDispatchBaseKHR-commandBuffer-parameter]");
2785 abort(); /* Intentionally fail so user can correct issue. */
2786 }
2787 disp->CmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2788 }
2789
2790
2791 // ---- VK_KHR_maintenance1 extension trampoline/terminators
2792
TrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2793 VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR(
2794 VkDevice device,
2795 VkCommandPool commandPool,
2796 VkCommandPoolTrimFlags flags) {
2797 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2798 if (NULL == disp) {
2799 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2800 "vkTrimCommandPoolKHR: Invalid device "
2801 "[VUID-vkTrimCommandPoolKHR-device-parameter]");
2802 abort(); /* Intentionally fail so user can correct issue. */
2803 }
2804 disp->TrimCommandPoolKHR(device, commandPool, flags);
2805 }
2806
2807
2808 // ---- VK_KHR_external_memory_win32 extension trampoline/terminators
2809
2810 #ifdef VK_USE_PLATFORM_WIN32_KHR
GetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)2811 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR(
2812 VkDevice device,
2813 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2814 HANDLE* pHandle) {
2815 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2816 if (NULL == disp) {
2817 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2818 "vkGetMemoryWin32HandleKHR: Invalid device "
2819 "[VUID-vkGetMemoryWin32HandleKHR-device-parameter]");
2820 abort(); /* Intentionally fail so user can correct issue. */
2821 }
2822 return disp->GetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2823 }
2824
2825 #endif // VK_USE_PLATFORM_WIN32_KHR
2826 #ifdef VK_USE_PLATFORM_WIN32_KHR
GetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties)2827 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR(
2828 VkDevice device,
2829 VkExternalMemoryHandleTypeFlagBits handleType,
2830 HANDLE handle,
2831 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
2832 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2833 if (NULL == disp) {
2834 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2835 "vkGetMemoryWin32HandlePropertiesKHR: Invalid device "
2836 "[VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter]");
2837 abort(); /* Intentionally fail so user can correct issue. */
2838 }
2839 return disp->GetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2840 }
2841
2842 #endif // VK_USE_PLATFORM_WIN32_KHR
2843
2844 // ---- VK_KHR_external_memory_fd extension trampoline/terminators
2845
GetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)2846 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR(
2847 VkDevice device,
2848 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2849 int* pFd) {
2850 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2851 if (NULL == disp) {
2852 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2853 "vkGetMemoryFdKHR: Invalid device "
2854 "[VUID-vkGetMemoryFdKHR-device-parameter]");
2855 abort(); /* Intentionally fail so user can correct issue. */
2856 }
2857 return disp->GetMemoryFdKHR(device, pGetFdInfo, pFd);
2858 }
2859
GetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)2860 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR(
2861 VkDevice device,
2862 VkExternalMemoryHandleTypeFlagBits handleType,
2863 int fd,
2864 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
2865 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2866 if (NULL == disp) {
2867 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2868 "vkGetMemoryFdPropertiesKHR: Invalid device "
2869 "[VUID-vkGetMemoryFdPropertiesKHR-device-parameter]");
2870 abort(); /* Intentionally fail so user can correct issue. */
2871 }
2872 return disp->GetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2873 }
2874
2875
2876 // ---- VK_KHR_external_semaphore_win32 extension trampoline/terminators
2877
2878 #ifdef VK_USE_PLATFORM_WIN32_KHR
ImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo)2879 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreWin32HandleKHR(
2880 VkDevice device,
2881 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
2882 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2883 if (NULL == disp) {
2884 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2885 "vkImportSemaphoreWin32HandleKHR: Invalid device "
2886 "[VUID-vkImportSemaphoreWin32HandleKHR-device-parameter]");
2887 abort(); /* Intentionally fail so user can correct issue. */
2888 }
2889 return disp->ImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2890 }
2891
2892 #endif // VK_USE_PLATFORM_WIN32_KHR
2893 #ifdef VK_USE_PLATFORM_WIN32_KHR
GetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)2894 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR(
2895 VkDevice device,
2896 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2897 HANDLE* pHandle) {
2898 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2899 if (NULL == disp) {
2900 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2901 "vkGetSemaphoreWin32HandleKHR: Invalid device "
2902 "[VUID-vkGetSemaphoreWin32HandleKHR-device-parameter]");
2903 abort(); /* Intentionally fail so user can correct issue. */
2904 }
2905 return disp->GetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2906 }
2907
2908 #endif // VK_USE_PLATFORM_WIN32_KHR
2909
2910 // ---- VK_KHR_external_semaphore_fd extension trampoline/terminators
2911
ImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)2912 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR(
2913 VkDevice device,
2914 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
2915 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2916 if (NULL == disp) {
2917 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2918 "vkImportSemaphoreFdKHR: Invalid device "
2919 "[VUID-vkImportSemaphoreFdKHR-device-parameter]");
2920 abort(); /* Intentionally fail so user can correct issue. */
2921 }
2922 return disp->ImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
2923 }
2924
GetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)2925 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR(
2926 VkDevice device,
2927 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2928 int* pFd) {
2929 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2930 if (NULL == disp) {
2931 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2932 "vkGetSemaphoreFdKHR: Invalid device "
2933 "[VUID-vkGetSemaphoreFdKHR-device-parameter]");
2934 abort(); /* Intentionally fail so user can correct issue. */
2935 }
2936 return disp->GetSemaphoreFdKHR(device, pGetFdInfo, pFd);
2937 }
2938
2939
2940 // ---- VK_KHR_push_descriptor extension trampoline/terminators
2941
CmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites)2942 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR(
2943 VkCommandBuffer commandBuffer,
2944 VkPipelineBindPoint pipelineBindPoint,
2945 VkPipelineLayout layout,
2946 uint32_t set,
2947 uint32_t descriptorWriteCount,
2948 const VkWriteDescriptorSet* pDescriptorWrites) {
2949 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2950 if (NULL == disp) {
2951 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2952 "vkCmdPushDescriptorSetKHR: Invalid commandBuffer "
2953 "[VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter]");
2954 abort(); /* Intentionally fail so user can correct issue. */
2955 }
2956 disp->CmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2957 }
2958
CmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData)2959 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplateKHR(
2960 VkCommandBuffer commandBuffer,
2961 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2962 VkPipelineLayout layout,
2963 uint32_t set,
2964 const void* pData) {
2965 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
2966 if (NULL == disp) {
2967 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2968 "vkCmdPushDescriptorSetWithTemplateKHR: Invalid commandBuffer "
2969 "[VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter]");
2970 abort(); /* Intentionally fail so user can correct issue. */
2971 }
2972 disp->CmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2973 }
2974
2975
2976 // ---- VK_KHR_descriptor_update_template extension trampoline/terminators
2977
CreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)2978 VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR(
2979 VkDevice device,
2980 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2981 const VkAllocationCallbacks* pAllocator,
2982 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
2983 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2984 if (NULL == disp) {
2985 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
2986 "vkCreateDescriptorUpdateTemplateKHR: Invalid device "
2987 "[VUID-vkCreateDescriptorUpdateTemplateKHR-device-parameter]");
2988 abort(); /* Intentionally fail so user can correct issue. */
2989 }
2990 return disp->CreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2991 }
2992
DestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)2993 VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR(
2994 VkDevice device,
2995 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2996 const VkAllocationCallbacks* pAllocator) {
2997 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
2998 if (NULL == disp) {
2999 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3000 "vkDestroyDescriptorUpdateTemplateKHR: Invalid device "
3001 "[VUID-vkDestroyDescriptorUpdateTemplateKHR-device-parameter]");
3002 abort(); /* Intentionally fail so user can correct issue. */
3003 }
3004 disp->DestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
3005 }
3006
UpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)3007 VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSetWithTemplateKHR(
3008 VkDevice device,
3009 VkDescriptorSet descriptorSet,
3010 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3011 const void* pData) {
3012 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3013 if (NULL == disp) {
3014 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3015 "vkUpdateDescriptorSetWithTemplateKHR: Invalid device "
3016 "[VUID-vkUpdateDescriptorSetWithTemplateKHR-device-parameter]");
3017 abort(); /* Intentionally fail so user can correct issue. */
3018 }
3019 disp->UpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
3020 }
3021
3022
3023 // ---- VK_KHR_create_renderpass2 extension trampoline/terminators
3024
CreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)3025 VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR(
3026 VkDevice device,
3027 const VkRenderPassCreateInfo2* pCreateInfo,
3028 const VkAllocationCallbacks* pAllocator,
3029 VkRenderPass* pRenderPass) {
3030 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3031 if (NULL == disp) {
3032 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3033 "vkCreateRenderPass2KHR: Invalid device "
3034 "[VUID-vkCreateRenderPass2KHR-device-parameter]");
3035 abort(); /* Intentionally fail so user can correct issue. */
3036 }
3037 return disp->CreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
3038 }
3039
CmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)3040 VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR(
3041 VkCommandBuffer commandBuffer,
3042 const VkRenderPassBeginInfo* pRenderPassBegin,
3043 const VkSubpassBeginInfo* pSubpassBeginInfo) {
3044 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3045 if (NULL == disp) {
3046 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3047 "vkCmdBeginRenderPass2KHR: Invalid commandBuffer "
3048 "[VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter]");
3049 abort(); /* Intentionally fail so user can correct issue. */
3050 }
3051 disp->CmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
3052 }
3053
CmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)3054 VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR(
3055 VkCommandBuffer commandBuffer,
3056 const VkSubpassBeginInfo* pSubpassBeginInfo,
3057 const VkSubpassEndInfo* pSubpassEndInfo) {
3058 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3059 if (NULL == disp) {
3060 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3061 "vkCmdNextSubpass2KHR: Invalid commandBuffer "
3062 "[VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter]");
3063 abort(); /* Intentionally fail so user can correct issue. */
3064 }
3065 disp->CmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
3066 }
3067
CmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)3068 VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR(
3069 VkCommandBuffer commandBuffer,
3070 const VkSubpassEndInfo* pSubpassEndInfo) {
3071 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3072 if (NULL == disp) {
3073 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3074 "vkCmdEndRenderPass2KHR: Invalid commandBuffer "
3075 "[VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter]");
3076 abort(); /* Intentionally fail so user can correct issue. */
3077 }
3078 disp->CmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
3079 }
3080
3081
3082 // ---- VK_KHR_shared_presentable_image extension trampoline/terminators
3083
GetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain)3084 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR(
3085 VkDevice device,
3086 VkSwapchainKHR swapchain) {
3087 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3088 if (NULL == disp) {
3089 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3090 "vkGetSwapchainStatusKHR: Invalid device "
3091 "[VUID-vkGetSwapchainStatusKHR-device-parameter]");
3092 abort(); /* Intentionally fail so user can correct issue. */
3093 }
3094 return disp->GetSwapchainStatusKHR(device, swapchain);
3095 }
3096
3097
3098 // ---- VK_KHR_external_fence_win32 extension trampoline/terminators
3099
3100 #ifdef VK_USE_PLATFORM_WIN32_KHR
ImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo)3101 VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR(
3102 VkDevice device,
3103 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
3104 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3105 if (NULL == disp) {
3106 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3107 "vkImportFenceWin32HandleKHR: Invalid device "
3108 "[VUID-vkImportFenceWin32HandleKHR-device-parameter]");
3109 abort(); /* Intentionally fail so user can correct issue. */
3110 }
3111 return disp->ImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
3112 }
3113
3114 #endif // VK_USE_PLATFORM_WIN32_KHR
3115 #ifdef VK_USE_PLATFORM_WIN32_KHR
GetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3116 VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR(
3117 VkDevice device,
3118 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3119 HANDLE* pHandle) {
3120 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3121 if (NULL == disp) {
3122 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3123 "vkGetFenceWin32HandleKHR: Invalid device "
3124 "[VUID-vkGetFenceWin32HandleKHR-device-parameter]");
3125 abort(); /* Intentionally fail so user can correct issue. */
3126 }
3127 return disp->GetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
3128 }
3129
3130 #endif // VK_USE_PLATFORM_WIN32_KHR
3131
3132 // ---- VK_KHR_external_fence_fd extension trampoline/terminators
3133
ImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)3134 VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR(
3135 VkDevice device,
3136 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
3137 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3138 if (NULL == disp) {
3139 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3140 "vkImportFenceFdKHR: Invalid device "
3141 "[VUID-vkImportFenceFdKHR-device-parameter]");
3142 abort(); /* Intentionally fail so user can correct issue. */
3143 }
3144 return disp->ImportFenceFdKHR(device, pImportFenceFdInfo);
3145 }
3146
GetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)3147 VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR(
3148 VkDevice device,
3149 const VkFenceGetFdInfoKHR* pGetFdInfo,
3150 int* pFd) {
3151 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3152 if (NULL == disp) {
3153 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3154 "vkGetFenceFdKHR: Invalid device "
3155 "[VUID-vkGetFenceFdKHR-device-parameter]");
3156 abort(); /* Intentionally fail so user can correct issue. */
3157 }
3158 return disp->GetFenceFdKHR(device, pGetFdInfo, pFd);
3159 }
3160
3161
3162 // ---- VK_KHR_performance_query extension trampoline/terminators
3163
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions)3164 VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
3165 VkPhysicalDevice physicalDevice,
3166 uint32_t queueFamilyIndex,
3167 uint32_t* pCounterCount,
3168 VkPerformanceCounterKHR* pCounters,
3169 VkPerformanceCounterDescriptionKHR* pCounterDescriptions) {
3170 const VkLayerInstanceDispatchTable *disp;
3171 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3172 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3173 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3174 "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR: Invalid physicalDevice "
3175 "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter]");
3176 abort(); /* Intentionally fail so user can correct issue. */
3177 }
3178 disp = loader_get_instance_layer_dispatch(physicalDevice);
3179 return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
3180 }
3181
terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions)3182 VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
3183 VkPhysicalDevice physicalDevice,
3184 uint32_t queueFamilyIndex,
3185 uint32_t* pCounterCount,
3186 VkPerformanceCounterKHR* pCounters,
3187 VkPerformanceCounterDescriptionKHR* pCounterDescriptions) {
3188 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3189 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3190 if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) {
3191 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
3192 "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
3193 abort(); /* Intentionally fail so user can correct issue. */
3194 }
3195 return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
3196 }
3197
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses)3198 VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
3199 VkPhysicalDevice physicalDevice,
3200 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
3201 uint32_t* pNumPasses) {
3202 const VkLayerInstanceDispatchTable *disp;
3203 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3204 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3205 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3206 "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR: Invalid physicalDevice "
3207 "[VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter]");
3208 abort(); /* Intentionally fail so user can correct issue. */
3209 }
3210 disp = loader_get_instance_layer_dispatch(physicalDevice);
3211 disp->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(unwrapped_phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
3212 }
3213
terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses)3214 VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
3215 VkPhysicalDevice physicalDevice,
3216 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
3217 uint32_t* pNumPasses) {
3218 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3219 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3220 if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) {
3221 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
3222 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
3223 abort(); /* Intentionally fail so user can correct issue. */
3224 }
3225 icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(phys_dev_term->phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
3226 }
3227
AcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo)3228 VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR(
3229 VkDevice device,
3230 const VkAcquireProfilingLockInfoKHR* pInfo) {
3231 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3232 if (NULL == disp) {
3233 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3234 "vkAcquireProfilingLockKHR: Invalid device "
3235 "[VUID-vkAcquireProfilingLockKHR-device-parameter]");
3236 abort(); /* Intentionally fail so user can correct issue. */
3237 }
3238 return disp->AcquireProfilingLockKHR(device, pInfo);
3239 }
3240
ReleaseProfilingLockKHR(VkDevice device)3241 VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR(
3242 VkDevice device) {
3243 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3244 if (NULL == disp) {
3245 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3246 "vkReleaseProfilingLockKHR: Invalid device "
3247 "[VUID-vkReleaseProfilingLockKHR-device-parameter]");
3248 abort(); /* Intentionally fail so user can correct issue. */
3249 }
3250 disp->ReleaseProfilingLockKHR(device);
3251 }
3252
3253
3254 // ---- VK_KHR_get_memory_requirements2 extension trampoline/terminators
3255
GetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3256 VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR(
3257 VkDevice device,
3258 const VkImageMemoryRequirementsInfo2* pInfo,
3259 VkMemoryRequirements2* pMemoryRequirements) {
3260 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3261 if (NULL == disp) {
3262 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3263 "vkGetImageMemoryRequirements2KHR: Invalid device "
3264 "[VUID-vkGetImageMemoryRequirements2KHR-device-parameter]");
3265 abort(); /* Intentionally fail so user can correct issue. */
3266 }
3267 disp->GetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
3268 }
3269
GetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3270 VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR(
3271 VkDevice device,
3272 const VkBufferMemoryRequirementsInfo2* pInfo,
3273 VkMemoryRequirements2* pMemoryRequirements) {
3274 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3275 if (NULL == disp) {
3276 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3277 "vkGetBufferMemoryRequirements2KHR: Invalid device "
3278 "[VUID-vkGetBufferMemoryRequirements2KHR-device-parameter]");
3279 abort(); /* Intentionally fail so user can correct issue. */
3280 }
3281 disp->GetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
3282 }
3283
GetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)3284 VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR(
3285 VkDevice device,
3286 const VkImageSparseMemoryRequirementsInfo2* pInfo,
3287 uint32_t* pSparseMemoryRequirementCount,
3288 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
3289 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3290 if (NULL == disp) {
3291 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3292 "vkGetImageSparseMemoryRequirements2KHR: Invalid device "
3293 "[VUID-vkGetImageSparseMemoryRequirements2KHR-device-parameter]");
3294 abort(); /* Intentionally fail so user can correct issue. */
3295 }
3296 disp->GetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
3297 }
3298
3299
3300 // ---- VK_KHR_sampler_ycbcr_conversion extension trampoline/terminators
3301
CreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)3302 VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR(
3303 VkDevice device,
3304 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
3305 const VkAllocationCallbacks* pAllocator,
3306 VkSamplerYcbcrConversion* pYcbcrConversion) {
3307 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3308 if (NULL == disp) {
3309 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3310 "vkCreateSamplerYcbcrConversionKHR: Invalid device "
3311 "[VUID-vkCreateSamplerYcbcrConversionKHR-device-parameter]");
3312 abort(); /* Intentionally fail so user can correct issue. */
3313 }
3314 return disp->CreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
3315 }
3316
DestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)3317 VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversionKHR(
3318 VkDevice device,
3319 VkSamplerYcbcrConversion ycbcrConversion,
3320 const VkAllocationCallbacks* pAllocator) {
3321 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3322 if (NULL == disp) {
3323 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3324 "vkDestroySamplerYcbcrConversionKHR: Invalid device "
3325 "[VUID-vkDestroySamplerYcbcrConversionKHR-device-parameter]");
3326 abort(); /* Intentionally fail so user can correct issue. */
3327 }
3328 disp->DestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
3329 }
3330
3331
3332 // ---- VK_KHR_bind_memory2 extension trampoline/terminators
3333
BindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)3334 VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHR(
3335 VkDevice device,
3336 uint32_t bindInfoCount,
3337 const VkBindBufferMemoryInfo* pBindInfos) {
3338 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3339 if (NULL == disp) {
3340 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3341 "vkBindBufferMemory2KHR: Invalid device "
3342 "[VUID-vkBindBufferMemory2KHR-device-parameter]");
3343 abort(); /* Intentionally fail so user can correct issue. */
3344 }
3345 return disp->BindBufferMemory2KHR(device, bindInfoCount, pBindInfos);
3346 }
3347
BindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)3348 VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHR(
3349 VkDevice device,
3350 uint32_t bindInfoCount,
3351 const VkBindImageMemoryInfo* pBindInfos) {
3352 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3353 if (NULL == disp) {
3354 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3355 "vkBindImageMemory2KHR: Invalid device "
3356 "[VUID-vkBindImageMemory2KHR-device-parameter]");
3357 abort(); /* Intentionally fail so user can correct issue. */
3358 }
3359 return disp->BindImageMemory2KHR(device, bindInfoCount, pBindInfos);
3360 }
3361
3362
3363 // ---- VK_KHR_maintenance3 extension trampoline/terminators
3364
GetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)3365 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupportKHR(
3366 VkDevice device,
3367 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
3368 VkDescriptorSetLayoutSupport* pSupport) {
3369 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3370 if (NULL == disp) {
3371 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3372 "vkGetDescriptorSetLayoutSupportKHR: Invalid device "
3373 "[VUID-vkGetDescriptorSetLayoutSupportKHR-device-parameter]");
3374 abort(); /* Intentionally fail so user can correct issue. */
3375 }
3376 disp->GetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
3377 }
3378
3379
3380 // ---- VK_KHR_draw_indirect_count extension trampoline/terminators
3381
CmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3382 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR(
3383 VkCommandBuffer commandBuffer,
3384 VkBuffer buffer,
3385 VkDeviceSize offset,
3386 VkBuffer countBuffer,
3387 VkDeviceSize countBufferOffset,
3388 uint32_t maxDrawCount,
3389 uint32_t stride) {
3390 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3391 if (NULL == disp) {
3392 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3393 "vkCmdDrawIndirectCountKHR: Invalid commandBuffer "
3394 "[VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter]");
3395 abort(); /* Intentionally fail so user can correct issue. */
3396 }
3397 disp->CmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
3398 }
3399
CmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)3400 VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR(
3401 VkCommandBuffer commandBuffer,
3402 VkBuffer buffer,
3403 VkDeviceSize offset,
3404 VkBuffer countBuffer,
3405 VkDeviceSize countBufferOffset,
3406 uint32_t maxDrawCount,
3407 uint32_t stride) {
3408 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3409 if (NULL == disp) {
3410 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3411 "vkCmdDrawIndexedIndirectCountKHR: Invalid commandBuffer "
3412 "[VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter]");
3413 abort(); /* Intentionally fail so user can correct issue. */
3414 }
3415 disp->CmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
3416 }
3417
3418
3419 // ---- VK_KHR_timeline_semaphore extension trampoline/terminators
3420
GetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)3421 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR(
3422 VkDevice device,
3423 VkSemaphore semaphore,
3424 uint64_t* pValue) {
3425 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3426 if (NULL == disp) {
3427 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3428 "vkGetSemaphoreCounterValueKHR: Invalid device "
3429 "[VUID-vkGetSemaphoreCounterValueKHR-device-parameter]");
3430 abort(); /* Intentionally fail so user can correct issue. */
3431 }
3432 return disp->GetSemaphoreCounterValueKHR(device, semaphore, pValue);
3433 }
3434
WaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)3435 VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR(
3436 VkDevice device,
3437 const VkSemaphoreWaitInfo* pWaitInfo,
3438 uint64_t timeout) {
3439 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3440 if (NULL == disp) {
3441 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3442 "vkWaitSemaphoresKHR: Invalid device "
3443 "[VUID-vkWaitSemaphoresKHR-device-parameter]");
3444 abort(); /* Intentionally fail so user can correct issue. */
3445 }
3446 return disp->WaitSemaphoresKHR(device, pWaitInfo, timeout);
3447 }
3448
SignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)3449 VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR(
3450 VkDevice device,
3451 const VkSemaphoreSignalInfo* pSignalInfo) {
3452 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3453 if (NULL == disp) {
3454 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3455 "vkSignalSemaphoreKHR: Invalid device "
3456 "[VUID-vkSignalSemaphoreKHR-device-parameter]");
3457 abort(); /* Intentionally fail so user can correct issue. */
3458 }
3459 return disp->SignalSemaphoreKHR(device, pSignalInfo);
3460 }
3461
3462
3463 // ---- VK_KHR_fragment_shading_rate extension trampoline/terminators
3464
GetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates)3465 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR(
3466 VkPhysicalDevice physicalDevice,
3467 uint32_t* pFragmentShadingRateCount,
3468 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) {
3469 const VkLayerInstanceDispatchTable *disp;
3470 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3471 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3472 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3473 "vkGetPhysicalDeviceFragmentShadingRatesKHR: Invalid physicalDevice "
3474 "[VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter]");
3475 abort(); /* Intentionally fail so user can correct issue. */
3476 }
3477 disp = loader_get_instance_layer_dispatch(physicalDevice);
3478 return disp->GetPhysicalDeviceFragmentShadingRatesKHR(unwrapped_phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
3479 }
3480
terminator_GetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates)3481 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceFragmentShadingRatesKHR(
3482 VkPhysicalDevice physicalDevice,
3483 uint32_t* pFragmentShadingRateCount,
3484 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) {
3485 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3486 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3487 if (NULL == icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR) {
3488 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
3489 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceFragmentShadingRatesKHR");
3490 abort(); /* Intentionally fail so user can correct issue. */
3491 }
3492 return icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR(phys_dev_term->phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
3493 }
3494
CmdSetFragmentShadingRateKHR(VkCommandBuffer commandBuffer,const VkExtent2D * pFragmentSize,const VkFragmentShadingRateCombinerOpKHR combinerOps[2])3495 VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateKHR(
3496 VkCommandBuffer commandBuffer,
3497 const VkExtent2D* pFragmentSize,
3498 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) {
3499 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3500 if (NULL == disp) {
3501 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3502 "vkCmdSetFragmentShadingRateKHR: Invalid commandBuffer "
3503 "[VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter]");
3504 abort(); /* Intentionally fail so user can correct issue. */
3505 }
3506 disp->CmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
3507 }
3508
3509
3510 // ---- VK_KHR_present_wait extension trampoline/terminators
3511
WaitForPresentKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t presentId,uint64_t timeout)3512 VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR(
3513 VkDevice device,
3514 VkSwapchainKHR swapchain,
3515 uint64_t presentId,
3516 uint64_t timeout) {
3517 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3518 if (NULL == disp) {
3519 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3520 "vkWaitForPresentKHR: Invalid device "
3521 "[VUID-vkWaitForPresentKHR-device-parameter]");
3522 abort(); /* Intentionally fail so user can correct issue. */
3523 }
3524 return disp->WaitForPresentKHR(device, swapchain, presentId, timeout);
3525 }
3526
3527
3528 // ---- VK_KHR_buffer_device_address extension trampoline/terminators
3529
GetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)3530 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR(
3531 VkDevice device,
3532 const VkBufferDeviceAddressInfo* pInfo) {
3533 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3534 if (NULL == disp) {
3535 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3536 "vkGetBufferDeviceAddressKHR: Invalid device "
3537 "[VUID-vkGetBufferDeviceAddressKHR-device-parameter]");
3538 abort(); /* Intentionally fail so user can correct issue. */
3539 }
3540 return disp->GetBufferDeviceAddressKHR(device, pInfo);
3541 }
3542
GetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)3543 VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR(
3544 VkDevice device,
3545 const VkBufferDeviceAddressInfo* pInfo) {
3546 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3547 if (NULL == disp) {
3548 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3549 "vkGetBufferOpaqueCaptureAddressKHR: Invalid device "
3550 "[VUID-vkGetBufferOpaqueCaptureAddressKHR-device-parameter]");
3551 abort(); /* Intentionally fail so user can correct issue. */
3552 }
3553 return disp->GetBufferOpaqueCaptureAddressKHR(device, pInfo);
3554 }
3555
GetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)3556 VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR(
3557 VkDevice device,
3558 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
3559 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3560 if (NULL == disp) {
3561 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3562 "vkGetDeviceMemoryOpaqueCaptureAddressKHR: Invalid device "
3563 "[VUID-vkGetDeviceMemoryOpaqueCaptureAddressKHR-device-parameter]");
3564 abort(); /* Intentionally fail so user can correct issue. */
3565 }
3566 return disp->GetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo);
3567 }
3568
3569
3570 // ---- VK_KHR_deferred_host_operations extension trampoline/terminators
3571
CreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation)3572 VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR(
3573 VkDevice device,
3574 const VkAllocationCallbacks* pAllocator,
3575 VkDeferredOperationKHR* pDeferredOperation) {
3576 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3577 if (NULL == disp) {
3578 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3579 "vkCreateDeferredOperationKHR: Invalid device "
3580 "[VUID-vkCreateDeferredOperationKHR-device-parameter]");
3581 abort(); /* Intentionally fail so user can correct issue. */
3582 }
3583 return disp->CreateDeferredOperationKHR(device, pAllocator, pDeferredOperation);
3584 }
3585
DestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator)3586 VKAPI_ATTR void VKAPI_CALL DestroyDeferredOperationKHR(
3587 VkDevice device,
3588 VkDeferredOperationKHR operation,
3589 const VkAllocationCallbacks* pAllocator) {
3590 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3591 if (NULL == disp) {
3592 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3593 "vkDestroyDeferredOperationKHR: Invalid device "
3594 "[VUID-vkDestroyDeferredOperationKHR-device-parameter]");
3595 abort(); /* Intentionally fail so user can correct issue. */
3596 }
3597 disp->DestroyDeferredOperationKHR(device, operation, pAllocator);
3598 }
3599
GetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation)3600 VKAPI_ATTR uint32_t VKAPI_CALL GetDeferredOperationMaxConcurrencyKHR(
3601 VkDevice device,
3602 VkDeferredOperationKHR operation) {
3603 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3604 if (NULL == disp) {
3605 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3606 "vkGetDeferredOperationMaxConcurrencyKHR: Invalid device "
3607 "[VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter]");
3608 abort(); /* Intentionally fail so user can correct issue. */
3609 }
3610 return disp->GetDeferredOperationMaxConcurrencyKHR(device, operation);
3611 }
3612
GetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation)3613 VKAPI_ATTR VkResult VKAPI_CALL GetDeferredOperationResultKHR(
3614 VkDevice device,
3615 VkDeferredOperationKHR operation) {
3616 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3617 if (NULL == disp) {
3618 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3619 "vkGetDeferredOperationResultKHR: Invalid device "
3620 "[VUID-vkGetDeferredOperationResultKHR-device-parameter]");
3621 abort(); /* Intentionally fail so user can correct issue. */
3622 }
3623 return disp->GetDeferredOperationResultKHR(device, operation);
3624 }
3625
DeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation)3626 VKAPI_ATTR VkResult VKAPI_CALL DeferredOperationJoinKHR(
3627 VkDevice device,
3628 VkDeferredOperationKHR operation) {
3629 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3630 if (NULL == disp) {
3631 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3632 "vkDeferredOperationJoinKHR: Invalid device "
3633 "[VUID-vkDeferredOperationJoinKHR-device-parameter]");
3634 abort(); /* Intentionally fail so user can correct issue. */
3635 }
3636 return disp->DeferredOperationJoinKHR(device, operation);
3637 }
3638
3639
3640 // ---- VK_KHR_pipeline_executable_properties extension trampoline/terminators
3641
GetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)3642 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR(
3643 VkDevice device,
3644 const VkPipelineInfoKHR* pPipelineInfo,
3645 uint32_t* pExecutableCount,
3646 VkPipelineExecutablePropertiesKHR* pProperties) {
3647 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3648 if (NULL == disp) {
3649 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3650 "vkGetPipelineExecutablePropertiesKHR: Invalid device "
3651 "[VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter]");
3652 abort(); /* Intentionally fail so user can correct issue. */
3653 }
3654 return disp->GetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties);
3655 }
3656
GetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)3657 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR(
3658 VkDevice device,
3659 const VkPipelineExecutableInfoKHR* pExecutableInfo,
3660 uint32_t* pStatisticCount,
3661 VkPipelineExecutableStatisticKHR* pStatistics) {
3662 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3663 if (NULL == disp) {
3664 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3665 "vkGetPipelineExecutableStatisticsKHR: Invalid device "
3666 "[VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter]");
3667 abort(); /* Intentionally fail so user can correct issue. */
3668 }
3669 return disp->GetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics);
3670 }
3671
GetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)3672 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR(
3673 VkDevice device,
3674 const VkPipelineExecutableInfoKHR* pExecutableInfo,
3675 uint32_t* pInternalRepresentationCount,
3676 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
3677 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3678 if (NULL == disp) {
3679 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3680 "vkGetPipelineExecutableInternalRepresentationsKHR: Invalid device "
3681 "[VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter]");
3682 abort(); /* Intentionally fail so user can correct issue. */
3683 }
3684 return disp->GetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations);
3685 }
3686
3687
3688 // ---- VK_KHR_video_encode_queue extension trampoline/terminators
3689
3690 #ifdef VK_ENABLE_BETA_EXTENSIONS
CmdEncodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoEncodeInfoKHR * pEncodeInfo)3691 VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR(
3692 VkCommandBuffer commandBuffer,
3693 const VkVideoEncodeInfoKHR* pEncodeInfo) {
3694 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3695 if (NULL == disp) {
3696 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3697 "vkCmdEncodeVideoKHR: Invalid commandBuffer "
3698 "[VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter]");
3699 abort(); /* Intentionally fail so user can correct issue. */
3700 }
3701 disp->CmdEncodeVideoKHR(commandBuffer, pEncodeInfo);
3702 }
3703
3704 #endif // VK_ENABLE_BETA_EXTENSIONS
3705
3706 // ---- VK_KHR_synchronization2 extension trampoline/terminators
3707
CmdSetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)3708 VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR(
3709 VkCommandBuffer commandBuffer,
3710 VkEvent event,
3711 const VkDependencyInfo* pDependencyInfo) {
3712 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3713 if (NULL == disp) {
3714 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3715 "vkCmdSetEvent2KHR: Invalid commandBuffer "
3716 "[VUID-vkCmdSetEvent2KHR-commandBuffer-parameter]");
3717 abort(); /* Intentionally fail so user can correct issue. */
3718 }
3719 disp->CmdSetEvent2KHR(commandBuffer, event, pDependencyInfo);
3720 }
3721
CmdResetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)3722 VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR(
3723 VkCommandBuffer commandBuffer,
3724 VkEvent event,
3725 VkPipelineStageFlags2 stageMask) {
3726 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3727 if (NULL == disp) {
3728 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3729 "vkCmdResetEvent2KHR: Invalid commandBuffer "
3730 "[VUID-vkCmdResetEvent2KHR-commandBuffer-parameter]");
3731 abort(); /* Intentionally fail so user can correct issue. */
3732 }
3733 disp->CmdResetEvent2KHR(commandBuffer, event, stageMask);
3734 }
3735
CmdWaitEvents2KHR(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)3736 VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR(
3737 VkCommandBuffer commandBuffer,
3738 uint32_t eventCount,
3739 const VkEvent* pEvents,
3740 const VkDependencyInfo* pDependencyInfos) {
3741 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3742 if (NULL == disp) {
3743 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3744 "vkCmdWaitEvents2KHR: Invalid commandBuffer "
3745 "[VUID-vkCmdWaitEvents2KHR-commandBuffer-parameter]");
3746 abort(); /* Intentionally fail so user can correct issue. */
3747 }
3748 disp->CmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos);
3749 }
3750
CmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)3751 VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2KHR(
3752 VkCommandBuffer commandBuffer,
3753 const VkDependencyInfo* pDependencyInfo) {
3754 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3755 if (NULL == disp) {
3756 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3757 "vkCmdPipelineBarrier2KHR: Invalid commandBuffer "
3758 "[VUID-vkCmdPipelineBarrier2KHR-commandBuffer-parameter]");
3759 abort(); /* Intentionally fail so user can correct issue. */
3760 }
3761 disp->CmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo);
3762 }
3763
CmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)3764 VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR(
3765 VkCommandBuffer commandBuffer,
3766 VkPipelineStageFlags2 stage,
3767 VkQueryPool queryPool,
3768 uint32_t query) {
3769 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3770 if (NULL == disp) {
3771 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3772 "vkCmdWriteTimestamp2KHR: Invalid commandBuffer "
3773 "[VUID-vkCmdWriteTimestamp2KHR-commandBuffer-parameter]");
3774 abort(); /* Intentionally fail so user can correct issue. */
3775 }
3776 disp->CmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query);
3777 }
3778
QueueSubmit2KHR(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)3779 VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR(
3780 VkQueue queue,
3781 uint32_t submitCount,
3782 const VkSubmitInfo2* pSubmits,
3783 VkFence fence) {
3784 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
3785 if (NULL == disp) {
3786 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3787 "vkQueueSubmit2KHR: Invalid queue "
3788 "[VUID-vkQueueSubmit2KHR-queue-parameter]");
3789 abort(); /* Intentionally fail so user can correct issue. */
3790 }
3791 return disp->QueueSubmit2KHR(queue, submitCount, pSubmits, fence);
3792 }
3793
CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)3794 VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD(
3795 VkCommandBuffer commandBuffer,
3796 VkPipelineStageFlags2 stage,
3797 VkBuffer dstBuffer,
3798 VkDeviceSize dstOffset,
3799 uint32_t marker) {
3800 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3801 if (NULL == disp) {
3802 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3803 "vkCmdWriteBufferMarker2AMD: Invalid commandBuffer "
3804 "[VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter]");
3805 abort(); /* Intentionally fail so user can correct issue. */
3806 }
3807 disp->CmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker);
3808 }
3809
GetQueueCheckpointData2NV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData)3810 VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV(
3811 VkQueue queue,
3812 uint32_t* pCheckpointDataCount,
3813 VkCheckpointData2NV* pCheckpointData) {
3814 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
3815 if (NULL == disp) {
3816 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3817 "vkGetQueueCheckpointData2NV: Invalid queue "
3818 "[VUID-vkGetQueueCheckpointData2NV-queue-parameter]");
3819 abort(); /* Intentionally fail so user can correct issue. */
3820 }
3821 disp->GetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
3822 }
3823
3824
3825 // ---- VK_KHR_copy_commands2 extension trampoline/terminators
3826
CmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)3827 VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR(
3828 VkCommandBuffer commandBuffer,
3829 const VkCopyBufferInfo2* pCopyBufferInfo) {
3830 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3831 if (NULL == disp) {
3832 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3833 "vkCmdCopyBuffer2KHR: Invalid commandBuffer "
3834 "[VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter]");
3835 abort(); /* Intentionally fail so user can correct issue. */
3836 }
3837 disp->CmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo);
3838 }
3839
CmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)3840 VKAPI_ATTR void VKAPI_CALL CmdCopyImage2KHR(
3841 VkCommandBuffer commandBuffer,
3842 const VkCopyImageInfo2* pCopyImageInfo) {
3843 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3844 if (NULL == disp) {
3845 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3846 "vkCmdCopyImage2KHR: Invalid commandBuffer "
3847 "[VUID-vkCmdCopyImage2KHR-commandBuffer-parameter]");
3848 abort(); /* Intentionally fail so user can correct issue. */
3849 }
3850 disp->CmdCopyImage2KHR(commandBuffer, pCopyImageInfo);
3851 }
3852
CmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)3853 VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2KHR(
3854 VkCommandBuffer commandBuffer,
3855 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
3856 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3857 if (NULL == disp) {
3858 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3859 "vkCmdCopyBufferToImage2KHR: Invalid commandBuffer "
3860 "[VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter]");
3861 abort(); /* Intentionally fail so user can correct issue. */
3862 }
3863 disp->CmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo);
3864 }
3865
CmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)3866 VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2KHR(
3867 VkCommandBuffer commandBuffer,
3868 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
3869 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3870 if (NULL == disp) {
3871 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3872 "vkCmdCopyImageToBuffer2KHR: Invalid commandBuffer "
3873 "[VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter]");
3874 abort(); /* Intentionally fail so user can correct issue. */
3875 }
3876 disp->CmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo);
3877 }
3878
CmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)3879 VKAPI_ATTR void VKAPI_CALL CmdBlitImage2KHR(
3880 VkCommandBuffer commandBuffer,
3881 const VkBlitImageInfo2* pBlitImageInfo) {
3882 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3883 if (NULL == disp) {
3884 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3885 "vkCmdBlitImage2KHR: Invalid commandBuffer "
3886 "[VUID-vkCmdBlitImage2KHR-commandBuffer-parameter]");
3887 abort(); /* Intentionally fail so user can correct issue. */
3888 }
3889 disp->CmdBlitImage2KHR(commandBuffer, pBlitImageInfo);
3890 }
3891
CmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)3892 VKAPI_ATTR void VKAPI_CALL CmdResolveImage2KHR(
3893 VkCommandBuffer commandBuffer,
3894 const VkResolveImageInfo2* pResolveImageInfo) {
3895 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3896 if (NULL == disp) {
3897 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3898 "vkCmdResolveImage2KHR: Invalid commandBuffer "
3899 "[VUID-vkCmdResolveImage2KHR-commandBuffer-parameter]");
3900 abort(); /* Intentionally fail so user can correct issue. */
3901 }
3902 disp->CmdResolveImage2KHR(commandBuffer, pResolveImageInfo);
3903 }
3904
3905
3906 // ---- VK_KHR_ray_tracing_maintenance1 extension trampoline/terminators
3907
CmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,VkDeviceAddress indirectDeviceAddress)3908 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirect2KHR(
3909 VkCommandBuffer commandBuffer,
3910 VkDeviceAddress indirectDeviceAddress) {
3911 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3912 if (NULL == disp) {
3913 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3914 "vkCmdTraceRaysIndirect2KHR: Invalid commandBuffer "
3915 "[VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter]");
3916 abort(); /* Intentionally fail so user can correct issue. */
3917 }
3918 disp->CmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress);
3919 }
3920
3921
3922 // ---- VK_KHR_maintenance4 extension trampoline/terminators
3923
GetDeviceBufferMemoryRequirementsKHR(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3924 VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR(
3925 VkDevice device,
3926 const VkDeviceBufferMemoryRequirements* pInfo,
3927 VkMemoryRequirements2* pMemoryRequirements) {
3928 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3929 if (NULL == disp) {
3930 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3931 "vkGetDeviceBufferMemoryRequirementsKHR: Invalid device "
3932 "[VUID-vkGetDeviceBufferMemoryRequirementsKHR-device-parameter]");
3933 abort(); /* Intentionally fail so user can correct issue. */
3934 }
3935 disp->GetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
3936 }
3937
GetDeviceImageMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)3938 VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR(
3939 VkDevice device,
3940 const VkDeviceImageMemoryRequirements* pInfo,
3941 VkMemoryRequirements2* pMemoryRequirements) {
3942 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3943 if (NULL == disp) {
3944 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3945 "vkGetDeviceImageMemoryRequirementsKHR: Invalid device "
3946 "[VUID-vkGetDeviceImageMemoryRequirementsKHR-device-parameter]");
3947 abort(); /* Intentionally fail so user can correct issue. */
3948 }
3949 disp->GetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
3950 }
3951
GetDeviceImageSparseMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)3952 VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR(
3953 VkDevice device,
3954 const VkDeviceImageMemoryRequirements* pInfo,
3955 uint32_t* pSparseMemoryRequirementCount,
3956 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
3957 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3958 if (NULL == disp) {
3959 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3960 "vkGetDeviceImageSparseMemoryRequirementsKHR: Invalid device "
3961 "[VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-device-parameter]");
3962 abort(); /* Intentionally fail so user can correct issue. */
3963 }
3964 disp->GetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
3965 }
3966
3967
3968 // ---- VK_EXT_debug_marker extension trampoline/terminators
3969
DebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo)3970 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
3971 VkDevice device,
3972 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
3973 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3974 if (NULL == disp) {
3975 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3976 "vkDebugMarkerSetObjectTagEXT: Invalid device "
3977 "[VUID-vkDebugMarkerSetObjectTagEXT-device-parameter]");
3978 abort(); /* Intentionally fail so user can correct issue. */
3979 }
3980 VkDebugMarkerObjectTagInfoEXT local_tag_info;
3981 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
3982 // If this is a physical device, we have to replace it with the proper one for the next call.
3983 if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
3984 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->object;
3985 local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
3986 }
3987 return disp->DebugMarkerSetObjectTagEXT(device, &local_tag_info);
3988 }
3989
terminator_DebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo)3990 VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectTagEXT(
3991 VkDevice device,
3992 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
3993 uint32_t icd_index = 0;
3994 struct loader_device *dev;
3995 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, &icd_index);
3996 if (NULL != icd_term && NULL != icd_term->dispatch.DebugMarkerSetObjectTagEXT) {
3997 VkDebugMarkerObjectTagInfoEXT local_tag_info;
3998 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
3999 // If this is a physical device, we have to replace it with the proper one for the next call.
4000 if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
4001 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->object;
4002 local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
4003 // If this is a KHR_surface, and the ICD has created its own, we have to replace it with the proper one for the next call.
4004 } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
4005 if (NULL != icd_term && NULL != icd_term->dispatch.CreateSwapchainKHR) {
4006 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pTagInfo->object;
4007 if (NULL != icd_surface->real_icd_surfaces) {
4008 local_tag_info.object = (uint64_t)icd_surface->real_icd_surfaces[icd_index];
4009 }
4010 }
4011 }
4012 return icd_term->dispatch.DebugMarkerSetObjectTagEXT(device, &local_tag_info);
4013 } else {
4014 return VK_SUCCESS;
4015 }
4016 }
4017
DebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo)4018 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
4019 VkDevice device,
4020 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
4021 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4022 if (NULL == disp) {
4023 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4024 "vkDebugMarkerSetObjectNameEXT: Invalid device "
4025 "[VUID-vkDebugMarkerSetObjectNameEXT-device-parameter]");
4026 abort(); /* Intentionally fail so user can correct issue. */
4027 }
4028 VkDebugMarkerObjectNameInfoEXT local_name_info;
4029 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
4030 // If this is a physical device, we have to replace it with the proper one for the next call.
4031 if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
4032 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->object;
4033 local_name_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
4034 }
4035 return disp->DebugMarkerSetObjectNameEXT(device, &local_name_info);
4036 }
4037
terminator_DebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo)4038 VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectNameEXT(
4039 VkDevice device,
4040 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
4041 uint32_t icd_index = 0;
4042 struct loader_device *dev;
4043 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, &icd_index);
4044 if (NULL != icd_term && NULL != icd_term->dispatch.DebugMarkerSetObjectNameEXT) {
4045 VkDebugMarkerObjectNameInfoEXT local_name_info;
4046 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
4047 // If this is a physical device, we have to replace it with the proper one for the next call.
4048 if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
4049 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->object;
4050 local_name_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
4051 // If this is a KHR_surface, and the ICD has created its own, we have to replace it with the proper one for the next call.
4052 } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
4053 if (NULL != icd_term && NULL != icd_term->dispatch.CreateSwapchainKHR) {
4054 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pNameInfo->object;
4055 if (NULL != icd_surface->real_icd_surfaces) {
4056 local_name_info.object = (uint64_t)icd_surface->real_icd_surfaces[icd_index];
4057 }
4058 }
4059 }
4060 return icd_term->dispatch.DebugMarkerSetObjectNameEXT(device, &local_name_info);
4061 } else {
4062 return VK_SUCCESS;
4063 }
4064 }
4065
CmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)4066 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(
4067 VkCommandBuffer commandBuffer,
4068 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
4069 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4070 if (NULL == disp) {
4071 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4072 "vkCmdDebugMarkerBeginEXT: Invalid commandBuffer "
4073 "[VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter]");
4074 abort(); /* Intentionally fail so user can correct issue. */
4075 }
4076 disp->CmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
4077 }
4078
CmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer)4079 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT(
4080 VkCommandBuffer commandBuffer) {
4081 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4082 if (NULL == disp) {
4083 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4084 "vkCmdDebugMarkerEndEXT: Invalid commandBuffer "
4085 "[VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter]");
4086 abort(); /* Intentionally fail so user can correct issue. */
4087 }
4088 disp->CmdDebugMarkerEndEXT(commandBuffer);
4089 }
4090
CmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)4091 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(
4092 VkCommandBuffer commandBuffer,
4093 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
4094 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4095 if (NULL == disp) {
4096 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4097 "vkCmdDebugMarkerInsertEXT: Invalid commandBuffer "
4098 "[VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter]");
4099 abort(); /* Intentionally fail so user can correct issue. */
4100 }
4101 disp->CmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
4102 }
4103
4104
4105 // ---- VK_EXT_transform_feedback extension trampoline/terminators
4106
CmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)4107 VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT(
4108 VkCommandBuffer commandBuffer,
4109 uint32_t firstBinding,
4110 uint32_t bindingCount,
4111 const VkBuffer* pBuffers,
4112 const VkDeviceSize* pOffsets,
4113 const VkDeviceSize* pSizes) {
4114 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4115 if (NULL == disp) {
4116 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4117 "vkCmdBindTransformFeedbackBuffersEXT: Invalid commandBuffer "
4118 "[VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter]");
4119 abort(); /* Intentionally fail so user can correct issue. */
4120 }
4121 disp->CmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes);
4122 }
4123
CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)4124 VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT(
4125 VkCommandBuffer commandBuffer,
4126 uint32_t firstCounterBuffer,
4127 uint32_t counterBufferCount,
4128 const VkBuffer* pCounterBuffers,
4129 const VkDeviceSize* pCounterBufferOffsets) {
4130 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4131 if (NULL == disp) {
4132 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4133 "vkCmdBeginTransformFeedbackEXT: Invalid commandBuffer "
4134 "[VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter]");
4135 abort(); /* Intentionally fail so user can correct issue. */
4136 }
4137 disp->CmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
4138 }
4139
CmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)4140 VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT(
4141 VkCommandBuffer commandBuffer,
4142 uint32_t firstCounterBuffer,
4143 uint32_t counterBufferCount,
4144 const VkBuffer* pCounterBuffers,
4145 const VkDeviceSize* pCounterBufferOffsets) {
4146 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4147 if (NULL == disp) {
4148 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4149 "vkCmdEndTransformFeedbackEXT: Invalid commandBuffer "
4150 "[VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter]");
4151 abort(); /* Intentionally fail so user can correct issue. */
4152 }
4153 disp->CmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
4154 }
4155
CmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)4156 VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT(
4157 VkCommandBuffer commandBuffer,
4158 VkQueryPool queryPool,
4159 uint32_t query,
4160 VkQueryControlFlags flags,
4161 uint32_t index) {
4162 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4163 if (NULL == disp) {
4164 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4165 "vkCmdBeginQueryIndexedEXT: Invalid commandBuffer "
4166 "[VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter]");
4167 abort(); /* Intentionally fail so user can correct issue. */
4168 }
4169 disp->CmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index);
4170 }
4171
CmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)4172 VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT(
4173 VkCommandBuffer commandBuffer,
4174 VkQueryPool queryPool,
4175 uint32_t query,
4176 uint32_t index) {
4177 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4178 if (NULL == disp) {
4179 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4180 "vkCmdEndQueryIndexedEXT: Invalid commandBuffer "
4181 "[VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter]");
4182 abort(); /* Intentionally fail so user can correct issue. */
4183 }
4184 disp->CmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index);
4185 }
4186
CmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)4187 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT(
4188 VkCommandBuffer commandBuffer,
4189 uint32_t instanceCount,
4190 uint32_t firstInstance,
4191 VkBuffer counterBuffer,
4192 VkDeviceSize counterBufferOffset,
4193 uint32_t counterOffset,
4194 uint32_t vertexStride) {
4195 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4196 if (NULL == disp) {
4197 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4198 "vkCmdDrawIndirectByteCountEXT: Invalid commandBuffer "
4199 "[VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter]");
4200 abort(); /* Intentionally fail so user can correct issue. */
4201 }
4202 disp->CmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride);
4203 }
4204
4205
4206 // ---- VK_NVX_binary_import extension trampoline/terminators
4207
CreateCuModuleNVX(VkDevice device,const VkCuModuleCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuModuleNVX * pModule)4208 VKAPI_ATTR VkResult VKAPI_CALL CreateCuModuleNVX(
4209 VkDevice device,
4210 const VkCuModuleCreateInfoNVX* pCreateInfo,
4211 const VkAllocationCallbacks* pAllocator,
4212 VkCuModuleNVX* pModule) {
4213 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4214 if (NULL == disp) {
4215 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4216 "vkCreateCuModuleNVX: Invalid device "
4217 "[VUID-vkCreateCuModuleNVX-device-parameter]");
4218 abort(); /* Intentionally fail so user can correct issue. */
4219 }
4220 return disp->CreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule);
4221 }
4222
CreateCuFunctionNVX(VkDevice device,const VkCuFunctionCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuFunctionNVX * pFunction)4223 VKAPI_ATTR VkResult VKAPI_CALL CreateCuFunctionNVX(
4224 VkDevice device,
4225 const VkCuFunctionCreateInfoNVX* pCreateInfo,
4226 const VkAllocationCallbacks* pAllocator,
4227 VkCuFunctionNVX* pFunction) {
4228 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4229 if (NULL == disp) {
4230 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4231 "vkCreateCuFunctionNVX: Invalid device "
4232 "[VUID-vkCreateCuFunctionNVX-device-parameter]");
4233 abort(); /* Intentionally fail so user can correct issue. */
4234 }
4235 return disp->CreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction);
4236 }
4237
DestroyCuModuleNVX(VkDevice device,VkCuModuleNVX module,const VkAllocationCallbacks * pAllocator)4238 VKAPI_ATTR void VKAPI_CALL DestroyCuModuleNVX(
4239 VkDevice device,
4240 VkCuModuleNVX module,
4241 const VkAllocationCallbacks* pAllocator) {
4242 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4243 if (NULL == disp) {
4244 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4245 "vkDestroyCuModuleNVX: Invalid device "
4246 "[VUID-vkDestroyCuModuleNVX-device-parameter]");
4247 abort(); /* Intentionally fail so user can correct issue. */
4248 }
4249 disp->DestroyCuModuleNVX(device, module, pAllocator);
4250 }
4251
DestroyCuFunctionNVX(VkDevice device,VkCuFunctionNVX function,const VkAllocationCallbacks * pAllocator)4252 VKAPI_ATTR void VKAPI_CALL DestroyCuFunctionNVX(
4253 VkDevice device,
4254 VkCuFunctionNVX function,
4255 const VkAllocationCallbacks* pAllocator) {
4256 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4257 if (NULL == disp) {
4258 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4259 "vkDestroyCuFunctionNVX: Invalid device "
4260 "[VUID-vkDestroyCuFunctionNVX-device-parameter]");
4261 abort(); /* Intentionally fail so user can correct issue. */
4262 }
4263 disp->DestroyCuFunctionNVX(device, function, pAllocator);
4264 }
4265
CmdCuLaunchKernelNVX(VkCommandBuffer commandBuffer,const VkCuLaunchInfoNVX * pLaunchInfo)4266 VKAPI_ATTR void VKAPI_CALL CmdCuLaunchKernelNVX(
4267 VkCommandBuffer commandBuffer,
4268 const VkCuLaunchInfoNVX* pLaunchInfo) {
4269 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4270 if (NULL == disp) {
4271 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4272 "vkCmdCuLaunchKernelNVX: Invalid commandBuffer "
4273 "[VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter]");
4274 abort(); /* Intentionally fail so user can correct issue. */
4275 }
4276 disp->CmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo);
4277 }
4278
4279
4280 // ---- VK_NVX_image_view_handle extension trampoline/terminators
4281
GetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo)4282 VKAPI_ATTR uint32_t VKAPI_CALL GetImageViewHandleNVX(
4283 VkDevice device,
4284 const VkImageViewHandleInfoNVX* pInfo) {
4285 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4286 if (NULL == disp) {
4287 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4288 "vkGetImageViewHandleNVX: Invalid device "
4289 "[VUID-vkGetImageViewHandleNVX-device-parameter]");
4290 abort(); /* Intentionally fail so user can correct issue. */
4291 }
4292 return disp->GetImageViewHandleNVX(device, pInfo);
4293 }
4294
GetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties)4295 VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX(
4296 VkDevice device,
4297 VkImageView imageView,
4298 VkImageViewAddressPropertiesNVX* pProperties) {
4299 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4300 if (NULL == disp) {
4301 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4302 "vkGetImageViewAddressNVX: Invalid device "
4303 "[VUID-vkGetImageViewAddressNVX-device-parameter]");
4304 abort(); /* Intentionally fail so user can correct issue. */
4305 }
4306 return disp->GetImageViewAddressNVX(device, imageView, pProperties);
4307 }
4308
4309
4310 // ---- VK_AMD_draw_indirect_count extension trampoline/terminators
4311
CmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4312 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD(
4313 VkCommandBuffer commandBuffer,
4314 VkBuffer buffer,
4315 VkDeviceSize offset,
4316 VkBuffer countBuffer,
4317 VkDeviceSize countBufferOffset,
4318 uint32_t maxDrawCount,
4319 uint32_t stride) {
4320 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4321 if (NULL == disp) {
4322 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4323 "vkCmdDrawIndirectCountAMD: Invalid commandBuffer "
4324 "[VUID-vkCmdDrawIndirectCountAMD-commandBuffer-parameter]");
4325 abort(); /* Intentionally fail so user can correct issue. */
4326 }
4327 disp->CmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4328 }
4329
CmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4330 VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD(
4331 VkCommandBuffer commandBuffer,
4332 VkBuffer buffer,
4333 VkDeviceSize offset,
4334 VkBuffer countBuffer,
4335 VkDeviceSize countBufferOffset,
4336 uint32_t maxDrawCount,
4337 uint32_t stride) {
4338 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4339 if (NULL == disp) {
4340 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4341 "vkCmdDrawIndexedIndirectCountAMD: Invalid commandBuffer "
4342 "[VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-parameter]");
4343 abort(); /* Intentionally fail so user can correct issue. */
4344 }
4345 disp->CmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4346 }
4347
4348
4349 // ---- VK_AMD_shader_info extension trampoline/terminators
4350
GetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo)4351 VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD(
4352 VkDevice device,
4353 VkPipeline pipeline,
4354 VkShaderStageFlagBits shaderStage,
4355 VkShaderInfoTypeAMD infoType,
4356 size_t* pInfoSize,
4357 void* pInfo) {
4358 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4359 if (NULL == disp) {
4360 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4361 "vkGetShaderInfoAMD: Invalid device "
4362 "[VUID-vkGetShaderInfoAMD-device-parameter]");
4363 abort(); /* Intentionally fail so user can correct issue. */
4364 }
4365 return disp->GetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
4366 }
4367
4368
4369 // ---- VK_NV_external_memory_win32 extension trampoline/terminators
4370
4371 #ifdef VK_USE_PLATFORM_WIN32_KHR
GetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle)4372 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV(
4373 VkDevice device,
4374 VkDeviceMemory memory,
4375 VkExternalMemoryHandleTypeFlagsNV handleType,
4376 HANDLE* pHandle) {
4377 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4378 if (NULL == disp) {
4379 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4380 "vkGetMemoryWin32HandleNV: Invalid device "
4381 "[VUID-vkGetMemoryWin32HandleNV-device-parameter]");
4382 abort(); /* Intentionally fail so user can correct issue. */
4383 }
4384 return disp->GetMemoryWin32HandleNV(device, memory, handleType, pHandle);
4385 }
4386
4387 #endif // VK_USE_PLATFORM_WIN32_KHR
4388
4389 // ---- VK_EXT_conditional_rendering extension trampoline/terminators
4390
CmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin)4391 VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRenderingEXT(
4392 VkCommandBuffer commandBuffer,
4393 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
4394 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4395 if (NULL == disp) {
4396 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4397 "vkCmdBeginConditionalRenderingEXT: Invalid commandBuffer "
4398 "[VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter]");
4399 abort(); /* Intentionally fail so user can correct issue. */
4400 }
4401 disp->CmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
4402 }
4403
CmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer)4404 VKAPI_ATTR void VKAPI_CALL CmdEndConditionalRenderingEXT(
4405 VkCommandBuffer commandBuffer) {
4406 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4407 if (NULL == disp) {
4408 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4409 "vkCmdEndConditionalRenderingEXT: Invalid commandBuffer "
4410 "[VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter]");
4411 abort(); /* Intentionally fail so user can correct issue. */
4412 }
4413 disp->CmdEndConditionalRenderingEXT(commandBuffer);
4414 }
4415
4416
4417 // ---- VK_NV_clip_space_w_scaling extension trampoline/terminators
4418
CmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings)4419 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV(
4420 VkCommandBuffer commandBuffer,
4421 uint32_t firstViewport,
4422 uint32_t viewportCount,
4423 const VkViewportWScalingNV* pViewportWScalings) {
4424 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4425 if (NULL == disp) {
4426 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4427 "vkCmdSetViewportWScalingNV: Invalid commandBuffer "
4428 "[VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter]");
4429 abort(); /* Intentionally fail so user can correct issue. */
4430 }
4431 disp->CmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
4432 }
4433
4434
4435 // ---- VK_EXT_display_control extension trampoline/terminators
4436
DisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo)4437 VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT(
4438 VkDevice device,
4439 VkDisplayKHR display,
4440 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
4441 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4442 if (NULL == disp) {
4443 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4444 "vkDisplayPowerControlEXT: Invalid device "
4445 "[VUID-vkDisplayPowerControlEXT-device-parameter]");
4446 abort(); /* Intentionally fail so user can correct issue. */
4447 }
4448 return disp->DisplayPowerControlEXT(device, display, pDisplayPowerInfo);
4449 }
4450
RegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)4451 VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT(
4452 VkDevice device,
4453 const VkDeviceEventInfoEXT* pDeviceEventInfo,
4454 const VkAllocationCallbacks* pAllocator,
4455 VkFence* pFence) {
4456 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4457 if (NULL == disp) {
4458 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4459 "vkRegisterDeviceEventEXT: Invalid device "
4460 "[VUID-vkRegisterDeviceEventEXT-device-parameter]");
4461 abort(); /* Intentionally fail so user can correct issue. */
4462 }
4463 return disp->RegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
4464 }
4465
RegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)4466 VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT(
4467 VkDevice device,
4468 VkDisplayKHR display,
4469 const VkDisplayEventInfoEXT* pDisplayEventInfo,
4470 const VkAllocationCallbacks* pAllocator,
4471 VkFence* pFence) {
4472 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4473 if (NULL == disp) {
4474 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4475 "vkRegisterDisplayEventEXT: Invalid device "
4476 "[VUID-vkRegisterDisplayEventEXT-device-parameter]");
4477 abort(); /* Intentionally fail so user can correct issue. */
4478 }
4479 return disp->RegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
4480 }
4481
GetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue)4482 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT(
4483 VkDevice device,
4484 VkSwapchainKHR swapchain,
4485 VkSurfaceCounterFlagBitsEXT counter,
4486 uint64_t* pCounterValue) {
4487 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4488 if (NULL == disp) {
4489 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4490 "vkGetSwapchainCounterEXT: Invalid device "
4491 "[VUID-vkGetSwapchainCounterEXT-device-parameter]");
4492 abort(); /* Intentionally fail so user can correct issue. */
4493 }
4494 return disp->GetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
4495 }
4496
4497
4498 // ---- VK_GOOGLE_display_timing extension trampoline/terminators
4499
GetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties)4500 VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE(
4501 VkDevice device,
4502 VkSwapchainKHR swapchain,
4503 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
4504 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4505 if (NULL == disp) {
4506 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4507 "vkGetRefreshCycleDurationGOOGLE: Invalid device "
4508 "[VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter]");
4509 abort(); /* Intentionally fail so user can correct issue. */
4510 }
4511 return disp->GetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
4512 }
4513
GetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings)4514 VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE(
4515 VkDevice device,
4516 VkSwapchainKHR swapchain,
4517 uint32_t* pPresentationTimingCount,
4518 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
4519 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4520 if (NULL == disp) {
4521 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4522 "vkGetPastPresentationTimingGOOGLE: Invalid device "
4523 "[VUID-vkGetPastPresentationTimingGOOGLE-device-parameter]");
4524 abort(); /* Intentionally fail so user can correct issue. */
4525 }
4526 return disp->GetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
4527 }
4528
4529
4530 // ---- VK_EXT_discard_rectangles extension trampoline/terminators
4531
CmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles)4532 VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT(
4533 VkCommandBuffer commandBuffer,
4534 uint32_t firstDiscardRectangle,
4535 uint32_t discardRectangleCount,
4536 const VkRect2D* pDiscardRectangles) {
4537 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4538 if (NULL == disp) {
4539 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4540 "vkCmdSetDiscardRectangleEXT: Invalid commandBuffer "
4541 "[VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter]");
4542 abort(); /* Intentionally fail so user can correct issue. */
4543 }
4544 disp->CmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
4545 }
4546
4547
4548 // ---- VK_EXT_hdr_metadata extension trampoline/terminators
4549
SetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata)4550 VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT(
4551 VkDevice device,
4552 uint32_t swapchainCount,
4553 const VkSwapchainKHR* pSwapchains,
4554 const VkHdrMetadataEXT* pMetadata) {
4555 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4556 if (NULL == disp) {
4557 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4558 "vkSetHdrMetadataEXT: Invalid device "
4559 "[VUID-vkSetHdrMetadataEXT-device-parameter]");
4560 abort(); /* Intentionally fail so user can correct issue. */
4561 }
4562 disp->SetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
4563 }
4564
4565
4566 // ---- VK_EXT_debug_utils extension trampoline/terminators
4567
SetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)4568 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
4569 VkDevice device,
4570 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
4571 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4572 if (NULL == disp) {
4573 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4574 "vkSetDebugUtilsObjectNameEXT: Invalid device "
4575 "[VUID-vkSetDebugUtilsObjectNameEXT-device-parameter]");
4576 abort(); /* Intentionally fail so user can correct issue. */
4577 }
4578 VkDebugUtilsObjectNameInfoEXT local_name_info;
4579 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
4580 // If this is a physical device, we have to replace it with the proper one for the next call.
4581 if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
4582 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->objectHandle;
4583 local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
4584 }
4585 if (disp->SetDebugUtilsObjectNameEXT != NULL) {
4586 return disp->SetDebugUtilsObjectNameEXT(device, &local_name_info);
4587 } else {
4588 return VK_SUCCESS;
4589 }
4590 }
4591
terminator_SetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)4592 VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectNameEXT(
4593 VkDevice device,
4594 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
4595 uint32_t icd_index = 0;
4596 struct loader_device *dev;
4597 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, &icd_index);
4598 if (NULL != icd_term && NULL != icd_term->dispatch.SetDebugUtilsObjectNameEXT) {
4599 VkDebugUtilsObjectNameInfoEXT local_name_info;
4600 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
4601 // If this is a physical device, we have to replace it with the proper one for the next call.
4602 if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
4603 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->objectHandle;
4604 local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
4605 // If this is a KHR_surface, and the ICD has created its own, we have to replace it with the proper one for the next call.
4606 } else if (pNameInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
4607 if (NULL != icd_term && NULL != icd_term->dispatch.CreateSwapchainKHR) {
4608 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pNameInfo->objectHandle;
4609 if (NULL != icd_surface->real_icd_surfaces) {
4610 local_name_info.objectHandle = (uint64_t)icd_surface->real_icd_surfaces[icd_index];
4611 }
4612 }
4613 }
4614 return icd_term->dispatch.SetDebugUtilsObjectNameEXT(device, &local_name_info);
4615 } else {
4616 return VK_SUCCESS;
4617 }
4618 }
4619
SetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)4620 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
4621 VkDevice device,
4622 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
4623 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4624 if (NULL == disp) {
4625 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4626 "vkSetDebugUtilsObjectTagEXT: Invalid device "
4627 "[VUID-vkSetDebugUtilsObjectTagEXT-device-parameter]");
4628 abort(); /* Intentionally fail so user can correct issue. */
4629 }
4630 VkDebugUtilsObjectTagInfoEXT local_tag_info;
4631 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
4632 // If this is a physical device, we have to replace it with the proper one for the next call.
4633 if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
4634 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->objectHandle;
4635 local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
4636 }
4637 if (disp->SetDebugUtilsObjectTagEXT != NULL) {
4638 return disp->SetDebugUtilsObjectTagEXT(device, &local_tag_info);
4639 } else {
4640 return VK_SUCCESS;
4641 }
4642 }
4643
terminator_SetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)4644 VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectTagEXT(
4645 VkDevice device,
4646 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
4647 uint32_t icd_index = 0;
4648 struct loader_device *dev;
4649 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, &icd_index);
4650 if (NULL != icd_term && NULL != icd_term->dispatch.SetDebugUtilsObjectTagEXT) {
4651 VkDebugUtilsObjectTagInfoEXT local_tag_info;
4652 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
4653 // If this is a physical device, we have to replace it with the proper one for the next call.
4654 if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
4655 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->objectHandle;
4656 local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
4657 // If this is a KHR_surface, and the ICD has created its own, we have to replace it with the proper one for the next call.
4658 } else if (pTagInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
4659 if (NULL != icd_term && NULL != icd_term->dispatch.CreateSwapchainKHR) {
4660 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pTagInfo->objectHandle;
4661 if (NULL != icd_surface->real_icd_surfaces) {
4662 local_tag_info.objectHandle = (uint64_t)icd_surface->real_icd_surfaces[icd_index];
4663 }
4664 }
4665 }
4666 return icd_term->dispatch.SetDebugUtilsObjectTagEXT(device, &local_tag_info);
4667 } else {
4668 return VK_SUCCESS;
4669 }
4670 }
4671
QueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4672 VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT(
4673 VkQueue queue,
4674 const VkDebugUtilsLabelEXT* pLabelInfo) {
4675 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
4676 if (NULL == disp) {
4677 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4678 "vkQueueBeginDebugUtilsLabelEXT: Invalid queue "
4679 "[VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter]");
4680 abort(); /* Intentionally fail so user can correct issue. */
4681 }
4682 if (disp->QueueBeginDebugUtilsLabelEXT != NULL) {
4683 disp->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
4684 }
4685 }
4686
terminator_QueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4687 VKAPI_ATTR void VKAPI_CALL terminator_QueueBeginDebugUtilsLabelEXT(
4688 VkQueue queue,
4689 const VkDebugUtilsLabelEXT* pLabelInfo) {
4690 uint32_t icd_index = 0;
4691 struct loader_device *dev;
4692 struct loader_icd_term *icd_term = loader_get_icd_and_device(queue, &dev, &icd_index);
4693 if (NULL != icd_term && NULL != icd_term->dispatch.QueueBeginDebugUtilsLabelEXT) {
4694 icd_term->dispatch.QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
4695 }
4696 }
4697
QueueEndDebugUtilsLabelEXT(VkQueue queue)4698 VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT(
4699 VkQueue queue) {
4700 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
4701 if (NULL == disp) {
4702 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4703 "vkQueueEndDebugUtilsLabelEXT: Invalid queue "
4704 "[VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter]");
4705 abort(); /* Intentionally fail so user can correct issue. */
4706 }
4707 if (disp->QueueEndDebugUtilsLabelEXT != NULL) {
4708 disp->QueueEndDebugUtilsLabelEXT(queue);
4709 }
4710 }
4711
terminator_QueueEndDebugUtilsLabelEXT(VkQueue queue)4712 VKAPI_ATTR void VKAPI_CALL terminator_QueueEndDebugUtilsLabelEXT(
4713 VkQueue queue) {
4714 uint32_t icd_index = 0;
4715 struct loader_device *dev;
4716 struct loader_icd_term *icd_term = loader_get_icd_and_device(queue, &dev, &icd_index);
4717 if (NULL != icd_term && NULL != icd_term->dispatch.QueueEndDebugUtilsLabelEXT) {
4718 icd_term->dispatch.QueueEndDebugUtilsLabelEXT(queue);
4719 }
4720 }
4721
QueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4722 VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT(
4723 VkQueue queue,
4724 const VkDebugUtilsLabelEXT* pLabelInfo) {
4725 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
4726 if (NULL == disp) {
4727 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4728 "vkQueueInsertDebugUtilsLabelEXT: Invalid queue "
4729 "[VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter]");
4730 abort(); /* Intentionally fail so user can correct issue. */
4731 }
4732 if (disp->QueueInsertDebugUtilsLabelEXT != NULL) {
4733 disp->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
4734 }
4735 }
4736
terminator_QueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)4737 VKAPI_ATTR void VKAPI_CALL terminator_QueueInsertDebugUtilsLabelEXT(
4738 VkQueue queue,
4739 const VkDebugUtilsLabelEXT* pLabelInfo) {
4740 uint32_t icd_index = 0;
4741 struct loader_device *dev;
4742 struct loader_icd_term *icd_term = loader_get_icd_and_device(queue, &dev, &icd_index);
4743 if (NULL != icd_term && NULL != icd_term->dispatch.QueueInsertDebugUtilsLabelEXT) {
4744 icd_term->dispatch.QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
4745 }
4746 }
4747
CmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4748 VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT(
4749 VkCommandBuffer commandBuffer,
4750 const VkDebugUtilsLabelEXT* pLabelInfo) {
4751 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4752 if (NULL == disp) {
4753 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4754 "vkCmdBeginDebugUtilsLabelEXT: Invalid commandBuffer "
4755 "[VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter]");
4756 abort(); /* Intentionally fail so user can correct issue. */
4757 }
4758 if (disp->CmdBeginDebugUtilsLabelEXT != NULL) {
4759 disp->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
4760 }
4761 }
4762
terminator_CmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4763 VKAPI_ATTR void VKAPI_CALL terminator_CmdBeginDebugUtilsLabelEXT(
4764 VkCommandBuffer commandBuffer,
4765 const VkDebugUtilsLabelEXT* pLabelInfo) {
4766 uint32_t icd_index = 0;
4767 struct loader_device *dev;
4768 struct loader_icd_term *icd_term = loader_get_icd_and_device(commandBuffer, &dev, &icd_index);
4769 if (NULL != icd_term && NULL != icd_term->dispatch.CmdBeginDebugUtilsLabelEXT) {
4770 icd_term->dispatch.CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
4771 }
4772 }
4773
CmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)4774 VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT(
4775 VkCommandBuffer commandBuffer) {
4776 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4777 if (NULL == disp) {
4778 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4779 "vkCmdEndDebugUtilsLabelEXT: Invalid commandBuffer "
4780 "[VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter]");
4781 abort(); /* Intentionally fail so user can correct issue. */
4782 }
4783 if (disp->CmdEndDebugUtilsLabelEXT != NULL) {
4784 disp->CmdEndDebugUtilsLabelEXT(commandBuffer);
4785 }
4786 }
4787
terminator_CmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)4788 VKAPI_ATTR void VKAPI_CALL terminator_CmdEndDebugUtilsLabelEXT(
4789 VkCommandBuffer commandBuffer) {
4790 uint32_t icd_index = 0;
4791 struct loader_device *dev;
4792 struct loader_icd_term *icd_term = loader_get_icd_and_device(commandBuffer, &dev, &icd_index);
4793 if (NULL != icd_term && NULL != icd_term->dispatch.CmdEndDebugUtilsLabelEXT) {
4794 icd_term->dispatch.CmdEndDebugUtilsLabelEXT(commandBuffer);
4795 }
4796 }
4797
CmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4798 VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT(
4799 VkCommandBuffer commandBuffer,
4800 const VkDebugUtilsLabelEXT* pLabelInfo) {
4801 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4802 if (NULL == disp) {
4803 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4804 "vkCmdInsertDebugUtilsLabelEXT: Invalid commandBuffer "
4805 "[VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter]");
4806 abort(); /* Intentionally fail so user can correct issue. */
4807 }
4808 if (disp->CmdInsertDebugUtilsLabelEXT != NULL) {
4809 disp->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
4810 }
4811 }
4812
terminator_CmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)4813 VKAPI_ATTR void VKAPI_CALL terminator_CmdInsertDebugUtilsLabelEXT(
4814 VkCommandBuffer commandBuffer,
4815 const VkDebugUtilsLabelEXT* pLabelInfo) {
4816 uint32_t icd_index = 0;
4817 struct loader_device *dev;
4818 struct loader_icd_term *icd_term = loader_get_icd_and_device(commandBuffer, &dev, &icd_index);
4819 if (NULL != icd_term && NULL != icd_term->dispatch.CmdInsertDebugUtilsLabelEXT) {
4820 icd_term->dispatch.CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
4821 }
4822 }
4823
4824
4825 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension trampoline/terminators
4826
4827 #ifdef VK_USE_PLATFORM_ANDROID_KHR
GetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties)4828 VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID(
4829 VkDevice device,
4830 const struct AHardwareBuffer* buffer,
4831 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
4832 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4833 if (NULL == disp) {
4834 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4835 "vkGetAndroidHardwareBufferPropertiesANDROID: Invalid device "
4836 "[VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter]");
4837 abort(); /* Intentionally fail so user can correct issue. */
4838 }
4839 return disp->GetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
4840 }
4841
4842 #endif // VK_USE_PLATFORM_ANDROID_KHR
4843 #ifdef VK_USE_PLATFORM_ANDROID_KHR
GetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer)4844 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID(
4845 VkDevice device,
4846 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
4847 struct AHardwareBuffer** pBuffer) {
4848 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4849 if (NULL == disp) {
4850 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4851 "vkGetMemoryAndroidHardwareBufferANDROID: Invalid device "
4852 "[VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter]");
4853 abort(); /* Intentionally fail so user can correct issue. */
4854 }
4855 return disp->GetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
4856 }
4857
4858 #endif // VK_USE_PLATFORM_ANDROID_KHR
4859
4860 // ---- VK_EXT_sample_locations extension trampoline/terminators
4861
CmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo)4862 VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEXT(
4863 VkCommandBuffer commandBuffer,
4864 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
4865 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4866 if (NULL == disp) {
4867 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4868 "vkCmdSetSampleLocationsEXT: Invalid commandBuffer "
4869 "[VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter]");
4870 abort(); /* Intentionally fail so user can correct issue. */
4871 }
4872 disp->CmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
4873 }
4874
GetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties)4875 VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT(
4876 VkPhysicalDevice physicalDevice,
4877 VkSampleCountFlagBits samples,
4878 VkMultisamplePropertiesEXT* pMultisampleProperties) {
4879 const VkLayerInstanceDispatchTable *disp;
4880 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4881 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4882 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4883 "vkGetPhysicalDeviceMultisamplePropertiesEXT: Invalid physicalDevice "
4884 "[VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter]");
4885 abort(); /* Intentionally fail so user can correct issue. */
4886 }
4887 disp = loader_get_instance_layer_dispatch(physicalDevice);
4888 disp->GetPhysicalDeviceMultisamplePropertiesEXT(unwrapped_phys_dev, samples, pMultisampleProperties);
4889 }
4890
terminator_GetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties)4891 VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMultisamplePropertiesEXT(
4892 VkPhysicalDevice physicalDevice,
4893 VkSampleCountFlagBits samples,
4894 VkMultisamplePropertiesEXT* pMultisampleProperties) {
4895 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4896 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4897 if (NULL == icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT) {
4898 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
4899 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceMultisamplePropertiesEXT");
4900 abort(); /* Intentionally fail so user can correct issue. */
4901 }
4902 icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT(phys_dev_term->phys_dev, samples, pMultisampleProperties);
4903 }
4904
4905
4906 // ---- VK_EXT_image_drm_format_modifier extension trampoline/terminators
4907
GetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties)4908 VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT(
4909 VkDevice device,
4910 VkImage image,
4911 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
4912 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4913 if (NULL == disp) {
4914 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4915 "vkGetImageDrmFormatModifierPropertiesEXT: Invalid device "
4916 "[VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter]");
4917 abort(); /* Intentionally fail so user can correct issue. */
4918 }
4919 return disp->GetImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
4920 }
4921
4922
4923 // ---- VK_EXT_validation_cache extension trampoline/terminators
4924
CreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache)4925 VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT(
4926 VkDevice device,
4927 const VkValidationCacheCreateInfoEXT* pCreateInfo,
4928 const VkAllocationCallbacks* pAllocator,
4929 VkValidationCacheEXT* pValidationCache) {
4930 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4931 if (NULL == disp) {
4932 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4933 "vkCreateValidationCacheEXT: Invalid device "
4934 "[VUID-vkCreateValidationCacheEXT-device-parameter]");
4935 abort(); /* Intentionally fail so user can correct issue. */
4936 }
4937 return disp->CreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
4938 }
4939
DestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator)4940 VKAPI_ATTR void VKAPI_CALL DestroyValidationCacheEXT(
4941 VkDevice device,
4942 VkValidationCacheEXT validationCache,
4943 const VkAllocationCallbacks* pAllocator) {
4944 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4945 if (NULL == disp) {
4946 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4947 "vkDestroyValidationCacheEXT: Invalid device "
4948 "[VUID-vkDestroyValidationCacheEXT-device-parameter]");
4949 abort(); /* Intentionally fail so user can correct issue. */
4950 }
4951 disp->DestroyValidationCacheEXT(device, validationCache, pAllocator);
4952 }
4953
MergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches)4954 VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT(
4955 VkDevice device,
4956 VkValidationCacheEXT dstCache,
4957 uint32_t srcCacheCount,
4958 const VkValidationCacheEXT* pSrcCaches) {
4959 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4960 if (NULL == disp) {
4961 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4962 "vkMergeValidationCachesEXT: Invalid device "
4963 "[VUID-vkMergeValidationCachesEXT-device-parameter]");
4964 abort(); /* Intentionally fail so user can correct issue. */
4965 }
4966 return disp->MergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
4967 }
4968
GetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData)4969 VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT(
4970 VkDevice device,
4971 VkValidationCacheEXT validationCache,
4972 size_t* pDataSize,
4973 void* pData) {
4974 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4975 if (NULL == disp) {
4976 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4977 "vkGetValidationCacheDataEXT: Invalid device "
4978 "[VUID-vkGetValidationCacheDataEXT-device-parameter]");
4979 abort(); /* Intentionally fail so user can correct issue. */
4980 }
4981 return disp->GetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
4982 }
4983
4984
4985 // ---- VK_NV_shading_rate_image extension trampoline/terminators
4986
CmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)4987 VKAPI_ATTR void VKAPI_CALL CmdBindShadingRateImageNV(
4988 VkCommandBuffer commandBuffer,
4989 VkImageView imageView,
4990 VkImageLayout imageLayout) {
4991 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4992 if (NULL == disp) {
4993 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4994 "vkCmdBindShadingRateImageNV: Invalid commandBuffer "
4995 "[VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter]");
4996 abort(); /* Intentionally fail so user can correct issue. */
4997 }
4998 disp->CmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout);
4999 }
5000
CmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes)5001 VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV(
5002 VkCommandBuffer commandBuffer,
5003 uint32_t firstViewport,
5004 uint32_t viewportCount,
5005 const VkShadingRatePaletteNV* pShadingRatePalettes) {
5006 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5007 if (NULL == disp) {
5008 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5009 "vkCmdSetViewportShadingRatePaletteNV: Invalid commandBuffer "
5010 "[VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter]");
5011 abort(); /* Intentionally fail so user can correct issue. */
5012 }
5013 disp->CmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes);
5014 }
5015
CmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders)5016 VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV(
5017 VkCommandBuffer commandBuffer,
5018 VkCoarseSampleOrderTypeNV sampleOrderType,
5019 uint32_t customSampleOrderCount,
5020 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
5021 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5022 if (NULL == disp) {
5023 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5024 "vkCmdSetCoarseSampleOrderNV: Invalid commandBuffer "
5025 "[VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter]");
5026 abort(); /* Intentionally fail so user can correct issue. */
5027 }
5028 disp->CmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders);
5029 }
5030
5031
5032 // ---- VK_NV_ray_tracing extension trampoline/terminators
5033
CreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure)5034 VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV(
5035 VkDevice device,
5036 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
5037 const VkAllocationCallbacks* pAllocator,
5038 VkAccelerationStructureNV* pAccelerationStructure) {
5039 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5040 if (NULL == disp) {
5041 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5042 "vkCreateAccelerationStructureNV: Invalid device "
5043 "[VUID-vkCreateAccelerationStructureNV-device-parameter]");
5044 abort(); /* Intentionally fail so user can correct issue. */
5045 }
5046 return disp->CreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
5047 }
5048
DestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator)5049 VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureNV(
5050 VkDevice device,
5051 VkAccelerationStructureNV accelerationStructure,
5052 const VkAllocationCallbacks* pAllocator) {
5053 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5054 if (NULL == disp) {
5055 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5056 "vkDestroyAccelerationStructureNV: Invalid device "
5057 "[VUID-vkDestroyAccelerationStructureNV-device-parameter]");
5058 abort(); /* Intentionally fail so user can correct issue. */
5059 }
5060 disp->DestroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
5061 }
5062
GetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements)5063 VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureMemoryRequirementsNV(
5064 VkDevice device,
5065 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
5066 VkMemoryRequirements2KHR* pMemoryRequirements) {
5067 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5068 if (NULL == disp) {
5069 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5070 "vkGetAccelerationStructureMemoryRequirementsNV: Invalid device "
5071 "[VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter]");
5072 abort(); /* Intentionally fail so user can correct issue. */
5073 }
5074 disp->GetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
5075 }
5076
BindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos)5077 VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV(
5078 VkDevice device,
5079 uint32_t bindInfoCount,
5080 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
5081 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5082 if (NULL == disp) {
5083 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5084 "vkBindAccelerationStructureMemoryNV: Invalid device "
5085 "[VUID-vkBindAccelerationStructureMemoryNV-device-parameter]");
5086 abort(); /* Intentionally fail so user can correct issue. */
5087 }
5088 return disp->BindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
5089 }
5090
CmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset)5091 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV(
5092 VkCommandBuffer commandBuffer,
5093 const VkAccelerationStructureInfoNV* pInfo,
5094 VkBuffer instanceData,
5095 VkDeviceSize instanceOffset,
5096 VkBool32 update,
5097 VkAccelerationStructureNV dst,
5098 VkAccelerationStructureNV src,
5099 VkBuffer scratch,
5100 VkDeviceSize scratchOffset) {
5101 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5102 if (NULL == disp) {
5103 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5104 "vkCmdBuildAccelerationStructureNV: Invalid commandBuffer "
5105 "[VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter]");
5106 abort(); /* Intentionally fail so user can correct issue. */
5107 }
5108 disp->CmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
5109 }
5110
CmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeKHR mode)5111 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV(
5112 VkCommandBuffer commandBuffer,
5113 VkAccelerationStructureNV dst,
5114 VkAccelerationStructureNV src,
5115 VkCopyAccelerationStructureModeKHR mode) {
5116 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5117 if (NULL == disp) {
5118 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5119 "vkCmdCopyAccelerationStructureNV: Invalid commandBuffer "
5120 "[VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter]");
5121 abort(); /* Intentionally fail so user can correct issue. */
5122 }
5123 disp->CmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
5124 }
5125
CmdTraceRaysNV(VkCommandBuffer commandBuffer,VkBuffer raygenShaderBindingTableBuffer,VkDeviceSize raygenShaderBindingOffset,VkBuffer missShaderBindingTableBuffer,VkDeviceSize missShaderBindingOffset,VkDeviceSize missShaderBindingStride,VkBuffer hitShaderBindingTableBuffer,VkDeviceSize hitShaderBindingOffset,VkDeviceSize hitShaderBindingStride,VkBuffer callableShaderBindingTableBuffer,VkDeviceSize callableShaderBindingOffset,VkDeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth)5126 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV(
5127 VkCommandBuffer commandBuffer,
5128 VkBuffer raygenShaderBindingTableBuffer,
5129 VkDeviceSize raygenShaderBindingOffset,
5130 VkBuffer missShaderBindingTableBuffer,
5131 VkDeviceSize missShaderBindingOffset,
5132 VkDeviceSize missShaderBindingStride,
5133 VkBuffer hitShaderBindingTableBuffer,
5134 VkDeviceSize hitShaderBindingOffset,
5135 VkDeviceSize hitShaderBindingStride,
5136 VkBuffer callableShaderBindingTableBuffer,
5137 VkDeviceSize callableShaderBindingOffset,
5138 VkDeviceSize callableShaderBindingStride,
5139 uint32_t width,
5140 uint32_t height,
5141 uint32_t depth) {
5142 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5143 if (NULL == disp) {
5144 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5145 "vkCmdTraceRaysNV: Invalid commandBuffer "
5146 "[VUID-vkCmdTraceRaysNV-commandBuffer-parameter]");
5147 abort(); /* Intentionally fail so user can correct issue. */
5148 }
5149 disp->CmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth);
5150 }
5151
CreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)5152 VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesNV(
5153 VkDevice device,
5154 VkPipelineCache pipelineCache,
5155 uint32_t createInfoCount,
5156 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
5157 const VkAllocationCallbacks* pAllocator,
5158 VkPipeline* pPipelines) {
5159 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5160 if (NULL == disp) {
5161 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5162 "vkCreateRayTracingPipelinesNV: Invalid device "
5163 "[VUID-vkCreateRayTracingPipelinesNV-device-parameter]");
5164 abort(); /* Intentionally fail so user can correct issue. */
5165 }
5166 return disp->CreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
5167 }
5168
GetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)5169 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR(
5170 VkDevice device,
5171 VkPipeline pipeline,
5172 uint32_t firstGroup,
5173 uint32_t groupCount,
5174 size_t dataSize,
5175 void* pData) {
5176 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5177 if (NULL == disp) {
5178 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5179 "vkGetRayTracingShaderGroupHandlesKHR: Invalid device "
5180 "[VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter]");
5181 abort(); /* Intentionally fail so user can correct issue. */
5182 }
5183 return disp->GetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
5184 }
5185
GetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)5186 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV(
5187 VkDevice device,
5188 VkPipeline pipeline,
5189 uint32_t firstGroup,
5190 uint32_t groupCount,
5191 size_t dataSize,
5192 void* pData) {
5193 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5194 if (NULL == disp) {
5195 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5196 "vkGetRayTracingShaderGroupHandlesNV: Invalid device "
5197 "[VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter]");
5198 abort(); /* Intentionally fail so user can correct issue. */
5199 }
5200 return disp->GetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData);
5201 }
5202
GetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData)5203 VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV(
5204 VkDevice device,
5205 VkAccelerationStructureNV accelerationStructure,
5206 size_t dataSize,
5207 void* pData) {
5208 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5209 if (NULL == disp) {
5210 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5211 "vkGetAccelerationStructureHandleNV: Invalid device "
5212 "[VUID-vkGetAccelerationStructureHandleNV-device-parameter]");
5213 abort(); /* Intentionally fail so user can correct issue. */
5214 }
5215 return disp->GetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
5216 }
5217
CmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)5218 VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV(
5219 VkCommandBuffer commandBuffer,
5220 uint32_t accelerationStructureCount,
5221 const VkAccelerationStructureNV* pAccelerationStructures,
5222 VkQueryType queryType,
5223 VkQueryPool queryPool,
5224 uint32_t firstQuery) {
5225 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5226 if (NULL == disp) {
5227 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5228 "vkCmdWriteAccelerationStructuresPropertiesNV: Invalid commandBuffer "
5229 "[VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter]");
5230 abort(); /* Intentionally fail so user can correct issue. */
5231 }
5232 disp->CmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
5233 }
5234
CompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader)5235 VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV(
5236 VkDevice device,
5237 VkPipeline pipeline,
5238 uint32_t shader) {
5239 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5240 if (NULL == disp) {
5241 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5242 "vkCompileDeferredNV: Invalid device "
5243 "[VUID-vkCompileDeferredNV-device-parameter]");
5244 abort(); /* Intentionally fail so user can correct issue. */
5245 }
5246 return disp->CompileDeferredNV(device, pipeline, shader);
5247 }
5248
5249
5250 // ---- VK_EXT_external_memory_host extension trampoline/terminators
5251
GetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties)5252 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT(
5253 VkDevice device,
5254 VkExternalMemoryHandleTypeFlagBits handleType,
5255 const void* pHostPointer,
5256 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
5257 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5258 if (NULL == disp) {
5259 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5260 "vkGetMemoryHostPointerPropertiesEXT: Invalid device "
5261 "[VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter]");
5262 abort(); /* Intentionally fail so user can correct issue. */
5263 }
5264 return disp->GetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
5265 }
5266
5267
5268 // ---- VK_AMD_buffer_marker extension trampoline/terminators
5269
CmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)5270 VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD(
5271 VkCommandBuffer commandBuffer,
5272 VkPipelineStageFlagBits pipelineStage,
5273 VkBuffer dstBuffer,
5274 VkDeviceSize dstOffset,
5275 uint32_t marker) {
5276 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5277 if (NULL == disp) {
5278 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5279 "vkCmdWriteBufferMarkerAMD: Invalid commandBuffer "
5280 "[VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter]");
5281 abort(); /* Intentionally fail so user can correct issue. */
5282 }
5283 disp->CmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
5284 }
5285
5286
5287 // ---- VK_EXT_calibrated_timestamps extension trampoline/terminators
5288
GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains)5289 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(
5290 VkPhysicalDevice physicalDevice,
5291 uint32_t* pTimeDomainCount,
5292 VkTimeDomainEXT* pTimeDomains) {
5293 const VkLayerInstanceDispatchTable *disp;
5294 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5295 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5296 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5297 "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: Invalid physicalDevice "
5298 "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter]");
5299 abort(); /* Intentionally fail so user can correct issue. */
5300 }
5301 disp = loader_get_instance_layer_dispatch(physicalDevice);
5302 return disp->GetPhysicalDeviceCalibrateableTimeDomainsEXT(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
5303 }
5304
terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainEXT * pTimeDomains)5305 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(
5306 VkPhysicalDevice physicalDevice,
5307 uint32_t* pTimeDomainCount,
5308 VkTimeDomainEXT* pTimeDomains) {
5309 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5310 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5311 if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT) {
5312 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
5313 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsEXT");
5314 abort(); /* Intentionally fail so user can correct issue. */
5315 }
5316 return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
5317 }
5318
GetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoEXT * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation)5319 VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT(
5320 VkDevice device,
5321 uint32_t timestampCount,
5322 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
5323 uint64_t* pTimestamps,
5324 uint64_t* pMaxDeviation) {
5325 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5326 if (NULL == disp) {
5327 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5328 "vkGetCalibratedTimestampsEXT: Invalid device "
5329 "[VUID-vkGetCalibratedTimestampsEXT-device-parameter]");
5330 abort(); /* Intentionally fail so user can correct issue. */
5331 }
5332 return disp->GetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
5333 }
5334
5335
5336 // ---- VK_NV_mesh_shader extension trampoline/terminators
5337
CmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask)5338 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV(
5339 VkCommandBuffer commandBuffer,
5340 uint32_t taskCount,
5341 uint32_t firstTask) {
5342 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5343 if (NULL == disp) {
5344 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5345 "vkCmdDrawMeshTasksNV: Invalid commandBuffer "
5346 "[VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter]");
5347 abort(); /* Intentionally fail so user can correct issue. */
5348 }
5349 disp->CmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask);
5350 }
5351
CmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)5352 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV(
5353 VkCommandBuffer commandBuffer,
5354 VkBuffer buffer,
5355 VkDeviceSize offset,
5356 uint32_t drawCount,
5357 uint32_t stride) {
5358 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5359 if (NULL == disp) {
5360 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5361 "vkCmdDrawMeshTasksIndirectNV: Invalid commandBuffer "
5362 "[VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter]");
5363 abort(); /* Intentionally fail so user can correct issue. */
5364 }
5365 disp->CmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride);
5366 }
5367
CmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5368 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV(
5369 VkCommandBuffer commandBuffer,
5370 VkBuffer buffer,
5371 VkDeviceSize offset,
5372 VkBuffer countBuffer,
5373 VkDeviceSize countBufferOffset,
5374 uint32_t maxDrawCount,
5375 uint32_t stride) {
5376 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5377 if (NULL == disp) {
5378 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5379 "vkCmdDrawMeshTasksIndirectCountNV: Invalid commandBuffer "
5380 "[VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter]");
5381 abort(); /* Intentionally fail so user can correct issue. */
5382 }
5383 disp->CmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
5384 }
5385
5386
5387 // ---- VK_NV_scissor_exclusive extension trampoline/terminators
5388
CmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors)5389 VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV(
5390 VkCommandBuffer commandBuffer,
5391 uint32_t firstExclusiveScissor,
5392 uint32_t exclusiveScissorCount,
5393 const VkRect2D* pExclusiveScissors) {
5394 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5395 if (NULL == disp) {
5396 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5397 "vkCmdSetExclusiveScissorNV: Invalid commandBuffer "
5398 "[VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter]");
5399 abort(); /* Intentionally fail so user can correct issue. */
5400 }
5401 disp->CmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors);
5402 }
5403
5404
5405 // ---- VK_NV_device_diagnostic_checkpoints extension trampoline/terminators
5406
CmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker)5407 VKAPI_ATTR void VKAPI_CALL CmdSetCheckpointNV(
5408 VkCommandBuffer commandBuffer,
5409 const void* pCheckpointMarker) {
5410 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5411 if (NULL == disp) {
5412 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5413 "vkCmdSetCheckpointNV: Invalid commandBuffer "
5414 "[VUID-vkCmdSetCheckpointNV-commandBuffer-parameter]");
5415 abort(); /* Intentionally fail so user can correct issue. */
5416 }
5417 disp->CmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
5418 }
5419
GetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData)5420 VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV(
5421 VkQueue queue,
5422 uint32_t* pCheckpointDataCount,
5423 VkCheckpointDataNV* pCheckpointData) {
5424 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
5425 if (NULL == disp) {
5426 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5427 "vkGetQueueCheckpointDataNV: Invalid queue "
5428 "[VUID-vkGetQueueCheckpointDataNV-queue-parameter]");
5429 abort(); /* Intentionally fail so user can correct issue. */
5430 }
5431 disp->GetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
5432 }
5433
5434
5435 // ---- VK_INTEL_performance_query extension trampoline/terminators
5436
InitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo)5437 VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL(
5438 VkDevice device,
5439 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) {
5440 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5441 if (NULL == disp) {
5442 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5443 "vkInitializePerformanceApiINTEL: Invalid device "
5444 "[VUID-vkInitializePerformanceApiINTEL-device-parameter]");
5445 abort(); /* Intentionally fail so user can correct issue. */
5446 }
5447 return disp->InitializePerformanceApiINTEL(device, pInitializeInfo);
5448 }
5449
UninitializePerformanceApiINTEL(VkDevice device)5450 VKAPI_ATTR void VKAPI_CALL UninitializePerformanceApiINTEL(
5451 VkDevice device) {
5452 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5453 if (NULL == disp) {
5454 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5455 "vkUninitializePerformanceApiINTEL: Invalid device "
5456 "[VUID-vkUninitializePerformanceApiINTEL-device-parameter]");
5457 abort(); /* Intentionally fail so user can correct issue. */
5458 }
5459 disp->UninitializePerformanceApiINTEL(device);
5460 }
5461
CmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo)5462 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceMarkerINTEL(
5463 VkCommandBuffer commandBuffer,
5464 const VkPerformanceMarkerInfoINTEL* pMarkerInfo) {
5465 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5466 if (NULL == disp) {
5467 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5468 "vkCmdSetPerformanceMarkerINTEL: Invalid commandBuffer "
5469 "[VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter]");
5470 abort(); /* Intentionally fail so user can correct issue. */
5471 }
5472 return disp->CmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo);
5473 }
5474
CmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo)5475 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceStreamMarkerINTEL(
5476 VkCommandBuffer commandBuffer,
5477 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) {
5478 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5479 if (NULL == disp) {
5480 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5481 "vkCmdSetPerformanceStreamMarkerINTEL: Invalid commandBuffer "
5482 "[VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter]");
5483 abort(); /* Intentionally fail so user can correct issue. */
5484 }
5485 return disp->CmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo);
5486 }
5487
CmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo)5488 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceOverrideINTEL(
5489 VkCommandBuffer commandBuffer,
5490 const VkPerformanceOverrideInfoINTEL* pOverrideInfo) {
5491 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5492 if (NULL == disp) {
5493 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5494 "vkCmdSetPerformanceOverrideINTEL: Invalid commandBuffer "
5495 "[VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter]");
5496 abort(); /* Intentionally fail so user can correct issue. */
5497 }
5498 return disp->CmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo);
5499 }
5500
AcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration)5501 VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL(
5502 VkDevice device,
5503 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
5504 VkPerformanceConfigurationINTEL* pConfiguration) {
5505 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5506 if (NULL == disp) {
5507 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5508 "vkAcquirePerformanceConfigurationINTEL: Invalid device "
5509 "[VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter]");
5510 abort(); /* Intentionally fail so user can correct issue. */
5511 }
5512 return disp->AcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration);
5513 }
5514
ReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration)5515 VKAPI_ATTR VkResult VKAPI_CALL ReleasePerformanceConfigurationINTEL(
5516 VkDevice device,
5517 VkPerformanceConfigurationINTEL configuration) {
5518 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5519 if (NULL == disp) {
5520 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5521 "vkReleasePerformanceConfigurationINTEL: Invalid device "
5522 "[VUID-vkReleasePerformanceConfigurationINTEL-device-parameter]");
5523 abort(); /* Intentionally fail so user can correct issue. */
5524 }
5525 return disp->ReleasePerformanceConfigurationINTEL(device, configuration);
5526 }
5527
QueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration)5528 VKAPI_ATTR VkResult VKAPI_CALL QueueSetPerformanceConfigurationINTEL(
5529 VkQueue queue,
5530 VkPerformanceConfigurationINTEL configuration) {
5531 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
5532 if (NULL == disp) {
5533 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5534 "vkQueueSetPerformanceConfigurationINTEL: Invalid queue "
5535 "[VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter]");
5536 abort(); /* Intentionally fail so user can correct issue. */
5537 }
5538 return disp->QueueSetPerformanceConfigurationINTEL(queue, configuration);
5539 }
5540
GetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue)5541 VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL(
5542 VkDevice device,
5543 VkPerformanceParameterTypeINTEL parameter,
5544 VkPerformanceValueINTEL* pValue) {
5545 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5546 if (NULL == disp) {
5547 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5548 "vkGetPerformanceParameterINTEL: Invalid device "
5549 "[VUID-vkGetPerformanceParameterINTEL-device-parameter]");
5550 abort(); /* Intentionally fail so user can correct issue. */
5551 }
5552 return disp->GetPerformanceParameterINTEL(device, parameter, pValue);
5553 }
5554
5555
5556 // ---- VK_AMD_display_native_hdr extension trampoline/terminators
5557
SetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable)5558 VKAPI_ATTR void VKAPI_CALL SetLocalDimmingAMD(
5559 VkDevice device,
5560 VkSwapchainKHR swapChain,
5561 VkBool32 localDimmingEnable) {
5562 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5563 if (NULL == disp) {
5564 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5565 "vkSetLocalDimmingAMD: Invalid device "
5566 "[VUID-vkSetLocalDimmingAMD-device-parameter]");
5567 abort(); /* Intentionally fail so user can correct issue. */
5568 }
5569 disp->SetLocalDimmingAMD(device, swapChain, localDimmingEnable);
5570 }
5571
5572
5573 // ---- VK_EXT_buffer_device_address extension trampoline/terminators
5574
GetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)5575 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT(
5576 VkDevice device,
5577 const VkBufferDeviceAddressInfo* pInfo) {
5578 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5579 if (NULL == disp) {
5580 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5581 "vkGetBufferDeviceAddressEXT: Invalid device "
5582 "[VUID-vkGetBufferDeviceAddressEXT-device-parameter]");
5583 abort(); /* Intentionally fail so user can correct issue. */
5584 }
5585 return disp->GetBufferDeviceAddressEXT(device, pInfo);
5586 }
5587
5588
5589 // ---- VK_NV_cooperative_matrix extension trampoline/terminators
5590
GetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties)5591 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV(
5592 VkPhysicalDevice physicalDevice,
5593 uint32_t* pPropertyCount,
5594 VkCooperativeMatrixPropertiesNV* pProperties) {
5595 const VkLayerInstanceDispatchTable *disp;
5596 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5597 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5598 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5599 "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV: Invalid physicalDevice "
5600 "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter]");
5601 abort(); /* Intentionally fail so user can correct issue. */
5602 }
5603 disp = loader_get_instance_layer_dispatch(physicalDevice);
5604 return disp->GetPhysicalDeviceCooperativeMatrixPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
5605 }
5606
terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties)5607 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(
5608 VkPhysicalDevice physicalDevice,
5609 uint32_t* pPropertyCount,
5610 VkCooperativeMatrixPropertiesNV* pProperties) {
5611 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5612 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5613 if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV) {
5614 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
5615 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesNV");
5616 abort(); /* Intentionally fail so user can correct issue. */
5617 }
5618 return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
5619 }
5620
5621
5622 // ---- VK_NV_coverage_reduction_mode extension trampoline/terminators
5623
GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations)5624 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
5625 VkPhysicalDevice physicalDevice,
5626 uint32_t* pCombinationCount,
5627 VkFramebufferMixedSamplesCombinationNV* pCombinations) {
5628 const VkLayerInstanceDispatchTable *disp;
5629 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5630 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5631 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5632 "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: Invalid physicalDevice "
5633 "[VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter]");
5634 abort(); /* Intentionally fail so user can correct issue. */
5635 }
5636 disp = loader_get_instance_layer_dispatch(physicalDevice);
5637 return disp->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(unwrapped_phys_dev, pCombinationCount, pCombinations);
5638 }
5639
terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations)5640 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
5641 VkPhysicalDevice physicalDevice,
5642 uint32_t* pCombinationCount,
5643 VkFramebufferMixedSamplesCombinationNV* pCombinations) {
5644 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5645 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5646 if (NULL == icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) {
5647 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
5648 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
5649 abort(); /* Intentionally fail so user can correct issue. */
5650 }
5651 return icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(phys_dev_term->phys_dev, pCombinationCount, pCombinations);
5652 }
5653
5654
5655 // ---- VK_EXT_full_screen_exclusive extension trampoline/terminators
5656
5657 #ifdef VK_USE_PLATFORM_WIN32_KHR
AcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)5658 VKAPI_ATTR VkResult VKAPI_CALL AcquireFullScreenExclusiveModeEXT(
5659 VkDevice device,
5660 VkSwapchainKHR swapchain) {
5661 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5662 if (NULL == disp) {
5663 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5664 "vkAcquireFullScreenExclusiveModeEXT: Invalid device "
5665 "[VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter]");
5666 abort(); /* Intentionally fail so user can correct issue. */
5667 }
5668 return disp->AcquireFullScreenExclusiveModeEXT(device, swapchain);
5669 }
5670
5671 #endif // VK_USE_PLATFORM_WIN32_KHR
5672 #ifdef VK_USE_PLATFORM_WIN32_KHR
ReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)5673 VKAPI_ATTR VkResult VKAPI_CALL ReleaseFullScreenExclusiveModeEXT(
5674 VkDevice device,
5675 VkSwapchainKHR swapchain) {
5676 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5677 if (NULL == disp) {
5678 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5679 "vkReleaseFullScreenExclusiveModeEXT: Invalid device "
5680 "[VUID-vkReleaseFullScreenExclusiveModeEXT-device-parameter]");
5681 abort(); /* Intentionally fail so user can correct issue. */
5682 }
5683 return disp->ReleaseFullScreenExclusiveModeEXT(device, swapchain);
5684 }
5685
5686 #endif // VK_USE_PLATFORM_WIN32_KHR
5687
5688 // ---- VK_EXT_line_rasterization extension trampoline/terminators
5689
CmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)5690 VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEXT(
5691 VkCommandBuffer commandBuffer,
5692 uint32_t lineStippleFactor,
5693 uint16_t lineStipplePattern) {
5694 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5695 if (NULL == disp) {
5696 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5697 "vkCmdSetLineStippleEXT: Invalid commandBuffer "
5698 "[VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter]");
5699 abort(); /* Intentionally fail so user can correct issue. */
5700 }
5701 disp->CmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
5702 }
5703
5704
5705 // ---- VK_EXT_host_query_reset extension trampoline/terminators
5706
ResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)5707 VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT(
5708 VkDevice device,
5709 VkQueryPool queryPool,
5710 uint32_t firstQuery,
5711 uint32_t queryCount) {
5712 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5713 if (NULL == disp) {
5714 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5715 "vkResetQueryPoolEXT: Invalid device "
5716 "[VUID-vkResetQueryPoolEXT-device-parameter]");
5717 abort(); /* Intentionally fail so user can correct issue. */
5718 }
5719 disp->ResetQueryPoolEXT(device, queryPool, firstQuery, queryCount);
5720 }
5721
5722
5723 // ---- VK_EXT_extended_dynamic_state extension trampoline/terminators
5724
CmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)5725 VKAPI_ATTR void VKAPI_CALL CmdSetCullModeEXT(
5726 VkCommandBuffer commandBuffer,
5727 VkCullModeFlags cullMode) {
5728 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5729 if (NULL == disp) {
5730 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5731 "vkCmdSetCullModeEXT: Invalid commandBuffer "
5732 "[VUID-vkCmdSetCullModeEXT-commandBuffer-parameter]");
5733 abort(); /* Intentionally fail so user can correct issue. */
5734 }
5735 disp->CmdSetCullModeEXT(commandBuffer, cullMode);
5736 }
5737
CmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace)5738 VKAPI_ATTR void VKAPI_CALL CmdSetFrontFaceEXT(
5739 VkCommandBuffer commandBuffer,
5740 VkFrontFace frontFace) {
5741 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5742 if (NULL == disp) {
5743 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5744 "vkCmdSetFrontFaceEXT: Invalid commandBuffer "
5745 "[VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter]");
5746 abort(); /* Intentionally fail so user can correct issue. */
5747 }
5748 disp->CmdSetFrontFaceEXT(commandBuffer, frontFace);
5749 }
5750
CmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)5751 VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopologyEXT(
5752 VkCommandBuffer commandBuffer,
5753 VkPrimitiveTopology primitiveTopology) {
5754 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5755 if (NULL == disp) {
5756 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5757 "vkCmdSetPrimitiveTopologyEXT: Invalid commandBuffer "
5758 "[VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter]");
5759 abort(); /* Intentionally fail so user can correct issue. */
5760 }
5761 disp->CmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology);
5762 }
5763
CmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)5764 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT(
5765 VkCommandBuffer commandBuffer,
5766 uint32_t viewportCount,
5767 const VkViewport* pViewports) {
5768 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5769 if (NULL == disp) {
5770 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5771 "vkCmdSetViewportWithCountEXT: Invalid commandBuffer "
5772 "[VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter]");
5773 abort(); /* Intentionally fail so user can correct issue. */
5774 }
5775 disp->CmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports);
5776 }
5777
CmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)5778 VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT(
5779 VkCommandBuffer commandBuffer,
5780 uint32_t scissorCount,
5781 const VkRect2D* pScissors) {
5782 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5783 if (NULL == disp) {
5784 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5785 "vkCmdSetScissorWithCountEXT: Invalid commandBuffer "
5786 "[VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter]");
5787 abort(); /* Intentionally fail so user can correct issue. */
5788 }
5789 disp->CmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors);
5790 }
5791
CmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)5792 VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT(
5793 VkCommandBuffer commandBuffer,
5794 uint32_t firstBinding,
5795 uint32_t bindingCount,
5796 const VkBuffer* pBuffers,
5797 const VkDeviceSize* pOffsets,
5798 const VkDeviceSize* pSizes,
5799 const VkDeviceSize* pStrides) {
5800 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5801 if (NULL == disp) {
5802 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5803 "vkCmdBindVertexBuffers2EXT: Invalid commandBuffer "
5804 "[VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter]");
5805 abort(); /* Intentionally fail so user can correct issue. */
5806 }
5807 disp->CmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
5808 }
5809
CmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)5810 VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnableEXT(
5811 VkCommandBuffer commandBuffer,
5812 VkBool32 depthTestEnable) {
5813 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5814 if (NULL == disp) {
5815 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5816 "vkCmdSetDepthTestEnableEXT: Invalid commandBuffer "
5817 "[VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter]");
5818 abort(); /* Intentionally fail so user can correct issue. */
5819 }
5820 disp->CmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable);
5821 }
5822
CmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)5823 VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnableEXT(
5824 VkCommandBuffer commandBuffer,
5825 VkBool32 depthWriteEnable) {
5826 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5827 if (NULL == disp) {
5828 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5829 "vkCmdSetDepthWriteEnableEXT: Invalid commandBuffer "
5830 "[VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter]");
5831 abort(); /* Intentionally fail so user can correct issue. */
5832 }
5833 disp->CmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable);
5834 }
5835
CmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)5836 VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOpEXT(
5837 VkCommandBuffer commandBuffer,
5838 VkCompareOp depthCompareOp) {
5839 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5840 if (NULL == disp) {
5841 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5842 "vkCmdSetDepthCompareOpEXT: Invalid commandBuffer "
5843 "[VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter]");
5844 abort(); /* Intentionally fail so user can correct issue. */
5845 }
5846 disp->CmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp);
5847 }
5848
CmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)5849 VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnableEXT(
5850 VkCommandBuffer commandBuffer,
5851 VkBool32 depthBoundsTestEnable) {
5852 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5853 if (NULL == disp) {
5854 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5855 "vkCmdSetDepthBoundsTestEnableEXT: Invalid commandBuffer "
5856 "[VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter]");
5857 abort(); /* Intentionally fail so user can correct issue. */
5858 }
5859 disp->CmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable);
5860 }
5861
CmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)5862 VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnableEXT(
5863 VkCommandBuffer commandBuffer,
5864 VkBool32 stencilTestEnable) {
5865 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5866 if (NULL == disp) {
5867 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5868 "vkCmdSetStencilTestEnableEXT: Invalid commandBuffer "
5869 "[VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter]");
5870 abort(); /* Intentionally fail so user can correct issue. */
5871 }
5872 disp->CmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable);
5873 }
5874
CmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)5875 VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT(
5876 VkCommandBuffer commandBuffer,
5877 VkStencilFaceFlags faceMask,
5878 VkStencilOp failOp,
5879 VkStencilOp passOp,
5880 VkStencilOp depthFailOp,
5881 VkCompareOp compareOp) {
5882 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5883 if (NULL == disp) {
5884 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5885 "vkCmdSetStencilOpEXT: Invalid commandBuffer "
5886 "[VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter]");
5887 abort(); /* Intentionally fail so user can correct issue. */
5888 }
5889 disp->CmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
5890 }
5891
5892
5893 // ---- VK_NV_device_generated_commands extension trampoline/terminators
5894
GetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements)5895 VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsNV(
5896 VkDevice device,
5897 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
5898 VkMemoryRequirements2* pMemoryRequirements) {
5899 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5900 if (NULL == disp) {
5901 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5902 "vkGetGeneratedCommandsMemoryRequirementsNV: Invalid device "
5903 "[VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter]");
5904 abort(); /* Intentionally fail so user can correct issue. */
5905 }
5906 disp->GetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
5907 }
5908
CmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo)5909 VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsNV(
5910 VkCommandBuffer commandBuffer,
5911 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) {
5912 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5913 if (NULL == disp) {
5914 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5915 "vkCmdPreprocessGeneratedCommandsNV: Invalid commandBuffer "
5916 "[VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter]");
5917 abort(); /* Intentionally fail so user can correct issue. */
5918 }
5919 disp->CmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
5920 }
5921
CmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo)5922 VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV(
5923 VkCommandBuffer commandBuffer,
5924 VkBool32 isPreprocessed,
5925 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) {
5926 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5927 if (NULL == disp) {
5928 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5929 "vkCmdExecuteGeneratedCommandsNV: Invalid commandBuffer "
5930 "[VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter]");
5931 abort(); /* Intentionally fail so user can correct issue. */
5932 }
5933 disp->CmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
5934 }
5935
CmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex)5936 VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV(
5937 VkCommandBuffer commandBuffer,
5938 VkPipelineBindPoint pipelineBindPoint,
5939 VkPipeline pipeline,
5940 uint32_t groupIndex) {
5941 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5942 if (NULL == disp) {
5943 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5944 "vkCmdBindPipelineShaderGroupNV: Invalid commandBuffer "
5945 "[VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter]");
5946 abort(); /* Intentionally fail so user can correct issue. */
5947 }
5948 disp->CmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
5949 }
5950
CreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout)5951 VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV(
5952 VkDevice device,
5953 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
5954 const VkAllocationCallbacks* pAllocator,
5955 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) {
5956 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5957 if (NULL == disp) {
5958 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5959 "vkCreateIndirectCommandsLayoutNV: Invalid device "
5960 "[VUID-vkCreateIndirectCommandsLayoutNV-device-parameter]");
5961 abort(); /* Intentionally fail so user can correct issue. */
5962 }
5963 return disp->CreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
5964 }
5965
DestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)5966 VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNV(
5967 VkDevice device,
5968 VkIndirectCommandsLayoutNV indirectCommandsLayout,
5969 const VkAllocationCallbacks* pAllocator) {
5970 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5971 if (NULL == disp) {
5972 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5973 "vkDestroyIndirectCommandsLayoutNV: Invalid device "
5974 "[VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter]");
5975 abort(); /* Intentionally fail so user can correct issue. */
5976 }
5977 disp->DestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
5978 }
5979
5980
5981 // ---- VK_EXT_acquire_drm_display extension trampoline/terminators
5982
AcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,VkDisplayKHR display)5983 VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT(
5984 VkPhysicalDevice physicalDevice,
5985 int32_t drmFd,
5986 VkDisplayKHR display) {
5987 const VkLayerInstanceDispatchTable *disp;
5988 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5989 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5990 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5991 "vkAcquireDrmDisplayEXT: Invalid physicalDevice "
5992 "[VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter]");
5993 abort(); /* Intentionally fail so user can correct issue. */
5994 }
5995 disp = loader_get_instance_layer_dispatch(physicalDevice);
5996 return disp->AcquireDrmDisplayEXT(unwrapped_phys_dev, drmFd, display);
5997 }
5998
terminator_AcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,VkDisplayKHR display)5999 VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireDrmDisplayEXT(
6000 VkPhysicalDevice physicalDevice,
6001 int32_t drmFd,
6002 VkDisplayKHR display) {
6003 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6004 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6005 if (NULL == icd_term->dispatch.AcquireDrmDisplayEXT) {
6006 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
6007 "ICD associated with VkPhysicalDevice does not support AcquireDrmDisplayEXT");
6008 return VK_ERROR_INITIALIZATION_FAILED;
6009 }
6010 return icd_term->dispatch.AcquireDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, display);
6011 }
6012
GetDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,uint32_t connectorId,VkDisplayKHR * display)6013 VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT(
6014 VkPhysicalDevice physicalDevice,
6015 int32_t drmFd,
6016 uint32_t connectorId,
6017 VkDisplayKHR* display) {
6018 const VkLayerInstanceDispatchTable *disp;
6019 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6020 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6021 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6022 "vkGetDrmDisplayEXT: Invalid physicalDevice "
6023 "[VUID-vkGetDrmDisplayEXT-physicalDevice-parameter]");
6024 abort(); /* Intentionally fail so user can correct issue. */
6025 }
6026 disp = loader_get_instance_layer_dispatch(physicalDevice);
6027 return disp->GetDrmDisplayEXT(unwrapped_phys_dev, drmFd, connectorId, display);
6028 }
6029
terminator_GetDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,uint32_t connectorId,VkDisplayKHR * display)6030 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDrmDisplayEXT(
6031 VkPhysicalDevice physicalDevice,
6032 int32_t drmFd,
6033 uint32_t connectorId,
6034 VkDisplayKHR* display) {
6035 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6036 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6037 if (NULL == icd_term->dispatch.GetDrmDisplayEXT) {
6038 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
6039 "ICD associated with VkPhysicalDevice does not support GetDrmDisplayEXT");
6040 return VK_ERROR_INITIALIZATION_FAILED;
6041 }
6042 return icd_term->dispatch.GetDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, connectorId, display);
6043 }
6044
6045
6046 // ---- VK_EXT_private_data extension trampoline/terminators
6047
CreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)6048 VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT(
6049 VkDevice device,
6050 const VkPrivateDataSlotCreateInfo* pCreateInfo,
6051 const VkAllocationCallbacks* pAllocator,
6052 VkPrivateDataSlot* pPrivateDataSlot) {
6053 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6054 if (NULL == disp) {
6055 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6056 "vkCreatePrivateDataSlotEXT: Invalid device "
6057 "[VUID-vkCreatePrivateDataSlotEXT-device-parameter]");
6058 abort(); /* Intentionally fail so user can correct issue. */
6059 }
6060 return disp->CreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot);
6061 }
6062
DestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)6063 VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlotEXT(
6064 VkDevice device,
6065 VkPrivateDataSlot privateDataSlot,
6066 const VkAllocationCallbacks* pAllocator) {
6067 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6068 if (NULL == disp) {
6069 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6070 "vkDestroyPrivateDataSlotEXT: Invalid device "
6071 "[VUID-vkDestroyPrivateDataSlotEXT-device-parameter]");
6072 abort(); /* Intentionally fail so user can correct issue. */
6073 }
6074 disp->DestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator);
6075 }
6076
SetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)6077 VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT(
6078 VkDevice device,
6079 VkObjectType objectType,
6080 uint64_t objectHandle,
6081 VkPrivateDataSlot privateDataSlot,
6082 uint64_t data) {
6083 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6084 if (NULL == disp) {
6085 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6086 "vkSetPrivateDataEXT: Invalid device "
6087 "[VUID-vkSetPrivateDataEXT-device-parameter]");
6088 abort(); /* Intentionally fail so user can correct issue. */
6089 }
6090 return disp->SetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data);
6091 }
6092
GetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)6093 VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT(
6094 VkDevice device,
6095 VkObjectType objectType,
6096 uint64_t objectHandle,
6097 VkPrivateDataSlot privateDataSlot,
6098 uint64_t* pData) {
6099 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6100 if (NULL == disp) {
6101 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6102 "vkGetPrivateDataEXT: Invalid device "
6103 "[VUID-vkGetPrivateDataEXT-device-parameter]");
6104 abort(); /* Intentionally fail so user can correct issue. */
6105 }
6106 disp->GetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData);
6107 }
6108
6109
6110 // ---- VK_EXT_metal_objects extension trampoline/terminators
6111
6112 #ifdef VK_USE_PLATFORM_METAL_EXT
ExportMetalObjectsEXT(VkDevice device,VkExportMetalObjectsInfoEXT * pMetalObjectsInfo)6113 VKAPI_ATTR void VKAPI_CALL ExportMetalObjectsEXT(
6114 VkDevice device,
6115 VkExportMetalObjectsInfoEXT* pMetalObjectsInfo) {
6116 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6117 if (NULL == disp) {
6118 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6119 "vkExportMetalObjectsEXT: Invalid device "
6120 "[VUID-vkExportMetalObjectsEXT-device-parameter]");
6121 abort(); /* Intentionally fail so user can correct issue. */
6122 }
6123 disp->ExportMetalObjectsEXT(device, pMetalObjectsInfo);
6124 }
6125
6126 #endif // VK_USE_PLATFORM_METAL_EXT
6127
6128 // ---- VK_NV_fragment_shading_rate_enums extension trampoline/terminators
6129
CmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer,VkFragmentShadingRateNV shadingRate,const VkFragmentShadingRateCombinerOpKHR combinerOps[2])6130 VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV(
6131 VkCommandBuffer commandBuffer,
6132 VkFragmentShadingRateNV shadingRate,
6133 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) {
6134 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6135 if (NULL == disp) {
6136 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6137 "vkCmdSetFragmentShadingRateEnumNV: Invalid commandBuffer "
6138 "[VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter]");
6139 abort(); /* Intentionally fail so user can correct issue. */
6140 }
6141 disp->CmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps);
6142 }
6143
6144
6145 // ---- VK_EXT_image_compression_control extension trampoline/terminators
6146
GetImageSubresourceLayout2EXT(VkDevice device,VkImage image,const VkImageSubresource2EXT * pSubresource,VkSubresourceLayout2EXT * pLayout)6147 VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
6148 VkDevice device,
6149 VkImage image,
6150 const VkImageSubresource2EXT* pSubresource,
6151 VkSubresourceLayout2EXT* pLayout) {
6152 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6153 if (NULL == disp) {
6154 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6155 "vkGetImageSubresourceLayout2EXT: Invalid device "
6156 "[VUID-vkGetImageSubresourceLayout2EXT-device-parameter]");
6157 abort(); /* Intentionally fail so user can correct issue. */
6158 }
6159 disp->GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
6160 }
6161
6162
6163 // ---- VK_EXT_device_fault extension trampoline/terminators
6164
GetDeviceFaultInfoEXT(VkDevice device,VkDeviceFaultCountsEXT * pFaultCounts,VkDeviceFaultInfoEXT * pFaultInfo)6165 VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT(
6166 VkDevice device,
6167 VkDeviceFaultCountsEXT* pFaultCounts,
6168 VkDeviceFaultInfoEXT* pFaultInfo) {
6169 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6170 if (NULL == disp) {
6171 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6172 "vkGetDeviceFaultInfoEXT: Invalid device "
6173 "[VUID-vkGetDeviceFaultInfoEXT-device-parameter]");
6174 abort(); /* Intentionally fail so user can correct issue. */
6175 }
6176 return disp->GetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo);
6177 }
6178
6179
6180 // ---- VK_NV_acquire_winrt_display extension trampoline/terminators
6181
6182 #ifdef VK_USE_PLATFORM_WIN32_KHR
AcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display)6183 VKAPI_ATTR VkResult VKAPI_CALL AcquireWinrtDisplayNV(
6184 VkPhysicalDevice physicalDevice,
6185 VkDisplayKHR display) {
6186 const VkLayerInstanceDispatchTable *disp;
6187 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6188 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6189 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6190 "vkAcquireWinrtDisplayNV: Invalid physicalDevice "
6191 "[VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter]");
6192 abort(); /* Intentionally fail so user can correct issue. */
6193 }
6194 disp = loader_get_instance_layer_dispatch(physicalDevice);
6195 return disp->AcquireWinrtDisplayNV(unwrapped_phys_dev, display);
6196 }
6197
terminator_AcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display)6198 VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireWinrtDisplayNV(
6199 VkPhysicalDevice physicalDevice,
6200 VkDisplayKHR display) {
6201 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6202 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6203 if (NULL == icd_term->dispatch.AcquireWinrtDisplayNV) {
6204 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
6205 "ICD associated with VkPhysicalDevice does not support AcquireWinrtDisplayNV");
6206 abort(); /* Intentionally fail so user can correct issue. */
6207 }
6208 return icd_term->dispatch.AcquireWinrtDisplayNV(phys_dev_term->phys_dev, display);
6209 }
6210
6211 #endif // VK_USE_PLATFORM_WIN32_KHR
6212 #ifdef VK_USE_PLATFORM_WIN32_KHR
GetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay)6213 VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV(
6214 VkPhysicalDevice physicalDevice,
6215 uint32_t deviceRelativeId,
6216 VkDisplayKHR* pDisplay) {
6217 const VkLayerInstanceDispatchTable *disp;
6218 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6219 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6220 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6221 "vkGetWinrtDisplayNV: Invalid physicalDevice "
6222 "[VUID-vkGetWinrtDisplayNV-physicalDevice-parameter]");
6223 abort(); /* Intentionally fail so user can correct issue. */
6224 }
6225 disp = loader_get_instance_layer_dispatch(physicalDevice);
6226 return disp->GetWinrtDisplayNV(unwrapped_phys_dev, deviceRelativeId, pDisplay);
6227 }
6228
terminator_GetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay)6229 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetWinrtDisplayNV(
6230 VkPhysicalDevice physicalDevice,
6231 uint32_t deviceRelativeId,
6232 VkDisplayKHR* pDisplay) {
6233 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6234 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6235 if (NULL == icd_term->dispatch.GetWinrtDisplayNV) {
6236 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
6237 "ICD associated with VkPhysicalDevice does not support GetWinrtDisplayNV");
6238 abort(); /* Intentionally fail so user can correct issue. */
6239 }
6240 return icd_term->dispatch.GetWinrtDisplayNV(phys_dev_term->phys_dev, deviceRelativeId, pDisplay);
6241 }
6242
6243 #endif // VK_USE_PLATFORM_WIN32_KHR
6244
6245 // ---- VK_EXT_vertex_input_dynamic_state extension trampoline/terminators
6246
CmdSetVertexInputEXT(VkCommandBuffer commandBuffer,uint32_t vertexBindingDescriptionCount,const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions,uint32_t vertexAttributeDescriptionCount,const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions)6247 VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT(
6248 VkCommandBuffer commandBuffer,
6249 uint32_t vertexBindingDescriptionCount,
6250 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
6251 uint32_t vertexAttributeDescriptionCount,
6252 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) {
6253 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6254 if (NULL == disp) {
6255 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6256 "vkCmdSetVertexInputEXT: Invalid commandBuffer "
6257 "[VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter]");
6258 abort(); /* Intentionally fail so user can correct issue. */
6259 }
6260 disp->CmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
6261 }
6262
6263
6264 // ---- VK_FUCHSIA_external_memory extension trampoline/terminators
6265
6266 #ifdef VK_USE_PLATFORM_FUCHSIA
GetMemoryZirconHandleFUCHSIA(VkDevice device,const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle)6267 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA(
6268 VkDevice device,
6269 const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
6270 zx_handle_t* pZirconHandle) {
6271 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6272 if (NULL == disp) {
6273 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6274 "vkGetMemoryZirconHandleFUCHSIA: Invalid device "
6275 "[VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter]");
6276 abort(); /* Intentionally fail so user can correct issue. */
6277 }
6278 return disp->GetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
6279 }
6280
6281 #endif // VK_USE_PLATFORM_FUCHSIA
6282 #ifdef VK_USE_PLATFORM_FUCHSIA
GetMemoryZirconHandlePropertiesFUCHSIA(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle,VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties)6283 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA(
6284 VkDevice device,
6285 VkExternalMemoryHandleTypeFlagBits handleType,
6286 zx_handle_t zirconHandle,
6287 VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) {
6288 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6289 if (NULL == disp) {
6290 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6291 "vkGetMemoryZirconHandlePropertiesFUCHSIA: Invalid device "
6292 "[VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter]");
6293 abort(); /* Intentionally fail so user can correct issue. */
6294 }
6295 return disp->GetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties);
6296 }
6297
6298 #endif // VK_USE_PLATFORM_FUCHSIA
6299
6300 // ---- VK_FUCHSIA_external_semaphore extension trampoline/terminators
6301
6302 #ifdef VK_USE_PLATFORM_FUCHSIA
ImportSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo)6303 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreZirconHandleFUCHSIA(
6304 VkDevice device,
6305 const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) {
6306 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6307 if (NULL == disp) {
6308 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6309 "vkImportSemaphoreZirconHandleFUCHSIA: Invalid device "
6310 "[VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter]");
6311 abort(); /* Intentionally fail so user can correct issue. */
6312 }
6313 return disp->ImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo);
6314 }
6315
6316 #endif // VK_USE_PLATFORM_FUCHSIA
6317 #ifdef VK_USE_PLATFORM_FUCHSIA
GetSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle)6318 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA(
6319 VkDevice device,
6320 const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
6321 zx_handle_t* pZirconHandle) {
6322 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6323 if (NULL == disp) {
6324 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6325 "vkGetSemaphoreZirconHandleFUCHSIA: Invalid device "
6326 "[VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter]");
6327 abort(); /* Intentionally fail so user can correct issue. */
6328 }
6329 return disp->GetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
6330 }
6331
6332 #endif // VK_USE_PLATFORM_FUCHSIA
6333
6334 // ---- VK_FUCHSIA_buffer_collection extension trampoline/terminators
6335
6336 #ifdef VK_USE_PLATFORM_FUCHSIA
CreateBufferCollectionFUCHSIA(VkDevice device,const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferCollectionFUCHSIA * pCollection)6337 VKAPI_ATTR VkResult VKAPI_CALL CreateBufferCollectionFUCHSIA(
6338 VkDevice device,
6339 const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
6340 const VkAllocationCallbacks* pAllocator,
6341 VkBufferCollectionFUCHSIA* pCollection) {
6342 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6343 if (NULL == disp) {
6344 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6345 "vkCreateBufferCollectionFUCHSIA: Invalid device "
6346 "[VUID-vkCreateBufferCollectionFUCHSIA-device-parameter]");
6347 abort(); /* Intentionally fail so user can correct issue. */
6348 }
6349 return disp->CreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection);
6350 }
6351
6352 #endif // VK_USE_PLATFORM_FUCHSIA
6353 #ifdef VK_USE_PLATFORM_FUCHSIA
SetBufferCollectionImageConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo)6354 VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionImageConstraintsFUCHSIA(
6355 VkDevice device,
6356 VkBufferCollectionFUCHSIA collection,
6357 const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) {
6358 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6359 if (NULL == disp) {
6360 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6361 "vkSetBufferCollectionImageConstraintsFUCHSIA: Invalid device "
6362 "[VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter]");
6363 abort(); /* Intentionally fail so user can correct issue. */
6364 }
6365 return disp->SetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo);
6366 }
6367
6368 #endif // VK_USE_PLATFORM_FUCHSIA
6369 #ifdef VK_USE_PLATFORM_FUCHSIA
SetBufferCollectionBufferConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo)6370 VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionBufferConstraintsFUCHSIA(
6371 VkDevice device,
6372 VkBufferCollectionFUCHSIA collection,
6373 const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) {
6374 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6375 if (NULL == disp) {
6376 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6377 "vkSetBufferCollectionBufferConstraintsFUCHSIA: Invalid device "
6378 "[VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter]");
6379 abort(); /* Intentionally fail so user can correct issue. */
6380 }
6381 return disp->SetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo);
6382 }
6383
6384 #endif // VK_USE_PLATFORM_FUCHSIA
6385 #ifdef VK_USE_PLATFORM_FUCHSIA
DestroyBufferCollectionFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkAllocationCallbacks * pAllocator)6386 VKAPI_ATTR void VKAPI_CALL DestroyBufferCollectionFUCHSIA(
6387 VkDevice device,
6388 VkBufferCollectionFUCHSIA collection,
6389 const VkAllocationCallbacks* pAllocator) {
6390 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6391 if (NULL == disp) {
6392 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6393 "vkDestroyBufferCollectionFUCHSIA: Invalid device "
6394 "[VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter]");
6395 abort(); /* Intentionally fail so user can correct issue. */
6396 }
6397 disp->DestroyBufferCollectionFUCHSIA(device, collection, pAllocator);
6398 }
6399
6400 #endif // VK_USE_PLATFORM_FUCHSIA
6401 #ifdef VK_USE_PLATFORM_FUCHSIA
GetBufferCollectionPropertiesFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,VkBufferCollectionPropertiesFUCHSIA * pProperties)6402 VKAPI_ATTR VkResult VKAPI_CALL GetBufferCollectionPropertiesFUCHSIA(
6403 VkDevice device,
6404 VkBufferCollectionFUCHSIA collection,
6405 VkBufferCollectionPropertiesFUCHSIA* pProperties) {
6406 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6407 if (NULL == disp) {
6408 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6409 "vkGetBufferCollectionPropertiesFUCHSIA: Invalid device "
6410 "[VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter]");
6411 abort(); /* Intentionally fail so user can correct issue. */
6412 }
6413 return disp->GetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties);
6414 }
6415
6416 #endif // VK_USE_PLATFORM_FUCHSIA
6417
6418 // ---- VK_HUAWEI_subpass_shading extension trampoline/terminators
6419
GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VkDevice device,VkRenderPass renderpass,VkExtent2D * pMaxWorkgroupSize)6420 VKAPI_ATTR VkResult VKAPI_CALL GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
6421 VkDevice device,
6422 VkRenderPass renderpass,
6423 VkExtent2D* pMaxWorkgroupSize) {
6424 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6425 if (NULL == disp) {
6426 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6427 "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: Invalid device "
6428 "[VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter]");
6429 abort(); /* Intentionally fail so user can correct issue. */
6430 }
6431 return disp->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
6432 }
6433
CmdSubpassShadingHUAWEI(VkCommandBuffer commandBuffer)6434 VKAPI_ATTR void VKAPI_CALL CmdSubpassShadingHUAWEI(
6435 VkCommandBuffer commandBuffer) {
6436 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6437 if (NULL == disp) {
6438 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6439 "vkCmdSubpassShadingHUAWEI: Invalid commandBuffer "
6440 "[VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter]");
6441 abort(); /* Intentionally fail so user can correct issue. */
6442 }
6443 disp->CmdSubpassShadingHUAWEI(commandBuffer);
6444 }
6445
6446
6447 // ---- VK_HUAWEI_invocation_mask extension trampoline/terminators
6448
CmdBindInvocationMaskHUAWEI(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)6449 VKAPI_ATTR void VKAPI_CALL CmdBindInvocationMaskHUAWEI(
6450 VkCommandBuffer commandBuffer,
6451 VkImageView imageView,
6452 VkImageLayout imageLayout) {
6453 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6454 if (NULL == disp) {
6455 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6456 "vkCmdBindInvocationMaskHUAWEI: Invalid commandBuffer "
6457 "[VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter]");
6458 abort(); /* Intentionally fail so user can correct issue. */
6459 }
6460 disp->CmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout);
6461 }
6462
6463
6464 // ---- VK_NV_external_memory_rdma extension trampoline/terminators
6465
GetMemoryRemoteAddressNV(VkDevice device,const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,VkRemoteAddressNV * pAddress)6466 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV(
6467 VkDevice device,
6468 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
6469 VkRemoteAddressNV* pAddress) {
6470 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6471 if (NULL == disp) {
6472 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6473 "vkGetMemoryRemoteAddressNV: Invalid device "
6474 "[VUID-vkGetMemoryRemoteAddressNV-device-parameter]");
6475 abort(); /* Intentionally fail so user can correct issue. */
6476 }
6477 return disp->GetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress);
6478 }
6479
6480
6481 // ---- VK_EXT_pipeline_properties extension trampoline/terminators
6482
GetPipelinePropertiesEXT(VkDevice device,const VkPipelineInfoEXT * pPipelineInfo,VkBaseOutStructure * pPipelineProperties)6483 VKAPI_ATTR VkResult VKAPI_CALL GetPipelinePropertiesEXT(
6484 VkDevice device,
6485 const VkPipelineInfoEXT* pPipelineInfo,
6486 VkBaseOutStructure* pPipelineProperties) {
6487 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6488 if (NULL == disp) {
6489 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6490 "vkGetPipelinePropertiesEXT: Invalid device "
6491 "[VUID-vkGetPipelinePropertiesEXT-device-parameter]");
6492 abort(); /* Intentionally fail so user can correct issue. */
6493 }
6494 return disp->GetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties);
6495 }
6496
6497
6498 // ---- VK_EXT_extended_dynamic_state2 extension trampoline/terminators
6499
CmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer,uint32_t patchControlPoints)6500 VKAPI_ATTR void VKAPI_CALL CmdSetPatchControlPointsEXT(
6501 VkCommandBuffer commandBuffer,
6502 uint32_t patchControlPoints) {
6503 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6504 if (NULL == disp) {
6505 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6506 "vkCmdSetPatchControlPointsEXT: Invalid commandBuffer "
6507 "[VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter]");
6508 abort(); /* Intentionally fail so user can correct issue. */
6509 }
6510 disp->CmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
6511 }
6512
CmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)6513 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnableEXT(
6514 VkCommandBuffer commandBuffer,
6515 VkBool32 rasterizerDiscardEnable) {
6516 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6517 if (NULL == disp) {
6518 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6519 "vkCmdSetRasterizerDiscardEnableEXT: Invalid commandBuffer "
6520 "[VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter]");
6521 abort(); /* Intentionally fail so user can correct issue. */
6522 }
6523 disp->CmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable);
6524 }
6525
CmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)6526 VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnableEXT(
6527 VkCommandBuffer commandBuffer,
6528 VkBool32 depthBiasEnable) {
6529 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6530 if (NULL == disp) {
6531 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6532 "vkCmdSetDepthBiasEnableEXT: Invalid commandBuffer "
6533 "[VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter]");
6534 abort(); /* Intentionally fail so user can correct issue. */
6535 }
6536 disp->CmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable);
6537 }
6538
CmdSetLogicOpEXT(VkCommandBuffer commandBuffer,VkLogicOp logicOp)6539 VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEXT(
6540 VkCommandBuffer commandBuffer,
6541 VkLogicOp logicOp) {
6542 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6543 if (NULL == disp) {
6544 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6545 "vkCmdSetLogicOpEXT: Invalid commandBuffer "
6546 "[VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter]");
6547 abort(); /* Intentionally fail so user can correct issue. */
6548 }
6549 disp->CmdSetLogicOpEXT(commandBuffer, logicOp);
6550 }
6551
CmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)6552 VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnableEXT(
6553 VkCommandBuffer commandBuffer,
6554 VkBool32 primitiveRestartEnable) {
6555 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6556 if (NULL == disp) {
6557 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6558 "vkCmdSetPrimitiveRestartEnableEXT: Invalid commandBuffer "
6559 "[VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter]");
6560 abort(); /* Intentionally fail so user can correct issue. */
6561 }
6562 disp->CmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable);
6563 }
6564
6565
6566 // ---- VK_EXT_color_write_enable extension trampoline/terminators
6567
CmdSetColorWriteEnableEXT(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkBool32 * pColorWriteEnables)6568 VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteEnableEXT(
6569 VkCommandBuffer commandBuffer,
6570 uint32_t attachmentCount,
6571 const VkBool32* pColorWriteEnables) {
6572 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6573 if (NULL == disp) {
6574 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6575 "vkCmdSetColorWriteEnableEXT: Invalid commandBuffer "
6576 "[VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter]");
6577 abort(); /* Intentionally fail so user can correct issue. */
6578 }
6579 disp->CmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
6580 }
6581
6582
6583 // ---- VK_EXT_multi_draw extension trampoline/terminators
6584
CmdDrawMultiEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawInfoEXT * pVertexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride)6585 VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT(
6586 VkCommandBuffer commandBuffer,
6587 uint32_t drawCount,
6588 const VkMultiDrawInfoEXT* pVertexInfo,
6589 uint32_t instanceCount,
6590 uint32_t firstInstance,
6591 uint32_t stride) {
6592 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6593 if (NULL == disp) {
6594 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6595 "vkCmdDrawMultiEXT: Invalid commandBuffer "
6596 "[VUID-vkCmdDrawMultiEXT-commandBuffer-parameter]");
6597 abort(); /* Intentionally fail so user can correct issue. */
6598 }
6599 disp->CmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride);
6600 }
6601
CmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawIndexedInfoEXT * pIndexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride,const int32_t * pVertexOffset)6602 VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT(
6603 VkCommandBuffer commandBuffer,
6604 uint32_t drawCount,
6605 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
6606 uint32_t instanceCount,
6607 uint32_t firstInstance,
6608 uint32_t stride,
6609 const int32_t* pVertexOffset) {
6610 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6611 if (NULL == disp) {
6612 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6613 "vkCmdDrawMultiIndexedEXT: Invalid commandBuffer "
6614 "[VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter]");
6615 abort(); /* Intentionally fail so user can correct issue. */
6616 }
6617 disp->CmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset);
6618 }
6619
6620
6621 // ---- VK_EXT_opacity_micromap extension trampoline/terminators
6622
CreateMicromapEXT(VkDevice device,const VkMicromapCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkMicromapEXT * pMicromap)6623 VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT(
6624 VkDevice device,
6625 const VkMicromapCreateInfoEXT* pCreateInfo,
6626 const VkAllocationCallbacks* pAllocator,
6627 VkMicromapEXT* pMicromap) {
6628 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6629 if (NULL == disp) {
6630 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6631 "vkCreateMicromapEXT: Invalid device "
6632 "[VUID-vkCreateMicromapEXT-device-parameter]");
6633 abort(); /* Intentionally fail so user can correct issue. */
6634 }
6635 return disp->CreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap);
6636 }
6637
DestroyMicromapEXT(VkDevice device,VkMicromapEXT micromap,const VkAllocationCallbacks * pAllocator)6638 VKAPI_ATTR void VKAPI_CALL DestroyMicromapEXT(
6639 VkDevice device,
6640 VkMicromapEXT micromap,
6641 const VkAllocationCallbacks* pAllocator) {
6642 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6643 if (NULL == disp) {
6644 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6645 "vkDestroyMicromapEXT: Invalid device "
6646 "[VUID-vkDestroyMicromapEXT-device-parameter]");
6647 abort(); /* Intentionally fail so user can correct issue. */
6648 }
6649 disp->DestroyMicromapEXT(device, micromap, pAllocator);
6650 }
6651
CmdBuildMicromapsEXT(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkMicromapBuildInfoEXT * pInfos)6652 VKAPI_ATTR void VKAPI_CALL CmdBuildMicromapsEXT(
6653 VkCommandBuffer commandBuffer,
6654 uint32_t infoCount,
6655 const VkMicromapBuildInfoEXT* pInfos) {
6656 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6657 if (NULL == disp) {
6658 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6659 "vkCmdBuildMicromapsEXT: Invalid commandBuffer "
6660 "[VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter]");
6661 abort(); /* Intentionally fail so user can correct issue. */
6662 }
6663 disp->CmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos);
6664 }
6665
BuildMicromapsEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkMicromapBuildInfoEXT * pInfos)6666 VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT(
6667 VkDevice device,
6668 VkDeferredOperationKHR deferredOperation,
6669 uint32_t infoCount,
6670 const VkMicromapBuildInfoEXT* pInfos) {
6671 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6672 if (NULL == disp) {
6673 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6674 "vkBuildMicromapsEXT: Invalid device "
6675 "[VUID-vkBuildMicromapsEXT-device-parameter]");
6676 abort(); /* Intentionally fail so user can correct issue. */
6677 }
6678 return disp->BuildMicromapsEXT(device, deferredOperation, infoCount, pInfos);
6679 }
6680
CopyMicromapEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMicromapInfoEXT * pInfo)6681 VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapEXT(
6682 VkDevice device,
6683 VkDeferredOperationKHR deferredOperation,
6684 const VkCopyMicromapInfoEXT* pInfo) {
6685 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6686 if (NULL == disp) {
6687 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6688 "vkCopyMicromapEXT: Invalid device "
6689 "[VUID-vkCopyMicromapEXT-device-parameter]");
6690 abort(); /* Intentionally fail so user can correct issue. */
6691 }
6692 return disp->CopyMicromapEXT(device, deferredOperation, pInfo);
6693 }
6694
CopyMicromapToMemoryEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMicromapToMemoryInfoEXT * pInfo)6695 VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapToMemoryEXT(
6696 VkDevice device,
6697 VkDeferredOperationKHR deferredOperation,
6698 const VkCopyMicromapToMemoryInfoEXT* pInfo) {
6699 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6700 if (NULL == disp) {
6701 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6702 "vkCopyMicromapToMemoryEXT: Invalid device "
6703 "[VUID-vkCopyMicromapToMemoryEXT-device-parameter]");
6704 abort(); /* Intentionally fail so user can correct issue. */
6705 }
6706 return disp->CopyMicromapToMemoryEXT(device, deferredOperation, pInfo);
6707 }
6708
CopyMemoryToMicromapEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToMicromapInfoEXT * pInfo)6709 VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToMicromapEXT(
6710 VkDevice device,
6711 VkDeferredOperationKHR deferredOperation,
6712 const VkCopyMemoryToMicromapInfoEXT* pInfo) {
6713 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6714 if (NULL == disp) {
6715 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6716 "vkCopyMemoryToMicromapEXT: Invalid device "
6717 "[VUID-vkCopyMemoryToMicromapEXT-device-parameter]");
6718 abort(); /* Intentionally fail so user can correct issue. */
6719 }
6720 return disp->CopyMemoryToMicromapEXT(device, deferredOperation, pInfo);
6721 }
6722
WriteMicromapsPropertiesEXT(VkDevice device,uint32_t micromapCount,const VkMicromapEXT * pMicromaps,VkQueryType queryType,size_t dataSize,void * pData,size_t stride)6723 VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT(
6724 VkDevice device,
6725 uint32_t micromapCount,
6726 const VkMicromapEXT* pMicromaps,
6727 VkQueryType queryType,
6728 size_t dataSize,
6729 void* pData,
6730 size_t stride) {
6731 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6732 if (NULL == disp) {
6733 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6734 "vkWriteMicromapsPropertiesEXT: Invalid device "
6735 "[VUID-vkWriteMicromapsPropertiesEXT-device-parameter]");
6736 abort(); /* Intentionally fail so user can correct issue. */
6737 }
6738 return disp->WriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride);
6739 }
6740
CmdCopyMicromapEXT(VkCommandBuffer commandBuffer,const VkCopyMicromapInfoEXT * pInfo)6741 VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapEXT(
6742 VkCommandBuffer commandBuffer,
6743 const VkCopyMicromapInfoEXT* pInfo) {
6744 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6745 if (NULL == disp) {
6746 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6747 "vkCmdCopyMicromapEXT: Invalid commandBuffer "
6748 "[VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter]");
6749 abort(); /* Intentionally fail so user can correct issue. */
6750 }
6751 disp->CmdCopyMicromapEXT(commandBuffer, pInfo);
6752 }
6753
CmdCopyMicromapToMemoryEXT(VkCommandBuffer commandBuffer,const VkCopyMicromapToMemoryInfoEXT * pInfo)6754 VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapToMemoryEXT(
6755 VkCommandBuffer commandBuffer,
6756 const VkCopyMicromapToMemoryInfoEXT* pInfo) {
6757 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6758 if (NULL == disp) {
6759 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6760 "vkCmdCopyMicromapToMemoryEXT: Invalid commandBuffer "
6761 "[VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter]");
6762 abort(); /* Intentionally fail so user can correct issue. */
6763 }
6764 disp->CmdCopyMicromapToMemoryEXT(commandBuffer, pInfo);
6765 }
6766
CmdCopyMemoryToMicromapEXT(VkCommandBuffer commandBuffer,const VkCopyMemoryToMicromapInfoEXT * pInfo)6767 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToMicromapEXT(
6768 VkCommandBuffer commandBuffer,
6769 const VkCopyMemoryToMicromapInfoEXT* pInfo) {
6770 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6771 if (NULL == disp) {
6772 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6773 "vkCmdCopyMemoryToMicromapEXT: Invalid commandBuffer "
6774 "[VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter]");
6775 abort(); /* Intentionally fail so user can correct issue. */
6776 }
6777 disp->CmdCopyMemoryToMicromapEXT(commandBuffer, pInfo);
6778 }
6779
CmdWriteMicromapsPropertiesEXT(VkCommandBuffer commandBuffer,uint32_t micromapCount,const VkMicromapEXT * pMicromaps,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)6780 VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT(
6781 VkCommandBuffer commandBuffer,
6782 uint32_t micromapCount,
6783 const VkMicromapEXT* pMicromaps,
6784 VkQueryType queryType,
6785 VkQueryPool queryPool,
6786 uint32_t firstQuery) {
6787 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6788 if (NULL == disp) {
6789 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6790 "vkCmdWriteMicromapsPropertiesEXT: Invalid commandBuffer "
6791 "[VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter]");
6792 abort(); /* Intentionally fail so user can correct issue. */
6793 }
6794 disp->CmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery);
6795 }
6796
GetDeviceMicromapCompatibilityEXT(VkDevice device,const VkMicromapVersionInfoEXT * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility)6797 VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT(
6798 VkDevice device,
6799 const VkMicromapVersionInfoEXT* pVersionInfo,
6800 VkAccelerationStructureCompatibilityKHR* pCompatibility) {
6801 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6802 if (NULL == disp) {
6803 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6804 "vkGetDeviceMicromapCompatibilityEXT: Invalid device "
6805 "[VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter]");
6806 abort(); /* Intentionally fail so user can correct issue. */
6807 }
6808 disp->GetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility);
6809 }
6810
GetMicromapBuildSizesEXT(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkMicromapBuildInfoEXT * pBuildInfo,VkMicromapBuildSizesInfoEXT * pSizeInfo)6811 VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT(
6812 VkDevice device,
6813 VkAccelerationStructureBuildTypeKHR buildType,
6814 const VkMicromapBuildInfoEXT* pBuildInfo,
6815 VkMicromapBuildSizesInfoEXT* pSizeInfo) {
6816 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6817 if (NULL == disp) {
6818 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6819 "vkGetMicromapBuildSizesEXT: Invalid device "
6820 "[VUID-vkGetMicromapBuildSizesEXT-device-parameter]");
6821 abort(); /* Intentionally fail so user can correct issue. */
6822 }
6823 disp->GetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo);
6824 }
6825
6826
6827 // ---- VK_EXT_pageable_device_local_memory extension trampoline/terminators
6828
SetDeviceMemoryPriorityEXT(VkDevice device,VkDeviceMemory memory,float priority)6829 VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT(
6830 VkDevice device,
6831 VkDeviceMemory memory,
6832 float priority) {
6833 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6834 if (NULL == disp) {
6835 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6836 "vkSetDeviceMemoryPriorityEXT: Invalid device "
6837 "[VUID-vkSetDeviceMemoryPriorityEXT-device-parameter]");
6838 abort(); /* Intentionally fail so user can correct issue. */
6839 }
6840 disp->SetDeviceMemoryPriorityEXT(device, memory, priority);
6841 }
6842
6843
6844 // ---- VK_VALVE_descriptor_set_host_mapping extension trampoline/terminators
6845
GetDescriptorSetLayoutHostMappingInfoVALVE(VkDevice device,const VkDescriptorSetBindingReferenceVALVE * pBindingReference,VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping)6846 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE(
6847 VkDevice device,
6848 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
6849 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) {
6850 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6851 if (NULL == disp) {
6852 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6853 "vkGetDescriptorSetLayoutHostMappingInfoVALVE: Invalid device "
6854 "[VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter]");
6855 abort(); /* Intentionally fail so user can correct issue. */
6856 }
6857 disp->GetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping);
6858 }
6859
GetDescriptorSetHostMappingVALVE(VkDevice device,VkDescriptorSet descriptorSet,void ** ppData)6860 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE(
6861 VkDevice device,
6862 VkDescriptorSet descriptorSet,
6863 void** ppData) {
6864 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6865 if (NULL == disp) {
6866 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6867 "vkGetDescriptorSetHostMappingVALVE: Invalid device "
6868 "[VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter]");
6869 abort(); /* Intentionally fail so user can correct issue. */
6870 }
6871 disp->GetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData);
6872 }
6873
6874
6875 // ---- VK_EXT_extended_dynamic_state3 extension trampoline/terminators
6876
CmdSetTessellationDomainOriginEXT(VkCommandBuffer commandBuffer,VkTessellationDomainOrigin domainOrigin)6877 VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT(
6878 VkCommandBuffer commandBuffer,
6879 VkTessellationDomainOrigin domainOrigin) {
6880 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6881 if (NULL == disp) {
6882 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6883 "vkCmdSetTessellationDomainOriginEXT: Invalid commandBuffer "
6884 "[VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter]");
6885 abort(); /* Intentionally fail so user can correct issue. */
6886 }
6887 disp->CmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin);
6888 }
6889
CmdSetDepthClampEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthClampEnable)6890 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampEnableEXT(
6891 VkCommandBuffer commandBuffer,
6892 VkBool32 depthClampEnable) {
6893 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6894 if (NULL == disp) {
6895 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6896 "vkCmdSetDepthClampEnableEXT: Invalid commandBuffer "
6897 "[VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter]");
6898 abort(); /* Intentionally fail so user can correct issue. */
6899 }
6900 disp->CmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable);
6901 }
6902
CmdSetPolygonModeEXT(VkCommandBuffer commandBuffer,VkPolygonMode polygonMode)6903 VKAPI_ATTR void VKAPI_CALL CmdSetPolygonModeEXT(
6904 VkCommandBuffer commandBuffer,
6905 VkPolygonMode polygonMode) {
6906 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6907 if (NULL == disp) {
6908 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6909 "vkCmdSetPolygonModeEXT: Invalid commandBuffer "
6910 "[VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter]");
6911 abort(); /* Intentionally fail so user can correct issue. */
6912 }
6913 disp->CmdSetPolygonModeEXT(commandBuffer, polygonMode);
6914 }
6915
CmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer,VkSampleCountFlagBits rasterizationSamples)6916 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationSamplesEXT(
6917 VkCommandBuffer commandBuffer,
6918 VkSampleCountFlagBits rasterizationSamples) {
6919 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6920 if (NULL == disp) {
6921 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6922 "vkCmdSetRasterizationSamplesEXT: Invalid commandBuffer "
6923 "[VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter]");
6924 abort(); /* Intentionally fail so user can correct issue. */
6925 }
6926 disp->CmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples);
6927 }
6928
CmdSetSampleMaskEXT(VkCommandBuffer commandBuffer,VkSampleCountFlagBits samples,const VkSampleMask * pSampleMask)6929 VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT(
6930 VkCommandBuffer commandBuffer,
6931 VkSampleCountFlagBits samples,
6932 const VkSampleMask* pSampleMask) {
6933 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6934 if (NULL == disp) {
6935 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6936 "vkCmdSetSampleMaskEXT: Invalid commandBuffer "
6937 "[VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter]");
6938 abort(); /* Intentionally fail so user can correct issue. */
6939 }
6940 disp->CmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask);
6941 }
6942
CmdSetAlphaToCoverageEnableEXT(VkCommandBuffer commandBuffer,VkBool32 alphaToCoverageEnable)6943 VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToCoverageEnableEXT(
6944 VkCommandBuffer commandBuffer,
6945 VkBool32 alphaToCoverageEnable) {
6946 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6947 if (NULL == disp) {
6948 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6949 "vkCmdSetAlphaToCoverageEnableEXT: Invalid commandBuffer "
6950 "[VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter]");
6951 abort(); /* Intentionally fail so user can correct issue. */
6952 }
6953 disp->CmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable);
6954 }
6955
CmdSetAlphaToOneEnableEXT(VkCommandBuffer commandBuffer,VkBool32 alphaToOneEnable)6956 VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToOneEnableEXT(
6957 VkCommandBuffer commandBuffer,
6958 VkBool32 alphaToOneEnable) {
6959 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6960 if (NULL == disp) {
6961 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6962 "vkCmdSetAlphaToOneEnableEXT: Invalid commandBuffer "
6963 "[VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter]");
6964 abort(); /* Intentionally fail so user can correct issue. */
6965 }
6966 disp->CmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable);
6967 }
6968
CmdSetLogicOpEnableEXT(VkCommandBuffer commandBuffer,VkBool32 logicOpEnable)6969 VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEnableEXT(
6970 VkCommandBuffer commandBuffer,
6971 VkBool32 logicOpEnable) {
6972 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6973 if (NULL == disp) {
6974 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6975 "vkCmdSetLogicOpEnableEXT: Invalid commandBuffer "
6976 "[VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter]");
6977 abort(); /* Intentionally fail so user can correct issue. */
6978 }
6979 disp->CmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable);
6980 }
6981
CmdSetColorBlendEnableEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkBool32 * pColorBlendEnables)6982 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT(
6983 VkCommandBuffer commandBuffer,
6984 uint32_t firstAttachment,
6985 uint32_t attachmentCount,
6986 const VkBool32* pColorBlendEnables) {
6987 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6988 if (NULL == disp) {
6989 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6990 "vkCmdSetColorBlendEnableEXT: Invalid commandBuffer "
6991 "[VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter]");
6992 abort(); /* Intentionally fail so user can correct issue. */
6993 }
6994 disp->CmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables);
6995 }
6996
CmdSetColorBlendEquationEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorBlendEquationEXT * pColorBlendEquations)6997 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT(
6998 VkCommandBuffer commandBuffer,
6999 uint32_t firstAttachment,
7000 uint32_t attachmentCount,
7001 const VkColorBlendEquationEXT* pColorBlendEquations) {
7002 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7003 if (NULL == disp) {
7004 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7005 "vkCmdSetColorBlendEquationEXT: Invalid commandBuffer "
7006 "[VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter]");
7007 abort(); /* Intentionally fail so user can correct issue. */
7008 }
7009 disp->CmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations);
7010 }
7011
CmdSetColorWriteMaskEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorComponentFlags * pColorWriteMasks)7012 VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT(
7013 VkCommandBuffer commandBuffer,
7014 uint32_t firstAttachment,
7015 uint32_t attachmentCount,
7016 const VkColorComponentFlags* pColorWriteMasks) {
7017 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7018 if (NULL == disp) {
7019 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7020 "vkCmdSetColorWriteMaskEXT: Invalid commandBuffer "
7021 "[VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter]");
7022 abort(); /* Intentionally fail so user can correct issue. */
7023 }
7024 disp->CmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks);
7025 }
7026
CmdSetRasterizationStreamEXT(VkCommandBuffer commandBuffer,uint32_t rasterizationStream)7027 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationStreamEXT(
7028 VkCommandBuffer commandBuffer,
7029 uint32_t rasterizationStream) {
7030 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7031 if (NULL == disp) {
7032 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7033 "vkCmdSetRasterizationStreamEXT: Invalid commandBuffer "
7034 "[VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter]");
7035 abort(); /* Intentionally fail so user can correct issue. */
7036 }
7037 disp->CmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream);
7038 }
7039
CmdSetConservativeRasterizationModeEXT(VkCommandBuffer commandBuffer,VkConservativeRasterizationModeEXT conservativeRasterizationMode)7040 VKAPI_ATTR void VKAPI_CALL CmdSetConservativeRasterizationModeEXT(
7041 VkCommandBuffer commandBuffer,
7042 VkConservativeRasterizationModeEXT conservativeRasterizationMode) {
7043 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7044 if (NULL == disp) {
7045 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7046 "vkCmdSetConservativeRasterizationModeEXT: Invalid commandBuffer "
7047 "[VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter]");
7048 abort(); /* Intentionally fail so user can correct issue. */
7049 }
7050 disp->CmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode);
7051 }
7052
CmdSetExtraPrimitiveOverestimationSizeEXT(VkCommandBuffer commandBuffer,float extraPrimitiveOverestimationSize)7053 VKAPI_ATTR void VKAPI_CALL CmdSetExtraPrimitiveOverestimationSizeEXT(
7054 VkCommandBuffer commandBuffer,
7055 float extraPrimitiveOverestimationSize) {
7056 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7057 if (NULL == disp) {
7058 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7059 "vkCmdSetExtraPrimitiveOverestimationSizeEXT: Invalid commandBuffer "
7060 "[VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter]");
7061 abort(); /* Intentionally fail so user can correct issue. */
7062 }
7063 disp->CmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize);
7064 }
7065
CmdSetDepthClipEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthClipEnable)7066 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipEnableEXT(
7067 VkCommandBuffer commandBuffer,
7068 VkBool32 depthClipEnable) {
7069 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7070 if (NULL == disp) {
7071 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7072 "vkCmdSetDepthClipEnableEXT: Invalid commandBuffer "
7073 "[VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter]");
7074 abort(); /* Intentionally fail so user can correct issue. */
7075 }
7076 disp->CmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable);
7077 }
7078
CmdSetSampleLocationsEnableEXT(VkCommandBuffer commandBuffer,VkBool32 sampleLocationsEnable)7079 VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEnableEXT(
7080 VkCommandBuffer commandBuffer,
7081 VkBool32 sampleLocationsEnable) {
7082 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7083 if (NULL == disp) {
7084 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7085 "vkCmdSetSampleLocationsEnableEXT: Invalid commandBuffer "
7086 "[VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter]");
7087 abort(); /* Intentionally fail so user can correct issue. */
7088 }
7089 disp->CmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable);
7090 }
7091
CmdSetColorBlendAdvancedEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorBlendAdvancedEXT * pColorBlendAdvanced)7092 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT(
7093 VkCommandBuffer commandBuffer,
7094 uint32_t firstAttachment,
7095 uint32_t attachmentCount,
7096 const VkColorBlendAdvancedEXT* pColorBlendAdvanced) {
7097 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7098 if (NULL == disp) {
7099 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7100 "vkCmdSetColorBlendAdvancedEXT: Invalid commandBuffer "
7101 "[VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter]");
7102 abort(); /* Intentionally fail so user can correct issue. */
7103 }
7104 disp->CmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced);
7105 }
7106
CmdSetProvokingVertexModeEXT(VkCommandBuffer commandBuffer,VkProvokingVertexModeEXT provokingVertexMode)7107 VKAPI_ATTR void VKAPI_CALL CmdSetProvokingVertexModeEXT(
7108 VkCommandBuffer commandBuffer,
7109 VkProvokingVertexModeEXT provokingVertexMode) {
7110 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7111 if (NULL == disp) {
7112 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7113 "vkCmdSetProvokingVertexModeEXT: Invalid commandBuffer "
7114 "[VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter]");
7115 abort(); /* Intentionally fail so user can correct issue. */
7116 }
7117 disp->CmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode);
7118 }
7119
CmdSetLineRasterizationModeEXT(VkCommandBuffer commandBuffer,VkLineRasterizationModeEXT lineRasterizationMode)7120 VKAPI_ATTR void VKAPI_CALL CmdSetLineRasterizationModeEXT(
7121 VkCommandBuffer commandBuffer,
7122 VkLineRasterizationModeEXT lineRasterizationMode) {
7123 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7124 if (NULL == disp) {
7125 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7126 "vkCmdSetLineRasterizationModeEXT: Invalid commandBuffer "
7127 "[VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter]");
7128 abort(); /* Intentionally fail so user can correct issue. */
7129 }
7130 disp->CmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode);
7131 }
7132
CmdSetLineStippleEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stippledLineEnable)7133 VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEnableEXT(
7134 VkCommandBuffer commandBuffer,
7135 VkBool32 stippledLineEnable) {
7136 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7137 if (NULL == disp) {
7138 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7139 "vkCmdSetLineStippleEnableEXT: Invalid commandBuffer "
7140 "[VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter]");
7141 abort(); /* Intentionally fail so user can correct issue. */
7142 }
7143 disp->CmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable);
7144 }
7145
CmdSetDepthClipNegativeOneToOneEXT(VkCommandBuffer commandBuffer,VkBool32 negativeOneToOne)7146 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipNegativeOneToOneEXT(
7147 VkCommandBuffer commandBuffer,
7148 VkBool32 negativeOneToOne) {
7149 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7150 if (NULL == disp) {
7151 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7152 "vkCmdSetDepthClipNegativeOneToOneEXT: Invalid commandBuffer "
7153 "[VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter]");
7154 abort(); /* Intentionally fail so user can correct issue. */
7155 }
7156 disp->CmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne);
7157 }
7158
CmdSetViewportWScalingEnableNV(VkCommandBuffer commandBuffer,VkBool32 viewportWScalingEnable)7159 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingEnableNV(
7160 VkCommandBuffer commandBuffer,
7161 VkBool32 viewportWScalingEnable) {
7162 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7163 if (NULL == disp) {
7164 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7165 "vkCmdSetViewportWScalingEnableNV: Invalid commandBuffer "
7166 "[VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter]");
7167 abort(); /* Intentionally fail so user can correct issue. */
7168 }
7169 disp->CmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable);
7170 }
7171
CmdSetViewportSwizzleNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportSwizzleNV * pViewportSwizzles)7172 VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV(
7173 VkCommandBuffer commandBuffer,
7174 uint32_t firstViewport,
7175 uint32_t viewportCount,
7176 const VkViewportSwizzleNV* pViewportSwizzles) {
7177 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7178 if (NULL == disp) {
7179 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7180 "vkCmdSetViewportSwizzleNV: Invalid commandBuffer "
7181 "[VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter]");
7182 abort(); /* Intentionally fail so user can correct issue. */
7183 }
7184 disp->CmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles);
7185 }
7186
CmdSetCoverageToColorEnableNV(VkCommandBuffer commandBuffer,VkBool32 coverageToColorEnable)7187 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorEnableNV(
7188 VkCommandBuffer commandBuffer,
7189 VkBool32 coverageToColorEnable) {
7190 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7191 if (NULL == disp) {
7192 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7193 "vkCmdSetCoverageToColorEnableNV: Invalid commandBuffer "
7194 "[VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter]");
7195 abort(); /* Intentionally fail so user can correct issue. */
7196 }
7197 disp->CmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable);
7198 }
7199
CmdSetCoverageToColorLocationNV(VkCommandBuffer commandBuffer,uint32_t coverageToColorLocation)7200 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorLocationNV(
7201 VkCommandBuffer commandBuffer,
7202 uint32_t coverageToColorLocation) {
7203 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7204 if (NULL == disp) {
7205 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7206 "vkCmdSetCoverageToColorLocationNV: Invalid commandBuffer "
7207 "[VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter]");
7208 abort(); /* Intentionally fail so user can correct issue. */
7209 }
7210 disp->CmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation);
7211 }
7212
CmdSetCoverageModulationModeNV(VkCommandBuffer commandBuffer,VkCoverageModulationModeNV coverageModulationMode)7213 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationModeNV(
7214 VkCommandBuffer commandBuffer,
7215 VkCoverageModulationModeNV coverageModulationMode) {
7216 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7217 if (NULL == disp) {
7218 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7219 "vkCmdSetCoverageModulationModeNV: Invalid commandBuffer "
7220 "[VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter]");
7221 abort(); /* Intentionally fail so user can correct issue. */
7222 }
7223 disp->CmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode);
7224 }
7225
CmdSetCoverageModulationTableEnableNV(VkCommandBuffer commandBuffer,VkBool32 coverageModulationTableEnable)7226 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableEnableNV(
7227 VkCommandBuffer commandBuffer,
7228 VkBool32 coverageModulationTableEnable) {
7229 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7230 if (NULL == disp) {
7231 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7232 "vkCmdSetCoverageModulationTableEnableNV: Invalid commandBuffer "
7233 "[VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter]");
7234 abort(); /* Intentionally fail so user can correct issue. */
7235 }
7236 disp->CmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable);
7237 }
7238
CmdSetCoverageModulationTableNV(VkCommandBuffer commandBuffer,uint32_t coverageModulationTableCount,const float * pCoverageModulationTable)7239 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV(
7240 VkCommandBuffer commandBuffer,
7241 uint32_t coverageModulationTableCount,
7242 const float* pCoverageModulationTable) {
7243 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7244 if (NULL == disp) {
7245 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7246 "vkCmdSetCoverageModulationTableNV: Invalid commandBuffer "
7247 "[VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter]");
7248 abort(); /* Intentionally fail so user can correct issue. */
7249 }
7250 disp->CmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable);
7251 }
7252
CmdSetShadingRateImageEnableNV(VkCommandBuffer commandBuffer,VkBool32 shadingRateImageEnable)7253 VKAPI_ATTR void VKAPI_CALL CmdSetShadingRateImageEnableNV(
7254 VkCommandBuffer commandBuffer,
7255 VkBool32 shadingRateImageEnable) {
7256 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7257 if (NULL == disp) {
7258 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7259 "vkCmdSetShadingRateImageEnableNV: Invalid commandBuffer "
7260 "[VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter]");
7261 abort(); /* Intentionally fail so user can correct issue. */
7262 }
7263 disp->CmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable);
7264 }
7265
CmdSetRepresentativeFragmentTestEnableNV(VkCommandBuffer commandBuffer,VkBool32 representativeFragmentTestEnable)7266 VKAPI_ATTR void VKAPI_CALL CmdSetRepresentativeFragmentTestEnableNV(
7267 VkCommandBuffer commandBuffer,
7268 VkBool32 representativeFragmentTestEnable) {
7269 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7270 if (NULL == disp) {
7271 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7272 "vkCmdSetRepresentativeFragmentTestEnableNV: Invalid commandBuffer "
7273 "[VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter]");
7274 abort(); /* Intentionally fail so user can correct issue. */
7275 }
7276 disp->CmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable);
7277 }
7278
CmdSetCoverageReductionModeNV(VkCommandBuffer commandBuffer,VkCoverageReductionModeNV coverageReductionMode)7279 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV(
7280 VkCommandBuffer commandBuffer,
7281 VkCoverageReductionModeNV coverageReductionMode) {
7282 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7283 if (NULL == disp) {
7284 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7285 "vkCmdSetCoverageReductionModeNV: Invalid commandBuffer "
7286 "[VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter]");
7287 abort(); /* Intentionally fail so user can correct issue. */
7288 }
7289 disp->CmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode);
7290 }
7291
7292
7293 // ---- VK_EXT_shader_module_identifier extension trampoline/terminators
7294
GetShaderModuleIdentifierEXT(VkDevice device,VkShaderModule shaderModule,VkShaderModuleIdentifierEXT * pIdentifier)7295 VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT(
7296 VkDevice device,
7297 VkShaderModule shaderModule,
7298 VkShaderModuleIdentifierEXT* pIdentifier) {
7299 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7300 if (NULL == disp) {
7301 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7302 "vkGetShaderModuleIdentifierEXT: Invalid device "
7303 "[VUID-vkGetShaderModuleIdentifierEXT-device-parameter]");
7304 abort(); /* Intentionally fail so user can correct issue. */
7305 }
7306 disp->GetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier);
7307 }
7308
GetShaderModuleCreateInfoIdentifierEXT(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,VkShaderModuleIdentifierEXT * pIdentifier)7309 VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT(
7310 VkDevice device,
7311 const VkShaderModuleCreateInfo* pCreateInfo,
7312 VkShaderModuleIdentifierEXT* pIdentifier) {
7313 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7314 if (NULL == disp) {
7315 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7316 "vkGetShaderModuleCreateInfoIdentifierEXT: Invalid device "
7317 "[VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter]");
7318 abort(); /* Intentionally fail so user can correct issue. */
7319 }
7320 disp->GetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier);
7321 }
7322
7323
7324 // ---- VK_NV_optical_flow extension trampoline/terminators
7325
GetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice physicalDevice,const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,uint32_t * pFormatCount,VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties)7326 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV(
7327 VkPhysicalDevice physicalDevice,
7328 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
7329 uint32_t* pFormatCount,
7330 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties) {
7331 const VkLayerInstanceDispatchTable *disp;
7332 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7333 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7334 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7335 "vkGetPhysicalDeviceOpticalFlowImageFormatsNV: Invalid physicalDevice "
7336 "[VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter]");
7337 abort(); /* Intentionally fail so user can correct issue. */
7338 }
7339 disp = loader_get_instance_layer_dispatch(physicalDevice);
7340 return disp->GetPhysicalDeviceOpticalFlowImageFormatsNV(unwrapped_phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
7341 }
7342
terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice physicalDevice,const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,uint32_t * pFormatCount,VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties)7343 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(
7344 VkPhysicalDevice physicalDevice,
7345 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
7346 uint32_t* pFormatCount,
7347 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties) {
7348 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7349 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7350 if (NULL == icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV) {
7351 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
7352 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceOpticalFlowImageFormatsNV");
7353 abort(); /* Intentionally fail so user can correct issue. */
7354 }
7355 return icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV(phys_dev_term->phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
7356 }
7357
CreateOpticalFlowSessionNV(VkDevice device,const VkOpticalFlowSessionCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkOpticalFlowSessionNV * pSession)7358 VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV(
7359 VkDevice device,
7360 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
7361 const VkAllocationCallbacks* pAllocator,
7362 VkOpticalFlowSessionNV* pSession) {
7363 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7364 if (NULL == disp) {
7365 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7366 "vkCreateOpticalFlowSessionNV: Invalid device "
7367 "[VUID-vkCreateOpticalFlowSessionNV-device-parameter]");
7368 abort(); /* Intentionally fail so user can correct issue. */
7369 }
7370 return disp->CreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession);
7371 }
7372
DestroyOpticalFlowSessionNV(VkDevice device,VkOpticalFlowSessionNV session,const VkAllocationCallbacks * pAllocator)7373 VKAPI_ATTR void VKAPI_CALL DestroyOpticalFlowSessionNV(
7374 VkDevice device,
7375 VkOpticalFlowSessionNV session,
7376 const VkAllocationCallbacks* pAllocator) {
7377 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7378 if (NULL == disp) {
7379 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7380 "vkDestroyOpticalFlowSessionNV: Invalid device "
7381 "[VUID-vkDestroyOpticalFlowSessionNV-device-parameter]");
7382 abort(); /* Intentionally fail so user can correct issue. */
7383 }
7384 disp->DestroyOpticalFlowSessionNV(device, session, pAllocator);
7385 }
7386
BindOpticalFlowSessionImageNV(VkDevice device,VkOpticalFlowSessionNV session,VkOpticalFlowSessionBindingPointNV bindingPoint,VkImageView view,VkImageLayout layout)7387 VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV(
7388 VkDevice device,
7389 VkOpticalFlowSessionNV session,
7390 VkOpticalFlowSessionBindingPointNV bindingPoint,
7391 VkImageView view,
7392 VkImageLayout layout) {
7393 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7394 if (NULL == disp) {
7395 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7396 "vkBindOpticalFlowSessionImageNV: Invalid device "
7397 "[VUID-vkBindOpticalFlowSessionImageNV-device-parameter]");
7398 abort(); /* Intentionally fail so user can correct issue. */
7399 }
7400 return disp->BindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout);
7401 }
7402
CmdOpticalFlowExecuteNV(VkCommandBuffer commandBuffer,VkOpticalFlowSessionNV session,const VkOpticalFlowExecuteInfoNV * pExecuteInfo)7403 VKAPI_ATTR void VKAPI_CALL CmdOpticalFlowExecuteNV(
7404 VkCommandBuffer commandBuffer,
7405 VkOpticalFlowSessionNV session,
7406 const VkOpticalFlowExecuteInfoNV* pExecuteInfo) {
7407 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7408 if (NULL == disp) {
7409 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7410 "vkCmdOpticalFlowExecuteNV: Invalid commandBuffer "
7411 "[VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter]");
7412 abort(); /* Intentionally fail so user can correct issue. */
7413 }
7414 disp->CmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo);
7415 }
7416
7417
7418 // ---- VK_QCOM_tile_properties extension trampoline/terminators
7419
GetFramebufferTilePropertiesQCOM(VkDevice device,VkFramebuffer framebuffer,uint32_t * pPropertiesCount,VkTilePropertiesQCOM * pProperties)7420 VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM(
7421 VkDevice device,
7422 VkFramebuffer framebuffer,
7423 uint32_t* pPropertiesCount,
7424 VkTilePropertiesQCOM* pProperties) {
7425 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7426 if (NULL == disp) {
7427 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7428 "vkGetFramebufferTilePropertiesQCOM: Invalid device "
7429 "[VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter]");
7430 abort(); /* Intentionally fail so user can correct issue. */
7431 }
7432 return disp->GetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties);
7433 }
7434
GetDynamicRenderingTilePropertiesQCOM(VkDevice device,const VkRenderingInfo * pRenderingInfo,VkTilePropertiesQCOM * pProperties)7435 VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(
7436 VkDevice device,
7437 const VkRenderingInfo* pRenderingInfo,
7438 VkTilePropertiesQCOM* pProperties) {
7439 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7440 if (NULL == disp) {
7441 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7442 "vkGetDynamicRenderingTilePropertiesQCOM: Invalid device "
7443 "[VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter]");
7444 abort(); /* Intentionally fail so user can correct issue. */
7445 }
7446 return disp->GetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties);
7447 }
7448
7449
7450 // ---- VK_OHOS_native_buffer extension trampoline/terminators
7451
7452 #ifdef VK_USE_PLATFORM_OHOS
SetNativeFenceFdOpenHarmony(VkDevice device,int32_t nativeFenceFd,VkSemaphore semaphore,VkFence fence)7453 VKAPI_ATTR VkResult VKAPI_CALL SetNativeFenceFdOpenHarmony(
7454 VkDevice device,
7455 int32_t nativeFenceFd,
7456 VkSemaphore semaphore,
7457 VkFence fence) {
7458 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7459 if (NULL == disp) {
7460 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7461 "vkSetNativeFenceFdOpenHarmony: Invalid device "
7462 "[VUID-vkSetNativeFenceFdOpenHarmony-device-parameter]");
7463 abort(); /* Intentionally fail so user can correct issue. */
7464 }
7465 return disp->SetNativeFenceFdOpenHarmony(device, nativeFenceFd, semaphore, fence);
7466 }
7467
7468 #endif // VK_USE_PLATFORM_OHOS
7469 #ifdef VK_USE_PLATFORM_OHOS
GetNativeFenceFdOpenHarmony(VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image,int32_t * pNativeFenceFd)7470 VKAPI_ATTR VkResult VKAPI_CALL GetNativeFenceFdOpenHarmony(
7471 VkQueue queue,
7472 uint32_t waitSemaphoreCount,
7473 const VkSemaphore* pWaitSemaphores,
7474 VkImage image,
7475 int32_t* pNativeFenceFd) {
7476 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7477 if (NULL == disp) {
7478 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7479 "vkGetNativeFenceFdOpenHarmony: Invalid queue "
7480 "[VUID-vkGetNativeFenceFdOpenHarmony-queue-parameter]");
7481 abort(); /* Intentionally fail so user can correct issue. */
7482 }
7483 return disp->GetNativeFenceFdOpenHarmony(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
7484 }
7485
7486 #endif // VK_USE_PLATFORM_OHOS
7487 #ifdef VK_USE_PLATFORM_OHOS
GetSwapchainGrallocUsageOHOS(VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,uint64_t * grallocUsage)7488 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainGrallocUsageOHOS(
7489 VkDevice device,
7490 VkFormat format,
7491 VkImageUsageFlags imageUsage,
7492 uint64_t* grallocUsage) {
7493 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7494 if (NULL == disp) {
7495 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7496 "vkGetSwapchainGrallocUsageOHOS: Invalid device "
7497 "[VUID-vkGetSwapchainGrallocUsageOHOS-device-parameter]");
7498 abort(); /* Intentionally fail so user can correct issue. */
7499 }
7500 return disp->GetSwapchainGrallocUsageOHOS(device, format, imageUsage, grallocUsage);
7501 }
7502
7503 #endif // VK_USE_PLATFORM_OHOS
7504 #ifdef VK_USE_PLATFORM_OHOS
AcquireImageOHOS(VkDevice device,VkImage image,int32_t nativeFenceFd,VkSemaphore semaphore,VkFence fence)7505 VKAPI_ATTR VkResult VKAPI_CALL AcquireImageOHOS(
7506 VkDevice device,
7507 VkImage image,
7508 int32_t nativeFenceFd,
7509 VkSemaphore semaphore,
7510 VkFence fence) {
7511 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7512 if (NULL == disp) {
7513 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7514 "vkAcquireImageOHOS: Invalid device "
7515 "[VUID-vkAcquireImageOHOS-device-parameter]");
7516 abort(); /* Intentionally fail so user can correct issue. */
7517 }
7518 return disp->AcquireImageOHOS(device, image, nativeFenceFd, semaphore, fence);
7519 }
7520
7521 #endif // VK_USE_PLATFORM_OHOS
7522 #ifdef VK_USE_PLATFORM_OHOS
QueueSignalReleaseImageOHOS(VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image,int32_t * pNativeFenceFd)7523 VKAPI_ATTR VkResult VKAPI_CALL QueueSignalReleaseImageOHOS(
7524 VkQueue queue,
7525 uint32_t waitSemaphoreCount,
7526 const VkSemaphore* pWaitSemaphores,
7527 VkImage image,
7528 int32_t* pNativeFenceFd) {
7529 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7530 if (NULL == disp) {
7531 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7532 "vkQueueSignalReleaseImageOHOS: Invalid queue "
7533 "[VUID-vkQueueSignalReleaseImageOHOS-queue-parameter]");
7534 abort(); /* Intentionally fail so user can correct issue. */
7535 }
7536 return disp->QueueSignalReleaseImageOHOS(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
7537 }
7538
7539 #endif // VK_USE_PLATFORM_OHOS
7540
7541 // ---- VK_OHOS_external_memory extension trampoline/terminators
7542
7543 #ifdef VK_USE_PLATFORM_OHOS
vkGetNativeBufferPropertiesOHOS(VkDevice device,const struct OH_NativeBuffer * buffer,VkNativeBufferPropertiesOHOS * pProperties)7544 VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeBufferPropertiesOHOS(
7545 VkDevice device,
7546 const struct OH_NativeBuffer* buffer,
7547 VkNativeBufferPropertiesOHOS* pProperties) {
7548 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7549 if (NULL == disp) {
7550 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7551 "vkGetNativeBufferPropertiesOHOS: Invalid device "
7552 "[VUID-vkGetNativeBufferPropertiesOHOS-device-parameter]");
7553 abort(); /* Intentionally fail so user can correct issue. */
7554 }
7555 return disp->GetNativeBufferPropertiesOHOS(device, buffer, pProperties);
7556 }
7557
7558 #endif // VK_USE_PLATFORM_OHOS
7559 #ifdef VK_USE_PLATFORM_OHOS
vkGetMemoryNativeBufferOHOS(VkDevice device,const VkMemoryGetNativeBufferInfoOHOS * pInfo,struct OH_NativeBuffer ** pBuffer)7560 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryNativeBufferOHOS(
7561 VkDevice device,
7562 const VkMemoryGetNativeBufferInfoOHOS* pInfo,
7563 struct OH_NativeBuffer** pBuffer) {
7564 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7565 if (NULL == disp) {
7566 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7567 "vkGetMemoryNativeBufferOHOS: Invalid device "
7568 "[VUID-vkGetMemoryNativeBufferOHOS-device-parameter]");
7569 abort(); /* Intentionally fail so user can correct issue. */
7570 }
7571 return disp->GetMemoryNativeBufferOHOS(device, pInfo, pBuffer);
7572 }
7573
7574 #endif // VK_USE_PLATFORM_OHOS
7575
7576 // ---- VK_KHR_acceleration_structure extension trampoline/terminators
7577
CreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure)7578 VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
7579 VkDevice device,
7580 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
7581 const VkAllocationCallbacks* pAllocator,
7582 VkAccelerationStructureKHR* pAccelerationStructure) {
7583 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7584 if (NULL == disp) {
7585 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7586 "vkCreateAccelerationStructureKHR: Invalid device "
7587 "[VUID-vkCreateAccelerationStructureKHR-device-parameter]");
7588 abort(); /* Intentionally fail so user can correct issue. */
7589 }
7590 return disp->CreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
7591 }
7592
DestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator)7593 VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureKHR(
7594 VkDevice device,
7595 VkAccelerationStructureKHR accelerationStructure,
7596 const VkAllocationCallbacks* pAllocator) {
7597 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7598 if (NULL == disp) {
7599 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7600 "vkDestroyAccelerationStructureKHR: Invalid device "
7601 "[VUID-vkDestroyAccelerationStructureKHR-device-parameter]");
7602 abort(); /* Intentionally fail so user can correct issue. */
7603 }
7604 disp->DestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
7605 }
7606
CmdBuildAccelerationStructuresKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos)7607 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresKHR(
7608 VkCommandBuffer commandBuffer,
7609 uint32_t infoCount,
7610 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
7611 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
7612 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7613 if (NULL == disp) {
7614 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7615 "vkCmdBuildAccelerationStructuresKHR: Invalid commandBuffer "
7616 "[VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter]");
7617 abort(); /* Intentionally fail so user can correct issue. */
7618 }
7619 disp->CmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos);
7620 }
7621
CmdBuildAccelerationStructuresIndirectKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkDeviceAddress * pIndirectDeviceAddresses,const uint32_t * pIndirectStrides,const uint32_t * const * ppMaxPrimitiveCounts)7622 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR(
7623 VkCommandBuffer commandBuffer,
7624 uint32_t infoCount,
7625 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
7626 const VkDeviceAddress* pIndirectDeviceAddresses,
7627 const uint32_t* pIndirectStrides,
7628 const uint32_t* const* ppMaxPrimitiveCounts) {
7629 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7630 if (NULL == disp) {
7631 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7632 "vkCmdBuildAccelerationStructuresIndirectKHR: Invalid commandBuffer "
7633 "[VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter]");
7634 abort(); /* Intentionally fail so user can correct issue. */
7635 }
7636 disp->CmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts);
7637 }
7638
BuildAccelerationStructuresKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos)7639 VKAPI_ATTR VkResult VKAPI_CALL BuildAccelerationStructuresKHR(
7640 VkDevice device,
7641 VkDeferredOperationKHR deferredOperation,
7642 uint32_t infoCount,
7643 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
7644 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
7645 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7646 if (NULL == disp) {
7647 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7648 "vkBuildAccelerationStructuresKHR: Invalid device "
7649 "[VUID-vkBuildAccelerationStructuresKHR-device-parameter]");
7650 abort(); /* Intentionally fail so user can correct issue. */
7651 }
7652 return disp->BuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos);
7653 }
7654
CopyAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureInfoKHR * pInfo)7655 VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureKHR(
7656 VkDevice device,
7657 VkDeferredOperationKHR deferredOperation,
7658 const VkCopyAccelerationStructureInfoKHR* pInfo) {
7659 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7660 if (NULL == disp) {
7661 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7662 "vkCopyAccelerationStructureKHR: Invalid device "
7663 "[VUID-vkCopyAccelerationStructureKHR-device-parameter]");
7664 abort(); /* Intentionally fail so user can correct issue. */
7665 }
7666 return disp->CopyAccelerationStructureKHR(device, deferredOperation, pInfo);
7667 }
7668
CopyAccelerationStructureToMemoryKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo)7669 VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR(
7670 VkDevice device,
7671 VkDeferredOperationKHR deferredOperation,
7672 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
7673 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7674 if (NULL == disp) {
7675 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7676 "vkCopyAccelerationStructureToMemoryKHR: Invalid device "
7677 "[VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter]");
7678 abort(); /* Intentionally fail so user can correct issue. */
7679 }
7680 return disp->CopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo);
7681 }
7682
CopyMemoryToAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo)7683 VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToAccelerationStructureKHR(
7684 VkDevice device,
7685 VkDeferredOperationKHR deferredOperation,
7686 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
7687 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7688 if (NULL == disp) {
7689 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7690 "vkCopyMemoryToAccelerationStructureKHR: Invalid device "
7691 "[VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter]");
7692 abort(); /* Intentionally fail so user can correct issue. */
7693 }
7694 return disp->CopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo);
7695 }
7696
WriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride)7697 VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR(
7698 VkDevice device,
7699 uint32_t accelerationStructureCount,
7700 const VkAccelerationStructureKHR* pAccelerationStructures,
7701 VkQueryType queryType,
7702 size_t dataSize,
7703 void* pData,
7704 size_t stride) {
7705 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7706 if (NULL == disp) {
7707 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7708 "vkWriteAccelerationStructuresPropertiesKHR: Invalid device "
7709 "[VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter]");
7710 abort(); /* Intentionally fail so user can correct issue. */
7711 }
7712 return disp->WriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
7713 }
7714
CmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo)7715 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureKHR(
7716 VkCommandBuffer commandBuffer,
7717 const VkCopyAccelerationStructureInfoKHR* pInfo) {
7718 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7719 if (NULL == disp) {
7720 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7721 "vkCmdCopyAccelerationStructureKHR: Invalid commandBuffer "
7722 "[VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter]");
7723 abort(); /* Intentionally fail so user can correct issue. */
7724 }
7725 disp->CmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
7726 }
7727
CmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo)7728 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureToMemoryKHR(
7729 VkCommandBuffer commandBuffer,
7730 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
7731 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7732 if (NULL == disp) {
7733 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7734 "vkCmdCopyAccelerationStructureToMemoryKHR: Invalid commandBuffer "
7735 "[VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter]");
7736 abort(); /* Intentionally fail so user can correct issue. */
7737 }
7738 disp->CmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
7739 }
7740
CmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo)7741 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToAccelerationStructureKHR(
7742 VkCommandBuffer commandBuffer,
7743 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
7744 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7745 if (NULL == disp) {
7746 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7747 "vkCmdCopyMemoryToAccelerationStructureKHR: Invalid commandBuffer "
7748 "[VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter]");
7749 abort(); /* Intentionally fail so user can correct issue. */
7750 }
7751 disp->CmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
7752 }
7753
GetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo)7754 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetAccelerationStructureDeviceAddressKHR(
7755 VkDevice device,
7756 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) {
7757 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7758 if (NULL == disp) {
7759 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7760 "vkGetAccelerationStructureDeviceAddressKHR: Invalid device "
7761 "[VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter]");
7762 abort(); /* Intentionally fail so user can correct issue. */
7763 }
7764 return disp->GetAccelerationStructureDeviceAddressKHR(device, pInfo);
7765 }
7766
CmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)7767 VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR(
7768 VkCommandBuffer commandBuffer,
7769 uint32_t accelerationStructureCount,
7770 const VkAccelerationStructureKHR* pAccelerationStructures,
7771 VkQueryType queryType,
7772 VkQueryPool queryPool,
7773 uint32_t firstQuery) {
7774 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7775 if (NULL == disp) {
7776 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7777 "vkCmdWriteAccelerationStructuresPropertiesKHR: Invalid commandBuffer "
7778 "[VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter]");
7779 abort(); /* Intentionally fail so user can correct issue. */
7780 }
7781 disp->CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
7782 }
7783
GetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionInfoKHR * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility)7784 VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR(
7785 VkDevice device,
7786 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
7787 VkAccelerationStructureCompatibilityKHR* pCompatibility) {
7788 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7789 if (NULL == disp) {
7790 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7791 "vkGetDeviceAccelerationStructureCompatibilityKHR: Invalid device "
7792 "[VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter]");
7793 abort(); /* Intentionally fail so user can correct issue. */
7794 }
7795 disp->GetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility);
7796 }
7797
GetAccelerationStructureBuildSizesKHR(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,const uint32_t * pMaxPrimitiveCounts,VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo)7798 VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR(
7799 VkDevice device,
7800 VkAccelerationStructureBuildTypeKHR buildType,
7801 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
7802 const uint32_t* pMaxPrimitiveCounts,
7803 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {
7804 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7805 if (NULL == disp) {
7806 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7807 "vkGetAccelerationStructureBuildSizesKHR: Invalid device "
7808 "[VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter]");
7809 abort(); /* Intentionally fail so user can correct issue. */
7810 }
7811 disp->GetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo);
7812 }
7813
7814
7815 // ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
7816
CmdTraceRaysKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth)7817 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR(
7818 VkCommandBuffer commandBuffer,
7819 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
7820 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
7821 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
7822 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
7823 uint32_t width,
7824 uint32_t height,
7825 uint32_t depth) {
7826 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7827 if (NULL == disp) {
7828 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7829 "vkCmdTraceRaysKHR: Invalid commandBuffer "
7830 "[VUID-vkCmdTraceRaysKHR-commandBuffer-parameter]");
7831 abort(); /* Intentionally fail so user can correct issue. */
7832 }
7833 disp->CmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
7834 }
7835
CreateRayTracingPipelinesKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)7836 VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesKHR(
7837 VkDevice device,
7838 VkDeferredOperationKHR deferredOperation,
7839 VkPipelineCache pipelineCache,
7840 uint32_t createInfoCount,
7841 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
7842 const VkAllocationCallbacks* pAllocator,
7843 VkPipeline* pPipelines) {
7844 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7845 if (NULL == disp) {
7846 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7847 "vkCreateRayTracingPipelinesKHR: Invalid device "
7848 "[VUID-vkCreateRayTracingPipelinesKHR-device-parameter]");
7849 abort(); /* Intentionally fail so user can correct issue. */
7850 }
7851 return disp->CreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
7852 }
7853
GetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)7854 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR(
7855 VkDevice device,
7856 VkPipeline pipeline,
7857 uint32_t firstGroup,
7858 uint32_t groupCount,
7859 size_t dataSize,
7860 void* pData) {
7861 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7862 if (NULL == disp) {
7863 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7864 "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR: Invalid device "
7865 "[VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter]");
7866 abort(); /* Intentionally fail so user can correct issue. */
7867 }
7868 return disp->GetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
7869 }
7870
CmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,VkDeviceAddress indirectDeviceAddress)7871 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR(
7872 VkCommandBuffer commandBuffer,
7873 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
7874 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
7875 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
7876 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
7877 VkDeviceAddress indirectDeviceAddress) {
7878 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7879 if (NULL == disp) {
7880 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7881 "vkCmdTraceRaysIndirectKHR: Invalid commandBuffer "
7882 "[VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter]");
7883 abort(); /* Intentionally fail so user can correct issue. */
7884 }
7885 disp->CmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress);
7886 }
7887
GetRayTracingShaderGroupStackSizeKHR(VkDevice device,VkPipeline pipeline,uint32_t group,VkShaderGroupShaderKHR groupShader)7888 VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR(
7889 VkDevice device,
7890 VkPipeline pipeline,
7891 uint32_t group,
7892 VkShaderGroupShaderKHR groupShader) {
7893 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7894 if (NULL == disp) {
7895 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7896 "vkGetRayTracingShaderGroupStackSizeKHR: Invalid device "
7897 "[VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter]");
7898 abort(); /* Intentionally fail so user can correct issue. */
7899 }
7900 return disp->GetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader);
7901 }
7902
CmdSetRayTracingPipelineStackSizeKHR(VkCommandBuffer commandBuffer,uint32_t pipelineStackSize)7903 VKAPI_ATTR void VKAPI_CALL CmdSetRayTracingPipelineStackSizeKHR(
7904 VkCommandBuffer commandBuffer,
7905 uint32_t pipelineStackSize) {
7906 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7907 if (NULL == disp) {
7908 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7909 "vkCmdSetRayTracingPipelineStackSizeKHR: Invalid commandBuffer "
7910 "[VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter]");
7911 abort(); /* Intentionally fail so user can correct issue. */
7912 }
7913 disp->CmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize);
7914 }
7915
7916
7917 // ---- VK_EXT_mesh_shader extension trampoline/terminators
7918
CmdDrawMeshTasksEXT(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)7919 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT(
7920 VkCommandBuffer commandBuffer,
7921 uint32_t groupCountX,
7922 uint32_t groupCountY,
7923 uint32_t groupCountZ) {
7924 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7925 if (NULL == disp) {
7926 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7927 "vkCmdDrawMeshTasksEXT: Invalid commandBuffer "
7928 "[VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter]");
7929 abort(); /* Intentionally fail so user can correct issue. */
7930 }
7931 disp->CmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ);
7932 }
7933
CmdDrawMeshTasksIndirectEXT(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)7934 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT(
7935 VkCommandBuffer commandBuffer,
7936 VkBuffer buffer,
7937 VkDeviceSize offset,
7938 uint32_t drawCount,
7939 uint32_t stride) {
7940 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7941 if (NULL == disp) {
7942 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7943 "vkCmdDrawMeshTasksIndirectEXT: Invalid commandBuffer "
7944 "[VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter]");
7945 abort(); /* Intentionally fail so user can correct issue. */
7946 }
7947 disp->CmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride);
7948 }
7949
CmdDrawMeshTasksIndirectCountEXT(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)7950 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT(
7951 VkCommandBuffer commandBuffer,
7952 VkBuffer buffer,
7953 VkDeviceSize offset,
7954 VkBuffer countBuffer,
7955 VkDeviceSize countBufferOffset,
7956 uint32_t maxDrawCount,
7957 uint32_t stride) {
7958 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7959 if (NULL == disp) {
7960 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7961 "vkCmdDrawMeshTasksIndirectCountEXT: Invalid commandBuffer "
7962 "[VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter]");
7963 abort(); /* Intentionally fail so user can correct issue. */
7964 }
7965 disp->CmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
7966 }
7967
7968 // GPA helpers for extensions
extension_instance_gpa(struct loader_instance * ptr_instance,const char * name,void ** addr)7969 bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr) {
7970 *addr = NULL;
7971
7972
7973 // ---- VK_KHR_video_queue extension commands
7974 #ifdef VK_ENABLE_BETA_EXTENSIONS
7975 if (!strcmp("vkGetPhysicalDeviceVideoCapabilitiesKHR", name)) {
7976 *addr = (void *)GetPhysicalDeviceVideoCapabilitiesKHR;
7977 return true;
7978 }
7979 #endif // VK_ENABLE_BETA_EXTENSIONS
7980 #ifdef VK_ENABLE_BETA_EXTENSIONS
7981 if (!strcmp("vkGetPhysicalDeviceVideoFormatPropertiesKHR", name)) {
7982 *addr = (void *)GetPhysicalDeviceVideoFormatPropertiesKHR;
7983 return true;
7984 }
7985 #endif // VK_ENABLE_BETA_EXTENSIONS
7986 #ifdef VK_ENABLE_BETA_EXTENSIONS
7987 if (!strcmp("vkCreateVideoSessionKHR", name)) {
7988 *addr = (void *)CreateVideoSessionKHR;
7989 return true;
7990 }
7991 #endif // VK_ENABLE_BETA_EXTENSIONS
7992 #ifdef VK_ENABLE_BETA_EXTENSIONS
7993 if (!strcmp("vkDestroyVideoSessionKHR", name)) {
7994 *addr = (void *)DestroyVideoSessionKHR;
7995 return true;
7996 }
7997 #endif // VK_ENABLE_BETA_EXTENSIONS
7998 #ifdef VK_ENABLE_BETA_EXTENSIONS
7999 if (!strcmp("vkGetVideoSessionMemoryRequirementsKHR", name)) {
8000 *addr = (void *)GetVideoSessionMemoryRequirementsKHR;
8001 return true;
8002 }
8003 #endif // VK_ENABLE_BETA_EXTENSIONS
8004 #ifdef VK_ENABLE_BETA_EXTENSIONS
8005 if (!strcmp("vkBindVideoSessionMemoryKHR", name)) {
8006 *addr = (void *)BindVideoSessionMemoryKHR;
8007 return true;
8008 }
8009 #endif // VK_ENABLE_BETA_EXTENSIONS
8010 #ifdef VK_ENABLE_BETA_EXTENSIONS
8011 if (!strcmp("vkCreateVideoSessionParametersKHR", name)) {
8012 *addr = (void *)CreateVideoSessionParametersKHR;
8013 return true;
8014 }
8015 #endif // VK_ENABLE_BETA_EXTENSIONS
8016 #ifdef VK_ENABLE_BETA_EXTENSIONS
8017 if (!strcmp("vkUpdateVideoSessionParametersKHR", name)) {
8018 *addr = (void *)UpdateVideoSessionParametersKHR;
8019 return true;
8020 }
8021 #endif // VK_ENABLE_BETA_EXTENSIONS
8022 #ifdef VK_ENABLE_BETA_EXTENSIONS
8023 if (!strcmp("vkDestroyVideoSessionParametersKHR", name)) {
8024 *addr = (void *)DestroyVideoSessionParametersKHR;
8025 return true;
8026 }
8027 #endif // VK_ENABLE_BETA_EXTENSIONS
8028 #ifdef VK_ENABLE_BETA_EXTENSIONS
8029 if (!strcmp("vkCmdBeginVideoCodingKHR", name)) {
8030 *addr = (void *)CmdBeginVideoCodingKHR;
8031 return true;
8032 }
8033 #endif // VK_ENABLE_BETA_EXTENSIONS
8034 #ifdef VK_ENABLE_BETA_EXTENSIONS
8035 if (!strcmp("vkCmdEndVideoCodingKHR", name)) {
8036 *addr = (void *)CmdEndVideoCodingKHR;
8037 return true;
8038 }
8039 #endif // VK_ENABLE_BETA_EXTENSIONS
8040 #ifdef VK_ENABLE_BETA_EXTENSIONS
8041 if (!strcmp("vkCmdControlVideoCodingKHR", name)) {
8042 *addr = (void *)CmdControlVideoCodingKHR;
8043 return true;
8044 }
8045 #endif // VK_ENABLE_BETA_EXTENSIONS
8046
8047 // ---- VK_KHR_video_decode_queue extension commands
8048 #ifdef VK_ENABLE_BETA_EXTENSIONS
8049 if (!strcmp("vkCmdDecodeVideoKHR", name)) {
8050 *addr = (void *)CmdDecodeVideoKHR;
8051 return true;
8052 }
8053 #endif // VK_ENABLE_BETA_EXTENSIONS
8054
8055 // ---- VK_KHR_dynamic_rendering extension commands
8056 if (!strcmp("vkCmdBeginRenderingKHR", name)) {
8057 *addr = (void *)CmdBeginRenderingKHR;
8058 return true;
8059 }
8060 if (!strcmp("vkCmdEndRenderingKHR", name)) {
8061 *addr = (void *)CmdEndRenderingKHR;
8062 return true;
8063 }
8064
8065 // ---- VK_KHR_get_physical_device_properties2 extension commands
8066 if (!strcmp("vkGetPhysicalDeviceFeatures2KHR", name)) {
8067 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
8068 ? (void *)vkGetPhysicalDeviceFeatures2
8069 : NULL;
8070 return true;
8071 }
8072 if (!strcmp("vkGetPhysicalDeviceProperties2KHR", name)) {
8073 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
8074 ? (void *)vkGetPhysicalDeviceProperties2
8075 : NULL;
8076 return true;
8077 }
8078 if (!strcmp("vkGetPhysicalDeviceFormatProperties2KHR", name)) {
8079 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
8080 ? (void *)vkGetPhysicalDeviceFormatProperties2
8081 : NULL;
8082 return true;
8083 }
8084 if (!strcmp("vkGetPhysicalDeviceImageFormatProperties2KHR", name)) {
8085 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
8086 ? (void *)vkGetPhysicalDeviceImageFormatProperties2
8087 : NULL;
8088 return true;
8089 }
8090 if (!strcmp("vkGetPhysicalDeviceQueueFamilyProperties2KHR", name)) {
8091 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
8092 ? (void *)vkGetPhysicalDeviceQueueFamilyProperties2
8093 : NULL;
8094 return true;
8095 }
8096 if (!strcmp("vkGetPhysicalDeviceMemoryProperties2KHR", name)) {
8097 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
8098 ? (void *)vkGetPhysicalDeviceMemoryProperties2
8099 : NULL;
8100 return true;
8101 }
8102 if (!strcmp("vkGetPhysicalDeviceSparseImageFormatProperties2KHR", name)) {
8103 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
8104 ? (void *)vkGetPhysicalDeviceSparseImageFormatProperties2
8105 : NULL;
8106 return true;
8107 }
8108
8109 // ---- VK_KHR_device_group extension commands
8110 if (!strcmp("vkGetDeviceGroupPeerMemoryFeaturesKHR", name)) {
8111 *addr = (void *)GetDeviceGroupPeerMemoryFeaturesKHR;
8112 return true;
8113 }
8114 if (!strcmp("vkCmdSetDeviceMaskKHR", name)) {
8115 *addr = (void *)CmdSetDeviceMaskKHR;
8116 return true;
8117 }
8118 if (!strcmp("vkCmdDispatchBaseKHR", name)) {
8119 *addr = (void *)CmdDispatchBaseKHR;
8120 return true;
8121 }
8122
8123 // ---- VK_KHR_maintenance1 extension commands
8124 if (!strcmp("vkTrimCommandPoolKHR", name)) {
8125 *addr = (void *)TrimCommandPoolKHR;
8126 return true;
8127 }
8128
8129 // ---- VK_KHR_device_group_creation extension commands
8130 if (!strcmp("vkEnumeratePhysicalDeviceGroupsKHR", name)) {
8131 *addr = (ptr_instance->enabled_known_extensions.khr_device_group_creation == 1)
8132 ? (void *)vkEnumeratePhysicalDeviceGroups
8133 : NULL;
8134 return true;
8135 }
8136
8137 // ---- VK_KHR_external_memory_capabilities extension commands
8138 if (!strcmp("vkGetPhysicalDeviceExternalBufferPropertiesKHR", name)) {
8139 *addr = (ptr_instance->enabled_known_extensions.khr_external_memory_capabilities == 1)
8140 ? (void *)vkGetPhysicalDeviceExternalBufferProperties
8141 : NULL;
8142 return true;
8143 }
8144
8145 // ---- VK_KHR_external_memory_win32 extension commands
8146 #ifdef VK_USE_PLATFORM_WIN32_KHR
8147 if (!strcmp("vkGetMemoryWin32HandleKHR", name)) {
8148 *addr = (void *)GetMemoryWin32HandleKHR;
8149 return true;
8150 }
8151 #endif // VK_USE_PLATFORM_WIN32_KHR
8152 #ifdef VK_USE_PLATFORM_WIN32_KHR
8153 if (!strcmp("vkGetMemoryWin32HandlePropertiesKHR", name)) {
8154 *addr = (void *)GetMemoryWin32HandlePropertiesKHR;
8155 return true;
8156 }
8157 #endif // VK_USE_PLATFORM_WIN32_KHR
8158
8159 // ---- VK_KHR_external_memory_fd extension commands
8160 if (!strcmp("vkGetMemoryFdKHR", name)) {
8161 *addr = (void *)GetMemoryFdKHR;
8162 return true;
8163 }
8164 if (!strcmp("vkGetMemoryFdPropertiesKHR", name)) {
8165 *addr = (void *)GetMemoryFdPropertiesKHR;
8166 return true;
8167 }
8168
8169 // ---- VK_KHR_external_semaphore_capabilities extension commands
8170 if (!strcmp("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR", name)) {
8171 *addr = (ptr_instance->enabled_known_extensions.khr_external_semaphore_capabilities == 1)
8172 ? (void *)vkGetPhysicalDeviceExternalSemaphoreProperties
8173 : NULL;
8174 return true;
8175 }
8176
8177 // ---- VK_KHR_external_semaphore_win32 extension commands
8178 #ifdef VK_USE_PLATFORM_WIN32_KHR
8179 if (!strcmp("vkImportSemaphoreWin32HandleKHR", name)) {
8180 *addr = (void *)ImportSemaphoreWin32HandleKHR;
8181 return true;
8182 }
8183 #endif // VK_USE_PLATFORM_WIN32_KHR
8184 #ifdef VK_USE_PLATFORM_WIN32_KHR
8185 if (!strcmp("vkGetSemaphoreWin32HandleKHR", name)) {
8186 *addr = (void *)GetSemaphoreWin32HandleKHR;
8187 return true;
8188 }
8189 #endif // VK_USE_PLATFORM_WIN32_KHR
8190
8191 // ---- VK_KHR_external_semaphore_fd extension commands
8192 if (!strcmp("vkImportSemaphoreFdKHR", name)) {
8193 *addr = (void *)ImportSemaphoreFdKHR;
8194 return true;
8195 }
8196 if (!strcmp("vkGetSemaphoreFdKHR", name)) {
8197 *addr = (void *)GetSemaphoreFdKHR;
8198 return true;
8199 }
8200
8201 // ---- VK_KHR_push_descriptor extension commands
8202 if (!strcmp("vkCmdPushDescriptorSetKHR", name)) {
8203 *addr = (void *)CmdPushDescriptorSetKHR;
8204 return true;
8205 }
8206 if (!strcmp("vkCmdPushDescriptorSetWithTemplateKHR", name)) {
8207 *addr = (void *)CmdPushDescriptorSetWithTemplateKHR;
8208 return true;
8209 }
8210
8211 // ---- VK_KHR_descriptor_update_template extension commands
8212 if (!strcmp("vkCreateDescriptorUpdateTemplateKHR", name)) {
8213 *addr = (void *)CreateDescriptorUpdateTemplateKHR;
8214 return true;
8215 }
8216 if (!strcmp("vkDestroyDescriptorUpdateTemplateKHR", name)) {
8217 *addr = (void *)DestroyDescriptorUpdateTemplateKHR;
8218 return true;
8219 }
8220 if (!strcmp("vkUpdateDescriptorSetWithTemplateKHR", name)) {
8221 *addr = (void *)UpdateDescriptorSetWithTemplateKHR;
8222 return true;
8223 }
8224
8225 // ---- VK_KHR_create_renderpass2 extension commands
8226 if (!strcmp("vkCreateRenderPass2KHR", name)) {
8227 *addr = (void *)CreateRenderPass2KHR;
8228 return true;
8229 }
8230 if (!strcmp("vkCmdBeginRenderPass2KHR", name)) {
8231 *addr = (void *)CmdBeginRenderPass2KHR;
8232 return true;
8233 }
8234 if (!strcmp("vkCmdNextSubpass2KHR", name)) {
8235 *addr = (void *)CmdNextSubpass2KHR;
8236 return true;
8237 }
8238 if (!strcmp("vkCmdEndRenderPass2KHR", name)) {
8239 *addr = (void *)CmdEndRenderPass2KHR;
8240 return true;
8241 }
8242
8243 // ---- VK_KHR_shared_presentable_image extension commands
8244 if (!strcmp("vkGetSwapchainStatusKHR", name)) {
8245 *addr = (void *)GetSwapchainStatusKHR;
8246 return true;
8247 }
8248
8249 // ---- VK_KHR_external_fence_capabilities extension commands
8250 if (!strcmp("vkGetPhysicalDeviceExternalFencePropertiesKHR", name)) {
8251 *addr = (ptr_instance->enabled_known_extensions.khr_external_fence_capabilities == 1)
8252 ? (void *)vkGetPhysicalDeviceExternalFenceProperties
8253 : NULL;
8254 return true;
8255 }
8256
8257 // ---- VK_KHR_external_fence_win32 extension commands
8258 #ifdef VK_USE_PLATFORM_WIN32_KHR
8259 if (!strcmp("vkImportFenceWin32HandleKHR", name)) {
8260 *addr = (void *)ImportFenceWin32HandleKHR;
8261 return true;
8262 }
8263 #endif // VK_USE_PLATFORM_WIN32_KHR
8264 #ifdef VK_USE_PLATFORM_WIN32_KHR
8265 if (!strcmp("vkGetFenceWin32HandleKHR", name)) {
8266 *addr = (void *)GetFenceWin32HandleKHR;
8267 return true;
8268 }
8269 #endif // VK_USE_PLATFORM_WIN32_KHR
8270
8271 // ---- VK_KHR_external_fence_fd extension commands
8272 if (!strcmp("vkImportFenceFdKHR", name)) {
8273 *addr = (void *)ImportFenceFdKHR;
8274 return true;
8275 }
8276 if (!strcmp("vkGetFenceFdKHR", name)) {
8277 *addr = (void *)GetFenceFdKHR;
8278 return true;
8279 }
8280
8281 // ---- VK_KHR_performance_query extension commands
8282 if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR", name)) {
8283 *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
8284 return true;
8285 }
8286 if (!strcmp("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", name)) {
8287 *addr = (void *)GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
8288 return true;
8289 }
8290 if (!strcmp("vkAcquireProfilingLockKHR", name)) {
8291 *addr = (void *)AcquireProfilingLockKHR;
8292 return true;
8293 }
8294 if (!strcmp("vkReleaseProfilingLockKHR", name)) {
8295 *addr = (void *)ReleaseProfilingLockKHR;
8296 return true;
8297 }
8298
8299 // ---- VK_KHR_get_memory_requirements2 extension commands
8300 if (!strcmp("vkGetImageMemoryRequirements2KHR", name)) {
8301 *addr = (void *)GetImageMemoryRequirements2KHR;
8302 return true;
8303 }
8304 if (!strcmp("vkGetBufferMemoryRequirements2KHR", name)) {
8305 *addr = (void *)GetBufferMemoryRequirements2KHR;
8306 return true;
8307 }
8308 if (!strcmp("vkGetImageSparseMemoryRequirements2KHR", name)) {
8309 *addr = (void *)GetImageSparseMemoryRequirements2KHR;
8310 return true;
8311 }
8312
8313 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
8314 if (!strcmp("vkCreateSamplerYcbcrConversionKHR", name)) {
8315 *addr = (void *)CreateSamplerYcbcrConversionKHR;
8316 return true;
8317 }
8318 if (!strcmp("vkDestroySamplerYcbcrConversionKHR", name)) {
8319 *addr = (void *)DestroySamplerYcbcrConversionKHR;
8320 return true;
8321 }
8322
8323 // ---- VK_KHR_bind_memory2 extension commands
8324 if (!strcmp("vkBindBufferMemory2KHR", name)) {
8325 *addr = (void *)BindBufferMemory2KHR;
8326 return true;
8327 }
8328 if (!strcmp("vkBindImageMemory2KHR", name)) {
8329 *addr = (void *)BindImageMemory2KHR;
8330 return true;
8331 }
8332
8333 // ---- VK_KHR_maintenance3 extension commands
8334 if (!strcmp("vkGetDescriptorSetLayoutSupportKHR", name)) {
8335 *addr = (void *)GetDescriptorSetLayoutSupportKHR;
8336 return true;
8337 }
8338
8339 // ---- VK_KHR_draw_indirect_count extension commands
8340 if (!strcmp("vkCmdDrawIndirectCountKHR", name)) {
8341 *addr = (void *)CmdDrawIndirectCountKHR;
8342 return true;
8343 }
8344 if (!strcmp("vkCmdDrawIndexedIndirectCountKHR", name)) {
8345 *addr = (void *)CmdDrawIndexedIndirectCountKHR;
8346 return true;
8347 }
8348
8349 // ---- VK_KHR_timeline_semaphore extension commands
8350 if (!strcmp("vkGetSemaphoreCounterValueKHR", name)) {
8351 *addr = (void *)GetSemaphoreCounterValueKHR;
8352 return true;
8353 }
8354 if (!strcmp("vkWaitSemaphoresKHR", name)) {
8355 *addr = (void *)WaitSemaphoresKHR;
8356 return true;
8357 }
8358 if (!strcmp("vkSignalSemaphoreKHR", name)) {
8359 *addr = (void *)SignalSemaphoreKHR;
8360 return true;
8361 }
8362
8363 // ---- VK_KHR_fragment_shading_rate extension commands
8364 if (!strcmp("vkGetPhysicalDeviceFragmentShadingRatesKHR", name)) {
8365 *addr = (void *)GetPhysicalDeviceFragmentShadingRatesKHR;
8366 return true;
8367 }
8368 if (!strcmp("vkCmdSetFragmentShadingRateKHR", name)) {
8369 *addr = (void *)CmdSetFragmentShadingRateKHR;
8370 return true;
8371 }
8372
8373 // ---- VK_KHR_present_wait extension commands
8374 if (!strcmp("vkWaitForPresentKHR", name)) {
8375 *addr = (void *)WaitForPresentKHR;
8376 return true;
8377 }
8378
8379 // ---- VK_KHR_buffer_device_address extension commands
8380 if (!strcmp("vkGetBufferDeviceAddressKHR", name)) {
8381 *addr = (void *)GetBufferDeviceAddressKHR;
8382 return true;
8383 }
8384 if (!strcmp("vkGetBufferOpaqueCaptureAddressKHR", name)) {
8385 *addr = (void *)GetBufferOpaqueCaptureAddressKHR;
8386 return true;
8387 }
8388 if (!strcmp("vkGetDeviceMemoryOpaqueCaptureAddressKHR", name)) {
8389 *addr = (void *)GetDeviceMemoryOpaqueCaptureAddressKHR;
8390 return true;
8391 }
8392
8393 // ---- VK_KHR_deferred_host_operations extension commands
8394 if (!strcmp("vkCreateDeferredOperationKHR", name)) {
8395 *addr = (void *)CreateDeferredOperationKHR;
8396 return true;
8397 }
8398 if (!strcmp("vkDestroyDeferredOperationKHR", name)) {
8399 *addr = (void *)DestroyDeferredOperationKHR;
8400 return true;
8401 }
8402 if (!strcmp("vkGetDeferredOperationMaxConcurrencyKHR", name)) {
8403 *addr = (void *)GetDeferredOperationMaxConcurrencyKHR;
8404 return true;
8405 }
8406 if (!strcmp("vkGetDeferredOperationResultKHR", name)) {
8407 *addr = (void *)GetDeferredOperationResultKHR;
8408 return true;
8409 }
8410 if (!strcmp("vkDeferredOperationJoinKHR", name)) {
8411 *addr = (void *)DeferredOperationJoinKHR;
8412 return true;
8413 }
8414
8415 // ---- VK_KHR_pipeline_executable_properties extension commands
8416 if (!strcmp("vkGetPipelineExecutablePropertiesKHR", name)) {
8417 *addr = (void *)GetPipelineExecutablePropertiesKHR;
8418 return true;
8419 }
8420 if (!strcmp("vkGetPipelineExecutableStatisticsKHR", name)) {
8421 *addr = (void *)GetPipelineExecutableStatisticsKHR;
8422 return true;
8423 }
8424 if (!strcmp("vkGetPipelineExecutableInternalRepresentationsKHR", name)) {
8425 *addr = (void *)GetPipelineExecutableInternalRepresentationsKHR;
8426 return true;
8427 }
8428
8429 // ---- VK_KHR_video_encode_queue extension commands
8430 #ifdef VK_ENABLE_BETA_EXTENSIONS
8431 if (!strcmp("vkCmdEncodeVideoKHR", name)) {
8432 *addr = (void *)CmdEncodeVideoKHR;
8433 return true;
8434 }
8435 #endif // VK_ENABLE_BETA_EXTENSIONS
8436
8437 // ---- VK_KHR_synchronization2 extension commands
8438 if (!strcmp("vkCmdSetEvent2KHR", name)) {
8439 *addr = (void *)CmdSetEvent2KHR;
8440 return true;
8441 }
8442 if (!strcmp("vkCmdResetEvent2KHR", name)) {
8443 *addr = (void *)CmdResetEvent2KHR;
8444 return true;
8445 }
8446 if (!strcmp("vkCmdWaitEvents2KHR", name)) {
8447 *addr = (void *)CmdWaitEvents2KHR;
8448 return true;
8449 }
8450 if (!strcmp("vkCmdPipelineBarrier2KHR", name)) {
8451 *addr = (void *)CmdPipelineBarrier2KHR;
8452 return true;
8453 }
8454 if (!strcmp("vkCmdWriteTimestamp2KHR", name)) {
8455 *addr = (void *)CmdWriteTimestamp2KHR;
8456 return true;
8457 }
8458 if (!strcmp("vkQueueSubmit2KHR", name)) {
8459 *addr = (void *)QueueSubmit2KHR;
8460 return true;
8461 }
8462 if (!strcmp("vkCmdWriteBufferMarker2AMD", name)) {
8463 *addr = (void *)CmdWriteBufferMarker2AMD;
8464 return true;
8465 }
8466 if (!strcmp("vkGetQueueCheckpointData2NV", name)) {
8467 *addr = (void *)GetQueueCheckpointData2NV;
8468 return true;
8469 }
8470
8471 // ---- VK_KHR_copy_commands2 extension commands
8472 if (!strcmp("vkCmdCopyBuffer2KHR", name)) {
8473 *addr = (void *)CmdCopyBuffer2KHR;
8474 return true;
8475 }
8476 if (!strcmp("vkCmdCopyImage2KHR", name)) {
8477 *addr = (void *)CmdCopyImage2KHR;
8478 return true;
8479 }
8480 if (!strcmp("vkCmdCopyBufferToImage2KHR", name)) {
8481 *addr = (void *)CmdCopyBufferToImage2KHR;
8482 return true;
8483 }
8484 if (!strcmp("vkCmdCopyImageToBuffer2KHR", name)) {
8485 *addr = (void *)CmdCopyImageToBuffer2KHR;
8486 return true;
8487 }
8488 if (!strcmp("vkCmdBlitImage2KHR", name)) {
8489 *addr = (void *)CmdBlitImage2KHR;
8490 return true;
8491 }
8492 if (!strcmp("vkCmdResolveImage2KHR", name)) {
8493 *addr = (void *)CmdResolveImage2KHR;
8494 return true;
8495 }
8496
8497 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
8498 if (!strcmp("vkCmdTraceRaysIndirect2KHR", name)) {
8499 *addr = (void *)CmdTraceRaysIndirect2KHR;
8500 return true;
8501 }
8502
8503 // ---- VK_KHR_maintenance4 extension commands
8504 if (!strcmp("vkGetDeviceBufferMemoryRequirementsKHR", name)) {
8505 *addr = (void *)GetDeviceBufferMemoryRequirementsKHR;
8506 return true;
8507 }
8508 if (!strcmp("vkGetDeviceImageMemoryRequirementsKHR", name)) {
8509 *addr = (void *)GetDeviceImageMemoryRequirementsKHR;
8510 return true;
8511 }
8512 if (!strcmp("vkGetDeviceImageSparseMemoryRequirementsKHR", name)) {
8513 *addr = (void *)GetDeviceImageSparseMemoryRequirementsKHR;
8514 return true;
8515 }
8516
8517 // ---- VK_EXT_debug_marker extension commands
8518 if (!strcmp("vkDebugMarkerSetObjectTagEXT", name)) {
8519 *addr = (void *)DebugMarkerSetObjectTagEXT;
8520 return true;
8521 }
8522 if (!strcmp("vkDebugMarkerSetObjectNameEXT", name)) {
8523 *addr = (void *)DebugMarkerSetObjectNameEXT;
8524 return true;
8525 }
8526 if (!strcmp("vkCmdDebugMarkerBeginEXT", name)) {
8527 *addr = (void *)CmdDebugMarkerBeginEXT;
8528 return true;
8529 }
8530 if (!strcmp("vkCmdDebugMarkerEndEXT", name)) {
8531 *addr = (void *)CmdDebugMarkerEndEXT;
8532 return true;
8533 }
8534 if (!strcmp("vkCmdDebugMarkerInsertEXT", name)) {
8535 *addr = (void *)CmdDebugMarkerInsertEXT;
8536 return true;
8537 }
8538
8539 // ---- VK_EXT_transform_feedback extension commands
8540 if (!strcmp("vkCmdBindTransformFeedbackBuffersEXT", name)) {
8541 *addr = (void *)CmdBindTransformFeedbackBuffersEXT;
8542 return true;
8543 }
8544 if (!strcmp("vkCmdBeginTransformFeedbackEXT", name)) {
8545 *addr = (void *)CmdBeginTransformFeedbackEXT;
8546 return true;
8547 }
8548 if (!strcmp("vkCmdEndTransformFeedbackEXT", name)) {
8549 *addr = (void *)CmdEndTransformFeedbackEXT;
8550 return true;
8551 }
8552 if (!strcmp("vkCmdBeginQueryIndexedEXT", name)) {
8553 *addr = (void *)CmdBeginQueryIndexedEXT;
8554 return true;
8555 }
8556 if (!strcmp("vkCmdEndQueryIndexedEXT", name)) {
8557 *addr = (void *)CmdEndQueryIndexedEXT;
8558 return true;
8559 }
8560 if (!strcmp("vkCmdDrawIndirectByteCountEXT", name)) {
8561 *addr = (void *)CmdDrawIndirectByteCountEXT;
8562 return true;
8563 }
8564
8565 // ---- VK_NVX_binary_import extension commands
8566 if (!strcmp("vkCreateCuModuleNVX", name)) {
8567 *addr = (void *)CreateCuModuleNVX;
8568 return true;
8569 }
8570 if (!strcmp("vkCreateCuFunctionNVX", name)) {
8571 *addr = (void *)CreateCuFunctionNVX;
8572 return true;
8573 }
8574 if (!strcmp("vkDestroyCuModuleNVX", name)) {
8575 *addr = (void *)DestroyCuModuleNVX;
8576 return true;
8577 }
8578 if (!strcmp("vkDestroyCuFunctionNVX", name)) {
8579 *addr = (void *)DestroyCuFunctionNVX;
8580 return true;
8581 }
8582 if (!strcmp("vkCmdCuLaunchKernelNVX", name)) {
8583 *addr = (void *)CmdCuLaunchKernelNVX;
8584 return true;
8585 }
8586
8587 // ---- VK_NVX_image_view_handle extension commands
8588 if (!strcmp("vkGetImageViewHandleNVX", name)) {
8589 *addr = (void *)GetImageViewHandleNVX;
8590 return true;
8591 }
8592 if (!strcmp("vkGetImageViewAddressNVX", name)) {
8593 *addr = (void *)GetImageViewAddressNVX;
8594 return true;
8595 }
8596
8597 // ---- VK_AMD_draw_indirect_count extension commands
8598 if (!strcmp("vkCmdDrawIndirectCountAMD", name)) {
8599 *addr = (void *)CmdDrawIndirectCountAMD;
8600 return true;
8601 }
8602 if (!strcmp("vkCmdDrawIndexedIndirectCountAMD", name)) {
8603 *addr = (void *)CmdDrawIndexedIndirectCountAMD;
8604 return true;
8605 }
8606
8607 // ---- VK_AMD_shader_info extension commands
8608 if (!strcmp("vkGetShaderInfoAMD", name)) {
8609 *addr = (void *)GetShaderInfoAMD;
8610 return true;
8611 }
8612
8613 // ---- VK_NV_external_memory_capabilities extension commands
8614 if (!strcmp("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", name)) {
8615 *addr = (ptr_instance->enabled_known_extensions.nv_external_memory_capabilities == 1)
8616 ? (void *)GetPhysicalDeviceExternalImageFormatPropertiesNV
8617 : NULL;
8618 return true;
8619 }
8620
8621 // ---- VK_NV_external_memory_win32 extension commands
8622 #ifdef VK_USE_PLATFORM_WIN32_KHR
8623 if (!strcmp("vkGetMemoryWin32HandleNV", name)) {
8624 *addr = (void *)GetMemoryWin32HandleNV;
8625 return true;
8626 }
8627 #endif // VK_USE_PLATFORM_WIN32_KHR
8628
8629 // ---- VK_EXT_conditional_rendering extension commands
8630 if (!strcmp("vkCmdBeginConditionalRenderingEXT", name)) {
8631 *addr = (void *)CmdBeginConditionalRenderingEXT;
8632 return true;
8633 }
8634 if (!strcmp("vkCmdEndConditionalRenderingEXT", name)) {
8635 *addr = (void *)CmdEndConditionalRenderingEXT;
8636 return true;
8637 }
8638
8639 // ---- VK_NV_clip_space_w_scaling extension commands
8640 if (!strcmp("vkCmdSetViewportWScalingNV", name)) {
8641 *addr = (void *)CmdSetViewportWScalingNV;
8642 return true;
8643 }
8644
8645 // ---- VK_EXT_direct_mode_display extension commands
8646 if (!strcmp("vkReleaseDisplayEXT", name)) {
8647 *addr = (ptr_instance->enabled_known_extensions.ext_direct_mode_display == 1)
8648 ? (void *)ReleaseDisplayEXT
8649 : NULL;
8650 return true;
8651 }
8652
8653 // ---- VK_EXT_acquire_xlib_display extension commands
8654 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
8655 if (!strcmp("vkAcquireXlibDisplayEXT", name)) {
8656 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_xlib_display == 1)
8657 ? (void *)AcquireXlibDisplayEXT
8658 : NULL;
8659 return true;
8660 }
8661 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
8662 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
8663 if (!strcmp("vkGetRandROutputDisplayEXT", name)) {
8664 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_xlib_display == 1)
8665 ? (void *)GetRandROutputDisplayEXT
8666 : NULL;
8667 return true;
8668 }
8669 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
8670
8671 // ---- VK_EXT_display_surface_counter extension commands
8672 if (!strcmp("vkGetPhysicalDeviceSurfaceCapabilities2EXT", name)) {
8673 *addr = (ptr_instance->enabled_known_extensions.ext_display_surface_counter == 1)
8674 ? (void *)GetPhysicalDeviceSurfaceCapabilities2EXT
8675 : NULL;
8676 return true;
8677 }
8678
8679 // ---- VK_EXT_display_control extension commands
8680 if (!strcmp("vkDisplayPowerControlEXT", name)) {
8681 *addr = (void *)DisplayPowerControlEXT;
8682 return true;
8683 }
8684 if (!strcmp("vkRegisterDeviceEventEXT", name)) {
8685 *addr = (void *)RegisterDeviceEventEXT;
8686 return true;
8687 }
8688 if (!strcmp("vkRegisterDisplayEventEXT", name)) {
8689 *addr = (void *)RegisterDisplayEventEXT;
8690 return true;
8691 }
8692 if (!strcmp("vkGetSwapchainCounterEXT", name)) {
8693 *addr = (void *)GetSwapchainCounterEXT;
8694 return true;
8695 }
8696
8697 // ---- VK_GOOGLE_display_timing extension commands
8698 if (!strcmp("vkGetRefreshCycleDurationGOOGLE", name)) {
8699 *addr = (void *)GetRefreshCycleDurationGOOGLE;
8700 return true;
8701 }
8702 if (!strcmp("vkGetPastPresentationTimingGOOGLE", name)) {
8703 *addr = (void *)GetPastPresentationTimingGOOGLE;
8704 return true;
8705 }
8706
8707 // ---- VK_EXT_discard_rectangles extension commands
8708 if (!strcmp("vkCmdSetDiscardRectangleEXT", name)) {
8709 *addr = (void *)CmdSetDiscardRectangleEXT;
8710 return true;
8711 }
8712
8713 // ---- VK_EXT_hdr_metadata extension commands
8714 if (!strcmp("vkSetHdrMetadataEXT", name)) {
8715 *addr = (void *)SetHdrMetadataEXT;
8716 return true;
8717 }
8718
8719 // ---- VK_EXT_debug_utils extension commands
8720 if (!strcmp("vkSetDebugUtilsObjectNameEXT", name)) {
8721 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
8722 ? (void *)SetDebugUtilsObjectNameEXT
8723 : NULL;
8724 return true;
8725 }
8726 if (!strcmp("vkSetDebugUtilsObjectTagEXT", name)) {
8727 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
8728 ? (void *)SetDebugUtilsObjectTagEXT
8729 : NULL;
8730 return true;
8731 }
8732 if (!strcmp("vkQueueBeginDebugUtilsLabelEXT", name)) {
8733 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
8734 ? (void *)QueueBeginDebugUtilsLabelEXT
8735 : NULL;
8736 return true;
8737 }
8738 if (!strcmp("vkQueueEndDebugUtilsLabelEXT", name)) {
8739 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
8740 ? (void *)QueueEndDebugUtilsLabelEXT
8741 : NULL;
8742 return true;
8743 }
8744 if (!strcmp("vkQueueInsertDebugUtilsLabelEXT", name)) {
8745 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
8746 ? (void *)QueueInsertDebugUtilsLabelEXT
8747 : NULL;
8748 return true;
8749 }
8750 if (!strcmp("vkCmdBeginDebugUtilsLabelEXT", name)) {
8751 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
8752 ? (void *)CmdBeginDebugUtilsLabelEXT
8753 : NULL;
8754 return true;
8755 }
8756 if (!strcmp("vkCmdEndDebugUtilsLabelEXT", name)) {
8757 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
8758 ? (void *)CmdEndDebugUtilsLabelEXT
8759 : NULL;
8760 return true;
8761 }
8762 if (!strcmp("vkCmdInsertDebugUtilsLabelEXT", name)) {
8763 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
8764 ? (void *)CmdInsertDebugUtilsLabelEXT
8765 : NULL;
8766 return true;
8767 }
8768
8769 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
8770 #ifdef VK_USE_PLATFORM_ANDROID_KHR
8771 if (!strcmp("vkGetAndroidHardwareBufferPropertiesANDROID", name)) {
8772 *addr = (void *)GetAndroidHardwareBufferPropertiesANDROID;
8773 return true;
8774 }
8775 #endif // VK_USE_PLATFORM_ANDROID_KHR
8776 #ifdef VK_USE_PLATFORM_ANDROID_KHR
8777 if (!strcmp("vkGetMemoryAndroidHardwareBufferANDROID", name)) {
8778 *addr = (void *)GetMemoryAndroidHardwareBufferANDROID;
8779 return true;
8780 }
8781 #endif // VK_USE_PLATFORM_ANDROID_KHR
8782
8783 // ---- VK_EXT_sample_locations extension commands
8784 if (!strcmp("vkCmdSetSampleLocationsEXT", name)) {
8785 *addr = (void *)CmdSetSampleLocationsEXT;
8786 return true;
8787 }
8788 if (!strcmp("vkGetPhysicalDeviceMultisamplePropertiesEXT", name)) {
8789 *addr = (void *)GetPhysicalDeviceMultisamplePropertiesEXT;
8790 return true;
8791 }
8792
8793 // ---- VK_EXT_image_drm_format_modifier extension commands
8794 if (!strcmp("vkGetImageDrmFormatModifierPropertiesEXT", name)) {
8795 *addr = (void *)GetImageDrmFormatModifierPropertiesEXT;
8796 return true;
8797 }
8798
8799 // ---- VK_EXT_validation_cache extension commands
8800 if (!strcmp("vkCreateValidationCacheEXT", name)) {
8801 *addr = (void *)CreateValidationCacheEXT;
8802 return true;
8803 }
8804 if (!strcmp("vkDestroyValidationCacheEXT", name)) {
8805 *addr = (void *)DestroyValidationCacheEXT;
8806 return true;
8807 }
8808 if (!strcmp("vkMergeValidationCachesEXT", name)) {
8809 *addr = (void *)MergeValidationCachesEXT;
8810 return true;
8811 }
8812 if (!strcmp("vkGetValidationCacheDataEXT", name)) {
8813 *addr = (void *)GetValidationCacheDataEXT;
8814 return true;
8815 }
8816
8817 // ---- VK_NV_shading_rate_image extension commands
8818 if (!strcmp("vkCmdBindShadingRateImageNV", name)) {
8819 *addr = (void *)CmdBindShadingRateImageNV;
8820 return true;
8821 }
8822 if (!strcmp("vkCmdSetViewportShadingRatePaletteNV", name)) {
8823 *addr = (void *)CmdSetViewportShadingRatePaletteNV;
8824 return true;
8825 }
8826 if (!strcmp("vkCmdSetCoarseSampleOrderNV", name)) {
8827 *addr = (void *)CmdSetCoarseSampleOrderNV;
8828 return true;
8829 }
8830
8831 // ---- VK_NV_ray_tracing extension commands
8832 if (!strcmp("vkCreateAccelerationStructureNV", name)) {
8833 *addr = (void *)CreateAccelerationStructureNV;
8834 return true;
8835 }
8836 if (!strcmp("vkDestroyAccelerationStructureNV", name)) {
8837 *addr = (void *)DestroyAccelerationStructureNV;
8838 return true;
8839 }
8840 if (!strcmp("vkGetAccelerationStructureMemoryRequirementsNV", name)) {
8841 *addr = (void *)GetAccelerationStructureMemoryRequirementsNV;
8842 return true;
8843 }
8844 if (!strcmp("vkBindAccelerationStructureMemoryNV", name)) {
8845 *addr = (void *)BindAccelerationStructureMemoryNV;
8846 return true;
8847 }
8848 if (!strcmp("vkCmdBuildAccelerationStructureNV", name)) {
8849 *addr = (void *)CmdBuildAccelerationStructureNV;
8850 return true;
8851 }
8852 if (!strcmp("vkCmdCopyAccelerationStructureNV", name)) {
8853 *addr = (void *)CmdCopyAccelerationStructureNV;
8854 return true;
8855 }
8856 if (!strcmp("vkCmdTraceRaysNV", name)) {
8857 *addr = (void *)CmdTraceRaysNV;
8858 return true;
8859 }
8860 if (!strcmp("vkCreateRayTracingPipelinesNV", name)) {
8861 *addr = (void *)CreateRayTracingPipelinesNV;
8862 return true;
8863 }
8864 if (!strcmp("vkGetRayTracingShaderGroupHandlesKHR", name)) {
8865 *addr = (void *)GetRayTracingShaderGroupHandlesKHR;
8866 return true;
8867 }
8868 if (!strcmp("vkGetRayTracingShaderGroupHandlesNV", name)) {
8869 *addr = (void *)GetRayTracingShaderGroupHandlesNV;
8870 return true;
8871 }
8872 if (!strcmp("vkGetAccelerationStructureHandleNV", name)) {
8873 *addr = (void *)GetAccelerationStructureHandleNV;
8874 return true;
8875 }
8876 if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesNV", name)) {
8877 *addr = (void *)CmdWriteAccelerationStructuresPropertiesNV;
8878 return true;
8879 }
8880 if (!strcmp("vkCompileDeferredNV", name)) {
8881 *addr = (void *)CompileDeferredNV;
8882 return true;
8883 }
8884
8885 // ---- VK_EXT_external_memory_host extension commands
8886 if (!strcmp("vkGetMemoryHostPointerPropertiesEXT", name)) {
8887 *addr = (void *)GetMemoryHostPointerPropertiesEXT;
8888 return true;
8889 }
8890
8891 // ---- VK_AMD_buffer_marker extension commands
8892 if (!strcmp("vkCmdWriteBufferMarkerAMD", name)) {
8893 *addr = (void *)CmdWriteBufferMarkerAMD;
8894 return true;
8895 }
8896
8897 // ---- VK_EXT_calibrated_timestamps extension commands
8898 if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", name)) {
8899 *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsEXT;
8900 return true;
8901 }
8902 if (!strcmp("vkGetCalibratedTimestampsEXT", name)) {
8903 *addr = (void *)GetCalibratedTimestampsEXT;
8904 return true;
8905 }
8906
8907 // ---- VK_NV_mesh_shader extension commands
8908 if (!strcmp("vkCmdDrawMeshTasksNV", name)) {
8909 *addr = (void *)CmdDrawMeshTasksNV;
8910 return true;
8911 }
8912 if (!strcmp("vkCmdDrawMeshTasksIndirectNV", name)) {
8913 *addr = (void *)CmdDrawMeshTasksIndirectNV;
8914 return true;
8915 }
8916 if (!strcmp("vkCmdDrawMeshTasksIndirectCountNV", name)) {
8917 *addr = (void *)CmdDrawMeshTasksIndirectCountNV;
8918 return true;
8919 }
8920
8921 // ---- VK_NV_scissor_exclusive extension commands
8922 if (!strcmp("vkCmdSetExclusiveScissorNV", name)) {
8923 *addr = (void *)CmdSetExclusiveScissorNV;
8924 return true;
8925 }
8926
8927 // ---- VK_NV_device_diagnostic_checkpoints extension commands
8928 if (!strcmp("vkCmdSetCheckpointNV", name)) {
8929 *addr = (void *)CmdSetCheckpointNV;
8930 return true;
8931 }
8932 if (!strcmp("vkGetQueueCheckpointDataNV", name)) {
8933 *addr = (void *)GetQueueCheckpointDataNV;
8934 return true;
8935 }
8936
8937 // ---- VK_INTEL_performance_query extension commands
8938 if (!strcmp("vkInitializePerformanceApiINTEL", name)) {
8939 *addr = (void *)InitializePerformanceApiINTEL;
8940 return true;
8941 }
8942 if (!strcmp("vkUninitializePerformanceApiINTEL", name)) {
8943 *addr = (void *)UninitializePerformanceApiINTEL;
8944 return true;
8945 }
8946 if (!strcmp("vkCmdSetPerformanceMarkerINTEL", name)) {
8947 *addr = (void *)CmdSetPerformanceMarkerINTEL;
8948 return true;
8949 }
8950 if (!strcmp("vkCmdSetPerformanceStreamMarkerINTEL", name)) {
8951 *addr = (void *)CmdSetPerformanceStreamMarkerINTEL;
8952 return true;
8953 }
8954 if (!strcmp("vkCmdSetPerformanceOverrideINTEL", name)) {
8955 *addr = (void *)CmdSetPerformanceOverrideINTEL;
8956 return true;
8957 }
8958 if (!strcmp("vkAcquirePerformanceConfigurationINTEL", name)) {
8959 *addr = (void *)AcquirePerformanceConfigurationINTEL;
8960 return true;
8961 }
8962 if (!strcmp("vkReleasePerformanceConfigurationINTEL", name)) {
8963 *addr = (void *)ReleasePerformanceConfigurationINTEL;
8964 return true;
8965 }
8966 if (!strcmp("vkQueueSetPerformanceConfigurationINTEL", name)) {
8967 *addr = (void *)QueueSetPerformanceConfigurationINTEL;
8968 return true;
8969 }
8970 if (!strcmp("vkGetPerformanceParameterINTEL", name)) {
8971 *addr = (void *)GetPerformanceParameterINTEL;
8972 return true;
8973 }
8974
8975 // ---- VK_AMD_display_native_hdr extension commands
8976 if (!strcmp("vkSetLocalDimmingAMD", name)) {
8977 *addr = (void *)SetLocalDimmingAMD;
8978 return true;
8979 }
8980
8981 // ---- VK_EXT_buffer_device_address extension commands
8982 if (!strcmp("vkGetBufferDeviceAddressEXT", name)) {
8983 *addr = (void *)GetBufferDeviceAddressEXT;
8984 return true;
8985 }
8986
8987 // ---- VK_EXT_tooling_info extension commands
8988 if (!strcmp("vkGetPhysicalDeviceToolPropertiesEXT", name)) {
8989 *addr = (void *)GetPhysicalDeviceToolPropertiesEXT;
8990 return true;
8991 }
8992
8993 // ---- VK_NV_cooperative_matrix extension commands
8994 if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", name)) {
8995 *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesNV;
8996 return true;
8997 }
8998
8999 // ---- VK_NV_coverage_reduction_mode extension commands
9000 if (!strcmp("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", name)) {
9001 *addr = (void *)GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
9002 return true;
9003 }
9004
9005 // ---- VK_EXT_full_screen_exclusive extension commands
9006 #ifdef VK_USE_PLATFORM_WIN32_KHR
9007 if (!strcmp("vkGetPhysicalDeviceSurfacePresentModes2EXT", name)) {
9008 *addr = (void *)GetPhysicalDeviceSurfacePresentModes2EXT;
9009 return true;
9010 }
9011 #endif // VK_USE_PLATFORM_WIN32_KHR
9012 #ifdef VK_USE_PLATFORM_WIN32_KHR
9013 if (!strcmp("vkAcquireFullScreenExclusiveModeEXT", name)) {
9014 *addr = (void *)AcquireFullScreenExclusiveModeEXT;
9015 return true;
9016 }
9017 #endif // VK_USE_PLATFORM_WIN32_KHR
9018 #ifdef VK_USE_PLATFORM_WIN32_KHR
9019 if (!strcmp("vkReleaseFullScreenExclusiveModeEXT", name)) {
9020 *addr = (void *)ReleaseFullScreenExclusiveModeEXT;
9021 return true;
9022 }
9023 #endif // VK_USE_PLATFORM_WIN32_KHR
9024 #ifdef VK_USE_PLATFORM_WIN32_KHR
9025 if (!strcmp("vkGetDeviceGroupSurfacePresentModes2EXT", name)) {
9026 *addr = (void *)GetDeviceGroupSurfacePresentModes2EXT;
9027 return true;
9028 }
9029 #endif // VK_USE_PLATFORM_WIN32_KHR
9030
9031 // ---- VK_EXT_line_rasterization extension commands
9032 if (!strcmp("vkCmdSetLineStippleEXT", name)) {
9033 *addr = (void *)CmdSetLineStippleEXT;
9034 return true;
9035 }
9036
9037 // ---- VK_EXT_host_query_reset extension commands
9038 if (!strcmp("vkResetQueryPoolEXT", name)) {
9039 *addr = (void *)ResetQueryPoolEXT;
9040 return true;
9041 }
9042
9043 // ---- VK_EXT_extended_dynamic_state extension commands
9044 if (!strcmp("vkCmdSetCullModeEXT", name)) {
9045 *addr = (void *)CmdSetCullModeEXT;
9046 return true;
9047 }
9048 if (!strcmp("vkCmdSetFrontFaceEXT", name)) {
9049 *addr = (void *)CmdSetFrontFaceEXT;
9050 return true;
9051 }
9052 if (!strcmp("vkCmdSetPrimitiveTopologyEXT", name)) {
9053 *addr = (void *)CmdSetPrimitiveTopologyEXT;
9054 return true;
9055 }
9056 if (!strcmp("vkCmdSetViewportWithCountEXT", name)) {
9057 *addr = (void *)CmdSetViewportWithCountEXT;
9058 return true;
9059 }
9060 if (!strcmp("vkCmdSetScissorWithCountEXT", name)) {
9061 *addr = (void *)CmdSetScissorWithCountEXT;
9062 return true;
9063 }
9064 if (!strcmp("vkCmdBindVertexBuffers2EXT", name)) {
9065 *addr = (void *)CmdBindVertexBuffers2EXT;
9066 return true;
9067 }
9068 if (!strcmp("vkCmdSetDepthTestEnableEXT", name)) {
9069 *addr = (void *)CmdSetDepthTestEnableEXT;
9070 return true;
9071 }
9072 if (!strcmp("vkCmdSetDepthWriteEnableEXT", name)) {
9073 *addr = (void *)CmdSetDepthWriteEnableEXT;
9074 return true;
9075 }
9076 if (!strcmp("vkCmdSetDepthCompareOpEXT", name)) {
9077 *addr = (void *)CmdSetDepthCompareOpEXT;
9078 return true;
9079 }
9080 if (!strcmp("vkCmdSetDepthBoundsTestEnableEXT", name)) {
9081 *addr = (void *)CmdSetDepthBoundsTestEnableEXT;
9082 return true;
9083 }
9084 if (!strcmp("vkCmdSetStencilTestEnableEXT", name)) {
9085 *addr = (void *)CmdSetStencilTestEnableEXT;
9086 return true;
9087 }
9088 if (!strcmp("vkCmdSetStencilOpEXT", name)) {
9089 *addr = (void *)CmdSetStencilOpEXT;
9090 return true;
9091 }
9092
9093 // ---- VK_NV_device_generated_commands extension commands
9094 if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsNV", name)) {
9095 *addr = (void *)GetGeneratedCommandsMemoryRequirementsNV;
9096 return true;
9097 }
9098 if (!strcmp("vkCmdPreprocessGeneratedCommandsNV", name)) {
9099 *addr = (void *)CmdPreprocessGeneratedCommandsNV;
9100 return true;
9101 }
9102 if (!strcmp("vkCmdExecuteGeneratedCommandsNV", name)) {
9103 *addr = (void *)CmdExecuteGeneratedCommandsNV;
9104 return true;
9105 }
9106 if (!strcmp("vkCmdBindPipelineShaderGroupNV", name)) {
9107 *addr = (void *)CmdBindPipelineShaderGroupNV;
9108 return true;
9109 }
9110 if (!strcmp("vkCreateIndirectCommandsLayoutNV", name)) {
9111 *addr = (void *)CreateIndirectCommandsLayoutNV;
9112 return true;
9113 }
9114 if (!strcmp("vkDestroyIndirectCommandsLayoutNV", name)) {
9115 *addr = (void *)DestroyIndirectCommandsLayoutNV;
9116 return true;
9117 }
9118
9119 // ---- VK_EXT_acquire_drm_display extension commands
9120 if (!strcmp("vkAcquireDrmDisplayEXT", name)) {
9121 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_drm_display == 1)
9122 ? (void *)AcquireDrmDisplayEXT
9123 : NULL;
9124 return true;
9125 }
9126 if (!strcmp("vkGetDrmDisplayEXT", name)) {
9127 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_drm_display == 1)
9128 ? (void *)GetDrmDisplayEXT
9129 : NULL;
9130 return true;
9131 }
9132
9133 // ---- VK_EXT_private_data extension commands
9134 if (!strcmp("vkCreatePrivateDataSlotEXT", name)) {
9135 *addr = (void *)CreatePrivateDataSlotEXT;
9136 return true;
9137 }
9138 if (!strcmp("vkDestroyPrivateDataSlotEXT", name)) {
9139 *addr = (void *)DestroyPrivateDataSlotEXT;
9140 return true;
9141 }
9142 if (!strcmp("vkSetPrivateDataEXT", name)) {
9143 *addr = (void *)SetPrivateDataEXT;
9144 return true;
9145 }
9146 if (!strcmp("vkGetPrivateDataEXT", name)) {
9147 *addr = (void *)GetPrivateDataEXT;
9148 return true;
9149 }
9150
9151 // ---- VK_EXT_metal_objects extension commands
9152 #ifdef VK_USE_PLATFORM_METAL_EXT
9153 if (!strcmp("vkExportMetalObjectsEXT", name)) {
9154 *addr = (void *)ExportMetalObjectsEXT;
9155 return true;
9156 }
9157 #endif // VK_USE_PLATFORM_METAL_EXT
9158
9159 // ---- VK_NV_fragment_shading_rate_enums extension commands
9160 if (!strcmp("vkCmdSetFragmentShadingRateEnumNV", name)) {
9161 *addr = (void *)CmdSetFragmentShadingRateEnumNV;
9162 return true;
9163 }
9164
9165 // ---- VK_EXT_image_compression_control extension commands
9166 if (!strcmp("vkGetImageSubresourceLayout2EXT", name)) {
9167 *addr = (void *)GetImageSubresourceLayout2EXT;
9168 return true;
9169 }
9170
9171 // ---- VK_EXT_device_fault extension commands
9172 if (!strcmp("vkGetDeviceFaultInfoEXT", name)) {
9173 *addr = (void *)GetDeviceFaultInfoEXT;
9174 return true;
9175 }
9176
9177 // ---- VK_NV_acquire_winrt_display extension commands
9178 #ifdef VK_USE_PLATFORM_WIN32_KHR
9179 if (!strcmp("vkAcquireWinrtDisplayNV", name)) {
9180 *addr = (void *)AcquireWinrtDisplayNV;
9181 return true;
9182 }
9183 #endif // VK_USE_PLATFORM_WIN32_KHR
9184 #ifdef VK_USE_PLATFORM_WIN32_KHR
9185 if (!strcmp("vkGetWinrtDisplayNV", name)) {
9186 *addr = (void *)GetWinrtDisplayNV;
9187 return true;
9188 }
9189 #endif // VK_USE_PLATFORM_WIN32_KHR
9190
9191 // ---- VK_EXT_vertex_input_dynamic_state extension commands
9192 if (!strcmp("vkCmdSetVertexInputEXT", name)) {
9193 *addr = (void *)CmdSetVertexInputEXT;
9194 return true;
9195 }
9196
9197 // ---- VK_FUCHSIA_external_memory extension commands
9198 #ifdef VK_USE_PLATFORM_FUCHSIA
9199 if (!strcmp("vkGetMemoryZirconHandleFUCHSIA", name)) {
9200 *addr = (void *)GetMemoryZirconHandleFUCHSIA;
9201 return true;
9202 }
9203 #endif // VK_USE_PLATFORM_FUCHSIA
9204 #ifdef VK_USE_PLATFORM_FUCHSIA
9205 if (!strcmp("vkGetMemoryZirconHandlePropertiesFUCHSIA", name)) {
9206 *addr = (void *)GetMemoryZirconHandlePropertiesFUCHSIA;
9207 return true;
9208 }
9209 #endif // VK_USE_PLATFORM_FUCHSIA
9210
9211 // ---- VK_FUCHSIA_external_semaphore extension commands
9212 #ifdef VK_USE_PLATFORM_FUCHSIA
9213 if (!strcmp("vkImportSemaphoreZirconHandleFUCHSIA", name)) {
9214 *addr = (void *)ImportSemaphoreZirconHandleFUCHSIA;
9215 return true;
9216 }
9217 #endif // VK_USE_PLATFORM_FUCHSIA
9218 #ifdef VK_USE_PLATFORM_FUCHSIA
9219 if (!strcmp("vkGetSemaphoreZirconHandleFUCHSIA", name)) {
9220 *addr = (void *)GetSemaphoreZirconHandleFUCHSIA;
9221 return true;
9222 }
9223 #endif // VK_USE_PLATFORM_FUCHSIA
9224
9225 // ---- VK_FUCHSIA_buffer_collection extension commands
9226 #ifdef VK_USE_PLATFORM_FUCHSIA
9227 if (!strcmp("vkCreateBufferCollectionFUCHSIA", name)) {
9228 *addr = (void *)CreateBufferCollectionFUCHSIA;
9229 return true;
9230 }
9231 #endif // VK_USE_PLATFORM_FUCHSIA
9232 #ifdef VK_USE_PLATFORM_FUCHSIA
9233 if (!strcmp("vkSetBufferCollectionImageConstraintsFUCHSIA", name)) {
9234 *addr = (void *)SetBufferCollectionImageConstraintsFUCHSIA;
9235 return true;
9236 }
9237 #endif // VK_USE_PLATFORM_FUCHSIA
9238 #ifdef VK_USE_PLATFORM_FUCHSIA
9239 if (!strcmp("vkSetBufferCollectionBufferConstraintsFUCHSIA", name)) {
9240 *addr = (void *)SetBufferCollectionBufferConstraintsFUCHSIA;
9241 return true;
9242 }
9243 #endif // VK_USE_PLATFORM_FUCHSIA
9244 #ifdef VK_USE_PLATFORM_FUCHSIA
9245 if (!strcmp("vkDestroyBufferCollectionFUCHSIA", name)) {
9246 *addr = (void *)DestroyBufferCollectionFUCHSIA;
9247 return true;
9248 }
9249 #endif // VK_USE_PLATFORM_FUCHSIA
9250 #ifdef VK_USE_PLATFORM_FUCHSIA
9251 if (!strcmp("vkGetBufferCollectionPropertiesFUCHSIA", name)) {
9252 *addr = (void *)GetBufferCollectionPropertiesFUCHSIA;
9253 return true;
9254 }
9255 #endif // VK_USE_PLATFORM_FUCHSIA
9256
9257 // ---- VK_HUAWEI_subpass_shading extension commands
9258 if (!strcmp("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", name)) {
9259 *addr = (void *)GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
9260 return true;
9261 }
9262 if (!strcmp("vkCmdSubpassShadingHUAWEI", name)) {
9263 *addr = (void *)CmdSubpassShadingHUAWEI;
9264 return true;
9265 }
9266
9267 // ---- VK_HUAWEI_invocation_mask extension commands
9268 if (!strcmp("vkCmdBindInvocationMaskHUAWEI", name)) {
9269 *addr = (void *)CmdBindInvocationMaskHUAWEI;
9270 return true;
9271 }
9272
9273 // ---- VK_NV_external_memory_rdma extension commands
9274 if (!strcmp("vkGetMemoryRemoteAddressNV", name)) {
9275 *addr = (void *)GetMemoryRemoteAddressNV;
9276 return true;
9277 }
9278
9279 // ---- VK_EXT_pipeline_properties extension commands
9280 if (!strcmp("vkGetPipelinePropertiesEXT", name)) {
9281 *addr = (void *)GetPipelinePropertiesEXT;
9282 return true;
9283 }
9284
9285 // ---- VK_EXT_extended_dynamic_state2 extension commands
9286 if (!strcmp("vkCmdSetPatchControlPointsEXT", name)) {
9287 *addr = (void *)CmdSetPatchControlPointsEXT;
9288 return true;
9289 }
9290 if (!strcmp("vkCmdSetRasterizerDiscardEnableEXT", name)) {
9291 *addr = (void *)CmdSetRasterizerDiscardEnableEXT;
9292 return true;
9293 }
9294 if (!strcmp("vkCmdSetDepthBiasEnableEXT", name)) {
9295 *addr = (void *)CmdSetDepthBiasEnableEXT;
9296 return true;
9297 }
9298 if (!strcmp("vkCmdSetLogicOpEXT", name)) {
9299 *addr = (void *)CmdSetLogicOpEXT;
9300 return true;
9301 }
9302 if (!strcmp("vkCmdSetPrimitiveRestartEnableEXT", name)) {
9303 *addr = (void *)CmdSetPrimitiveRestartEnableEXT;
9304 return true;
9305 }
9306
9307 // ---- VK_EXT_color_write_enable extension commands
9308 if (!strcmp("vkCmdSetColorWriteEnableEXT", name)) {
9309 *addr = (void *)CmdSetColorWriteEnableEXT;
9310 return true;
9311 }
9312
9313 // ---- VK_EXT_multi_draw extension commands
9314 if (!strcmp("vkCmdDrawMultiEXT", name)) {
9315 *addr = (void *)CmdDrawMultiEXT;
9316 return true;
9317 }
9318 if (!strcmp("vkCmdDrawMultiIndexedEXT", name)) {
9319 *addr = (void *)CmdDrawMultiIndexedEXT;
9320 return true;
9321 }
9322
9323 // ---- VK_EXT_opacity_micromap extension commands
9324 if (!strcmp("vkCreateMicromapEXT", name)) {
9325 *addr = (void *)CreateMicromapEXT;
9326 return true;
9327 }
9328 if (!strcmp("vkDestroyMicromapEXT", name)) {
9329 *addr = (void *)DestroyMicromapEXT;
9330 return true;
9331 }
9332 if (!strcmp("vkCmdBuildMicromapsEXT", name)) {
9333 *addr = (void *)CmdBuildMicromapsEXT;
9334 return true;
9335 }
9336 if (!strcmp("vkBuildMicromapsEXT", name)) {
9337 *addr = (void *)BuildMicromapsEXT;
9338 return true;
9339 }
9340 if (!strcmp("vkCopyMicromapEXT", name)) {
9341 *addr = (void *)CopyMicromapEXT;
9342 return true;
9343 }
9344 if (!strcmp("vkCopyMicromapToMemoryEXT", name)) {
9345 *addr = (void *)CopyMicromapToMemoryEXT;
9346 return true;
9347 }
9348 if (!strcmp("vkCopyMemoryToMicromapEXT", name)) {
9349 *addr = (void *)CopyMemoryToMicromapEXT;
9350 return true;
9351 }
9352 if (!strcmp("vkWriteMicromapsPropertiesEXT", name)) {
9353 *addr = (void *)WriteMicromapsPropertiesEXT;
9354 return true;
9355 }
9356 if (!strcmp("vkCmdCopyMicromapEXT", name)) {
9357 *addr = (void *)CmdCopyMicromapEXT;
9358 return true;
9359 }
9360 if (!strcmp("vkCmdCopyMicromapToMemoryEXT", name)) {
9361 *addr = (void *)CmdCopyMicromapToMemoryEXT;
9362 return true;
9363 }
9364 if (!strcmp("vkCmdCopyMemoryToMicromapEXT", name)) {
9365 *addr = (void *)CmdCopyMemoryToMicromapEXT;
9366 return true;
9367 }
9368 if (!strcmp("vkCmdWriteMicromapsPropertiesEXT", name)) {
9369 *addr = (void *)CmdWriteMicromapsPropertiesEXT;
9370 return true;
9371 }
9372 if (!strcmp("vkGetDeviceMicromapCompatibilityEXT", name)) {
9373 *addr = (void *)GetDeviceMicromapCompatibilityEXT;
9374 return true;
9375 }
9376 if (!strcmp("vkGetMicromapBuildSizesEXT", name)) {
9377 *addr = (void *)GetMicromapBuildSizesEXT;
9378 return true;
9379 }
9380
9381 // ---- VK_EXT_pageable_device_local_memory extension commands
9382 if (!strcmp("vkSetDeviceMemoryPriorityEXT", name)) {
9383 *addr = (void *)SetDeviceMemoryPriorityEXT;
9384 return true;
9385 }
9386
9387 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
9388 if (!strcmp("vkGetDescriptorSetLayoutHostMappingInfoVALVE", name)) {
9389 *addr = (void *)GetDescriptorSetLayoutHostMappingInfoVALVE;
9390 return true;
9391 }
9392 if (!strcmp("vkGetDescriptorSetHostMappingVALVE", name)) {
9393 *addr = (void *)GetDescriptorSetHostMappingVALVE;
9394 return true;
9395 }
9396
9397 // ---- VK_EXT_extended_dynamic_state3 extension commands
9398 if (!strcmp("vkCmdSetTessellationDomainOriginEXT", name)) {
9399 *addr = (void *)CmdSetTessellationDomainOriginEXT;
9400 return true;
9401 }
9402 if (!strcmp("vkCmdSetDepthClampEnableEXT", name)) {
9403 *addr = (void *)CmdSetDepthClampEnableEXT;
9404 return true;
9405 }
9406 if (!strcmp("vkCmdSetPolygonModeEXT", name)) {
9407 *addr = (void *)CmdSetPolygonModeEXT;
9408 return true;
9409 }
9410 if (!strcmp("vkCmdSetRasterizationSamplesEXT", name)) {
9411 *addr = (void *)CmdSetRasterizationSamplesEXT;
9412 return true;
9413 }
9414 if (!strcmp("vkCmdSetSampleMaskEXT", name)) {
9415 *addr = (void *)CmdSetSampleMaskEXT;
9416 return true;
9417 }
9418 if (!strcmp("vkCmdSetAlphaToCoverageEnableEXT", name)) {
9419 *addr = (void *)CmdSetAlphaToCoverageEnableEXT;
9420 return true;
9421 }
9422 if (!strcmp("vkCmdSetAlphaToOneEnableEXT", name)) {
9423 *addr = (void *)CmdSetAlphaToOneEnableEXT;
9424 return true;
9425 }
9426 if (!strcmp("vkCmdSetLogicOpEnableEXT", name)) {
9427 *addr = (void *)CmdSetLogicOpEnableEXT;
9428 return true;
9429 }
9430 if (!strcmp("vkCmdSetColorBlendEnableEXT", name)) {
9431 *addr = (void *)CmdSetColorBlendEnableEXT;
9432 return true;
9433 }
9434 if (!strcmp("vkCmdSetColorBlendEquationEXT", name)) {
9435 *addr = (void *)CmdSetColorBlendEquationEXT;
9436 return true;
9437 }
9438 if (!strcmp("vkCmdSetColorWriteMaskEXT", name)) {
9439 *addr = (void *)CmdSetColorWriteMaskEXT;
9440 return true;
9441 }
9442 if (!strcmp("vkCmdSetRasterizationStreamEXT", name)) {
9443 *addr = (void *)CmdSetRasterizationStreamEXT;
9444 return true;
9445 }
9446 if (!strcmp("vkCmdSetConservativeRasterizationModeEXT", name)) {
9447 *addr = (void *)CmdSetConservativeRasterizationModeEXT;
9448 return true;
9449 }
9450 if (!strcmp("vkCmdSetExtraPrimitiveOverestimationSizeEXT", name)) {
9451 *addr = (void *)CmdSetExtraPrimitiveOverestimationSizeEXT;
9452 return true;
9453 }
9454 if (!strcmp("vkCmdSetDepthClipEnableEXT", name)) {
9455 *addr = (void *)CmdSetDepthClipEnableEXT;
9456 return true;
9457 }
9458 if (!strcmp("vkCmdSetSampleLocationsEnableEXT", name)) {
9459 *addr = (void *)CmdSetSampleLocationsEnableEXT;
9460 return true;
9461 }
9462 if (!strcmp("vkCmdSetColorBlendAdvancedEXT", name)) {
9463 *addr = (void *)CmdSetColorBlendAdvancedEXT;
9464 return true;
9465 }
9466 if (!strcmp("vkCmdSetProvokingVertexModeEXT", name)) {
9467 *addr = (void *)CmdSetProvokingVertexModeEXT;
9468 return true;
9469 }
9470 if (!strcmp("vkCmdSetLineRasterizationModeEXT", name)) {
9471 *addr = (void *)CmdSetLineRasterizationModeEXT;
9472 return true;
9473 }
9474 if (!strcmp("vkCmdSetLineStippleEnableEXT", name)) {
9475 *addr = (void *)CmdSetLineStippleEnableEXT;
9476 return true;
9477 }
9478 if (!strcmp("vkCmdSetDepthClipNegativeOneToOneEXT", name)) {
9479 *addr = (void *)CmdSetDepthClipNegativeOneToOneEXT;
9480 return true;
9481 }
9482 if (!strcmp("vkCmdSetViewportWScalingEnableNV", name)) {
9483 *addr = (void *)CmdSetViewportWScalingEnableNV;
9484 return true;
9485 }
9486 if (!strcmp("vkCmdSetViewportSwizzleNV", name)) {
9487 *addr = (void *)CmdSetViewportSwizzleNV;
9488 return true;
9489 }
9490 if (!strcmp("vkCmdSetCoverageToColorEnableNV", name)) {
9491 *addr = (void *)CmdSetCoverageToColorEnableNV;
9492 return true;
9493 }
9494 if (!strcmp("vkCmdSetCoverageToColorLocationNV", name)) {
9495 *addr = (void *)CmdSetCoverageToColorLocationNV;
9496 return true;
9497 }
9498 if (!strcmp("vkCmdSetCoverageModulationModeNV", name)) {
9499 *addr = (void *)CmdSetCoverageModulationModeNV;
9500 return true;
9501 }
9502 if (!strcmp("vkCmdSetCoverageModulationTableEnableNV", name)) {
9503 *addr = (void *)CmdSetCoverageModulationTableEnableNV;
9504 return true;
9505 }
9506 if (!strcmp("vkCmdSetCoverageModulationTableNV", name)) {
9507 *addr = (void *)CmdSetCoverageModulationTableNV;
9508 return true;
9509 }
9510 if (!strcmp("vkCmdSetShadingRateImageEnableNV", name)) {
9511 *addr = (void *)CmdSetShadingRateImageEnableNV;
9512 return true;
9513 }
9514 if (!strcmp("vkCmdSetRepresentativeFragmentTestEnableNV", name)) {
9515 *addr = (void *)CmdSetRepresentativeFragmentTestEnableNV;
9516 return true;
9517 }
9518 if (!strcmp("vkCmdSetCoverageReductionModeNV", name)) {
9519 *addr = (void *)CmdSetCoverageReductionModeNV;
9520 return true;
9521 }
9522
9523 // ---- VK_EXT_shader_module_identifier extension commands
9524 if (!strcmp("vkGetShaderModuleIdentifierEXT", name)) {
9525 *addr = (void *)GetShaderModuleIdentifierEXT;
9526 return true;
9527 }
9528 if (!strcmp("vkGetShaderModuleCreateInfoIdentifierEXT", name)) {
9529 *addr = (void *)GetShaderModuleCreateInfoIdentifierEXT;
9530 return true;
9531 }
9532
9533 // ---- VK_NV_optical_flow extension commands
9534 if (!strcmp("vkGetPhysicalDeviceOpticalFlowImageFormatsNV", name)) {
9535 *addr = (void *)GetPhysicalDeviceOpticalFlowImageFormatsNV;
9536 return true;
9537 }
9538 if (!strcmp("vkCreateOpticalFlowSessionNV", name)) {
9539 *addr = (void *)CreateOpticalFlowSessionNV;
9540 return true;
9541 }
9542 if (!strcmp("vkDestroyOpticalFlowSessionNV", name)) {
9543 *addr = (void *)DestroyOpticalFlowSessionNV;
9544 return true;
9545 }
9546 if (!strcmp("vkBindOpticalFlowSessionImageNV", name)) {
9547 *addr = (void *)BindOpticalFlowSessionImageNV;
9548 return true;
9549 }
9550 if (!strcmp("vkCmdOpticalFlowExecuteNV", name)) {
9551 *addr = (void *)CmdOpticalFlowExecuteNV;
9552 return true;
9553 }
9554
9555 // ---- VK_QCOM_tile_properties extension commands
9556 if (!strcmp("vkGetFramebufferTilePropertiesQCOM", name)) {
9557 *addr = (void *)GetFramebufferTilePropertiesQCOM;
9558 return true;
9559 }
9560 if (!strcmp("vkGetDynamicRenderingTilePropertiesQCOM", name)) {
9561 *addr = (void *)GetDynamicRenderingTilePropertiesQCOM;
9562 return true;
9563 }
9564
9565 // ---- VK_OHOS_native_buffer extension commands
9566 #ifdef VK_USE_PLATFORM_OHOS
9567 if (!strcmp("vkSetNativeFenceFdOpenHarmony", name)) {
9568 *addr = (void *)SetNativeFenceFdOpenHarmony;
9569 return true;
9570 }
9571 #endif // VK_USE_PLATFORM_OHOS
9572 #ifdef VK_USE_PLATFORM_OHOS
9573 if (!strcmp("vkGetNativeFenceFdOpenHarmony", name)) {
9574 *addr = (void *)GetNativeFenceFdOpenHarmony;
9575 return true;
9576 }
9577 #endif // VK_USE_PLATFORM_OHOS
9578 #ifdef VK_USE_PLATFORM_OHOS
9579 if (!strcmp("vkGetSwapchainGrallocUsageOHOS", name)) {
9580 *addr = (void *)GetSwapchainGrallocUsageOHOS;
9581 return true;
9582 }
9583 #endif // VK_USE_PLATFORM_OHOS
9584 #ifdef VK_USE_PLATFORM_OHOS
9585 if (!strcmp("vkAcquireImageOHOS", name)) {
9586 *addr = (void *)AcquireImageOHOS;
9587 return true;
9588 }
9589 #endif // VK_USE_PLATFORM_OHOS
9590 #ifdef VK_USE_PLATFORM_OHOS
9591 if (!strcmp("vkQueueSignalReleaseImageOHOS", name)) {
9592 *addr = (void *)QueueSignalReleaseImageOHOS;
9593 return true;
9594 }
9595 #endif // VK_USE_PLATFORM_OHOS
9596
9597 // ---- VK_OHOS_external_memory extension commands
9598 #ifdef VK_USE_PLATFORM_OHOS
9599 if (!strcmp("vkGetNativeBufferPropertiesOHOS", name)) {
9600 *addr = (void *)vkGetNativeBufferPropertiesOHOS;
9601 return true;
9602 }
9603 #endif // VK_USE_PLATFORM_OHOS
9604 #ifdef VK_USE_PLATFORM_OHOS
9605 if (!strcmp("vkGetMemoryNativeBufferOHOS", name)) {
9606 *addr = (void *)vkGetMemoryNativeBufferOHOS;
9607 return true;
9608 }
9609 #endif // VK_USE_PLATFORM_OHOS
9610
9611 // ---- VK_KHR_acceleration_structure extension commands
9612 if (!strcmp("vkCreateAccelerationStructureKHR", name)) {
9613 *addr = (void *)CreateAccelerationStructureKHR;
9614 return true;
9615 }
9616 if (!strcmp("vkDestroyAccelerationStructureKHR", name)) {
9617 *addr = (void *)DestroyAccelerationStructureKHR;
9618 return true;
9619 }
9620 if (!strcmp("vkCmdBuildAccelerationStructuresKHR", name)) {
9621 *addr = (void *)CmdBuildAccelerationStructuresKHR;
9622 return true;
9623 }
9624 if (!strcmp("vkCmdBuildAccelerationStructuresIndirectKHR", name)) {
9625 *addr = (void *)CmdBuildAccelerationStructuresIndirectKHR;
9626 return true;
9627 }
9628 if (!strcmp("vkBuildAccelerationStructuresKHR", name)) {
9629 *addr = (void *)BuildAccelerationStructuresKHR;
9630 return true;
9631 }
9632 if (!strcmp("vkCopyAccelerationStructureKHR", name)) {
9633 *addr = (void *)CopyAccelerationStructureKHR;
9634 return true;
9635 }
9636 if (!strcmp("vkCopyAccelerationStructureToMemoryKHR", name)) {
9637 *addr = (void *)CopyAccelerationStructureToMemoryKHR;
9638 return true;
9639 }
9640 if (!strcmp("vkCopyMemoryToAccelerationStructureKHR", name)) {
9641 *addr = (void *)CopyMemoryToAccelerationStructureKHR;
9642 return true;
9643 }
9644 if (!strcmp("vkWriteAccelerationStructuresPropertiesKHR", name)) {
9645 *addr = (void *)WriteAccelerationStructuresPropertiesKHR;
9646 return true;
9647 }
9648 if (!strcmp("vkCmdCopyAccelerationStructureKHR", name)) {
9649 *addr = (void *)CmdCopyAccelerationStructureKHR;
9650 return true;
9651 }
9652 if (!strcmp("vkCmdCopyAccelerationStructureToMemoryKHR", name)) {
9653 *addr = (void *)CmdCopyAccelerationStructureToMemoryKHR;
9654 return true;
9655 }
9656 if (!strcmp("vkCmdCopyMemoryToAccelerationStructureKHR", name)) {
9657 *addr = (void *)CmdCopyMemoryToAccelerationStructureKHR;
9658 return true;
9659 }
9660 if (!strcmp("vkGetAccelerationStructureDeviceAddressKHR", name)) {
9661 *addr = (void *)GetAccelerationStructureDeviceAddressKHR;
9662 return true;
9663 }
9664 if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesKHR", name)) {
9665 *addr = (void *)CmdWriteAccelerationStructuresPropertiesKHR;
9666 return true;
9667 }
9668 if (!strcmp("vkGetDeviceAccelerationStructureCompatibilityKHR", name)) {
9669 *addr = (void *)GetDeviceAccelerationStructureCompatibilityKHR;
9670 return true;
9671 }
9672 if (!strcmp("vkGetAccelerationStructureBuildSizesKHR", name)) {
9673 *addr = (void *)GetAccelerationStructureBuildSizesKHR;
9674 return true;
9675 }
9676
9677 // ---- VK_KHR_ray_tracing_pipeline extension commands
9678 if (!strcmp("vkCmdTraceRaysKHR", name)) {
9679 *addr = (void *)CmdTraceRaysKHR;
9680 return true;
9681 }
9682 if (!strcmp("vkCreateRayTracingPipelinesKHR", name)) {
9683 *addr = (void *)CreateRayTracingPipelinesKHR;
9684 return true;
9685 }
9686 if (!strcmp("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", name)) {
9687 *addr = (void *)GetRayTracingCaptureReplayShaderGroupHandlesKHR;
9688 return true;
9689 }
9690 if (!strcmp("vkCmdTraceRaysIndirectKHR", name)) {
9691 *addr = (void *)CmdTraceRaysIndirectKHR;
9692 return true;
9693 }
9694 if (!strcmp("vkGetRayTracingShaderGroupStackSizeKHR", name)) {
9695 *addr = (void *)GetRayTracingShaderGroupStackSizeKHR;
9696 return true;
9697 }
9698 if (!strcmp("vkCmdSetRayTracingPipelineStackSizeKHR", name)) {
9699 *addr = (void *)CmdSetRayTracingPipelineStackSizeKHR;
9700 return true;
9701 }
9702
9703 // ---- VK_EXT_mesh_shader extension commands
9704 if (!strcmp("vkCmdDrawMeshTasksEXT", name)) {
9705 *addr = (void *)CmdDrawMeshTasksEXT;
9706 return true;
9707 }
9708 if (!strcmp("vkCmdDrawMeshTasksIndirectEXT", name)) {
9709 *addr = (void *)CmdDrawMeshTasksIndirectEXT;
9710 return true;
9711 }
9712 if (!strcmp("vkCmdDrawMeshTasksIndirectCountEXT", name)) {
9713 *addr = (void *)CmdDrawMeshTasksIndirectCountEXT;
9714 return true;
9715 }
9716 return false;
9717 }
9718
9719 // A function that can be used to query enabled extensions during a vkCreateInstance call
extensions_create_instance(struct loader_instance * ptr_instance,const VkInstanceCreateInfo * pCreateInfo)9720 void extensions_create_instance(struct loader_instance *ptr_instance, const VkInstanceCreateInfo *pCreateInfo) {
9721 for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
9722
9723 // ---- VK_KHR_get_physical_device_properties2 extension commands
9724 if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) {
9725 ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 = 1;
9726
9727 // ---- VK_KHR_device_group_creation extension commands
9728 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)) {
9729 ptr_instance->enabled_known_extensions.khr_device_group_creation = 1;
9730
9731 // ---- VK_KHR_external_memory_capabilities extension commands
9732 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) {
9733 ptr_instance->enabled_known_extensions.khr_external_memory_capabilities = 1;
9734
9735 // ---- VK_KHR_external_semaphore_capabilities extension commands
9736 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME)) {
9737 ptr_instance->enabled_known_extensions.khr_external_semaphore_capabilities = 1;
9738
9739 // ---- VK_KHR_external_fence_capabilities extension commands
9740 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME)) {
9741 ptr_instance->enabled_known_extensions.khr_external_fence_capabilities = 1;
9742
9743 // ---- VK_NV_external_memory_capabilities extension commands
9744 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) {
9745 ptr_instance->enabled_known_extensions.nv_external_memory_capabilities = 1;
9746
9747 // ---- VK_EXT_direct_mode_display extension commands
9748 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)) {
9749 ptr_instance->enabled_known_extensions.ext_direct_mode_display = 1;
9750
9751 // ---- VK_EXT_acquire_xlib_display extension commands
9752 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
9753 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME)) {
9754 ptr_instance->enabled_known_extensions.ext_acquire_xlib_display = 1;
9755 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
9756
9757 // ---- VK_EXT_display_surface_counter extension commands
9758 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)) {
9759 ptr_instance->enabled_known_extensions.ext_display_surface_counter = 1;
9760
9761 // ---- VK_EXT_debug_utils extension commands
9762 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) {
9763 ptr_instance->enabled_known_extensions.ext_debug_utils = 1;
9764
9765 // ---- VK_EXT_acquire_drm_display extension commands
9766 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME)) {
9767 ptr_instance->enabled_known_extensions.ext_acquire_drm_display = 1;
9768 }
9769 }
9770 }
9771
9772 // Some device commands still need a terminator because the loader needs to unwrap something about them.
9773 // In many cases, the item needing unwrapping is a VkPhysicalDevice or VkSurfaceKHR object. But there may be other items
9774 // in the future.
get_extension_device_proc_terminator(struct loader_device * dev,const char * pName)9775 PFN_vkVoidFunction get_extension_device_proc_terminator(struct loader_device *dev, const char *pName) {
9776 PFN_vkVoidFunction addr = NULL;
9777
9778 // ---- VK_KHR_swapchain extension commands
9779 if (dev->extensions.khr_swapchain_enabled) {
9780 if(!strcmp(pName, "vkCreateSwapchainKHR")) {
9781 addr = (PFN_vkVoidFunction)terminator_CreateSwapchainKHR;
9782 } else if(!strcmp(pName, "vkGetDeviceGroupSurfacePresentModesKHR")) {
9783 addr = (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModesKHR;
9784 }
9785 }
9786
9787 // ---- VK_KHR_display_swapchain extension commands
9788 if (dev->extensions.khr_display_swapchain_enabled) {
9789 if(!strcmp(pName, "vkCreateSharedSwapchainsKHR")) {
9790 addr = (PFN_vkVoidFunction)terminator_CreateSharedSwapchainsKHR;
9791 }
9792 }
9793
9794 // ---- VK_EXT_debug_marker extension commands
9795 if (dev->extensions.ext_debug_marker_enabled) {
9796 if(!strcmp(pName, "vkDebugMarkerSetObjectTagEXT")) {
9797 addr = (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectTagEXT;
9798 } else if(!strcmp(pName, "vkDebugMarkerSetObjectNameEXT")) {
9799 addr = (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectNameEXT;
9800 }
9801 }
9802
9803 // ---- VK_EXT_debug_utils extension commands
9804 if (dev->extensions.ext_debug_utils_enabled) {
9805 if(!strcmp(pName, "vkSetDebugUtilsObjectNameEXT")) {
9806 addr = (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectNameEXT;
9807 } else if(!strcmp(pName, "vkSetDebugUtilsObjectTagEXT")) {
9808 addr = (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectTagEXT;
9809 } else if(!strcmp(pName, "vkQueueBeginDebugUtilsLabelEXT")) {
9810 addr = (PFN_vkVoidFunction)terminator_QueueBeginDebugUtilsLabelEXT;
9811 } else if(!strcmp(pName, "vkQueueEndDebugUtilsLabelEXT")) {
9812 addr = (PFN_vkVoidFunction)terminator_QueueEndDebugUtilsLabelEXT;
9813 } else if(!strcmp(pName, "vkQueueInsertDebugUtilsLabelEXT")) {
9814 addr = (PFN_vkVoidFunction)terminator_QueueInsertDebugUtilsLabelEXT;
9815 } else if(!strcmp(pName, "vkCmdBeginDebugUtilsLabelEXT")) {
9816 addr = (PFN_vkVoidFunction)terminator_CmdBeginDebugUtilsLabelEXT;
9817 } else if(!strcmp(pName, "vkCmdEndDebugUtilsLabelEXT")) {
9818 addr = (PFN_vkVoidFunction)terminator_CmdEndDebugUtilsLabelEXT;
9819 } else if(!strcmp(pName, "vkCmdInsertDebugUtilsLabelEXT")) {
9820 addr = (PFN_vkVoidFunction)terminator_CmdInsertDebugUtilsLabelEXT;
9821 }
9822 }
9823 #ifdef VK_USE_PLATFORM_WIN32_KHR
9824
9825 // ---- VK_EXT_full_screen_exclusive extension commands
9826 if (dev->extensions.ext_full_screen_exclusive_enabled && dev->extensions.khr_device_group_enabled) {
9827 if(!strcmp(pName, "vkGetDeviceGroupSurfacePresentModes2EXT")) {
9828 addr = (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModes2EXT;
9829 }
9830 }
9831 #endif // None
9832 return addr;
9833 }
9834
9835 // This table contains the loader's instance dispatch table, which contains
9836 // default functions if no instance layers are activated. This contains
9837 // pointers to "terminator functions".
9838 const VkLayerInstanceDispatchTable instance_disp = {
9839
9840 // ---- Core 1_0 commands
9841 .DestroyInstance = terminator_DestroyInstance,
9842 .EnumeratePhysicalDevices = terminator_EnumeratePhysicalDevices,
9843 .GetPhysicalDeviceFeatures = terminator_GetPhysicalDeviceFeatures,
9844 .GetPhysicalDeviceFormatProperties = terminator_GetPhysicalDeviceFormatProperties,
9845 .GetPhysicalDeviceImageFormatProperties = terminator_GetPhysicalDeviceImageFormatProperties,
9846 .GetPhysicalDeviceProperties = terminator_GetPhysicalDeviceProperties,
9847 .GetPhysicalDeviceQueueFamilyProperties = terminator_GetPhysicalDeviceQueueFamilyProperties,
9848 .GetPhysicalDeviceMemoryProperties = terminator_GetPhysicalDeviceMemoryProperties,
9849 .GetInstanceProcAddr = vkGetInstanceProcAddr,
9850 .EnumerateDeviceExtensionProperties = terminator_EnumerateDeviceExtensionProperties,
9851 .EnumerateDeviceLayerProperties = terminator_EnumerateDeviceLayerProperties,
9852 .GetPhysicalDeviceSparseImageFormatProperties = terminator_GetPhysicalDeviceSparseImageFormatProperties,
9853
9854 // ---- Core 1_1 commands
9855 .EnumeratePhysicalDeviceGroups = terminator_EnumeratePhysicalDeviceGroups,
9856 .GetPhysicalDeviceFeatures2 = terminator_GetPhysicalDeviceFeatures2,
9857 .GetPhysicalDeviceProperties2 = terminator_GetPhysicalDeviceProperties2,
9858 .GetPhysicalDeviceFormatProperties2 = terminator_GetPhysicalDeviceFormatProperties2,
9859 .GetPhysicalDeviceImageFormatProperties2 = terminator_GetPhysicalDeviceImageFormatProperties2,
9860 .GetPhysicalDeviceQueueFamilyProperties2 = terminator_GetPhysicalDeviceQueueFamilyProperties2,
9861 .GetPhysicalDeviceMemoryProperties2 = terminator_GetPhysicalDeviceMemoryProperties2,
9862 .GetPhysicalDeviceSparseImageFormatProperties2 = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
9863 .GetPhysicalDeviceExternalBufferProperties = terminator_GetPhysicalDeviceExternalBufferProperties,
9864 .GetPhysicalDeviceExternalFenceProperties = terminator_GetPhysicalDeviceExternalFenceProperties,
9865 .GetPhysicalDeviceExternalSemaphoreProperties = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
9866
9867 // ---- Core 1_3 commands
9868 .GetPhysicalDeviceToolProperties = terminator_GetPhysicalDeviceToolProperties,
9869
9870 // ---- VK_KHR_surface extension commands
9871 .DestroySurfaceKHR = terminator_DestroySurfaceKHR,
9872 .GetPhysicalDeviceSurfaceSupportKHR = terminator_GetPhysicalDeviceSurfaceSupportKHR,
9873 .GetPhysicalDeviceSurfaceCapabilitiesKHR = terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR,
9874 .GetPhysicalDeviceSurfaceFormatsKHR = terminator_GetPhysicalDeviceSurfaceFormatsKHR,
9875 .GetPhysicalDeviceSurfacePresentModesKHR = terminator_GetPhysicalDeviceSurfacePresentModesKHR,
9876
9877 // ---- VK_KHR_swapchain extension commands
9878 .GetPhysicalDevicePresentRectanglesKHR = terminator_GetPhysicalDevicePresentRectanglesKHR,
9879
9880 // ---- VK_KHR_display extension commands
9881 .GetPhysicalDeviceDisplayPropertiesKHR = terminator_GetPhysicalDeviceDisplayPropertiesKHR,
9882 .GetPhysicalDeviceDisplayPlanePropertiesKHR = terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR,
9883 .GetDisplayPlaneSupportedDisplaysKHR = terminator_GetDisplayPlaneSupportedDisplaysKHR,
9884 .GetDisplayModePropertiesKHR = terminator_GetDisplayModePropertiesKHR,
9885 .CreateDisplayModeKHR = terminator_CreateDisplayModeKHR,
9886 .GetDisplayPlaneCapabilitiesKHR = terminator_GetDisplayPlaneCapabilitiesKHR,
9887 .CreateDisplayPlaneSurfaceKHR = terminator_CreateDisplayPlaneSurfaceKHR,
9888
9889 // ---- VK_KHR_xlib_surface extension commands
9890 #ifdef VK_USE_PLATFORM_XLIB_KHR
9891 .CreateXlibSurfaceKHR = terminator_CreateXlibSurfaceKHR,
9892 #endif // VK_USE_PLATFORM_XLIB_KHR
9893 #ifdef VK_USE_PLATFORM_XLIB_KHR
9894 .GetPhysicalDeviceXlibPresentationSupportKHR = terminator_GetPhysicalDeviceXlibPresentationSupportKHR,
9895 #endif // VK_USE_PLATFORM_XLIB_KHR
9896
9897 // ---- VK_KHR_xcb_surface extension commands
9898 #ifdef VK_USE_PLATFORM_XCB_KHR
9899 .CreateXcbSurfaceKHR = terminator_CreateXcbSurfaceKHR,
9900 #endif // VK_USE_PLATFORM_XCB_KHR
9901 #ifdef VK_USE_PLATFORM_XCB_KHR
9902 .GetPhysicalDeviceXcbPresentationSupportKHR = terminator_GetPhysicalDeviceXcbPresentationSupportKHR,
9903 #endif // VK_USE_PLATFORM_XCB_KHR
9904
9905 // ---- VK_KHR_wayland_surface extension commands
9906 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
9907 .CreateWaylandSurfaceKHR = terminator_CreateWaylandSurfaceKHR,
9908 #endif // VK_USE_PLATFORM_WAYLAND_KHR
9909 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
9910 .GetPhysicalDeviceWaylandPresentationSupportKHR = terminator_GetPhysicalDeviceWaylandPresentationSupportKHR,
9911 #endif // VK_USE_PLATFORM_WAYLAND_KHR
9912
9913 // ---- VK_KHR_android_surface extension commands
9914 #ifdef VK_USE_PLATFORM_ANDROID_KHR
9915 .CreateAndroidSurfaceKHR = terminator_CreateAndroidSurfaceKHR,
9916 #endif // VK_USE_PLATFORM_ANDROID_KHR
9917
9918 // ---- VK_KHR_win32_surface extension commands
9919 #ifdef VK_USE_PLATFORM_WIN32_KHR
9920 .CreateWin32SurfaceKHR = terminator_CreateWin32SurfaceKHR,
9921 #endif // VK_USE_PLATFORM_WIN32_KHR
9922 #ifdef VK_USE_PLATFORM_WIN32_KHR
9923 .GetPhysicalDeviceWin32PresentationSupportKHR = terminator_GetPhysicalDeviceWin32PresentationSupportKHR,
9924 #endif // VK_USE_PLATFORM_WIN32_KHR
9925
9926 // ---- VK_KHR_video_queue extension commands
9927 #ifdef VK_ENABLE_BETA_EXTENSIONS
9928 .GetPhysicalDeviceVideoCapabilitiesKHR = terminator_GetPhysicalDeviceVideoCapabilitiesKHR,
9929 #endif // VK_ENABLE_BETA_EXTENSIONS
9930 #ifdef VK_ENABLE_BETA_EXTENSIONS
9931 .GetPhysicalDeviceVideoFormatPropertiesKHR = terminator_GetPhysicalDeviceVideoFormatPropertiesKHR,
9932 #endif // VK_ENABLE_BETA_EXTENSIONS
9933
9934 // ---- VK_KHR_get_physical_device_properties2 extension commands
9935 .GetPhysicalDeviceFeatures2KHR = terminator_GetPhysicalDeviceFeatures2,
9936 .GetPhysicalDeviceProperties2KHR = terminator_GetPhysicalDeviceProperties2,
9937 .GetPhysicalDeviceFormatProperties2KHR = terminator_GetPhysicalDeviceFormatProperties2,
9938 .GetPhysicalDeviceImageFormatProperties2KHR = terminator_GetPhysicalDeviceImageFormatProperties2,
9939 .GetPhysicalDeviceQueueFamilyProperties2KHR = terminator_GetPhysicalDeviceQueueFamilyProperties2,
9940 .GetPhysicalDeviceMemoryProperties2KHR = terminator_GetPhysicalDeviceMemoryProperties2,
9941 .GetPhysicalDeviceSparseImageFormatProperties2KHR = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
9942
9943 // ---- VK_KHR_device_group_creation extension commands
9944 .EnumeratePhysicalDeviceGroupsKHR = terminator_EnumeratePhysicalDeviceGroups,
9945
9946 // ---- VK_KHR_external_memory_capabilities extension commands
9947 .GetPhysicalDeviceExternalBufferPropertiesKHR = terminator_GetPhysicalDeviceExternalBufferProperties,
9948
9949 // ---- VK_KHR_external_semaphore_capabilities extension commands
9950 .GetPhysicalDeviceExternalSemaphorePropertiesKHR = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
9951
9952 // ---- VK_KHR_external_fence_capabilities extension commands
9953 .GetPhysicalDeviceExternalFencePropertiesKHR = terminator_GetPhysicalDeviceExternalFenceProperties,
9954
9955 // ---- VK_KHR_performance_query extension commands
9956 .EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
9957 .GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
9958
9959 // ---- VK_KHR_get_surface_capabilities2 extension commands
9960 .GetPhysicalDeviceSurfaceCapabilities2KHR = terminator_GetPhysicalDeviceSurfaceCapabilities2KHR,
9961 .GetPhysicalDeviceSurfaceFormats2KHR = terminator_GetPhysicalDeviceSurfaceFormats2KHR,
9962
9963 // ---- VK_KHR_get_display_properties2 extension commands
9964 .GetPhysicalDeviceDisplayProperties2KHR = terminator_GetPhysicalDeviceDisplayProperties2KHR,
9965 .GetPhysicalDeviceDisplayPlaneProperties2KHR = terminator_GetPhysicalDeviceDisplayPlaneProperties2KHR,
9966 .GetDisplayModeProperties2KHR = terminator_GetDisplayModeProperties2KHR,
9967 .GetDisplayPlaneCapabilities2KHR = terminator_GetDisplayPlaneCapabilities2KHR,
9968
9969 // ---- VK_KHR_fragment_shading_rate extension commands
9970 .GetPhysicalDeviceFragmentShadingRatesKHR = terminator_GetPhysicalDeviceFragmentShadingRatesKHR,
9971
9972 // ---- VK_EXT_debug_report extension commands
9973 .CreateDebugReportCallbackEXT = terminator_CreateDebugReportCallbackEXT,
9974 .DestroyDebugReportCallbackEXT = terminator_DestroyDebugReportCallbackEXT,
9975 .DebugReportMessageEXT = terminator_DebugReportMessageEXT,
9976
9977 // ---- VK_GGP_stream_descriptor_surface extension commands
9978 #ifdef VK_USE_PLATFORM_GGP
9979 .CreateStreamDescriptorSurfaceGGP = terminator_CreateStreamDescriptorSurfaceGGP,
9980 #endif // VK_USE_PLATFORM_GGP
9981
9982 // ---- VK_NV_external_memory_capabilities extension commands
9983 .GetPhysicalDeviceExternalImageFormatPropertiesNV = terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV,
9984
9985 // ---- VK_NN_vi_surface extension commands
9986 #ifdef VK_USE_PLATFORM_VI_NN
9987 .CreateViSurfaceNN = terminator_CreateViSurfaceNN,
9988 #endif // VK_USE_PLATFORM_VI_NN
9989
9990 // ---- VK_EXT_direct_mode_display extension commands
9991 .ReleaseDisplayEXT = terminator_ReleaseDisplayEXT,
9992
9993 // ---- VK_EXT_acquire_xlib_display extension commands
9994 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
9995 .AcquireXlibDisplayEXT = terminator_AcquireXlibDisplayEXT,
9996 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
9997 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
9998 .GetRandROutputDisplayEXT = terminator_GetRandROutputDisplayEXT,
9999 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
10000
10001 // ---- VK_EXT_display_surface_counter extension commands
10002 .GetPhysicalDeviceSurfaceCapabilities2EXT = terminator_GetPhysicalDeviceSurfaceCapabilities2EXT,
10003
10004 // ---- VK_MVK_ios_surface extension commands
10005 #ifdef VK_USE_PLATFORM_IOS_MVK
10006 .CreateIOSSurfaceMVK = terminator_CreateIOSSurfaceMVK,
10007 #endif // VK_USE_PLATFORM_IOS_MVK
10008
10009 // ---- VK_MVK_macos_surface extension commands
10010 #ifdef VK_USE_PLATFORM_MACOS_MVK
10011 .CreateMacOSSurfaceMVK = terminator_CreateMacOSSurfaceMVK,
10012 #endif // VK_USE_PLATFORM_MACOS_MVK
10013
10014 // ---- VK_EXT_debug_utils extension commands
10015 .CreateDebugUtilsMessengerEXT = terminator_CreateDebugUtilsMessengerEXT,
10016 .DestroyDebugUtilsMessengerEXT = terminator_DestroyDebugUtilsMessengerEXT,
10017 .SubmitDebugUtilsMessageEXT = terminator_SubmitDebugUtilsMessageEXT,
10018
10019 // ---- VK_EXT_sample_locations extension commands
10020 .GetPhysicalDeviceMultisamplePropertiesEXT = terminator_GetPhysicalDeviceMultisamplePropertiesEXT,
10021
10022 // ---- VK_EXT_calibrated_timestamps extension commands
10023 .GetPhysicalDeviceCalibrateableTimeDomainsEXT = terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT,
10024
10025 // ---- VK_FUCHSIA_imagepipe_surface extension commands
10026 #ifdef VK_USE_PLATFORM_FUCHSIA
10027 .CreateImagePipeSurfaceFUCHSIA = terminator_CreateImagePipeSurfaceFUCHSIA,
10028 #endif // VK_USE_PLATFORM_FUCHSIA
10029
10030 // ---- VK_EXT_metal_surface extension commands
10031 #ifdef VK_USE_PLATFORM_METAL_EXT
10032 .CreateMetalSurfaceEXT = terminator_CreateMetalSurfaceEXT,
10033 #endif // VK_USE_PLATFORM_METAL_EXT
10034
10035 // ---- VK_EXT_tooling_info extension commands
10036 .GetPhysicalDeviceToolPropertiesEXT = terminator_GetPhysicalDeviceToolPropertiesEXT,
10037
10038 // ---- VK_NV_cooperative_matrix extension commands
10039 .GetPhysicalDeviceCooperativeMatrixPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV,
10040
10041 // ---- VK_NV_coverage_reduction_mode extension commands
10042 .GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
10043
10044 // ---- VK_EXT_full_screen_exclusive extension commands
10045 #ifdef VK_USE_PLATFORM_WIN32_KHR
10046 .GetPhysicalDeviceSurfacePresentModes2EXT = terminator_GetPhysicalDeviceSurfacePresentModes2EXT,
10047 #endif // VK_USE_PLATFORM_WIN32_KHR
10048
10049 // ---- VK_EXT_headless_surface extension commands
10050 .CreateHeadlessSurfaceEXT = terminator_CreateHeadlessSurfaceEXT,
10051
10052 // ---- VK_EXT_acquire_drm_display extension commands
10053 .AcquireDrmDisplayEXT = terminator_AcquireDrmDisplayEXT,
10054 .GetDrmDisplayEXT = terminator_GetDrmDisplayEXT,
10055
10056 // ---- VK_NV_acquire_winrt_display extension commands
10057 #ifdef VK_USE_PLATFORM_WIN32_KHR
10058 .AcquireWinrtDisplayNV = terminator_AcquireWinrtDisplayNV,
10059 #endif // VK_USE_PLATFORM_WIN32_KHR
10060 #ifdef VK_USE_PLATFORM_WIN32_KHR
10061 .GetWinrtDisplayNV = terminator_GetWinrtDisplayNV,
10062 #endif // VK_USE_PLATFORM_WIN32_KHR
10063
10064 // ---- VK_EXT_directfb_surface extension commands
10065 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
10066 .CreateDirectFBSurfaceEXT = terminator_CreateDirectFBSurfaceEXT,
10067 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
10068 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
10069 .GetPhysicalDeviceDirectFBPresentationSupportEXT = terminator_GetPhysicalDeviceDirectFBPresentationSupportEXT,
10070 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
10071
10072 // ---- VK_QNX_screen_surface extension commands
10073 #ifdef VK_USE_PLATFORM_SCREEN_QNX
10074 .CreateScreenSurfaceQNX = terminator_CreateScreenSurfaceQNX,
10075 #endif // VK_USE_PLATFORM_SCREEN_QNX
10076 #ifdef VK_USE_PLATFORM_SCREEN_QNX
10077 .GetPhysicalDeviceScreenPresentationSupportQNX = terminator_GetPhysicalDeviceScreenPresentationSupportQNX,
10078 #endif // VK_USE_PLATFORM_SCREEN_QNX
10079
10080 // ---- VK_NV_optical_flow extension commands
10081 .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV,
10082
10083 // ---- VK_OHOS_surface extension commands
10084 #ifdef VK_USE_PLATFORM_OHOS
10085 .CreateSurfaceOHOS = terminator_CreateSurfaceOHOS,
10086 #endif // VK_USE_PLATFORM_OHOS
10087 };
10088
10089 // A null-terminated list of all of the instance extensions supported by the loader.
10090 // If an instance extension name is not in this list, but it is exported by one or more of the
10091 // ICDs detected by the loader, then the extension name not in the list will be filtered out
10092 // before passing the list of extensions to the application.
10093 const char *const LOADER_INSTANCE_EXTENSIONS[] = {
10094 VK_KHR_SURFACE_EXTENSION_NAME,
10095 VK_KHR_DISPLAY_EXTENSION_NAME,
10096 #ifdef VK_USE_PLATFORM_XLIB_KHR
10097 VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
10098 #endif // VK_USE_PLATFORM_XLIB_KHR
10099 #ifdef VK_USE_PLATFORM_XCB_KHR
10100 VK_KHR_XCB_SURFACE_EXTENSION_NAME,
10101 #endif // VK_USE_PLATFORM_XCB_KHR
10102 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
10103 VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
10104 #endif // VK_USE_PLATFORM_WAYLAND_KHR
10105 #ifdef VK_USE_PLATFORM_WIN32_KHR
10106 VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
10107 #endif // VK_USE_PLATFORM_WIN32_KHR
10108 VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME,
10109 VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME,
10110 VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
10111 VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME,
10112 VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME,
10113 VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME,
10114 VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME,
10115 VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME,
10116 VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME,
10117 VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
10118 #ifdef VK_USE_PLATFORM_GGP
10119 VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME,
10120 #endif // VK_USE_PLATFORM_GGP
10121 VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
10122 VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME,
10123 #ifdef VK_USE_PLATFORM_VI_NN
10124 VK_NN_VI_SURFACE_EXTENSION_NAME,
10125 #endif // VK_USE_PLATFORM_VI_NN
10126 VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME,
10127 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
10128 VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME,
10129 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
10130 VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME,
10131 VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME,
10132 #ifdef VK_USE_PLATFORM_IOS_MVK
10133 VK_MVK_IOS_SURFACE_EXTENSION_NAME,
10134 #endif // VK_USE_PLATFORM_IOS_MVK
10135 #ifdef VK_USE_PLATFORM_MACOS_MVK
10136 VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
10137 #endif // VK_USE_PLATFORM_MACOS_MVK
10138 VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
10139 #ifdef VK_USE_PLATFORM_FUCHSIA
10140 VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME,
10141 #endif // VK_USE_PLATFORM_FUCHSIA
10142 #ifdef VK_USE_PLATFORM_METAL_EXT
10143 VK_EXT_METAL_SURFACE_EXTENSION_NAME,
10144 #endif // VK_USE_PLATFORM_METAL_EXT
10145 VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME,
10146 VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME,
10147 VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME,
10148 #ifdef VK_USE_PLATFORM_DIRECTFB_EXT
10149 VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME,
10150 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
10151 #ifdef VK_USE_PLATFORM_SCREEN_QNX
10152 VK_QNX_SCREEN_SURFACE_EXTENSION_NAME,
10153 #endif // VK_USE_PLATFORM_SCREEN_QNX
10154 VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME,
10155 #ifdef VK_USE_PLATFORM_OHOS
10156 VK_OHOS_SURFACE_EXTENSION_NAME,
10157 #endif // VK_USE_PLATFORM_OHOS
10158 NULL };
10159
10160