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 * Copyright (c) 2021-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
9 * Copyright (c) 2023-2023 RasterGrid Kft.
10 *
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
14 *
15 * http://www.apache.org/licenses/LICENSE-2.0
16 *
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 *
23 * Author: Mark Lobodzinski <mark@lunarg.com>
24 * Author: Mark Young <marky@lunarg.com>
25 */
26
27 // clang-format off
28 #include <stdio.h>
29 #include <stdlib.h>
30 #include <string.h>
31 #include "vk_loader_platform.h"
32 #include "loader.h"
33 #include "vk_loader_extensions.h"
34 #include <vulkan/vk_icd.h>
35 #include "wsi.h"
36 #include "debug_utils.h"
37 #include "extension_manual.h"
38
39 // Device extension error function
vkDevExtError(VkDevice dev)40 VKAPI_ATTR VkResult VKAPI_CALL vkDevExtError(VkDevice dev) {
41 struct loader_device *found_dev;
42 // The device going in is a trampoline device
43 struct loader_icd_term *icd_term = loader_get_icd_and_device(dev, &found_dev, NULL);
44
45 if (icd_term)
46 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
47 "Bad destination in loader trampoline dispatch,"
48 "Are layers and extensions that you are calling enabled?");
49 return VK_ERROR_EXTENSION_NOT_PRESENT;
50 }
51
loader_icd_init_entries(struct loader_instance * inst,struct loader_icd_term * icd_term)52 VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst, struct loader_icd_term *icd_term) {
53 const PFN_vkGetInstanceProcAddr fp_gipa = icd_term->scanned_icd->GetInstanceProcAddr;
54
55 #define LOOKUP_GIPA(func) icd_term->dispatch.func = (PFN_vk##func)fp_gipa(icd_term->instance, "vk" #func);
56
57 #define LOOKUP_REQUIRED_GIPA(func) \
58 do { \
59 LOOKUP_GIPA(func); \
60 if (!icd_term->dispatch.func) { \
61 loader_log(inst, VULKAN_LOADER_WARN_BIT, 0, "Unable to load %s from ICD %s",\
62 "vk"#func, icd_term->scanned_icd->lib_name); \
63 return false; \
64 } \
65 } while (0)
66
67
68 // ---- Core Vulkan 1.0
69 LOOKUP_REQUIRED_GIPA(DestroyInstance);
70 LOOKUP_REQUIRED_GIPA(EnumeratePhysicalDevices);
71 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceFeatures);
72 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceFormatProperties);
73 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceImageFormatProperties);
74 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceProperties);
75 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceQueueFamilyProperties);
76 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceMemoryProperties);
77 LOOKUP_REQUIRED_GIPA(GetDeviceProcAddr);
78 LOOKUP_REQUIRED_GIPA(CreateDevice);
79 LOOKUP_REQUIRED_GIPA(EnumerateDeviceExtensionProperties);
80 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceSparseImageFormatProperties);
81
82 // ---- Core Vulkan 1.1
83 LOOKUP_GIPA(EnumeratePhysicalDeviceGroups);
84 LOOKUP_GIPA(GetPhysicalDeviceFeatures2);
85 LOOKUP_GIPA(GetPhysicalDeviceProperties2);
86 LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2);
87 LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2);
88 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2);
89 LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2);
90 LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2);
91 LOOKUP_GIPA(GetPhysicalDeviceExternalBufferProperties);
92 LOOKUP_GIPA(GetPhysicalDeviceExternalFenceProperties);
93 LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphoreProperties);
94
95 // ---- Core Vulkan 1.3
96 LOOKUP_GIPA(GetPhysicalDeviceToolProperties);
97
98 // ---- VK_KHR_surface extension commands
99 LOOKUP_GIPA(DestroySurfaceKHR);
100 LOOKUP_GIPA(GetPhysicalDeviceSurfaceSupportKHR);
101 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilitiesKHR);
102 LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormatsKHR);
103 LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModesKHR);
104
105 // ---- VK_KHR_swapchain extension commands
106 LOOKUP_GIPA(GetPhysicalDevicePresentRectanglesKHR);
107
108 // ---- VK_KHR_display extension commands
109 LOOKUP_GIPA(GetPhysicalDeviceDisplayPropertiesKHR);
110 LOOKUP_GIPA(GetPhysicalDeviceDisplayPlanePropertiesKHR);
111 LOOKUP_GIPA(GetDisplayPlaneSupportedDisplaysKHR);
112 LOOKUP_GIPA(GetDisplayModePropertiesKHR);
113 LOOKUP_GIPA(CreateDisplayModeKHR);
114 LOOKUP_GIPA(GetDisplayPlaneCapabilitiesKHR);
115 LOOKUP_GIPA(CreateDisplayPlaneSurfaceKHR);
116
117 // ---- VK_KHR_xlib_surface extension commands
118 #if defined(VK_USE_PLATFORM_XLIB_KHR)
119 LOOKUP_GIPA(CreateXlibSurfaceKHR);
120 #endif // VK_USE_PLATFORM_XLIB_KHR
121 #if defined(VK_USE_PLATFORM_XLIB_KHR)
122 LOOKUP_GIPA(GetPhysicalDeviceXlibPresentationSupportKHR);
123 #endif // VK_USE_PLATFORM_XLIB_KHR
124
125 // ---- VK_KHR_xcb_surface extension commands
126 #if defined(VK_USE_PLATFORM_XCB_KHR)
127 LOOKUP_GIPA(CreateXcbSurfaceKHR);
128 #endif // VK_USE_PLATFORM_XCB_KHR
129 #if defined(VK_USE_PLATFORM_XCB_KHR)
130 LOOKUP_GIPA(GetPhysicalDeviceXcbPresentationSupportKHR);
131 #endif // VK_USE_PLATFORM_XCB_KHR
132
133 // ---- VK_KHR_wayland_surface extension commands
134 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
135 LOOKUP_GIPA(CreateWaylandSurfaceKHR);
136 #endif // VK_USE_PLATFORM_WAYLAND_KHR
137 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
138 LOOKUP_GIPA(GetPhysicalDeviceWaylandPresentationSupportKHR);
139 #endif // VK_USE_PLATFORM_WAYLAND_KHR
140
141 // ---- VK_KHR_android_surface extension commands
142 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
143 LOOKUP_GIPA(CreateAndroidSurfaceKHR);
144 #endif // VK_USE_PLATFORM_ANDROID_KHR
145
146 // ---- VK_KHR_win32_surface extension commands
147 #if defined(VK_USE_PLATFORM_WIN32_KHR)
148 LOOKUP_GIPA(CreateWin32SurfaceKHR);
149 #endif // VK_USE_PLATFORM_WIN32_KHR
150 #if defined(VK_USE_PLATFORM_WIN32_KHR)
151 LOOKUP_GIPA(GetPhysicalDeviceWin32PresentationSupportKHR);
152 #endif // VK_USE_PLATFORM_WIN32_KHR
153
154 // ---- VK_KHR_video_queue extension commands
155 LOOKUP_GIPA(GetPhysicalDeviceVideoCapabilitiesKHR);
156 LOOKUP_GIPA(GetPhysicalDeviceVideoFormatPropertiesKHR);
157
158 // ---- VK_KHR_get_physical_device_properties2 extension commands
159 LOOKUP_GIPA(GetPhysicalDeviceFeatures2KHR);
160 LOOKUP_GIPA(GetPhysicalDeviceProperties2KHR);
161 LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2KHR);
162 LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2KHR);
163 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2KHR);
164 LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2KHR);
165 LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2KHR);
166
167 // ---- VK_KHR_device_group_creation extension commands
168 LOOKUP_GIPA(EnumeratePhysicalDeviceGroupsKHR);
169
170 // ---- VK_KHR_external_memory_capabilities extension commands
171 LOOKUP_GIPA(GetPhysicalDeviceExternalBufferPropertiesKHR);
172
173 // ---- VK_KHR_external_semaphore_capabilities extension commands
174 LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphorePropertiesKHR);
175
176 // ---- VK_KHR_external_fence_capabilities extension commands
177 LOOKUP_GIPA(GetPhysicalDeviceExternalFencePropertiesKHR);
178
179 // ---- VK_KHR_performance_query extension commands
180 LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
181 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
182
183 // ---- VK_KHR_get_surface_capabilities2 extension commands
184 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2KHR);
185 LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormats2KHR);
186
187 // ---- VK_KHR_get_display_properties2 extension commands
188 LOOKUP_GIPA(GetPhysicalDeviceDisplayProperties2KHR);
189 LOOKUP_GIPA(GetPhysicalDeviceDisplayPlaneProperties2KHR);
190 LOOKUP_GIPA(GetDisplayModeProperties2KHR);
191 LOOKUP_GIPA(GetDisplayPlaneCapabilities2KHR);
192
193 // ---- VK_KHR_fragment_shading_rate extension commands
194 LOOKUP_GIPA(GetPhysicalDeviceFragmentShadingRatesKHR);
195
196 // ---- VK_KHR_video_encode_queue extension commands
197 LOOKUP_GIPA(GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR);
198
199 // ---- VK_KHR_cooperative_matrix extension commands
200 LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesKHR);
201
202 // ---- VK_KHR_calibrated_timestamps extension commands
203 LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsKHR);
204
205 // ---- VK_EXT_debug_report extension commands
206 LOOKUP_GIPA(CreateDebugReportCallbackEXT);
207 LOOKUP_GIPA(DestroyDebugReportCallbackEXT);
208 LOOKUP_GIPA(DebugReportMessageEXT);
209
210 // ---- VK_GGP_stream_descriptor_surface extension commands
211 #if defined(VK_USE_PLATFORM_GGP)
212 LOOKUP_GIPA(CreateStreamDescriptorSurfaceGGP);
213 #endif // VK_USE_PLATFORM_GGP
214
215 // ---- VK_NV_external_memory_capabilities extension commands
216 LOOKUP_GIPA(GetPhysicalDeviceExternalImageFormatPropertiesNV);
217
218 // ---- VK_NN_vi_surface extension commands
219 #if defined(VK_USE_PLATFORM_VI_NN)
220 LOOKUP_GIPA(CreateViSurfaceNN);
221 #endif // VK_USE_PLATFORM_VI_NN
222
223 // ---- VK_EXT_direct_mode_display extension commands
224 LOOKUP_GIPA(ReleaseDisplayEXT);
225
226 // ---- VK_EXT_acquire_xlib_display extension commands
227 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
228 LOOKUP_GIPA(AcquireXlibDisplayEXT);
229 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
230 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
231 LOOKUP_GIPA(GetRandROutputDisplayEXT);
232 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
233
234 // ---- VK_EXT_display_surface_counter extension commands
235 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2EXT);
236
237 // ---- VK_MVK_ios_surface extension commands
238 #if defined(VK_USE_PLATFORM_IOS_MVK)
239 LOOKUP_GIPA(CreateIOSSurfaceMVK);
240 #endif // VK_USE_PLATFORM_IOS_MVK
241
242 // ---- VK_MVK_macos_surface extension commands
243 #if defined(VK_USE_PLATFORM_MACOS_MVK)
244 LOOKUP_GIPA(CreateMacOSSurfaceMVK);
245 #endif // VK_USE_PLATFORM_MACOS_MVK
246
247 // ---- VK_EXT_debug_utils extension commands
248 LOOKUP_GIPA(CreateDebugUtilsMessengerEXT);
249 LOOKUP_GIPA(DestroyDebugUtilsMessengerEXT);
250 LOOKUP_GIPA(SubmitDebugUtilsMessageEXT);
251
252 // ---- VK_EXT_sample_locations extension commands
253 LOOKUP_GIPA(GetPhysicalDeviceMultisamplePropertiesEXT);
254
255 // ---- VK_EXT_calibrated_timestamps extension commands
256 LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsEXT);
257
258 // ---- VK_FUCHSIA_imagepipe_surface extension commands
259 #if defined(VK_USE_PLATFORM_FUCHSIA)
260 LOOKUP_GIPA(CreateImagePipeSurfaceFUCHSIA);
261 #endif // VK_USE_PLATFORM_FUCHSIA
262
263 // ---- VK_EXT_metal_surface extension commands
264 #if defined(VK_USE_PLATFORM_METAL_EXT)
265 LOOKUP_GIPA(CreateMetalSurfaceEXT);
266 #endif // VK_USE_PLATFORM_METAL_EXT
267
268 // ---- VK_EXT_tooling_info extension commands
269 LOOKUP_GIPA(GetPhysicalDeviceToolPropertiesEXT);
270
271 // ---- VK_NV_cooperative_matrix extension commands
272 LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesNV);
273
274 // ---- VK_NV_coverage_reduction_mode extension commands
275 LOOKUP_GIPA(GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
276
277 // ---- VK_EXT_full_screen_exclusive extension commands
278 #if defined(VK_USE_PLATFORM_WIN32_KHR)
279 LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModes2EXT);
280 #endif // VK_USE_PLATFORM_WIN32_KHR
281
282 // ---- VK_EXT_headless_surface extension commands
283 LOOKUP_GIPA(CreateHeadlessSurfaceEXT);
284
285 // ---- VK_EXT_acquire_drm_display extension commands
286 LOOKUP_GIPA(AcquireDrmDisplayEXT);
287 LOOKUP_GIPA(GetDrmDisplayEXT);
288
289 // ---- VK_NV_acquire_winrt_display extension commands
290 #if defined(VK_USE_PLATFORM_WIN32_KHR)
291 LOOKUP_GIPA(AcquireWinrtDisplayNV);
292 #endif // VK_USE_PLATFORM_WIN32_KHR
293 #if defined(VK_USE_PLATFORM_WIN32_KHR)
294 LOOKUP_GIPA(GetWinrtDisplayNV);
295 #endif // VK_USE_PLATFORM_WIN32_KHR
296
297 // ---- VK_EXT_directfb_surface extension commands
298 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
299 LOOKUP_GIPA(CreateDirectFBSurfaceEXT);
300 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
301 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
302 LOOKUP_GIPA(GetPhysicalDeviceDirectFBPresentationSupportEXT);
303 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
304
305 // ---- VK_QNX_screen_surface extension commands
306 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
307 LOOKUP_GIPA(CreateScreenSurfaceQNX);
308 #endif // VK_USE_PLATFORM_SCREEN_QNX
309 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
310 LOOKUP_GIPA(GetPhysicalDeviceScreenPresentationSupportQNX);
311 #endif // VK_USE_PLATFORM_SCREEN_QNX
312
313 // ---- VK_NV_optical_flow extension commands
314 LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV);
315
316 // ---- VK_OHOS_surface extension commands
317 #if defined(VK_USE_PLATFORM_OHOS)
318 LOOKUP_GIPA(CreateSurfaceOHOS);
319 #endif // VK_USE_PLATFORM_OHOS
320
321 #undef LOOKUP_REQUIRED_GIPA
322 #undef LOOKUP_GIPA
323
324 return true;
325 };
326
327 // 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)328 VKAPI_ATTR void VKAPI_CALL loader_init_device_dispatch_table(struct loader_dev_dispatch_table *dev_table, PFN_vkGetDeviceProcAddr gpa,
329 VkDevice dev) {
330 VkLayerDispatchTable *table = &dev_table->core_dispatch;
331 if (table->magic != DEVICE_DISP_TABLE_MAGIC_NUMBER) { abort(); }
332 for (uint32_t i = 0; i < MAX_NUM_UNKNOWN_EXTS; i++) dev_table->ext_dispatch[i] = (PFN_vkDevExt)vkDevExtError;
333
334 // ---- Core Vulkan 1.0 commands
335 table->GetDeviceProcAddr = gpa;
336 table->DestroyDevice = (PFN_vkDestroyDevice)gpa(dev, "vkDestroyDevice");
337 table->GetDeviceQueue = (PFN_vkGetDeviceQueue)gpa(dev, "vkGetDeviceQueue");
338 table->QueueSubmit = (PFN_vkQueueSubmit)gpa(dev, "vkQueueSubmit");
339 table->QueueWaitIdle = (PFN_vkQueueWaitIdle)gpa(dev, "vkQueueWaitIdle");
340 table->DeviceWaitIdle = (PFN_vkDeviceWaitIdle)gpa(dev, "vkDeviceWaitIdle");
341 table->AllocateMemory = (PFN_vkAllocateMemory)gpa(dev, "vkAllocateMemory");
342 table->FreeMemory = (PFN_vkFreeMemory)gpa(dev, "vkFreeMemory");
343 table->MapMemory = (PFN_vkMapMemory)gpa(dev, "vkMapMemory");
344 table->UnmapMemory = (PFN_vkUnmapMemory)gpa(dev, "vkUnmapMemory");
345 table->FlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)gpa(dev, "vkFlushMappedMemoryRanges");
346 table->InvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)gpa(dev, "vkInvalidateMappedMemoryRanges");
347 table->GetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)gpa(dev, "vkGetDeviceMemoryCommitment");
348 table->BindBufferMemory = (PFN_vkBindBufferMemory)gpa(dev, "vkBindBufferMemory");
349 table->BindImageMemory = (PFN_vkBindImageMemory)gpa(dev, "vkBindImageMemory");
350 table->GetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)gpa(dev, "vkGetBufferMemoryRequirements");
351 table->GetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)gpa(dev, "vkGetImageMemoryRequirements");
352 table->GetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)gpa(dev, "vkGetImageSparseMemoryRequirements");
353 table->QueueBindSparse = (PFN_vkQueueBindSparse)gpa(dev, "vkQueueBindSparse");
354 table->CreateFence = (PFN_vkCreateFence)gpa(dev, "vkCreateFence");
355 table->DestroyFence = (PFN_vkDestroyFence)gpa(dev, "vkDestroyFence");
356 table->ResetFences = (PFN_vkResetFences)gpa(dev, "vkResetFences");
357 table->GetFenceStatus = (PFN_vkGetFenceStatus)gpa(dev, "vkGetFenceStatus");
358 table->WaitForFences = (PFN_vkWaitForFences)gpa(dev, "vkWaitForFences");
359 table->CreateSemaphore = (PFN_vkCreateSemaphore)gpa(dev, "vkCreateSemaphore");
360 table->DestroySemaphore = (PFN_vkDestroySemaphore)gpa(dev, "vkDestroySemaphore");
361 table->CreateEvent = (PFN_vkCreateEvent)gpa(dev, "vkCreateEvent");
362 table->DestroyEvent = (PFN_vkDestroyEvent)gpa(dev, "vkDestroyEvent");
363 table->GetEventStatus = (PFN_vkGetEventStatus)gpa(dev, "vkGetEventStatus");
364 table->SetEvent = (PFN_vkSetEvent)gpa(dev, "vkSetEvent");
365 table->ResetEvent = (PFN_vkResetEvent)gpa(dev, "vkResetEvent");
366 table->CreateQueryPool = (PFN_vkCreateQueryPool)gpa(dev, "vkCreateQueryPool");
367 table->DestroyQueryPool = (PFN_vkDestroyQueryPool)gpa(dev, "vkDestroyQueryPool");
368 table->GetQueryPoolResults = (PFN_vkGetQueryPoolResults)gpa(dev, "vkGetQueryPoolResults");
369 table->CreateBuffer = (PFN_vkCreateBuffer)gpa(dev, "vkCreateBuffer");
370 table->DestroyBuffer = (PFN_vkDestroyBuffer)gpa(dev, "vkDestroyBuffer");
371 table->CreateBufferView = (PFN_vkCreateBufferView)gpa(dev, "vkCreateBufferView");
372 table->DestroyBufferView = (PFN_vkDestroyBufferView)gpa(dev, "vkDestroyBufferView");
373 table->CreateImage = (PFN_vkCreateImage)gpa(dev, "vkCreateImage");
374 table->DestroyImage = (PFN_vkDestroyImage)gpa(dev, "vkDestroyImage");
375 table->GetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)gpa(dev, "vkGetImageSubresourceLayout");
376 table->CreateImageView = (PFN_vkCreateImageView)gpa(dev, "vkCreateImageView");
377 table->DestroyImageView = (PFN_vkDestroyImageView)gpa(dev, "vkDestroyImageView");
378 table->CreateShaderModule = (PFN_vkCreateShaderModule)gpa(dev, "vkCreateShaderModule");
379 table->DestroyShaderModule = (PFN_vkDestroyShaderModule)gpa(dev, "vkDestroyShaderModule");
380 table->CreatePipelineCache = (PFN_vkCreatePipelineCache)gpa(dev, "vkCreatePipelineCache");
381 table->DestroyPipelineCache = (PFN_vkDestroyPipelineCache)gpa(dev, "vkDestroyPipelineCache");
382 table->GetPipelineCacheData = (PFN_vkGetPipelineCacheData)gpa(dev, "vkGetPipelineCacheData");
383 table->MergePipelineCaches = (PFN_vkMergePipelineCaches)gpa(dev, "vkMergePipelineCaches");
384 table->CreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)gpa(dev, "vkCreateGraphicsPipelines");
385 table->CreateComputePipelines = (PFN_vkCreateComputePipelines)gpa(dev, "vkCreateComputePipelines");
386 table->DestroyPipeline = (PFN_vkDestroyPipeline)gpa(dev, "vkDestroyPipeline");
387 table->CreatePipelineLayout = (PFN_vkCreatePipelineLayout)gpa(dev, "vkCreatePipelineLayout");
388 table->DestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)gpa(dev, "vkDestroyPipelineLayout");
389 table->CreateSampler = (PFN_vkCreateSampler)gpa(dev, "vkCreateSampler");
390 table->DestroySampler = (PFN_vkDestroySampler)gpa(dev, "vkDestroySampler");
391 table->CreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)gpa(dev, "vkCreateDescriptorSetLayout");
392 table->DestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)gpa(dev, "vkDestroyDescriptorSetLayout");
393 table->CreateDescriptorPool = (PFN_vkCreateDescriptorPool)gpa(dev, "vkCreateDescriptorPool");
394 table->DestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)gpa(dev, "vkDestroyDescriptorPool");
395 table->ResetDescriptorPool = (PFN_vkResetDescriptorPool)gpa(dev, "vkResetDescriptorPool");
396 table->AllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)gpa(dev, "vkAllocateDescriptorSets");
397 table->FreeDescriptorSets = (PFN_vkFreeDescriptorSets)gpa(dev, "vkFreeDescriptorSets");
398 table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)gpa(dev, "vkUpdateDescriptorSets");
399 table->CreateFramebuffer = (PFN_vkCreateFramebuffer)gpa(dev, "vkCreateFramebuffer");
400 table->DestroyFramebuffer = (PFN_vkDestroyFramebuffer)gpa(dev, "vkDestroyFramebuffer");
401 table->CreateRenderPass = (PFN_vkCreateRenderPass)gpa(dev, "vkCreateRenderPass");
402 table->DestroyRenderPass = (PFN_vkDestroyRenderPass)gpa(dev, "vkDestroyRenderPass");
403 table->GetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)gpa(dev, "vkGetRenderAreaGranularity");
404 table->CreateCommandPool = (PFN_vkCreateCommandPool)gpa(dev, "vkCreateCommandPool");
405 table->DestroyCommandPool = (PFN_vkDestroyCommandPool)gpa(dev, "vkDestroyCommandPool");
406 table->ResetCommandPool = (PFN_vkResetCommandPool)gpa(dev, "vkResetCommandPool");
407 table->AllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)gpa(dev, "vkAllocateCommandBuffers");
408 table->FreeCommandBuffers = (PFN_vkFreeCommandBuffers)gpa(dev, "vkFreeCommandBuffers");
409 table->BeginCommandBuffer = (PFN_vkBeginCommandBuffer)gpa(dev, "vkBeginCommandBuffer");
410 table->EndCommandBuffer = (PFN_vkEndCommandBuffer)gpa(dev, "vkEndCommandBuffer");
411 table->ResetCommandBuffer = (PFN_vkResetCommandBuffer)gpa(dev, "vkResetCommandBuffer");
412 table->CmdBindPipeline = (PFN_vkCmdBindPipeline)gpa(dev, "vkCmdBindPipeline");
413 table->CmdSetViewport = (PFN_vkCmdSetViewport)gpa(dev, "vkCmdSetViewport");
414 table->CmdSetScissor = (PFN_vkCmdSetScissor)gpa(dev, "vkCmdSetScissor");
415 table->CmdSetLineWidth = (PFN_vkCmdSetLineWidth)gpa(dev, "vkCmdSetLineWidth");
416 table->CmdSetDepthBias = (PFN_vkCmdSetDepthBias)gpa(dev, "vkCmdSetDepthBias");
417 table->CmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)gpa(dev, "vkCmdSetBlendConstants");
418 table->CmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)gpa(dev, "vkCmdSetDepthBounds");
419 table->CmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)gpa(dev, "vkCmdSetStencilCompareMask");
420 table->CmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)gpa(dev, "vkCmdSetStencilWriteMask");
421 table->CmdSetStencilReference = (PFN_vkCmdSetStencilReference)gpa(dev, "vkCmdSetStencilReference");
422 table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)gpa(dev, "vkCmdBindDescriptorSets");
423 table->CmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)gpa(dev, "vkCmdBindIndexBuffer");
424 table->CmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)gpa(dev, "vkCmdBindVertexBuffers");
425 table->CmdDraw = (PFN_vkCmdDraw)gpa(dev, "vkCmdDraw");
426 table->CmdDrawIndexed = (PFN_vkCmdDrawIndexed)gpa(dev, "vkCmdDrawIndexed");
427 table->CmdDrawIndirect = (PFN_vkCmdDrawIndirect)gpa(dev, "vkCmdDrawIndirect");
428 table->CmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)gpa(dev, "vkCmdDrawIndexedIndirect");
429 table->CmdDispatch = (PFN_vkCmdDispatch)gpa(dev, "vkCmdDispatch");
430 table->CmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)gpa(dev, "vkCmdDispatchIndirect");
431 table->CmdCopyBuffer = (PFN_vkCmdCopyBuffer)gpa(dev, "vkCmdCopyBuffer");
432 table->CmdCopyImage = (PFN_vkCmdCopyImage)gpa(dev, "vkCmdCopyImage");
433 table->CmdBlitImage = (PFN_vkCmdBlitImage)gpa(dev, "vkCmdBlitImage");
434 table->CmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)gpa(dev, "vkCmdCopyBufferToImage");
435 table->CmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)gpa(dev, "vkCmdCopyImageToBuffer");
436 table->CmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)gpa(dev, "vkCmdUpdateBuffer");
437 table->CmdFillBuffer = (PFN_vkCmdFillBuffer)gpa(dev, "vkCmdFillBuffer");
438 table->CmdClearColorImage = (PFN_vkCmdClearColorImage)gpa(dev, "vkCmdClearColorImage");
439 table->CmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)gpa(dev, "vkCmdClearDepthStencilImage");
440 table->CmdClearAttachments = (PFN_vkCmdClearAttachments)gpa(dev, "vkCmdClearAttachments");
441 table->CmdResolveImage = (PFN_vkCmdResolveImage)gpa(dev, "vkCmdResolveImage");
442 table->CmdSetEvent = (PFN_vkCmdSetEvent)gpa(dev, "vkCmdSetEvent");
443 table->CmdResetEvent = (PFN_vkCmdResetEvent)gpa(dev, "vkCmdResetEvent");
444 table->CmdWaitEvents = (PFN_vkCmdWaitEvents)gpa(dev, "vkCmdWaitEvents");
445 table->CmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)gpa(dev, "vkCmdPipelineBarrier");
446 table->CmdBeginQuery = (PFN_vkCmdBeginQuery)gpa(dev, "vkCmdBeginQuery");
447 table->CmdEndQuery = (PFN_vkCmdEndQuery)gpa(dev, "vkCmdEndQuery");
448 table->CmdResetQueryPool = (PFN_vkCmdResetQueryPool)gpa(dev, "vkCmdResetQueryPool");
449 table->CmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)gpa(dev, "vkCmdWriteTimestamp");
450 table->CmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)gpa(dev, "vkCmdCopyQueryPoolResults");
451 table->CmdPushConstants = (PFN_vkCmdPushConstants)gpa(dev, "vkCmdPushConstants");
452 table->CmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)gpa(dev, "vkCmdBeginRenderPass");
453 table->CmdNextSubpass = (PFN_vkCmdNextSubpass)gpa(dev, "vkCmdNextSubpass");
454 table->CmdEndRenderPass = (PFN_vkCmdEndRenderPass)gpa(dev, "vkCmdEndRenderPass");
455 table->CmdExecuteCommands = (PFN_vkCmdExecuteCommands)gpa(dev, "vkCmdExecuteCommands");
456
457 // ---- Core Vulkan 1.1 commands
458 table->BindBufferMemory2 = (PFN_vkBindBufferMemory2)gpa(dev, "vkBindBufferMemory2");
459 table->BindImageMemory2 = (PFN_vkBindImageMemory2)gpa(dev, "vkBindImageMemory2");
460 table->GetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)gpa(dev, "vkGetDeviceGroupPeerMemoryFeatures");
461 table->CmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)gpa(dev, "vkCmdSetDeviceMask");
462 table->CmdDispatchBase = (PFN_vkCmdDispatchBase)gpa(dev, "vkCmdDispatchBase");
463 table->GetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)gpa(dev, "vkGetImageMemoryRequirements2");
464 table->GetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)gpa(dev, "vkGetBufferMemoryRequirements2");
465 table->GetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)gpa(dev, "vkGetImageSparseMemoryRequirements2");
466 table->TrimCommandPool = (PFN_vkTrimCommandPool)gpa(dev, "vkTrimCommandPool");
467 table->GetDeviceQueue2 = (PFN_vkGetDeviceQueue2)gpa(dev, "vkGetDeviceQueue2");
468 table->CreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)gpa(dev, "vkCreateSamplerYcbcrConversion");
469 table->DestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)gpa(dev, "vkDestroySamplerYcbcrConversion");
470 table->CreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)gpa(dev, "vkCreateDescriptorUpdateTemplate");
471 table->DestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)gpa(dev, "vkDestroyDescriptorUpdateTemplate");
472 table->UpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)gpa(dev, "vkUpdateDescriptorSetWithTemplate");
473 table->GetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)gpa(dev, "vkGetDescriptorSetLayoutSupport");
474
475 // ---- Core Vulkan 1.2 commands
476 table->CmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)gpa(dev, "vkCmdDrawIndirectCount");
477 table->CmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)gpa(dev, "vkCmdDrawIndexedIndirectCount");
478 table->CreateRenderPass2 = (PFN_vkCreateRenderPass2)gpa(dev, "vkCreateRenderPass2");
479 table->CmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)gpa(dev, "vkCmdBeginRenderPass2");
480 table->CmdNextSubpass2 = (PFN_vkCmdNextSubpass2)gpa(dev, "vkCmdNextSubpass2");
481 table->CmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)gpa(dev, "vkCmdEndRenderPass2");
482 table->ResetQueryPool = (PFN_vkResetQueryPool)gpa(dev, "vkResetQueryPool");
483 table->GetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)gpa(dev, "vkGetSemaphoreCounterValue");
484 table->WaitSemaphores = (PFN_vkWaitSemaphores)gpa(dev, "vkWaitSemaphores");
485 table->SignalSemaphore = (PFN_vkSignalSemaphore)gpa(dev, "vkSignalSemaphore");
486 table->GetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)gpa(dev, "vkGetBufferDeviceAddress");
487 table->GetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)gpa(dev, "vkGetBufferOpaqueCaptureAddress");
488 table->GetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)gpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddress");
489
490 // ---- Core Vulkan 1.3 commands
491 table->CreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)gpa(dev, "vkCreatePrivateDataSlot");
492 table->DestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)gpa(dev, "vkDestroyPrivateDataSlot");
493 table->SetPrivateData = (PFN_vkSetPrivateData)gpa(dev, "vkSetPrivateData");
494 table->GetPrivateData = (PFN_vkGetPrivateData)gpa(dev, "vkGetPrivateData");
495 table->CmdSetEvent2 = (PFN_vkCmdSetEvent2)gpa(dev, "vkCmdSetEvent2");
496 table->CmdResetEvent2 = (PFN_vkCmdResetEvent2)gpa(dev, "vkCmdResetEvent2");
497 table->CmdWaitEvents2 = (PFN_vkCmdWaitEvents2)gpa(dev, "vkCmdWaitEvents2");
498 table->CmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)gpa(dev, "vkCmdPipelineBarrier2");
499 table->CmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)gpa(dev, "vkCmdWriteTimestamp2");
500 table->QueueSubmit2 = (PFN_vkQueueSubmit2)gpa(dev, "vkQueueSubmit2");
501 table->CmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)gpa(dev, "vkCmdCopyBuffer2");
502 table->CmdCopyImage2 = (PFN_vkCmdCopyImage2)gpa(dev, "vkCmdCopyImage2");
503 table->CmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)gpa(dev, "vkCmdCopyBufferToImage2");
504 table->CmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)gpa(dev, "vkCmdCopyImageToBuffer2");
505 table->CmdBlitImage2 = (PFN_vkCmdBlitImage2)gpa(dev, "vkCmdBlitImage2");
506 table->CmdResolveImage2 = (PFN_vkCmdResolveImage2)gpa(dev, "vkCmdResolveImage2");
507 table->CmdBeginRendering = (PFN_vkCmdBeginRendering)gpa(dev, "vkCmdBeginRendering");
508 table->CmdEndRendering = (PFN_vkCmdEndRendering)gpa(dev, "vkCmdEndRendering");
509 table->CmdSetCullMode = (PFN_vkCmdSetCullMode)gpa(dev, "vkCmdSetCullMode");
510 table->CmdSetFrontFace = (PFN_vkCmdSetFrontFace)gpa(dev, "vkCmdSetFrontFace");
511 table->CmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)gpa(dev, "vkCmdSetPrimitiveTopology");
512 table->CmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)gpa(dev, "vkCmdSetViewportWithCount");
513 table->CmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)gpa(dev, "vkCmdSetScissorWithCount");
514 table->CmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)gpa(dev, "vkCmdBindVertexBuffers2");
515 table->CmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)gpa(dev, "vkCmdSetDepthTestEnable");
516 table->CmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)gpa(dev, "vkCmdSetDepthWriteEnable");
517 table->CmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)gpa(dev, "vkCmdSetDepthCompareOp");
518 table->CmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)gpa(dev, "vkCmdSetDepthBoundsTestEnable");
519 table->CmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)gpa(dev, "vkCmdSetStencilTestEnable");
520 table->CmdSetStencilOp = (PFN_vkCmdSetStencilOp)gpa(dev, "vkCmdSetStencilOp");
521 table->CmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)gpa(dev, "vkCmdSetRasterizerDiscardEnable");
522 table->CmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)gpa(dev, "vkCmdSetDepthBiasEnable");
523 table->CmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)gpa(dev, "vkCmdSetPrimitiveRestartEnable");
524 table->GetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)gpa(dev, "vkGetDeviceBufferMemoryRequirements");
525 table->GetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)gpa(dev, "vkGetDeviceImageMemoryRequirements");
526 table->GetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)gpa(dev, "vkGetDeviceImageSparseMemoryRequirements");
527 }
528
529 // 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)530 VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table *dev_table,
531 PFN_vkGetInstanceProcAddr gipa,
532 PFN_vkGetDeviceProcAddr gdpa,
533 VkInstance inst,
534 VkDevice dev) {
535 VkLayerDispatchTable *table = &dev_table->core_dispatch;
536 table->magic = DEVICE_DISP_TABLE_MAGIC_NUMBER;
537
538 // ---- VK_KHR_swapchain extension commands
539 table->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gdpa(dev, "vkCreateSwapchainKHR");
540 table->DestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)gdpa(dev, "vkDestroySwapchainKHR");
541 table->GetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)gdpa(dev, "vkGetSwapchainImagesKHR");
542 table->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)gdpa(dev, "vkAcquireNextImageKHR");
543 table->QueuePresentKHR = (PFN_vkQueuePresentKHR)gdpa(dev, "vkQueuePresentKHR");
544 table->GetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)gdpa(dev, "vkGetDeviceGroupPresentCapabilitiesKHR");
545 table->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gdpa(dev, "vkGetDeviceGroupSurfacePresentModesKHR");
546 table->AcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)gdpa(dev, "vkAcquireNextImage2KHR");
547
548 // ---- VK_KHR_display_swapchain extension commands
549 table->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gdpa(dev, "vkCreateSharedSwapchainsKHR");
550
551 // ---- VK_KHR_video_queue extension commands
552 table->CreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)gdpa(dev, "vkCreateVideoSessionKHR");
553 table->DestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)gdpa(dev, "vkDestroyVideoSessionKHR");
554 table->GetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)gdpa(dev, "vkGetVideoSessionMemoryRequirementsKHR");
555 table->BindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)gdpa(dev, "vkBindVideoSessionMemoryKHR");
556 table->CreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)gdpa(dev, "vkCreateVideoSessionParametersKHR");
557 table->UpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)gdpa(dev, "vkUpdateVideoSessionParametersKHR");
558 table->DestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)gdpa(dev, "vkDestroyVideoSessionParametersKHR");
559 table->CmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)gdpa(dev, "vkCmdBeginVideoCodingKHR");
560 table->CmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)gdpa(dev, "vkCmdEndVideoCodingKHR");
561 table->CmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)gdpa(dev, "vkCmdControlVideoCodingKHR");
562
563 // ---- VK_KHR_video_decode_queue extension commands
564 table->CmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)gdpa(dev, "vkCmdDecodeVideoKHR");
565
566 // ---- VK_KHR_dynamic_rendering extension commands
567 table->CmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)gdpa(dev, "vkCmdBeginRenderingKHR");
568 table->CmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)gdpa(dev, "vkCmdEndRenderingKHR");
569
570 // ---- VK_KHR_device_group extension commands
571 table->GetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)gdpa(dev, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
572 table->CmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)gdpa(dev, "vkCmdSetDeviceMaskKHR");
573 table->CmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)gdpa(dev, "vkCmdDispatchBaseKHR");
574
575 // ---- VK_KHR_maintenance1 extension commands
576 table->TrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)gdpa(dev, "vkTrimCommandPoolKHR");
577
578 // ---- VK_KHR_external_memory_win32 extension commands
579 #if defined(VK_USE_PLATFORM_WIN32_KHR)
580 table->GetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)gdpa(dev, "vkGetMemoryWin32HandleKHR");
581 #endif // VK_USE_PLATFORM_WIN32_KHR
582 #if defined(VK_USE_PLATFORM_WIN32_KHR)
583 table->GetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)gdpa(dev, "vkGetMemoryWin32HandlePropertiesKHR");
584 #endif // VK_USE_PLATFORM_WIN32_KHR
585
586 // ---- VK_KHR_external_memory_fd extension commands
587 table->GetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)gdpa(dev, "vkGetMemoryFdKHR");
588 table->GetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)gdpa(dev, "vkGetMemoryFdPropertiesKHR");
589
590 // ---- VK_KHR_external_semaphore_win32 extension commands
591 #if defined(VK_USE_PLATFORM_WIN32_KHR)
592 table->ImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)gdpa(dev, "vkImportSemaphoreWin32HandleKHR");
593 #endif // VK_USE_PLATFORM_WIN32_KHR
594 #if defined(VK_USE_PLATFORM_WIN32_KHR)
595 table->GetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)gdpa(dev, "vkGetSemaphoreWin32HandleKHR");
596 #endif // VK_USE_PLATFORM_WIN32_KHR
597
598 // ---- VK_KHR_external_semaphore_fd extension commands
599 table->ImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)gdpa(dev, "vkImportSemaphoreFdKHR");
600 table->GetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)gdpa(dev, "vkGetSemaphoreFdKHR");
601
602 // ---- VK_KHR_push_descriptor extension commands
603 table->CmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)gdpa(dev, "vkCmdPushDescriptorSetKHR");
604 table->CmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplateKHR");
605
606 // ---- VK_KHR_descriptor_update_template extension commands
607 table->CreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)gdpa(dev, "vkCreateDescriptorUpdateTemplateKHR");
608 table->DestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)gdpa(dev, "vkDestroyDescriptorUpdateTemplateKHR");
609 table->UpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)gdpa(dev, "vkUpdateDescriptorSetWithTemplateKHR");
610
611 // ---- VK_KHR_create_renderpass2 extension commands
612 table->CreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)gdpa(dev, "vkCreateRenderPass2KHR");
613 table->CmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)gdpa(dev, "vkCmdBeginRenderPass2KHR");
614 table->CmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)gdpa(dev, "vkCmdNextSubpass2KHR");
615 table->CmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)gdpa(dev, "vkCmdEndRenderPass2KHR");
616
617 // ---- VK_KHR_shared_presentable_image extension commands
618 table->GetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)gdpa(dev, "vkGetSwapchainStatusKHR");
619
620 // ---- VK_KHR_external_fence_win32 extension commands
621 #if defined(VK_USE_PLATFORM_WIN32_KHR)
622 table->ImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)gdpa(dev, "vkImportFenceWin32HandleKHR");
623 #endif // VK_USE_PLATFORM_WIN32_KHR
624 #if defined(VK_USE_PLATFORM_WIN32_KHR)
625 table->GetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)gdpa(dev, "vkGetFenceWin32HandleKHR");
626 #endif // VK_USE_PLATFORM_WIN32_KHR
627
628 // ---- VK_KHR_external_fence_fd extension commands
629 table->ImportFenceFdKHR = (PFN_vkImportFenceFdKHR)gdpa(dev, "vkImportFenceFdKHR");
630 table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR)gdpa(dev, "vkGetFenceFdKHR");
631
632 // ---- VK_KHR_performance_query extension commands
633 table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)gdpa(dev, "vkAcquireProfilingLockKHR");
634 table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)gdpa(dev, "vkReleaseProfilingLockKHR");
635
636 // ---- VK_KHR_get_memory_requirements2 extension commands
637 table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)gdpa(dev, "vkGetImageMemoryRequirements2KHR");
638 table->GetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)gdpa(dev, "vkGetBufferMemoryRequirements2KHR");
639 table->GetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)gdpa(dev, "vkGetImageSparseMemoryRequirements2KHR");
640
641 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
642 table->CreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)gdpa(dev, "vkCreateSamplerYcbcrConversionKHR");
643 table->DestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)gdpa(dev, "vkDestroySamplerYcbcrConversionKHR");
644
645 // ---- VK_KHR_bind_memory2 extension commands
646 table->BindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)gdpa(dev, "vkBindBufferMemory2KHR");
647 table->BindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)gdpa(dev, "vkBindImageMemory2KHR");
648
649 // ---- VK_KHR_maintenance3 extension commands
650 table->GetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)gdpa(dev, "vkGetDescriptorSetLayoutSupportKHR");
651
652 // ---- VK_KHR_draw_indirect_count extension commands
653 table->CmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)gdpa(dev, "vkCmdDrawIndirectCountKHR");
654 table->CmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)gdpa(dev, "vkCmdDrawIndexedIndirectCountKHR");
655
656 // ---- VK_KHR_timeline_semaphore extension commands
657 table->GetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)gdpa(dev, "vkGetSemaphoreCounterValueKHR");
658 table->WaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)gdpa(dev, "vkWaitSemaphoresKHR");
659 table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)gdpa(dev, "vkSignalSemaphoreKHR");
660
661 // ---- VK_KHR_fragment_shading_rate extension commands
662 table->CmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)gdpa(dev, "vkCmdSetFragmentShadingRateKHR");
663
664 // ---- VK_KHR_present_wait extension commands
665 table->WaitForPresentKHR = (PFN_vkWaitForPresentKHR)gdpa(dev, "vkWaitForPresentKHR");
666
667 // ---- VK_KHR_buffer_device_address extension commands
668 table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)gdpa(dev, "vkGetBufferDeviceAddressKHR");
669 table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)gdpa(dev, "vkGetBufferOpaqueCaptureAddressKHR");
670 table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)gdpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
671
672 // ---- VK_KHR_deferred_host_operations extension commands
673 table->CreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)gdpa(dev, "vkCreateDeferredOperationKHR");
674 table->DestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)gdpa(dev, "vkDestroyDeferredOperationKHR");
675 table->GetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)gdpa(dev, "vkGetDeferredOperationMaxConcurrencyKHR");
676 table->GetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)gdpa(dev, "vkGetDeferredOperationResultKHR");
677 table->DeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)gdpa(dev, "vkDeferredOperationJoinKHR");
678
679 // ---- VK_KHR_pipeline_executable_properties extension commands
680 table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)gdpa(dev, "vkGetPipelineExecutablePropertiesKHR");
681 table->GetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)gdpa(dev, "vkGetPipelineExecutableStatisticsKHR");
682 table->GetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)gdpa(dev, "vkGetPipelineExecutableInternalRepresentationsKHR");
683
684 // ---- VK_KHR_map_memory2 extension commands
685 table->MapMemory2KHR = (PFN_vkMapMemory2KHR)gdpa(dev, "vkMapMemory2KHR");
686 table->UnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)gdpa(dev, "vkUnmapMemory2KHR");
687
688 // ---- VK_KHR_video_encode_queue extension commands
689 table->GetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)gdpa(dev, "vkGetEncodedVideoSessionParametersKHR");
690 table->CmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)gdpa(dev, "vkCmdEncodeVideoKHR");
691
692 // ---- VK_KHR_synchronization2 extension commands
693 table->CmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)gdpa(dev, "vkCmdSetEvent2KHR");
694 table->CmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)gdpa(dev, "vkCmdResetEvent2KHR");
695 table->CmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)gdpa(dev, "vkCmdWaitEvents2KHR");
696 table->CmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)gdpa(dev, "vkCmdPipelineBarrier2KHR");
697 table->CmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)gdpa(dev, "vkCmdWriteTimestamp2KHR");
698 table->QueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)gdpa(dev, "vkQueueSubmit2KHR");
699 table->CmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)gdpa(dev, "vkCmdWriteBufferMarker2AMD");
700 table->GetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)gdpa(dev, "vkGetQueueCheckpointData2NV");
701
702 // ---- VK_KHR_copy_commands2 extension commands
703 table->CmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)gdpa(dev, "vkCmdCopyBuffer2KHR");
704 table->CmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)gdpa(dev, "vkCmdCopyImage2KHR");
705 table->CmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)gdpa(dev, "vkCmdCopyBufferToImage2KHR");
706 table->CmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)gdpa(dev, "vkCmdCopyImageToBuffer2KHR");
707 table->CmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)gdpa(dev, "vkCmdBlitImage2KHR");
708 table->CmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)gdpa(dev, "vkCmdResolveImage2KHR");
709
710 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
711 table->CmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)gdpa(dev, "vkCmdTraceRaysIndirect2KHR");
712
713 // ---- VK_KHR_maintenance4 extension commands
714 table->GetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceBufferMemoryRequirementsKHR");
715 table->GetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageMemoryRequirementsKHR");
716 table->GetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageSparseMemoryRequirementsKHR");
717
718 // ---- VK_KHR_maintenance5 extension commands
719 table->CmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)gdpa(dev, "vkCmdBindIndexBuffer2KHR");
720 table->GetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)gdpa(dev, "vkGetRenderingAreaGranularityKHR");
721 table->GetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)gdpa(dev, "vkGetDeviceImageSubresourceLayoutKHR");
722 table->GetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)gdpa(dev, "vkGetImageSubresourceLayout2KHR");
723
724 // ---- VK_KHR_calibrated_timestamps extension commands
725 table->GetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)gdpa(dev, "vkGetCalibratedTimestampsKHR");
726
727 // ---- VK_KHR_maintenance6 extension commands
728 table->CmdBindDescriptorSets2KHR = (PFN_vkCmdBindDescriptorSets2KHR)gdpa(dev, "vkCmdBindDescriptorSets2KHR");
729 table->CmdPushConstants2KHR = (PFN_vkCmdPushConstants2KHR)gdpa(dev, "vkCmdPushConstants2KHR");
730 table->CmdPushDescriptorSet2KHR = (PFN_vkCmdPushDescriptorSet2KHR)gdpa(dev, "vkCmdPushDescriptorSet2KHR");
731 table->CmdPushDescriptorSetWithTemplate2KHR = (PFN_vkCmdPushDescriptorSetWithTemplate2KHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplate2KHR");
732 table->CmdSetDescriptorBufferOffsets2EXT = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsets2EXT");
733 table->CmdBindDescriptorBufferEmbeddedSamplers2EXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT");
734
735 // ---- VK_EXT_debug_marker extension commands
736 table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gdpa(dev, "vkDebugMarkerSetObjectTagEXT");
737 table->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gdpa(dev, "vkDebugMarkerSetObjectNameEXT");
738 table->CmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)gdpa(dev, "vkCmdDebugMarkerBeginEXT");
739 table->CmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)gdpa(dev, "vkCmdDebugMarkerEndEXT");
740 table->CmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)gdpa(dev, "vkCmdDebugMarkerInsertEXT");
741
742 // ---- VK_EXT_transform_feedback extension commands
743 table->CmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)gdpa(dev, "vkCmdBindTransformFeedbackBuffersEXT");
744 table->CmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)gdpa(dev, "vkCmdBeginTransformFeedbackEXT");
745 table->CmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)gdpa(dev, "vkCmdEndTransformFeedbackEXT");
746 table->CmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)gdpa(dev, "vkCmdBeginQueryIndexedEXT");
747 table->CmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)gdpa(dev, "vkCmdEndQueryIndexedEXT");
748 table->CmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)gdpa(dev, "vkCmdDrawIndirectByteCountEXT");
749
750 // ---- VK_NVX_binary_import extension commands
751 table->CreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)gdpa(dev, "vkCreateCuModuleNVX");
752 table->CreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)gdpa(dev, "vkCreateCuFunctionNVX");
753 table->DestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)gdpa(dev, "vkDestroyCuModuleNVX");
754 table->DestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)gdpa(dev, "vkDestroyCuFunctionNVX");
755 table->CmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)gdpa(dev, "vkCmdCuLaunchKernelNVX");
756
757 // ---- VK_NVX_image_view_handle extension commands
758 table->GetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)gdpa(dev, "vkGetImageViewHandleNVX");
759 table->GetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)gdpa(dev, "vkGetImageViewAddressNVX");
760
761 // ---- VK_AMD_draw_indirect_count extension commands
762 table->CmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)gdpa(dev, "vkCmdDrawIndirectCountAMD");
763 table->CmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)gdpa(dev, "vkCmdDrawIndexedIndirectCountAMD");
764
765 // ---- VK_AMD_shader_info extension commands
766 table->GetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)gdpa(dev, "vkGetShaderInfoAMD");
767
768 // ---- VK_NV_external_memory_win32 extension commands
769 #if defined(VK_USE_PLATFORM_WIN32_KHR)
770 table->GetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)gdpa(dev, "vkGetMemoryWin32HandleNV");
771 #endif // VK_USE_PLATFORM_WIN32_KHR
772
773 // ---- VK_EXT_conditional_rendering extension commands
774 table->CmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)gdpa(dev, "vkCmdBeginConditionalRenderingEXT");
775 table->CmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)gdpa(dev, "vkCmdEndConditionalRenderingEXT");
776
777 // ---- VK_NV_clip_space_w_scaling extension commands
778 table->CmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)gdpa(dev, "vkCmdSetViewportWScalingNV");
779
780 // ---- VK_EXT_display_control extension commands
781 table->DisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)gdpa(dev, "vkDisplayPowerControlEXT");
782 table->RegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)gdpa(dev, "vkRegisterDeviceEventEXT");
783 table->RegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)gdpa(dev, "vkRegisterDisplayEventEXT");
784 table->GetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)gdpa(dev, "vkGetSwapchainCounterEXT");
785
786 // ---- VK_GOOGLE_display_timing extension commands
787 table->GetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)gdpa(dev, "vkGetRefreshCycleDurationGOOGLE");
788 table->GetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)gdpa(dev, "vkGetPastPresentationTimingGOOGLE");
789
790 // ---- VK_EXT_discard_rectangles extension commands
791 table->CmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)gdpa(dev, "vkCmdSetDiscardRectangleEXT");
792 table->CmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)gdpa(dev, "vkCmdSetDiscardRectangleEnableEXT");
793 table->CmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)gdpa(dev, "vkCmdSetDiscardRectangleModeEXT");
794
795 // ---- VK_EXT_hdr_metadata extension commands
796 table->SetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)gdpa(dev, "vkSetHdrMetadataEXT");
797
798 // ---- VK_EXT_debug_utils extension commands
799 table->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gipa(inst, "vkSetDebugUtilsObjectNameEXT");
800 table->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gipa(inst, "vkSetDebugUtilsObjectTagEXT");
801 table->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gipa(inst, "vkQueueBeginDebugUtilsLabelEXT");
802 table->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gipa(inst, "vkQueueEndDebugUtilsLabelEXT");
803 table->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gipa(inst, "vkQueueInsertDebugUtilsLabelEXT");
804 table->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gipa(inst, "vkCmdBeginDebugUtilsLabelEXT");
805 table->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gipa(inst, "vkCmdEndDebugUtilsLabelEXT");
806 table->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gipa(inst, "vkCmdInsertDebugUtilsLabelEXT");
807
808 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
809 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
810 table->GetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)gdpa(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
811 #endif // VK_USE_PLATFORM_ANDROID_KHR
812 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
813 table->GetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)gdpa(dev, "vkGetMemoryAndroidHardwareBufferANDROID");
814 #endif // VK_USE_PLATFORM_ANDROID_KHR
815
816 // ---- VK_AMDX_shader_enqueue extension commands
817 #if defined(VK_ENABLE_BETA_EXTENSIONS)
818 table->CreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)gdpa(dev, "vkCreateExecutionGraphPipelinesAMDX");
819 #endif // VK_ENABLE_BETA_EXTENSIONS
820 #if defined(VK_ENABLE_BETA_EXTENSIONS)
821 table->GetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)gdpa(dev, "vkGetExecutionGraphPipelineScratchSizeAMDX");
822 #endif // VK_ENABLE_BETA_EXTENSIONS
823 #if defined(VK_ENABLE_BETA_EXTENSIONS)
824 table->GetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)gdpa(dev, "vkGetExecutionGraphPipelineNodeIndexAMDX");
825 #endif // VK_ENABLE_BETA_EXTENSIONS
826 #if defined(VK_ENABLE_BETA_EXTENSIONS)
827 table->CmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)gdpa(dev, "vkCmdInitializeGraphScratchMemoryAMDX");
828 #endif // VK_ENABLE_BETA_EXTENSIONS
829 #if defined(VK_ENABLE_BETA_EXTENSIONS)
830 table->CmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)gdpa(dev, "vkCmdDispatchGraphAMDX");
831 #endif // VK_ENABLE_BETA_EXTENSIONS
832 #if defined(VK_ENABLE_BETA_EXTENSIONS)
833 table->CmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectAMDX");
834 #endif // VK_ENABLE_BETA_EXTENSIONS
835 #if defined(VK_ENABLE_BETA_EXTENSIONS)
836 table->CmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectCountAMDX");
837 #endif // VK_ENABLE_BETA_EXTENSIONS
838
839 // ---- VK_EXT_sample_locations extension commands
840 table->CmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)gdpa(dev, "vkCmdSetSampleLocationsEXT");
841
842 // ---- VK_EXT_image_drm_format_modifier extension commands
843 table->GetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)gdpa(dev, "vkGetImageDrmFormatModifierPropertiesEXT");
844
845 // ---- VK_EXT_validation_cache extension commands
846 table->CreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)gdpa(dev, "vkCreateValidationCacheEXT");
847 table->DestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)gdpa(dev, "vkDestroyValidationCacheEXT");
848 table->MergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)gdpa(dev, "vkMergeValidationCachesEXT");
849 table->GetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)gdpa(dev, "vkGetValidationCacheDataEXT");
850
851 // ---- VK_NV_shading_rate_image extension commands
852 table->CmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)gdpa(dev, "vkCmdBindShadingRateImageNV");
853 table->CmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)gdpa(dev, "vkCmdSetViewportShadingRatePaletteNV");
854 table->CmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)gdpa(dev, "vkCmdSetCoarseSampleOrderNV");
855
856 // ---- VK_NV_ray_tracing extension commands
857 table->CreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)gdpa(dev, "vkCreateAccelerationStructureNV");
858 table->DestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)gdpa(dev, "vkDestroyAccelerationStructureNV");
859 table->GetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)gdpa(dev, "vkGetAccelerationStructureMemoryRequirementsNV");
860 table->BindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)gdpa(dev, "vkBindAccelerationStructureMemoryNV");
861 table->CmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)gdpa(dev, "vkCmdBuildAccelerationStructureNV");
862 table->CmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)gdpa(dev, "vkCmdCopyAccelerationStructureNV");
863 table->CmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)gdpa(dev, "vkCmdTraceRaysNV");
864 table->CreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)gdpa(dev, "vkCreateRayTracingPipelinesNV");
865 table->GetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingShaderGroupHandlesKHR");
866 table->GetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)gdpa(dev, "vkGetRayTracingShaderGroupHandlesNV");
867 table->GetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)gdpa(dev, "vkGetAccelerationStructureHandleNV");
868 table->CmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesNV");
869 table->CompileDeferredNV = (PFN_vkCompileDeferredNV)gdpa(dev, "vkCompileDeferredNV");
870
871 // ---- VK_EXT_external_memory_host extension commands
872 table->GetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)gdpa(dev, "vkGetMemoryHostPointerPropertiesEXT");
873
874 // ---- VK_AMD_buffer_marker extension commands
875 table->CmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)gdpa(dev, "vkCmdWriteBufferMarkerAMD");
876
877 // ---- VK_EXT_calibrated_timestamps extension commands
878 table->GetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)gdpa(dev, "vkGetCalibratedTimestampsEXT");
879
880 // ---- VK_NV_mesh_shader extension commands
881 table->CmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)gdpa(dev, "vkCmdDrawMeshTasksNV");
882 table->CmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectNV");
883 table->CmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountNV");
884
885 // ---- VK_NV_scissor_exclusive extension commands
886 table->CmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)gdpa(dev, "vkCmdSetExclusiveScissorEnableNV");
887 table->CmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)gdpa(dev, "vkCmdSetExclusiveScissorNV");
888
889 // ---- VK_NV_device_diagnostic_checkpoints extension commands
890 table->CmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)gdpa(dev, "vkCmdSetCheckpointNV");
891 table->GetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)gdpa(dev, "vkGetQueueCheckpointDataNV");
892
893 // ---- VK_INTEL_performance_query extension commands
894 table->InitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)gdpa(dev, "vkInitializePerformanceApiINTEL");
895 table->UninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)gdpa(dev, "vkUninitializePerformanceApiINTEL");
896 table->CmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceMarkerINTEL");
897 table->CmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceStreamMarkerINTEL");
898 table->CmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)gdpa(dev, "vkCmdSetPerformanceOverrideINTEL");
899 table->AcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)gdpa(dev, "vkAcquirePerformanceConfigurationINTEL");
900 table->ReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)gdpa(dev, "vkReleasePerformanceConfigurationINTEL");
901 table->QueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)gdpa(dev, "vkQueueSetPerformanceConfigurationINTEL");
902 table->GetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)gdpa(dev, "vkGetPerformanceParameterINTEL");
903
904 // ---- VK_AMD_display_native_hdr extension commands
905 table->SetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)gdpa(dev, "vkSetLocalDimmingAMD");
906
907 // ---- VK_EXT_buffer_device_address extension commands
908 table->GetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)gdpa(dev, "vkGetBufferDeviceAddressEXT");
909
910 // ---- VK_EXT_full_screen_exclusive extension commands
911 #if defined(VK_USE_PLATFORM_WIN32_KHR)
912 table->AcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)gdpa(dev, "vkAcquireFullScreenExclusiveModeEXT");
913 #endif // VK_USE_PLATFORM_WIN32_KHR
914 #if defined(VK_USE_PLATFORM_WIN32_KHR)
915 table->ReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)gdpa(dev, "vkReleaseFullScreenExclusiveModeEXT");
916 #endif // VK_USE_PLATFORM_WIN32_KHR
917 #if defined(VK_USE_PLATFORM_WIN32_KHR)
918 table->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gdpa(dev, "vkGetDeviceGroupSurfacePresentModes2EXT");
919 #endif // VK_USE_PLATFORM_WIN32_KHR
920
921 // ---- VK_EXT_line_rasterization extension commands
922 table->CmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)gdpa(dev, "vkCmdSetLineStippleEXT");
923
924 // ---- VK_EXT_host_query_reset extension commands
925 table->ResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)gdpa(dev, "vkResetQueryPoolEXT");
926
927 // ---- VK_EXT_extended_dynamic_state extension commands
928 table->CmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)gdpa(dev, "vkCmdSetCullModeEXT");
929 table->CmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)gdpa(dev, "vkCmdSetFrontFaceEXT");
930 table->CmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)gdpa(dev, "vkCmdSetPrimitiveTopologyEXT");
931 table->CmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)gdpa(dev, "vkCmdSetViewportWithCountEXT");
932 table->CmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)gdpa(dev, "vkCmdSetScissorWithCountEXT");
933 table->CmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)gdpa(dev, "vkCmdBindVertexBuffers2EXT");
934 table->CmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)gdpa(dev, "vkCmdSetDepthTestEnableEXT");
935 table->CmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)gdpa(dev, "vkCmdSetDepthWriteEnableEXT");
936 table->CmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)gdpa(dev, "vkCmdSetDepthCompareOpEXT");
937 table->CmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)gdpa(dev, "vkCmdSetDepthBoundsTestEnableEXT");
938 table->CmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)gdpa(dev, "vkCmdSetStencilTestEnableEXT");
939 table->CmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)gdpa(dev, "vkCmdSetStencilOpEXT");
940
941 // ---- VK_EXT_host_image_copy extension commands
942 table->CopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)gdpa(dev, "vkCopyMemoryToImageEXT");
943 table->CopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)gdpa(dev, "vkCopyImageToMemoryEXT");
944 table->CopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)gdpa(dev, "vkCopyImageToImageEXT");
945 table->TransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)gdpa(dev, "vkTransitionImageLayoutEXT");
946 table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)gdpa(dev, "vkGetImageSubresourceLayout2EXT");
947
948 // ---- VK_EXT_swapchain_maintenance1 extension commands
949 table->ReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)gdpa(dev, "vkReleaseSwapchainImagesEXT");
950
951 // ---- VK_NV_device_generated_commands extension commands
952 table->GetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsNV");
953 table->CmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)gdpa(dev, "vkCmdPreprocessGeneratedCommandsNV");
954 table->CmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)gdpa(dev, "vkCmdExecuteGeneratedCommandsNV");
955 table->CmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)gdpa(dev, "vkCmdBindPipelineShaderGroupNV");
956 table->CreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)gdpa(dev, "vkCreateIndirectCommandsLayoutNV");
957 table->DestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)gdpa(dev, "vkDestroyIndirectCommandsLayoutNV");
958
959 // ---- VK_EXT_depth_bias_control extension commands
960 table->CmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)gdpa(dev, "vkCmdSetDepthBias2EXT");
961
962 // ---- VK_EXT_private_data extension commands
963 table->CreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)gdpa(dev, "vkCreatePrivateDataSlotEXT");
964 table->DestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)gdpa(dev, "vkDestroyPrivateDataSlotEXT");
965 table->SetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)gdpa(dev, "vkSetPrivateDataEXT");
966 table->GetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)gdpa(dev, "vkGetPrivateDataEXT");
967
968 // ---- VK_NV_cuda_kernel_launch extension commands
969 table->CreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)gdpa(dev, "vkCreateCudaModuleNV");
970 table->GetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)gdpa(dev, "vkGetCudaModuleCacheNV");
971 table->CreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)gdpa(dev, "vkCreateCudaFunctionNV");
972 table->DestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)gdpa(dev, "vkDestroyCudaModuleNV");
973 table->DestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)gdpa(dev, "vkDestroyCudaFunctionNV");
974 table->CmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)gdpa(dev, "vkCmdCudaLaunchKernelNV");
975
976 // ---- VK_EXT_metal_objects extension commands
977 #if defined(VK_USE_PLATFORM_METAL_EXT)
978 table->ExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)gdpa(dev, "vkExportMetalObjectsEXT");
979 #endif // VK_USE_PLATFORM_METAL_EXT
980
981 // ---- VK_EXT_descriptor_buffer extension commands
982 table->GetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)gdpa(dev, "vkGetDescriptorSetLayoutSizeEXT");
983 table->GetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)gdpa(dev, "vkGetDescriptorSetLayoutBindingOffsetEXT");
984 table->GetDescriptorEXT = (PFN_vkGetDescriptorEXT)gdpa(dev, "vkGetDescriptorEXT");
985 table->CmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)gdpa(dev, "vkCmdBindDescriptorBuffersEXT");
986 table->CmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsetsEXT");
987 table->CmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT");
988 table->GetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetBufferOpaqueCaptureDescriptorDataEXT");
989 table->GetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageOpaqueCaptureDescriptorDataEXT");
990 table->GetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageViewOpaqueCaptureDescriptorDataEXT");
991 table->GetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetSamplerOpaqueCaptureDescriptorDataEXT");
992 table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT");
993
994 // ---- VK_NV_fragment_shading_rate_enums extension commands
995 table->CmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)gdpa(dev, "vkCmdSetFragmentShadingRateEnumNV");
996
997 // ---- VK_EXT_device_fault extension commands
998 table->GetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)gdpa(dev, "vkGetDeviceFaultInfoEXT");
999
1000 // ---- VK_EXT_vertex_input_dynamic_state extension commands
1001 table->CmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)gdpa(dev, "vkCmdSetVertexInputEXT");
1002
1003 // ---- VK_FUCHSIA_external_memory extension commands
1004 #if defined(VK_USE_PLATFORM_FUCHSIA)
1005 table->GetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandleFUCHSIA");
1006 #endif // VK_USE_PLATFORM_FUCHSIA
1007 #if defined(VK_USE_PLATFORM_FUCHSIA)
1008 table->GetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
1009 #endif // VK_USE_PLATFORM_FUCHSIA
1010
1011 // ---- VK_FUCHSIA_external_semaphore extension commands
1012 #if defined(VK_USE_PLATFORM_FUCHSIA)
1013 table->ImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkImportSemaphoreZirconHandleFUCHSIA");
1014 #endif // VK_USE_PLATFORM_FUCHSIA
1015 #if defined(VK_USE_PLATFORM_FUCHSIA)
1016 table->GetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkGetSemaphoreZirconHandleFUCHSIA");
1017 #endif // VK_USE_PLATFORM_FUCHSIA
1018
1019 // ---- VK_FUCHSIA_buffer_collection extension commands
1020 #if defined(VK_USE_PLATFORM_FUCHSIA)
1021 table->CreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)gdpa(dev, "vkCreateBufferCollectionFUCHSIA");
1022 #endif // VK_USE_PLATFORM_FUCHSIA
1023 #if defined(VK_USE_PLATFORM_FUCHSIA)
1024 table->SetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionImageConstraintsFUCHSIA");
1025 #endif // VK_USE_PLATFORM_FUCHSIA
1026 #if defined(VK_USE_PLATFORM_FUCHSIA)
1027 table->SetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
1028 #endif // VK_USE_PLATFORM_FUCHSIA
1029 #if defined(VK_USE_PLATFORM_FUCHSIA)
1030 table->DestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)gdpa(dev, "vkDestroyBufferCollectionFUCHSIA");
1031 #endif // VK_USE_PLATFORM_FUCHSIA
1032 #if defined(VK_USE_PLATFORM_FUCHSIA)
1033 table->GetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)gdpa(dev, "vkGetBufferCollectionPropertiesFUCHSIA");
1034 #endif // VK_USE_PLATFORM_FUCHSIA
1035
1036 // ---- VK_HUAWEI_subpass_shading extension commands
1037 table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)gdpa(dev, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
1038 table->CmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)gdpa(dev, "vkCmdSubpassShadingHUAWEI");
1039
1040 // ---- VK_HUAWEI_invocation_mask extension commands
1041 table->CmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)gdpa(dev, "vkCmdBindInvocationMaskHUAWEI");
1042
1043 // ---- VK_NV_external_memory_rdma extension commands
1044 table->GetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)gdpa(dev, "vkGetMemoryRemoteAddressNV");
1045
1046 // ---- VK_EXT_pipeline_properties extension commands
1047 table->GetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)gdpa(dev, "vkGetPipelinePropertiesEXT");
1048
1049 // ---- VK_EXT_extended_dynamic_state2 extension commands
1050 table->CmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)gdpa(dev, "vkCmdSetPatchControlPointsEXT");
1051 table->CmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)gdpa(dev, "vkCmdSetRasterizerDiscardEnableEXT");
1052 table->CmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)gdpa(dev, "vkCmdSetDepthBiasEnableEXT");
1053 table->CmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)gdpa(dev, "vkCmdSetLogicOpEXT");
1054 table->CmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)gdpa(dev, "vkCmdSetPrimitiveRestartEnableEXT");
1055
1056 // ---- VK_EXT_color_write_enable extension commands
1057 table->CmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)gdpa(dev, "vkCmdSetColorWriteEnableEXT");
1058
1059 // ---- VK_EXT_multi_draw extension commands
1060 table->CmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)gdpa(dev, "vkCmdDrawMultiEXT");
1061 table->CmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)gdpa(dev, "vkCmdDrawMultiIndexedEXT");
1062
1063 // ---- VK_EXT_opacity_micromap extension commands
1064 table->CreateMicromapEXT = (PFN_vkCreateMicromapEXT)gdpa(dev, "vkCreateMicromapEXT");
1065 table->DestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)gdpa(dev, "vkDestroyMicromapEXT");
1066 table->CmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)gdpa(dev, "vkCmdBuildMicromapsEXT");
1067 table->BuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)gdpa(dev, "vkBuildMicromapsEXT");
1068 table->CopyMicromapEXT = (PFN_vkCopyMicromapEXT)gdpa(dev, "vkCopyMicromapEXT");
1069 table->CopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)gdpa(dev, "vkCopyMicromapToMemoryEXT");
1070 table->CopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)gdpa(dev, "vkCopyMemoryToMicromapEXT");
1071 table->WriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)gdpa(dev, "vkWriteMicromapsPropertiesEXT");
1072 table->CmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)gdpa(dev, "vkCmdCopyMicromapEXT");
1073 table->CmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)gdpa(dev, "vkCmdCopyMicromapToMemoryEXT");
1074 table->CmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)gdpa(dev, "vkCmdCopyMemoryToMicromapEXT");
1075 table->CmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)gdpa(dev, "vkCmdWriteMicromapsPropertiesEXT");
1076 table->GetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)gdpa(dev, "vkGetDeviceMicromapCompatibilityEXT");
1077 table->GetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)gdpa(dev, "vkGetMicromapBuildSizesEXT");
1078
1079 // ---- VK_HUAWEI_cluster_culling_shader extension commands
1080 table->CmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)gdpa(dev, "vkCmdDrawClusterHUAWEI");
1081 table->CmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)gdpa(dev, "vkCmdDrawClusterIndirectHUAWEI");
1082
1083 // ---- VK_EXT_pageable_device_local_memory extension commands
1084 table->SetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)gdpa(dev, "vkSetDeviceMemoryPriorityEXT");
1085
1086 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
1087 table->GetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)gdpa(dev, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
1088 table->GetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)gdpa(dev, "vkGetDescriptorSetHostMappingVALVE");
1089
1090 // ---- VK_NV_copy_memory_indirect extension commands
1091 table->CmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)gdpa(dev, "vkCmdCopyMemoryIndirectNV");
1092 table->CmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)gdpa(dev, "vkCmdCopyMemoryToImageIndirectNV");
1093
1094 // ---- VK_NV_memory_decompression extension commands
1095 table->CmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)gdpa(dev, "vkCmdDecompressMemoryNV");
1096 table->CmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)gdpa(dev, "vkCmdDecompressMemoryIndirectCountNV");
1097
1098 // ---- VK_NV_device_generated_commands_compute extension commands
1099 table->GetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)gdpa(dev, "vkGetPipelineIndirectMemoryRequirementsNV");
1100 table->CmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)gdpa(dev, "vkCmdUpdatePipelineIndirectBufferNV");
1101 table->GetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)gdpa(dev, "vkGetPipelineIndirectDeviceAddressNV");
1102
1103 // ---- VK_EXT_extended_dynamic_state3 extension commands
1104 table->CmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)gdpa(dev, "vkCmdSetTessellationDomainOriginEXT");
1105 table->CmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)gdpa(dev, "vkCmdSetDepthClampEnableEXT");
1106 table->CmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)gdpa(dev, "vkCmdSetPolygonModeEXT");
1107 table->CmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)gdpa(dev, "vkCmdSetRasterizationSamplesEXT");
1108 table->CmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)gdpa(dev, "vkCmdSetSampleMaskEXT");
1109 table->CmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)gdpa(dev, "vkCmdSetAlphaToCoverageEnableEXT");
1110 table->CmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)gdpa(dev, "vkCmdSetAlphaToOneEnableEXT");
1111 table->CmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)gdpa(dev, "vkCmdSetLogicOpEnableEXT");
1112 table->CmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)gdpa(dev, "vkCmdSetColorBlendEnableEXT");
1113 table->CmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)gdpa(dev, "vkCmdSetColorBlendEquationEXT");
1114 table->CmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)gdpa(dev, "vkCmdSetColorWriteMaskEXT");
1115 table->CmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)gdpa(dev, "vkCmdSetRasterizationStreamEXT");
1116 table->CmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)gdpa(dev, "vkCmdSetConservativeRasterizationModeEXT");
1117 table->CmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)gdpa(dev, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
1118 table->CmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)gdpa(dev, "vkCmdSetDepthClipEnableEXT");
1119 table->CmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)gdpa(dev, "vkCmdSetSampleLocationsEnableEXT");
1120 table->CmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)gdpa(dev, "vkCmdSetColorBlendAdvancedEXT");
1121 table->CmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)gdpa(dev, "vkCmdSetProvokingVertexModeEXT");
1122 table->CmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)gdpa(dev, "vkCmdSetLineRasterizationModeEXT");
1123 table->CmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)gdpa(dev, "vkCmdSetLineStippleEnableEXT");
1124 table->CmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)gdpa(dev, "vkCmdSetDepthClipNegativeOneToOneEXT");
1125 table->CmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)gdpa(dev, "vkCmdSetViewportWScalingEnableNV");
1126 table->CmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)gdpa(dev, "vkCmdSetViewportSwizzleNV");
1127 table->CmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)gdpa(dev, "vkCmdSetCoverageToColorEnableNV");
1128 table->CmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)gdpa(dev, "vkCmdSetCoverageToColorLocationNV");
1129 table->CmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)gdpa(dev, "vkCmdSetCoverageModulationModeNV");
1130 table->CmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)gdpa(dev, "vkCmdSetCoverageModulationTableEnableNV");
1131 table->CmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)gdpa(dev, "vkCmdSetCoverageModulationTableNV");
1132 table->CmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)gdpa(dev, "vkCmdSetShadingRateImageEnableNV");
1133 table->CmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)gdpa(dev, "vkCmdSetRepresentativeFragmentTestEnableNV");
1134 table->CmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)gdpa(dev, "vkCmdSetCoverageReductionModeNV");
1135
1136 // ---- VK_EXT_shader_module_identifier extension commands
1137 table->GetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)gdpa(dev, "vkGetShaderModuleIdentifierEXT");
1138 table->GetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)gdpa(dev, "vkGetShaderModuleCreateInfoIdentifierEXT");
1139
1140 // ---- VK_NV_optical_flow extension commands
1141 table->CreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)gdpa(dev, "vkCreateOpticalFlowSessionNV");
1142 table->DestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)gdpa(dev, "vkDestroyOpticalFlowSessionNV");
1143 table->BindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)gdpa(dev, "vkBindOpticalFlowSessionImageNV");
1144 table->CmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)gdpa(dev, "vkCmdOpticalFlowExecuteNV");
1145
1146 // ---- VK_EXT_shader_object extension commands
1147 table->CreateShadersEXT = (PFN_vkCreateShadersEXT)gdpa(dev, "vkCreateShadersEXT");
1148 table->DestroyShaderEXT = (PFN_vkDestroyShaderEXT)gdpa(dev, "vkDestroyShaderEXT");
1149 table->GetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)gdpa(dev, "vkGetShaderBinaryDataEXT");
1150 table->CmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)gdpa(dev, "vkCmdBindShadersEXT");
1151
1152 // ---- VK_QCOM_tile_properties extension commands
1153 table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)gdpa(dev, "vkGetFramebufferTilePropertiesQCOM");
1154 table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)gdpa(dev, "vkGetDynamicRenderingTilePropertiesQCOM");
1155
1156 // ---- VK_NV_low_latency2 extension commands
1157 table->SetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)gdpa(dev, "vkSetLatencySleepModeNV");
1158 table->LatencySleepNV = (PFN_vkLatencySleepNV)gdpa(dev, "vkLatencySleepNV");
1159 table->SetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)gdpa(dev, "vkSetLatencyMarkerNV");
1160 table->GetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)gdpa(dev, "vkGetLatencyTimingsNV");
1161 table->QueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)gdpa(dev, "vkQueueNotifyOutOfBandNV");
1162
1163 // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
1164 table->CmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)gdpa(dev, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
1165
1166 // ---- VK_QNX_external_memory_screen_buffer extension commands
1167 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
1168 table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gdpa(dev, "vkGetScreenBufferPropertiesQNX");
1169 #endif // VK_USE_PLATFORM_SCREEN_QNX
1170
1171 // ---- VK_KHR_acceleration_structure extension commands
1172 table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)gdpa(dev, "vkCreateAccelerationStructureKHR");
1173 table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)gdpa(dev, "vkDestroyAccelerationStructureKHR");
1174 table->CmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresKHR");
1175 table->CmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresIndirectKHR");
1176 table->BuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)gdpa(dev, "vkBuildAccelerationStructuresKHR");
1177 table->CopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)gdpa(dev, "vkCopyAccelerationStructureKHR");
1178 table->CopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCopyAccelerationStructureToMemoryKHR");
1179 table->CopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCopyMemoryToAccelerationStructureKHR");
1180 table->WriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkWriteAccelerationStructuresPropertiesKHR");
1181 table->CmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)gdpa(dev, "vkCmdCopyAccelerationStructureKHR");
1182 table->CmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCmdCopyAccelerationStructureToMemoryKHR");
1183 table->CmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCmdCopyMemoryToAccelerationStructureKHR");
1184 table->GetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)gdpa(dev, "vkGetAccelerationStructureDeviceAddressKHR");
1185 table->CmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesKHR");
1186 table->GetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)gdpa(dev, "vkGetDeviceAccelerationStructureCompatibilityKHR");
1187 table->GetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)gdpa(dev, "vkGetAccelerationStructureBuildSizesKHR");
1188
1189 // ---- VK_KHR_ray_tracing_pipeline extension commands
1190 table->CmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)gdpa(dev, "vkCmdTraceRaysKHR");
1191 table->CreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)gdpa(dev, "vkCreateRayTracingPipelinesKHR");
1192 table->GetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
1193 table->CmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)gdpa(dev, "vkCmdTraceRaysIndirectKHR");
1194 table->GetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)gdpa(dev, "vkGetRayTracingShaderGroupStackSizeKHR");
1195 table->CmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)gdpa(dev, "vkCmdSetRayTracingPipelineStackSizeKHR");
1196
1197 // ---- VK_EXT_mesh_shader extension commands
1198 table->CmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)gdpa(dev, "vkCmdDrawMeshTasksEXT");
1199 table->CmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectEXT");
1200 table->CmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountEXT");
1201
1202 // ---- VK_OHOS_native_buffer extension commands
1203 #if defined(VK_USE_PLATFORM_OHOS)
1204 table->GetSwapchainGrallocUsageOHOS = (PFN_vkGetSwapchainGrallocUsageOHOS)gdpa(dev, "vkGetSwapchainGrallocUsageOHOS");
1205 #endif // VK_USE_PLATFORM_OHOS
1206 #if defined(VK_USE_PLATFORM_OHOS)
1207 table->AcquireImageOHOS = (PFN_vkAcquireImageOHOS)gdpa(dev, "vkAcquireImageOHOS");
1208 #endif // VK_USE_PLATFORM_OHOS
1209 #if defined(VK_USE_PLATFORM_OHOS)
1210 table->QueueSignalReleaseImageOHOS = (PFN_vkQueueSignalReleaseImageOHOS)gdpa(dev, "vkQueueSignalReleaseImageOHOS");
1211 #endif // VK_USE_PLATFORM_OHOS
1212
1213 // ---- VK_OHOS_external_memory extension commands
1214 #if defined(VK_USE_PLATFORM_OHOS)
1215 table->GetNativeBufferPropertiesOHOS = (PFN_vkGetNativeBufferPropertiesOHOS)gdpa(dev, "vkGetNativeBufferPropertiesOHOS");
1216 #endif // VK_USE_PLATFORM_OHOS
1217 #if defined(VK_USE_PLATFORM_OHOS)
1218 table->GetMemoryNativeBufferOHOS = (PFN_vkGetMemoryNativeBufferOHOS)gdpa(dev, "vkGetMemoryNativeBufferOHOS");
1219 #endif // VK_USE_PLATFORM_OHOS
1220 }
1221
1222 // Init Instance function pointer dispatch table with core commands
loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable * table,PFN_vkGetInstanceProcAddr gpa,VkInstance inst)1223 VKAPI_ATTR void VKAPI_CALL loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1224 VkInstance inst) {
1225
1226 // ---- Core Vulkan 1.0 commands
1227 table->DestroyInstance = (PFN_vkDestroyInstance)gpa(inst, "vkDestroyInstance");
1228 table->EnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)gpa(inst, "vkEnumeratePhysicalDevices");
1229 table->GetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)gpa(inst, "vkGetPhysicalDeviceFeatures");
1230 table->GetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)gpa(inst, "vkGetPhysicalDeviceFormatProperties");
1231 table->GetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties");
1232 table->GetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)gpa(inst, "vkGetPhysicalDeviceProperties");
1233 table->GetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties");
1234 table->GetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)gpa(inst, "vkGetPhysicalDeviceMemoryProperties");
1235 table->GetInstanceProcAddr = gpa;
1236 table->EnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)gpa(inst, "vkEnumerateDeviceExtensionProperties");
1237 table->EnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)gpa(inst, "vkEnumerateDeviceLayerProperties");
1238 table->GetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties");
1239
1240 // ---- Core Vulkan 1.1 commands
1241 table->EnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)gpa(inst, "vkEnumeratePhysicalDeviceGroups");
1242 table->GetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)gpa(inst, "vkGetPhysicalDeviceFeatures2");
1243 table->GetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)gpa(inst, "vkGetPhysicalDeviceProperties2");
1244 table->GetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)gpa(inst, "vkGetPhysicalDeviceFormatProperties2");
1245 table->GetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2");
1246 table->GetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2");
1247 table->GetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2");
1248 table->GetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2");
1249 table->GetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)gpa(inst, "vkGetPhysicalDeviceExternalBufferProperties");
1250 table->GetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)gpa(inst, "vkGetPhysicalDeviceExternalFenceProperties");
1251 table->GetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)gpa(inst, "vkGetPhysicalDeviceExternalSemaphoreProperties");
1252
1253 // ---- Core Vulkan 1.3 commands
1254 table->GetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)gpa(inst, "vkGetPhysicalDeviceToolProperties");
1255 }
1256
1257 // Init Instance function pointer dispatch table with core commands
loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable * table,PFN_vkGetInstanceProcAddr gpa,VkInstance inst)1258 VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1259 VkInstance inst) {
1260
1261 // ---- VK_KHR_surface extension commands
1262 table->DestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)gpa(inst, "vkDestroySurfaceKHR");
1263 table->GetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceSupportKHR");
1264 table->GetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
1265 table->GetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormatsKHR");
1266 table->GetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModesKHR");
1267
1268 // ---- VK_KHR_swapchain extension commands
1269 table->GetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)gpa(inst, "vkGetPhysicalDevicePresentRectanglesKHR");
1270
1271 // ---- VK_KHR_display extension commands
1272 table->GetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPropertiesKHR");
1273 table->GetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
1274 table->GetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)gpa(inst, "vkGetDisplayPlaneSupportedDisplaysKHR");
1275 table->GetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)gpa(inst, "vkGetDisplayModePropertiesKHR");
1276 table->CreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)gpa(inst, "vkCreateDisplayModeKHR");
1277 table->GetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)gpa(inst, "vkGetDisplayPlaneCapabilitiesKHR");
1278 table->CreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)gpa(inst, "vkCreateDisplayPlaneSurfaceKHR");
1279
1280 // ---- VK_KHR_xlib_surface extension commands
1281 #if defined(VK_USE_PLATFORM_XLIB_KHR)
1282 table->CreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)gpa(inst, "vkCreateXlibSurfaceKHR");
1283 #endif // VK_USE_PLATFORM_XLIB_KHR
1284 #if defined(VK_USE_PLATFORM_XLIB_KHR)
1285 table->GetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
1286 #endif // VK_USE_PLATFORM_XLIB_KHR
1287
1288 // ---- VK_KHR_xcb_surface extension commands
1289 #if defined(VK_USE_PLATFORM_XCB_KHR)
1290 table->CreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)gpa(inst, "vkCreateXcbSurfaceKHR");
1291 #endif // VK_USE_PLATFORM_XCB_KHR
1292 #if defined(VK_USE_PLATFORM_XCB_KHR)
1293 table->GetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
1294 #endif // VK_USE_PLATFORM_XCB_KHR
1295
1296 // ---- VK_KHR_wayland_surface extension commands
1297 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1298 table->CreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)gpa(inst, "vkCreateWaylandSurfaceKHR");
1299 #endif // VK_USE_PLATFORM_WAYLAND_KHR
1300 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1301 table->GetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
1302 #endif // VK_USE_PLATFORM_WAYLAND_KHR
1303
1304 // ---- VK_KHR_android_surface extension commands
1305 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
1306 table->CreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)gpa(inst, "vkCreateAndroidSurfaceKHR");
1307 #endif // VK_USE_PLATFORM_ANDROID_KHR
1308
1309 // ---- VK_KHR_win32_surface extension commands
1310 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1311 table->CreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)gpa(inst, "vkCreateWin32SurfaceKHR");
1312 #endif // VK_USE_PLATFORM_WIN32_KHR
1313 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1314 table->GetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
1315 #endif // VK_USE_PLATFORM_WIN32_KHR
1316
1317 // ---- VK_KHR_video_queue extension commands
1318 table->GetPhysicalDeviceVideoCapabilitiesKHR = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
1319 table->GetPhysicalDeviceVideoFormatPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
1320
1321 // ---- VK_KHR_get_physical_device_properties2 extension commands
1322 table->GetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)gpa(inst, "vkGetPhysicalDeviceFeatures2KHR");
1323 table->GetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)gpa(inst, "vkGetPhysicalDeviceProperties2KHR");
1324 table->GetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceFormatProperties2KHR");
1325 table->GetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2KHR");
1326 table->GetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
1327 table->GetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2KHR");
1328 table->GetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
1329
1330 // ---- VK_KHR_device_group_creation extension commands
1331 table->EnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)gpa(inst, "vkEnumeratePhysicalDeviceGroupsKHR");
1332
1333 // ---- VK_KHR_external_memory_capabilities extension commands
1334 table->GetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
1335
1336 // ---- VK_KHR_external_semaphore_capabilities extension commands
1337 table->GetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
1338
1339 // ---- VK_KHR_external_fence_capabilities extension commands
1340 table->GetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
1341
1342 // ---- VK_KHR_performance_query extension commands
1343 table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
1344 table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
1345
1346 // ---- VK_KHR_get_surface_capabilities2 extension commands
1347 table->GetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
1348 table->GetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormats2KHR");
1349
1350 // ---- VK_KHR_get_display_properties2 extension commands
1351 table->GetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayProperties2KHR");
1352 table->GetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
1353 table->GetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)gpa(inst, "vkGetDisplayModeProperties2KHR");
1354 table->GetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)gpa(inst, "vkGetDisplayPlaneCapabilities2KHR");
1355
1356 // ---- VK_KHR_fragment_shading_rate extension commands
1357 table->GetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)gpa(inst, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
1358
1359 // ---- VK_KHR_video_encode_queue extension commands
1360 table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
1361
1362 // ---- VK_KHR_cooperative_matrix extension commands
1363 table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR");
1364
1365 // ---- VK_KHR_calibrated_timestamps extension commands
1366 table->GetPhysicalDeviceCalibrateableTimeDomainsKHR = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR");
1367
1368 // ---- VK_EXT_debug_report extension commands
1369 table->CreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)gpa(inst, "vkCreateDebugReportCallbackEXT");
1370 table->DestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)gpa(inst, "vkDestroyDebugReportCallbackEXT");
1371 table->DebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)gpa(inst, "vkDebugReportMessageEXT");
1372
1373 // ---- VK_GGP_stream_descriptor_surface extension commands
1374 #if defined(VK_USE_PLATFORM_GGP)
1375 table->CreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)gpa(inst, "vkCreateStreamDescriptorSurfaceGGP");
1376 #endif // VK_USE_PLATFORM_GGP
1377
1378 // ---- VK_NV_external_memory_capabilities extension commands
1379 table->GetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)gpa(inst, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
1380
1381 // ---- VK_NN_vi_surface extension commands
1382 #if defined(VK_USE_PLATFORM_VI_NN)
1383 table->CreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)gpa(inst, "vkCreateViSurfaceNN");
1384 #endif // VK_USE_PLATFORM_VI_NN
1385
1386 // ---- VK_EXT_direct_mode_display extension commands
1387 table->ReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)gpa(inst, "vkReleaseDisplayEXT");
1388
1389 // ---- VK_EXT_acquire_xlib_display extension commands
1390 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1391 table->AcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)gpa(inst, "vkAcquireXlibDisplayEXT");
1392 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1393 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1394 table->GetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)gpa(inst, "vkGetRandROutputDisplayEXT");
1395 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1396
1397 // ---- VK_EXT_display_surface_counter extension commands
1398 table->GetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
1399
1400 // ---- VK_MVK_ios_surface extension commands
1401 #if defined(VK_USE_PLATFORM_IOS_MVK)
1402 table->CreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)gpa(inst, "vkCreateIOSSurfaceMVK");
1403 #endif // VK_USE_PLATFORM_IOS_MVK
1404
1405 // ---- VK_MVK_macos_surface extension commands
1406 #if defined(VK_USE_PLATFORM_MACOS_MVK)
1407 table->CreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)gpa(inst, "vkCreateMacOSSurfaceMVK");
1408 #endif // VK_USE_PLATFORM_MACOS_MVK
1409
1410 // ---- VK_EXT_debug_utils extension commands
1411 table->CreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)gpa(inst, "vkCreateDebugUtilsMessengerEXT");
1412 table->DestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)gpa(inst, "vkDestroyDebugUtilsMessengerEXT");
1413 table->SubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)gpa(inst, "vkSubmitDebugUtilsMessageEXT");
1414
1415 // ---- VK_EXT_sample_locations extension commands
1416 table->GetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)gpa(inst, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1417
1418 // ---- VK_EXT_calibrated_timestamps extension commands
1419 table->GetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1420
1421 // ---- VK_FUCHSIA_imagepipe_surface extension commands
1422 #if defined(VK_USE_PLATFORM_FUCHSIA)
1423 table->CreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)gpa(inst, "vkCreateImagePipeSurfaceFUCHSIA");
1424 #endif // VK_USE_PLATFORM_FUCHSIA
1425
1426 // ---- VK_EXT_metal_surface extension commands
1427 #if defined(VK_USE_PLATFORM_METAL_EXT)
1428 table->CreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)gpa(inst, "vkCreateMetalSurfaceEXT");
1429 #endif // VK_USE_PLATFORM_METAL_EXT
1430
1431 // ---- VK_EXT_tooling_info extension commands
1432 table->GetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)gpa(inst, "vkGetPhysicalDeviceToolPropertiesEXT");
1433
1434 // ---- VK_NV_cooperative_matrix extension commands
1435 table->GetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1436
1437 // ---- VK_NV_coverage_reduction_mode extension commands
1438 table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)gpa(inst, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1439
1440 // ---- VK_EXT_full_screen_exclusive extension commands
1441 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1442 table->GetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1443 #endif // VK_USE_PLATFORM_WIN32_KHR
1444
1445 // ---- VK_EXT_headless_surface extension commands
1446 table->CreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)gpa(inst, "vkCreateHeadlessSurfaceEXT");
1447
1448 // ---- VK_EXT_acquire_drm_display extension commands
1449 table->AcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)gpa(inst, "vkAcquireDrmDisplayEXT");
1450 table->GetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)gpa(inst, "vkGetDrmDisplayEXT");
1451
1452 // ---- VK_NV_acquire_winrt_display extension commands
1453 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1454 table->AcquireWinrtDisplayNV = (PFN_vkAcquireWinrtDisplayNV)gpa(inst, "vkAcquireWinrtDisplayNV");
1455 #endif // VK_USE_PLATFORM_WIN32_KHR
1456 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1457 table->GetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)gpa(inst, "vkGetWinrtDisplayNV");
1458 #endif // VK_USE_PLATFORM_WIN32_KHR
1459
1460 // ---- VK_EXT_directfb_surface extension commands
1461 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1462 table->CreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)gpa(inst, "vkCreateDirectFBSurfaceEXT");
1463 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
1464 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1465 table->GetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)gpa(inst, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1466 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
1467
1468 // ---- VK_QNX_screen_surface extension commands
1469 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
1470 table->CreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)gpa(inst, "vkCreateScreenSurfaceQNX");
1471 #endif // VK_USE_PLATFORM_SCREEN_QNX
1472 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
1473 table->GetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)gpa(inst, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
1474 #endif // VK_USE_PLATFORM_SCREEN_QNX
1475
1476 // ---- VK_NV_optical_flow extension commands
1477 table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
1478
1479 #if defined(VK_USE_PLATFORM_OHOS)
1480 table->CreateSurfaceOHOS = (PFN_vkCreateSurfaceOHOS)gpa(inst, "vkCreateSurfaceOHOS");
1481 #endif // VK_USE_PLATFORM_OHOS
1482 }
1483
1484 // Functions that required a terminator need to have a separate dispatch table which contains their corresponding
1485 // device function. This is used in the terminators themselves.
init_extension_device_proc_terminator_dispatch(struct loader_device * dev)1486 void init_extension_device_proc_terminator_dispatch(struct loader_device *dev) {
1487 struct loader_device_terminator_dispatch* dispatch = &dev->loader_dispatch.extension_terminator_dispatch;
1488 PFN_vkGetDeviceProcAddr gpda = (PFN_vkGetDeviceProcAddr)dev->phys_dev_term->this_icd_term->dispatch.GetDeviceProcAddr;
1489 // ---- VK_KHR_swapchain extension commands
1490 if (dev->driver_extensions.khr_swapchain_enabled)
1491 dispatch->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gpda(dev->icd_device, "vkCreateSwapchainKHR");
1492 if (dev->driver_extensions.khr_swapchain_enabled)
1493 dispatch->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModesKHR");
1494 // ---- VK_KHR_display_swapchain extension commands
1495 if (dev->driver_extensions.khr_display_swapchain_enabled)
1496 dispatch->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gpda(dev->icd_device, "vkCreateSharedSwapchainsKHR");
1497 // ---- VK_EXT_debug_marker extension commands
1498 if (dev->driver_extensions.ext_debug_marker_enabled)
1499 dispatch->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectTagEXT");
1500 if (dev->driver_extensions.ext_debug_marker_enabled)
1501 dispatch->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectNameEXT");
1502 // ---- VK_EXT_debug_utils extension commands
1503 if (dev->driver_extensions.ext_debug_utils_enabled)
1504 dispatch->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectNameEXT");
1505 if (dev->driver_extensions.ext_debug_utils_enabled)
1506 dispatch->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectTagEXT");
1507 if (dev->driver_extensions.ext_debug_utils_enabled)
1508 dispatch->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueBeginDebugUtilsLabelEXT");
1509 if (dev->driver_extensions.ext_debug_utils_enabled)
1510 dispatch->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueEndDebugUtilsLabelEXT");
1511 if (dev->driver_extensions.ext_debug_utils_enabled)
1512 dispatch->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueInsertDebugUtilsLabelEXT");
1513 if (dev->driver_extensions.ext_debug_utils_enabled)
1514 dispatch->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdBeginDebugUtilsLabelEXT");
1515 if (dev->driver_extensions.ext_debug_utils_enabled)
1516 dispatch->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdEndDebugUtilsLabelEXT");
1517 if (dev->driver_extensions.ext_debug_utils_enabled)
1518 dispatch->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdInsertDebugUtilsLabelEXT");
1519 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1520 // ---- VK_EXT_full_screen_exclusive extension commands
1521 if (dev->driver_extensions.ext_full_screen_exclusive_enabled && dev->driver_extensions.khr_device_group_enabled)
1522 dispatch->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModes2EXT");
1523 #endif // VK_USE_PLATFORM_WIN32_KHR
1524 }
1525
1526 // These are prototypes for functions that need their trampoline called in all circumstances.
1527 // They are used in loader_lookup_device_dispatch_table but are defined afterwards.
1528 // ---- VK_EXT_debug_marker extension commands
1529 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
1530 VkDevice device,
1531 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
1532 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
1533 VkDevice device,
1534 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
1535 // ---- VK_EXT_debug_utils extension commands
1536 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
1537 VkDevice device,
1538 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
1539 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
1540 VkDevice device,
1541 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
1542
1543 // Device command lookup function
loader_lookup_device_dispatch_table(const VkLayerDispatchTable * table,const char * name,bool * found_name)1544 VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDispatchTable *table, const char *name, bool* found_name) {
1545 if (!name || name[0] != 'v' || name[1] != 'k') {
1546 *found_name = false;
1547 return NULL;
1548 }
1549
1550 name += 2;
1551 *found_name = true;
1552 struct loader_device* dev = (struct loader_device *)table;
1553 const struct loader_instance* inst = dev->phys_dev_term->this_icd_term->this_instance;
1554 uint32_t api_version = VK_MAKE_API_VERSION(0, inst->app_api_version.major, inst->app_api_version.minor, inst->app_api_version.patch);
1555
1556
1557 // ---- Core Vulkan 1.0 commands
1558 if (!strcmp(name, "GetDeviceProcAddr")) {
1559 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1560 return (void *)table->GetDeviceProcAddr;
1561 }
1562 if (!strcmp(name, "DestroyDevice")) {
1563 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1564 return (void *)table->DestroyDevice;
1565 }
1566 if (!strcmp(name, "GetDeviceQueue")) {
1567 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1568 return (void *)table->GetDeviceQueue;
1569 }
1570 if (!strcmp(name, "QueueSubmit")) {
1571 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1572 return (void *)table->QueueSubmit;
1573 }
1574 if (!strcmp(name, "QueueWaitIdle")) {
1575 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1576 return (void *)table->QueueWaitIdle;
1577 }
1578 if (!strcmp(name, "DeviceWaitIdle")) {
1579 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1580 return (void *)table->DeviceWaitIdle;
1581 }
1582 if (!strcmp(name, "AllocateMemory")) {
1583 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1584 return (void *)table->AllocateMemory;
1585 }
1586 if (!strcmp(name, "FreeMemory")) {
1587 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1588 return (void *)table->FreeMemory;
1589 }
1590 if (!strcmp(name, "MapMemory")) {
1591 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1592 return (void *)table->MapMemory;
1593 }
1594 if (!strcmp(name, "UnmapMemory")) {
1595 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1596 return (void *)table->UnmapMemory;
1597 }
1598 if (!strcmp(name, "FlushMappedMemoryRanges")) {
1599 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1600 return (void *)table->FlushMappedMemoryRanges;
1601 }
1602 if (!strcmp(name, "InvalidateMappedMemoryRanges")) {
1603 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1604 return (void *)table->InvalidateMappedMemoryRanges;
1605 }
1606 if (!strcmp(name, "GetDeviceMemoryCommitment")) {
1607 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1608 return (void *)table->GetDeviceMemoryCommitment;
1609 }
1610 if (!strcmp(name, "BindBufferMemory")) {
1611 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1612 return (void *)table->BindBufferMemory;
1613 }
1614 if (!strcmp(name, "BindImageMemory")) {
1615 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1616 return (void *)table->BindImageMemory;
1617 }
1618 if (!strcmp(name, "GetBufferMemoryRequirements")) {
1619 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1620 return (void *)table->GetBufferMemoryRequirements;
1621 }
1622 if (!strcmp(name, "GetImageMemoryRequirements")) {
1623 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1624 return (void *)table->GetImageMemoryRequirements;
1625 }
1626 if (!strcmp(name, "GetImageSparseMemoryRequirements")) {
1627 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1628 return (void *)table->GetImageSparseMemoryRequirements;
1629 }
1630 if (!strcmp(name, "QueueBindSparse")) {
1631 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1632 return (void *)table->QueueBindSparse;
1633 }
1634 if (!strcmp(name, "CreateFence")) {
1635 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1636 return (void *)table->CreateFence;
1637 }
1638 if (!strcmp(name, "DestroyFence")) {
1639 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1640 return (void *)table->DestroyFence;
1641 }
1642 if (!strcmp(name, "ResetFences")) {
1643 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1644 return (void *)table->ResetFences;
1645 }
1646 if (!strcmp(name, "GetFenceStatus")) {
1647 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1648 return (void *)table->GetFenceStatus;
1649 }
1650 if (!strcmp(name, "WaitForFences")) {
1651 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1652 return (void *)table->WaitForFences;
1653 }
1654 if (!strcmp(name, "CreateSemaphore")) {
1655 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1656 return (void *)table->CreateSemaphore;
1657 }
1658 if (!strcmp(name, "DestroySemaphore")) {
1659 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1660 return (void *)table->DestroySemaphore;
1661 }
1662 if (!strcmp(name, "CreateEvent")) {
1663 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1664 return (void *)table->CreateEvent;
1665 }
1666 if (!strcmp(name, "DestroyEvent")) {
1667 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1668 return (void *)table->DestroyEvent;
1669 }
1670 if (!strcmp(name, "GetEventStatus")) {
1671 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1672 return (void *)table->GetEventStatus;
1673 }
1674 if (!strcmp(name, "SetEvent")) {
1675 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1676 return (void *)table->SetEvent;
1677 }
1678 if (!strcmp(name, "ResetEvent")) {
1679 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1680 return (void *)table->ResetEvent;
1681 }
1682 if (!strcmp(name, "CreateQueryPool")) {
1683 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1684 return (void *)table->CreateQueryPool;
1685 }
1686 if (!strcmp(name, "DestroyQueryPool")) {
1687 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1688 return (void *)table->DestroyQueryPool;
1689 }
1690 if (!strcmp(name, "GetQueryPoolResults")) {
1691 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1692 return (void *)table->GetQueryPoolResults;
1693 }
1694 if (!strcmp(name, "CreateBuffer")) {
1695 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1696 return (void *)table->CreateBuffer;
1697 }
1698 if (!strcmp(name, "DestroyBuffer")) {
1699 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1700 return (void *)table->DestroyBuffer;
1701 }
1702 if (!strcmp(name, "CreateBufferView")) {
1703 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1704 return (void *)table->CreateBufferView;
1705 }
1706 if (!strcmp(name, "DestroyBufferView")) {
1707 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1708 return (void *)table->DestroyBufferView;
1709 }
1710 if (!strcmp(name, "CreateImage")) {
1711 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1712 return (void *)table->CreateImage;
1713 }
1714 if (!strcmp(name, "DestroyImage")) {
1715 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1716 return (void *)table->DestroyImage;
1717 }
1718 if (!strcmp(name, "GetImageSubresourceLayout")) {
1719 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1720 return (void *)table->GetImageSubresourceLayout;
1721 }
1722 if (!strcmp(name, "CreateImageView")) {
1723 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1724 return (void *)table->CreateImageView;
1725 }
1726 if (!strcmp(name, "DestroyImageView")) {
1727 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1728 return (void *)table->DestroyImageView;
1729 }
1730 if (!strcmp(name, "CreateShaderModule")) {
1731 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1732 return (void *)table->CreateShaderModule;
1733 }
1734 if (!strcmp(name, "DestroyShaderModule")) {
1735 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1736 return (void *)table->DestroyShaderModule;
1737 }
1738 if (!strcmp(name, "CreatePipelineCache")) {
1739 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1740 return (void *)table->CreatePipelineCache;
1741 }
1742 if (!strcmp(name, "DestroyPipelineCache")) {
1743 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1744 return (void *)table->DestroyPipelineCache;
1745 }
1746 if (!strcmp(name, "GetPipelineCacheData")) {
1747 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1748 return (void *)table->GetPipelineCacheData;
1749 }
1750 if (!strcmp(name, "MergePipelineCaches")) {
1751 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1752 return (void *)table->MergePipelineCaches;
1753 }
1754 if (!strcmp(name, "CreateGraphicsPipelines")) {
1755 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1756 return (void *)table->CreateGraphicsPipelines;
1757 }
1758 if (!strcmp(name, "CreateComputePipelines")) {
1759 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1760 return (void *)table->CreateComputePipelines;
1761 }
1762 if (!strcmp(name, "DestroyPipeline")) {
1763 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1764 return (void *)table->DestroyPipeline;
1765 }
1766 if (!strcmp(name, "CreatePipelineLayout")) {
1767 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1768 return (void *)table->CreatePipelineLayout;
1769 }
1770 if (!strcmp(name, "DestroyPipelineLayout")) {
1771 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1772 return (void *)table->DestroyPipelineLayout;
1773 }
1774 if (!strcmp(name, "CreateSampler")) {
1775 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1776 return (void *)table->CreateSampler;
1777 }
1778 if (!strcmp(name, "DestroySampler")) {
1779 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1780 return (void *)table->DestroySampler;
1781 }
1782 if (!strcmp(name, "CreateDescriptorSetLayout")) {
1783 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1784 return (void *)table->CreateDescriptorSetLayout;
1785 }
1786 if (!strcmp(name, "DestroyDescriptorSetLayout")) {
1787 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1788 return (void *)table->DestroyDescriptorSetLayout;
1789 }
1790 if (!strcmp(name, "CreateDescriptorPool")) {
1791 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1792 return (void *)table->CreateDescriptorPool;
1793 }
1794 if (!strcmp(name, "DestroyDescriptorPool")) {
1795 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1796 return (void *)table->DestroyDescriptorPool;
1797 }
1798 if (!strcmp(name, "ResetDescriptorPool")) {
1799 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1800 return (void *)table->ResetDescriptorPool;
1801 }
1802 if (!strcmp(name, "AllocateDescriptorSets")) {
1803 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1804 return (void *)table->AllocateDescriptorSets;
1805 }
1806 if (!strcmp(name, "FreeDescriptorSets")) {
1807 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1808 return (void *)table->FreeDescriptorSets;
1809 }
1810 if (!strcmp(name, "UpdateDescriptorSets")) {
1811 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1812 return (void *)table->UpdateDescriptorSets;
1813 }
1814 if (!strcmp(name, "CreateFramebuffer")) {
1815 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1816 return (void *)table->CreateFramebuffer;
1817 }
1818 if (!strcmp(name, "DestroyFramebuffer")) {
1819 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1820 return (void *)table->DestroyFramebuffer;
1821 }
1822 if (!strcmp(name, "CreateRenderPass")) {
1823 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1824 return (void *)table->CreateRenderPass;
1825 }
1826 if (!strcmp(name, "DestroyRenderPass")) {
1827 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1828 return (void *)table->DestroyRenderPass;
1829 }
1830 if (!strcmp(name, "GetRenderAreaGranularity")) {
1831 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1832 return (void *)table->GetRenderAreaGranularity;
1833 }
1834 if (!strcmp(name, "CreateCommandPool")) {
1835 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1836 return (void *)table->CreateCommandPool;
1837 }
1838 if (!strcmp(name, "DestroyCommandPool")) {
1839 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1840 return (void *)table->DestroyCommandPool;
1841 }
1842 if (!strcmp(name, "ResetCommandPool")) {
1843 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1844 return (void *)table->ResetCommandPool;
1845 }
1846 if (!strcmp(name, "AllocateCommandBuffers")) {
1847 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1848 return (void *)table->AllocateCommandBuffers;
1849 }
1850 if (!strcmp(name, "FreeCommandBuffers")) {
1851 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1852 return (void *)table->FreeCommandBuffers;
1853 }
1854 if (!strcmp(name, "BeginCommandBuffer")) {
1855 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1856 return (void *)table->BeginCommandBuffer;
1857 }
1858 if (!strcmp(name, "EndCommandBuffer")) {
1859 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1860 return (void *)table->EndCommandBuffer;
1861 }
1862 if (!strcmp(name, "ResetCommandBuffer")) {
1863 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1864 return (void *)table->ResetCommandBuffer;
1865 }
1866 if (!strcmp(name, "CmdBindPipeline")) {
1867 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1868 return (void *)table->CmdBindPipeline;
1869 }
1870 if (!strcmp(name, "CmdSetViewport")) {
1871 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1872 return (void *)table->CmdSetViewport;
1873 }
1874 if (!strcmp(name, "CmdSetScissor")) {
1875 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1876 return (void *)table->CmdSetScissor;
1877 }
1878 if (!strcmp(name, "CmdSetLineWidth")) {
1879 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1880 return (void *)table->CmdSetLineWidth;
1881 }
1882 if (!strcmp(name, "CmdSetDepthBias")) {
1883 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1884 return (void *)table->CmdSetDepthBias;
1885 }
1886 if (!strcmp(name, "CmdSetBlendConstants")) {
1887 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1888 return (void *)table->CmdSetBlendConstants;
1889 }
1890 if (!strcmp(name, "CmdSetDepthBounds")) {
1891 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1892 return (void *)table->CmdSetDepthBounds;
1893 }
1894 if (!strcmp(name, "CmdSetStencilCompareMask")) {
1895 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1896 return (void *)table->CmdSetStencilCompareMask;
1897 }
1898 if (!strcmp(name, "CmdSetStencilWriteMask")) {
1899 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1900 return (void *)table->CmdSetStencilWriteMask;
1901 }
1902 if (!strcmp(name, "CmdSetStencilReference")) {
1903 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1904 return (void *)table->CmdSetStencilReference;
1905 }
1906 if (!strcmp(name, "CmdBindDescriptorSets")) {
1907 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1908 return (void *)table->CmdBindDescriptorSets;
1909 }
1910 if (!strcmp(name, "CmdBindIndexBuffer")) {
1911 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1912 return (void *)table->CmdBindIndexBuffer;
1913 }
1914 if (!strcmp(name, "CmdBindVertexBuffers")) {
1915 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1916 return (void *)table->CmdBindVertexBuffers;
1917 }
1918 if (!strcmp(name, "CmdDraw")) {
1919 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1920 return (void *)table->CmdDraw;
1921 }
1922 if (!strcmp(name, "CmdDrawIndexed")) {
1923 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1924 return (void *)table->CmdDrawIndexed;
1925 }
1926 if (!strcmp(name, "CmdDrawIndirect")) {
1927 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1928 return (void *)table->CmdDrawIndirect;
1929 }
1930 if (!strcmp(name, "CmdDrawIndexedIndirect")) {
1931 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1932 return (void *)table->CmdDrawIndexedIndirect;
1933 }
1934 if (!strcmp(name, "CmdDispatch")) {
1935 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1936 return (void *)table->CmdDispatch;
1937 }
1938 if (!strcmp(name, "CmdDispatchIndirect")) {
1939 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1940 return (void *)table->CmdDispatchIndirect;
1941 }
1942 if (!strcmp(name, "CmdCopyBuffer")) {
1943 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1944 return (void *)table->CmdCopyBuffer;
1945 }
1946 if (!strcmp(name, "CmdCopyImage")) {
1947 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1948 return (void *)table->CmdCopyImage;
1949 }
1950 if (!strcmp(name, "CmdBlitImage")) {
1951 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1952 return (void *)table->CmdBlitImage;
1953 }
1954 if (!strcmp(name, "CmdCopyBufferToImage")) {
1955 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1956 return (void *)table->CmdCopyBufferToImage;
1957 }
1958 if (!strcmp(name, "CmdCopyImageToBuffer")) {
1959 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1960 return (void *)table->CmdCopyImageToBuffer;
1961 }
1962 if (!strcmp(name, "CmdUpdateBuffer")) {
1963 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1964 return (void *)table->CmdUpdateBuffer;
1965 }
1966 if (!strcmp(name, "CmdFillBuffer")) {
1967 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1968 return (void *)table->CmdFillBuffer;
1969 }
1970 if (!strcmp(name, "CmdClearColorImage")) {
1971 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1972 return (void *)table->CmdClearColorImage;
1973 }
1974 if (!strcmp(name, "CmdClearDepthStencilImage")) {
1975 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1976 return (void *)table->CmdClearDepthStencilImage;
1977 }
1978 if (!strcmp(name, "CmdClearAttachments")) {
1979 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1980 return (void *)table->CmdClearAttachments;
1981 }
1982 if (!strcmp(name, "CmdResolveImage")) {
1983 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1984 return (void *)table->CmdResolveImage;
1985 }
1986 if (!strcmp(name, "CmdSetEvent")) {
1987 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1988 return (void *)table->CmdSetEvent;
1989 }
1990 if (!strcmp(name, "CmdResetEvent")) {
1991 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1992 return (void *)table->CmdResetEvent;
1993 }
1994 if (!strcmp(name, "CmdWaitEvents")) {
1995 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1996 return (void *)table->CmdWaitEvents;
1997 }
1998 if (!strcmp(name, "CmdPipelineBarrier")) {
1999 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2000 return (void *)table->CmdPipelineBarrier;
2001 }
2002 if (!strcmp(name, "CmdBeginQuery")) {
2003 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2004 return (void *)table->CmdBeginQuery;
2005 }
2006 if (!strcmp(name, "CmdEndQuery")) {
2007 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2008 return (void *)table->CmdEndQuery;
2009 }
2010 if (!strcmp(name, "CmdResetQueryPool")) {
2011 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2012 return (void *)table->CmdResetQueryPool;
2013 }
2014 if (!strcmp(name, "CmdWriteTimestamp")) {
2015 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2016 return (void *)table->CmdWriteTimestamp;
2017 }
2018 if (!strcmp(name, "CmdCopyQueryPoolResults")) {
2019 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2020 return (void *)table->CmdCopyQueryPoolResults;
2021 }
2022 if (!strcmp(name, "CmdPushConstants")) {
2023 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2024 return (void *)table->CmdPushConstants;
2025 }
2026 if (!strcmp(name, "CmdBeginRenderPass")) {
2027 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2028 return (void *)table->CmdBeginRenderPass;
2029 }
2030 if (!strcmp(name, "CmdNextSubpass")) {
2031 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2032 return (void *)table->CmdNextSubpass;
2033 }
2034 if (!strcmp(name, "CmdEndRenderPass")) {
2035 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2036 return (void *)table->CmdEndRenderPass;
2037 }
2038 if (!strcmp(name, "CmdExecuteCommands")) {
2039 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2040 return (void *)table->CmdExecuteCommands;
2041 }
2042
2043 // ---- Core Vulkan 1.1 commands
2044 if (!strcmp(name, "BindBufferMemory2")) {
2045 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2046 return (void *)table->BindBufferMemory2;
2047 }
2048 if (!strcmp(name, "BindImageMemory2")) {
2049 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2050 return (void *)table->BindImageMemory2;
2051 }
2052 if (!strcmp(name, "GetDeviceGroupPeerMemoryFeatures")) {
2053 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2054 return (void *)table->GetDeviceGroupPeerMemoryFeatures;
2055 }
2056 if (!strcmp(name, "CmdSetDeviceMask")) {
2057 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2058 return (void *)table->CmdSetDeviceMask;
2059 }
2060 if (!strcmp(name, "CmdDispatchBase")) {
2061 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2062 return (void *)table->CmdDispatchBase;
2063 }
2064 if (!strcmp(name, "GetImageMemoryRequirements2")) {
2065 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2066 return (void *)table->GetImageMemoryRequirements2;
2067 }
2068 if (!strcmp(name, "GetBufferMemoryRequirements2")) {
2069 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2070 return (void *)table->GetBufferMemoryRequirements2;
2071 }
2072 if (!strcmp(name, "GetImageSparseMemoryRequirements2")) {
2073 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2074 return (void *)table->GetImageSparseMemoryRequirements2;
2075 }
2076 if (!strcmp(name, "TrimCommandPool")) {
2077 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2078 return (void *)table->TrimCommandPool;
2079 }
2080 if (!strcmp(name, "GetDeviceQueue2")) {
2081 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2082 return (void *)table->GetDeviceQueue2;
2083 }
2084 if (!strcmp(name, "CreateSamplerYcbcrConversion")) {
2085 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2086 return (void *)table->CreateSamplerYcbcrConversion;
2087 }
2088 if (!strcmp(name, "DestroySamplerYcbcrConversion")) {
2089 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2090 return (void *)table->DestroySamplerYcbcrConversion;
2091 }
2092 if (!strcmp(name, "CreateDescriptorUpdateTemplate")) {
2093 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2094 return (void *)table->CreateDescriptorUpdateTemplate;
2095 }
2096 if (!strcmp(name, "DestroyDescriptorUpdateTemplate")) {
2097 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2098 return (void *)table->DestroyDescriptorUpdateTemplate;
2099 }
2100 if (!strcmp(name, "UpdateDescriptorSetWithTemplate")) {
2101 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2102 return (void *)table->UpdateDescriptorSetWithTemplate;
2103 }
2104 if (!strcmp(name, "GetDescriptorSetLayoutSupport")) {
2105 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2106 return (void *)table->GetDescriptorSetLayoutSupport;
2107 }
2108
2109 // ---- Core Vulkan 1.2 commands
2110 if (!strcmp(name, "CmdDrawIndirectCount")) {
2111 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2112 return (void *)table->CmdDrawIndirectCount;
2113 }
2114 if (!strcmp(name, "CmdDrawIndexedIndirectCount")) {
2115 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2116 return (void *)table->CmdDrawIndexedIndirectCount;
2117 }
2118 if (!strcmp(name, "CreateRenderPass2")) {
2119 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2120 return (void *)table->CreateRenderPass2;
2121 }
2122 if (!strcmp(name, "CmdBeginRenderPass2")) {
2123 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2124 return (void *)table->CmdBeginRenderPass2;
2125 }
2126 if (!strcmp(name, "CmdNextSubpass2")) {
2127 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2128 return (void *)table->CmdNextSubpass2;
2129 }
2130 if (!strcmp(name, "CmdEndRenderPass2")) {
2131 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2132 return (void *)table->CmdEndRenderPass2;
2133 }
2134 if (!strcmp(name, "ResetQueryPool")) {
2135 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2136 return (void *)table->ResetQueryPool;
2137 }
2138 if (!strcmp(name, "GetSemaphoreCounterValue")) {
2139 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2140 return (void *)table->GetSemaphoreCounterValue;
2141 }
2142 if (!strcmp(name, "WaitSemaphores")) {
2143 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2144 return (void *)table->WaitSemaphores;
2145 }
2146 if (!strcmp(name, "SignalSemaphore")) {
2147 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2148 return (void *)table->SignalSemaphore;
2149 }
2150 if (!strcmp(name, "GetBufferDeviceAddress")) {
2151 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2152 return (void *)table->GetBufferDeviceAddress;
2153 }
2154 if (!strcmp(name, "GetBufferOpaqueCaptureAddress")) {
2155 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2156 return (void *)table->GetBufferOpaqueCaptureAddress;
2157 }
2158 if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddress")) {
2159 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2160 return (void *)table->GetDeviceMemoryOpaqueCaptureAddress;
2161 }
2162
2163 // ---- Core Vulkan 1.3 commands
2164 if (!strcmp(name, "CreatePrivateDataSlot")) {
2165 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2166 return (void *)table->CreatePrivateDataSlot;
2167 }
2168 if (!strcmp(name, "DestroyPrivateDataSlot")) {
2169 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2170 return (void *)table->DestroyPrivateDataSlot;
2171 }
2172 if (!strcmp(name, "SetPrivateData")) {
2173 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2174 return (void *)table->SetPrivateData;
2175 }
2176 if (!strcmp(name, "GetPrivateData")) {
2177 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2178 return (void *)table->GetPrivateData;
2179 }
2180 if (!strcmp(name, "CmdSetEvent2")) {
2181 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2182 return (void *)table->CmdSetEvent2;
2183 }
2184 if (!strcmp(name, "CmdResetEvent2")) {
2185 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2186 return (void *)table->CmdResetEvent2;
2187 }
2188 if (!strcmp(name, "CmdWaitEvents2")) {
2189 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2190 return (void *)table->CmdWaitEvents2;
2191 }
2192 if (!strcmp(name, "CmdPipelineBarrier2")) {
2193 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2194 return (void *)table->CmdPipelineBarrier2;
2195 }
2196 if (!strcmp(name, "CmdWriteTimestamp2")) {
2197 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2198 return (void *)table->CmdWriteTimestamp2;
2199 }
2200 if (!strcmp(name, "QueueSubmit2")) {
2201 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2202 return (void *)table->QueueSubmit2;
2203 }
2204 if (!strcmp(name, "CmdCopyBuffer2")) {
2205 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2206 return (void *)table->CmdCopyBuffer2;
2207 }
2208 if (!strcmp(name, "CmdCopyImage2")) {
2209 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2210 return (void *)table->CmdCopyImage2;
2211 }
2212 if (!strcmp(name, "CmdCopyBufferToImage2")) {
2213 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2214 return (void *)table->CmdCopyBufferToImage2;
2215 }
2216 if (!strcmp(name, "CmdCopyImageToBuffer2")) {
2217 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2218 return (void *)table->CmdCopyImageToBuffer2;
2219 }
2220 if (!strcmp(name, "CmdBlitImage2")) {
2221 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2222 return (void *)table->CmdBlitImage2;
2223 }
2224 if (!strcmp(name, "CmdResolveImage2")) {
2225 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2226 return (void *)table->CmdResolveImage2;
2227 }
2228 if (!strcmp(name, "CmdBeginRendering")) {
2229 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2230 return (void *)table->CmdBeginRendering;
2231 }
2232 if (!strcmp(name, "CmdEndRendering")) {
2233 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2234 return (void *)table->CmdEndRendering;
2235 }
2236 if (!strcmp(name, "CmdSetCullMode")) {
2237 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2238 return (void *)table->CmdSetCullMode;
2239 }
2240 if (!strcmp(name, "CmdSetFrontFace")) {
2241 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2242 return (void *)table->CmdSetFrontFace;
2243 }
2244 if (!strcmp(name, "CmdSetPrimitiveTopology")) {
2245 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2246 return (void *)table->CmdSetPrimitiveTopology;
2247 }
2248 if (!strcmp(name, "CmdSetViewportWithCount")) {
2249 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2250 return (void *)table->CmdSetViewportWithCount;
2251 }
2252 if (!strcmp(name, "CmdSetScissorWithCount")) {
2253 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2254 return (void *)table->CmdSetScissorWithCount;
2255 }
2256 if (!strcmp(name, "CmdBindVertexBuffers2")) {
2257 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2258 return (void *)table->CmdBindVertexBuffers2;
2259 }
2260 if (!strcmp(name, "CmdSetDepthTestEnable")) {
2261 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2262 return (void *)table->CmdSetDepthTestEnable;
2263 }
2264 if (!strcmp(name, "CmdSetDepthWriteEnable")) {
2265 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2266 return (void *)table->CmdSetDepthWriteEnable;
2267 }
2268 if (!strcmp(name, "CmdSetDepthCompareOp")) {
2269 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2270 return (void *)table->CmdSetDepthCompareOp;
2271 }
2272 if (!strcmp(name, "CmdSetDepthBoundsTestEnable")) {
2273 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2274 return (void *)table->CmdSetDepthBoundsTestEnable;
2275 }
2276 if (!strcmp(name, "CmdSetStencilTestEnable")) {
2277 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2278 return (void *)table->CmdSetStencilTestEnable;
2279 }
2280 if (!strcmp(name, "CmdSetStencilOp")) {
2281 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2282 return (void *)table->CmdSetStencilOp;
2283 }
2284 if (!strcmp(name, "CmdSetRasterizerDiscardEnable")) {
2285 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2286 return (void *)table->CmdSetRasterizerDiscardEnable;
2287 }
2288 if (!strcmp(name, "CmdSetDepthBiasEnable")) {
2289 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2290 return (void *)table->CmdSetDepthBiasEnable;
2291 }
2292 if (!strcmp(name, "CmdSetPrimitiveRestartEnable")) {
2293 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2294 return (void *)table->CmdSetPrimitiveRestartEnable;
2295 }
2296 if (!strcmp(name, "GetDeviceBufferMemoryRequirements")) {
2297 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2298 return (void *)table->GetDeviceBufferMemoryRequirements;
2299 }
2300 if (!strcmp(name, "GetDeviceImageMemoryRequirements")) {
2301 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2302 return (void *)table->GetDeviceImageMemoryRequirements;
2303 }
2304 if (!strcmp(name, "GetDeviceImageSparseMemoryRequirements")) {
2305 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2306 return (void *)table->GetDeviceImageSparseMemoryRequirements;
2307 }
2308
2309 // ---- VK_KHR_swapchain extension commands
2310 if (!strcmp(name, "CreateSwapchainKHR")) return (void *)table->CreateSwapchainKHR;
2311 if (!strcmp(name, "DestroySwapchainKHR")) return (void *)table->DestroySwapchainKHR;
2312 if (!strcmp(name, "GetSwapchainImagesKHR")) return (void *)table->GetSwapchainImagesKHR;
2313 if (!strcmp(name, "AcquireNextImageKHR")) return (void *)table->AcquireNextImageKHR;
2314 if (!strcmp(name, "QueuePresentKHR")) return (void *)table->QueuePresentKHR;
2315 if (!strcmp(name, "GetDeviceGroupPresentCapabilitiesKHR")) return (void *)table->GetDeviceGroupPresentCapabilitiesKHR;
2316 if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) return (void *)table->GetDeviceGroupSurfacePresentModesKHR;
2317 if (!strcmp(name, "AcquireNextImage2KHR")) return (void *)table->AcquireNextImage2KHR;
2318
2319 // ---- VK_KHR_display_swapchain extension commands
2320 if (!strcmp(name, "CreateSharedSwapchainsKHR")) return (void *)table->CreateSharedSwapchainsKHR;
2321
2322 // ---- VK_KHR_video_queue extension commands
2323 if (!strcmp(name, "CreateVideoSessionKHR")) return (void *)table->CreateVideoSessionKHR;
2324 if (!strcmp(name, "DestroyVideoSessionKHR")) return (void *)table->DestroyVideoSessionKHR;
2325 if (!strcmp(name, "GetVideoSessionMemoryRequirementsKHR")) return (void *)table->GetVideoSessionMemoryRequirementsKHR;
2326 if (!strcmp(name, "BindVideoSessionMemoryKHR")) return (void *)table->BindVideoSessionMemoryKHR;
2327 if (!strcmp(name, "CreateVideoSessionParametersKHR")) return (void *)table->CreateVideoSessionParametersKHR;
2328 if (!strcmp(name, "UpdateVideoSessionParametersKHR")) return (void *)table->UpdateVideoSessionParametersKHR;
2329 if (!strcmp(name, "DestroyVideoSessionParametersKHR")) return (void *)table->DestroyVideoSessionParametersKHR;
2330 if (!strcmp(name, "CmdBeginVideoCodingKHR")) return (void *)table->CmdBeginVideoCodingKHR;
2331 if (!strcmp(name, "CmdEndVideoCodingKHR")) return (void *)table->CmdEndVideoCodingKHR;
2332 if (!strcmp(name, "CmdControlVideoCodingKHR")) return (void *)table->CmdControlVideoCodingKHR;
2333
2334 // ---- VK_KHR_video_decode_queue extension commands
2335 if (!strcmp(name, "CmdDecodeVideoKHR")) return (void *)table->CmdDecodeVideoKHR;
2336
2337 // ---- VK_KHR_dynamic_rendering extension commands
2338 if (!strcmp(name, "CmdBeginRenderingKHR")) return (void *)table->CmdBeginRenderingKHR;
2339 if (!strcmp(name, "CmdEndRenderingKHR")) return (void *)table->CmdEndRenderingKHR;
2340
2341 // ---- VK_KHR_device_group extension commands
2342 if (!strcmp(name, "GetDeviceGroupPeerMemoryFeaturesKHR")) return (void *)table->GetDeviceGroupPeerMemoryFeaturesKHR;
2343 if (!strcmp(name, "CmdSetDeviceMaskKHR")) return (void *)table->CmdSetDeviceMaskKHR;
2344 if (!strcmp(name, "CmdDispatchBaseKHR")) return (void *)table->CmdDispatchBaseKHR;
2345
2346 // ---- VK_KHR_maintenance1 extension commands
2347 if (!strcmp(name, "TrimCommandPoolKHR")) return (void *)table->TrimCommandPoolKHR;
2348
2349 // ---- VK_KHR_external_memory_win32 extension commands
2350 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2351 if (!strcmp(name, "GetMemoryWin32HandleKHR")) return (void *)table->GetMemoryWin32HandleKHR;
2352 #endif // VK_USE_PLATFORM_WIN32_KHR
2353 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2354 if (!strcmp(name, "GetMemoryWin32HandlePropertiesKHR")) return (void *)table->GetMemoryWin32HandlePropertiesKHR;
2355 #endif // VK_USE_PLATFORM_WIN32_KHR
2356
2357 // ---- VK_KHR_external_memory_fd extension commands
2358 if (!strcmp(name, "GetMemoryFdKHR")) return (void *)table->GetMemoryFdKHR;
2359 if (!strcmp(name, "GetMemoryFdPropertiesKHR")) return (void *)table->GetMemoryFdPropertiesKHR;
2360
2361 // ---- VK_KHR_external_semaphore_win32 extension commands
2362 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2363 if (!strcmp(name, "ImportSemaphoreWin32HandleKHR")) return (void *)table->ImportSemaphoreWin32HandleKHR;
2364 #endif // VK_USE_PLATFORM_WIN32_KHR
2365 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2366 if (!strcmp(name, "GetSemaphoreWin32HandleKHR")) return (void *)table->GetSemaphoreWin32HandleKHR;
2367 #endif // VK_USE_PLATFORM_WIN32_KHR
2368
2369 // ---- VK_KHR_external_semaphore_fd extension commands
2370 if (!strcmp(name, "ImportSemaphoreFdKHR")) return (void *)table->ImportSemaphoreFdKHR;
2371 if (!strcmp(name, "GetSemaphoreFdKHR")) return (void *)table->GetSemaphoreFdKHR;
2372
2373 // ---- VK_KHR_push_descriptor extension commands
2374 if (!strcmp(name, "CmdPushDescriptorSetKHR")) return (void *)table->CmdPushDescriptorSetKHR;
2375 if (!strcmp(name, "CmdPushDescriptorSetWithTemplateKHR")) return (void *)table->CmdPushDescriptorSetWithTemplateKHR;
2376
2377 // ---- VK_KHR_descriptor_update_template extension commands
2378 if (!strcmp(name, "CreateDescriptorUpdateTemplateKHR")) return (void *)table->CreateDescriptorUpdateTemplateKHR;
2379 if (!strcmp(name, "DestroyDescriptorUpdateTemplateKHR")) return (void *)table->DestroyDescriptorUpdateTemplateKHR;
2380 if (!strcmp(name, "UpdateDescriptorSetWithTemplateKHR")) return (void *)table->UpdateDescriptorSetWithTemplateKHR;
2381
2382 // ---- VK_KHR_create_renderpass2 extension commands
2383 if (!strcmp(name, "CreateRenderPass2KHR")) return (void *)table->CreateRenderPass2KHR;
2384 if (!strcmp(name, "CmdBeginRenderPass2KHR")) return (void *)table->CmdBeginRenderPass2KHR;
2385 if (!strcmp(name, "CmdNextSubpass2KHR")) return (void *)table->CmdNextSubpass2KHR;
2386 if (!strcmp(name, "CmdEndRenderPass2KHR")) return (void *)table->CmdEndRenderPass2KHR;
2387
2388 // ---- VK_KHR_shared_presentable_image extension commands
2389 if (!strcmp(name, "GetSwapchainStatusKHR")) return (void *)table->GetSwapchainStatusKHR;
2390
2391 // ---- VK_KHR_external_fence_win32 extension commands
2392 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2393 if (!strcmp(name, "ImportFenceWin32HandleKHR")) return (void *)table->ImportFenceWin32HandleKHR;
2394 #endif // VK_USE_PLATFORM_WIN32_KHR
2395 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2396 if (!strcmp(name, "GetFenceWin32HandleKHR")) return (void *)table->GetFenceWin32HandleKHR;
2397 #endif // VK_USE_PLATFORM_WIN32_KHR
2398
2399 // ---- VK_KHR_external_fence_fd extension commands
2400 if (!strcmp(name, "ImportFenceFdKHR")) return (void *)table->ImportFenceFdKHR;
2401 if (!strcmp(name, "GetFenceFdKHR")) return (void *)table->GetFenceFdKHR;
2402
2403 // ---- VK_KHR_performance_query extension commands
2404 if (!strcmp(name, "AcquireProfilingLockKHR")) return (void *)table->AcquireProfilingLockKHR;
2405 if (!strcmp(name, "ReleaseProfilingLockKHR")) return (void *)table->ReleaseProfilingLockKHR;
2406
2407 // ---- VK_KHR_get_memory_requirements2 extension commands
2408 if (!strcmp(name, "GetImageMemoryRequirements2KHR")) return (void *)table->GetImageMemoryRequirements2KHR;
2409 if (!strcmp(name, "GetBufferMemoryRequirements2KHR")) return (void *)table->GetBufferMemoryRequirements2KHR;
2410 if (!strcmp(name, "GetImageSparseMemoryRequirements2KHR")) return (void *)table->GetImageSparseMemoryRequirements2KHR;
2411
2412 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
2413 if (!strcmp(name, "CreateSamplerYcbcrConversionKHR")) return (void *)table->CreateSamplerYcbcrConversionKHR;
2414 if (!strcmp(name, "DestroySamplerYcbcrConversionKHR")) return (void *)table->DestroySamplerYcbcrConversionKHR;
2415
2416 // ---- VK_KHR_bind_memory2 extension commands
2417 if (!strcmp(name, "BindBufferMemory2KHR")) return (void *)table->BindBufferMemory2KHR;
2418 if (!strcmp(name, "BindImageMemory2KHR")) return (void *)table->BindImageMemory2KHR;
2419
2420 // ---- VK_KHR_maintenance3 extension commands
2421 if (!strcmp(name, "GetDescriptorSetLayoutSupportKHR")) return (void *)table->GetDescriptorSetLayoutSupportKHR;
2422
2423 // ---- VK_KHR_draw_indirect_count extension commands
2424 if (!strcmp(name, "CmdDrawIndirectCountKHR")) return (void *)table->CmdDrawIndirectCountKHR;
2425 if (!strcmp(name, "CmdDrawIndexedIndirectCountKHR")) return (void *)table->CmdDrawIndexedIndirectCountKHR;
2426
2427 // ---- VK_KHR_timeline_semaphore extension commands
2428 if (!strcmp(name, "GetSemaphoreCounterValueKHR")) return (void *)table->GetSemaphoreCounterValueKHR;
2429 if (!strcmp(name, "WaitSemaphoresKHR")) return (void *)table->WaitSemaphoresKHR;
2430 if (!strcmp(name, "SignalSemaphoreKHR")) return (void *)table->SignalSemaphoreKHR;
2431
2432 // ---- VK_KHR_fragment_shading_rate extension commands
2433 if (!strcmp(name, "CmdSetFragmentShadingRateKHR")) return (void *)table->CmdSetFragmentShadingRateKHR;
2434
2435 // ---- VK_KHR_present_wait extension commands
2436 if (!strcmp(name, "WaitForPresentKHR")) return (void *)table->WaitForPresentKHR;
2437
2438 // ---- VK_KHR_buffer_device_address extension commands
2439 if (!strcmp(name, "GetBufferDeviceAddressKHR")) return (void *)table->GetBufferDeviceAddressKHR;
2440 if (!strcmp(name, "GetBufferOpaqueCaptureAddressKHR")) return (void *)table->GetBufferOpaqueCaptureAddressKHR;
2441 if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddressKHR")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddressKHR;
2442
2443 // ---- VK_KHR_deferred_host_operations extension commands
2444 if (!strcmp(name, "CreateDeferredOperationKHR")) return (void *)table->CreateDeferredOperationKHR;
2445 if (!strcmp(name, "DestroyDeferredOperationKHR")) return (void *)table->DestroyDeferredOperationKHR;
2446 if (!strcmp(name, "GetDeferredOperationMaxConcurrencyKHR")) return (void *)table->GetDeferredOperationMaxConcurrencyKHR;
2447 if (!strcmp(name, "GetDeferredOperationResultKHR")) return (void *)table->GetDeferredOperationResultKHR;
2448 if (!strcmp(name, "DeferredOperationJoinKHR")) return (void *)table->DeferredOperationJoinKHR;
2449
2450 // ---- VK_KHR_pipeline_executable_properties extension commands
2451 if (!strcmp(name, "GetPipelineExecutablePropertiesKHR")) return (void *)table->GetPipelineExecutablePropertiesKHR;
2452 if (!strcmp(name, "GetPipelineExecutableStatisticsKHR")) return (void *)table->GetPipelineExecutableStatisticsKHR;
2453 if (!strcmp(name, "GetPipelineExecutableInternalRepresentationsKHR")) return (void *)table->GetPipelineExecutableInternalRepresentationsKHR;
2454
2455 // ---- VK_KHR_map_memory2 extension commands
2456 if (!strcmp(name, "MapMemory2KHR")) return (void *)table->MapMemory2KHR;
2457 if (!strcmp(name, "UnmapMemory2KHR")) return (void *)table->UnmapMemory2KHR;
2458
2459 // ---- VK_KHR_video_encode_queue extension commands
2460 if (!strcmp(name, "GetEncodedVideoSessionParametersKHR")) return (void *)table->GetEncodedVideoSessionParametersKHR;
2461 if (!strcmp(name, "CmdEncodeVideoKHR")) return (void *)table->CmdEncodeVideoKHR;
2462
2463 // ---- VK_KHR_synchronization2 extension commands
2464 if (!strcmp(name, "CmdSetEvent2KHR")) return (void *)table->CmdSetEvent2KHR;
2465 if (!strcmp(name, "CmdResetEvent2KHR")) return (void *)table->CmdResetEvent2KHR;
2466 if (!strcmp(name, "CmdWaitEvents2KHR")) return (void *)table->CmdWaitEvents2KHR;
2467 if (!strcmp(name, "CmdPipelineBarrier2KHR")) return (void *)table->CmdPipelineBarrier2KHR;
2468 if (!strcmp(name, "CmdWriteTimestamp2KHR")) return (void *)table->CmdWriteTimestamp2KHR;
2469 if (!strcmp(name, "QueueSubmit2KHR")) return (void *)table->QueueSubmit2KHR;
2470 if (!strcmp(name, "CmdWriteBufferMarker2AMD")) return (void *)table->CmdWriteBufferMarker2AMD;
2471 if (!strcmp(name, "GetQueueCheckpointData2NV")) return (void *)table->GetQueueCheckpointData2NV;
2472
2473 // ---- VK_KHR_copy_commands2 extension commands
2474 if (!strcmp(name, "CmdCopyBuffer2KHR")) return (void *)table->CmdCopyBuffer2KHR;
2475 if (!strcmp(name, "CmdCopyImage2KHR")) return (void *)table->CmdCopyImage2KHR;
2476 if (!strcmp(name, "CmdCopyBufferToImage2KHR")) return (void *)table->CmdCopyBufferToImage2KHR;
2477 if (!strcmp(name, "CmdCopyImageToBuffer2KHR")) return (void *)table->CmdCopyImageToBuffer2KHR;
2478 if (!strcmp(name, "CmdBlitImage2KHR")) return (void *)table->CmdBlitImage2KHR;
2479 if (!strcmp(name, "CmdResolveImage2KHR")) return (void *)table->CmdResolveImage2KHR;
2480
2481 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
2482 if (!strcmp(name, "CmdTraceRaysIndirect2KHR")) return (void *)table->CmdTraceRaysIndirect2KHR;
2483
2484 // ---- VK_KHR_maintenance4 extension commands
2485 if (!strcmp(name, "GetDeviceBufferMemoryRequirementsKHR")) return (void *)table->GetDeviceBufferMemoryRequirementsKHR;
2486 if (!strcmp(name, "GetDeviceImageMemoryRequirementsKHR")) return (void *)table->GetDeviceImageMemoryRequirementsKHR;
2487 if (!strcmp(name, "GetDeviceImageSparseMemoryRequirementsKHR")) return (void *)table->GetDeviceImageSparseMemoryRequirementsKHR;
2488
2489 // ---- VK_KHR_maintenance5 extension commands
2490 if (!strcmp(name, "CmdBindIndexBuffer2KHR")) return (void *)table->CmdBindIndexBuffer2KHR;
2491 if (!strcmp(name, "GetRenderingAreaGranularityKHR")) return (void *)table->GetRenderingAreaGranularityKHR;
2492 if (!strcmp(name, "GetDeviceImageSubresourceLayoutKHR")) return (void *)table->GetDeviceImageSubresourceLayoutKHR;
2493 if (!strcmp(name, "GetImageSubresourceLayout2KHR")) return (void *)table->GetImageSubresourceLayout2KHR;
2494
2495 // ---- VK_KHR_calibrated_timestamps extension commands
2496 if (!strcmp(name, "GetCalibratedTimestampsKHR")) return (void *)table->GetCalibratedTimestampsKHR;
2497
2498 // ---- VK_KHR_maintenance6 extension commands
2499 if (!strcmp(name, "CmdBindDescriptorSets2KHR")) return (void *)table->CmdBindDescriptorSets2KHR;
2500 if (!strcmp(name, "CmdPushConstants2KHR")) return (void *)table->CmdPushConstants2KHR;
2501 if (!strcmp(name, "CmdPushDescriptorSet2KHR")) return (void *)table->CmdPushDescriptorSet2KHR;
2502 if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2KHR")) return (void *)table->CmdPushDescriptorSetWithTemplate2KHR;
2503 if (!strcmp(name, "CmdSetDescriptorBufferOffsets2EXT")) return (void *)table->CmdSetDescriptorBufferOffsets2EXT;
2504 if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplers2EXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplers2EXT;
2505
2506 // ---- VK_EXT_debug_marker extension commands
2507 if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectTagEXT : NULL;
2508 if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectNameEXT : NULL;
2509 if (!strcmp(name, "CmdDebugMarkerBeginEXT")) return (void *)table->CmdDebugMarkerBeginEXT;
2510 if (!strcmp(name, "CmdDebugMarkerEndEXT")) return (void *)table->CmdDebugMarkerEndEXT;
2511 if (!strcmp(name, "CmdDebugMarkerInsertEXT")) return (void *)table->CmdDebugMarkerInsertEXT;
2512
2513 // ---- VK_EXT_transform_feedback extension commands
2514 if (!strcmp(name, "CmdBindTransformFeedbackBuffersEXT")) return (void *)table->CmdBindTransformFeedbackBuffersEXT;
2515 if (!strcmp(name, "CmdBeginTransformFeedbackEXT")) return (void *)table->CmdBeginTransformFeedbackEXT;
2516 if (!strcmp(name, "CmdEndTransformFeedbackEXT")) return (void *)table->CmdEndTransformFeedbackEXT;
2517 if (!strcmp(name, "CmdBeginQueryIndexedEXT")) return (void *)table->CmdBeginQueryIndexedEXT;
2518 if (!strcmp(name, "CmdEndQueryIndexedEXT")) return (void *)table->CmdEndQueryIndexedEXT;
2519 if (!strcmp(name, "CmdDrawIndirectByteCountEXT")) return (void *)table->CmdDrawIndirectByteCountEXT;
2520
2521 // ---- VK_NVX_binary_import extension commands
2522 if (!strcmp(name, "CreateCuModuleNVX")) return (void *)table->CreateCuModuleNVX;
2523 if (!strcmp(name, "CreateCuFunctionNVX")) return (void *)table->CreateCuFunctionNVX;
2524 if (!strcmp(name, "DestroyCuModuleNVX")) return (void *)table->DestroyCuModuleNVX;
2525 if (!strcmp(name, "DestroyCuFunctionNVX")) return (void *)table->DestroyCuFunctionNVX;
2526 if (!strcmp(name, "CmdCuLaunchKernelNVX")) return (void *)table->CmdCuLaunchKernelNVX;
2527
2528 // ---- VK_NVX_image_view_handle extension commands
2529 if (!strcmp(name, "GetImageViewHandleNVX")) return (void *)table->GetImageViewHandleNVX;
2530 if (!strcmp(name, "GetImageViewAddressNVX")) return (void *)table->GetImageViewAddressNVX;
2531
2532 // ---- VK_AMD_draw_indirect_count extension commands
2533 if (!strcmp(name, "CmdDrawIndirectCountAMD")) return (void *)table->CmdDrawIndirectCountAMD;
2534 if (!strcmp(name, "CmdDrawIndexedIndirectCountAMD")) return (void *)table->CmdDrawIndexedIndirectCountAMD;
2535
2536 // ---- VK_AMD_shader_info extension commands
2537 if (!strcmp(name, "GetShaderInfoAMD")) return (void *)table->GetShaderInfoAMD;
2538
2539 // ---- VK_NV_external_memory_win32 extension commands
2540 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2541 if (!strcmp(name, "GetMemoryWin32HandleNV")) return (void *)table->GetMemoryWin32HandleNV;
2542 #endif // VK_USE_PLATFORM_WIN32_KHR
2543
2544 // ---- VK_EXT_conditional_rendering extension commands
2545 if (!strcmp(name, "CmdBeginConditionalRenderingEXT")) return (void *)table->CmdBeginConditionalRenderingEXT;
2546 if (!strcmp(name, "CmdEndConditionalRenderingEXT")) return (void *)table->CmdEndConditionalRenderingEXT;
2547
2548 // ---- VK_NV_clip_space_w_scaling extension commands
2549 if (!strcmp(name, "CmdSetViewportWScalingNV")) return (void *)table->CmdSetViewportWScalingNV;
2550
2551 // ---- VK_EXT_display_control extension commands
2552 if (!strcmp(name, "DisplayPowerControlEXT")) return (void *)table->DisplayPowerControlEXT;
2553 if (!strcmp(name, "RegisterDeviceEventEXT")) return (void *)table->RegisterDeviceEventEXT;
2554 if (!strcmp(name, "RegisterDisplayEventEXT")) return (void *)table->RegisterDisplayEventEXT;
2555 if (!strcmp(name, "GetSwapchainCounterEXT")) return (void *)table->GetSwapchainCounterEXT;
2556
2557 // ---- VK_GOOGLE_display_timing extension commands
2558 if (!strcmp(name, "GetRefreshCycleDurationGOOGLE")) return (void *)table->GetRefreshCycleDurationGOOGLE;
2559 if (!strcmp(name, "GetPastPresentationTimingGOOGLE")) return (void *)table->GetPastPresentationTimingGOOGLE;
2560
2561 // ---- VK_EXT_discard_rectangles extension commands
2562 if (!strcmp(name, "CmdSetDiscardRectangleEXT")) return (void *)table->CmdSetDiscardRectangleEXT;
2563 if (!strcmp(name, "CmdSetDiscardRectangleEnableEXT")) return (void *)table->CmdSetDiscardRectangleEnableEXT;
2564 if (!strcmp(name, "CmdSetDiscardRectangleModeEXT")) return (void *)table->CmdSetDiscardRectangleModeEXT;
2565
2566 // ---- VK_EXT_hdr_metadata extension commands
2567 if (!strcmp(name, "SetHdrMetadataEXT")) return (void *)table->SetHdrMetadataEXT;
2568
2569 // ---- VK_EXT_debug_utils extension commands
2570 if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectNameEXT : NULL;
2571 if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectTagEXT : NULL;
2572 if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) return (void *)table->QueueBeginDebugUtilsLabelEXT;
2573 if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) return (void *)table->QueueEndDebugUtilsLabelEXT;
2574 if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) return (void *)table->QueueInsertDebugUtilsLabelEXT;
2575 if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) return (void *)table->CmdBeginDebugUtilsLabelEXT;
2576 if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) return (void *)table->CmdEndDebugUtilsLabelEXT;
2577 if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) return (void *)table->CmdInsertDebugUtilsLabelEXT;
2578
2579 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
2580 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
2581 if (!strcmp(name, "GetAndroidHardwareBufferPropertiesANDROID")) return (void *)table->GetAndroidHardwareBufferPropertiesANDROID;
2582 #endif // VK_USE_PLATFORM_ANDROID_KHR
2583 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
2584 if (!strcmp(name, "GetMemoryAndroidHardwareBufferANDROID")) return (void *)table->GetMemoryAndroidHardwareBufferANDROID;
2585 #endif // VK_USE_PLATFORM_ANDROID_KHR
2586
2587 // ---- VK_AMDX_shader_enqueue extension commands
2588 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2589 if (!strcmp(name, "CreateExecutionGraphPipelinesAMDX")) return (void *)table->CreateExecutionGraphPipelinesAMDX;
2590 #endif // VK_ENABLE_BETA_EXTENSIONS
2591 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2592 if (!strcmp(name, "GetExecutionGraphPipelineScratchSizeAMDX")) return (void *)table->GetExecutionGraphPipelineScratchSizeAMDX;
2593 #endif // VK_ENABLE_BETA_EXTENSIONS
2594 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2595 if (!strcmp(name, "GetExecutionGraphPipelineNodeIndexAMDX")) return (void *)table->GetExecutionGraphPipelineNodeIndexAMDX;
2596 #endif // VK_ENABLE_BETA_EXTENSIONS
2597 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2598 if (!strcmp(name, "CmdInitializeGraphScratchMemoryAMDX")) return (void *)table->CmdInitializeGraphScratchMemoryAMDX;
2599 #endif // VK_ENABLE_BETA_EXTENSIONS
2600 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2601 if (!strcmp(name, "CmdDispatchGraphAMDX")) return (void *)table->CmdDispatchGraphAMDX;
2602 #endif // VK_ENABLE_BETA_EXTENSIONS
2603 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2604 if (!strcmp(name, "CmdDispatchGraphIndirectAMDX")) return (void *)table->CmdDispatchGraphIndirectAMDX;
2605 #endif // VK_ENABLE_BETA_EXTENSIONS
2606 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2607 if (!strcmp(name, "CmdDispatchGraphIndirectCountAMDX")) return (void *)table->CmdDispatchGraphIndirectCountAMDX;
2608 #endif // VK_ENABLE_BETA_EXTENSIONS
2609
2610 // ---- VK_EXT_sample_locations extension commands
2611 if (!strcmp(name, "CmdSetSampleLocationsEXT")) return (void *)table->CmdSetSampleLocationsEXT;
2612
2613 // ---- VK_EXT_image_drm_format_modifier extension commands
2614 if (!strcmp(name, "GetImageDrmFormatModifierPropertiesEXT")) return (void *)table->GetImageDrmFormatModifierPropertiesEXT;
2615
2616 // ---- VK_EXT_validation_cache extension commands
2617 if (!strcmp(name, "CreateValidationCacheEXT")) return (void *)table->CreateValidationCacheEXT;
2618 if (!strcmp(name, "DestroyValidationCacheEXT")) return (void *)table->DestroyValidationCacheEXT;
2619 if (!strcmp(name, "MergeValidationCachesEXT")) return (void *)table->MergeValidationCachesEXT;
2620 if (!strcmp(name, "GetValidationCacheDataEXT")) return (void *)table->GetValidationCacheDataEXT;
2621
2622 // ---- VK_NV_shading_rate_image extension commands
2623 if (!strcmp(name, "CmdBindShadingRateImageNV")) return (void *)table->CmdBindShadingRateImageNV;
2624 if (!strcmp(name, "CmdSetViewportShadingRatePaletteNV")) return (void *)table->CmdSetViewportShadingRatePaletteNV;
2625 if (!strcmp(name, "CmdSetCoarseSampleOrderNV")) return (void *)table->CmdSetCoarseSampleOrderNV;
2626
2627 // ---- VK_NV_ray_tracing extension commands
2628 if (!strcmp(name, "CreateAccelerationStructureNV")) return (void *)table->CreateAccelerationStructureNV;
2629 if (!strcmp(name, "DestroyAccelerationStructureNV")) return (void *)table->DestroyAccelerationStructureNV;
2630 if (!strcmp(name, "GetAccelerationStructureMemoryRequirementsNV")) return (void *)table->GetAccelerationStructureMemoryRequirementsNV;
2631 if (!strcmp(name, "BindAccelerationStructureMemoryNV")) return (void *)table->BindAccelerationStructureMemoryNV;
2632 if (!strcmp(name, "CmdBuildAccelerationStructureNV")) return (void *)table->CmdBuildAccelerationStructureNV;
2633 if (!strcmp(name, "CmdCopyAccelerationStructureNV")) return (void *)table->CmdCopyAccelerationStructureNV;
2634 if (!strcmp(name, "CmdTraceRaysNV")) return (void *)table->CmdTraceRaysNV;
2635 if (!strcmp(name, "CreateRayTracingPipelinesNV")) return (void *)table->CreateRayTracingPipelinesNV;
2636 if (!strcmp(name, "GetRayTracingShaderGroupHandlesKHR")) return (void *)table->GetRayTracingShaderGroupHandlesKHR;
2637 if (!strcmp(name, "GetRayTracingShaderGroupHandlesNV")) return (void *)table->GetRayTracingShaderGroupHandlesNV;
2638 if (!strcmp(name, "GetAccelerationStructureHandleNV")) return (void *)table->GetAccelerationStructureHandleNV;
2639 if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesNV")) return (void *)table->CmdWriteAccelerationStructuresPropertiesNV;
2640 if (!strcmp(name, "CompileDeferredNV")) return (void *)table->CompileDeferredNV;
2641
2642 // ---- VK_EXT_external_memory_host extension commands
2643 if (!strcmp(name, "GetMemoryHostPointerPropertiesEXT")) return (void *)table->GetMemoryHostPointerPropertiesEXT;
2644
2645 // ---- VK_AMD_buffer_marker extension commands
2646 if (!strcmp(name, "CmdWriteBufferMarkerAMD")) return (void *)table->CmdWriteBufferMarkerAMD;
2647
2648 // ---- VK_EXT_calibrated_timestamps extension commands
2649 if (!strcmp(name, "GetCalibratedTimestampsEXT")) return (void *)table->GetCalibratedTimestampsEXT;
2650
2651 // ---- VK_NV_mesh_shader extension commands
2652 if (!strcmp(name, "CmdDrawMeshTasksNV")) return (void *)table->CmdDrawMeshTasksNV;
2653 if (!strcmp(name, "CmdDrawMeshTasksIndirectNV")) return (void *)table->CmdDrawMeshTasksIndirectNV;
2654 if (!strcmp(name, "CmdDrawMeshTasksIndirectCountNV")) return (void *)table->CmdDrawMeshTasksIndirectCountNV;
2655
2656 // ---- VK_NV_scissor_exclusive extension commands
2657 if (!strcmp(name, "CmdSetExclusiveScissorEnableNV")) return (void *)table->CmdSetExclusiveScissorEnableNV;
2658 if (!strcmp(name, "CmdSetExclusiveScissorNV")) return (void *)table->CmdSetExclusiveScissorNV;
2659
2660 // ---- VK_NV_device_diagnostic_checkpoints extension commands
2661 if (!strcmp(name, "CmdSetCheckpointNV")) return (void *)table->CmdSetCheckpointNV;
2662 if (!strcmp(name, "GetQueueCheckpointDataNV")) return (void *)table->GetQueueCheckpointDataNV;
2663
2664 // ---- VK_INTEL_performance_query extension commands
2665 if (!strcmp(name, "InitializePerformanceApiINTEL")) return (void *)table->InitializePerformanceApiINTEL;
2666 if (!strcmp(name, "UninitializePerformanceApiINTEL")) return (void *)table->UninitializePerformanceApiINTEL;
2667 if (!strcmp(name, "CmdSetPerformanceMarkerINTEL")) return (void *)table->CmdSetPerformanceMarkerINTEL;
2668 if (!strcmp(name, "CmdSetPerformanceStreamMarkerINTEL")) return (void *)table->CmdSetPerformanceStreamMarkerINTEL;
2669 if (!strcmp(name, "CmdSetPerformanceOverrideINTEL")) return (void *)table->CmdSetPerformanceOverrideINTEL;
2670 if (!strcmp(name, "AcquirePerformanceConfigurationINTEL")) return (void *)table->AcquirePerformanceConfigurationINTEL;
2671 if (!strcmp(name, "ReleasePerformanceConfigurationINTEL")) return (void *)table->ReleasePerformanceConfigurationINTEL;
2672 if (!strcmp(name, "QueueSetPerformanceConfigurationINTEL")) return (void *)table->QueueSetPerformanceConfigurationINTEL;
2673 if (!strcmp(name, "GetPerformanceParameterINTEL")) return (void *)table->GetPerformanceParameterINTEL;
2674
2675 // ---- VK_AMD_display_native_hdr extension commands
2676 if (!strcmp(name, "SetLocalDimmingAMD")) return (void *)table->SetLocalDimmingAMD;
2677
2678 // ---- VK_EXT_buffer_device_address extension commands
2679 if (!strcmp(name, "GetBufferDeviceAddressEXT")) return (void *)table->GetBufferDeviceAddressEXT;
2680
2681 // ---- VK_EXT_full_screen_exclusive extension commands
2682 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2683 if (!strcmp(name, "AcquireFullScreenExclusiveModeEXT")) return (void *)table->AcquireFullScreenExclusiveModeEXT;
2684 #endif // VK_USE_PLATFORM_WIN32_KHR
2685 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2686 if (!strcmp(name, "ReleaseFullScreenExclusiveModeEXT")) return (void *)table->ReleaseFullScreenExclusiveModeEXT;
2687 #endif // VK_USE_PLATFORM_WIN32_KHR
2688 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2689 if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) return (void *)table->GetDeviceGroupSurfacePresentModes2EXT;
2690 #endif // VK_USE_PLATFORM_WIN32_KHR
2691
2692 // ---- VK_EXT_line_rasterization extension commands
2693 if (!strcmp(name, "CmdSetLineStippleEXT")) return (void *)table->CmdSetLineStippleEXT;
2694
2695 // ---- VK_EXT_host_query_reset extension commands
2696 if (!strcmp(name, "ResetQueryPoolEXT")) return (void *)table->ResetQueryPoolEXT;
2697
2698 // ---- VK_EXT_extended_dynamic_state extension commands
2699 if (!strcmp(name, "CmdSetCullModeEXT")) return (void *)table->CmdSetCullModeEXT;
2700 if (!strcmp(name, "CmdSetFrontFaceEXT")) return (void *)table->CmdSetFrontFaceEXT;
2701 if (!strcmp(name, "CmdSetPrimitiveTopologyEXT")) return (void *)table->CmdSetPrimitiveTopologyEXT;
2702 if (!strcmp(name, "CmdSetViewportWithCountEXT")) return (void *)table->CmdSetViewportWithCountEXT;
2703 if (!strcmp(name, "CmdSetScissorWithCountEXT")) return (void *)table->CmdSetScissorWithCountEXT;
2704 if (!strcmp(name, "CmdBindVertexBuffers2EXT")) return (void *)table->CmdBindVertexBuffers2EXT;
2705 if (!strcmp(name, "CmdSetDepthTestEnableEXT")) return (void *)table->CmdSetDepthTestEnableEXT;
2706 if (!strcmp(name, "CmdSetDepthWriteEnableEXT")) return (void *)table->CmdSetDepthWriteEnableEXT;
2707 if (!strcmp(name, "CmdSetDepthCompareOpEXT")) return (void *)table->CmdSetDepthCompareOpEXT;
2708 if (!strcmp(name, "CmdSetDepthBoundsTestEnableEXT")) return (void *)table->CmdSetDepthBoundsTestEnableEXT;
2709 if (!strcmp(name, "CmdSetStencilTestEnableEXT")) return (void *)table->CmdSetStencilTestEnableEXT;
2710 if (!strcmp(name, "CmdSetStencilOpEXT")) return (void *)table->CmdSetStencilOpEXT;
2711
2712 // ---- VK_EXT_host_image_copy extension commands
2713 if (!strcmp(name, "CopyMemoryToImageEXT")) return (void *)table->CopyMemoryToImageEXT;
2714 if (!strcmp(name, "CopyImageToMemoryEXT")) return (void *)table->CopyImageToMemoryEXT;
2715 if (!strcmp(name, "CopyImageToImageEXT")) return (void *)table->CopyImageToImageEXT;
2716 if (!strcmp(name, "TransitionImageLayoutEXT")) return (void *)table->TransitionImageLayoutEXT;
2717 if (!strcmp(name, "GetImageSubresourceLayout2EXT")) return (void *)table->GetImageSubresourceLayout2EXT;
2718
2719 // ---- VK_EXT_swapchain_maintenance1 extension commands
2720 if (!strcmp(name, "ReleaseSwapchainImagesEXT")) return (void *)table->ReleaseSwapchainImagesEXT;
2721
2722 // ---- VK_NV_device_generated_commands extension commands
2723 if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsNV")) return (void *)table->GetGeneratedCommandsMemoryRequirementsNV;
2724 if (!strcmp(name, "CmdPreprocessGeneratedCommandsNV")) return (void *)table->CmdPreprocessGeneratedCommandsNV;
2725 if (!strcmp(name, "CmdExecuteGeneratedCommandsNV")) return (void *)table->CmdExecuteGeneratedCommandsNV;
2726 if (!strcmp(name, "CmdBindPipelineShaderGroupNV")) return (void *)table->CmdBindPipelineShaderGroupNV;
2727 if (!strcmp(name, "CreateIndirectCommandsLayoutNV")) return (void *)table->CreateIndirectCommandsLayoutNV;
2728 if (!strcmp(name, "DestroyIndirectCommandsLayoutNV")) return (void *)table->DestroyIndirectCommandsLayoutNV;
2729
2730 // ---- VK_EXT_depth_bias_control extension commands
2731 if (!strcmp(name, "CmdSetDepthBias2EXT")) return (void *)table->CmdSetDepthBias2EXT;
2732
2733 // ---- VK_EXT_private_data extension commands
2734 if (!strcmp(name, "CreatePrivateDataSlotEXT")) return (void *)table->CreatePrivateDataSlotEXT;
2735 if (!strcmp(name, "DestroyPrivateDataSlotEXT")) return (void *)table->DestroyPrivateDataSlotEXT;
2736 if (!strcmp(name, "SetPrivateDataEXT")) return (void *)table->SetPrivateDataEXT;
2737 if (!strcmp(name, "GetPrivateDataEXT")) return (void *)table->GetPrivateDataEXT;
2738
2739 // ---- VK_NV_cuda_kernel_launch extension commands
2740 if (!strcmp(name, "CreateCudaModuleNV")) return (void *)table->CreateCudaModuleNV;
2741 if (!strcmp(name, "GetCudaModuleCacheNV")) return (void *)table->GetCudaModuleCacheNV;
2742 if (!strcmp(name, "CreateCudaFunctionNV")) return (void *)table->CreateCudaFunctionNV;
2743 if (!strcmp(name, "DestroyCudaModuleNV")) return (void *)table->DestroyCudaModuleNV;
2744 if (!strcmp(name, "DestroyCudaFunctionNV")) return (void *)table->DestroyCudaFunctionNV;
2745 if (!strcmp(name, "CmdCudaLaunchKernelNV")) return (void *)table->CmdCudaLaunchKernelNV;
2746
2747 // ---- VK_EXT_metal_objects extension commands
2748 #if defined(VK_USE_PLATFORM_METAL_EXT)
2749 if (!strcmp(name, "ExportMetalObjectsEXT")) return (void *)table->ExportMetalObjectsEXT;
2750 #endif // VK_USE_PLATFORM_METAL_EXT
2751
2752 // ---- VK_EXT_descriptor_buffer extension commands
2753 if (!strcmp(name, "GetDescriptorSetLayoutSizeEXT")) return (void *)table->GetDescriptorSetLayoutSizeEXT;
2754 if (!strcmp(name, "GetDescriptorSetLayoutBindingOffsetEXT")) return (void *)table->GetDescriptorSetLayoutBindingOffsetEXT;
2755 if (!strcmp(name, "GetDescriptorEXT")) return (void *)table->GetDescriptorEXT;
2756 if (!strcmp(name, "CmdBindDescriptorBuffersEXT")) return (void *)table->CmdBindDescriptorBuffersEXT;
2757 if (!strcmp(name, "CmdSetDescriptorBufferOffsetsEXT")) return (void *)table->CmdSetDescriptorBufferOffsetsEXT;
2758 if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplersEXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplersEXT;
2759 if (!strcmp(name, "GetBufferOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetBufferOpaqueCaptureDescriptorDataEXT;
2760 if (!strcmp(name, "GetImageOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageOpaqueCaptureDescriptorDataEXT;
2761 if (!strcmp(name, "GetImageViewOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageViewOpaqueCaptureDescriptorDataEXT;
2762 if (!strcmp(name, "GetSamplerOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetSamplerOpaqueCaptureDescriptorDataEXT;
2763 if (!strcmp(name, "GetAccelerationStructureOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
2764
2765 // ---- VK_NV_fragment_shading_rate_enums extension commands
2766 if (!strcmp(name, "CmdSetFragmentShadingRateEnumNV")) return (void *)table->CmdSetFragmentShadingRateEnumNV;
2767
2768 // ---- VK_EXT_device_fault extension commands
2769 if (!strcmp(name, "GetDeviceFaultInfoEXT")) return (void *)table->GetDeviceFaultInfoEXT;
2770
2771 // ---- VK_EXT_vertex_input_dynamic_state extension commands
2772 if (!strcmp(name, "CmdSetVertexInputEXT")) return (void *)table->CmdSetVertexInputEXT;
2773
2774 // ---- VK_FUCHSIA_external_memory extension commands
2775 #if defined(VK_USE_PLATFORM_FUCHSIA)
2776 if (!strcmp(name, "GetMemoryZirconHandleFUCHSIA")) return (void *)table->GetMemoryZirconHandleFUCHSIA;
2777 #endif // VK_USE_PLATFORM_FUCHSIA
2778 #if defined(VK_USE_PLATFORM_FUCHSIA)
2779 if (!strcmp(name, "GetMemoryZirconHandlePropertiesFUCHSIA")) return (void *)table->GetMemoryZirconHandlePropertiesFUCHSIA;
2780 #endif // VK_USE_PLATFORM_FUCHSIA
2781
2782 // ---- VK_FUCHSIA_external_semaphore extension commands
2783 #if defined(VK_USE_PLATFORM_FUCHSIA)
2784 if (!strcmp(name, "ImportSemaphoreZirconHandleFUCHSIA")) return (void *)table->ImportSemaphoreZirconHandleFUCHSIA;
2785 #endif // VK_USE_PLATFORM_FUCHSIA
2786 #if defined(VK_USE_PLATFORM_FUCHSIA)
2787 if (!strcmp(name, "GetSemaphoreZirconHandleFUCHSIA")) return (void *)table->GetSemaphoreZirconHandleFUCHSIA;
2788 #endif // VK_USE_PLATFORM_FUCHSIA
2789
2790 // ---- VK_FUCHSIA_buffer_collection extension commands
2791 #if defined(VK_USE_PLATFORM_FUCHSIA)
2792 if (!strcmp(name, "CreateBufferCollectionFUCHSIA")) return (void *)table->CreateBufferCollectionFUCHSIA;
2793 #endif // VK_USE_PLATFORM_FUCHSIA
2794 #if defined(VK_USE_PLATFORM_FUCHSIA)
2795 if (!strcmp(name, "SetBufferCollectionImageConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionImageConstraintsFUCHSIA;
2796 #endif // VK_USE_PLATFORM_FUCHSIA
2797 #if defined(VK_USE_PLATFORM_FUCHSIA)
2798 if (!strcmp(name, "SetBufferCollectionBufferConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionBufferConstraintsFUCHSIA;
2799 #endif // VK_USE_PLATFORM_FUCHSIA
2800 #if defined(VK_USE_PLATFORM_FUCHSIA)
2801 if (!strcmp(name, "DestroyBufferCollectionFUCHSIA")) return (void *)table->DestroyBufferCollectionFUCHSIA;
2802 #endif // VK_USE_PLATFORM_FUCHSIA
2803 #if defined(VK_USE_PLATFORM_FUCHSIA)
2804 if (!strcmp(name, "GetBufferCollectionPropertiesFUCHSIA")) return (void *)table->GetBufferCollectionPropertiesFUCHSIA;
2805 #endif // VK_USE_PLATFORM_FUCHSIA
2806
2807 // ---- VK_HUAWEI_subpass_shading extension commands
2808 if (!strcmp(name, "GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) return (void *)table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
2809 if (!strcmp(name, "CmdSubpassShadingHUAWEI")) return (void *)table->CmdSubpassShadingHUAWEI;
2810
2811 // ---- VK_HUAWEI_invocation_mask extension commands
2812 if (!strcmp(name, "CmdBindInvocationMaskHUAWEI")) return (void *)table->CmdBindInvocationMaskHUAWEI;
2813
2814 // ---- VK_NV_external_memory_rdma extension commands
2815 if (!strcmp(name, "GetMemoryRemoteAddressNV")) return (void *)table->GetMemoryRemoteAddressNV;
2816
2817 // ---- VK_EXT_pipeline_properties extension commands
2818 if (!strcmp(name, "GetPipelinePropertiesEXT")) return (void *)table->GetPipelinePropertiesEXT;
2819
2820 // ---- VK_EXT_extended_dynamic_state2 extension commands
2821 if (!strcmp(name, "CmdSetPatchControlPointsEXT")) return (void *)table->CmdSetPatchControlPointsEXT;
2822 if (!strcmp(name, "CmdSetRasterizerDiscardEnableEXT")) return (void *)table->CmdSetRasterizerDiscardEnableEXT;
2823 if (!strcmp(name, "CmdSetDepthBiasEnableEXT")) return (void *)table->CmdSetDepthBiasEnableEXT;
2824 if (!strcmp(name, "CmdSetLogicOpEXT")) return (void *)table->CmdSetLogicOpEXT;
2825 if (!strcmp(name, "CmdSetPrimitiveRestartEnableEXT")) return (void *)table->CmdSetPrimitiveRestartEnableEXT;
2826
2827 // ---- VK_EXT_color_write_enable extension commands
2828 if (!strcmp(name, "CmdSetColorWriteEnableEXT")) return (void *)table->CmdSetColorWriteEnableEXT;
2829
2830 // ---- VK_EXT_multi_draw extension commands
2831 if (!strcmp(name, "CmdDrawMultiEXT")) return (void *)table->CmdDrawMultiEXT;
2832 if (!strcmp(name, "CmdDrawMultiIndexedEXT")) return (void *)table->CmdDrawMultiIndexedEXT;
2833
2834 // ---- VK_EXT_opacity_micromap extension commands
2835 if (!strcmp(name, "CreateMicromapEXT")) return (void *)table->CreateMicromapEXT;
2836 if (!strcmp(name, "DestroyMicromapEXT")) return (void *)table->DestroyMicromapEXT;
2837 if (!strcmp(name, "CmdBuildMicromapsEXT")) return (void *)table->CmdBuildMicromapsEXT;
2838 if (!strcmp(name, "BuildMicromapsEXT")) return (void *)table->BuildMicromapsEXT;
2839 if (!strcmp(name, "CopyMicromapEXT")) return (void *)table->CopyMicromapEXT;
2840 if (!strcmp(name, "CopyMicromapToMemoryEXT")) return (void *)table->CopyMicromapToMemoryEXT;
2841 if (!strcmp(name, "CopyMemoryToMicromapEXT")) return (void *)table->CopyMemoryToMicromapEXT;
2842 if (!strcmp(name, "WriteMicromapsPropertiesEXT")) return (void *)table->WriteMicromapsPropertiesEXT;
2843 if (!strcmp(name, "CmdCopyMicromapEXT")) return (void *)table->CmdCopyMicromapEXT;
2844 if (!strcmp(name, "CmdCopyMicromapToMemoryEXT")) return (void *)table->CmdCopyMicromapToMemoryEXT;
2845 if (!strcmp(name, "CmdCopyMemoryToMicromapEXT")) return (void *)table->CmdCopyMemoryToMicromapEXT;
2846 if (!strcmp(name, "CmdWriteMicromapsPropertiesEXT")) return (void *)table->CmdWriteMicromapsPropertiesEXT;
2847 if (!strcmp(name, "GetDeviceMicromapCompatibilityEXT")) return (void *)table->GetDeviceMicromapCompatibilityEXT;
2848 if (!strcmp(name, "GetMicromapBuildSizesEXT")) return (void *)table->GetMicromapBuildSizesEXT;
2849
2850 // ---- VK_HUAWEI_cluster_culling_shader extension commands
2851 if (!strcmp(name, "CmdDrawClusterHUAWEI")) return (void *)table->CmdDrawClusterHUAWEI;
2852 if (!strcmp(name, "CmdDrawClusterIndirectHUAWEI")) return (void *)table->CmdDrawClusterIndirectHUAWEI;
2853
2854 // ---- VK_EXT_pageable_device_local_memory extension commands
2855 if (!strcmp(name, "SetDeviceMemoryPriorityEXT")) return (void *)table->SetDeviceMemoryPriorityEXT;
2856
2857 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
2858 if (!strcmp(name, "GetDescriptorSetLayoutHostMappingInfoVALVE")) return (void *)table->GetDescriptorSetLayoutHostMappingInfoVALVE;
2859 if (!strcmp(name, "GetDescriptorSetHostMappingVALVE")) return (void *)table->GetDescriptorSetHostMappingVALVE;
2860
2861 // ---- VK_NV_copy_memory_indirect extension commands
2862 if (!strcmp(name, "CmdCopyMemoryIndirectNV")) return (void *)table->CmdCopyMemoryIndirectNV;
2863 if (!strcmp(name, "CmdCopyMemoryToImageIndirectNV")) return (void *)table->CmdCopyMemoryToImageIndirectNV;
2864
2865 // ---- VK_NV_memory_decompression extension commands
2866 if (!strcmp(name, "CmdDecompressMemoryNV")) return (void *)table->CmdDecompressMemoryNV;
2867 if (!strcmp(name, "CmdDecompressMemoryIndirectCountNV")) return (void *)table->CmdDecompressMemoryIndirectCountNV;
2868
2869 // ---- VK_NV_device_generated_commands_compute extension commands
2870 if (!strcmp(name, "GetPipelineIndirectMemoryRequirementsNV")) return (void *)table->GetPipelineIndirectMemoryRequirementsNV;
2871 if (!strcmp(name, "CmdUpdatePipelineIndirectBufferNV")) return (void *)table->CmdUpdatePipelineIndirectBufferNV;
2872 if (!strcmp(name, "GetPipelineIndirectDeviceAddressNV")) return (void *)table->GetPipelineIndirectDeviceAddressNV;
2873
2874 // ---- VK_EXT_extended_dynamic_state3 extension commands
2875 if (!strcmp(name, "CmdSetTessellationDomainOriginEXT")) return (void *)table->CmdSetTessellationDomainOriginEXT;
2876 if (!strcmp(name, "CmdSetDepthClampEnableEXT")) return (void *)table->CmdSetDepthClampEnableEXT;
2877 if (!strcmp(name, "CmdSetPolygonModeEXT")) return (void *)table->CmdSetPolygonModeEXT;
2878 if (!strcmp(name, "CmdSetRasterizationSamplesEXT")) return (void *)table->CmdSetRasterizationSamplesEXT;
2879 if (!strcmp(name, "CmdSetSampleMaskEXT")) return (void *)table->CmdSetSampleMaskEXT;
2880 if (!strcmp(name, "CmdSetAlphaToCoverageEnableEXT")) return (void *)table->CmdSetAlphaToCoverageEnableEXT;
2881 if (!strcmp(name, "CmdSetAlphaToOneEnableEXT")) return (void *)table->CmdSetAlphaToOneEnableEXT;
2882 if (!strcmp(name, "CmdSetLogicOpEnableEXT")) return (void *)table->CmdSetLogicOpEnableEXT;
2883 if (!strcmp(name, "CmdSetColorBlendEnableEXT")) return (void *)table->CmdSetColorBlendEnableEXT;
2884 if (!strcmp(name, "CmdSetColorBlendEquationEXT")) return (void *)table->CmdSetColorBlendEquationEXT;
2885 if (!strcmp(name, "CmdSetColorWriteMaskEXT")) return (void *)table->CmdSetColorWriteMaskEXT;
2886 if (!strcmp(name, "CmdSetRasterizationStreamEXT")) return (void *)table->CmdSetRasterizationStreamEXT;
2887 if (!strcmp(name, "CmdSetConservativeRasterizationModeEXT")) return (void *)table->CmdSetConservativeRasterizationModeEXT;
2888 if (!strcmp(name, "CmdSetExtraPrimitiveOverestimationSizeEXT")) return (void *)table->CmdSetExtraPrimitiveOverestimationSizeEXT;
2889 if (!strcmp(name, "CmdSetDepthClipEnableEXT")) return (void *)table->CmdSetDepthClipEnableEXT;
2890 if (!strcmp(name, "CmdSetSampleLocationsEnableEXT")) return (void *)table->CmdSetSampleLocationsEnableEXT;
2891 if (!strcmp(name, "CmdSetColorBlendAdvancedEXT")) return (void *)table->CmdSetColorBlendAdvancedEXT;
2892 if (!strcmp(name, "CmdSetProvokingVertexModeEXT")) return (void *)table->CmdSetProvokingVertexModeEXT;
2893 if (!strcmp(name, "CmdSetLineRasterizationModeEXT")) return (void *)table->CmdSetLineRasterizationModeEXT;
2894 if (!strcmp(name, "CmdSetLineStippleEnableEXT")) return (void *)table->CmdSetLineStippleEnableEXT;
2895 if (!strcmp(name, "CmdSetDepthClipNegativeOneToOneEXT")) return (void *)table->CmdSetDepthClipNegativeOneToOneEXT;
2896 if (!strcmp(name, "CmdSetViewportWScalingEnableNV")) return (void *)table->CmdSetViewportWScalingEnableNV;
2897 if (!strcmp(name, "CmdSetViewportSwizzleNV")) return (void *)table->CmdSetViewportSwizzleNV;
2898 if (!strcmp(name, "CmdSetCoverageToColorEnableNV")) return (void *)table->CmdSetCoverageToColorEnableNV;
2899 if (!strcmp(name, "CmdSetCoverageToColorLocationNV")) return (void *)table->CmdSetCoverageToColorLocationNV;
2900 if (!strcmp(name, "CmdSetCoverageModulationModeNV")) return (void *)table->CmdSetCoverageModulationModeNV;
2901 if (!strcmp(name, "CmdSetCoverageModulationTableEnableNV")) return (void *)table->CmdSetCoverageModulationTableEnableNV;
2902 if (!strcmp(name, "CmdSetCoverageModulationTableNV")) return (void *)table->CmdSetCoverageModulationTableNV;
2903 if (!strcmp(name, "CmdSetShadingRateImageEnableNV")) return (void *)table->CmdSetShadingRateImageEnableNV;
2904 if (!strcmp(name, "CmdSetRepresentativeFragmentTestEnableNV")) return (void *)table->CmdSetRepresentativeFragmentTestEnableNV;
2905 if (!strcmp(name, "CmdSetCoverageReductionModeNV")) return (void *)table->CmdSetCoverageReductionModeNV;
2906
2907 // ---- VK_EXT_shader_module_identifier extension commands
2908 if (!strcmp(name, "GetShaderModuleIdentifierEXT")) return (void *)table->GetShaderModuleIdentifierEXT;
2909 if (!strcmp(name, "GetShaderModuleCreateInfoIdentifierEXT")) return (void *)table->GetShaderModuleCreateInfoIdentifierEXT;
2910
2911 // ---- VK_NV_optical_flow extension commands
2912 if (!strcmp(name, "CreateOpticalFlowSessionNV")) return (void *)table->CreateOpticalFlowSessionNV;
2913 if (!strcmp(name, "DestroyOpticalFlowSessionNV")) return (void *)table->DestroyOpticalFlowSessionNV;
2914 if (!strcmp(name, "BindOpticalFlowSessionImageNV")) return (void *)table->BindOpticalFlowSessionImageNV;
2915 if (!strcmp(name, "CmdOpticalFlowExecuteNV")) return (void *)table->CmdOpticalFlowExecuteNV;
2916
2917 // ---- VK_EXT_shader_object extension commands
2918 if (!strcmp(name, "CreateShadersEXT")) return (void *)table->CreateShadersEXT;
2919 if (!strcmp(name, "DestroyShaderEXT")) return (void *)table->DestroyShaderEXT;
2920 if (!strcmp(name, "GetShaderBinaryDataEXT")) return (void *)table->GetShaderBinaryDataEXT;
2921 if (!strcmp(name, "CmdBindShadersEXT")) return (void *)table->CmdBindShadersEXT;
2922
2923 // ---- VK_QCOM_tile_properties extension commands
2924 if (!strcmp(name, "GetFramebufferTilePropertiesQCOM")) return (void *)table->GetFramebufferTilePropertiesQCOM;
2925 if (!strcmp(name, "GetDynamicRenderingTilePropertiesQCOM")) return (void *)table->GetDynamicRenderingTilePropertiesQCOM;
2926
2927 // ---- VK_NV_low_latency2 extension commands
2928 if (!strcmp(name, "SetLatencySleepModeNV")) return (void *)table->SetLatencySleepModeNV;
2929 if (!strcmp(name, "LatencySleepNV")) return (void *)table->LatencySleepNV;
2930 if (!strcmp(name, "SetLatencyMarkerNV")) return (void *)table->SetLatencyMarkerNV;
2931 if (!strcmp(name, "GetLatencyTimingsNV")) return (void *)table->GetLatencyTimingsNV;
2932 if (!strcmp(name, "QueueNotifyOutOfBandNV")) return (void *)table->QueueNotifyOutOfBandNV;
2933
2934 // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
2935 if (!strcmp(name, "CmdSetAttachmentFeedbackLoopEnableEXT")) return (void *)table->CmdSetAttachmentFeedbackLoopEnableEXT;
2936
2937 // ---- VK_QNX_external_memory_screen_buffer extension commands
2938 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
2939 if (!strcmp(name, "GetScreenBufferPropertiesQNX")) return (void *)table->GetScreenBufferPropertiesQNX;
2940 #endif // VK_USE_PLATFORM_SCREEN_QNX
2941
2942 // ---- VK_KHR_acceleration_structure extension commands
2943 if (!strcmp(name, "CreateAccelerationStructureKHR")) return (void *)table->CreateAccelerationStructureKHR;
2944 if (!strcmp(name, "DestroyAccelerationStructureKHR")) return (void *)table->DestroyAccelerationStructureKHR;
2945 if (!strcmp(name, "CmdBuildAccelerationStructuresKHR")) return (void *)table->CmdBuildAccelerationStructuresKHR;
2946 if (!strcmp(name, "CmdBuildAccelerationStructuresIndirectKHR")) return (void *)table->CmdBuildAccelerationStructuresIndirectKHR;
2947 if (!strcmp(name, "BuildAccelerationStructuresKHR")) return (void *)table->BuildAccelerationStructuresKHR;
2948 if (!strcmp(name, "CopyAccelerationStructureKHR")) return (void *)table->CopyAccelerationStructureKHR;
2949 if (!strcmp(name, "CopyAccelerationStructureToMemoryKHR")) return (void *)table->CopyAccelerationStructureToMemoryKHR;
2950 if (!strcmp(name, "CopyMemoryToAccelerationStructureKHR")) return (void *)table->CopyMemoryToAccelerationStructureKHR;
2951 if (!strcmp(name, "WriteAccelerationStructuresPropertiesKHR")) return (void *)table->WriteAccelerationStructuresPropertiesKHR;
2952 if (!strcmp(name, "CmdCopyAccelerationStructureKHR")) return (void *)table->CmdCopyAccelerationStructureKHR;
2953 if (!strcmp(name, "CmdCopyAccelerationStructureToMemoryKHR")) return (void *)table->CmdCopyAccelerationStructureToMemoryKHR;
2954 if (!strcmp(name, "CmdCopyMemoryToAccelerationStructureKHR")) return (void *)table->CmdCopyMemoryToAccelerationStructureKHR;
2955 if (!strcmp(name, "GetAccelerationStructureDeviceAddressKHR")) return (void *)table->GetAccelerationStructureDeviceAddressKHR;
2956 if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesKHR")) return (void *)table->CmdWriteAccelerationStructuresPropertiesKHR;
2957 if (!strcmp(name, "GetDeviceAccelerationStructureCompatibilityKHR")) return (void *)table->GetDeviceAccelerationStructureCompatibilityKHR;
2958 if (!strcmp(name, "GetAccelerationStructureBuildSizesKHR")) return (void *)table->GetAccelerationStructureBuildSizesKHR;
2959
2960 // ---- VK_KHR_ray_tracing_pipeline extension commands
2961 if (!strcmp(name, "CmdTraceRaysKHR")) return (void *)table->CmdTraceRaysKHR;
2962 if (!strcmp(name, "CreateRayTracingPipelinesKHR")) return (void *)table->CreateRayTracingPipelinesKHR;
2963 if (!strcmp(name, "GetRayTracingCaptureReplayShaderGroupHandlesKHR")) return (void *)table->GetRayTracingCaptureReplayShaderGroupHandlesKHR;
2964 if (!strcmp(name, "CmdTraceRaysIndirectKHR")) return (void *)table->CmdTraceRaysIndirectKHR;
2965 if (!strcmp(name, "GetRayTracingShaderGroupStackSizeKHR")) return (void *)table->GetRayTracingShaderGroupStackSizeKHR;
2966 if (!strcmp(name, "CmdSetRayTracingPipelineStackSizeKHR")) return (void *)table->CmdSetRayTracingPipelineStackSizeKHR;
2967
2968 // ---- VK_EXT_mesh_shader extension commands
2969 if (!strcmp(name, "CmdDrawMeshTasksEXT")) return (void *)table->CmdDrawMeshTasksEXT;
2970 if (!strcmp(name, "CmdDrawMeshTasksIndirectEXT")) return (void *)table->CmdDrawMeshTasksIndirectEXT;
2971 if (!strcmp(name, "CmdDrawMeshTasksIndirectCountEXT")) return (void *)table->CmdDrawMeshTasksIndirectCountEXT;
2972
2973 // ---- VK_OHOS_native_buffer extension commands
2974 #ifdef VK_USE_PLATFORM_OHOS
2975 if (!strcmp(name, "GetSwapchainGrallocUsageOHOS")) return (void *)table->GetSwapchainGrallocUsageOHOS;
2976 #endif // VK_USE_PLATFORM_OHOS
2977 #ifdef VK_USE_PLATFORM_OHOS
2978 if (!strcmp(name, "AcquireImageOHOS")) return (void *)table->AcquireImageOHOS;
2979 #endif // VK_USE_PLATFORM_OHOS
2980 #ifdef VK_USE_PLATFORM_OHOS
2981 if (!strcmp(name, "QueueSignalReleaseImageOHOS")) return (void *)table->QueueSignalReleaseImageOHOS;
2982 #endif // VK_USE_PLATFORM_OHOS
2983
2984 // ---- VK_OHOS_external_memory extension commands
2985 #ifdef VK_USE_PLATFORM_OHOS
2986 if (!strcmp(name, "GetNativeBufferPropertiesOHOS")) return (void *)table->GetNativeBufferPropertiesOHOS;
2987 #endif // VK_USE_PLATFORM_OHOS
2988 #ifdef VK_USE_PLATFORM_OHOS
2989 if (!strcmp(name, "GetMemoryNativeBufferOHOS")) return (void *)table->GetMemoryNativeBufferOHOS;
2990 #endif // VK_USE_PLATFORM_OHOS
2991
2992 *found_name = false;
2993 return NULL;
2994 }
2995
2996 // Instance command lookup function
loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable * table,const char * name,bool * found_name)2997 VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable *table, const char *name,
2998 bool *found_name) {
2999 if (!name || name[0] != 'v' || name[1] != 'k') {
3000 *found_name = false;
3001 return NULL;
3002 }
3003
3004 *found_name = true;
3005 name += 2;
3006
3007 // ---- Core Vulkan 1.0 commands
3008 if (!strcmp(name, "DestroyInstance")) return (void *)table->DestroyInstance;
3009 if (!strcmp(name, "EnumeratePhysicalDevices")) return (void *)table->EnumeratePhysicalDevices;
3010 if (!strcmp(name, "GetPhysicalDeviceFeatures")) return (void *)table->GetPhysicalDeviceFeatures;
3011 if (!strcmp(name, "GetPhysicalDeviceFormatProperties")) return (void *)table->GetPhysicalDeviceFormatProperties;
3012 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties")) return (void *)table->GetPhysicalDeviceImageFormatProperties;
3013 if (!strcmp(name, "GetPhysicalDeviceProperties")) return (void *)table->GetPhysicalDeviceProperties;
3014 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties;
3015 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties")) return (void *)table->GetPhysicalDeviceMemoryProperties;
3016 if (!strcmp(name, "GetInstanceProcAddr")) return (void *)table->GetInstanceProcAddr;
3017 if (!strcmp(name, "EnumerateDeviceExtensionProperties")) return (void *)table->EnumerateDeviceExtensionProperties;
3018 if (!strcmp(name, "EnumerateDeviceLayerProperties")) return (void *)table->EnumerateDeviceLayerProperties;
3019 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties;
3020
3021 // ---- Core Vulkan 1.1 commands
3022 if (!strcmp(name, "EnumeratePhysicalDeviceGroups")) return (void *)table->EnumeratePhysicalDeviceGroups;
3023 if (!strcmp(name, "GetPhysicalDeviceFeatures2")) return (void *)table->GetPhysicalDeviceFeatures2;
3024 if (!strcmp(name, "GetPhysicalDeviceProperties2")) return (void *)table->GetPhysicalDeviceProperties2;
3025 if (!strcmp(name, "GetPhysicalDeviceFormatProperties2")) return (void *)table->GetPhysicalDeviceFormatProperties2;
3026 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2")) return (void *)table->GetPhysicalDeviceImageFormatProperties2;
3027 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2;
3028 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2")) return (void *)table->GetPhysicalDeviceMemoryProperties2;
3029 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2;
3030 if (!strcmp(name, "GetPhysicalDeviceExternalBufferProperties")) return (void *)table->GetPhysicalDeviceExternalBufferProperties;
3031 if (!strcmp(name, "GetPhysicalDeviceExternalFenceProperties")) return (void *)table->GetPhysicalDeviceExternalFenceProperties;
3032 if (!strcmp(name, "GetPhysicalDeviceExternalSemaphoreProperties")) return (void *)table->GetPhysicalDeviceExternalSemaphoreProperties;
3033
3034 // ---- Core Vulkan 1.3 commands
3035 if (!strcmp(name, "GetPhysicalDeviceToolProperties")) return (void *)table->GetPhysicalDeviceToolProperties;
3036
3037 // ---- VK_KHR_surface extension commands
3038 if (!strcmp(name, "DestroySurfaceKHR")) return (void *)table->DestroySurfaceKHR;
3039 if (!strcmp(name, "GetPhysicalDeviceSurfaceSupportKHR")) return (void *)table->GetPhysicalDeviceSurfaceSupportKHR;
3040 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilitiesKHR;
3041 if (!strcmp(name, "GetPhysicalDeviceSurfaceFormatsKHR")) return (void *)table->GetPhysicalDeviceSurfaceFormatsKHR;
3042 if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModesKHR")) return (void *)table->GetPhysicalDeviceSurfacePresentModesKHR;
3043
3044 // ---- VK_KHR_swapchain extension commands
3045 if (!strcmp(name, "GetPhysicalDevicePresentRectanglesKHR")) return (void *)table->GetPhysicalDevicePresentRectanglesKHR;
3046
3047 // ---- VK_KHR_display extension commands
3048 if (!strcmp(name, "GetPhysicalDeviceDisplayPropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPropertiesKHR;
3049 if (!strcmp(name, "GetPhysicalDeviceDisplayPlanePropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPlanePropertiesKHR;
3050 if (!strcmp(name, "GetDisplayPlaneSupportedDisplaysKHR")) return (void *)table->GetDisplayPlaneSupportedDisplaysKHR;
3051 if (!strcmp(name, "GetDisplayModePropertiesKHR")) return (void *)table->GetDisplayModePropertiesKHR;
3052 if (!strcmp(name, "CreateDisplayModeKHR")) return (void *)table->CreateDisplayModeKHR;
3053 if (!strcmp(name, "GetDisplayPlaneCapabilitiesKHR")) return (void *)table->GetDisplayPlaneCapabilitiesKHR;
3054 if (!strcmp(name, "CreateDisplayPlaneSurfaceKHR")) return (void *)table->CreateDisplayPlaneSurfaceKHR;
3055
3056 // ---- VK_KHR_xlib_surface extension commands
3057 #if defined(VK_USE_PLATFORM_XLIB_KHR)
3058 if (!strcmp(name, "CreateXlibSurfaceKHR")) return (void *)table->CreateXlibSurfaceKHR;
3059 #endif // VK_USE_PLATFORM_XLIB_KHR
3060 #if defined(VK_USE_PLATFORM_XLIB_KHR)
3061 if (!strcmp(name, "GetPhysicalDeviceXlibPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXlibPresentationSupportKHR;
3062 #endif // VK_USE_PLATFORM_XLIB_KHR
3063
3064 // ---- VK_KHR_xcb_surface extension commands
3065 #if defined(VK_USE_PLATFORM_XCB_KHR)
3066 if (!strcmp(name, "CreateXcbSurfaceKHR")) return (void *)table->CreateXcbSurfaceKHR;
3067 #endif // VK_USE_PLATFORM_XCB_KHR
3068 #if defined(VK_USE_PLATFORM_XCB_KHR)
3069 if (!strcmp(name, "GetPhysicalDeviceXcbPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXcbPresentationSupportKHR;
3070 #endif // VK_USE_PLATFORM_XCB_KHR
3071
3072 // ---- VK_KHR_wayland_surface extension commands
3073 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3074 if (!strcmp(name, "CreateWaylandSurfaceKHR")) return (void *)table->CreateWaylandSurfaceKHR;
3075 #endif // VK_USE_PLATFORM_WAYLAND_KHR
3076 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3077 if (!strcmp(name, "GetPhysicalDeviceWaylandPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWaylandPresentationSupportKHR;
3078 #endif // VK_USE_PLATFORM_WAYLAND_KHR
3079
3080 // ---- VK_KHR_android_surface extension commands
3081 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
3082 if (!strcmp(name, "CreateAndroidSurfaceKHR")) return (void *)table->CreateAndroidSurfaceKHR;
3083 #endif // VK_USE_PLATFORM_ANDROID_KHR
3084
3085 // ---- VK_KHR_win32_surface extension commands
3086 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3087 if (!strcmp(name, "CreateWin32SurfaceKHR")) return (void *)table->CreateWin32SurfaceKHR;
3088 #endif // VK_USE_PLATFORM_WIN32_KHR
3089 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3090 if (!strcmp(name, "GetPhysicalDeviceWin32PresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWin32PresentationSupportKHR;
3091 #endif // VK_USE_PLATFORM_WIN32_KHR
3092
3093 // ---- VK_KHR_video_queue extension commands
3094 if (!strcmp(name, "GetPhysicalDeviceVideoCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceVideoCapabilitiesKHR;
3095 if (!strcmp(name, "GetPhysicalDeviceVideoFormatPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoFormatPropertiesKHR;
3096
3097 // ---- VK_KHR_get_physical_device_properties2 extension commands
3098 if (!strcmp(name, "GetPhysicalDeviceFeatures2KHR")) return (void *)table->GetPhysicalDeviceFeatures2KHR;
3099 if (!strcmp(name, "GetPhysicalDeviceProperties2KHR")) return (void *)table->GetPhysicalDeviceProperties2KHR;
3100 if (!strcmp(name, "GetPhysicalDeviceFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceFormatProperties2KHR;
3101 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceImageFormatProperties2KHR;
3102 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2KHR")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2KHR;
3103 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2KHR")) return (void *)table->GetPhysicalDeviceMemoryProperties2KHR;
3104 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2KHR;
3105
3106 // ---- VK_KHR_device_group_creation extension commands
3107 if (!strcmp(name, "EnumeratePhysicalDeviceGroupsKHR")) return (void *)table->EnumeratePhysicalDeviceGroupsKHR;
3108
3109 // ---- VK_KHR_external_memory_capabilities extension commands
3110 if (!strcmp(name, "GetPhysicalDeviceExternalBufferPropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalBufferPropertiesKHR;
3111
3112 // ---- VK_KHR_external_semaphore_capabilities extension commands
3113 if (!strcmp(name, "GetPhysicalDeviceExternalSemaphorePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalSemaphorePropertiesKHR;
3114
3115 // ---- VK_KHR_external_fence_capabilities extension commands
3116 if (!strcmp(name, "GetPhysicalDeviceExternalFencePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalFencePropertiesKHR;
3117
3118 // ---- VK_KHR_performance_query extension commands
3119 if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
3120 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) return (void *)table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
3121
3122 // ---- VK_KHR_get_surface_capabilities2 extension commands
3123 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2KHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2KHR;
3124 if (!strcmp(name, "GetPhysicalDeviceSurfaceFormats2KHR")) return (void *)table->GetPhysicalDeviceSurfaceFormats2KHR;
3125
3126 // ---- VK_KHR_get_display_properties2 extension commands
3127 if (!strcmp(name, "GetPhysicalDeviceDisplayProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayProperties2KHR;
3128 if (!strcmp(name, "GetPhysicalDeviceDisplayPlaneProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayPlaneProperties2KHR;
3129 if (!strcmp(name, "GetDisplayModeProperties2KHR")) return (void *)table->GetDisplayModeProperties2KHR;
3130 if (!strcmp(name, "GetDisplayPlaneCapabilities2KHR")) return (void *)table->GetDisplayPlaneCapabilities2KHR;
3131
3132 // ---- VK_KHR_fragment_shading_rate extension commands
3133 if (!strcmp(name, "GetPhysicalDeviceFragmentShadingRatesKHR")) return (void *)table->GetPhysicalDeviceFragmentShadingRatesKHR;
3134
3135 // ---- VK_KHR_video_encode_queue extension commands
3136 if (!strcmp(name, "GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
3137
3138 // ---- VK_KHR_cooperative_matrix extension commands
3139 if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesKHR")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
3140
3141 // ---- VK_KHR_calibrated_timestamps extension commands
3142 if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsKHR")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsKHR;
3143
3144 // ---- VK_EXT_debug_report extension commands
3145 if (!strcmp(name, "CreateDebugReportCallbackEXT")) return (void *)table->CreateDebugReportCallbackEXT;
3146 if (!strcmp(name, "DestroyDebugReportCallbackEXT")) return (void *)table->DestroyDebugReportCallbackEXT;
3147 if (!strcmp(name, "DebugReportMessageEXT")) return (void *)table->DebugReportMessageEXT;
3148
3149 // ---- VK_GGP_stream_descriptor_surface extension commands
3150 #if defined(VK_USE_PLATFORM_GGP)
3151 if (!strcmp(name, "CreateStreamDescriptorSurfaceGGP")) return (void *)table->CreateStreamDescriptorSurfaceGGP;
3152 #endif // VK_USE_PLATFORM_GGP
3153
3154 // ---- VK_NV_external_memory_capabilities extension commands
3155 if (!strcmp(name, "GetPhysicalDeviceExternalImageFormatPropertiesNV")) return (void *)table->GetPhysicalDeviceExternalImageFormatPropertiesNV;
3156
3157 // ---- VK_NN_vi_surface extension commands
3158 #if defined(VK_USE_PLATFORM_VI_NN)
3159 if (!strcmp(name, "CreateViSurfaceNN")) return (void *)table->CreateViSurfaceNN;
3160 #endif // VK_USE_PLATFORM_VI_NN
3161
3162 // ---- VK_EXT_direct_mode_display extension commands
3163 if (!strcmp(name, "ReleaseDisplayEXT")) return (void *)table->ReleaseDisplayEXT;
3164
3165 // ---- VK_EXT_acquire_xlib_display extension commands
3166 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3167 if (!strcmp(name, "AcquireXlibDisplayEXT")) return (void *)table->AcquireXlibDisplayEXT;
3168 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3169 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3170 if (!strcmp(name, "GetRandROutputDisplayEXT")) return (void *)table->GetRandROutputDisplayEXT;
3171 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3172
3173 // ---- VK_EXT_display_surface_counter extension commands
3174 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2EXT")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2EXT;
3175
3176 // ---- VK_MVK_ios_surface extension commands
3177 #if defined(VK_USE_PLATFORM_IOS_MVK)
3178 if (!strcmp(name, "CreateIOSSurfaceMVK")) return (void *)table->CreateIOSSurfaceMVK;
3179 #endif // VK_USE_PLATFORM_IOS_MVK
3180
3181 // ---- VK_MVK_macos_surface extension commands
3182 #if defined(VK_USE_PLATFORM_MACOS_MVK)
3183 if (!strcmp(name, "CreateMacOSSurfaceMVK")) return (void *)table->CreateMacOSSurfaceMVK;
3184 #endif // VK_USE_PLATFORM_MACOS_MVK
3185
3186 // ---- VK_EXT_debug_utils extension commands
3187 if (!strcmp(name, "CreateDebugUtilsMessengerEXT")) return (void *)table->CreateDebugUtilsMessengerEXT;
3188 if (!strcmp(name, "DestroyDebugUtilsMessengerEXT")) return (void *)table->DestroyDebugUtilsMessengerEXT;
3189 if (!strcmp(name, "SubmitDebugUtilsMessageEXT")) return (void *)table->SubmitDebugUtilsMessageEXT;
3190
3191 // ---- VK_EXT_sample_locations extension commands
3192 if (!strcmp(name, "GetPhysicalDeviceMultisamplePropertiesEXT")) return (void *)table->GetPhysicalDeviceMultisamplePropertiesEXT;
3193
3194 // ---- VK_EXT_calibrated_timestamps extension commands
3195 if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsEXT")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsEXT;
3196
3197 // ---- VK_FUCHSIA_imagepipe_surface extension commands
3198 #if defined(VK_USE_PLATFORM_FUCHSIA)
3199 if (!strcmp(name, "CreateImagePipeSurfaceFUCHSIA")) return (void *)table->CreateImagePipeSurfaceFUCHSIA;
3200 #endif // VK_USE_PLATFORM_FUCHSIA
3201
3202 // ---- VK_EXT_metal_surface extension commands
3203 #if defined(VK_USE_PLATFORM_METAL_EXT)
3204 if (!strcmp(name, "CreateMetalSurfaceEXT")) return (void *)table->CreateMetalSurfaceEXT;
3205 #endif // VK_USE_PLATFORM_METAL_EXT
3206
3207 // ---- VK_EXT_tooling_info extension commands
3208 if (!strcmp(name, "GetPhysicalDeviceToolPropertiesEXT")) return (void *)table->GetPhysicalDeviceToolPropertiesEXT;
3209
3210 // ---- VK_NV_cooperative_matrix extension commands
3211 if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesNV;
3212
3213 // ---- VK_NV_coverage_reduction_mode extension commands
3214 if (!strcmp(name, "GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) return (void *)table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
3215
3216 // ---- VK_EXT_full_screen_exclusive extension commands
3217 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3218 if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModes2EXT")) return (void *)table->GetPhysicalDeviceSurfacePresentModes2EXT;
3219 #endif // VK_USE_PLATFORM_WIN32_KHR
3220
3221 // ---- VK_EXT_headless_surface extension commands
3222 if (!strcmp(name, "CreateHeadlessSurfaceEXT")) return (void *)table->CreateHeadlessSurfaceEXT;
3223
3224 // ---- VK_EXT_acquire_drm_display extension commands
3225 if (!strcmp(name, "AcquireDrmDisplayEXT")) return (void *)table->AcquireDrmDisplayEXT;
3226 if (!strcmp(name, "GetDrmDisplayEXT")) return (void *)table->GetDrmDisplayEXT;
3227
3228 // ---- VK_NV_acquire_winrt_display extension commands
3229 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3230 if (!strcmp(name, "AcquireWinrtDisplayNV")) return (void *)table->AcquireWinrtDisplayNV;
3231 #endif // VK_USE_PLATFORM_WIN32_KHR
3232 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3233 if (!strcmp(name, "GetWinrtDisplayNV")) return (void *)table->GetWinrtDisplayNV;
3234 #endif // VK_USE_PLATFORM_WIN32_KHR
3235
3236 // ---- VK_EXT_directfb_surface extension commands
3237 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3238 if (!strcmp(name, "CreateDirectFBSurfaceEXT")) return (void *)table->CreateDirectFBSurfaceEXT;
3239 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
3240 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3241 if (!strcmp(name, "GetPhysicalDeviceDirectFBPresentationSupportEXT")) return (void *)table->GetPhysicalDeviceDirectFBPresentationSupportEXT;
3242 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
3243
3244 // ---- VK_QNX_screen_surface extension commands
3245 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
3246 if (!strcmp(name, "CreateScreenSurfaceQNX")) return (void *)table->CreateScreenSurfaceQNX;
3247 #endif // VK_USE_PLATFORM_SCREEN_QNX
3248 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
3249 if (!strcmp(name, "GetPhysicalDeviceScreenPresentationSupportQNX")) return (void *)table->GetPhysicalDeviceScreenPresentationSupportQNX;
3250 #endif // VK_USE_PLATFORM_SCREEN_QNX
3251
3252 // ---- VK_NV_optical_flow extension commands
3253 if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV;
3254
3255 // ---- VK_OHOS_surface extension commands
3256 #ifdef VK_USE_PLATFORM_OHOS
3257 if (!strcmp(name, "CreateSurfaceOHOS")) return (void *)table->CreateSurfaceOHOS;
3258 #endif // VK_USE_PLATFORM_OHOS
3259
3260 *found_name = false;
3261 return NULL;
3262 }
3263
3264
3265 // ---- VK_KHR_video_queue extension trampoline/terminators
3266
GetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice,const VkVideoProfileInfoKHR * pVideoProfile,VkVideoCapabilitiesKHR * pCapabilities)3267 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR(
3268 VkPhysicalDevice physicalDevice,
3269 const VkVideoProfileInfoKHR* pVideoProfile,
3270 VkVideoCapabilitiesKHR* pCapabilities) {
3271 const VkLayerInstanceDispatchTable *disp;
3272 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3273 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3274 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3275 "vkGetPhysicalDeviceVideoCapabilitiesKHR: Invalid physicalDevice "
3276 "[VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter]");
3277 abort(); /* Intentionally fail so user can correct issue. */
3278 }
3279 disp = loader_get_instance_layer_dispatch(physicalDevice);
3280 return disp->GetPhysicalDeviceVideoCapabilitiesKHR(unwrapped_phys_dev, pVideoProfile, pCapabilities);
3281 }
3282
terminator_GetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice,const VkVideoProfileInfoKHR * pVideoProfile,VkVideoCapabilitiesKHR * pCapabilities)3283 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoCapabilitiesKHR(
3284 VkPhysicalDevice physicalDevice,
3285 const VkVideoProfileInfoKHR* pVideoProfile,
3286 VkVideoCapabilitiesKHR* pCapabilities) {
3287 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3288 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3289 if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR) {
3290 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3291 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoCapabilitiesKHR");
3292 abort(); /* Intentionally fail so user can correct issue. */
3293 }
3294 return icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR(phys_dev_term->phys_dev, pVideoProfile, pCapabilities);
3295 }
3296
GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VkVideoFormatPropertiesKHR * pVideoFormatProperties)3297 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR(
3298 VkPhysicalDevice physicalDevice,
3299 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
3300 uint32_t* pVideoFormatPropertyCount,
3301 VkVideoFormatPropertiesKHR* pVideoFormatProperties) {
3302 const VkLayerInstanceDispatchTable *disp;
3303 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3304 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3305 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3306 "vkGetPhysicalDeviceVideoFormatPropertiesKHR: Invalid physicalDevice "
3307 "[VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter]");
3308 abort(); /* Intentionally fail so user can correct issue. */
3309 }
3310 disp = loader_get_instance_layer_dispatch(physicalDevice);
3311 return disp->GetPhysicalDeviceVideoFormatPropertiesKHR(unwrapped_phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3312 }
3313
terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VkVideoFormatPropertiesKHR * pVideoFormatProperties)3314 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(
3315 VkPhysicalDevice physicalDevice,
3316 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
3317 uint32_t* pVideoFormatPropertyCount,
3318 VkVideoFormatPropertiesKHR* pVideoFormatProperties) {
3319 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3320 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3321 if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR) {
3322 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3323 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoFormatPropertiesKHR");
3324 abort(); /* Intentionally fail so user can correct issue. */
3325 }
3326 return icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR(phys_dev_term->phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3327 }
3328
CreateVideoSessionKHR(VkDevice device,const VkVideoSessionCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionKHR * pVideoSession)3329 VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR(
3330 VkDevice device,
3331 const VkVideoSessionCreateInfoKHR* pCreateInfo,
3332 const VkAllocationCallbacks* pAllocator,
3333 VkVideoSessionKHR* pVideoSession) {
3334 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3335 if (NULL == disp) {
3336 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3337 "vkCreateVideoSessionKHR: Invalid device "
3338 "[VUID-vkCreateVideoSessionKHR-device-parameter]");
3339 abort(); /* Intentionally fail so user can correct issue. */
3340 }
3341 return disp->CreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession);
3342 }
3343
DestroyVideoSessionKHR(VkDevice device,VkVideoSessionKHR videoSession,const VkAllocationCallbacks * pAllocator)3344 VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionKHR(
3345 VkDevice device,
3346 VkVideoSessionKHR videoSession,
3347 const VkAllocationCallbacks* pAllocator) {
3348 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3349 if (NULL == disp) {
3350 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3351 "vkDestroyVideoSessionKHR: Invalid device "
3352 "[VUID-vkDestroyVideoSessionKHR-device-parameter]");
3353 abort(); /* Intentionally fail so user can correct issue. */
3354 }
3355 disp->DestroyVideoSessionKHR(device, videoSession, pAllocator);
3356 }
3357
GetVideoSessionMemoryRequirementsKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t * pMemoryRequirementsCount,VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements)3358 VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR(
3359 VkDevice device,
3360 VkVideoSessionKHR videoSession,
3361 uint32_t* pMemoryRequirementsCount,
3362 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements) {
3363 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3364 if (NULL == disp) {
3365 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3366 "vkGetVideoSessionMemoryRequirementsKHR: Invalid device "
3367 "[VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter]");
3368 abort(); /* Intentionally fail so user can correct issue. */
3369 }
3370 return disp->GetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements);
3371 }
3372
BindVideoSessionMemoryKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t bindSessionMemoryInfoCount,const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos)3373 VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR(
3374 VkDevice device,
3375 VkVideoSessionKHR videoSession,
3376 uint32_t bindSessionMemoryInfoCount,
3377 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos) {
3378 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3379 if (NULL == disp) {
3380 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3381 "vkBindVideoSessionMemoryKHR: Invalid device "
3382 "[VUID-vkBindVideoSessionMemoryKHR-device-parameter]");
3383 abort(); /* Intentionally fail so user can correct issue. */
3384 }
3385 return disp->BindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos);
3386 }
3387
CreateVideoSessionParametersKHR(VkDevice device,const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionParametersKHR * pVideoSessionParameters)3388 VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR(
3389 VkDevice device,
3390 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
3391 const VkAllocationCallbacks* pAllocator,
3392 VkVideoSessionParametersKHR* pVideoSessionParameters) {
3393 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3394 if (NULL == disp) {
3395 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3396 "vkCreateVideoSessionParametersKHR: Invalid device "
3397 "[VUID-vkCreateVideoSessionParametersKHR-device-parameter]");
3398 abort(); /* Intentionally fail so user can correct issue. */
3399 }
3400 return disp->CreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters);
3401 }
3402
UpdateVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo)3403 VKAPI_ATTR VkResult VKAPI_CALL UpdateVideoSessionParametersKHR(
3404 VkDevice device,
3405 VkVideoSessionParametersKHR videoSessionParameters,
3406 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) {
3407 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3408 if (NULL == disp) {
3409 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3410 "vkUpdateVideoSessionParametersKHR: Invalid device "
3411 "[VUID-vkUpdateVideoSessionParametersKHR-device-parameter]");
3412 abort(); /* Intentionally fail so user can correct issue. */
3413 }
3414 return disp->UpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo);
3415 }
3416
DestroyVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkAllocationCallbacks * pAllocator)3417 VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionParametersKHR(
3418 VkDevice device,
3419 VkVideoSessionParametersKHR videoSessionParameters,
3420 const VkAllocationCallbacks* pAllocator) {
3421 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3422 if (NULL == disp) {
3423 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3424 "vkDestroyVideoSessionParametersKHR: Invalid device "
3425 "[VUID-vkDestroyVideoSessionParametersKHR-device-parameter]");
3426 abort(); /* Intentionally fail so user can correct issue. */
3427 }
3428 disp->DestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator);
3429 }
3430
CmdBeginVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoBeginCodingInfoKHR * pBeginInfo)3431 VKAPI_ATTR void VKAPI_CALL CmdBeginVideoCodingKHR(
3432 VkCommandBuffer commandBuffer,
3433 const VkVideoBeginCodingInfoKHR* pBeginInfo) {
3434 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3435 if (NULL == disp) {
3436 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3437 "vkCmdBeginVideoCodingKHR: Invalid commandBuffer "
3438 "[VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter]");
3439 abort(); /* Intentionally fail so user can correct issue. */
3440 }
3441 disp->CmdBeginVideoCodingKHR(commandBuffer, pBeginInfo);
3442 }
3443
CmdEndVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoEndCodingInfoKHR * pEndCodingInfo)3444 VKAPI_ATTR void VKAPI_CALL CmdEndVideoCodingKHR(
3445 VkCommandBuffer commandBuffer,
3446 const VkVideoEndCodingInfoKHR* pEndCodingInfo) {
3447 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3448 if (NULL == disp) {
3449 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3450 "vkCmdEndVideoCodingKHR: Invalid commandBuffer "
3451 "[VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter]");
3452 abort(); /* Intentionally fail so user can correct issue. */
3453 }
3454 disp->CmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo);
3455 }
3456
CmdControlVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoCodingControlInfoKHR * pCodingControlInfo)3457 VKAPI_ATTR void VKAPI_CALL CmdControlVideoCodingKHR(
3458 VkCommandBuffer commandBuffer,
3459 const VkVideoCodingControlInfoKHR* pCodingControlInfo) {
3460 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3461 if (NULL == disp) {
3462 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3463 "vkCmdControlVideoCodingKHR: Invalid commandBuffer "
3464 "[VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter]");
3465 abort(); /* Intentionally fail so user can correct issue. */
3466 }
3467 disp->CmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo);
3468 }
3469
3470
3471 // ---- VK_KHR_video_decode_queue extension trampoline/terminators
3472
CmdDecodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoDecodeInfoKHR * pDecodeInfo)3473 VKAPI_ATTR void VKAPI_CALL CmdDecodeVideoKHR(
3474 VkCommandBuffer commandBuffer,
3475 const VkVideoDecodeInfoKHR* pDecodeInfo) {
3476 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3477 if (NULL == disp) {
3478 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3479 "vkCmdDecodeVideoKHR: Invalid commandBuffer "
3480 "[VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter]");
3481 abort(); /* Intentionally fail so user can correct issue. */
3482 }
3483 disp->CmdDecodeVideoKHR(commandBuffer, pDecodeInfo);
3484 }
3485
3486
3487 // ---- VK_KHR_dynamic_rendering extension trampoline/terminators
3488
CmdBeginRenderingKHR(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)3489 VKAPI_ATTR void VKAPI_CALL CmdBeginRenderingKHR(
3490 VkCommandBuffer commandBuffer,
3491 const VkRenderingInfo* pRenderingInfo) {
3492 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3493 if (NULL == disp) {
3494 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3495 "vkCmdBeginRenderingKHR: Invalid commandBuffer "
3496 "[VUID-vkCmdBeginRenderingKHR-commandBuffer-parameter]");
3497 abort(); /* Intentionally fail so user can correct issue. */
3498 }
3499 disp->CmdBeginRenderingKHR(commandBuffer, pRenderingInfo);
3500 }
3501
CmdEndRenderingKHR(VkCommandBuffer commandBuffer)3502 VKAPI_ATTR void VKAPI_CALL CmdEndRenderingKHR(
3503 VkCommandBuffer commandBuffer) {
3504 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3505 if (NULL == disp) {
3506 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3507 "vkCmdEndRenderingKHR: Invalid commandBuffer "
3508 "[VUID-vkCmdEndRenderingKHR-commandBuffer-parameter]");
3509 abort(); /* Intentionally fail so user can correct issue. */
3510 }
3511 disp->CmdEndRenderingKHR(commandBuffer);
3512 }
3513
3514
3515 // ---- VK_KHR_device_group extension trampoline/terminators
3516
GetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)3517 VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR(
3518 VkDevice device,
3519 uint32_t heapIndex,
3520 uint32_t localDeviceIndex,
3521 uint32_t remoteDeviceIndex,
3522 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
3523 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3524 if (NULL == disp) {
3525 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3526 "vkGetDeviceGroupPeerMemoryFeaturesKHR: Invalid device "
3527 "[VUID-vkGetDeviceGroupPeerMemoryFeaturesKHR-device-parameter]");
3528 abort(); /* Intentionally fail so user can correct issue. */
3529 }
3530 disp->GetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
3531 }
3532
CmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask)3533 VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHR(
3534 VkCommandBuffer commandBuffer,
3535 uint32_t deviceMask) {
3536 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3537 if (NULL == disp) {
3538 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3539 "vkCmdSetDeviceMaskKHR: Invalid commandBuffer "
3540 "[VUID-vkCmdSetDeviceMaskKHR-commandBuffer-parameter]");
3541 abort(); /* Intentionally fail so user can correct issue. */
3542 }
3543 disp->CmdSetDeviceMaskKHR(commandBuffer, deviceMask);
3544 }
3545
CmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)3546 VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR(
3547 VkCommandBuffer commandBuffer,
3548 uint32_t baseGroupX,
3549 uint32_t baseGroupY,
3550 uint32_t baseGroupZ,
3551 uint32_t groupCountX,
3552 uint32_t groupCountY,
3553 uint32_t groupCountZ) {
3554 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3555 if (NULL == disp) {
3556 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3557 "vkCmdDispatchBaseKHR: Invalid commandBuffer "
3558 "[VUID-vkCmdDispatchBaseKHR-commandBuffer-parameter]");
3559 abort(); /* Intentionally fail so user can correct issue. */
3560 }
3561 disp->CmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
3562 }
3563
3564
3565 // ---- VK_KHR_maintenance1 extension trampoline/terminators
3566
TrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)3567 VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR(
3568 VkDevice device,
3569 VkCommandPool commandPool,
3570 VkCommandPoolTrimFlags flags) {
3571 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3572 if (NULL == disp) {
3573 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3574 "vkTrimCommandPoolKHR: Invalid device "
3575 "[VUID-vkTrimCommandPoolKHR-device-parameter]");
3576 abort(); /* Intentionally fail so user can correct issue. */
3577 }
3578 disp->TrimCommandPoolKHR(device, commandPool, flags);
3579 }
3580
3581
3582 // ---- VK_KHR_external_memory_win32 extension trampoline/terminators
3583
3584 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3585 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR(
3586 VkDevice device,
3587 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3588 HANDLE* pHandle) {
3589 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3590 if (NULL == disp) {
3591 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3592 "vkGetMemoryWin32HandleKHR: Invalid device "
3593 "[VUID-vkGetMemoryWin32HandleKHR-device-parameter]");
3594 abort(); /* Intentionally fail so user can correct issue. */
3595 }
3596 return disp->GetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
3597 }
3598
3599 #endif // VK_USE_PLATFORM_WIN32_KHR
3600 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties)3601 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR(
3602 VkDevice device,
3603 VkExternalMemoryHandleTypeFlagBits handleType,
3604 HANDLE handle,
3605 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
3606 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3607 if (NULL == disp) {
3608 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3609 "vkGetMemoryWin32HandlePropertiesKHR: Invalid device "
3610 "[VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter]");
3611 abort(); /* Intentionally fail so user can correct issue. */
3612 }
3613 return disp->GetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
3614 }
3615
3616 #endif // VK_USE_PLATFORM_WIN32_KHR
3617
3618 // ---- VK_KHR_external_memory_fd extension trampoline/terminators
3619
GetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)3620 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR(
3621 VkDevice device,
3622 const VkMemoryGetFdInfoKHR* pGetFdInfo,
3623 int* pFd) {
3624 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3625 if (NULL == disp) {
3626 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3627 "vkGetMemoryFdKHR: Invalid device "
3628 "[VUID-vkGetMemoryFdKHR-device-parameter]");
3629 abort(); /* Intentionally fail so user can correct issue. */
3630 }
3631 return disp->GetMemoryFdKHR(device, pGetFdInfo, pFd);
3632 }
3633
GetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)3634 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR(
3635 VkDevice device,
3636 VkExternalMemoryHandleTypeFlagBits handleType,
3637 int fd,
3638 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
3639 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3640 if (NULL == disp) {
3641 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3642 "vkGetMemoryFdPropertiesKHR: Invalid device "
3643 "[VUID-vkGetMemoryFdPropertiesKHR-device-parameter]");
3644 abort(); /* Intentionally fail so user can correct issue. */
3645 }
3646 return disp->GetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
3647 }
3648
3649
3650 // ---- VK_KHR_external_semaphore_win32 extension trampoline/terminators
3651
3652 #if defined(VK_USE_PLATFORM_WIN32_KHR)
ImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo)3653 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreWin32HandleKHR(
3654 VkDevice device,
3655 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
3656 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3657 if (NULL == disp) {
3658 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3659 "vkImportSemaphoreWin32HandleKHR: Invalid device "
3660 "[VUID-vkImportSemaphoreWin32HandleKHR-device-parameter]");
3661 abort(); /* Intentionally fail so user can correct issue. */
3662 }
3663 return disp->ImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
3664 }
3665
3666 #endif // VK_USE_PLATFORM_WIN32_KHR
3667 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3668 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR(
3669 VkDevice device,
3670 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3671 HANDLE* pHandle) {
3672 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3673 if (NULL == disp) {
3674 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3675 "vkGetSemaphoreWin32HandleKHR: Invalid device "
3676 "[VUID-vkGetSemaphoreWin32HandleKHR-device-parameter]");
3677 abort(); /* Intentionally fail so user can correct issue. */
3678 }
3679 return disp->GetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
3680 }
3681
3682 #endif // VK_USE_PLATFORM_WIN32_KHR
3683
3684 // ---- VK_KHR_external_semaphore_fd extension trampoline/terminators
3685
ImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)3686 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR(
3687 VkDevice device,
3688 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
3689 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3690 if (NULL == disp) {
3691 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3692 "vkImportSemaphoreFdKHR: Invalid device "
3693 "[VUID-vkImportSemaphoreFdKHR-device-parameter]");
3694 abort(); /* Intentionally fail so user can correct issue. */
3695 }
3696 return disp->ImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
3697 }
3698
GetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)3699 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR(
3700 VkDevice device,
3701 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
3702 int* pFd) {
3703 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3704 if (NULL == disp) {
3705 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3706 "vkGetSemaphoreFdKHR: Invalid device "
3707 "[VUID-vkGetSemaphoreFdKHR-device-parameter]");
3708 abort(); /* Intentionally fail so user can correct issue. */
3709 }
3710 return disp->GetSemaphoreFdKHR(device, pGetFdInfo, pFd);
3711 }
3712
3713
3714 // ---- VK_KHR_push_descriptor extension trampoline/terminators
3715
CmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites)3716 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR(
3717 VkCommandBuffer commandBuffer,
3718 VkPipelineBindPoint pipelineBindPoint,
3719 VkPipelineLayout layout,
3720 uint32_t set,
3721 uint32_t descriptorWriteCount,
3722 const VkWriteDescriptorSet* pDescriptorWrites) {
3723 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3724 if (NULL == disp) {
3725 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3726 "vkCmdPushDescriptorSetKHR: Invalid commandBuffer "
3727 "[VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter]");
3728 abort(); /* Intentionally fail so user can correct issue. */
3729 }
3730 disp->CmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
3731 }
3732
CmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData)3733 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplateKHR(
3734 VkCommandBuffer commandBuffer,
3735 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3736 VkPipelineLayout layout,
3737 uint32_t set,
3738 const void* pData) {
3739 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3740 if (NULL == disp) {
3741 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3742 "vkCmdPushDescriptorSetWithTemplateKHR: Invalid commandBuffer "
3743 "[VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter]");
3744 abort(); /* Intentionally fail so user can correct issue. */
3745 }
3746 disp->CmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
3747 }
3748
3749
3750 // ---- VK_KHR_descriptor_update_template extension trampoline/terminators
3751
CreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)3752 VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR(
3753 VkDevice device,
3754 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
3755 const VkAllocationCallbacks* pAllocator,
3756 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
3757 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3758 if (NULL == disp) {
3759 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3760 "vkCreateDescriptorUpdateTemplateKHR: Invalid device "
3761 "[VUID-vkCreateDescriptorUpdateTemplateKHR-device-parameter]");
3762 abort(); /* Intentionally fail so user can correct issue. */
3763 }
3764 return disp->CreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
3765 }
3766
DestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)3767 VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR(
3768 VkDevice device,
3769 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3770 const VkAllocationCallbacks* pAllocator) {
3771 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3772 if (NULL == disp) {
3773 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3774 "vkDestroyDescriptorUpdateTemplateKHR: Invalid device "
3775 "[VUID-vkDestroyDescriptorUpdateTemplateKHR-device-parameter]");
3776 abort(); /* Intentionally fail so user can correct issue. */
3777 }
3778 disp->DestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
3779 }
3780
UpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)3781 VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSetWithTemplateKHR(
3782 VkDevice device,
3783 VkDescriptorSet descriptorSet,
3784 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3785 const void* pData) {
3786 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3787 if (NULL == disp) {
3788 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3789 "vkUpdateDescriptorSetWithTemplateKHR: Invalid device "
3790 "[VUID-vkUpdateDescriptorSetWithTemplateKHR-device-parameter]");
3791 abort(); /* Intentionally fail so user can correct issue. */
3792 }
3793 disp->UpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
3794 }
3795
3796
3797 // ---- VK_KHR_create_renderpass2 extension trampoline/terminators
3798
CreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)3799 VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR(
3800 VkDevice device,
3801 const VkRenderPassCreateInfo2* pCreateInfo,
3802 const VkAllocationCallbacks* pAllocator,
3803 VkRenderPass* pRenderPass) {
3804 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3805 if (NULL == disp) {
3806 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3807 "vkCreateRenderPass2KHR: Invalid device "
3808 "[VUID-vkCreateRenderPass2KHR-device-parameter]");
3809 abort(); /* Intentionally fail so user can correct issue. */
3810 }
3811 return disp->CreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
3812 }
3813
CmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)3814 VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR(
3815 VkCommandBuffer commandBuffer,
3816 const VkRenderPassBeginInfo* pRenderPassBegin,
3817 const VkSubpassBeginInfo* pSubpassBeginInfo) {
3818 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3819 if (NULL == disp) {
3820 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3821 "vkCmdBeginRenderPass2KHR: Invalid commandBuffer "
3822 "[VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter]");
3823 abort(); /* Intentionally fail so user can correct issue. */
3824 }
3825 disp->CmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
3826 }
3827
CmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)3828 VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR(
3829 VkCommandBuffer commandBuffer,
3830 const VkSubpassBeginInfo* pSubpassBeginInfo,
3831 const VkSubpassEndInfo* pSubpassEndInfo) {
3832 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3833 if (NULL == disp) {
3834 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3835 "vkCmdNextSubpass2KHR: Invalid commandBuffer "
3836 "[VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter]");
3837 abort(); /* Intentionally fail so user can correct issue. */
3838 }
3839 disp->CmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
3840 }
3841
CmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)3842 VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR(
3843 VkCommandBuffer commandBuffer,
3844 const VkSubpassEndInfo* pSubpassEndInfo) {
3845 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3846 if (NULL == disp) {
3847 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3848 "vkCmdEndRenderPass2KHR: Invalid commandBuffer "
3849 "[VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter]");
3850 abort(); /* Intentionally fail so user can correct issue. */
3851 }
3852 disp->CmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
3853 }
3854
3855
3856 // ---- VK_KHR_shared_presentable_image extension trampoline/terminators
3857
GetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain)3858 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR(
3859 VkDevice device,
3860 VkSwapchainKHR swapchain) {
3861 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3862 if (NULL == disp) {
3863 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3864 "vkGetSwapchainStatusKHR: Invalid device "
3865 "[VUID-vkGetSwapchainStatusKHR-device-parameter]");
3866 abort(); /* Intentionally fail so user can correct issue. */
3867 }
3868 return disp->GetSwapchainStatusKHR(device, swapchain);
3869 }
3870
3871
3872 // ---- VK_KHR_external_fence_win32 extension trampoline/terminators
3873
3874 #if defined(VK_USE_PLATFORM_WIN32_KHR)
ImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo)3875 VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR(
3876 VkDevice device,
3877 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
3878 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3879 if (NULL == disp) {
3880 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3881 "vkImportFenceWin32HandleKHR: Invalid device "
3882 "[VUID-vkImportFenceWin32HandleKHR-device-parameter]");
3883 abort(); /* Intentionally fail so user can correct issue. */
3884 }
3885 return disp->ImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
3886 }
3887
3888 #endif // VK_USE_PLATFORM_WIN32_KHR
3889 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3890 VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR(
3891 VkDevice device,
3892 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3893 HANDLE* pHandle) {
3894 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3895 if (NULL == disp) {
3896 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3897 "vkGetFenceWin32HandleKHR: Invalid device "
3898 "[VUID-vkGetFenceWin32HandleKHR-device-parameter]");
3899 abort(); /* Intentionally fail so user can correct issue. */
3900 }
3901 return disp->GetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
3902 }
3903
3904 #endif // VK_USE_PLATFORM_WIN32_KHR
3905
3906 // ---- VK_KHR_external_fence_fd extension trampoline/terminators
3907
ImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)3908 VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR(
3909 VkDevice device,
3910 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
3911 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3912 if (NULL == disp) {
3913 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3914 "vkImportFenceFdKHR: Invalid device "
3915 "[VUID-vkImportFenceFdKHR-device-parameter]");
3916 abort(); /* Intentionally fail so user can correct issue. */
3917 }
3918 return disp->ImportFenceFdKHR(device, pImportFenceFdInfo);
3919 }
3920
GetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)3921 VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR(
3922 VkDevice device,
3923 const VkFenceGetFdInfoKHR* pGetFdInfo,
3924 int* pFd) {
3925 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3926 if (NULL == disp) {
3927 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3928 "vkGetFenceFdKHR: Invalid device "
3929 "[VUID-vkGetFenceFdKHR-device-parameter]");
3930 abort(); /* Intentionally fail so user can correct issue. */
3931 }
3932 return disp->GetFenceFdKHR(device, pGetFdInfo, pFd);
3933 }
3934
3935
3936 // ---- VK_KHR_performance_query extension trampoline/terminators
3937
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions)3938 VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
3939 VkPhysicalDevice physicalDevice,
3940 uint32_t queueFamilyIndex,
3941 uint32_t* pCounterCount,
3942 VkPerformanceCounterKHR* pCounters,
3943 VkPerformanceCounterDescriptionKHR* pCounterDescriptions) {
3944 const VkLayerInstanceDispatchTable *disp;
3945 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3946 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3947 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3948 "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR: Invalid physicalDevice "
3949 "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter]");
3950 abort(); /* Intentionally fail so user can correct issue. */
3951 }
3952 disp = loader_get_instance_layer_dispatch(physicalDevice);
3953 return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
3954 }
3955
terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions)3956 VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
3957 VkPhysicalDevice physicalDevice,
3958 uint32_t queueFamilyIndex,
3959 uint32_t* pCounterCount,
3960 VkPerformanceCounterKHR* pCounters,
3961 VkPerformanceCounterDescriptionKHR* pCounterDescriptions) {
3962 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3963 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3964 if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) {
3965 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3966 "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
3967 abort(); /* Intentionally fail so user can correct issue. */
3968 }
3969 return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
3970 }
3971
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses)3972 VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
3973 VkPhysicalDevice physicalDevice,
3974 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
3975 uint32_t* pNumPasses) {
3976 const VkLayerInstanceDispatchTable *disp;
3977 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3978 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3979 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3980 "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR: Invalid physicalDevice "
3981 "[VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter]");
3982 abort(); /* Intentionally fail so user can correct issue. */
3983 }
3984 disp = loader_get_instance_layer_dispatch(physicalDevice);
3985 disp->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(unwrapped_phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
3986 }
3987
terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses)3988 VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
3989 VkPhysicalDevice physicalDevice,
3990 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
3991 uint32_t* pNumPasses) {
3992 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3993 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3994 if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) {
3995 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3996 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
3997 abort(); /* Intentionally fail so user can correct issue. */
3998 }
3999 icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(phys_dev_term->phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4000 }
4001
AcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo)4002 VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR(
4003 VkDevice device,
4004 const VkAcquireProfilingLockInfoKHR* pInfo) {
4005 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4006 if (NULL == disp) {
4007 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4008 "vkAcquireProfilingLockKHR: Invalid device "
4009 "[VUID-vkAcquireProfilingLockKHR-device-parameter]");
4010 abort(); /* Intentionally fail so user can correct issue. */
4011 }
4012 return disp->AcquireProfilingLockKHR(device, pInfo);
4013 }
4014
ReleaseProfilingLockKHR(VkDevice device)4015 VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR(
4016 VkDevice device) {
4017 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4018 if (NULL == disp) {
4019 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4020 "vkReleaseProfilingLockKHR: Invalid device "
4021 "[VUID-vkReleaseProfilingLockKHR-device-parameter]");
4022 abort(); /* Intentionally fail so user can correct issue. */
4023 }
4024 disp->ReleaseProfilingLockKHR(device);
4025 }
4026
4027
4028 // ---- VK_KHR_get_memory_requirements2 extension trampoline/terminators
4029
GetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)4030 VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR(
4031 VkDevice device,
4032 const VkImageMemoryRequirementsInfo2* pInfo,
4033 VkMemoryRequirements2* pMemoryRequirements) {
4034 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4035 if (NULL == disp) {
4036 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4037 "vkGetImageMemoryRequirements2KHR: Invalid device "
4038 "[VUID-vkGetImageMemoryRequirements2KHR-device-parameter]");
4039 abort(); /* Intentionally fail so user can correct issue. */
4040 }
4041 disp->GetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4042 }
4043
GetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)4044 VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR(
4045 VkDevice device,
4046 const VkBufferMemoryRequirementsInfo2* pInfo,
4047 VkMemoryRequirements2* pMemoryRequirements) {
4048 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4049 if (NULL == disp) {
4050 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4051 "vkGetBufferMemoryRequirements2KHR: Invalid device "
4052 "[VUID-vkGetBufferMemoryRequirements2KHR-device-parameter]");
4053 abort(); /* Intentionally fail so user can correct issue. */
4054 }
4055 disp->GetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4056 }
4057
GetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)4058 VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR(
4059 VkDevice device,
4060 const VkImageSparseMemoryRequirementsInfo2* pInfo,
4061 uint32_t* pSparseMemoryRequirementCount,
4062 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
4063 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4064 if (NULL == disp) {
4065 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4066 "vkGetImageSparseMemoryRequirements2KHR: Invalid device "
4067 "[VUID-vkGetImageSparseMemoryRequirements2KHR-device-parameter]");
4068 abort(); /* Intentionally fail so user can correct issue. */
4069 }
4070 disp->GetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
4071 }
4072
4073
4074 // ---- VK_KHR_sampler_ycbcr_conversion extension trampoline/terminators
4075
CreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)4076 VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR(
4077 VkDevice device,
4078 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
4079 const VkAllocationCallbacks* pAllocator,
4080 VkSamplerYcbcrConversion* pYcbcrConversion) {
4081 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4082 if (NULL == disp) {
4083 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4084 "vkCreateSamplerYcbcrConversionKHR: Invalid device "
4085 "[VUID-vkCreateSamplerYcbcrConversionKHR-device-parameter]");
4086 abort(); /* Intentionally fail so user can correct issue. */
4087 }
4088 return disp->CreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
4089 }
4090
DestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)4091 VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversionKHR(
4092 VkDevice device,
4093 VkSamplerYcbcrConversion ycbcrConversion,
4094 const VkAllocationCallbacks* pAllocator) {
4095 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4096 if (NULL == disp) {
4097 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4098 "vkDestroySamplerYcbcrConversionKHR: Invalid device "
4099 "[VUID-vkDestroySamplerYcbcrConversionKHR-device-parameter]");
4100 abort(); /* Intentionally fail so user can correct issue. */
4101 }
4102 disp->DestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
4103 }
4104
4105
4106 // ---- VK_KHR_bind_memory2 extension trampoline/terminators
4107
BindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)4108 VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHR(
4109 VkDevice device,
4110 uint32_t bindInfoCount,
4111 const VkBindBufferMemoryInfo* pBindInfos) {
4112 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4113 if (NULL == disp) {
4114 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4115 "vkBindBufferMemory2KHR: Invalid device "
4116 "[VUID-vkBindBufferMemory2KHR-device-parameter]");
4117 abort(); /* Intentionally fail so user can correct issue. */
4118 }
4119 return disp->BindBufferMemory2KHR(device, bindInfoCount, pBindInfos);
4120 }
4121
BindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)4122 VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHR(
4123 VkDevice device,
4124 uint32_t bindInfoCount,
4125 const VkBindImageMemoryInfo* pBindInfos) {
4126 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4127 if (NULL == disp) {
4128 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4129 "vkBindImageMemory2KHR: Invalid device "
4130 "[VUID-vkBindImageMemory2KHR-device-parameter]");
4131 abort(); /* Intentionally fail so user can correct issue. */
4132 }
4133 return disp->BindImageMemory2KHR(device, bindInfoCount, pBindInfos);
4134 }
4135
4136
4137 // ---- VK_KHR_maintenance3 extension trampoline/terminators
4138
GetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)4139 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupportKHR(
4140 VkDevice device,
4141 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
4142 VkDescriptorSetLayoutSupport* pSupport) {
4143 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4144 if (NULL == disp) {
4145 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4146 "vkGetDescriptorSetLayoutSupportKHR: Invalid device "
4147 "[VUID-vkGetDescriptorSetLayoutSupportKHR-device-parameter]");
4148 abort(); /* Intentionally fail so user can correct issue. */
4149 }
4150 disp->GetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
4151 }
4152
4153
4154 // ---- VK_KHR_draw_indirect_count extension trampoline/terminators
4155
CmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4156 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR(
4157 VkCommandBuffer commandBuffer,
4158 VkBuffer buffer,
4159 VkDeviceSize offset,
4160 VkBuffer countBuffer,
4161 VkDeviceSize countBufferOffset,
4162 uint32_t maxDrawCount,
4163 uint32_t stride) {
4164 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4165 if (NULL == disp) {
4166 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4167 "vkCmdDrawIndirectCountKHR: Invalid commandBuffer "
4168 "[VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter]");
4169 abort(); /* Intentionally fail so user can correct issue. */
4170 }
4171 disp->CmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4172 }
4173
CmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4174 VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR(
4175 VkCommandBuffer commandBuffer,
4176 VkBuffer buffer,
4177 VkDeviceSize offset,
4178 VkBuffer countBuffer,
4179 VkDeviceSize countBufferOffset,
4180 uint32_t maxDrawCount,
4181 uint32_t stride) {
4182 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4183 if (NULL == disp) {
4184 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4185 "vkCmdDrawIndexedIndirectCountKHR: Invalid commandBuffer "
4186 "[VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter]");
4187 abort(); /* Intentionally fail so user can correct issue. */
4188 }
4189 disp->CmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4190 }
4191
4192
4193 // ---- VK_KHR_timeline_semaphore extension trampoline/terminators
4194
GetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)4195 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR(
4196 VkDevice device,
4197 VkSemaphore semaphore,
4198 uint64_t* pValue) {
4199 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4200 if (NULL == disp) {
4201 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4202 "vkGetSemaphoreCounterValueKHR: Invalid device "
4203 "[VUID-vkGetSemaphoreCounterValueKHR-device-parameter]");
4204 abort(); /* Intentionally fail so user can correct issue. */
4205 }
4206 return disp->GetSemaphoreCounterValueKHR(device, semaphore, pValue);
4207 }
4208
WaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)4209 VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR(
4210 VkDevice device,
4211 const VkSemaphoreWaitInfo* pWaitInfo,
4212 uint64_t timeout) {
4213 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4214 if (NULL == disp) {
4215 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4216 "vkWaitSemaphoresKHR: Invalid device "
4217 "[VUID-vkWaitSemaphoresKHR-device-parameter]");
4218 abort(); /* Intentionally fail so user can correct issue. */
4219 }
4220 return disp->WaitSemaphoresKHR(device, pWaitInfo, timeout);
4221 }
4222
SignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)4223 VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR(
4224 VkDevice device,
4225 const VkSemaphoreSignalInfo* pSignalInfo) {
4226 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4227 if (NULL == disp) {
4228 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4229 "vkSignalSemaphoreKHR: Invalid device "
4230 "[VUID-vkSignalSemaphoreKHR-device-parameter]");
4231 abort(); /* Intentionally fail so user can correct issue. */
4232 }
4233 return disp->SignalSemaphoreKHR(device, pSignalInfo);
4234 }
4235
4236
4237 // ---- VK_KHR_fragment_shading_rate extension trampoline/terminators
4238
GetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates)4239 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR(
4240 VkPhysicalDevice physicalDevice,
4241 uint32_t* pFragmentShadingRateCount,
4242 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) {
4243 const VkLayerInstanceDispatchTable *disp;
4244 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4245 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4246 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4247 "vkGetPhysicalDeviceFragmentShadingRatesKHR: Invalid physicalDevice "
4248 "[VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter]");
4249 abort(); /* Intentionally fail so user can correct issue. */
4250 }
4251 disp = loader_get_instance_layer_dispatch(physicalDevice);
4252 return disp->GetPhysicalDeviceFragmentShadingRatesKHR(unwrapped_phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4253 }
4254
terminator_GetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates)4255 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceFragmentShadingRatesKHR(
4256 VkPhysicalDevice physicalDevice,
4257 uint32_t* pFragmentShadingRateCount,
4258 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) {
4259 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4260 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4261 if (NULL == icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR) {
4262 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4263 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceFragmentShadingRatesKHR");
4264 abort(); /* Intentionally fail so user can correct issue. */
4265 }
4266 return icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR(phys_dev_term->phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4267 }
4268
CmdSetFragmentShadingRateKHR(VkCommandBuffer commandBuffer,const VkExtent2D * pFragmentSize,const VkFragmentShadingRateCombinerOpKHR combinerOps[2])4269 VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateKHR(
4270 VkCommandBuffer commandBuffer,
4271 const VkExtent2D* pFragmentSize,
4272 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) {
4273 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4274 if (NULL == disp) {
4275 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4276 "vkCmdSetFragmentShadingRateKHR: Invalid commandBuffer "
4277 "[VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter]");
4278 abort(); /* Intentionally fail so user can correct issue. */
4279 }
4280 disp->CmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
4281 }
4282
4283
4284 // ---- VK_KHR_present_wait extension trampoline/terminators
4285
WaitForPresentKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t presentId,uint64_t timeout)4286 VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR(
4287 VkDevice device,
4288 VkSwapchainKHR swapchain,
4289 uint64_t presentId,
4290 uint64_t timeout) {
4291 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4292 if (NULL == disp) {
4293 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4294 "vkWaitForPresentKHR: Invalid device "
4295 "[VUID-vkWaitForPresentKHR-device-parameter]");
4296 abort(); /* Intentionally fail so user can correct issue. */
4297 }
4298 return disp->WaitForPresentKHR(device, swapchain, presentId, timeout);
4299 }
4300
4301
4302 // ---- VK_KHR_buffer_device_address extension trampoline/terminators
4303
GetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)4304 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR(
4305 VkDevice device,
4306 const VkBufferDeviceAddressInfo* pInfo) {
4307 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4308 if (NULL == disp) {
4309 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4310 "vkGetBufferDeviceAddressKHR: Invalid device "
4311 "[VUID-vkGetBufferDeviceAddressKHR-device-parameter]");
4312 abort(); /* Intentionally fail so user can correct issue. */
4313 }
4314 return disp->GetBufferDeviceAddressKHR(device, pInfo);
4315 }
4316
GetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)4317 VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR(
4318 VkDevice device,
4319 const VkBufferDeviceAddressInfo* pInfo) {
4320 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4321 if (NULL == disp) {
4322 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4323 "vkGetBufferOpaqueCaptureAddressKHR: Invalid device "
4324 "[VUID-vkGetBufferOpaqueCaptureAddressKHR-device-parameter]");
4325 abort(); /* Intentionally fail so user can correct issue. */
4326 }
4327 return disp->GetBufferOpaqueCaptureAddressKHR(device, pInfo);
4328 }
4329
GetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)4330 VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR(
4331 VkDevice device,
4332 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
4333 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4334 if (NULL == disp) {
4335 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4336 "vkGetDeviceMemoryOpaqueCaptureAddressKHR: Invalid device "
4337 "[VUID-vkGetDeviceMemoryOpaqueCaptureAddressKHR-device-parameter]");
4338 abort(); /* Intentionally fail so user can correct issue. */
4339 }
4340 return disp->GetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo);
4341 }
4342
4343
4344 // ---- VK_KHR_deferred_host_operations extension trampoline/terminators
4345
CreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation)4346 VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR(
4347 VkDevice device,
4348 const VkAllocationCallbacks* pAllocator,
4349 VkDeferredOperationKHR* pDeferredOperation) {
4350 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4351 if (NULL == disp) {
4352 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4353 "vkCreateDeferredOperationKHR: Invalid device "
4354 "[VUID-vkCreateDeferredOperationKHR-device-parameter]");
4355 abort(); /* Intentionally fail so user can correct issue. */
4356 }
4357 return disp->CreateDeferredOperationKHR(device, pAllocator, pDeferredOperation);
4358 }
4359
DestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator)4360 VKAPI_ATTR void VKAPI_CALL DestroyDeferredOperationKHR(
4361 VkDevice device,
4362 VkDeferredOperationKHR operation,
4363 const VkAllocationCallbacks* pAllocator) {
4364 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4365 if (NULL == disp) {
4366 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4367 "vkDestroyDeferredOperationKHR: Invalid device "
4368 "[VUID-vkDestroyDeferredOperationKHR-device-parameter]");
4369 abort(); /* Intentionally fail so user can correct issue. */
4370 }
4371 disp->DestroyDeferredOperationKHR(device, operation, pAllocator);
4372 }
4373
GetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation)4374 VKAPI_ATTR uint32_t VKAPI_CALL GetDeferredOperationMaxConcurrencyKHR(
4375 VkDevice device,
4376 VkDeferredOperationKHR operation) {
4377 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4378 if (NULL == disp) {
4379 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4380 "vkGetDeferredOperationMaxConcurrencyKHR: Invalid device "
4381 "[VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter]");
4382 abort(); /* Intentionally fail so user can correct issue. */
4383 }
4384 return disp->GetDeferredOperationMaxConcurrencyKHR(device, operation);
4385 }
4386
GetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation)4387 VKAPI_ATTR VkResult VKAPI_CALL GetDeferredOperationResultKHR(
4388 VkDevice device,
4389 VkDeferredOperationKHR operation) {
4390 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4391 if (NULL == disp) {
4392 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4393 "vkGetDeferredOperationResultKHR: Invalid device "
4394 "[VUID-vkGetDeferredOperationResultKHR-device-parameter]");
4395 abort(); /* Intentionally fail so user can correct issue. */
4396 }
4397 return disp->GetDeferredOperationResultKHR(device, operation);
4398 }
4399
DeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation)4400 VKAPI_ATTR VkResult VKAPI_CALL DeferredOperationJoinKHR(
4401 VkDevice device,
4402 VkDeferredOperationKHR operation) {
4403 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4404 if (NULL == disp) {
4405 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4406 "vkDeferredOperationJoinKHR: Invalid device "
4407 "[VUID-vkDeferredOperationJoinKHR-device-parameter]");
4408 abort(); /* Intentionally fail so user can correct issue. */
4409 }
4410 return disp->DeferredOperationJoinKHR(device, operation);
4411 }
4412
4413
4414 // ---- VK_KHR_pipeline_executable_properties extension trampoline/terminators
4415
GetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)4416 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR(
4417 VkDevice device,
4418 const VkPipelineInfoKHR* pPipelineInfo,
4419 uint32_t* pExecutableCount,
4420 VkPipelineExecutablePropertiesKHR* pProperties) {
4421 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4422 if (NULL == disp) {
4423 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4424 "vkGetPipelineExecutablePropertiesKHR: Invalid device "
4425 "[VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter]");
4426 abort(); /* Intentionally fail so user can correct issue. */
4427 }
4428 return disp->GetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties);
4429 }
4430
GetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)4431 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR(
4432 VkDevice device,
4433 const VkPipelineExecutableInfoKHR* pExecutableInfo,
4434 uint32_t* pStatisticCount,
4435 VkPipelineExecutableStatisticKHR* pStatistics) {
4436 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4437 if (NULL == disp) {
4438 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4439 "vkGetPipelineExecutableStatisticsKHR: Invalid device "
4440 "[VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter]");
4441 abort(); /* Intentionally fail so user can correct issue. */
4442 }
4443 return disp->GetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics);
4444 }
4445
GetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)4446 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR(
4447 VkDevice device,
4448 const VkPipelineExecutableInfoKHR* pExecutableInfo,
4449 uint32_t* pInternalRepresentationCount,
4450 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
4451 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4452 if (NULL == disp) {
4453 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4454 "vkGetPipelineExecutableInternalRepresentationsKHR: Invalid device "
4455 "[VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter]");
4456 abort(); /* Intentionally fail so user can correct issue. */
4457 }
4458 return disp->GetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations);
4459 }
4460
4461
4462 // ---- VK_KHR_map_memory2 extension trampoline/terminators
4463
MapMemory2KHR(VkDevice device,const VkMemoryMapInfoKHR * pMemoryMapInfo,void ** ppData)4464 VKAPI_ATTR VkResult VKAPI_CALL MapMemory2KHR(
4465 VkDevice device,
4466 const VkMemoryMapInfoKHR* pMemoryMapInfo,
4467 void** ppData) {
4468 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4469 if (NULL == disp) {
4470 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4471 "vkMapMemory2KHR: Invalid device "
4472 "[VUID-vkMapMemory2KHR-device-parameter]");
4473 abort(); /* Intentionally fail so user can correct issue. */
4474 }
4475 return disp->MapMemory2KHR(device, pMemoryMapInfo, ppData);
4476 }
4477
UnmapMemory2KHR(VkDevice device,const VkMemoryUnmapInfoKHR * pMemoryUnmapInfo)4478 VKAPI_ATTR VkResult VKAPI_CALL UnmapMemory2KHR(
4479 VkDevice device,
4480 const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo) {
4481 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4482 if (NULL == disp) {
4483 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4484 "vkUnmapMemory2KHR: Invalid device "
4485 "[VUID-vkUnmapMemory2KHR-device-parameter]");
4486 abort(); /* Intentionally fail so user can correct issue. */
4487 }
4488 return disp->UnmapMemory2KHR(device, pMemoryUnmapInfo);
4489 }
4490
4491
4492 // ---- VK_KHR_video_encode_queue extension trampoline/terminators
4493
GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,VkVideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties)4494 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
4495 VkPhysicalDevice physicalDevice,
4496 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
4497 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties) {
4498 const VkLayerInstanceDispatchTable *disp;
4499 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4500 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4501 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4502 "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR: Invalid physicalDevice "
4503 "[VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameter]");
4504 abort(); /* Intentionally fail so user can correct issue. */
4505 }
4506 disp = loader_get_instance_layer_dispatch(physicalDevice);
4507 return disp->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(unwrapped_phys_dev, pQualityLevelInfo, pQualityLevelProperties);
4508 }
4509
terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,VkVideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties)4510 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
4511 VkPhysicalDevice physicalDevice,
4512 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
4513 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties) {
4514 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4515 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4516 if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) {
4517 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4518 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
4519 abort(); /* Intentionally fail so user can correct issue. */
4520 }
4521 return icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(phys_dev_term->phys_dev, pQualityLevelInfo, pQualityLevelProperties);
4522 }
4523
GetEncodedVideoSessionParametersKHR(VkDevice device,const VkVideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,VkVideoEncodeSessionParametersFeedbackInfoKHR * pFeedbackInfo,size_t * pDataSize,void * pData)4524 VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR(
4525 VkDevice device,
4526 const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
4527 VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
4528 size_t* pDataSize,
4529 void* pData) {
4530 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4531 if (NULL == disp) {
4532 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4533 "vkGetEncodedVideoSessionParametersKHR: Invalid device "
4534 "[VUID-vkGetEncodedVideoSessionParametersKHR-device-parameter]");
4535 abort(); /* Intentionally fail so user can correct issue. */
4536 }
4537 return disp->GetEncodedVideoSessionParametersKHR(device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData);
4538 }
4539
CmdEncodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoEncodeInfoKHR * pEncodeInfo)4540 VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR(
4541 VkCommandBuffer commandBuffer,
4542 const VkVideoEncodeInfoKHR* pEncodeInfo) {
4543 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4544 if (NULL == disp) {
4545 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4546 "vkCmdEncodeVideoKHR: Invalid commandBuffer "
4547 "[VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter]");
4548 abort(); /* Intentionally fail so user can correct issue. */
4549 }
4550 disp->CmdEncodeVideoKHR(commandBuffer, pEncodeInfo);
4551 }
4552
4553
4554 // ---- VK_KHR_synchronization2 extension trampoline/terminators
4555
CmdSetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)4556 VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR(
4557 VkCommandBuffer commandBuffer,
4558 VkEvent event,
4559 const VkDependencyInfo* pDependencyInfo) {
4560 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4561 if (NULL == disp) {
4562 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4563 "vkCmdSetEvent2KHR: Invalid commandBuffer "
4564 "[VUID-vkCmdSetEvent2KHR-commandBuffer-parameter]");
4565 abort(); /* Intentionally fail so user can correct issue. */
4566 }
4567 disp->CmdSetEvent2KHR(commandBuffer, event, pDependencyInfo);
4568 }
4569
CmdResetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)4570 VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR(
4571 VkCommandBuffer commandBuffer,
4572 VkEvent event,
4573 VkPipelineStageFlags2 stageMask) {
4574 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4575 if (NULL == disp) {
4576 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4577 "vkCmdResetEvent2KHR: Invalid commandBuffer "
4578 "[VUID-vkCmdResetEvent2KHR-commandBuffer-parameter]");
4579 abort(); /* Intentionally fail so user can correct issue. */
4580 }
4581 disp->CmdResetEvent2KHR(commandBuffer, event, stageMask);
4582 }
4583
CmdWaitEvents2KHR(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)4584 VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR(
4585 VkCommandBuffer commandBuffer,
4586 uint32_t eventCount,
4587 const VkEvent* pEvents,
4588 const VkDependencyInfo* pDependencyInfos) {
4589 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4590 if (NULL == disp) {
4591 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4592 "vkCmdWaitEvents2KHR: Invalid commandBuffer "
4593 "[VUID-vkCmdWaitEvents2KHR-commandBuffer-parameter]");
4594 abort(); /* Intentionally fail so user can correct issue. */
4595 }
4596 disp->CmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos);
4597 }
4598
CmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)4599 VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2KHR(
4600 VkCommandBuffer commandBuffer,
4601 const VkDependencyInfo* pDependencyInfo) {
4602 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4603 if (NULL == disp) {
4604 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4605 "vkCmdPipelineBarrier2KHR: Invalid commandBuffer "
4606 "[VUID-vkCmdPipelineBarrier2KHR-commandBuffer-parameter]");
4607 abort(); /* Intentionally fail so user can correct issue. */
4608 }
4609 disp->CmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo);
4610 }
4611
CmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)4612 VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR(
4613 VkCommandBuffer commandBuffer,
4614 VkPipelineStageFlags2 stage,
4615 VkQueryPool queryPool,
4616 uint32_t query) {
4617 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4618 if (NULL == disp) {
4619 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4620 "vkCmdWriteTimestamp2KHR: Invalid commandBuffer "
4621 "[VUID-vkCmdWriteTimestamp2KHR-commandBuffer-parameter]");
4622 abort(); /* Intentionally fail so user can correct issue. */
4623 }
4624 disp->CmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query);
4625 }
4626
QueueSubmit2KHR(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)4627 VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR(
4628 VkQueue queue,
4629 uint32_t submitCount,
4630 const VkSubmitInfo2* pSubmits,
4631 VkFence fence) {
4632 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
4633 if (NULL == disp) {
4634 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4635 "vkQueueSubmit2KHR: Invalid queue "
4636 "[VUID-vkQueueSubmit2KHR-queue-parameter]");
4637 abort(); /* Intentionally fail so user can correct issue. */
4638 }
4639 return disp->QueueSubmit2KHR(queue, submitCount, pSubmits, fence);
4640 }
4641
CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)4642 VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD(
4643 VkCommandBuffer commandBuffer,
4644 VkPipelineStageFlags2 stage,
4645 VkBuffer dstBuffer,
4646 VkDeviceSize dstOffset,
4647 uint32_t marker) {
4648 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4649 if (NULL == disp) {
4650 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4651 "vkCmdWriteBufferMarker2AMD: Invalid commandBuffer "
4652 "[VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter]");
4653 abort(); /* Intentionally fail so user can correct issue. */
4654 }
4655 disp->CmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker);
4656 }
4657
GetQueueCheckpointData2NV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData)4658 VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV(
4659 VkQueue queue,
4660 uint32_t* pCheckpointDataCount,
4661 VkCheckpointData2NV* pCheckpointData) {
4662 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
4663 if (NULL == disp) {
4664 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4665 "vkGetQueueCheckpointData2NV: Invalid queue "
4666 "[VUID-vkGetQueueCheckpointData2NV-queue-parameter]");
4667 abort(); /* Intentionally fail so user can correct issue. */
4668 }
4669 disp->GetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
4670 }
4671
4672
4673 // ---- VK_KHR_copy_commands2 extension trampoline/terminators
4674
CmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)4675 VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR(
4676 VkCommandBuffer commandBuffer,
4677 const VkCopyBufferInfo2* pCopyBufferInfo) {
4678 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4679 if (NULL == disp) {
4680 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4681 "vkCmdCopyBuffer2KHR: Invalid commandBuffer "
4682 "[VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter]");
4683 abort(); /* Intentionally fail so user can correct issue. */
4684 }
4685 disp->CmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo);
4686 }
4687
CmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)4688 VKAPI_ATTR void VKAPI_CALL CmdCopyImage2KHR(
4689 VkCommandBuffer commandBuffer,
4690 const VkCopyImageInfo2* pCopyImageInfo) {
4691 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4692 if (NULL == disp) {
4693 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4694 "vkCmdCopyImage2KHR: Invalid commandBuffer "
4695 "[VUID-vkCmdCopyImage2KHR-commandBuffer-parameter]");
4696 abort(); /* Intentionally fail so user can correct issue. */
4697 }
4698 disp->CmdCopyImage2KHR(commandBuffer, pCopyImageInfo);
4699 }
4700
CmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)4701 VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2KHR(
4702 VkCommandBuffer commandBuffer,
4703 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
4704 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4705 if (NULL == disp) {
4706 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4707 "vkCmdCopyBufferToImage2KHR: Invalid commandBuffer "
4708 "[VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter]");
4709 abort(); /* Intentionally fail so user can correct issue. */
4710 }
4711 disp->CmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo);
4712 }
4713
CmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)4714 VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2KHR(
4715 VkCommandBuffer commandBuffer,
4716 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
4717 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4718 if (NULL == disp) {
4719 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4720 "vkCmdCopyImageToBuffer2KHR: Invalid commandBuffer "
4721 "[VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter]");
4722 abort(); /* Intentionally fail so user can correct issue. */
4723 }
4724 disp->CmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo);
4725 }
4726
CmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)4727 VKAPI_ATTR void VKAPI_CALL CmdBlitImage2KHR(
4728 VkCommandBuffer commandBuffer,
4729 const VkBlitImageInfo2* pBlitImageInfo) {
4730 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4731 if (NULL == disp) {
4732 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4733 "vkCmdBlitImage2KHR: Invalid commandBuffer "
4734 "[VUID-vkCmdBlitImage2KHR-commandBuffer-parameter]");
4735 abort(); /* Intentionally fail so user can correct issue. */
4736 }
4737 disp->CmdBlitImage2KHR(commandBuffer, pBlitImageInfo);
4738 }
4739
CmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)4740 VKAPI_ATTR void VKAPI_CALL CmdResolveImage2KHR(
4741 VkCommandBuffer commandBuffer,
4742 const VkResolveImageInfo2* pResolveImageInfo) {
4743 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4744 if (NULL == disp) {
4745 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4746 "vkCmdResolveImage2KHR: Invalid commandBuffer "
4747 "[VUID-vkCmdResolveImage2KHR-commandBuffer-parameter]");
4748 abort(); /* Intentionally fail so user can correct issue. */
4749 }
4750 disp->CmdResolveImage2KHR(commandBuffer, pResolveImageInfo);
4751 }
4752
4753
4754 // ---- VK_KHR_ray_tracing_maintenance1 extension trampoline/terminators
4755
CmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,VkDeviceAddress indirectDeviceAddress)4756 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirect2KHR(
4757 VkCommandBuffer commandBuffer,
4758 VkDeviceAddress indirectDeviceAddress) {
4759 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4760 if (NULL == disp) {
4761 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4762 "vkCmdTraceRaysIndirect2KHR: Invalid commandBuffer "
4763 "[VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter]");
4764 abort(); /* Intentionally fail so user can correct issue. */
4765 }
4766 disp->CmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress);
4767 }
4768
4769
4770 // ---- VK_KHR_maintenance4 extension trampoline/terminators
4771
GetDeviceBufferMemoryRequirementsKHR(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)4772 VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR(
4773 VkDevice device,
4774 const VkDeviceBufferMemoryRequirements* pInfo,
4775 VkMemoryRequirements2* pMemoryRequirements) {
4776 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4777 if (NULL == disp) {
4778 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4779 "vkGetDeviceBufferMemoryRequirementsKHR: Invalid device "
4780 "[VUID-vkGetDeviceBufferMemoryRequirementsKHR-device-parameter]");
4781 abort(); /* Intentionally fail so user can correct issue. */
4782 }
4783 disp->GetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
4784 }
4785
GetDeviceImageMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)4786 VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR(
4787 VkDevice device,
4788 const VkDeviceImageMemoryRequirements* pInfo,
4789 VkMemoryRequirements2* pMemoryRequirements) {
4790 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4791 if (NULL == disp) {
4792 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4793 "vkGetDeviceImageMemoryRequirementsKHR: Invalid device "
4794 "[VUID-vkGetDeviceImageMemoryRequirementsKHR-device-parameter]");
4795 abort(); /* Intentionally fail so user can correct issue. */
4796 }
4797 disp->GetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
4798 }
4799
GetDeviceImageSparseMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)4800 VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR(
4801 VkDevice device,
4802 const VkDeviceImageMemoryRequirements* pInfo,
4803 uint32_t* pSparseMemoryRequirementCount,
4804 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
4805 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4806 if (NULL == disp) {
4807 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4808 "vkGetDeviceImageSparseMemoryRequirementsKHR: Invalid device "
4809 "[VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-device-parameter]");
4810 abort(); /* Intentionally fail so user can correct issue. */
4811 }
4812 disp->GetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
4813 }
4814
4815
4816 // ---- VK_KHR_maintenance5 extension trampoline/terminators
4817
CmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkDeviceSize size,VkIndexType indexType)4818 VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR(
4819 VkCommandBuffer commandBuffer,
4820 VkBuffer buffer,
4821 VkDeviceSize offset,
4822 VkDeviceSize size,
4823 VkIndexType indexType) {
4824 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4825 if (NULL == disp) {
4826 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4827 "vkCmdBindIndexBuffer2KHR: Invalid commandBuffer "
4828 "[VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter]");
4829 abort(); /* Intentionally fail so user can correct issue. */
4830 }
4831 disp->CmdBindIndexBuffer2KHR(commandBuffer, buffer, offset, size, indexType);
4832 }
4833
GetRenderingAreaGranularityKHR(VkDevice device,const VkRenderingAreaInfoKHR * pRenderingAreaInfo,VkExtent2D * pGranularity)4834 VKAPI_ATTR void VKAPI_CALL GetRenderingAreaGranularityKHR(
4835 VkDevice device,
4836 const VkRenderingAreaInfoKHR* pRenderingAreaInfo,
4837 VkExtent2D* pGranularity) {
4838 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4839 if (NULL == disp) {
4840 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4841 "vkGetRenderingAreaGranularityKHR: Invalid device "
4842 "[VUID-vkGetRenderingAreaGranularityKHR-device-parameter]");
4843 abort(); /* Intentionally fail so user can correct issue. */
4844 }
4845 disp->GetRenderingAreaGranularityKHR(device, pRenderingAreaInfo, pGranularity);
4846 }
4847
GetDeviceImageSubresourceLayoutKHR(VkDevice device,const VkDeviceImageSubresourceInfoKHR * pInfo,VkSubresourceLayout2KHR * pLayout)4848 VKAPI_ATTR void VKAPI_CALL GetDeviceImageSubresourceLayoutKHR(
4849 VkDevice device,
4850 const VkDeviceImageSubresourceInfoKHR* pInfo,
4851 VkSubresourceLayout2KHR* pLayout) {
4852 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4853 if (NULL == disp) {
4854 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4855 "vkGetDeviceImageSubresourceLayoutKHR: Invalid device "
4856 "[VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter]");
4857 abort(); /* Intentionally fail so user can correct issue. */
4858 }
4859 disp->GetDeviceImageSubresourceLayoutKHR(device, pInfo, pLayout);
4860 }
4861
GetImageSubresourceLayout2KHR(VkDevice device,VkImage image,const VkImageSubresource2KHR * pSubresource,VkSubresourceLayout2KHR * pLayout)4862 VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR(
4863 VkDevice device,
4864 VkImage image,
4865 const VkImageSubresource2KHR* pSubresource,
4866 VkSubresourceLayout2KHR* pLayout) {
4867 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4868 if (NULL == disp) {
4869 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4870 "vkGetImageSubresourceLayout2KHR: Invalid device "
4871 "[VUID-vkGetImageSubresourceLayout2KHR-device-parameter]");
4872 abort(); /* Intentionally fail so user can correct issue. */
4873 }
4874 disp->GetImageSubresourceLayout2KHR(device, image, pSubresource, pLayout);
4875 }
4876
4877
4878 // ---- VK_KHR_cooperative_matrix extension trampoline/terminators
4879
GetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesKHR * pProperties)4880 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
4881 VkPhysicalDevice physicalDevice,
4882 uint32_t* pPropertyCount,
4883 VkCooperativeMatrixPropertiesKHR* pProperties) {
4884 const VkLayerInstanceDispatchTable *disp;
4885 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4886 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4887 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4888 "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR: Invalid physicalDevice "
4889 "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter]");
4890 abort(); /* Intentionally fail so user can correct issue. */
4891 }
4892 disp = loader_get_instance_layer_dispatch(physicalDevice);
4893 return disp->GetPhysicalDeviceCooperativeMatrixPropertiesKHR(unwrapped_phys_dev, pPropertyCount, pProperties);
4894 }
4895
terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesKHR * pProperties)4896 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
4897 VkPhysicalDevice physicalDevice,
4898 uint32_t* pPropertyCount,
4899 VkCooperativeMatrixPropertiesKHR* pProperties) {
4900 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4901 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4902 if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR) {
4903 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4904 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesKHR");
4905 abort(); /* Intentionally fail so user can correct issue. */
4906 }
4907 return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR(phys_dev_term->phys_dev, pPropertyCount, pProperties);
4908 }
4909
4910
4911 // ---- VK_KHR_calibrated_timestamps extension trampoline/terminators
4912
GetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainKHR * pTimeDomains)4913 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsKHR(
4914 VkPhysicalDevice physicalDevice,
4915 uint32_t* pTimeDomainCount,
4916 VkTimeDomainKHR* pTimeDomains) {
4917 const VkLayerInstanceDispatchTable *disp;
4918 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4919 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4920 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4921 "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR: Invalid physicalDevice "
4922 "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter]");
4923 abort(); /* Intentionally fail so user can correct issue. */
4924 }
4925 disp = loader_get_instance_layer_dispatch(physicalDevice);
4926 return disp->GetPhysicalDeviceCalibrateableTimeDomainsKHR(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
4927 }
4928
terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainKHR * pTimeDomains)4929 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR(
4930 VkPhysicalDevice physicalDevice,
4931 uint32_t* pTimeDomainCount,
4932 VkTimeDomainKHR* pTimeDomains) {
4933 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4934 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4935 if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR) {
4936 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4937 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsKHR");
4938 abort(); /* Intentionally fail so user can correct issue. */
4939 }
4940 return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
4941 }
4942
GetCalibratedTimestampsKHR(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoKHR * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation)4943 VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsKHR(
4944 VkDevice device,
4945 uint32_t timestampCount,
4946 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
4947 uint64_t* pTimestamps,
4948 uint64_t* pMaxDeviation) {
4949 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4950 if (NULL == disp) {
4951 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4952 "vkGetCalibratedTimestampsKHR: Invalid device "
4953 "[VUID-vkGetCalibratedTimestampsKHR-device-parameter]");
4954 abort(); /* Intentionally fail so user can correct issue. */
4955 }
4956 return disp->GetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
4957 }
4958
4959
4960 // ---- VK_KHR_maintenance6 extension trampoline/terminators
4961
CmdBindDescriptorSets2KHR(VkCommandBuffer commandBuffer,const VkBindDescriptorSetsInfoKHR * pBindDescriptorSetsInfo)4962 VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets2KHR(
4963 VkCommandBuffer commandBuffer,
4964 const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo) {
4965 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4966 if (NULL == disp) {
4967 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4968 "vkCmdBindDescriptorSets2KHR: Invalid commandBuffer "
4969 "[VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-parameter]");
4970 abort(); /* Intentionally fail so user can correct issue. */
4971 }
4972 disp->CmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo);
4973 }
4974
CmdPushConstants2KHR(VkCommandBuffer commandBuffer,const VkPushConstantsInfoKHR * pPushConstantsInfo)4975 VKAPI_ATTR void VKAPI_CALL CmdPushConstants2KHR(
4976 VkCommandBuffer commandBuffer,
4977 const VkPushConstantsInfoKHR* pPushConstantsInfo) {
4978 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4979 if (NULL == disp) {
4980 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4981 "vkCmdPushConstants2KHR: Invalid commandBuffer "
4982 "[VUID-vkCmdPushConstants2KHR-commandBuffer-parameter]");
4983 abort(); /* Intentionally fail so user can correct issue. */
4984 }
4985 disp->CmdPushConstants2KHR(commandBuffer, pPushConstantsInfo);
4986 }
4987
CmdPushDescriptorSet2KHR(VkCommandBuffer commandBuffer,const VkPushDescriptorSetInfoKHR * pPushDescriptorSetInfo)4988 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSet2KHR(
4989 VkCommandBuffer commandBuffer,
4990 const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo) {
4991 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4992 if (NULL == disp) {
4993 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4994 "vkCmdPushDescriptorSet2KHR: Invalid commandBuffer "
4995 "[VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-parameter]");
4996 abort(); /* Intentionally fail so user can correct issue. */
4997 }
4998 disp->CmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo);
4999 }
5000
CmdPushDescriptorSetWithTemplate2KHR(VkCommandBuffer commandBuffer,const VkPushDescriptorSetWithTemplateInfoKHR * pPushDescriptorSetWithTemplateInfo)5001 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplate2KHR(
5002 VkCommandBuffer commandBuffer,
5003 const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo) {
5004 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5005 if (NULL == disp) {
5006 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5007 "vkCmdPushDescriptorSetWithTemplate2KHR: Invalid commandBuffer "
5008 "[VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-parameter]");
5009 abort(); /* Intentionally fail so user can correct issue. */
5010 }
5011 disp->CmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo);
5012 }
5013
CmdSetDescriptorBufferOffsets2EXT(VkCommandBuffer commandBuffer,const VkSetDescriptorBufferOffsetsInfoEXT * pSetDescriptorBufferOffsetsInfo)5014 VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsets2EXT(
5015 VkCommandBuffer commandBuffer,
5016 const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo) {
5017 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5018 if (NULL == disp) {
5019 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5020 "vkCmdSetDescriptorBufferOffsets2EXT: Invalid commandBuffer "
5021 "[VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-parameter]");
5022 abort(); /* Intentionally fail so user can correct issue. */
5023 }
5024 disp->CmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo);
5025 }
5026
CmdBindDescriptorBufferEmbeddedSamplers2EXT(VkCommandBuffer commandBuffer,const VkBindDescriptorBufferEmbeddedSamplersInfoEXT * pBindDescriptorBufferEmbeddedSamplersInfo)5027 VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplers2EXT(
5028 VkCommandBuffer commandBuffer,
5029 const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo) {
5030 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5031 if (NULL == disp) {
5032 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5033 "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT: Invalid commandBuffer "
5034 "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-parameter]");
5035 abort(); /* Intentionally fail so user can correct issue. */
5036 }
5037 disp->CmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo);
5038 }
5039
5040
5041 // ---- VK_EXT_debug_marker extension trampoline/terminators
5042
DebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo)5043 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
5044 VkDevice device,
5045 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
5046 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5047 if (NULL == disp) {
5048 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5049 "vkDebugMarkerSetObjectTagEXT: Invalid device "
5050 "[VUID-vkDebugMarkerSetObjectTagEXT-device-parameter]");
5051 abort(); /* Intentionally fail so user can correct issue. */
5052 }
5053 VkDebugMarkerObjectTagInfoEXT local_tag_info;
5054 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
5055 // If this is a physical device, we have to replace it with the proper one for the next call.
5056 if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5057 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->object;
5058 local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5059 }
5060 if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5061 struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->object;
5062 local_tag_info.object = (uint64_t)(uintptr_t)instance->instance;
5063 }
5064 return disp->DebugMarkerSetObjectTagEXT(device, &local_tag_info);
5065 }
5066
terminator_DebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo)5067 VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectTagEXT(
5068 VkDevice device,
5069 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
5070 uint32_t icd_index = 0;
5071 struct loader_device *dev;
5072 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, &icd_index);
5073 if (NULL == icd_term || NULL == dev) {
5074 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectTagEXT: Invalid device handle");
5075 abort(); /* Intentionally fail so user can correct issue. */
5076 }
5077 VkDebugMarkerObjectTagInfoEXT local_tag_info;
5078 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
5079 // If this is a physical device, we have to replace it with the proper one for the next call.
5080 if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5081 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->object;
5082 local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5083 // 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.
5084 } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
5085 if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5086 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pTagInfo->object;
5087 if (NULL != icd_surface->real_icd_surfaces) {
5088 local_tag_info.object = (uint64_t)icd_surface->real_icd_surfaces[icd_index];
5089 }
5090 }
5091 // If this is an instance we have to replace it with the proper one for the next call.
5092 } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5093 local_tag_info.object = (uint64_t)(uintptr_t)icd_term->instance;
5094 }
5095 // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5096 // debug utils but the driver does not.
5097 if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT)
5098 return VK_SUCCESS;
5099 return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT(device, &local_tag_info);
5100 }
5101
DebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo)5102 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
5103 VkDevice device,
5104 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
5105 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5106 if (NULL == disp) {
5107 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5108 "vkDebugMarkerSetObjectNameEXT: Invalid device "
5109 "[VUID-vkDebugMarkerSetObjectNameEXT-device-parameter]");
5110 abort(); /* Intentionally fail so user can correct issue. */
5111 }
5112 VkDebugMarkerObjectNameInfoEXT local_name_info;
5113 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
5114 // If this is a physical device, we have to replace it with the proper one for the next call.
5115 if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5116 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->object;
5117 local_name_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5118 }
5119 if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5120 struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->object;
5121 local_name_info.object = (uint64_t)(uintptr_t)instance->instance;
5122 }
5123 return disp->DebugMarkerSetObjectNameEXT(device, &local_name_info);
5124 }
5125
terminator_DebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo)5126 VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectNameEXT(
5127 VkDevice device,
5128 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
5129 uint32_t icd_index = 0;
5130 struct loader_device *dev;
5131 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, &icd_index);
5132 if (NULL == icd_term || NULL == dev) {
5133 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectNameEXT: Invalid device handle");
5134 abort(); /* Intentionally fail so user can correct issue. */
5135 }
5136 VkDebugMarkerObjectNameInfoEXT local_name_info;
5137 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
5138 // If this is a physical device, we have to replace it with the proper one for the next call.
5139 if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5140 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->object;
5141 local_name_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5142 // 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.
5143 } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
5144 if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5145 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pNameInfo->object;
5146 if (NULL != icd_surface->real_icd_surfaces) {
5147 local_name_info.object = (uint64_t)icd_surface->real_icd_surfaces[icd_index];
5148 }
5149 }
5150 // If this is an instance we have to replace it with the proper one for the next call.
5151 } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5152 local_name_info.object = (uint64_t)(uintptr_t)icd_term->instance;
5153 }
5154 // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5155 // debug utils but the driver does not.
5156 if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT)
5157 return VK_SUCCESS;
5158 return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT(device, &local_name_info);
5159 }
5160
CmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)5161 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(
5162 VkCommandBuffer commandBuffer,
5163 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
5164 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5165 if (NULL == disp) {
5166 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5167 "vkCmdDebugMarkerBeginEXT: Invalid commandBuffer "
5168 "[VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter]");
5169 abort(); /* Intentionally fail so user can correct issue. */
5170 }
5171 disp->CmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
5172 }
5173
CmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer)5174 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT(
5175 VkCommandBuffer commandBuffer) {
5176 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5177 if (NULL == disp) {
5178 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5179 "vkCmdDebugMarkerEndEXT: Invalid commandBuffer "
5180 "[VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter]");
5181 abort(); /* Intentionally fail so user can correct issue. */
5182 }
5183 disp->CmdDebugMarkerEndEXT(commandBuffer);
5184 }
5185
CmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)5186 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(
5187 VkCommandBuffer commandBuffer,
5188 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
5189 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5190 if (NULL == disp) {
5191 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5192 "vkCmdDebugMarkerInsertEXT: Invalid commandBuffer "
5193 "[VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter]");
5194 abort(); /* Intentionally fail so user can correct issue. */
5195 }
5196 disp->CmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
5197 }
5198
5199
5200 // ---- VK_EXT_transform_feedback extension trampoline/terminators
5201
CmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)5202 VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT(
5203 VkCommandBuffer commandBuffer,
5204 uint32_t firstBinding,
5205 uint32_t bindingCount,
5206 const VkBuffer* pBuffers,
5207 const VkDeviceSize* pOffsets,
5208 const VkDeviceSize* pSizes) {
5209 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5210 if (NULL == disp) {
5211 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5212 "vkCmdBindTransformFeedbackBuffersEXT: Invalid commandBuffer "
5213 "[VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter]");
5214 abort(); /* Intentionally fail so user can correct issue. */
5215 }
5216 disp->CmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes);
5217 }
5218
CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)5219 VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT(
5220 VkCommandBuffer commandBuffer,
5221 uint32_t firstCounterBuffer,
5222 uint32_t counterBufferCount,
5223 const VkBuffer* pCounterBuffers,
5224 const VkDeviceSize* pCounterBufferOffsets) {
5225 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5226 if (NULL == disp) {
5227 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5228 "vkCmdBeginTransformFeedbackEXT: Invalid commandBuffer "
5229 "[VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter]");
5230 abort(); /* Intentionally fail so user can correct issue. */
5231 }
5232 disp->CmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
5233 }
5234
CmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)5235 VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT(
5236 VkCommandBuffer commandBuffer,
5237 uint32_t firstCounterBuffer,
5238 uint32_t counterBufferCount,
5239 const VkBuffer* pCounterBuffers,
5240 const VkDeviceSize* pCounterBufferOffsets) {
5241 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5242 if (NULL == disp) {
5243 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5244 "vkCmdEndTransformFeedbackEXT: Invalid commandBuffer "
5245 "[VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter]");
5246 abort(); /* Intentionally fail so user can correct issue. */
5247 }
5248 disp->CmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
5249 }
5250
CmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)5251 VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT(
5252 VkCommandBuffer commandBuffer,
5253 VkQueryPool queryPool,
5254 uint32_t query,
5255 VkQueryControlFlags flags,
5256 uint32_t index) {
5257 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5258 if (NULL == disp) {
5259 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5260 "vkCmdBeginQueryIndexedEXT: Invalid commandBuffer "
5261 "[VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter]");
5262 abort(); /* Intentionally fail so user can correct issue. */
5263 }
5264 disp->CmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index);
5265 }
5266
CmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)5267 VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT(
5268 VkCommandBuffer commandBuffer,
5269 VkQueryPool queryPool,
5270 uint32_t query,
5271 uint32_t index) {
5272 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5273 if (NULL == disp) {
5274 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5275 "vkCmdEndQueryIndexedEXT: Invalid commandBuffer "
5276 "[VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter]");
5277 abort(); /* Intentionally fail so user can correct issue. */
5278 }
5279 disp->CmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index);
5280 }
5281
CmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)5282 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT(
5283 VkCommandBuffer commandBuffer,
5284 uint32_t instanceCount,
5285 uint32_t firstInstance,
5286 VkBuffer counterBuffer,
5287 VkDeviceSize counterBufferOffset,
5288 uint32_t counterOffset,
5289 uint32_t vertexStride) {
5290 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5291 if (NULL == disp) {
5292 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5293 "vkCmdDrawIndirectByteCountEXT: Invalid commandBuffer "
5294 "[VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter]");
5295 abort(); /* Intentionally fail so user can correct issue. */
5296 }
5297 disp->CmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride);
5298 }
5299
5300
5301 // ---- VK_NVX_binary_import extension trampoline/terminators
5302
CreateCuModuleNVX(VkDevice device,const VkCuModuleCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuModuleNVX * pModule)5303 VKAPI_ATTR VkResult VKAPI_CALL CreateCuModuleNVX(
5304 VkDevice device,
5305 const VkCuModuleCreateInfoNVX* pCreateInfo,
5306 const VkAllocationCallbacks* pAllocator,
5307 VkCuModuleNVX* pModule) {
5308 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5309 if (NULL == disp) {
5310 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5311 "vkCreateCuModuleNVX: Invalid device "
5312 "[VUID-vkCreateCuModuleNVX-device-parameter]");
5313 abort(); /* Intentionally fail so user can correct issue. */
5314 }
5315 return disp->CreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule);
5316 }
5317
CreateCuFunctionNVX(VkDevice device,const VkCuFunctionCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuFunctionNVX * pFunction)5318 VKAPI_ATTR VkResult VKAPI_CALL CreateCuFunctionNVX(
5319 VkDevice device,
5320 const VkCuFunctionCreateInfoNVX* pCreateInfo,
5321 const VkAllocationCallbacks* pAllocator,
5322 VkCuFunctionNVX* pFunction) {
5323 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5324 if (NULL == disp) {
5325 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5326 "vkCreateCuFunctionNVX: Invalid device "
5327 "[VUID-vkCreateCuFunctionNVX-device-parameter]");
5328 abort(); /* Intentionally fail so user can correct issue. */
5329 }
5330 return disp->CreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction);
5331 }
5332
DestroyCuModuleNVX(VkDevice device,VkCuModuleNVX module,const VkAllocationCallbacks * pAllocator)5333 VKAPI_ATTR void VKAPI_CALL DestroyCuModuleNVX(
5334 VkDevice device,
5335 VkCuModuleNVX module,
5336 const VkAllocationCallbacks* pAllocator) {
5337 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5338 if (NULL == disp) {
5339 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5340 "vkDestroyCuModuleNVX: Invalid device "
5341 "[VUID-vkDestroyCuModuleNVX-device-parameter]");
5342 abort(); /* Intentionally fail so user can correct issue. */
5343 }
5344 disp->DestroyCuModuleNVX(device, module, pAllocator);
5345 }
5346
DestroyCuFunctionNVX(VkDevice device,VkCuFunctionNVX function,const VkAllocationCallbacks * pAllocator)5347 VKAPI_ATTR void VKAPI_CALL DestroyCuFunctionNVX(
5348 VkDevice device,
5349 VkCuFunctionNVX function,
5350 const VkAllocationCallbacks* pAllocator) {
5351 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5352 if (NULL == disp) {
5353 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5354 "vkDestroyCuFunctionNVX: Invalid device "
5355 "[VUID-vkDestroyCuFunctionNVX-device-parameter]");
5356 abort(); /* Intentionally fail so user can correct issue. */
5357 }
5358 disp->DestroyCuFunctionNVX(device, function, pAllocator);
5359 }
5360
CmdCuLaunchKernelNVX(VkCommandBuffer commandBuffer,const VkCuLaunchInfoNVX * pLaunchInfo)5361 VKAPI_ATTR void VKAPI_CALL CmdCuLaunchKernelNVX(
5362 VkCommandBuffer commandBuffer,
5363 const VkCuLaunchInfoNVX* pLaunchInfo) {
5364 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5365 if (NULL == disp) {
5366 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5367 "vkCmdCuLaunchKernelNVX: Invalid commandBuffer "
5368 "[VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter]");
5369 abort(); /* Intentionally fail so user can correct issue. */
5370 }
5371 disp->CmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo);
5372 }
5373
5374
5375 // ---- VK_NVX_image_view_handle extension trampoline/terminators
5376
GetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo)5377 VKAPI_ATTR uint32_t VKAPI_CALL GetImageViewHandleNVX(
5378 VkDevice device,
5379 const VkImageViewHandleInfoNVX* pInfo) {
5380 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5381 if (NULL == disp) {
5382 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5383 "vkGetImageViewHandleNVX: Invalid device "
5384 "[VUID-vkGetImageViewHandleNVX-device-parameter]");
5385 abort(); /* Intentionally fail so user can correct issue. */
5386 }
5387 return disp->GetImageViewHandleNVX(device, pInfo);
5388 }
5389
GetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties)5390 VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX(
5391 VkDevice device,
5392 VkImageView imageView,
5393 VkImageViewAddressPropertiesNVX* pProperties) {
5394 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5395 if (NULL == disp) {
5396 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5397 "vkGetImageViewAddressNVX: Invalid device "
5398 "[VUID-vkGetImageViewAddressNVX-device-parameter]");
5399 abort(); /* Intentionally fail so user can correct issue. */
5400 }
5401 return disp->GetImageViewAddressNVX(device, imageView, pProperties);
5402 }
5403
5404
5405 // ---- VK_AMD_draw_indirect_count extension trampoline/terminators
5406
CmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5407 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD(
5408 VkCommandBuffer commandBuffer,
5409 VkBuffer buffer,
5410 VkDeviceSize offset,
5411 VkBuffer countBuffer,
5412 VkDeviceSize countBufferOffset,
5413 uint32_t maxDrawCount,
5414 uint32_t stride) {
5415 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5416 if (NULL == disp) {
5417 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5418 "vkCmdDrawIndirectCountAMD: Invalid commandBuffer "
5419 "[VUID-vkCmdDrawIndirectCountAMD-commandBuffer-parameter]");
5420 abort(); /* Intentionally fail so user can correct issue. */
5421 }
5422 disp->CmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
5423 }
5424
CmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5425 VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD(
5426 VkCommandBuffer commandBuffer,
5427 VkBuffer buffer,
5428 VkDeviceSize offset,
5429 VkBuffer countBuffer,
5430 VkDeviceSize countBufferOffset,
5431 uint32_t maxDrawCount,
5432 uint32_t stride) {
5433 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5434 if (NULL == disp) {
5435 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5436 "vkCmdDrawIndexedIndirectCountAMD: Invalid commandBuffer "
5437 "[VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-parameter]");
5438 abort(); /* Intentionally fail so user can correct issue. */
5439 }
5440 disp->CmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
5441 }
5442
5443
5444 // ---- VK_AMD_shader_info extension trampoline/terminators
5445
GetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo)5446 VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD(
5447 VkDevice device,
5448 VkPipeline pipeline,
5449 VkShaderStageFlagBits shaderStage,
5450 VkShaderInfoTypeAMD infoType,
5451 size_t* pInfoSize,
5452 void* pInfo) {
5453 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5454 if (NULL == disp) {
5455 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5456 "vkGetShaderInfoAMD: Invalid device "
5457 "[VUID-vkGetShaderInfoAMD-device-parameter]");
5458 abort(); /* Intentionally fail so user can correct issue. */
5459 }
5460 return disp->GetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
5461 }
5462
5463
5464 // ---- VK_NV_external_memory_win32 extension trampoline/terminators
5465
5466 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle)5467 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV(
5468 VkDevice device,
5469 VkDeviceMemory memory,
5470 VkExternalMemoryHandleTypeFlagsNV handleType,
5471 HANDLE* pHandle) {
5472 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5473 if (NULL == disp) {
5474 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5475 "vkGetMemoryWin32HandleNV: Invalid device "
5476 "[VUID-vkGetMemoryWin32HandleNV-device-parameter]");
5477 abort(); /* Intentionally fail so user can correct issue. */
5478 }
5479 return disp->GetMemoryWin32HandleNV(device, memory, handleType, pHandle);
5480 }
5481
5482 #endif // VK_USE_PLATFORM_WIN32_KHR
5483
5484 // ---- VK_EXT_conditional_rendering extension trampoline/terminators
5485
CmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin)5486 VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRenderingEXT(
5487 VkCommandBuffer commandBuffer,
5488 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
5489 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5490 if (NULL == disp) {
5491 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5492 "vkCmdBeginConditionalRenderingEXT: Invalid commandBuffer "
5493 "[VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter]");
5494 abort(); /* Intentionally fail so user can correct issue. */
5495 }
5496 disp->CmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
5497 }
5498
CmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer)5499 VKAPI_ATTR void VKAPI_CALL CmdEndConditionalRenderingEXT(
5500 VkCommandBuffer commandBuffer) {
5501 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5502 if (NULL == disp) {
5503 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5504 "vkCmdEndConditionalRenderingEXT: Invalid commandBuffer "
5505 "[VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter]");
5506 abort(); /* Intentionally fail so user can correct issue. */
5507 }
5508 disp->CmdEndConditionalRenderingEXT(commandBuffer);
5509 }
5510
5511
5512 // ---- VK_NV_clip_space_w_scaling extension trampoline/terminators
5513
CmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings)5514 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV(
5515 VkCommandBuffer commandBuffer,
5516 uint32_t firstViewport,
5517 uint32_t viewportCount,
5518 const VkViewportWScalingNV* pViewportWScalings) {
5519 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5520 if (NULL == disp) {
5521 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5522 "vkCmdSetViewportWScalingNV: Invalid commandBuffer "
5523 "[VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter]");
5524 abort(); /* Intentionally fail so user can correct issue. */
5525 }
5526 disp->CmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
5527 }
5528
5529
5530 // ---- VK_EXT_display_control extension trampoline/terminators
5531
DisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo)5532 VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT(
5533 VkDevice device,
5534 VkDisplayKHR display,
5535 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
5536 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5537 if (NULL == disp) {
5538 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5539 "vkDisplayPowerControlEXT: Invalid device "
5540 "[VUID-vkDisplayPowerControlEXT-device-parameter]");
5541 abort(); /* Intentionally fail so user can correct issue. */
5542 }
5543 return disp->DisplayPowerControlEXT(device, display, pDisplayPowerInfo);
5544 }
5545
RegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)5546 VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT(
5547 VkDevice device,
5548 const VkDeviceEventInfoEXT* pDeviceEventInfo,
5549 const VkAllocationCallbacks* pAllocator,
5550 VkFence* pFence) {
5551 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5552 if (NULL == disp) {
5553 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5554 "vkRegisterDeviceEventEXT: Invalid device "
5555 "[VUID-vkRegisterDeviceEventEXT-device-parameter]");
5556 abort(); /* Intentionally fail so user can correct issue. */
5557 }
5558 return disp->RegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
5559 }
5560
RegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)5561 VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT(
5562 VkDevice device,
5563 VkDisplayKHR display,
5564 const VkDisplayEventInfoEXT* pDisplayEventInfo,
5565 const VkAllocationCallbacks* pAllocator,
5566 VkFence* pFence) {
5567 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5568 if (NULL == disp) {
5569 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5570 "vkRegisterDisplayEventEXT: Invalid device "
5571 "[VUID-vkRegisterDisplayEventEXT-device-parameter]");
5572 abort(); /* Intentionally fail so user can correct issue. */
5573 }
5574 return disp->RegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
5575 }
5576
GetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue)5577 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT(
5578 VkDevice device,
5579 VkSwapchainKHR swapchain,
5580 VkSurfaceCounterFlagBitsEXT counter,
5581 uint64_t* pCounterValue) {
5582 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5583 if (NULL == disp) {
5584 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5585 "vkGetSwapchainCounterEXT: Invalid device "
5586 "[VUID-vkGetSwapchainCounterEXT-device-parameter]");
5587 abort(); /* Intentionally fail so user can correct issue. */
5588 }
5589 return disp->GetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
5590 }
5591
5592
5593 // ---- VK_GOOGLE_display_timing extension trampoline/terminators
5594
GetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties)5595 VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE(
5596 VkDevice device,
5597 VkSwapchainKHR swapchain,
5598 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
5599 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5600 if (NULL == disp) {
5601 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5602 "vkGetRefreshCycleDurationGOOGLE: Invalid device "
5603 "[VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter]");
5604 abort(); /* Intentionally fail so user can correct issue. */
5605 }
5606 return disp->GetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
5607 }
5608
GetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings)5609 VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE(
5610 VkDevice device,
5611 VkSwapchainKHR swapchain,
5612 uint32_t* pPresentationTimingCount,
5613 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
5614 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5615 if (NULL == disp) {
5616 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5617 "vkGetPastPresentationTimingGOOGLE: Invalid device "
5618 "[VUID-vkGetPastPresentationTimingGOOGLE-device-parameter]");
5619 abort(); /* Intentionally fail so user can correct issue. */
5620 }
5621 return disp->GetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
5622 }
5623
5624
5625 // ---- VK_EXT_discard_rectangles extension trampoline/terminators
5626
CmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles)5627 VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT(
5628 VkCommandBuffer commandBuffer,
5629 uint32_t firstDiscardRectangle,
5630 uint32_t discardRectangleCount,
5631 const VkRect2D* pDiscardRectangles) {
5632 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5633 if (NULL == disp) {
5634 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5635 "vkCmdSetDiscardRectangleEXT: Invalid commandBuffer "
5636 "[VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter]");
5637 abort(); /* Intentionally fail so user can correct issue. */
5638 }
5639 disp->CmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
5640 }
5641
CmdSetDiscardRectangleEnableEXT(VkCommandBuffer commandBuffer,VkBool32 discardRectangleEnable)5642 VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEnableEXT(
5643 VkCommandBuffer commandBuffer,
5644 VkBool32 discardRectangleEnable) {
5645 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5646 if (NULL == disp) {
5647 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5648 "vkCmdSetDiscardRectangleEnableEXT: Invalid commandBuffer "
5649 "[VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameter]");
5650 abort(); /* Intentionally fail so user can correct issue. */
5651 }
5652 disp->CmdSetDiscardRectangleEnableEXT(commandBuffer, discardRectangleEnable);
5653 }
5654
CmdSetDiscardRectangleModeEXT(VkCommandBuffer commandBuffer,VkDiscardRectangleModeEXT discardRectangleMode)5655 VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleModeEXT(
5656 VkCommandBuffer commandBuffer,
5657 VkDiscardRectangleModeEXT discardRectangleMode) {
5658 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5659 if (NULL == disp) {
5660 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5661 "vkCmdSetDiscardRectangleModeEXT: Invalid commandBuffer "
5662 "[VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameter]");
5663 abort(); /* Intentionally fail so user can correct issue. */
5664 }
5665 disp->CmdSetDiscardRectangleModeEXT(commandBuffer, discardRectangleMode);
5666 }
5667
5668
5669 // ---- VK_EXT_hdr_metadata extension trampoline/terminators
5670
SetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata)5671 VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT(
5672 VkDevice device,
5673 uint32_t swapchainCount,
5674 const VkSwapchainKHR* pSwapchains,
5675 const VkHdrMetadataEXT* pMetadata) {
5676 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5677 if (NULL == disp) {
5678 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5679 "vkSetHdrMetadataEXT: Invalid device "
5680 "[VUID-vkSetHdrMetadataEXT-device-parameter]");
5681 abort(); /* Intentionally fail so user can correct issue. */
5682 }
5683 disp->SetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
5684 }
5685
5686
5687 // ---- VK_EXT_debug_utils extension trampoline/terminators
5688
SetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)5689 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
5690 VkDevice device,
5691 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
5692 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5693 if (NULL == disp) {
5694 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5695 "vkSetDebugUtilsObjectNameEXT: Invalid device "
5696 "[VUID-vkSetDebugUtilsObjectNameEXT-device-parameter]");
5697 abort(); /* Intentionally fail so user can correct issue. */
5698 }
5699 VkDebugUtilsObjectNameInfoEXT local_name_info;
5700 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
5701 // If this is a physical device, we have to replace it with the proper one for the next call.
5702 if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
5703 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->objectHandle;
5704 local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5705 }
5706 if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
5707 struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->objectHandle;
5708 local_name_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
5709 }
5710 if (disp->SetDebugUtilsObjectNameEXT != NULL) {
5711 return disp->SetDebugUtilsObjectNameEXT(device, &local_name_info);
5712 } else {
5713 return VK_SUCCESS;
5714 }
5715 }
5716
terminator_SetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)5717 VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectNameEXT(
5718 VkDevice device,
5719 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
5720 uint32_t icd_index = 0;
5721 struct loader_device *dev;
5722 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, &icd_index);
5723 if (NULL == icd_term || NULL == dev) {
5724 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectNameEXT: Invalid device handle");
5725 abort(); /* Intentionally fail so user can correct issue. */
5726 }
5727 VkDebugUtilsObjectNameInfoEXT local_name_info;
5728 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
5729 // If this is a physical device, we have to replace it with the proper one for the next call.
5730 if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
5731 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->objectHandle;
5732 local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5733 // 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.
5734 } else if (pNameInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
5735 if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5736 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pNameInfo->objectHandle;
5737 if (NULL != icd_surface->real_icd_surfaces) {
5738 local_name_info.objectHandle = (uint64_t)icd_surface->real_icd_surfaces[icd_index];
5739 }
5740 }
5741 // If this is an instance we have to replace it with the proper one for the next call.
5742 } else if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
5743 local_name_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
5744 }
5745 // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5746 // debug utils but the driver does not.
5747 if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT)
5748 return VK_SUCCESS;
5749 return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT(device, &local_name_info);
5750 }
5751
SetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)5752 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
5753 VkDevice device,
5754 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
5755 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5756 if (NULL == disp) {
5757 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5758 "vkSetDebugUtilsObjectTagEXT: Invalid device "
5759 "[VUID-vkSetDebugUtilsObjectTagEXT-device-parameter]");
5760 abort(); /* Intentionally fail so user can correct issue. */
5761 }
5762 VkDebugUtilsObjectTagInfoEXT local_tag_info;
5763 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
5764 // If this is a physical device, we have to replace it with the proper one for the next call.
5765 if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
5766 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->objectHandle;
5767 local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5768 }
5769 if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
5770 struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->objectHandle;
5771 local_tag_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
5772 }
5773 if (disp->SetDebugUtilsObjectTagEXT != NULL) {
5774 return disp->SetDebugUtilsObjectTagEXT(device, &local_tag_info);
5775 } else {
5776 return VK_SUCCESS;
5777 }
5778 }
5779
terminator_SetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)5780 VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectTagEXT(
5781 VkDevice device,
5782 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
5783 uint32_t icd_index = 0;
5784 struct loader_device *dev;
5785 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev, &icd_index);
5786 if (NULL == icd_term || NULL == dev) {
5787 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectTagEXT: Invalid device handle");
5788 abort(); /* Intentionally fail so user can correct issue. */
5789 }
5790 VkDebugUtilsObjectTagInfoEXT local_tag_info;
5791 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
5792 // If this is a physical device, we have to replace it with the proper one for the next call.
5793 if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
5794 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->objectHandle;
5795 local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5796 // 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.
5797 } else if (pTagInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
5798 if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5799 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pTagInfo->objectHandle;
5800 if (NULL != icd_surface->real_icd_surfaces) {
5801 local_tag_info.objectHandle = (uint64_t)icd_surface->real_icd_surfaces[icd_index];
5802 }
5803 }
5804 // If this is an instance we have to replace it with the proper one for the next call.
5805 } else if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
5806 local_tag_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
5807 }
5808 // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5809 // debug utils but the driver does not.
5810 if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT)
5811 return VK_SUCCESS;
5812 return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT(device, &local_tag_info);
5813 }
5814
QueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)5815 VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT(
5816 VkQueue queue,
5817 const VkDebugUtilsLabelEXT* pLabelInfo) {
5818 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
5819 if (NULL == disp) {
5820 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5821 "vkQueueBeginDebugUtilsLabelEXT: Invalid queue "
5822 "[VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter]");
5823 abort(); /* Intentionally fail so user can correct issue. */
5824 }
5825 if (disp->QueueBeginDebugUtilsLabelEXT != NULL) {
5826 disp->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
5827 }
5828 }
5829
terminator_QueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)5830 VKAPI_ATTR void VKAPI_CALL terminator_QueueBeginDebugUtilsLabelEXT(
5831 VkQueue queue,
5832 const VkDebugUtilsLabelEXT* pLabelInfo) {
5833 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
5834 if (NULL == dispatch_table) {
5835 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
5836 abort(); /* Intentionally fail so user can correct issue. */
5837 }
5838 // Only call down if the device supports the function
5839 if (NULL != dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT)
5840 dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
5841 }
5842
QueueEndDebugUtilsLabelEXT(VkQueue queue)5843 VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT(
5844 VkQueue queue) {
5845 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
5846 if (NULL == disp) {
5847 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5848 "vkQueueEndDebugUtilsLabelEXT: Invalid queue "
5849 "[VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter]");
5850 abort(); /* Intentionally fail so user can correct issue. */
5851 }
5852 if (disp->QueueEndDebugUtilsLabelEXT != NULL) {
5853 disp->QueueEndDebugUtilsLabelEXT(queue);
5854 }
5855 }
5856
terminator_QueueEndDebugUtilsLabelEXT(VkQueue queue)5857 VKAPI_ATTR void VKAPI_CALL terminator_QueueEndDebugUtilsLabelEXT(
5858 VkQueue queue) {
5859 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
5860 if (NULL == dispatch_table) {
5861 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
5862 abort(); /* Intentionally fail so user can correct issue. */
5863 }
5864 // Only call down if the device supports the function
5865 if (NULL != dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT)
5866 dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT(queue);
5867 }
5868
QueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)5869 VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT(
5870 VkQueue queue,
5871 const VkDebugUtilsLabelEXT* pLabelInfo) {
5872 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
5873 if (NULL == disp) {
5874 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5875 "vkQueueInsertDebugUtilsLabelEXT: Invalid queue "
5876 "[VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter]");
5877 abort(); /* Intentionally fail so user can correct issue. */
5878 }
5879 if (disp->QueueInsertDebugUtilsLabelEXT != NULL) {
5880 disp->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
5881 }
5882 }
5883
terminator_QueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)5884 VKAPI_ATTR void VKAPI_CALL terminator_QueueInsertDebugUtilsLabelEXT(
5885 VkQueue queue,
5886 const VkDebugUtilsLabelEXT* pLabelInfo) {
5887 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
5888 if (NULL == dispatch_table) {
5889 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
5890 abort(); /* Intentionally fail so user can correct issue. */
5891 }
5892 // Only call down if the device supports the function
5893 if (NULL != dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT)
5894 dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
5895 }
5896
CmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)5897 VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT(
5898 VkCommandBuffer commandBuffer,
5899 const VkDebugUtilsLabelEXT* pLabelInfo) {
5900 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5901 if (NULL == disp) {
5902 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5903 "vkCmdBeginDebugUtilsLabelEXT: Invalid commandBuffer "
5904 "[VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter]");
5905 abort(); /* Intentionally fail so user can correct issue. */
5906 }
5907 if (disp->CmdBeginDebugUtilsLabelEXT != NULL) {
5908 disp->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
5909 }
5910 }
5911
terminator_CmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)5912 VKAPI_ATTR void VKAPI_CALL terminator_CmdBeginDebugUtilsLabelEXT(
5913 VkCommandBuffer commandBuffer,
5914 const VkDebugUtilsLabelEXT* pLabelInfo) {
5915 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
5916 if (NULL == dispatch_table) {
5917 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
5918 abort(); /* Intentionally fail so user can correct issue. */
5919 }
5920 // Only call down if the device supports the function
5921 if (NULL != dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT)
5922 dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
5923 }
5924
CmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)5925 VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT(
5926 VkCommandBuffer commandBuffer) {
5927 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5928 if (NULL == disp) {
5929 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5930 "vkCmdEndDebugUtilsLabelEXT: Invalid commandBuffer "
5931 "[VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter]");
5932 abort(); /* Intentionally fail so user can correct issue. */
5933 }
5934 if (disp->CmdEndDebugUtilsLabelEXT != NULL) {
5935 disp->CmdEndDebugUtilsLabelEXT(commandBuffer);
5936 }
5937 }
5938
terminator_CmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)5939 VKAPI_ATTR void VKAPI_CALL terminator_CmdEndDebugUtilsLabelEXT(
5940 VkCommandBuffer commandBuffer) {
5941 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
5942 if (NULL == dispatch_table) {
5943 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
5944 abort(); /* Intentionally fail so user can correct issue. */
5945 }
5946 // Only call down if the device supports the function
5947 if (NULL != dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT)
5948 dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT(commandBuffer);
5949 }
5950
CmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)5951 VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT(
5952 VkCommandBuffer commandBuffer,
5953 const VkDebugUtilsLabelEXT* pLabelInfo) {
5954 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5955 if (NULL == disp) {
5956 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5957 "vkCmdInsertDebugUtilsLabelEXT: Invalid commandBuffer "
5958 "[VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter]");
5959 abort(); /* Intentionally fail so user can correct issue. */
5960 }
5961 if (disp->CmdInsertDebugUtilsLabelEXT != NULL) {
5962 disp->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
5963 }
5964 }
5965
terminator_CmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)5966 VKAPI_ATTR void VKAPI_CALL terminator_CmdInsertDebugUtilsLabelEXT(
5967 VkCommandBuffer commandBuffer,
5968 const VkDebugUtilsLabelEXT* pLabelInfo) {
5969 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
5970 if (NULL == dispatch_table) {
5971 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
5972 abort(); /* Intentionally fail so user can correct issue. */
5973 }
5974 // Only call down if the device supports the function
5975 if (NULL != dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT)
5976 dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
5977 }
5978
5979
5980 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension trampoline/terminators
5981
5982 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
GetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties)5983 VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID(
5984 VkDevice device,
5985 const struct AHardwareBuffer* buffer,
5986 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
5987 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5988 if (NULL == disp) {
5989 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5990 "vkGetAndroidHardwareBufferPropertiesANDROID: Invalid device "
5991 "[VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter]");
5992 abort(); /* Intentionally fail so user can correct issue. */
5993 }
5994 return disp->GetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
5995 }
5996
5997 #endif // VK_USE_PLATFORM_ANDROID_KHR
5998 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
GetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer)5999 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID(
6000 VkDevice device,
6001 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
6002 struct AHardwareBuffer** pBuffer) {
6003 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6004 if (NULL == disp) {
6005 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6006 "vkGetMemoryAndroidHardwareBufferANDROID: Invalid device "
6007 "[VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter]");
6008 abort(); /* Intentionally fail so user can correct issue. */
6009 }
6010 return disp->GetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
6011 }
6012
6013 #endif // VK_USE_PLATFORM_ANDROID_KHR
6014
6015 // ---- VK_AMDX_shader_enqueue extension trampoline/terminators
6016
6017 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CreateExecutionGraphPipelinesAMDX(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkExecutionGraphPipelineCreateInfoAMDX * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)6018 VKAPI_ATTR VkResult VKAPI_CALL CreateExecutionGraphPipelinesAMDX(
6019 VkDevice device,
6020 VkPipelineCache pipelineCache,
6021 uint32_t createInfoCount,
6022 const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
6023 const VkAllocationCallbacks* pAllocator,
6024 VkPipeline* pPipelines) {
6025 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6026 if (NULL == disp) {
6027 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6028 "vkCreateExecutionGraphPipelinesAMDX: Invalid device "
6029 "[VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter]");
6030 abort(); /* Intentionally fail so user can correct issue. */
6031 }
6032 return disp->CreateExecutionGraphPipelinesAMDX(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
6033 }
6034
6035 #endif // VK_ENABLE_BETA_EXTENSIONS
6036 #if defined(VK_ENABLE_BETA_EXTENSIONS)
GetExecutionGraphPipelineScratchSizeAMDX(VkDevice device,VkPipeline executionGraph,VkExecutionGraphPipelineScratchSizeAMDX * pSizeInfo)6037 VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineScratchSizeAMDX(
6038 VkDevice device,
6039 VkPipeline executionGraph,
6040 VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo) {
6041 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6042 if (NULL == disp) {
6043 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6044 "vkGetExecutionGraphPipelineScratchSizeAMDX: Invalid device "
6045 "[VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter]");
6046 abort(); /* Intentionally fail so user can correct issue. */
6047 }
6048 return disp->GetExecutionGraphPipelineScratchSizeAMDX(device, executionGraph, pSizeInfo);
6049 }
6050
6051 #endif // VK_ENABLE_BETA_EXTENSIONS
6052 #if defined(VK_ENABLE_BETA_EXTENSIONS)
GetExecutionGraphPipelineNodeIndexAMDX(VkDevice device,VkPipeline executionGraph,const VkPipelineShaderStageNodeCreateInfoAMDX * pNodeInfo,uint32_t * pNodeIndex)6053 VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineNodeIndexAMDX(
6054 VkDevice device,
6055 VkPipeline executionGraph,
6056 const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo,
6057 uint32_t* pNodeIndex) {
6058 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6059 if (NULL == disp) {
6060 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6061 "vkGetExecutionGraphPipelineNodeIndexAMDX: Invalid device "
6062 "[VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter]");
6063 abort(); /* Intentionally fail so user can correct issue. */
6064 }
6065 return disp->GetExecutionGraphPipelineNodeIndexAMDX(device, executionGraph, pNodeInfo, pNodeIndex);
6066 }
6067
6068 #endif // VK_ENABLE_BETA_EXTENSIONS
6069 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CmdInitializeGraphScratchMemoryAMDX(VkCommandBuffer commandBuffer,VkDeviceAddress scratch)6070 VKAPI_ATTR void VKAPI_CALL CmdInitializeGraphScratchMemoryAMDX(
6071 VkCommandBuffer commandBuffer,
6072 VkDeviceAddress scratch) {
6073 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6074 if (NULL == disp) {
6075 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6076 "vkCmdInitializeGraphScratchMemoryAMDX: Invalid commandBuffer "
6077 "[VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter]");
6078 abort(); /* Intentionally fail so user can correct issue. */
6079 }
6080 disp->CmdInitializeGraphScratchMemoryAMDX(commandBuffer, scratch);
6081 }
6082
6083 #endif // VK_ENABLE_BETA_EXTENSIONS
6084 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CmdDispatchGraphAMDX(VkCommandBuffer commandBuffer,VkDeviceAddress scratch,const VkDispatchGraphCountInfoAMDX * pCountInfo)6085 VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphAMDX(
6086 VkCommandBuffer commandBuffer,
6087 VkDeviceAddress scratch,
6088 const VkDispatchGraphCountInfoAMDX* pCountInfo) {
6089 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6090 if (NULL == disp) {
6091 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6092 "vkCmdDispatchGraphAMDX: Invalid commandBuffer "
6093 "[VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter]");
6094 abort(); /* Intentionally fail so user can correct issue. */
6095 }
6096 disp->CmdDispatchGraphAMDX(commandBuffer, scratch, pCountInfo);
6097 }
6098
6099 #endif // VK_ENABLE_BETA_EXTENSIONS
6100 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer,VkDeviceAddress scratch,const VkDispatchGraphCountInfoAMDX * pCountInfo)6101 VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectAMDX(
6102 VkCommandBuffer commandBuffer,
6103 VkDeviceAddress scratch,
6104 const VkDispatchGraphCountInfoAMDX* pCountInfo) {
6105 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6106 if (NULL == disp) {
6107 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6108 "vkCmdDispatchGraphIndirectAMDX: Invalid commandBuffer "
6109 "[VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter]");
6110 abort(); /* Intentionally fail so user can correct issue. */
6111 }
6112 disp->CmdDispatchGraphIndirectAMDX(commandBuffer, scratch, pCountInfo);
6113 }
6114
6115 #endif // VK_ENABLE_BETA_EXTENSIONS
6116 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CmdDispatchGraphIndirectCountAMDX(VkCommandBuffer commandBuffer,VkDeviceAddress scratch,VkDeviceAddress countInfo)6117 VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectCountAMDX(
6118 VkCommandBuffer commandBuffer,
6119 VkDeviceAddress scratch,
6120 VkDeviceAddress countInfo) {
6121 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6122 if (NULL == disp) {
6123 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6124 "vkCmdDispatchGraphIndirectCountAMDX: Invalid commandBuffer "
6125 "[VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter]");
6126 abort(); /* Intentionally fail so user can correct issue. */
6127 }
6128 disp->CmdDispatchGraphIndirectCountAMDX(commandBuffer, scratch, countInfo);
6129 }
6130
6131 #endif // VK_ENABLE_BETA_EXTENSIONS
6132
6133 // ---- VK_EXT_sample_locations extension trampoline/terminators
6134
CmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo)6135 VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEXT(
6136 VkCommandBuffer commandBuffer,
6137 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
6138 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6139 if (NULL == disp) {
6140 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6141 "vkCmdSetSampleLocationsEXT: Invalid commandBuffer "
6142 "[VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter]");
6143 abort(); /* Intentionally fail so user can correct issue. */
6144 }
6145 disp->CmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
6146 }
6147
GetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties)6148 VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT(
6149 VkPhysicalDevice physicalDevice,
6150 VkSampleCountFlagBits samples,
6151 VkMultisamplePropertiesEXT* pMultisampleProperties) {
6152 const VkLayerInstanceDispatchTable *disp;
6153 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6154 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6155 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6156 "vkGetPhysicalDeviceMultisamplePropertiesEXT: Invalid physicalDevice "
6157 "[VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter]");
6158 abort(); /* Intentionally fail so user can correct issue. */
6159 }
6160 disp = loader_get_instance_layer_dispatch(physicalDevice);
6161 disp->GetPhysicalDeviceMultisamplePropertiesEXT(unwrapped_phys_dev, samples, pMultisampleProperties);
6162 }
6163
terminator_GetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties)6164 VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMultisamplePropertiesEXT(
6165 VkPhysicalDevice physicalDevice,
6166 VkSampleCountFlagBits samples,
6167 VkMultisamplePropertiesEXT* pMultisampleProperties) {
6168 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6169 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6170 if (NULL == icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT) {
6171 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
6172 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceMultisamplePropertiesEXT");
6173 abort(); /* Intentionally fail so user can correct issue. */
6174 }
6175 icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT(phys_dev_term->phys_dev, samples, pMultisampleProperties);
6176 }
6177
6178
6179 // ---- VK_EXT_image_drm_format_modifier extension trampoline/terminators
6180
GetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties)6181 VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT(
6182 VkDevice device,
6183 VkImage image,
6184 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
6185 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6186 if (NULL == disp) {
6187 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6188 "vkGetImageDrmFormatModifierPropertiesEXT: Invalid device "
6189 "[VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter]");
6190 abort(); /* Intentionally fail so user can correct issue. */
6191 }
6192 return disp->GetImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
6193 }
6194
6195
6196 // ---- VK_EXT_validation_cache extension trampoline/terminators
6197
CreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache)6198 VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT(
6199 VkDevice device,
6200 const VkValidationCacheCreateInfoEXT* pCreateInfo,
6201 const VkAllocationCallbacks* pAllocator,
6202 VkValidationCacheEXT* pValidationCache) {
6203 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6204 if (NULL == disp) {
6205 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6206 "vkCreateValidationCacheEXT: Invalid device "
6207 "[VUID-vkCreateValidationCacheEXT-device-parameter]");
6208 abort(); /* Intentionally fail so user can correct issue. */
6209 }
6210 return disp->CreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
6211 }
6212
DestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator)6213 VKAPI_ATTR void VKAPI_CALL DestroyValidationCacheEXT(
6214 VkDevice device,
6215 VkValidationCacheEXT validationCache,
6216 const VkAllocationCallbacks* pAllocator) {
6217 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6218 if (NULL == disp) {
6219 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6220 "vkDestroyValidationCacheEXT: Invalid device "
6221 "[VUID-vkDestroyValidationCacheEXT-device-parameter]");
6222 abort(); /* Intentionally fail so user can correct issue. */
6223 }
6224 disp->DestroyValidationCacheEXT(device, validationCache, pAllocator);
6225 }
6226
MergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches)6227 VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT(
6228 VkDevice device,
6229 VkValidationCacheEXT dstCache,
6230 uint32_t srcCacheCount,
6231 const VkValidationCacheEXT* pSrcCaches) {
6232 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6233 if (NULL == disp) {
6234 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6235 "vkMergeValidationCachesEXT: Invalid device "
6236 "[VUID-vkMergeValidationCachesEXT-device-parameter]");
6237 abort(); /* Intentionally fail so user can correct issue. */
6238 }
6239 return disp->MergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
6240 }
6241
GetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData)6242 VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT(
6243 VkDevice device,
6244 VkValidationCacheEXT validationCache,
6245 size_t* pDataSize,
6246 void* pData) {
6247 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6248 if (NULL == disp) {
6249 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6250 "vkGetValidationCacheDataEXT: Invalid device "
6251 "[VUID-vkGetValidationCacheDataEXT-device-parameter]");
6252 abort(); /* Intentionally fail so user can correct issue. */
6253 }
6254 return disp->GetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
6255 }
6256
6257
6258 // ---- VK_NV_shading_rate_image extension trampoline/terminators
6259
CmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)6260 VKAPI_ATTR void VKAPI_CALL CmdBindShadingRateImageNV(
6261 VkCommandBuffer commandBuffer,
6262 VkImageView imageView,
6263 VkImageLayout imageLayout) {
6264 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6265 if (NULL == disp) {
6266 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6267 "vkCmdBindShadingRateImageNV: Invalid commandBuffer "
6268 "[VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter]");
6269 abort(); /* Intentionally fail so user can correct issue. */
6270 }
6271 disp->CmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout);
6272 }
6273
CmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes)6274 VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV(
6275 VkCommandBuffer commandBuffer,
6276 uint32_t firstViewport,
6277 uint32_t viewportCount,
6278 const VkShadingRatePaletteNV* pShadingRatePalettes) {
6279 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6280 if (NULL == disp) {
6281 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6282 "vkCmdSetViewportShadingRatePaletteNV: Invalid commandBuffer "
6283 "[VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter]");
6284 abort(); /* Intentionally fail so user can correct issue. */
6285 }
6286 disp->CmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes);
6287 }
6288
CmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders)6289 VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV(
6290 VkCommandBuffer commandBuffer,
6291 VkCoarseSampleOrderTypeNV sampleOrderType,
6292 uint32_t customSampleOrderCount,
6293 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
6294 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6295 if (NULL == disp) {
6296 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6297 "vkCmdSetCoarseSampleOrderNV: Invalid commandBuffer "
6298 "[VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter]");
6299 abort(); /* Intentionally fail so user can correct issue. */
6300 }
6301 disp->CmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders);
6302 }
6303
6304
6305 // ---- VK_NV_ray_tracing extension trampoline/terminators
6306
CreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure)6307 VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV(
6308 VkDevice device,
6309 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
6310 const VkAllocationCallbacks* pAllocator,
6311 VkAccelerationStructureNV* pAccelerationStructure) {
6312 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6313 if (NULL == disp) {
6314 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6315 "vkCreateAccelerationStructureNV: Invalid device "
6316 "[VUID-vkCreateAccelerationStructureNV-device-parameter]");
6317 abort(); /* Intentionally fail so user can correct issue. */
6318 }
6319 return disp->CreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
6320 }
6321
DestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator)6322 VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureNV(
6323 VkDevice device,
6324 VkAccelerationStructureNV accelerationStructure,
6325 const VkAllocationCallbacks* pAllocator) {
6326 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6327 if (NULL == disp) {
6328 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6329 "vkDestroyAccelerationStructureNV: Invalid device "
6330 "[VUID-vkDestroyAccelerationStructureNV-device-parameter]");
6331 abort(); /* Intentionally fail so user can correct issue. */
6332 }
6333 disp->DestroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
6334 }
6335
GetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements)6336 VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureMemoryRequirementsNV(
6337 VkDevice device,
6338 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
6339 VkMemoryRequirements2KHR* pMemoryRequirements) {
6340 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6341 if (NULL == disp) {
6342 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6343 "vkGetAccelerationStructureMemoryRequirementsNV: Invalid device "
6344 "[VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter]");
6345 abort(); /* Intentionally fail so user can correct issue. */
6346 }
6347 disp->GetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
6348 }
6349
BindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos)6350 VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV(
6351 VkDevice device,
6352 uint32_t bindInfoCount,
6353 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
6354 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6355 if (NULL == disp) {
6356 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6357 "vkBindAccelerationStructureMemoryNV: Invalid device "
6358 "[VUID-vkBindAccelerationStructureMemoryNV-device-parameter]");
6359 abort(); /* Intentionally fail so user can correct issue. */
6360 }
6361 return disp->BindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
6362 }
6363
CmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset)6364 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV(
6365 VkCommandBuffer commandBuffer,
6366 const VkAccelerationStructureInfoNV* pInfo,
6367 VkBuffer instanceData,
6368 VkDeviceSize instanceOffset,
6369 VkBool32 update,
6370 VkAccelerationStructureNV dst,
6371 VkAccelerationStructureNV src,
6372 VkBuffer scratch,
6373 VkDeviceSize scratchOffset) {
6374 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6375 if (NULL == disp) {
6376 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6377 "vkCmdBuildAccelerationStructureNV: Invalid commandBuffer "
6378 "[VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter]");
6379 abort(); /* Intentionally fail so user can correct issue. */
6380 }
6381 disp->CmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
6382 }
6383
CmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeKHR mode)6384 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV(
6385 VkCommandBuffer commandBuffer,
6386 VkAccelerationStructureNV dst,
6387 VkAccelerationStructureNV src,
6388 VkCopyAccelerationStructureModeKHR mode) {
6389 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6390 if (NULL == disp) {
6391 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6392 "vkCmdCopyAccelerationStructureNV: Invalid commandBuffer "
6393 "[VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter]");
6394 abort(); /* Intentionally fail so user can correct issue. */
6395 }
6396 disp->CmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
6397 }
6398
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)6399 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV(
6400 VkCommandBuffer commandBuffer,
6401 VkBuffer raygenShaderBindingTableBuffer,
6402 VkDeviceSize raygenShaderBindingOffset,
6403 VkBuffer missShaderBindingTableBuffer,
6404 VkDeviceSize missShaderBindingOffset,
6405 VkDeviceSize missShaderBindingStride,
6406 VkBuffer hitShaderBindingTableBuffer,
6407 VkDeviceSize hitShaderBindingOffset,
6408 VkDeviceSize hitShaderBindingStride,
6409 VkBuffer callableShaderBindingTableBuffer,
6410 VkDeviceSize callableShaderBindingOffset,
6411 VkDeviceSize callableShaderBindingStride,
6412 uint32_t width,
6413 uint32_t height,
6414 uint32_t depth) {
6415 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6416 if (NULL == disp) {
6417 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6418 "vkCmdTraceRaysNV: Invalid commandBuffer "
6419 "[VUID-vkCmdTraceRaysNV-commandBuffer-parameter]");
6420 abort(); /* Intentionally fail so user can correct issue. */
6421 }
6422 disp->CmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth);
6423 }
6424
CreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)6425 VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesNV(
6426 VkDevice device,
6427 VkPipelineCache pipelineCache,
6428 uint32_t createInfoCount,
6429 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
6430 const VkAllocationCallbacks* pAllocator,
6431 VkPipeline* pPipelines) {
6432 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6433 if (NULL == disp) {
6434 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6435 "vkCreateRayTracingPipelinesNV: Invalid device "
6436 "[VUID-vkCreateRayTracingPipelinesNV-device-parameter]");
6437 abort(); /* Intentionally fail so user can correct issue. */
6438 }
6439 return disp->CreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
6440 }
6441
GetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)6442 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR(
6443 VkDevice device,
6444 VkPipeline pipeline,
6445 uint32_t firstGroup,
6446 uint32_t groupCount,
6447 size_t dataSize,
6448 void* pData) {
6449 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6450 if (NULL == disp) {
6451 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6452 "vkGetRayTracingShaderGroupHandlesKHR: Invalid device "
6453 "[VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter]");
6454 abort(); /* Intentionally fail so user can correct issue. */
6455 }
6456 return disp->GetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
6457 }
6458
GetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)6459 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV(
6460 VkDevice device,
6461 VkPipeline pipeline,
6462 uint32_t firstGroup,
6463 uint32_t groupCount,
6464 size_t dataSize,
6465 void* pData) {
6466 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6467 if (NULL == disp) {
6468 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6469 "vkGetRayTracingShaderGroupHandlesNV: Invalid device "
6470 "[VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter]");
6471 abort(); /* Intentionally fail so user can correct issue. */
6472 }
6473 return disp->GetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData);
6474 }
6475
GetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData)6476 VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV(
6477 VkDevice device,
6478 VkAccelerationStructureNV accelerationStructure,
6479 size_t dataSize,
6480 void* pData) {
6481 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6482 if (NULL == disp) {
6483 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6484 "vkGetAccelerationStructureHandleNV: Invalid device "
6485 "[VUID-vkGetAccelerationStructureHandleNV-device-parameter]");
6486 abort(); /* Intentionally fail so user can correct issue. */
6487 }
6488 return disp->GetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
6489 }
6490
CmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)6491 VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV(
6492 VkCommandBuffer commandBuffer,
6493 uint32_t accelerationStructureCount,
6494 const VkAccelerationStructureNV* pAccelerationStructures,
6495 VkQueryType queryType,
6496 VkQueryPool queryPool,
6497 uint32_t firstQuery) {
6498 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6499 if (NULL == disp) {
6500 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6501 "vkCmdWriteAccelerationStructuresPropertiesNV: Invalid commandBuffer "
6502 "[VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter]");
6503 abort(); /* Intentionally fail so user can correct issue. */
6504 }
6505 disp->CmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
6506 }
6507
CompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader)6508 VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV(
6509 VkDevice device,
6510 VkPipeline pipeline,
6511 uint32_t shader) {
6512 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6513 if (NULL == disp) {
6514 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6515 "vkCompileDeferredNV: Invalid device "
6516 "[VUID-vkCompileDeferredNV-device-parameter]");
6517 abort(); /* Intentionally fail so user can correct issue. */
6518 }
6519 return disp->CompileDeferredNV(device, pipeline, shader);
6520 }
6521
6522
6523 // ---- VK_EXT_external_memory_host extension trampoline/terminators
6524
GetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties)6525 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT(
6526 VkDevice device,
6527 VkExternalMemoryHandleTypeFlagBits handleType,
6528 const void* pHostPointer,
6529 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
6530 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6531 if (NULL == disp) {
6532 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6533 "vkGetMemoryHostPointerPropertiesEXT: Invalid device "
6534 "[VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter]");
6535 abort(); /* Intentionally fail so user can correct issue. */
6536 }
6537 return disp->GetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
6538 }
6539
6540
6541 // ---- VK_AMD_buffer_marker extension trampoline/terminators
6542
CmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)6543 VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD(
6544 VkCommandBuffer commandBuffer,
6545 VkPipelineStageFlagBits pipelineStage,
6546 VkBuffer dstBuffer,
6547 VkDeviceSize dstOffset,
6548 uint32_t marker) {
6549 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6550 if (NULL == disp) {
6551 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6552 "vkCmdWriteBufferMarkerAMD: Invalid commandBuffer "
6553 "[VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter]");
6554 abort(); /* Intentionally fail so user can correct issue. */
6555 }
6556 disp->CmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
6557 }
6558
6559
6560 // ---- VK_EXT_calibrated_timestamps extension trampoline/terminators
6561
GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainKHR * pTimeDomains)6562 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(
6563 VkPhysicalDevice physicalDevice,
6564 uint32_t* pTimeDomainCount,
6565 VkTimeDomainKHR* pTimeDomains) {
6566 const VkLayerInstanceDispatchTable *disp;
6567 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6568 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6569 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6570 "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: Invalid physicalDevice "
6571 "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter]");
6572 abort(); /* Intentionally fail so user can correct issue. */
6573 }
6574 disp = loader_get_instance_layer_dispatch(physicalDevice);
6575 return disp->GetPhysicalDeviceCalibrateableTimeDomainsEXT(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
6576 }
6577
terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainKHR * pTimeDomains)6578 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(
6579 VkPhysicalDevice physicalDevice,
6580 uint32_t* pTimeDomainCount,
6581 VkTimeDomainKHR* pTimeDomains) {
6582 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6583 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6584 if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT) {
6585 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
6586 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsEXT");
6587 abort(); /* Intentionally fail so user can correct issue. */
6588 }
6589 return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
6590 }
6591
GetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoKHR * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation)6592 VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT(
6593 VkDevice device,
6594 uint32_t timestampCount,
6595 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
6596 uint64_t* pTimestamps,
6597 uint64_t* pMaxDeviation) {
6598 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6599 if (NULL == disp) {
6600 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6601 "vkGetCalibratedTimestampsEXT: Invalid device "
6602 "[VUID-vkGetCalibratedTimestampsEXT-device-parameter]");
6603 abort(); /* Intentionally fail so user can correct issue. */
6604 }
6605 return disp->GetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
6606 }
6607
6608
6609 // ---- VK_NV_mesh_shader extension trampoline/terminators
6610
CmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask)6611 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV(
6612 VkCommandBuffer commandBuffer,
6613 uint32_t taskCount,
6614 uint32_t firstTask) {
6615 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6616 if (NULL == disp) {
6617 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6618 "vkCmdDrawMeshTasksNV: Invalid commandBuffer "
6619 "[VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter]");
6620 abort(); /* Intentionally fail so user can correct issue. */
6621 }
6622 disp->CmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask);
6623 }
6624
CmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)6625 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV(
6626 VkCommandBuffer commandBuffer,
6627 VkBuffer buffer,
6628 VkDeviceSize offset,
6629 uint32_t drawCount,
6630 uint32_t stride) {
6631 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6632 if (NULL == disp) {
6633 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6634 "vkCmdDrawMeshTasksIndirectNV: Invalid commandBuffer "
6635 "[VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter]");
6636 abort(); /* Intentionally fail so user can correct issue. */
6637 }
6638 disp->CmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride);
6639 }
6640
CmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)6641 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV(
6642 VkCommandBuffer commandBuffer,
6643 VkBuffer buffer,
6644 VkDeviceSize offset,
6645 VkBuffer countBuffer,
6646 VkDeviceSize countBufferOffset,
6647 uint32_t maxDrawCount,
6648 uint32_t stride) {
6649 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6650 if (NULL == disp) {
6651 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6652 "vkCmdDrawMeshTasksIndirectCountNV: Invalid commandBuffer "
6653 "[VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter]");
6654 abort(); /* Intentionally fail so user can correct issue. */
6655 }
6656 disp->CmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
6657 }
6658
6659
6660 // ---- VK_NV_scissor_exclusive extension trampoline/terminators
6661
CmdSetExclusiveScissorEnableNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkBool32 * pExclusiveScissorEnables)6662 VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorEnableNV(
6663 VkCommandBuffer commandBuffer,
6664 uint32_t firstExclusiveScissor,
6665 uint32_t exclusiveScissorCount,
6666 const VkBool32* pExclusiveScissorEnables) {
6667 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6668 if (NULL == disp) {
6669 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6670 "vkCmdSetExclusiveScissorEnableNV: Invalid commandBuffer "
6671 "[VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameter]");
6672 abort(); /* Intentionally fail so user can correct issue. */
6673 }
6674 disp->CmdSetExclusiveScissorEnableNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables);
6675 }
6676
CmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors)6677 VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV(
6678 VkCommandBuffer commandBuffer,
6679 uint32_t firstExclusiveScissor,
6680 uint32_t exclusiveScissorCount,
6681 const VkRect2D* pExclusiveScissors) {
6682 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6683 if (NULL == disp) {
6684 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6685 "vkCmdSetExclusiveScissorNV: Invalid commandBuffer "
6686 "[VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter]");
6687 abort(); /* Intentionally fail so user can correct issue. */
6688 }
6689 disp->CmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors);
6690 }
6691
6692
6693 // ---- VK_NV_device_diagnostic_checkpoints extension trampoline/terminators
6694
CmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker)6695 VKAPI_ATTR void VKAPI_CALL CmdSetCheckpointNV(
6696 VkCommandBuffer commandBuffer,
6697 const void* pCheckpointMarker) {
6698 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6699 if (NULL == disp) {
6700 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6701 "vkCmdSetCheckpointNV: Invalid commandBuffer "
6702 "[VUID-vkCmdSetCheckpointNV-commandBuffer-parameter]");
6703 abort(); /* Intentionally fail so user can correct issue. */
6704 }
6705 disp->CmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
6706 }
6707
GetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData)6708 VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV(
6709 VkQueue queue,
6710 uint32_t* pCheckpointDataCount,
6711 VkCheckpointDataNV* pCheckpointData) {
6712 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6713 if (NULL == disp) {
6714 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6715 "vkGetQueueCheckpointDataNV: Invalid queue "
6716 "[VUID-vkGetQueueCheckpointDataNV-queue-parameter]");
6717 abort(); /* Intentionally fail so user can correct issue. */
6718 }
6719 disp->GetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
6720 }
6721
6722
6723 // ---- VK_INTEL_performance_query extension trampoline/terminators
6724
InitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo)6725 VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL(
6726 VkDevice device,
6727 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) {
6728 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6729 if (NULL == disp) {
6730 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6731 "vkInitializePerformanceApiINTEL: Invalid device "
6732 "[VUID-vkInitializePerformanceApiINTEL-device-parameter]");
6733 abort(); /* Intentionally fail so user can correct issue. */
6734 }
6735 return disp->InitializePerformanceApiINTEL(device, pInitializeInfo);
6736 }
6737
UninitializePerformanceApiINTEL(VkDevice device)6738 VKAPI_ATTR void VKAPI_CALL UninitializePerformanceApiINTEL(
6739 VkDevice device) {
6740 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6741 if (NULL == disp) {
6742 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6743 "vkUninitializePerformanceApiINTEL: Invalid device "
6744 "[VUID-vkUninitializePerformanceApiINTEL-device-parameter]");
6745 abort(); /* Intentionally fail so user can correct issue. */
6746 }
6747 disp->UninitializePerformanceApiINTEL(device);
6748 }
6749
CmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo)6750 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceMarkerINTEL(
6751 VkCommandBuffer commandBuffer,
6752 const VkPerformanceMarkerInfoINTEL* pMarkerInfo) {
6753 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6754 if (NULL == disp) {
6755 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6756 "vkCmdSetPerformanceMarkerINTEL: Invalid commandBuffer "
6757 "[VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter]");
6758 abort(); /* Intentionally fail so user can correct issue. */
6759 }
6760 return disp->CmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo);
6761 }
6762
CmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo)6763 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceStreamMarkerINTEL(
6764 VkCommandBuffer commandBuffer,
6765 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) {
6766 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6767 if (NULL == disp) {
6768 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6769 "vkCmdSetPerformanceStreamMarkerINTEL: Invalid commandBuffer "
6770 "[VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter]");
6771 abort(); /* Intentionally fail so user can correct issue. */
6772 }
6773 return disp->CmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo);
6774 }
6775
CmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo)6776 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceOverrideINTEL(
6777 VkCommandBuffer commandBuffer,
6778 const VkPerformanceOverrideInfoINTEL* pOverrideInfo) {
6779 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6780 if (NULL == disp) {
6781 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6782 "vkCmdSetPerformanceOverrideINTEL: Invalid commandBuffer "
6783 "[VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter]");
6784 abort(); /* Intentionally fail so user can correct issue. */
6785 }
6786 return disp->CmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo);
6787 }
6788
AcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration)6789 VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL(
6790 VkDevice device,
6791 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
6792 VkPerformanceConfigurationINTEL* pConfiguration) {
6793 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6794 if (NULL == disp) {
6795 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6796 "vkAcquirePerformanceConfigurationINTEL: Invalid device "
6797 "[VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter]");
6798 abort(); /* Intentionally fail so user can correct issue. */
6799 }
6800 return disp->AcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration);
6801 }
6802
ReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration)6803 VKAPI_ATTR VkResult VKAPI_CALL ReleasePerformanceConfigurationINTEL(
6804 VkDevice device,
6805 VkPerformanceConfigurationINTEL configuration) {
6806 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6807 if (NULL == disp) {
6808 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6809 "vkReleasePerformanceConfigurationINTEL: Invalid device "
6810 "[VUID-vkReleasePerformanceConfigurationINTEL-device-parameter]");
6811 abort(); /* Intentionally fail so user can correct issue. */
6812 }
6813 return disp->ReleasePerformanceConfigurationINTEL(device, configuration);
6814 }
6815
QueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration)6816 VKAPI_ATTR VkResult VKAPI_CALL QueueSetPerformanceConfigurationINTEL(
6817 VkQueue queue,
6818 VkPerformanceConfigurationINTEL configuration) {
6819 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6820 if (NULL == disp) {
6821 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6822 "vkQueueSetPerformanceConfigurationINTEL: Invalid queue "
6823 "[VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter]");
6824 abort(); /* Intentionally fail so user can correct issue. */
6825 }
6826 return disp->QueueSetPerformanceConfigurationINTEL(queue, configuration);
6827 }
6828
GetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue)6829 VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL(
6830 VkDevice device,
6831 VkPerformanceParameterTypeINTEL parameter,
6832 VkPerformanceValueINTEL* pValue) {
6833 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6834 if (NULL == disp) {
6835 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6836 "vkGetPerformanceParameterINTEL: Invalid device "
6837 "[VUID-vkGetPerformanceParameterINTEL-device-parameter]");
6838 abort(); /* Intentionally fail so user can correct issue. */
6839 }
6840 return disp->GetPerformanceParameterINTEL(device, parameter, pValue);
6841 }
6842
6843
6844 // ---- VK_AMD_display_native_hdr extension trampoline/terminators
6845
SetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable)6846 VKAPI_ATTR void VKAPI_CALL SetLocalDimmingAMD(
6847 VkDevice device,
6848 VkSwapchainKHR swapChain,
6849 VkBool32 localDimmingEnable) {
6850 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6851 if (NULL == disp) {
6852 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6853 "vkSetLocalDimmingAMD: Invalid device "
6854 "[VUID-vkSetLocalDimmingAMD-device-parameter]");
6855 abort(); /* Intentionally fail so user can correct issue. */
6856 }
6857 disp->SetLocalDimmingAMD(device, swapChain, localDimmingEnable);
6858 }
6859
6860
6861 // ---- VK_EXT_buffer_device_address extension trampoline/terminators
6862
GetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)6863 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT(
6864 VkDevice device,
6865 const VkBufferDeviceAddressInfo* pInfo) {
6866 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6867 if (NULL == disp) {
6868 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6869 "vkGetBufferDeviceAddressEXT: Invalid device "
6870 "[VUID-vkGetBufferDeviceAddressEXT-device-parameter]");
6871 abort(); /* Intentionally fail so user can correct issue. */
6872 }
6873 return disp->GetBufferDeviceAddressEXT(device, pInfo);
6874 }
6875
6876
6877 // ---- VK_NV_cooperative_matrix extension trampoline/terminators
6878
GetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties)6879 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV(
6880 VkPhysicalDevice physicalDevice,
6881 uint32_t* pPropertyCount,
6882 VkCooperativeMatrixPropertiesNV* pProperties) {
6883 const VkLayerInstanceDispatchTable *disp;
6884 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6885 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6886 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6887 "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV: Invalid physicalDevice "
6888 "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter]");
6889 abort(); /* Intentionally fail so user can correct issue. */
6890 }
6891 disp = loader_get_instance_layer_dispatch(physicalDevice);
6892 return disp->GetPhysicalDeviceCooperativeMatrixPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
6893 }
6894
terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties)6895 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(
6896 VkPhysicalDevice physicalDevice,
6897 uint32_t* pPropertyCount,
6898 VkCooperativeMatrixPropertiesNV* pProperties) {
6899 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6900 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6901 if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV) {
6902 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
6903 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesNV");
6904 abort(); /* Intentionally fail so user can correct issue. */
6905 }
6906 return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
6907 }
6908
6909
6910 // ---- VK_NV_coverage_reduction_mode extension trampoline/terminators
6911
GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations)6912 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
6913 VkPhysicalDevice physicalDevice,
6914 uint32_t* pCombinationCount,
6915 VkFramebufferMixedSamplesCombinationNV* pCombinations) {
6916 const VkLayerInstanceDispatchTable *disp;
6917 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6918 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6919 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6920 "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: Invalid physicalDevice "
6921 "[VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter]");
6922 abort(); /* Intentionally fail so user can correct issue. */
6923 }
6924 disp = loader_get_instance_layer_dispatch(physicalDevice);
6925 return disp->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(unwrapped_phys_dev, pCombinationCount, pCombinations);
6926 }
6927
terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations)6928 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
6929 VkPhysicalDevice physicalDevice,
6930 uint32_t* pCombinationCount,
6931 VkFramebufferMixedSamplesCombinationNV* pCombinations) {
6932 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6933 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6934 if (NULL == icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) {
6935 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
6936 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
6937 abort(); /* Intentionally fail so user can correct issue. */
6938 }
6939 return icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(phys_dev_term->phys_dev, pCombinationCount, pCombinations);
6940 }
6941
6942
6943 // ---- VK_EXT_full_screen_exclusive extension trampoline/terminators
6944
6945 #if defined(VK_USE_PLATFORM_WIN32_KHR)
AcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)6946 VKAPI_ATTR VkResult VKAPI_CALL AcquireFullScreenExclusiveModeEXT(
6947 VkDevice device,
6948 VkSwapchainKHR swapchain) {
6949 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6950 if (NULL == disp) {
6951 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6952 "vkAcquireFullScreenExclusiveModeEXT: Invalid device "
6953 "[VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter]");
6954 abort(); /* Intentionally fail so user can correct issue. */
6955 }
6956 return disp->AcquireFullScreenExclusiveModeEXT(device, swapchain);
6957 }
6958
6959 #endif // VK_USE_PLATFORM_WIN32_KHR
6960 #if defined(VK_USE_PLATFORM_WIN32_KHR)
ReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)6961 VKAPI_ATTR VkResult VKAPI_CALL ReleaseFullScreenExclusiveModeEXT(
6962 VkDevice device,
6963 VkSwapchainKHR swapchain) {
6964 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6965 if (NULL == disp) {
6966 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6967 "vkReleaseFullScreenExclusiveModeEXT: Invalid device "
6968 "[VUID-vkReleaseFullScreenExclusiveModeEXT-device-parameter]");
6969 abort(); /* Intentionally fail so user can correct issue. */
6970 }
6971 return disp->ReleaseFullScreenExclusiveModeEXT(device, swapchain);
6972 }
6973
6974 #endif // VK_USE_PLATFORM_WIN32_KHR
6975
6976 // ---- VK_EXT_line_rasterization extension trampoline/terminators
6977
CmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)6978 VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEXT(
6979 VkCommandBuffer commandBuffer,
6980 uint32_t lineStippleFactor,
6981 uint16_t lineStipplePattern) {
6982 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6983 if (NULL == disp) {
6984 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6985 "vkCmdSetLineStippleEXT: Invalid commandBuffer "
6986 "[VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter]");
6987 abort(); /* Intentionally fail so user can correct issue. */
6988 }
6989 disp->CmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
6990 }
6991
6992
6993 // ---- VK_EXT_host_query_reset extension trampoline/terminators
6994
ResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)6995 VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT(
6996 VkDevice device,
6997 VkQueryPool queryPool,
6998 uint32_t firstQuery,
6999 uint32_t queryCount) {
7000 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7001 if (NULL == disp) {
7002 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7003 "vkResetQueryPoolEXT: Invalid device "
7004 "[VUID-vkResetQueryPoolEXT-device-parameter]");
7005 abort(); /* Intentionally fail so user can correct issue. */
7006 }
7007 disp->ResetQueryPoolEXT(device, queryPool, firstQuery, queryCount);
7008 }
7009
7010
7011 // ---- VK_EXT_extended_dynamic_state extension trampoline/terminators
7012
CmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)7013 VKAPI_ATTR void VKAPI_CALL CmdSetCullModeEXT(
7014 VkCommandBuffer commandBuffer,
7015 VkCullModeFlags cullMode) {
7016 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7017 if (NULL == disp) {
7018 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7019 "vkCmdSetCullModeEXT: Invalid commandBuffer "
7020 "[VUID-vkCmdSetCullModeEXT-commandBuffer-parameter]");
7021 abort(); /* Intentionally fail so user can correct issue. */
7022 }
7023 disp->CmdSetCullModeEXT(commandBuffer, cullMode);
7024 }
7025
CmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace)7026 VKAPI_ATTR void VKAPI_CALL CmdSetFrontFaceEXT(
7027 VkCommandBuffer commandBuffer,
7028 VkFrontFace frontFace) {
7029 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7030 if (NULL == disp) {
7031 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7032 "vkCmdSetFrontFaceEXT: Invalid commandBuffer "
7033 "[VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter]");
7034 abort(); /* Intentionally fail so user can correct issue. */
7035 }
7036 disp->CmdSetFrontFaceEXT(commandBuffer, frontFace);
7037 }
7038
CmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)7039 VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopologyEXT(
7040 VkCommandBuffer commandBuffer,
7041 VkPrimitiveTopology primitiveTopology) {
7042 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7043 if (NULL == disp) {
7044 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7045 "vkCmdSetPrimitiveTopologyEXT: Invalid commandBuffer "
7046 "[VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter]");
7047 abort(); /* Intentionally fail so user can correct issue. */
7048 }
7049 disp->CmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology);
7050 }
7051
CmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)7052 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT(
7053 VkCommandBuffer commandBuffer,
7054 uint32_t viewportCount,
7055 const VkViewport* pViewports) {
7056 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7057 if (NULL == disp) {
7058 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7059 "vkCmdSetViewportWithCountEXT: Invalid commandBuffer "
7060 "[VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter]");
7061 abort(); /* Intentionally fail so user can correct issue. */
7062 }
7063 disp->CmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports);
7064 }
7065
CmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)7066 VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT(
7067 VkCommandBuffer commandBuffer,
7068 uint32_t scissorCount,
7069 const VkRect2D* pScissors) {
7070 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7071 if (NULL == disp) {
7072 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7073 "vkCmdSetScissorWithCountEXT: Invalid commandBuffer "
7074 "[VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter]");
7075 abort(); /* Intentionally fail so user can correct issue. */
7076 }
7077 disp->CmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors);
7078 }
7079
CmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)7080 VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT(
7081 VkCommandBuffer commandBuffer,
7082 uint32_t firstBinding,
7083 uint32_t bindingCount,
7084 const VkBuffer* pBuffers,
7085 const VkDeviceSize* pOffsets,
7086 const VkDeviceSize* pSizes,
7087 const VkDeviceSize* pStrides) {
7088 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7089 if (NULL == disp) {
7090 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7091 "vkCmdBindVertexBuffers2EXT: Invalid commandBuffer "
7092 "[VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter]");
7093 abort(); /* Intentionally fail so user can correct issue. */
7094 }
7095 disp->CmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
7096 }
7097
CmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)7098 VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnableEXT(
7099 VkCommandBuffer commandBuffer,
7100 VkBool32 depthTestEnable) {
7101 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7102 if (NULL == disp) {
7103 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7104 "vkCmdSetDepthTestEnableEXT: Invalid commandBuffer "
7105 "[VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter]");
7106 abort(); /* Intentionally fail so user can correct issue. */
7107 }
7108 disp->CmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable);
7109 }
7110
CmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)7111 VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnableEXT(
7112 VkCommandBuffer commandBuffer,
7113 VkBool32 depthWriteEnable) {
7114 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7115 if (NULL == disp) {
7116 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7117 "vkCmdSetDepthWriteEnableEXT: Invalid commandBuffer "
7118 "[VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter]");
7119 abort(); /* Intentionally fail so user can correct issue. */
7120 }
7121 disp->CmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable);
7122 }
7123
CmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)7124 VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOpEXT(
7125 VkCommandBuffer commandBuffer,
7126 VkCompareOp depthCompareOp) {
7127 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7128 if (NULL == disp) {
7129 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7130 "vkCmdSetDepthCompareOpEXT: Invalid commandBuffer "
7131 "[VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter]");
7132 abort(); /* Intentionally fail so user can correct issue. */
7133 }
7134 disp->CmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp);
7135 }
7136
CmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)7137 VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnableEXT(
7138 VkCommandBuffer commandBuffer,
7139 VkBool32 depthBoundsTestEnable) {
7140 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7141 if (NULL == disp) {
7142 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7143 "vkCmdSetDepthBoundsTestEnableEXT: Invalid commandBuffer "
7144 "[VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter]");
7145 abort(); /* Intentionally fail so user can correct issue. */
7146 }
7147 disp->CmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable);
7148 }
7149
CmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)7150 VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnableEXT(
7151 VkCommandBuffer commandBuffer,
7152 VkBool32 stencilTestEnable) {
7153 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7154 if (NULL == disp) {
7155 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7156 "vkCmdSetStencilTestEnableEXT: Invalid commandBuffer "
7157 "[VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter]");
7158 abort(); /* Intentionally fail so user can correct issue. */
7159 }
7160 disp->CmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable);
7161 }
7162
CmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)7163 VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT(
7164 VkCommandBuffer commandBuffer,
7165 VkStencilFaceFlags faceMask,
7166 VkStencilOp failOp,
7167 VkStencilOp passOp,
7168 VkStencilOp depthFailOp,
7169 VkCompareOp compareOp) {
7170 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7171 if (NULL == disp) {
7172 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7173 "vkCmdSetStencilOpEXT: Invalid commandBuffer "
7174 "[VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter]");
7175 abort(); /* Intentionally fail so user can correct issue. */
7176 }
7177 disp->CmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
7178 }
7179
7180
7181 // ---- VK_EXT_host_image_copy extension trampoline/terminators
7182
CopyMemoryToImageEXT(VkDevice device,const VkCopyMemoryToImageInfoEXT * pCopyMemoryToImageInfo)7183 VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT(
7184 VkDevice device,
7185 const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {
7186 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7187 if (NULL == disp) {
7188 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7189 "vkCopyMemoryToImageEXT: Invalid device "
7190 "[VUID-vkCopyMemoryToImageEXT-device-parameter]");
7191 abort(); /* Intentionally fail so user can correct issue. */
7192 }
7193 return disp->CopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
7194 }
7195
CopyImageToMemoryEXT(VkDevice device,const VkCopyImageToMemoryInfoEXT * pCopyImageToMemoryInfo)7196 VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT(
7197 VkDevice device,
7198 const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {
7199 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7200 if (NULL == disp) {
7201 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7202 "vkCopyImageToMemoryEXT: Invalid device "
7203 "[VUID-vkCopyImageToMemoryEXT-device-parameter]");
7204 abort(); /* Intentionally fail so user can correct issue. */
7205 }
7206 return disp->CopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
7207 }
7208
CopyImageToImageEXT(VkDevice device,const VkCopyImageToImageInfoEXT * pCopyImageToImageInfo)7209 VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT(
7210 VkDevice device,
7211 const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {
7212 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7213 if (NULL == disp) {
7214 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7215 "vkCopyImageToImageEXT: Invalid device "
7216 "[VUID-vkCopyImageToImageEXT-device-parameter]");
7217 abort(); /* Intentionally fail so user can correct issue. */
7218 }
7219 return disp->CopyImageToImageEXT(device, pCopyImageToImageInfo);
7220 }
7221
TransitionImageLayoutEXT(VkDevice device,uint32_t transitionCount,const VkHostImageLayoutTransitionInfoEXT * pTransitions)7222 VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT(
7223 VkDevice device,
7224 uint32_t transitionCount,
7225 const VkHostImageLayoutTransitionInfoEXT* pTransitions) {
7226 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7227 if (NULL == disp) {
7228 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7229 "vkTransitionImageLayoutEXT: Invalid device "
7230 "[VUID-vkTransitionImageLayoutEXT-device-parameter]");
7231 abort(); /* Intentionally fail so user can correct issue. */
7232 }
7233 return disp->TransitionImageLayoutEXT(device, transitionCount, pTransitions);
7234 }
7235
GetImageSubresourceLayout2EXT(VkDevice device,VkImage image,const VkImageSubresource2KHR * pSubresource,VkSubresourceLayout2KHR * pLayout)7236 VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
7237 VkDevice device,
7238 VkImage image,
7239 const VkImageSubresource2KHR* pSubresource,
7240 VkSubresourceLayout2KHR* pLayout) {
7241 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7242 if (NULL == disp) {
7243 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7244 "vkGetImageSubresourceLayout2EXT: Invalid device "
7245 "[VUID-vkGetImageSubresourceLayout2EXT-device-parameter]");
7246 abort(); /* Intentionally fail so user can correct issue. */
7247 }
7248 disp->GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
7249 }
7250
7251
7252 // ---- VK_EXT_swapchain_maintenance1 extension trampoline/terminators
7253
ReleaseSwapchainImagesEXT(VkDevice device,const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo)7254 VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT(
7255 VkDevice device,
7256 const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
7257 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7258 if (NULL == disp) {
7259 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7260 "vkReleaseSwapchainImagesEXT: Invalid device "
7261 "[VUID-vkReleaseSwapchainImagesEXT-device-parameter]");
7262 abort(); /* Intentionally fail so user can correct issue. */
7263 }
7264 return disp->ReleaseSwapchainImagesEXT(device, pReleaseInfo);
7265 }
7266
7267
7268 // ---- VK_NV_device_generated_commands extension trampoline/terminators
7269
GetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements)7270 VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsNV(
7271 VkDevice device,
7272 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
7273 VkMemoryRequirements2* pMemoryRequirements) {
7274 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7275 if (NULL == disp) {
7276 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7277 "vkGetGeneratedCommandsMemoryRequirementsNV: Invalid device "
7278 "[VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter]");
7279 abort(); /* Intentionally fail so user can correct issue. */
7280 }
7281 disp->GetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
7282 }
7283
CmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo)7284 VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsNV(
7285 VkCommandBuffer commandBuffer,
7286 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) {
7287 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7288 if (NULL == disp) {
7289 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7290 "vkCmdPreprocessGeneratedCommandsNV: Invalid commandBuffer "
7291 "[VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter]");
7292 abort(); /* Intentionally fail so user can correct issue. */
7293 }
7294 disp->CmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
7295 }
7296
CmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo)7297 VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV(
7298 VkCommandBuffer commandBuffer,
7299 VkBool32 isPreprocessed,
7300 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) {
7301 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7302 if (NULL == disp) {
7303 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7304 "vkCmdExecuteGeneratedCommandsNV: Invalid commandBuffer "
7305 "[VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter]");
7306 abort(); /* Intentionally fail so user can correct issue. */
7307 }
7308 disp->CmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
7309 }
7310
CmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex)7311 VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV(
7312 VkCommandBuffer commandBuffer,
7313 VkPipelineBindPoint pipelineBindPoint,
7314 VkPipeline pipeline,
7315 uint32_t groupIndex) {
7316 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7317 if (NULL == disp) {
7318 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7319 "vkCmdBindPipelineShaderGroupNV: Invalid commandBuffer "
7320 "[VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter]");
7321 abort(); /* Intentionally fail so user can correct issue. */
7322 }
7323 disp->CmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
7324 }
7325
CreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout)7326 VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV(
7327 VkDevice device,
7328 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
7329 const VkAllocationCallbacks* pAllocator,
7330 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) {
7331 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7332 if (NULL == disp) {
7333 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7334 "vkCreateIndirectCommandsLayoutNV: Invalid device "
7335 "[VUID-vkCreateIndirectCommandsLayoutNV-device-parameter]");
7336 abort(); /* Intentionally fail so user can correct issue. */
7337 }
7338 return disp->CreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
7339 }
7340
DestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)7341 VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNV(
7342 VkDevice device,
7343 VkIndirectCommandsLayoutNV indirectCommandsLayout,
7344 const VkAllocationCallbacks* pAllocator) {
7345 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7346 if (NULL == disp) {
7347 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7348 "vkDestroyIndirectCommandsLayoutNV: Invalid device "
7349 "[VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter]");
7350 abort(); /* Intentionally fail so user can correct issue. */
7351 }
7352 disp->DestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
7353 }
7354
7355
7356 // ---- VK_EXT_depth_bias_control extension trampoline/terminators
7357
CmdSetDepthBias2EXT(VkCommandBuffer commandBuffer,const VkDepthBiasInfoEXT * pDepthBiasInfo)7358 VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias2EXT(
7359 VkCommandBuffer commandBuffer,
7360 const VkDepthBiasInfoEXT* pDepthBiasInfo) {
7361 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7362 if (NULL == disp) {
7363 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7364 "vkCmdSetDepthBias2EXT: Invalid commandBuffer "
7365 "[VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter]");
7366 abort(); /* Intentionally fail so user can correct issue. */
7367 }
7368 disp->CmdSetDepthBias2EXT(commandBuffer, pDepthBiasInfo);
7369 }
7370
7371
7372 // ---- VK_EXT_acquire_drm_display extension trampoline/terminators
7373
AcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,VkDisplayKHR display)7374 VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT(
7375 VkPhysicalDevice physicalDevice,
7376 int32_t drmFd,
7377 VkDisplayKHR display) {
7378 const VkLayerInstanceDispatchTable *disp;
7379 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7380 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7381 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7382 "vkAcquireDrmDisplayEXT: Invalid physicalDevice "
7383 "[VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter]");
7384 abort(); /* Intentionally fail so user can correct issue. */
7385 }
7386 disp = loader_get_instance_layer_dispatch(physicalDevice);
7387 return disp->AcquireDrmDisplayEXT(unwrapped_phys_dev, drmFd, display);
7388 }
7389
terminator_AcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,VkDisplayKHR display)7390 VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireDrmDisplayEXT(
7391 VkPhysicalDevice physicalDevice,
7392 int32_t drmFd,
7393 VkDisplayKHR display) {
7394 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7395 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7396 if (NULL == icd_term->dispatch.AcquireDrmDisplayEXT) {
7397 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
7398 "ICD associated with VkPhysicalDevice does not support AcquireDrmDisplayEXT");
7399 return VK_ERROR_EXTENSION_NOT_PRESENT;
7400 }
7401 return icd_term->dispatch.AcquireDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, display);
7402 }
7403
GetDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,uint32_t connectorId,VkDisplayKHR * display)7404 VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT(
7405 VkPhysicalDevice physicalDevice,
7406 int32_t drmFd,
7407 uint32_t connectorId,
7408 VkDisplayKHR* display) {
7409 const VkLayerInstanceDispatchTable *disp;
7410 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7411 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7412 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7413 "vkGetDrmDisplayEXT: Invalid physicalDevice "
7414 "[VUID-vkGetDrmDisplayEXT-physicalDevice-parameter]");
7415 abort(); /* Intentionally fail so user can correct issue. */
7416 }
7417 disp = loader_get_instance_layer_dispatch(physicalDevice);
7418 return disp->GetDrmDisplayEXT(unwrapped_phys_dev, drmFd, connectorId, display);
7419 }
7420
terminator_GetDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,uint32_t connectorId,VkDisplayKHR * display)7421 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDrmDisplayEXT(
7422 VkPhysicalDevice physicalDevice,
7423 int32_t drmFd,
7424 uint32_t connectorId,
7425 VkDisplayKHR* display) {
7426 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7427 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7428 if (NULL == icd_term->dispatch.GetDrmDisplayEXT) {
7429 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
7430 "ICD associated with VkPhysicalDevice does not support GetDrmDisplayEXT");
7431 return VK_ERROR_EXTENSION_NOT_PRESENT;
7432 }
7433 return icd_term->dispatch.GetDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, connectorId, display);
7434 }
7435
7436
7437 // ---- VK_EXT_private_data extension trampoline/terminators
7438
CreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)7439 VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT(
7440 VkDevice device,
7441 const VkPrivateDataSlotCreateInfo* pCreateInfo,
7442 const VkAllocationCallbacks* pAllocator,
7443 VkPrivateDataSlot* pPrivateDataSlot) {
7444 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7445 if (NULL == disp) {
7446 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7447 "vkCreatePrivateDataSlotEXT: Invalid device "
7448 "[VUID-vkCreatePrivateDataSlotEXT-device-parameter]");
7449 abort(); /* Intentionally fail so user can correct issue. */
7450 }
7451 return disp->CreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot);
7452 }
7453
DestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)7454 VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlotEXT(
7455 VkDevice device,
7456 VkPrivateDataSlot privateDataSlot,
7457 const VkAllocationCallbacks* pAllocator) {
7458 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7459 if (NULL == disp) {
7460 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7461 "vkDestroyPrivateDataSlotEXT: Invalid device "
7462 "[VUID-vkDestroyPrivateDataSlotEXT-device-parameter]");
7463 abort(); /* Intentionally fail so user can correct issue. */
7464 }
7465 disp->DestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator);
7466 }
7467
SetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)7468 VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT(
7469 VkDevice device,
7470 VkObjectType objectType,
7471 uint64_t objectHandle,
7472 VkPrivateDataSlot privateDataSlot,
7473 uint64_t data) {
7474 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7475 if (NULL == disp) {
7476 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7477 "vkSetPrivateDataEXT: Invalid device "
7478 "[VUID-vkSetPrivateDataEXT-device-parameter]");
7479 abort(); /* Intentionally fail so user can correct issue. */
7480 }
7481 return disp->SetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data);
7482 }
7483
GetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)7484 VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT(
7485 VkDevice device,
7486 VkObjectType objectType,
7487 uint64_t objectHandle,
7488 VkPrivateDataSlot privateDataSlot,
7489 uint64_t* pData) {
7490 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7491 if (NULL == disp) {
7492 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7493 "vkGetPrivateDataEXT: Invalid device "
7494 "[VUID-vkGetPrivateDataEXT-device-parameter]");
7495 abort(); /* Intentionally fail so user can correct issue. */
7496 }
7497 disp->GetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData);
7498 }
7499
7500
7501 // ---- VK_NV_cuda_kernel_launch extension trampoline/terminators
7502
CreateCudaModuleNV(VkDevice device,const VkCudaModuleCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCudaModuleNV * pModule)7503 VKAPI_ATTR VkResult VKAPI_CALL CreateCudaModuleNV(
7504 VkDevice device,
7505 const VkCudaModuleCreateInfoNV* pCreateInfo,
7506 const VkAllocationCallbacks* pAllocator,
7507 VkCudaModuleNV* pModule) {
7508 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7509 if (NULL == disp) {
7510 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7511 "vkCreateCudaModuleNV: Invalid device "
7512 "[VUID-vkCreateCudaModuleNV-device-parameter]");
7513 abort(); /* Intentionally fail so user can correct issue. */
7514 }
7515 return disp->CreateCudaModuleNV(device, pCreateInfo, pAllocator, pModule);
7516 }
7517
GetCudaModuleCacheNV(VkDevice device,VkCudaModuleNV module,size_t * pCacheSize,void * pCacheData)7518 VKAPI_ATTR VkResult VKAPI_CALL GetCudaModuleCacheNV(
7519 VkDevice device,
7520 VkCudaModuleNV module,
7521 size_t* pCacheSize,
7522 void* pCacheData) {
7523 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7524 if (NULL == disp) {
7525 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7526 "vkGetCudaModuleCacheNV: Invalid device "
7527 "[VUID-vkGetCudaModuleCacheNV-device-parameter]");
7528 abort(); /* Intentionally fail so user can correct issue. */
7529 }
7530 return disp->GetCudaModuleCacheNV(device, module, pCacheSize, pCacheData);
7531 }
7532
CreateCudaFunctionNV(VkDevice device,const VkCudaFunctionCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCudaFunctionNV * pFunction)7533 VKAPI_ATTR VkResult VKAPI_CALL CreateCudaFunctionNV(
7534 VkDevice device,
7535 const VkCudaFunctionCreateInfoNV* pCreateInfo,
7536 const VkAllocationCallbacks* pAllocator,
7537 VkCudaFunctionNV* pFunction) {
7538 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7539 if (NULL == disp) {
7540 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7541 "vkCreateCudaFunctionNV: Invalid device "
7542 "[VUID-vkCreateCudaFunctionNV-device-parameter]");
7543 abort(); /* Intentionally fail so user can correct issue. */
7544 }
7545 return disp->CreateCudaFunctionNV(device, pCreateInfo, pAllocator, pFunction);
7546 }
7547
DestroyCudaModuleNV(VkDevice device,VkCudaModuleNV module,const VkAllocationCallbacks * pAllocator)7548 VKAPI_ATTR void VKAPI_CALL DestroyCudaModuleNV(
7549 VkDevice device,
7550 VkCudaModuleNV module,
7551 const VkAllocationCallbacks* pAllocator) {
7552 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7553 if (NULL == disp) {
7554 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7555 "vkDestroyCudaModuleNV: Invalid device "
7556 "[VUID-vkDestroyCudaModuleNV-device-parameter]");
7557 abort(); /* Intentionally fail so user can correct issue. */
7558 }
7559 disp->DestroyCudaModuleNV(device, module, pAllocator);
7560 }
7561
DestroyCudaFunctionNV(VkDevice device,VkCudaFunctionNV function,const VkAllocationCallbacks * pAllocator)7562 VKAPI_ATTR void VKAPI_CALL DestroyCudaFunctionNV(
7563 VkDevice device,
7564 VkCudaFunctionNV function,
7565 const VkAllocationCallbacks* pAllocator) {
7566 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7567 if (NULL == disp) {
7568 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7569 "vkDestroyCudaFunctionNV: Invalid device "
7570 "[VUID-vkDestroyCudaFunctionNV-device-parameter]");
7571 abort(); /* Intentionally fail so user can correct issue. */
7572 }
7573 disp->DestroyCudaFunctionNV(device, function, pAllocator);
7574 }
7575
CmdCudaLaunchKernelNV(VkCommandBuffer commandBuffer,const VkCudaLaunchInfoNV * pLaunchInfo)7576 VKAPI_ATTR void VKAPI_CALL CmdCudaLaunchKernelNV(
7577 VkCommandBuffer commandBuffer,
7578 const VkCudaLaunchInfoNV* pLaunchInfo) {
7579 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7580 if (NULL == disp) {
7581 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7582 "vkCmdCudaLaunchKernelNV: Invalid commandBuffer "
7583 "[VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameter]");
7584 abort(); /* Intentionally fail so user can correct issue. */
7585 }
7586 disp->CmdCudaLaunchKernelNV(commandBuffer, pLaunchInfo);
7587 }
7588
7589
7590 // ---- VK_EXT_metal_objects extension trampoline/terminators
7591
7592 #if defined(VK_USE_PLATFORM_METAL_EXT)
ExportMetalObjectsEXT(VkDevice device,VkExportMetalObjectsInfoEXT * pMetalObjectsInfo)7593 VKAPI_ATTR void VKAPI_CALL ExportMetalObjectsEXT(
7594 VkDevice device,
7595 VkExportMetalObjectsInfoEXT* pMetalObjectsInfo) {
7596 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7597 if (NULL == disp) {
7598 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7599 "vkExportMetalObjectsEXT: Invalid device "
7600 "[VUID-vkExportMetalObjectsEXT-device-parameter]");
7601 abort(); /* Intentionally fail so user can correct issue. */
7602 }
7603 disp->ExportMetalObjectsEXT(device, pMetalObjectsInfo);
7604 }
7605
7606 #endif // VK_USE_PLATFORM_METAL_EXT
7607
7608 // ---- VK_EXT_descriptor_buffer extension trampoline/terminators
7609
GetDescriptorSetLayoutSizeEXT(VkDevice device,VkDescriptorSetLayout layout,VkDeviceSize * pLayoutSizeInBytes)7610 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSizeEXT(
7611 VkDevice device,
7612 VkDescriptorSetLayout layout,
7613 VkDeviceSize* pLayoutSizeInBytes) {
7614 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7615 if (NULL == disp) {
7616 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7617 "vkGetDescriptorSetLayoutSizeEXT: Invalid device "
7618 "[VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameter]");
7619 abort(); /* Intentionally fail so user can correct issue. */
7620 }
7621 disp->GetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes);
7622 }
7623
GetDescriptorSetLayoutBindingOffsetEXT(VkDevice device,VkDescriptorSetLayout layout,uint32_t binding,VkDeviceSize * pOffset)7624 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutBindingOffsetEXT(
7625 VkDevice device,
7626 VkDescriptorSetLayout layout,
7627 uint32_t binding,
7628 VkDeviceSize* pOffset) {
7629 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7630 if (NULL == disp) {
7631 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7632 "vkGetDescriptorSetLayoutBindingOffsetEXT: Invalid device "
7633 "[VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter]");
7634 abort(); /* Intentionally fail so user can correct issue. */
7635 }
7636 disp->GetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset);
7637 }
7638
GetDescriptorEXT(VkDevice device,const VkDescriptorGetInfoEXT * pDescriptorInfo,size_t dataSize,void * pDescriptor)7639 VKAPI_ATTR void VKAPI_CALL GetDescriptorEXT(
7640 VkDevice device,
7641 const VkDescriptorGetInfoEXT* pDescriptorInfo,
7642 size_t dataSize,
7643 void* pDescriptor) {
7644 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7645 if (NULL == disp) {
7646 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7647 "vkGetDescriptorEXT: Invalid device "
7648 "[VUID-vkGetDescriptorEXT-device-parameter]");
7649 abort(); /* Intentionally fail so user can correct issue. */
7650 }
7651 disp->GetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor);
7652 }
7653
CmdBindDescriptorBuffersEXT(VkCommandBuffer commandBuffer,uint32_t bufferCount,const VkDescriptorBufferBindingInfoEXT * pBindingInfos)7654 VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBuffersEXT(
7655 VkCommandBuffer commandBuffer,
7656 uint32_t bufferCount,
7657 const VkDescriptorBufferBindingInfoEXT* pBindingInfos) {
7658 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7659 if (NULL == disp) {
7660 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7661 "vkCmdBindDescriptorBuffersEXT: Invalid commandBuffer "
7662 "[VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter]");
7663 abort(); /* Intentionally fail so user can correct issue. */
7664 }
7665 disp->CmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos);
7666 }
7667
CmdSetDescriptorBufferOffsetsEXT(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t setCount,const uint32_t * pBufferIndices,const VkDeviceSize * pOffsets)7668 VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsetsEXT(
7669 VkCommandBuffer commandBuffer,
7670 VkPipelineBindPoint pipelineBindPoint,
7671 VkPipelineLayout layout,
7672 uint32_t firstSet,
7673 uint32_t setCount,
7674 const uint32_t* pBufferIndices,
7675 const VkDeviceSize* pOffsets) {
7676 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7677 if (NULL == disp) {
7678 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7679 "vkCmdSetDescriptorBufferOffsetsEXT: Invalid commandBuffer "
7680 "[VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter]");
7681 abort(); /* Intentionally fail so user can correct issue. */
7682 }
7683 disp->CmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets);
7684 }
7685
CmdBindDescriptorBufferEmbeddedSamplersEXT(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set)7686 VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplersEXT(
7687 VkCommandBuffer commandBuffer,
7688 VkPipelineBindPoint pipelineBindPoint,
7689 VkPipelineLayout layout,
7690 uint32_t set) {
7691 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7692 if (NULL == disp) {
7693 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7694 "vkCmdBindDescriptorBufferEmbeddedSamplersEXT: Invalid commandBuffer "
7695 "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameter]");
7696 abort(); /* Intentionally fail so user can correct issue. */
7697 }
7698 disp->CmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set);
7699 }
7700
GetBufferOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkBufferCaptureDescriptorDataInfoEXT * pInfo,void * pData)7701 VKAPI_ATTR VkResult VKAPI_CALL GetBufferOpaqueCaptureDescriptorDataEXT(
7702 VkDevice device,
7703 const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
7704 void* pData) {
7705 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7706 if (NULL == disp) {
7707 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7708 "vkGetBufferOpaqueCaptureDescriptorDataEXT: Invalid device "
7709 "[VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter]");
7710 abort(); /* Intentionally fail so user can correct issue. */
7711 }
7712 return disp->GetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
7713 }
7714
GetImageOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkImageCaptureDescriptorDataInfoEXT * pInfo,void * pData)7715 VKAPI_ATTR VkResult VKAPI_CALL GetImageOpaqueCaptureDescriptorDataEXT(
7716 VkDevice device,
7717 const VkImageCaptureDescriptorDataInfoEXT* pInfo,
7718 void* pData) {
7719 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7720 if (NULL == disp) {
7721 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7722 "vkGetImageOpaqueCaptureDescriptorDataEXT: Invalid device "
7723 "[VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter]");
7724 abort(); /* Intentionally fail so user can correct issue. */
7725 }
7726 return disp->GetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
7727 }
7728
GetImageViewOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkImageViewCaptureDescriptorDataInfoEXT * pInfo,void * pData)7729 VKAPI_ATTR VkResult VKAPI_CALL GetImageViewOpaqueCaptureDescriptorDataEXT(
7730 VkDevice device,
7731 const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
7732 void* pData) {
7733 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7734 if (NULL == disp) {
7735 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7736 "vkGetImageViewOpaqueCaptureDescriptorDataEXT: Invalid device "
7737 "[VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter]");
7738 abort(); /* Intentionally fail so user can correct issue. */
7739 }
7740 return disp->GetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
7741 }
7742
GetSamplerOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkSamplerCaptureDescriptorDataInfoEXT * pInfo,void * pData)7743 VKAPI_ATTR VkResult VKAPI_CALL GetSamplerOpaqueCaptureDescriptorDataEXT(
7744 VkDevice device,
7745 const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
7746 void* pData) {
7747 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7748 if (NULL == disp) {
7749 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7750 "vkGetSamplerOpaqueCaptureDescriptorDataEXT: Invalid device "
7751 "[VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameter]");
7752 abort(); /* Intentionally fail so user can correct issue. */
7753 }
7754 return disp->GetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
7755 }
7756
GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo,void * pData)7757 VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
7758 VkDevice device,
7759 const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
7760 void* pData) {
7761 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7762 if (NULL == disp) {
7763 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7764 "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT: Invalid device "
7765 "[VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameter]");
7766 abort(); /* Intentionally fail so user can correct issue. */
7767 }
7768 return disp->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
7769 }
7770
7771
7772 // ---- VK_NV_fragment_shading_rate_enums extension trampoline/terminators
7773
CmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer,VkFragmentShadingRateNV shadingRate,const VkFragmentShadingRateCombinerOpKHR combinerOps[2])7774 VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV(
7775 VkCommandBuffer commandBuffer,
7776 VkFragmentShadingRateNV shadingRate,
7777 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) {
7778 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7779 if (NULL == disp) {
7780 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7781 "vkCmdSetFragmentShadingRateEnumNV: Invalid commandBuffer "
7782 "[VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter]");
7783 abort(); /* Intentionally fail so user can correct issue. */
7784 }
7785 disp->CmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps);
7786 }
7787
7788
7789 // ---- VK_EXT_device_fault extension trampoline/terminators
7790
GetDeviceFaultInfoEXT(VkDevice device,VkDeviceFaultCountsEXT * pFaultCounts,VkDeviceFaultInfoEXT * pFaultInfo)7791 VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT(
7792 VkDevice device,
7793 VkDeviceFaultCountsEXT* pFaultCounts,
7794 VkDeviceFaultInfoEXT* pFaultInfo) {
7795 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7796 if (NULL == disp) {
7797 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7798 "vkGetDeviceFaultInfoEXT: Invalid device "
7799 "[VUID-vkGetDeviceFaultInfoEXT-device-parameter]");
7800 abort(); /* Intentionally fail so user can correct issue. */
7801 }
7802 return disp->GetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo);
7803 }
7804
7805
7806 // ---- VK_NV_acquire_winrt_display extension trampoline/terminators
7807
7808 #if defined(VK_USE_PLATFORM_WIN32_KHR)
AcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display)7809 VKAPI_ATTR VkResult VKAPI_CALL AcquireWinrtDisplayNV(
7810 VkPhysicalDevice physicalDevice,
7811 VkDisplayKHR display) {
7812 const VkLayerInstanceDispatchTable *disp;
7813 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7814 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7815 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7816 "vkAcquireWinrtDisplayNV: Invalid physicalDevice "
7817 "[VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter]");
7818 abort(); /* Intentionally fail so user can correct issue. */
7819 }
7820 disp = loader_get_instance_layer_dispatch(physicalDevice);
7821 return disp->AcquireWinrtDisplayNV(unwrapped_phys_dev, display);
7822 }
7823
terminator_AcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display)7824 VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireWinrtDisplayNV(
7825 VkPhysicalDevice physicalDevice,
7826 VkDisplayKHR display) {
7827 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7828 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7829 if (NULL == icd_term->dispatch.AcquireWinrtDisplayNV) {
7830 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7831 "ICD associated with VkPhysicalDevice does not support AcquireWinrtDisplayNV");
7832 abort(); /* Intentionally fail so user can correct issue. */
7833 }
7834 return icd_term->dispatch.AcquireWinrtDisplayNV(phys_dev_term->phys_dev, display);
7835 }
7836
7837 #endif // VK_USE_PLATFORM_WIN32_KHR
7838 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay)7839 VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV(
7840 VkPhysicalDevice physicalDevice,
7841 uint32_t deviceRelativeId,
7842 VkDisplayKHR* pDisplay) {
7843 const VkLayerInstanceDispatchTable *disp;
7844 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7845 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7846 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7847 "vkGetWinrtDisplayNV: Invalid physicalDevice "
7848 "[VUID-vkGetWinrtDisplayNV-physicalDevice-parameter]");
7849 abort(); /* Intentionally fail so user can correct issue. */
7850 }
7851 disp = loader_get_instance_layer_dispatch(physicalDevice);
7852 return disp->GetWinrtDisplayNV(unwrapped_phys_dev, deviceRelativeId, pDisplay);
7853 }
7854
terminator_GetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay)7855 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetWinrtDisplayNV(
7856 VkPhysicalDevice physicalDevice,
7857 uint32_t deviceRelativeId,
7858 VkDisplayKHR* pDisplay) {
7859 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7860 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7861 if (NULL == icd_term->dispatch.GetWinrtDisplayNV) {
7862 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7863 "ICD associated with VkPhysicalDevice does not support GetWinrtDisplayNV");
7864 abort(); /* Intentionally fail so user can correct issue. */
7865 }
7866 return icd_term->dispatch.GetWinrtDisplayNV(phys_dev_term->phys_dev, deviceRelativeId, pDisplay);
7867 }
7868
7869 #endif // VK_USE_PLATFORM_WIN32_KHR
7870
7871 // ---- VK_EXT_vertex_input_dynamic_state extension trampoline/terminators
7872
CmdSetVertexInputEXT(VkCommandBuffer commandBuffer,uint32_t vertexBindingDescriptionCount,const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions,uint32_t vertexAttributeDescriptionCount,const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions)7873 VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT(
7874 VkCommandBuffer commandBuffer,
7875 uint32_t vertexBindingDescriptionCount,
7876 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
7877 uint32_t vertexAttributeDescriptionCount,
7878 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) {
7879 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7880 if (NULL == disp) {
7881 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7882 "vkCmdSetVertexInputEXT: Invalid commandBuffer "
7883 "[VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter]");
7884 abort(); /* Intentionally fail so user can correct issue. */
7885 }
7886 disp->CmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
7887 }
7888
7889
7890 // ---- VK_FUCHSIA_external_memory extension trampoline/terminators
7891
7892 #if defined(VK_USE_PLATFORM_FUCHSIA)
GetMemoryZirconHandleFUCHSIA(VkDevice device,const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle)7893 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA(
7894 VkDevice device,
7895 const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
7896 zx_handle_t* pZirconHandle) {
7897 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7898 if (NULL == disp) {
7899 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7900 "vkGetMemoryZirconHandleFUCHSIA: Invalid device "
7901 "[VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter]");
7902 abort(); /* Intentionally fail so user can correct issue. */
7903 }
7904 return disp->GetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
7905 }
7906
7907 #endif // VK_USE_PLATFORM_FUCHSIA
7908 #if defined(VK_USE_PLATFORM_FUCHSIA)
GetMemoryZirconHandlePropertiesFUCHSIA(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle,VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties)7909 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA(
7910 VkDevice device,
7911 VkExternalMemoryHandleTypeFlagBits handleType,
7912 zx_handle_t zirconHandle,
7913 VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) {
7914 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7915 if (NULL == disp) {
7916 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7917 "vkGetMemoryZirconHandlePropertiesFUCHSIA: Invalid device "
7918 "[VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter]");
7919 abort(); /* Intentionally fail so user can correct issue. */
7920 }
7921 return disp->GetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties);
7922 }
7923
7924 #endif // VK_USE_PLATFORM_FUCHSIA
7925
7926 // ---- VK_FUCHSIA_external_semaphore extension trampoline/terminators
7927
7928 #if defined(VK_USE_PLATFORM_FUCHSIA)
ImportSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo)7929 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreZirconHandleFUCHSIA(
7930 VkDevice device,
7931 const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) {
7932 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7933 if (NULL == disp) {
7934 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7935 "vkImportSemaphoreZirconHandleFUCHSIA: Invalid device "
7936 "[VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter]");
7937 abort(); /* Intentionally fail so user can correct issue. */
7938 }
7939 return disp->ImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo);
7940 }
7941
7942 #endif // VK_USE_PLATFORM_FUCHSIA
7943 #if defined(VK_USE_PLATFORM_FUCHSIA)
GetSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle)7944 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA(
7945 VkDevice device,
7946 const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
7947 zx_handle_t* pZirconHandle) {
7948 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7949 if (NULL == disp) {
7950 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7951 "vkGetSemaphoreZirconHandleFUCHSIA: Invalid device "
7952 "[VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter]");
7953 abort(); /* Intentionally fail so user can correct issue. */
7954 }
7955 return disp->GetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
7956 }
7957
7958 #endif // VK_USE_PLATFORM_FUCHSIA
7959
7960 // ---- VK_FUCHSIA_buffer_collection extension trampoline/terminators
7961
7962 #if defined(VK_USE_PLATFORM_FUCHSIA)
CreateBufferCollectionFUCHSIA(VkDevice device,const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferCollectionFUCHSIA * pCollection)7963 VKAPI_ATTR VkResult VKAPI_CALL CreateBufferCollectionFUCHSIA(
7964 VkDevice device,
7965 const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
7966 const VkAllocationCallbacks* pAllocator,
7967 VkBufferCollectionFUCHSIA* pCollection) {
7968 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7969 if (NULL == disp) {
7970 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7971 "vkCreateBufferCollectionFUCHSIA: Invalid device "
7972 "[VUID-vkCreateBufferCollectionFUCHSIA-device-parameter]");
7973 abort(); /* Intentionally fail so user can correct issue. */
7974 }
7975 return disp->CreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection);
7976 }
7977
7978 #endif // VK_USE_PLATFORM_FUCHSIA
7979 #if defined(VK_USE_PLATFORM_FUCHSIA)
SetBufferCollectionImageConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo)7980 VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionImageConstraintsFUCHSIA(
7981 VkDevice device,
7982 VkBufferCollectionFUCHSIA collection,
7983 const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) {
7984 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7985 if (NULL == disp) {
7986 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7987 "vkSetBufferCollectionImageConstraintsFUCHSIA: Invalid device "
7988 "[VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter]");
7989 abort(); /* Intentionally fail so user can correct issue. */
7990 }
7991 return disp->SetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo);
7992 }
7993
7994 #endif // VK_USE_PLATFORM_FUCHSIA
7995 #if defined(VK_USE_PLATFORM_FUCHSIA)
SetBufferCollectionBufferConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo)7996 VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionBufferConstraintsFUCHSIA(
7997 VkDevice device,
7998 VkBufferCollectionFUCHSIA collection,
7999 const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) {
8000 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8001 if (NULL == disp) {
8002 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8003 "vkSetBufferCollectionBufferConstraintsFUCHSIA: Invalid device "
8004 "[VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter]");
8005 abort(); /* Intentionally fail so user can correct issue. */
8006 }
8007 return disp->SetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo);
8008 }
8009
8010 #endif // VK_USE_PLATFORM_FUCHSIA
8011 #if defined(VK_USE_PLATFORM_FUCHSIA)
DestroyBufferCollectionFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkAllocationCallbacks * pAllocator)8012 VKAPI_ATTR void VKAPI_CALL DestroyBufferCollectionFUCHSIA(
8013 VkDevice device,
8014 VkBufferCollectionFUCHSIA collection,
8015 const VkAllocationCallbacks* pAllocator) {
8016 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8017 if (NULL == disp) {
8018 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8019 "vkDestroyBufferCollectionFUCHSIA: Invalid device "
8020 "[VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter]");
8021 abort(); /* Intentionally fail so user can correct issue. */
8022 }
8023 disp->DestroyBufferCollectionFUCHSIA(device, collection, pAllocator);
8024 }
8025
8026 #endif // VK_USE_PLATFORM_FUCHSIA
8027 #if defined(VK_USE_PLATFORM_FUCHSIA)
GetBufferCollectionPropertiesFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,VkBufferCollectionPropertiesFUCHSIA * pProperties)8028 VKAPI_ATTR VkResult VKAPI_CALL GetBufferCollectionPropertiesFUCHSIA(
8029 VkDevice device,
8030 VkBufferCollectionFUCHSIA collection,
8031 VkBufferCollectionPropertiesFUCHSIA* pProperties) {
8032 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8033 if (NULL == disp) {
8034 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8035 "vkGetBufferCollectionPropertiesFUCHSIA: Invalid device "
8036 "[VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter]");
8037 abort(); /* Intentionally fail so user can correct issue. */
8038 }
8039 return disp->GetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties);
8040 }
8041
8042 #endif // VK_USE_PLATFORM_FUCHSIA
8043
8044 // ---- VK_HUAWEI_subpass_shading extension trampoline/terminators
8045
GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VkDevice device,VkRenderPass renderpass,VkExtent2D * pMaxWorkgroupSize)8046 VKAPI_ATTR VkResult VKAPI_CALL GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
8047 VkDevice device,
8048 VkRenderPass renderpass,
8049 VkExtent2D* pMaxWorkgroupSize) {
8050 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8051 if (NULL == disp) {
8052 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8053 "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: Invalid device "
8054 "[VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter]");
8055 abort(); /* Intentionally fail so user can correct issue. */
8056 }
8057 return disp->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
8058 }
8059
CmdSubpassShadingHUAWEI(VkCommandBuffer commandBuffer)8060 VKAPI_ATTR void VKAPI_CALL CmdSubpassShadingHUAWEI(
8061 VkCommandBuffer commandBuffer) {
8062 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8063 if (NULL == disp) {
8064 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8065 "vkCmdSubpassShadingHUAWEI: Invalid commandBuffer "
8066 "[VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter]");
8067 abort(); /* Intentionally fail so user can correct issue. */
8068 }
8069 disp->CmdSubpassShadingHUAWEI(commandBuffer);
8070 }
8071
8072
8073 // ---- VK_HUAWEI_invocation_mask extension trampoline/terminators
8074
CmdBindInvocationMaskHUAWEI(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)8075 VKAPI_ATTR void VKAPI_CALL CmdBindInvocationMaskHUAWEI(
8076 VkCommandBuffer commandBuffer,
8077 VkImageView imageView,
8078 VkImageLayout imageLayout) {
8079 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8080 if (NULL == disp) {
8081 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8082 "vkCmdBindInvocationMaskHUAWEI: Invalid commandBuffer "
8083 "[VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter]");
8084 abort(); /* Intentionally fail so user can correct issue. */
8085 }
8086 disp->CmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout);
8087 }
8088
8089
8090 // ---- VK_NV_external_memory_rdma extension trampoline/terminators
8091
GetMemoryRemoteAddressNV(VkDevice device,const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,VkRemoteAddressNV * pAddress)8092 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV(
8093 VkDevice device,
8094 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
8095 VkRemoteAddressNV* pAddress) {
8096 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8097 if (NULL == disp) {
8098 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8099 "vkGetMemoryRemoteAddressNV: Invalid device "
8100 "[VUID-vkGetMemoryRemoteAddressNV-device-parameter]");
8101 abort(); /* Intentionally fail so user can correct issue. */
8102 }
8103 return disp->GetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress);
8104 }
8105
8106
8107 // ---- VK_EXT_pipeline_properties extension trampoline/terminators
8108
GetPipelinePropertiesEXT(VkDevice device,const VkPipelineInfoEXT * pPipelineInfo,VkBaseOutStructure * pPipelineProperties)8109 VKAPI_ATTR VkResult VKAPI_CALL GetPipelinePropertiesEXT(
8110 VkDevice device,
8111 const VkPipelineInfoEXT* pPipelineInfo,
8112 VkBaseOutStructure* pPipelineProperties) {
8113 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8114 if (NULL == disp) {
8115 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8116 "vkGetPipelinePropertiesEXT: Invalid device "
8117 "[VUID-vkGetPipelinePropertiesEXT-device-parameter]");
8118 abort(); /* Intentionally fail so user can correct issue. */
8119 }
8120 return disp->GetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties);
8121 }
8122
8123
8124 // ---- VK_EXT_extended_dynamic_state2 extension trampoline/terminators
8125
CmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer,uint32_t patchControlPoints)8126 VKAPI_ATTR void VKAPI_CALL CmdSetPatchControlPointsEXT(
8127 VkCommandBuffer commandBuffer,
8128 uint32_t patchControlPoints) {
8129 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8130 if (NULL == disp) {
8131 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8132 "vkCmdSetPatchControlPointsEXT: Invalid commandBuffer "
8133 "[VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter]");
8134 abort(); /* Intentionally fail so user can correct issue. */
8135 }
8136 disp->CmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
8137 }
8138
CmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)8139 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnableEXT(
8140 VkCommandBuffer commandBuffer,
8141 VkBool32 rasterizerDiscardEnable) {
8142 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8143 if (NULL == disp) {
8144 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8145 "vkCmdSetRasterizerDiscardEnableEXT: Invalid commandBuffer "
8146 "[VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter]");
8147 abort(); /* Intentionally fail so user can correct issue. */
8148 }
8149 disp->CmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable);
8150 }
8151
CmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)8152 VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnableEXT(
8153 VkCommandBuffer commandBuffer,
8154 VkBool32 depthBiasEnable) {
8155 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8156 if (NULL == disp) {
8157 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8158 "vkCmdSetDepthBiasEnableEXT: Invalid commandBuffer "
8159 "[VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter]");
8160 abort(); /* Intentionally fail so user can correct issue. */
8161 }
8162 disp->CmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable);
8163 }
8164
CmdSetLogicOpEXT(VkCommandBuffer commandBuffer,VkLogicOp logicOp)8165 VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEXT(
8166 VkCommandBuffer commandBuffer,
8167 VkLogicOp logicOp) {
8168 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8169 if (NULL == disp) {
8170 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8171 "vkCmdSetLogicOpEXT: Invalid commandBuffer "
8172 "[VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter]");
8173 abort(); /* Intentionally fail so user can correct issue. */
8174 }
8175 disp->CmdSetLogicOpEXT(commandBuffer, logicOp);
8176 }
8177
CmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)8178 VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnableEXT(
8179 VkCommandBuffer commandBuffer,
8180 VkBool32 primitiveRestartEnable) {
8181 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8182 if (NULL == disp) {
8183 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8184 "vkCmdSetPrimitiveRestartEnableEXT: Invalid commandBuffer "
8185 "[VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter]");
8186 abort(); /* Intentionally fail so user can correct issue. */
8187 }
8188 disp->CmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable);
8189 }
8190
8191
8192 // ---- VK_EXT_color_write_enable extension trampoline/terminators
8193
CmdSetColorWriteEnableEXT(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkBool32 * pColorWriteEnables)8194 VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteEnableEXT(
8195 VkCommandBuffer commandBuffer,
8196 uint32_t attachmentCount,
8197 const VkBool32* pColorWriteEnables) {
8198 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8199 if (NULL == disp) {
8200 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8201 "vkCmdSetColorWriteEnableEXT: Invalid commandBuffer "
8202 "[VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter]");
8203 abort(); /* Intentionally fail so user can correct issue. */
8204 }
8205 disp->CmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
8206 }
8207
8208
8209 // ---- VK_EXT_multi_draw extension trampoline/terminators
8210
CmdDrawMultiEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawInfoEXT * pVertexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride)8211 VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT(
8212 VkCommandBuffer commandBuffer,
8213 uint32_t drawCount,
8214 const VkMultiDrawInfoEXT* pVertexInfo,
8215 uint32_t instanceCount,
8216 uint32_t firstInstance,
8217 uint32_t stride) {
8218 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8219 if (NULL == disp) {
8220 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8221 "vkCmdDrawMultiEXT: Invalid commandBuffer "
8222 "[VUID-vkCmdDrawMultiEXT-commandBuffer-parameter]");
8223 abort(); /* Intentionally fail so user can correct issue. */
8224 }
8225 disp->CmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride);
8226 }
8227
CmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawIndexedInfoEXT * pIndexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride,const int32_t * pVertexOffset)8228 VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT(
8229 VkCommandBuffer commandBuffer,
8230 uint32_t drawCount,
8231 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
8232 uint32_t instanceCount,
8233 uint32_t firstInstance,
8234 uint32_t stride,
8235 const int32_t* pVertexOffset) {
8236 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8237 if (NULL == disp) {
8238 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8239 "vkCmdDrawMultiIndexedEXT: Invalid commandBuffer "
8240 "[VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter]");
8241 abort(); /* Intentionally fail so user can correct issue. */
8242 }
8243 disp->CmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset);
8244 }
8245
8246
8247 // ---- VK_EXT_opacity_micromap extension trampoline/terminators
8248
CreateMicromapEXT(VkDevice device,const VkMicromapCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkMicromapEXT * pMicromap)8249 VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT(
8250 VkDevice device,
8251 const VkMicromapCreateInfoEXT* pCreateInfo,
8252 const VkAllocationCallbacks* pAllocator,
8253 VkMicromapEXT* pMicromap) {
8254 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8255 if (NULL == disp) {
8256 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8257 "vkCreateMicromapEXT: Invalid device "
8258 "[VUID-vkCreateMicromapEXT-device-parameter]");
8259 abort(); /* Intentionally fail so user can correct issue. */
8260 }
8261 return disp->CreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap);
8262 }
8263
DestroyMicromapEXT(VkDevice device,VkMicromapEXT micromap,const VkAllocationCallbacks * pAllocator)8264 VKAPI_ATTR void VKAPI_CALL DestroyMicromapEXT(
8265 VkDevice device,
8266 VkMicromapEXT micromap,
8267 const VkAllocationCallbacks* pAllocator) {
8268 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8269 if (NULL == disp) {
8270 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8271 "vkDestroyMicromapEXT: Invalid device "
8272 "[VUID-vkDestroyMicromapEXT-device-parameter]");
8273 abort(); /* Intentionally fail so user can correct issue. */
8274 }
8275 disp->DestroyMicromapEXT(device, micromap, pAllocator);
8276 }
8277
CmdBuildMicromapsEXT(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkMicromapBuildInfoEXT * pInfos)8278 VKAPI_ATTR void VKAPI_CALL CmdBuildMicromapsEXT(
8279 VkCommandBuffer commandBuffer,
8280 uint32_t infoCount,
8281 const VkMicromapBuildInfoEXT* pInfos) {
8282 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8283 if (NULL == disp) {
8284 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8285 "vkCmdBuildMicromapsEXT: Invalid commandBuffer "
8286 "[VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter]");
8287 abort(); /* Intentionally fail so user can correct issue. */
8288 }
8289 disp->CmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos);
8290 }
8291
BuildMicromapsEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkMicromapBuildInfoEXT * pInfos)8292 VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT(
8293 VkDevice device,
8294 VkDeferredOperationKHR deferredOperation,
8295 uint32_t infoCount,
8296 const VkMicromapBuildInfoEXT* pInfos) {
8297 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8298 if (NULL == disp) {
8299 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8300 "vkBuildMicromapsEXT: Invalid device "
8301 "[VUID-vkBuildMicromapsEXT-device-parameter]");
8302 abort(); /* Intentionally fail so user can correct issue. */
8303 }
8304 return disp->BuildMicromapsEXT(device, deferredOperation, infoCount, pInfos);
8305 }
8306
CopyMicromapEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMicromapInfoEXT * pInfo)8307 VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapEXT(
8308 VkDevice device,
8309 VkDeferredOperationKHR deferredOperation,
8310 const VkCopyMicromapInfoEXT* pInfo) {
8311 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8312 if (NULL == disp) {
8313 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8314 "vkCopyMicromapEXT: Invalid device "
8315 "[VUID-vkCopyMicromapEXT-device-parameter]");
8316 abort(); /* Intentionally fail so user can correct issue. */
8317 }
8318 return disp->CopyMicromapEXT(device, deferredOperation, pInfo);
8319 }
8320
CopyMicromapToMemoryEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMicromapToMemoryInfoEXT * pInfo)8321 VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapToMemoryEXT(
8322 VkDevice device,
8323 VkDeferredOperationKHR deferredOperation,
8324 const VkCopyMicromapToMemoryInfoEXT* pInfo) {
8325 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8326 if (NULL == disp) {
8327 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8328 "vkCopyMicromapToMemoryEXT: Invalid device "
8329 "[VUID-vkCopyMicromapToMemoryEXT-device-parameter]");
8330 abort(); /* Intentionally fail so user can correct issue. */
8331 }
8332 return disp->CopyMicromapToMemoryEXT(device, deferredOperation, pInfo);
8333 }
8334
CopyMemoryToMicromapEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToMicromapInfoEXT * pInfo)8335 VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToMicromapEXT(
8336 VkDevice device,
8337 VkDeferredOperationKHR deferredOperation,
8338 const VkCopyMemoryToMicromapInfoEXT* pInfo) {
8339 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8340 if (NULL == disp) {
8341 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8342 "vkCopyMemoryToMicromapEXT: Invalid device "
8343 "[VUID-vkCopyMemoryToMicromapEXT-device-parameter]");
8344 abort(); /* Intentionally fail so user can correct issue. */
8345 }
8346 return disp->CopyMemoryToMicromapEXT(device, deferredOperation, pInfo);
8347 }
8348
WriteMicromapsPropertiesEXT(VkDevice device,uint32_t micromapCount,const VkMicromapEXT * pMicromaps,VkQueryType queryType,size_t dataSize,void * pData,size_t stride)8349 VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT(
8350 VkDevice device,
8351 uint32_t micromapCount,
8352 const VkMicromapEXT* pMicromaps,
8353 VkQueryType queryType,
8354 size_t dataSize,
8355 void* pData,
8356 size_t stride) {
8357 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8358 if (NULL == disp) {
8359 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8360 "vkWriteMicromapsPropertiesEXT: Invalid device "
8361 "[VUID-vkWriteMicromapsPropertiesEXT-device-parameter]");
8362 abort(); /* Intentionally fail so user can correct issue. */
8363 }
8364 return disp->WriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride);
8365 }
8366
CmdCopyMicromapEXT(VkCommandBuffer commandBuffer,const VkCopyMicromapInfoEXT * pInfo)8367 VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapEXT(
8368 VkCommandBuffer commandBuffer,
8369 const VkCopyMicromapInfoEXT* pInfo) {
8370 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8371 if (NULL == disp) {
8372 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8373 "vkCmdCopyMicromapEXT: Invalid commandBuffer "
8374 "[VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter]");
8375 abort(); /* Intentionally fail so user can correct issue. */
8376 }
8377 disp->CmdCopyMicromapEXT(commandBuffer, pInfo);
8378 }
8379
CmdCopyMicromapToMemoryEXT(VkCommandBuffer commandBuffer,const VkCopyMicromapToMemoryInfoEXT * pInfo)8380 VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapToMemoryEXT(
8381 VkCommandBuffer commandBuffer,
8382 const VkCopyMicromapToMemoryInfoEXT* pInfo) {
8383 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8384 if (NULL == disp) {
8385 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8386 "vkCmdCopyMicromapToMemoryEXT: Invalid commandBuffer "
8387 "[VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter]");
8388 abort(); /* Intentionally fail so user can correct issue. */
8389 }
8390 disp->CmdCopyMicromapToMemoryEXT(commandBuffer, pInfo);
8391 }
8392
CmdCopyMemoryToMicromapEXT(VkCommandBuffer commandBuffer,const VkCopyMemoryToMicromapInfoEXT * pInfo)8393 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToMicromapEXT(
8394 VkCommandBuffer commandBuffer,
8395 const VkCopyMemoryToMicromapInfoEXT* pInfo) {
8396 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8397 if (NULL == disp) {
8398 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8399 "vkCmdCopyMemoryToMicromapEXT: Invalid commandBuffer "
8400 "[VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter]");
8401 abort(); /* Intentionally fail so user can correct issue. */
8402 }
8403 disp->CmdCopyMemoryToMicromapEXT(commandBuffer, pInfo);
8404 }
8405
CmdWriteMicromapsPropertiesEXT(VkCommandBuffer commandBuffer,uint32_t micromapCount,const VkMicromapEXT * pMicromaps,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)8406 VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT(
8407 VkCommandBuffer commandBuffer,
8408 uint32_t micromapCount,
8409 const VkMicromapEXT* pMicromaps,
8410 VkQueryType queryType,
8411 VkQueryPool queryPool,
8412 uint32_t firstQuery) {
8413 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8414 if (NULL == disp) {
8415 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8416 "vkCmdWriteMicromapsPropertiesEXT: Invalid commandBuffer "
8417 "[VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter]");
8418 abort(); /* Intentionally fail so user can correct issue. */
8419 }
8420 disp->CmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery);
8421 }
8422
GetDeviceMicromapCompatibilityEXT(VkDevice device,const VkMicromapVersionInfoEXT * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility)8423 VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT(
8424 VkDevice device,
8425 const VkMicromapVersionInfoEXT* pVersionInfo,
8426 VkAccelerationStructureCompatibilityKHR* pCompatibility) {
8427 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8428 if (NULL == disp) {
8429 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8430 "vkGetDeviceMicromapCompatibilityEXT: Invalid device "
8431 "[VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter]");
8432 abort(); /* Intentionally fail so user can correct issue. */
8433 }
8434 disp->GetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility);
8435 }
8436
GetMicromapBuildSizesEXT(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkMicromapBuildInfoEXT * pBuildInfo,VkMicromapBuildSizesInfoEXT * pSizeInfo)8437 VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT(
8438 VkDevice device,
8439 VkAccelerationStructureBuildTypeKHR buildType,
8440 const VkMicromapBuildInfoEXT* pBuildInfo,
8441 VkMicromapBuildSizesInfoEXT* pSizeInfo) {
8442 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8443 if (NULL == disp) {
8444 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8445 "vkGetMicromapBuildSizesEXT: Invalid device "
8446 "[VUID-vkGetMicromapBuildSizesEXT-device-parameter]");
8447 abort(); /* Intentionally fail so user can correct issue. */
8448 }
8449 disp->GetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo);
8450 }
8451
8452
8453 // ---- VK_HUAWEI_cluster_culling_shader extension trampoline/terminators
8454
CmdDrawClusterHUAWEI(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)8455 VKAPI_ATTR void VKAPI_CALL CmdDrawClusterHUAWEI(
8456 VkCommandBuffer commandBuffer,
8457 uint32_t groupCountX,
8458 uint32_t groupCountY,
8459 uint32_t groupCountZ) {
8460 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8461 if (NULL == disp) {
8462 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8463 "vkCmdDrawClusterHUAWEI: Invalid commandBuffer "
8464 "[VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter]");
8465 abort(); /* Intentionally fail so user can correct issue. */
8466 }
8467 disp->CmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ);
8468 }
8469
CmdDrawClusterIndirectHUAWEI(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)8470 VKAPI_ATTR void VKAPI_CALL CmdDrawClusterIndirectHUAWEI(
8471 VkCommandBuffer commandBuffer,
8472 VkBuffer buffer,
8473 VkDeviceSize offset) {
8474 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8475 if (NULL == disp) {
8476 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8477 "vkCmdDrawClusterIndirectHUAWEI: Invalid commandBuffer "
8478 "[VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter]");
8479 abort(); /* Intentionally fail so user can correct issue. */
8480 }
8481 disp->CmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset);
8482 }
8483
8484
8485 // ---- VK_EXT_pageable_device_local_memory extension trampoline/terminators
8486
SetDeviceMemoryPriorityEXT(VkDevice device,VkDeviceMemory memory,float priority)8487 VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT(
8488 VkDevice device,
8489 VkDeviceMemory memory,
8490 float priority) {
8491 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8492 if (NULL == disp) {
8493 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8494 "vkSetDeviceMemoryPriorityEXT: Invalid device "
8495 "[VUID-vkSetDeviceMemoryPriorityEXT-device-parameter]");
8496 abort(); /* Intentionally fail so user can correct issue. */
8497 }
8498 disp->SetDeviceMemoryPriorityEXT(device, memory, priority);
8499 }
8500
8501
8502 // ---- VK_VALVE_descriptor_set_host_mapping extension trampoline/terminators
8503
GetDescriptorSetLayoutHostMappingInfoVALVE(VkDevice device,const VkDescriptorSetBindingReferenceVALVE * pBindingReference,VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping)8504 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE(
8505 VkDevice device,
8506 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
8507 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) {
8508 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8509 if (NULL == disp) {
8510 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8511 "vkGetDescriptorSetLayoutHostMappingInfoVALVE: Invalid device "
8512 "[VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter]");
8513 abort(); /* Intentionally fail so user can correct issue. */
8514 }
8515 disp->GetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping);
8516 }
8517
GetDescriptorSetHostMappingVALVE(VkDevice device,VkDescriptorSet descriptorSet,void ** ppData)8518 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE(
8519 VkDevice device,
8520 VkDescriptorSet descriptorSet,
8521 void** ppData) {
8522 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8523 if (NULL == disp) {
8524 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8525 "vkGetDescriptorSetHostMappingVALVE: Invalid device "
8526 "[VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter]");
8527 abort(); /* Intentionally fail so user can correct issue. */
8528 }
8529 disp->GetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData);
8530 }
8531
8532
8533 // ---- VK_NV_copy_memory_indirect extension trampoline/terminators
8534
CmdCopyMemoryIndirectNV(VkCommandBuffer commandBuffer,VkDeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride)8535 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectNV(
8536 VkCommandBuffer commandBuffer,
8537 VkDeviceAddress copyBufferAddress,
8538 uint32_t copyCount,
8539 uint32_t stride) {
8540 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8541 if (NULL == disp) {
8542 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8543 "vkCmdCopyMemoryIndirectNV: Invalid commandBuffer "
8544 "[VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameter]");
8545 abort(); /* Intentionally fail so user can correct issue. */
8546 }
8547 disp->CmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride);
8548 }
8549
CmdCopyMemoryToImageIndirectNV(VkCommandBuffer commandBuffer,VkDeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride,VkImage dstImage,VkImageLayout dstImageLayout,const VkImageSubresourceLayers * pImageSubresources)8550 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectNV(
8551 VkCommandBuffer commandBuffer,
8552 VkDeviceAddress copyBufferAddress,
8553 uint32_t copyCount,
8554 uint32_t stride,
8555 VkImage dstImage,
8556 VkImageLayout dstImageLayout,
8557 const VkImageSubresourceLayers* pImageSubresources) {
8558 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8559 if (NULL == disp) {
8560 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8561 "vkCmdCopyMemoryToImageIndirectNV: Invalid commandBuffer "
8562 "[VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameter]");
8563 abort(); /* Intentionally fail so user can correct issue. */
8564 }
8565 disp->CmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources);
8566 }
8567
8568
8569 // ---- VK_NV_memory_decompression extension trampoline/terminators
8570
CmdDecompressMemoryNV(VkCommandBuffer commandBuffer,uint32_t decompressRegionCount,const VkDecompressMemoryRegionNV * pDecompressMemoryRegions)8571 VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryNV(
8572 VkCommandBuffer commandBuffer,
8573 uint32_t decompressRegionCount,
8574 const VkDecompressMemoryRegionNV* pDecompressMemoryRegions) {
8575 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8576 if (NULL == disp) {
8577 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8578 "vkCmdDecompressMemoryNV: Invalid commandBuffer "
8579 "[VUID-vkCmdDecompressMemoryNV-commandBuffer-parameter]");
8580 abort(); /* Intentionally fail so user can correct issue. */
8581 }
8582 disp->CmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions);
8583 }
8584
CmdDecompressMemoryIndirectCountNV(VkCommandBuffer commandBuffer,VkDeviceAddress indirectCommandsAddress,VkDeviceAddress indirectCommandsCountAddress,uint32_t stride)8585 VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountNV(
8586 VkCommandBuffer commandBuffer,
8587 VkDeviceAddress indirectCommandsAddress,
8588 VkDeviceAddress indirectCommandsCountAddress,
8589 uint32_t stride) {
8590 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8591 if (NULL == disp) {
8592 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8593 "vkCmdDecompressMemoryIndirectCountNV: Invalid commandBuffer "
8594 "[VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameter]");
8595 abort(); /* Intentionally fail so user can correct issue. */
8596 }
8597 disp->CmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride);
8598 }
8599
8600
8601 // ---- VK_NV_device_generated_commands_compute extension trampoline/terminators
8602
GetPipelineIndirectMemoryRequirementsNV(VkDevice device,const VkComputePipelineCreateInfo * pCreateInfo,VkMemoryRequirements2 * pMemoryRequirements)8603 VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV(
8604 VkDevice device,
8605 const VkComputePipelineCreateInfo* pCreateInfo,
8606 VkMemoryRequirements2* pMemoryRequirements) {
8607 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8608 if (NULL == disp) {
8609 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8610 "vkGetPipelineIndirectMemoryRequirementsNV: Invalid device "
8611 "[VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter]");
8612 abort(); /* Intentionally fail so user can correct issue. */
8613 }
8614 disp->GetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
8615 }
8616
CmdUpdatePipelineIndirectBufferNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)8617 VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBufferNV(
8618 VkCommandBuffer commandBuffer,
8619 VkPipelineBindPoint pipelineBindPoint,
8620 VkPipeline pipeline) {
8621 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8622 if (NULL == disp) {
8623 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8624 "vkCmdUpdatePipelineIndirectBufferNV: Invalid commandBuffer "
8625 "[VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter]");
8626 abort(); /* Intentionally fail so user can correct issue. */
8627 }
8628 disp->CmdUpdatePipelineIndirectBufferNV(commandBuffer, pipelineBindPoint, pipeline);
8629 }
8630
GetPipelineIndirectDeviceAddressNV(VkDevice device,const VkPipelineIndirectDeviceAddressInfoNV * pInfo)8631 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV(
8632 VkDevice device,
8633 const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {
8634 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8635 if (NULL == disp) {
8636 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8637 "vkGetPipelineIndirectDeviceAddressNV: Invalid device "
8638 "[VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter]");
8639 abort(); /* Intentionally fail so user can correct issue. */
8640 }
8641 return disp->GetPipelineIndirectDeviceAddressNV(device, pInfo);
8642 }
8643
8644
8645 // ---- VK_EXT_extended_dynamic_state3 extension trampoline/terminators
8646
CmdSetTessellationDomainOriginEXT(VkCommandBuffer commandBuffer,VkTessellationDomainOrigin domainOrigin)8647 VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT(
8648 VkCommandBuffer commandBuffer,
8649 VkTessellationDomainOrigin domainOrigin) {
8650 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8651 if (NULL == disp) {
8652 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8653 "vkCmdSetTessellationDomainOriginEXT: Invalid commandBuffer "
8654 "[VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter]");
8655 abort(); /* Intentionally fail so user can correct issue. */
8656 }
8657 disp->CmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin);
8658 }
8659
CmdSetDepthClampEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthClampEnable)8660 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampEnableEXT(
8661 VkCommandBuffer commandBuffer,
8662 VkBool32 depthClampEnable) {
8663 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8664 if (NULL == disp) {
8665 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8666 "vkCmdSetDepthClampEnableEXT: Invalid commandBuffer "
8667 "[VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter]");
8668 abort(); /* Intentionally fail so user can correct issue. */
8669 }
8670 disp->CmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable);
8671 }
8672
CmdSetPolygonModeEXT(VkCommandBuffer commandBuffer,VkPolygonMode polygonMode)8673 VKAPI_ATTR void VKAPI_CALL CmdSetPolygonModeEXT(
8674 VkCommandBuffer commandBuffer,
8675 VkPolygonMode polygonMode) {
8676 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8677 if (NULL == disp) {
8678 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8679 "vkCmdSetPolygonModeEXT: Invalid commandBuffer "
8680 "[VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter]");
8681 abort(); /* Intentionally fail so user can correct issue. */
8682 }
8683 disp->CmdSetPolygonModeEXT(commandBuffer, polygonMode);
8684 }
8685
CmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer,VkSampleCountFlagBits rasterizationSamples)8686 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationSamplesEXT(
8687 VkCommandBuffer commandBuffer,
8688 VkSampleCountFlagBits rasterizationSamples) {
8689 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8690 if (NULL == disp) {
8691 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8692 "vkCmdSetRasterizationSamplesEXT: Invalid commandBuffer "
8693 "[VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter]");
8694 abort(); /* Intentionally fail so user can correct issue. */
8695 }
8696 disp->CmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples);
8697 }
8698
CmdSetSampleMaskEXT(VkCommandBuffer commandBuffer,VkSampleCountFlagBits samples,const VkSampleMask * pSampleMask)8699 VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT(
8700 VkCommandBuffer commandBuffer,
8701 VkSampleCountFlagBits samples,
8702 const VkSampleMask* pSampleMask) {
8703 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8704 if (NULL == disp) {
8705 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8706 "vkCmdSetSampleMaskEXT: Invalid commandBuffer "
8707 "[VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter]");
8708 abort(); /* Intentionally fail so user can correct issue. */
8709 }
8710 disp->CmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask);
8711 }
8712
CmdSetAlphaToCoverageEnableEXT(VkCommandBuffer commandBuffer,VkBool32 alphaToCoverageEnable)8713 VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToCoverageEnableEXT(
8714 VkCommandBuffer commandBuffer,
8715 VkBool32 alphaToCoverageEnable) {
8716 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8717 if (NULL == disp) {
8718 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8719 "vkCmdSetAlphaToCoverageEnableEXT: Invalid commandBuffer "
8720 "[VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter]");
8721 abort(); /* Intentionally fail so user can correct issue. */
8722 }
8723 disp->CmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable);
8724 }
8725
CmdSetAlphaToOneEnableEXT(VkCommandBuffer commandBuffer,VkBool32 alphaToOneEnable)8726 VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToOneEnableEXT(
8727 VkCommandBuffer commandBuffer,
8728 VkBool32 alphaToOneEnable) {
8729 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8730 if (NULL == disp) {
8731 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8732 "vkCmdSetAlphaToOneEnableEXT: Invalid commandBuffer "
8733 "[VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter]");
8734 abort(); /* Intentionally fail so user can correct issue. */
8735 }
8736 disp->CmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable);
8737 }
8738
CmdSetLogicOpEnableEXT(VkCommandBuffer commandBuffer,VkBool32 logicOpEnable)8739 VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEnableEXT(
8740 VkCommandBuffer commandBuffer,
8741 VkBool32 logicOpEnable) {
8742 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8743 if (NULL == disp) {
8744 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8745 "vkCmdSetLogicOpEnableEXT: Invalid commandBuffer "
8746 "[VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter]");
8747 abort(); /* Intentionally fail so user can correct issue. */
8748 }
8749 disp->CmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable);
8750 }
8751
CmdSetColorBlendEnableEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkBool32 * pColorBlendEnables)8752 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT(
8753 VkCommandBuffer commandBuffer,
8754 uint32_t firstAttachment,
8755 uint32_t attachmentCount,
8756 const VkBool32* pColorBlendEnables) {
8757 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8758 if (NULL == disp) {
8759 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8760 "vkCmdSetColorBlendEnableEXT: Invalid commandBuffer "
8761 "[VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter]");
8762 abort(); /* Intentionally fail so user can correct issue. */
8763 }
8764 disp->CmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables);
8765 }
8766
CmdSetColorBlendEquationEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorBlendEquationEXT * pColorBlendEquations)8767 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT(
8768 VkCommandBuffer commandBuffer,
8769 uint32_t firstAttachment,
8770 uint32_t attachmentCount,
8771 const VkColorBlendEquationEXT* pColorBlendEquations) {
8772 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8773 if (NULL == disp) {
8774 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8775 "vkCmdSetColorBlendEquationEXT: Invalid commandBuffer "
8776 "[VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter]");
8777 abort(); /* Intentionally fail so user can correct issue. */
8778 }
8779 disp->CmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations);
8780 }
8781
CmdSetColorWriteMaskEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorComponentFlags * pColorWriteMasks)8782 VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT(
8783 VkCommandBuffer commandBuffer,
8784 uint32_t firstAttachment,
8785 uint32_t attachmentCount,
8786 const VkColorComponentFlags* pColorWriteMasks) {
8787 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8788 if (NULL == disp) {
8789 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8790 "vkCmdSetColorWriteMaskEXT: Invalid commandBuffer "
8791 "[VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter]");
8792 abort(); /* Intentionally fail so user can correct issue. */
8793 }
8794 disp->CmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks);
8795 }
8796
CmdSetRasterizationStreamEXT(VkCommandBuffer commandBuffer,uint32_t rasterizationStream)8797 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationStreamEXT(
8798 VkCommandBuffer commandBuffer,
8799 uint32_t rasterizationStream) {
8800 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8801 if (NULL == disp) {
8802 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8803 "vkCmdSetRasterizationStreamEXT: Invalid commandBuffer "
8804 "[VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter]");
8805 abort(); /* Intentionally fail so user can correct issue. */
8806 }
8807 disp->CmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream);
8808 }
8809
CmdSetConservativeRasterizationModeEXT(VkCommandBuffer commandBuffer,VkConservativeRasterizationModeEXT conservativeRasterizationMode)8810 VKAPI_ATTR void VKAPI_CALL CmdSetConservativeRasterizationModeEXT(
8811 VkCommandBuffer commandBuffer,
8812 VkConservativeRasterizationModeEXT conservativeRasterizationMode) {
8813 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8814 if (NULL == disp) {
8815 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8816 "vkCmdSetConservativeRasterizationModeEXT: Invalid commandBuffer "
8817 "[VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter]");
8818 abort(); /* Intentionally fail so user can correct issue. */
8819 }
8820 disp->CmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode);
8821 }
8822
CmdSetExtraPrimitiveOverestimationSizeEXT(VkCommandBuffer commandBuffer,float extraPrimitiveOverestimationSize)8823 VKAPI_ATTR void VKAPI_CALL CmdSetExtraPrimitiveOverestimationSizeEXT(
8824 VkCommandBuffer commandBuffer,
8825 float extraPrimitiveOverestimationSize) {
8826 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8827 if (NULL == disp) {
8828 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8829 "vkCmdSetExtraPrimitiveOverestimationSizeEXT: Invalid commandBuffer "
8830 "[VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter]");
8831 abort(); /* Intentionally fail so user can correct issue. */
8832 }
8833 disp->CmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize);
8834 }
8835
CmdSetDepthClipEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthClipEnable)8836 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipEnableEXT(
8837 VkCommandBuffer commandBuffer,
8838 VkBool32 depthClipEnable) {
8839 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8840 if (NULL == disp) {
8841 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8842 "vkCmdSetDepthClipEnableEXT: Invalid commandBuffer "
8843 "[VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter]");
8844 abort(); /* Intentionally fail so user can correct issue. */
8845 }
8846 disp->CmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable);
8847 }
8848
CmdSetSampleLocationsEnableEXT(VkCommandBuffer commandBuffer,VkBool32 sampleLocationsEnable)8849 VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEnableEXT(
8850 VkCommandBuffer commandBuffer,
8851 VkBool32 sampleLocationsEnable) {
8852 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8853 if (NULL == disp) {
8854 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8855 "vkCmdSetSampleLocationsEnableEXT: Invalid commandBuffer "
8856 "[VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter]");
8857 abort(); /* Intentionally fail so user can correct issue. */
8858 }
8859 disp->CmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable);
8860 }
8861
CmdSetColorBlendAdvancedEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorBlendAdvancedEXT * pColorBlendAdvanced)8862 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT(
8863 VkCommandBuffer commandBuffer,
8864 uint32_t firstAttachment,
8865 uint32_t attachmentCount,
8866 const VkColorBlendAdvancedEXT* pColorBlendAdvanced) {
8867 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8868 if (NULL == disp) {
8869 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8870 "vkCmdSetColorBlendAdvancedEXT: Invalid commandBuffer "
8871 "[VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter]");
8872 abort(); /* Intentionally fail so user can correct issue. */
8873 }
8874 disp->CmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced);
8875 }
8876
CmdSetProvokingVertexModeEXT(VkCommandBuffer commandBuffer,VkProvokingVertexModeEXT provokingVertexMode)8877 VKAPI_ATTR void VKAPI_CALL CmdSetProvokingVertexModeEXT(
8878 VkCommandBuffer commandBuffer,
8879 VkProvokingVertexModeEXT provokingVertexMode) {
8880 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8881 if (NULL == disp) {
8882 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8883 "vkCmdSetProvokingVertexModeEXT: Invalid commandBuffer "
8884 "[VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter]");
8885 abort(); /* Intentionally fail so user can correct issue. */
8886 }
8887 disp->CmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode);
8888 }
8889
CmdSetLineRasterizationModeEXT(VkCommandBuffer commandBuffer,VkLineRasterizationModeEXT lineRasterizationMode)8890 VKAPI_ATTR void VKAPI_CALL CmdSetLineRasterizationModeEXT(
8891 VkCommandBuffer commandBuffer,
8892 VkLineRasterizationModeEXT lineRasterizationMode) {
8893 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8894 if (NULL == disp) {
8895 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8896 "vkCmdSetLineRasterizationModeEXT: Invalid commandBuffer "
8897 "[VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter]");
8898 abort(); /* Intentionally fail so user can correct issue. */
8899 }
8900 disp->CmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode);
8901 }
8902
CmdSetLineStippleEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stippledLineEnable)8903 VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEnableEXT(
8904 VkCommandBuffer commandBuffer,
8905 VkBool32 stippledLineEnable) {
8906 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8907 if (NULL == disp) {
8908 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8909 "vkCmdSetLineStippleEnableEXT: Invalid commandBuffer "
8910 "[VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter]");
8911 abort(); /* Intentionally fail so user can correct issue. */
8912 }
8913 disp->CmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable);
8914 }
8915
CmdSetDepthClipNegativeOneToOneEXT(VkCommandBuffer commandBuffer,VkBool32 negativeOneToOne)8916 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipNegativeOneToOneEXT(
8917 VkCommandBuffer commandBuffer,
8918 VkBool32 negativeOneToOne) {
8919 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8920 if (NULL == disp) {
8921 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8922 "vkCmdSetDepthClipNegativeOneToOneEXT: Invalid commandBuffer "
8923 "[VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter]");
8924 abort(); /* Intentionally fail so user can correct issue. */
8925 }
8926 disp->CmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne);
8927 }
8928
CmdSetViewportWScalingEnableNV(VkCommandBuffer commandBuffer,VkBool32 viewportWScalingEnable)8929 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingEnableNV(
8930 VkCommandBuffer commandBuffer,
8931 VkBool32 viewportWScalingEnable) {
8932 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8933 if (NULL == disp) {
8934 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8935 "vkCmdSetViewportWScalingEnableNV: Invalid commandBuffer "
8936 "[VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter]");
8937 abort(); /* Intentionally fail so user can correct issue. */
8938 }
8939 disp->CmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable);
8940 }
8941
CmdSetViewportSwizzleNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportSwizzleNV * pViewportSwizzles)8942 VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV(
8943 VkCommandBuffer commandBuffer,
8944 uint32_t firstViewport,
8945 uint32_t viewportCount,
8946 const VkViewportSwizzleNV* pViewportSwizzles) {
8947 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8948 if (NULL == disp) {
8949 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8950 "vkCmdSetViewportSwizzleNV: Invalid commandBuffer "
8951 "[VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter]");
8952 abort(); /* Intentionally fail so user can correct issue. */
8953 }
8954 disp->CmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles);
8955 }
8956
CmdSetCoverageToColorEnableNV(VkCommandBuffer commandBuffer,VkBool32 coverageToColorEnable)8957 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorEnableNV(
8958 VkCommandBuffer commandBuffer,
8959 VkBool32 coverageToColorEnable) {
8960 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8961 if (NULL == disp) {
8962 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8963 "vkCmdSetCoverageToColorEnableNV: Invalid commandBuffer "
8964 "[VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter]");
8965 abort(); /* Intentionally fail so user can correct issue. */
8966 }
8967 disp->CmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable);
8968 }
8969
CmdSetCoverageToColorLocationNV(VkCommandBuffer commandBuffer,uint32_t coverageToColorLocation)8970 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorLocationNV(
8971 VkCommandBuffer commandBuffer,
8972 uint32_t coverageToColorLocation) {
8973 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8974 if (NULL == disp) {
8975 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8976 "vkCmdSetCoverageToColorLocationNV: Invalid commandBuffer "
8977 "[VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter]");
8978 abort(); /* Intentionally fail so user can correct issue. */
8979 }
8980 disp->CmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation);
8981 }
8982
CmdSetCoverageModulationModeNV(VkCommandBuffer commandBuffer,VkCoverageModulationModeNV coverageModulationMode)8983 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationModeNV(
8984 VkCommandBuffer commandBuffer,
8985 VkCoverageModulationModeNV coverageModulationMode) {
8986 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8987 if (NULL == disp) {
8988 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8989 "vkCmdSetCoverageModulationModeNV: Invalid commandBuffer "
8990 "[VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter]");
8991 abort(); /* Intentionally fail so user can correct issue. */
8992 }
8993 disp->CmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode);
8994 }
8995
CmdSetCoverageModulationTableEnableNV(VkCommandBuffer commandBuffer,VkBool32 coverageModulationTableEnable)8996 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableEnableNV(
8997 VkCommandBuffer commandBuffer,
8998 VkBool32 coverageModulationTableEnable) {
8999 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9000 if (NULL == disp) {
9001 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9002 "vkCmdSetCoverageModulationTableEnableNV: Invalid commandBuffer "
9003 "[VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter]");
9004 abort(); /* Intentionally fail so user can correct issue. */
9005 }
9006 disp->CmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable);
9007 }
9008
CmdSetCoverageModulationTableNV(VkCommandBuffer commandBuffer,uint32_t coverageModulationTableCount,const float * pCoverageModulationTable)9009 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV(
9010 VkCommandBuffer commandBuffer,
9011 uint32_t coverageModulationTableCount,
9012 const float* pCoverageModulationTable) {
9013 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9014 if (NULL == disp) {
9015 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9016 "vkCmdSetCoverageModulationTableNV: Invalid commandBuffer "
9017 "[VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter]");
9018 abort(); /* Intentionally fail so user can correct issue. */
9019 }
9020 disp->CmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable);
9021 }
9022
CmdSetShadingRateImageEnableNV(VkCommandBuffer commandBuffer,VkBool32 shadingRateImageEnable)9023 VKAPI_ATTR void VKAPI_CALL CmdSetShadingRateImageEnableNV(
9024 VkCommandBuffer commandBuffer,
9025 VkBool32 shadingRateImageEnable) {
9026 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9027 if (NULL == disp) {
9028 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9029 "vkCmdSetShadingRateImageEnableNV: Invalid commandBuffer "
9030 "[VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter]");
9031 abort(); /* Intentionally fail so user can correct issue. */
9032 }
9033 disp->CmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable);
9034 }
9035
CmdSetRepresentativeFragmentTestEnableNV(VkCommandBuffer commandBuffer,VkBool32 representativeFragmentTestEnable)9036 VKAPI_ATTR void VKAPI_CALL CmdSetRepresentativeFragmentTestEnableNV(
9037 VkCommandBuffer commandBuffer,
9038 VkBool32 representativeFragmentTestEnable) {
9039 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9040 if (NULL == disp) {
9041 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9042 "vkCmdSetRepresentativeFragmentTestEnableNV: Invalid commandBuffer "
9043 "[VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter]");
9044 abort(); /* Intentionally fail so user can correct issue. */
9045 }
9046 disp->CmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable);
9047 }
9048
CmdSetCoverageReductionModeNV(VkCommandBuffer commandBuffer,VkCoverageReductionModeNV coverageReductionMode)9049 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV(
9050 VkCommandBuffer commandBuffer,
9051 VkCoverageReductionModeNV coverageReductionMode) {
9052 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9053 if (NULL == disp) {
9054 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9055 "vkCmdSetCoverageReductionModeNV: Invalid commandBuffer "
9056 "[VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter]");
9057 abort(); /* Intentionally fail so user can correct issue. */
9058 }
9059 disp->CmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode);
9060 }
9061
9062
9063 // ---- VK_EXT_shader_module_identifier extension trampoline/terminators
9064
GetShaderModuleIdentifierEXT(VkDevice device,VkShaderModule shaderModule,VkShaderModuleIdentifierEXT * pIdentifier)9065 VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT(
9066 VkDevice device,
9067 VkShaderModule shaderModule,
9068 VkShaderModuleIdentifierEXT* pIdentifier) {
9069 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9070 if (NULL == disp) {
9071 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9072 "vkGetShaderModuleIdentifierEXT: Invalid device "
9073 "[VUID-vkGetShaderModuleIdentifierEXT-device-parameter]");
9074 abort(); /* Intentionally fail so user can correct issue. */
9075 }
9076 disp->GetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier);
9077 }
9078
GetShaderModuleCreateInfoIdentifierEXT(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,VkShaderModuleIdentifierEXT * pIdentifier)9079 VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT(
9080 VkDevice device,
9081 const VkShaderModuleCreateInfo* pCreateInfo,
9082 VkShaderModuleIdentifierEXT* pIdentifier) {
9083 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9084 if (NULL == disp) {
9085 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9086 "vkGetShaderModuleCreateInfoIdentifierEXT: Invalid device "
9087 "[VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter]");
9088 abort(); /* Intentionally fail so user can correct issue. */
9089 }
9090 disp->GetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier);
9091 }
9092
9093
9094 // ---- VK_NV_optical_flow extension trampoline/terminators
9095
GetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice physicalDevice,const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,uint32_t * pFormatCount,VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties)9096 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV(
9097 VkPhysicalDevice physicalDevice,
9098 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
9099 uint32_t* pFormatCount,
9100 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties) {
9101 const VkLayerInstanceDispatchTable *disp;
9102 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
9103 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
9104 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9105 "vkGetPhysicalDeviceOpticalFlowImageFormatsNV: Invalid physicalDevice "
9106 "[VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter]");
9107 abort(); /* Intentionally fail so user can correct issue. */
9108 }
9109 disp = loader_get_instance_layer_dispatch(physicalDevice);
9110 return disp->GetPhysicalDeviceOpticalFlowImageFormatsNV(unwrapped_phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
9111 }
9112
terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice physicalDevice,const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,uint32_t * pFormatCount,VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties)9113 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(
9114 VkPhysicalDevice physicalDevice,
9115 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
9116 uint32_t* pFormatCount,
9117 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties) {
9118 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
9119 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
9120 if (NULL == icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV) {
9121 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
9122 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceOpticalFlowImageFormatsNV");
9123 abort(); /* Intentionally fail so user can correct issue. */
9124 }
9125 return icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV(phys_dev_term->phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
9126 }
9127
CreateOpticalFlowSessionNV(VkDevice device,const VkOpticalFlowSessionCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkOpticalFlowSessionNV * pSession)9128 VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV(
9129 VkDevice device,
9130 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
9131 const VkAllocationCallbacks* pAllocator,
9132 VkOpticalFlowSessionNV* pSession) {
9133 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9134 if (NULL == disp) {
9135 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9136 "vkCreateOpticalFlowSessionNV: Invalid device "
9137 "[VUID-vkCreateOpticalFlowSessionNV-device-parameter]");
9138 abort(); /* Intentionally fail so user can correct issue. */
9139 }
9140 return disp->CreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession);
9141 }
9142
DestroyOpticalFlowSessionNV(VkDevice device,VkOpticalFlowSessionNV session,const VkAllocationCallbacks * pAllocator)9143 VKAPI_ATTR void VKAPI_CALL DestroyOpticalFlowSessionNV(
9144 VkDevice device,
9145 VkOpticalFlowSessionNV session,
9146 const VkAllocationCallbacks* pAllocator) {
9147 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9148 if (NULL == disp) {
9149 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9150 "vkDestroyOpticalFlowSessionNV: Invalid device "
9151 "[VUID-vkDestroyOpticalFlowSessionNV-device-parameter]");
9152 abort(); /* Intentionally fail so user can correct issue. */
9153 }
9154 disp->DestroyOpticalFlowSessionNV(device, session, pAllocator);
9155 }
9156
BindOpticalFlowSessionImageNV(VkDevice device,VkOpticalFlowSessionNV session,VkOpticalFlowSessionBindingPointNV bindingPoint,VkImageView view,VkImageLayout layout)9157 VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV(
9158 VkDevice device,
9159 VkOpticalFlowSessionNV session,
9160 VkOpticalFlowSessionBindingPointNV bindingPoint,
9161 VkImageView view,
9162 VkImageLayout layout) {
9163 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9164 if (NULL == disp) {
9165 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9166 "vkBindOpticalFlowSessionImageNV: Invalid device "
9167 "[VUID-vkBindOpticalFlowSessionImageNV-device-parameter]");
9168 abort(); /* Intentionally fail so user can correct issue. */
9169 }
9170 return disp->BindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout);
9171 }
9172
CmdOpticalFlowExecuteNV(VkCommandBuffer commandBuffer,VkOpticalFlowSessionNV session,const VkOpticalFlowExecuteInfoNV * pExecuteInfo)9173 VKAPI_ATTR void VKAPI_CALL CmdOpticalFlowExecuteNV(
9174 VkCommandBuffer commandBuffer,
9175 VkOpticalFlowSessionNV session,
9176 const VkOpticalFlowExecuteInfoNV* pExecuteInfo) {
9177 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9178 if (NULL == disp) {
9179 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9180 "vkCmdOpticalFlowExecuteNV: Invalid commandBuffer "
9181 "[VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter]");
9182 abort(); /* Intentionally fail so user can correct issue. */
9183 }
9184 disp->CmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo);
9185 }
9186
9187
9188 // ---- VK_EXT_shader_object extension trampoline/terminators
9189
CreateShadersEXT(VkDevice device,uint32_t createInfoCount,const VkShaderCreateInfoEXT * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkShaderEXT * pShaders)9190 VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT(
9191 VkDevice device,
9192 uint32_t createInfoCount,
9193 const VkShaderCreateInfoEXT* pCreateInfos,
9194 const VkAllocationCallbacks* pAllocator,
9195 VkShaderEXT* pShaders) {
9196 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9197 if (NULL == disp) {
9198 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9199 "vkCreateShadersEXT: Invalid device "
9200 "[VUID-vkCreateShadersEXT-device-parameter]");
9201 abort(); /* Intentionally fail so user can correct issue. */
9202 }
9203 return disp->CreateShadersEXT(device, createInfoCount, pCreateInfos, pAllocator, pShaders);
9204 }
9205
DestroyShaderEXT(VkDevice device,VkShaderEXT shader,const VkAllocationCallbacks * pAllocator)9206 VKAPI_ATTR void VKAPI_CALL DestroyShaderEXT(
9207 VkDevice device,
9208 VkShaderEXT shader,
9209 const VkAllocationCallbacks* pAllocator) {
9210 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9211 if (NULL == disp) {
9212 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9213 "vkDestroyShaderEXT: Invalid device "
9214 "[VUID-vkDestroyShaderEXT-device-parameter]");
9215 abort(); /* Intentionally fail so user can correct issue. */
9216 }
9217 disp->DestroyShaderEXT(device, shader, pAllocator);
9218 }
9219
GetShaderBinaryDataEXT(VkDevice device,VkShaderEXT shader,size_t * pDataSize,void * pData)9220 VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT(
9221 VkDevice device,
9222 VkShaderEXT shader,
9223 size_t* pDataSize,
9224 void* pData) {
9225 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9226 if (NULL == disp) {
9227 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9228 "vkGetShaderBinaryDataEXT: Invalid device "
9229 "[VUID-vkGetShaderBinaryDataEXT-device-parameter]");
9230 abort(); /* Intentionally fail so user can correct issue. */
9231 }
9232 return disp->GetShaderBinaryDataEXT(device, shader, pDataSize, pData);
9233 }
9234
CmdBindShadersEXT(VkCommandBuffer commandBuffer,uint32_t stageCount,const VkShaderStageFlagBits * pStages,const VkShaderEXT * pShaders)9235 VKAPI_ATTR void VKAPI_CALL CmdBindShadersEXT(
9236 VkCommandBuffer commandBuffer,
9237 uint32_t stageCount,
9238 const VkShaderStageFlagBits* pStages,
9239 const VkShaderEXT* pShaders) {
9240 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9241 if (NULL == disp) {
9242 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9243 "vkCmdBindShadersEXT: Invalid commandBuffer "
9244 "[VUID-vkCmdBindShadersEXT-commandBuffer-parameter]");
9245 abort(); /* Intentionally fail so user can correct issue. */
9246 }
9247 disp->CmdBindShadersEXT(commandBuffer, stageCount, pStages, pShaders);
9248 }
9249
9250
9251 // ---- VK_QCOM_tile_properties extension trampoline/terminators
9252
GetFramebufferTilePropertiesQCOM(VkDevice device,VkFramebuffer framebuffer,uint32_t * pPropertiesCount,VkTilePropertiesQCOM * pProperties)9253 VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM(
9254 VkDevice device,
9255 VkFramebuffer framebuffer,
9256 uint32_t* pPropertiesCount,
9257 VkTilePropertiesQCOM* pProperties) {
9258 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9259 if (NULL == disp) {
9260 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9261 "vkGetFramebufferTilePropertiesQCOM: Invalid device "
9262 "[VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter]");
9263 abort(); /* Intentionally fail so user can correct issue. */
9264 }
9265 return disp->GetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties);
9266 }
9267
GetDynamicRenderingTilePropertiesQCOM(VkDevice device,const VkRenderingInfo * pRenderingInfo,VkTilePropertiesQCOM * pProperties)9268 VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(
9269 VkDevice device,
9270 const VkRenderingInfo* pRenderingInfo,
9271 VkTilePropertiesQCOM* pProperties) {
9272 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9273 if (NULL == disp) {
9274 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9275 "vkGetDynamicRenderingTilePropertiesQCOM: Invalid device "
9276 "[VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter]");
9277 abort(); /* Intentionally fail so user can correct issue. */
9278 }
9279 return disp->GetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties);
9280 }
9281
9282
9283 // ---- VK_NV_low_latency2 extension trampoline/terminators
9284
SetLatencySleepModeNV(VkDevice device,VkSwapchainKHR swapchain,const VkLatencySleepModeInfoNV * pSleepModeInfo)9285 VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(
9286 VkDevice device,
9287 VkSwapchainKHR swapchain,
9288 const VkLatencySleepModeInfoNV* pSleepModeInfo) {
9289 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9290 if (NULL == disp) {
9291 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9292 "vkSetLatencySleepModeNV: Invalid device "
9293 "[VUID-vkSetLatencySleepModeNV-device-parameter]");
9294 abort(); /* Intentionally fail so user can correct issue. */
9295 }
9296 return disp->SetLatencySleepModeNV(device, swapchain, pSleepModeInfo);
9297 }
9298
LatencySleepNV(VkDevice device,VkSwapchainKHR swapchain,const VkLatencySleepInfoNV * pSleepInfo)9299 VKAPI_ATTR VkResult VKAPI_CALL LatencySleepNV(
9300 VkDevice device,
9301 VkSwapchainKHR swapchain,
9302 const VkLatencySleepInfoNV* pSleepInfo) {
9303 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9304 if (NULL == disp) {
9305 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9306 "vkLatencySleepNV: Invalid device "
9307 "[VUID-vkLatencySleepNV-device-parameter]");
9308 abort(); /* Intentionally fail so user can correct issue. */
9309 }
9310 return disp->LatencySleepNV(device, swapchain, pSleepInfo);
9311 }
9312
SetLatencyMarkerNV(VkDevice device,VkSwapchainKHR swapchain,const VkSetLatencyMarkerInfoNV * pLatencyMarkerInfo)9313 VKAPI_ATTR void VKAPI_CALL SetLatencyMarkerNV(
9314 VkDevice device,
9315 VkSwapchainKHR swapchain,
9316 const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo) {
9317 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9318 if (NULL == disp) {
9319 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9320 "vkSetLatencyMarkerNV: Invalid device "
9321 "[VUID-vkSetLatencyMarkerNV-device-parameter]");
9322 abort(); /* Intentionally fail so user can correct issue. */
9323 }
9324 disp->SetLatencyMarkerNV(device, swapchain, pLatencyMarkerInfo);
9325 }
9326
GetLatencyTimingsNV(VkDevice device,VkSwapchainKHR swapchain,VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo)9327 VKAPI_ATTR void VKAPI_CALL GetLatencyTimingsNV(
9328 VkDevice device,
9329 VkSwapchainKHR swapchain,
9330 VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo) {
9331 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9332 if (NULL == disp) {
9333 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9334 "vkGetLatencyTimingsNV: Invalid device "
9335 "[VUID-vkGetLatencyTimingsNV-device-parameter]");
9336 abort(); /* Intentionally fail so user can correct issue. */
9337 }
9338 disp->GetLatencyTimingsNV(device, swapchain, pLatencyMarkerInfo);
9339 }
9340
QueueNotifyOutOfBandNV(VkQueue queue,const VkOutOfBandQueueTypeInfoNV * pQueueTypeInfo)9341 VKAPI_ATTR void VKAPI_CALL QueueNotifyOutOfBandNV(
9342 VkQueue queue,
9343 const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo) {
9344 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
9345 if (NULL == disp) {
9346 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9347 "vkQueueNotifyOutOfBandNV: Invalid queue "
9348 "[VUID-vkQueueNotifyOutOfBandNV-queue-parameter]");
9349 abort(); /* Intentionally fail so user can correct issue. */
9350 }
9351 disp->QueueNotifyOutOfBandNV(queue, pQueueTypeInfo);
9352 }
9353
9354
9355 // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension trampoline/terminators
9356
CmdSetAttachmentFeedbackLoopEnableEXT(VkCommandBuffer commandBuffer,VkImageAspectFlags aspectMask)9357 VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT(
9358 VkCommandBuffer commandBuffer,
9359 VkImageAspectFlags aspectMask) {
9360 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9361 if (NULL == disp) {
9362 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9363 "vkCmdSetAttachmentFeedbackLoopEnableEXT: Invalid commandBuffer "
9364 "[VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter]");
9365 abort(); /* Intentionally fail so user can correct issue. */
9366 }
9367 disp->CmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
9368 }
9369
9370
9371 // ---- VK_QNX_external_memory_screen_buffer extension trampoline/terminators
9372
9373 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
GetScreenBufferPropertiesQNX(VkDevice device,const struct _screen_buffer * buffer,VkScreenBufferPropertiesQNX * pProperties)9374 VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(
9375 VkDevice device,
9376 const struct _screen_buffer* buffer,
9377 VkScreenBufferPropertiesQNX* pProperties) {
9378 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9379 if (NULL == disp) {
9380 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9381 "vkGetScreenBufferPropertiesQNX: Invalid device "
9382 "[VUID-vkGetScreenBufferPropertiesQNX-device-parameter]");
9383 abort(); /* Intentionally fail so user can correct issue. */
9384 }
9385 return disp->GetScreenBufferPropertiesQNX(device, buffer, pProperties);
9386 }
9387
9388 #endif // VK_USE_PLATFORM_SCREEN_QNX
9389
9390 // ---- VK_KHR_acceleration_structure extension trampoline/terminators
9391
CreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure)9392 VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
9393 VkDevice device,
9394 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
9395 const VkAllocationCallbacks* pAllocator,
9396 VkAccelerationStructureKHR* pAccelerationStructure) {
9397 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9398 if (NULL == disp) {
9399 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9400 "vkCreateAccelerationStructureKHR: Invalid device "
9401 "[VUID-vkCreateAccelerationStructureKHR-device-parameter]");
9402 abort(); /* Intentionally fail so user can correct issue. */
9403 }
9404 return disp->CreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
9405 }
9406
DestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator)9407 VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureKHR(
9408 VkDevice device,
9409 VkAccelerationStructureKHR accelerationStructure,
9410 const VkAllocationCallbacks* pAllocator) {
9411 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9412 if (NULL == disp) {
9413 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9414 "vkDestroyAccelerationStructureKHR: Invalid device "
9415 "[VUID-vkDestroyAccelerationStructureKHR-device-parameter]");
9416 abort(); /* Intentionally fail so user can correct issue. */
9417 }
9418 disp->DestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
9419 }
9420
CmdBuildAccelerationStructuresKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos)9421 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresKHR(
9422 VkCommandBuffer commandBuffer,
9423 uint32_t infoCount,
9424 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
9425 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
9426 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9427 if (NULL == disp) {
9428 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9429 "vkCmdBuildAccelerationStructuresKHR: Invalid commandBuffer "
9430 "[VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter]");
9431 abort(); /* Intentionally fail so user can correct issue. */
9432 }
9433 disp->CmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos);
9434 }
9435
CmdBuildAccelerationStructuresIndirectKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkDeviceAddress * pIndirectDeviceAddresses,const uint32_t * pIndirectStrides,const uint32_t * const * ppMaxPrimitiveCounts)9436 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR(
9437 VkCommandBuffer commandBuffer,
9438 uint32_t infoCount,
9439 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
9440 const VkDeviceAddress* pIndirectDeviceAddresses,
9441 const uint32_t* pIndirectStrides,
9442 const uint32_t* const* ppMaxPrimitiveCounts) {
9443 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9444 if (NULL == disp) {
9445 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9446 "vkCmdBuildAccelerationStructuresIndirectKHR: Invalid commandBuffer "
9447 "[VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter]");
9448 abort(); /* Intentionally fail so user can correct issue. */
9449 }
9450 disp->CmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts);
9451 }
9452
BuildAccelerationStructuresKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos)9453 VKAPI_ATTR VkResult VKAPI_CALL BuildAccelerationStructuresKHR(
9454 VkDevice device,
9455 VkDeferredOperationKHR deferredOperation,
9456 uint32_t infoCount,
9457 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
9458 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
9459 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9460 if (NULL == disp) {
9461 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9462 "vkBuildAccelerationStructuresKHR: Invalid device "
9463 "[VUID-vkBuildAccelerationStructuresKHR-device-parameter]");
9464 abort(); /* Intentionally fail so user can correct issue. */
9465 }
9466 return disp->BuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos);
9467 }
9468
CopyAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureInfoKHR * pInfo)9469 VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureKHR(
9470 VkDevice device,
9471 VkDeferredOperationKHR deferredOperation,
9472 const VkCopyAccelerationStructureInfoKHR* pInfo) {
9473 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9474 if (NULL == disp) {
9475 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9476 "vkCopyAccelerationStructureKHR: Invalid device "
9477 "[VUID-vkCopyAccelerationStructureKHR-device-parameter]");
9478 abort(); /* Intentionally fail so user can correct issue. */
9479 }
9480 return disp->CopyAccelerationStructureKHR(device, deferredOperation, pInfo);
9481 }
9482
CopyAccelerationStructureToMemoryKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo)9483 VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR(
9484 VkDevice device,
9485 VkDeferredOperationKHR deferredOperation,
9486 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
9487 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9488 if (NULL == disp) {
9489 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9490 "vkCopyAccelerationStructureToMemoryKHR: Invalid device "
9491 "[VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter]");
9492 abort(); /* Intentionally fail so user can correct issue. */
9493 }
9494 return disp->CopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo);
9495 }
9496
CopyMemoryToAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo)9497 VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToAccelerationStructureKHR(
9498 VkDevice device,
9499 VkDeferredOperationKHR deferredOperation,
9500 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
9501 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9502 if (NULL == disp) {
9503 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9504 "vkCopyMemoryToAccelerationStructureKHR: Invalid device "
9505 "[VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter]");
9506 abort(); /* Intentionally fail so user can correct issue. */
9507 }
9508 return disp->CopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo);
9509 }
9510
WriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride)9511 VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR(
9512 VkDevice device,
9513 uint32_t accelerationStructureCount,
9514 const VkAccelerationStructureKHR* pAccelerationStructures,
9515 VkQueryType queryType,
9516 size_t dataSize,
9517 void* pData,
9518 size_t stride) {
9519 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9520 if (NULL == disp) {
9521 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9522 "vkWriteAccelerationStructuresPropertiesKHR: Invalid device "
9523 "[VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter]");
9524 abort(); /* Intentionally fail so user can correct issue. */
9525 }
9526 return disp->WriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
9527 }
9528
CmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo)9529 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureKHR(
9530 VkCommandBuffer commandBuffer,
9531 const VkCopyAccelerationStructureInfoKHR* pInfo) {
9532 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9533 if (NULL == disp) {
9534 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9535 "vkCmdCopyAccelerationStructureKHR: Invalid commandBuffer "
9536 "[VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter]");
9537 abort(); /* Intentionally fail so user can correct issue. */
9538 }
9539 disp->CmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
9540 }
9541
CmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo)9542 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureToMemoryKHR(
9543 VkCommandBuffer commandBuffer,
9544 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
9545 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9546 if (NULL == disp) {
9547 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9548 "vkCmdCopyAccelerationStructureToMemoryKHR: Invalid commandBuffer "
9549 "[VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter]");
9550 abort(); /* Intentionally fail so user can correct issue. */
9551 }
9552 disp->CmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
9553 }
9554
CmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo)9555 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToAccelerationStructureKHR(
9556 VkCommandBuffer commandBuffer,
9557 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
9558 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9559 if (NULL == disp) {
9560 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9561 "vkCmdCopyMemoryToAccelerationStructureKHR: Invalid commandBuffer "
9562 "[VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter]");
9563 abort(); /* Intentionally fail so user can correct issue. */
9564 }
9565 disp->CmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
9566 }
9567
GetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo)9568 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetAccelerationStructureDeviceAddressKHR(
9569 VkDevice device,
9570 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) {
9571 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9572 if (NULL == disp) {
9573 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9574 "vkGetAccelerationStructureDeviceAddressKHR: Invalid device "
9575 "[VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter]");
9576 abort(); /* Intentionally fail so user can correct issue. */
9577 }
9578 return disp->GetAccelerationStructureDeviceAddressKHR(device, pInfo);
9579 }
9580
CmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)9581 VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR(
9582 VkCommandBuffer commandBuffer,
9583 uint32_t accelerationStructureCount,
9584 const VkAccelerationStructureKHR* pAccelerationStructures,
9585 VkQueryType queryType,
9586 VkQueryPool queryPool,
9587 uint32_t firstQuery) {
9588 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9589 if (NULL == disp) {
9590 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9591 "vkCmdWriteAccelerationStructuresPropertiesKHR: Invalid commandBuffer "
9592 "[VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter]");
9593 abort(); /* Intentionally fail so user can correct issue. */
9594 }
9595 disp->CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
9596 }
9597
GetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionInfoKHR * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility)9598 VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR(
9599 VkDevice device,
9600 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
9601 VkAccelerationStructureCompatibilityKHR* pCompatibility) {
9602 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9603 if (NULL == disp) {
9604 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9605 "vkGetDeviceAccelerationStructureCompatibilityKHR: Invalid device "
9606 "[VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter]");
9607 abort(); /* Intentionally fail so user can correct issue. */
9608 }
9609 disp->GetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility);
9610 }
9611
GetAccelerationStructureBuildSizesKHR(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,const uint32_t * pMaxPrimitiveCounts,VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo)9612 VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR(
9613 VkDevice device,
9614 VkAccelerationStructureBuildTypeKHR buildType,
9615 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
9616 const uint32_t* pMaxPrimitiveCounts,
9617 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {
9618 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9619 if (NULL == disp) {
9620 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9621 "vkGetAccelerationStructureBuildSizesKHR: Invalid device "
9622 "[VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter]");
9623 abort(); /* Intentionally fail so user can correct issue. */
9624 }
9625 disp->GetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo);
9626 }
9627
9628
9629 // ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
9630
CmdTraceRaysKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth)9631 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR(
9632 VkCommandBuffer commandBuffer,
9633 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
9634 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
9635 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
9636 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
9637 uint32_t width,
9638 uint32_t height,
9639 uint32_t depth) {
9640 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9641 if (NULL == disp) {
9642 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9643 "vkCmdTraceRaysKHR: Invalid commandBuffer "
9644 "[VUID-vkCmdTraceRaysKHR-commandBuffer-parameter]");
9645 abort(); /* Intentionally fail so user can correct issue. */
9646 }
9647 disp->CmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
9648 }
9649
CreateRayTracingPipelinesKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)9650 VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesKHR(
9651 VkDevice device,
9652 VkDeferredOperationKHR deferredOperation,
9653 VkPipelineCache pipelineCache,
9654 uint32_t createInfoCount,
9655 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
9656 const VkAllocationCallbacks* pAllocator,
9657 VkPipeline* pPipelines) {
9658 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9659 if (NULL == disp) {
9660 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9661 "vkCreateRayTracingPipelinesKHR: Invalid device "
9662 "[VUID-vkCreateRayTracingPipelinesKHR-device-parameter]");
9663 abort(); /* Intentionally fail so user can correct issue. */
9664 }
9665 return disp->CreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
9666 }
9667
GetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)9668 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR(
9669 VkDevice device,
9670 VkPipeline pipeline,
9671 uint32_t firstGroup,
9672 uint32_t groupCount,
9673 size_t dataSize,
9674 void* pData) {
9675 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9676 if (NULL == disp) {
9677 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9678 "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR: Invalid device "
9679 "[VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter]");
9680 abort(); /* Intentionally fail so user can correct issue. */
9681 }
9682 return disp->GetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
9683 }
9684
CmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,VkDeviceAddress indirectDeviceAddress)9685 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR(
9686 VkCommandBuffer commandBuffer,
9687 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
9688 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
9689 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
9690 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
9691 VkDeviceAddress indirectDeviceAddress) {
9692 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9693 if (NULL == disp) {
9694 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9695 "vkCmdTraceRaysIndirectKHR: Invalid commandBuffer "
9696 "[VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter]");
9697 abort(); /* Intentionally fail so user can correct issue. */
9698 }
9699 disp->CmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress);
9700 }
9701
GetRayTracingShaderGroupStackSizeKHR(VkDevice device,VkPipeline pipeline,uint32_t group,VkShaderGroupShaderKHR groupShader)9702 VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR(
9703 VkDevice device,
9704 VkPipeline pipeline,
9705 uint32_t group,
9706 VkShaderGroupShaderKHR groupShader) {
9707 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9708 if (NULL == disp) {
9709 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9710 "vkGetRayTracingShaderGroupStackSizeKHR: Invalid device "
9711 "[VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter]");
9712 abort(); /* Intentionally fail so user can correct issue. */
9713 }
9714 return disp->GetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader);
9715 }
9716
CmdSetRayTracingPipelineStackSizeKHR(VkCommandBuffer commandBuffer,uint32_t pipelineStackSize)9717 VKAPI_ATTR void VKAPI_CALL CmdSetRayTracingPipelineStackSizeKHR(
9718 VkCommandBuffer commandBuffer,
9719 uint32_t pipelineStackSize) {
9720 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9721 if (NULL == disp) {
9722 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9723 "vkCmdSetRayTracingPipelineStackSizeKHR: Invalid commandBuffer "
9724 "[VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter]");
9725 abort(); /* Intentionally fail so user can correct issue. */
9726 }
9727 disp->CmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize);
9728 }
9729
9730
9731 // ---- VK_EXT_mesh_shader extension trampoline/terminators
9732
CmdDrawMeshTasksEXT(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)9733 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT(
9734 VkCommandBuffer commandBuffer,
9735 uint32_t groupCountX,
9736 uint32_t groupCountY,
9737 uint32_t groupCountZ) {
9738 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9739 if (NULL == disp) {
9740 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9741 "vkCmdDrawMeshTasksEXT: Invalid commandBuffer "
9742 "[VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter]");
9743 abort(); /* Intentionally fail so user can correct issue. */
9744 }
9745 disp->CmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ);
9746 }
9747
CmdDrawMeshTasksIndirectEXT(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)9748 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT(
9749 VkCommandBuffer commandBuffer,
9750 VkBuffer buffer,
9751 VkDeviceSize offset,
9752 uint32_t drawCount,
9753 uint32_t stride) {
9754 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9755 if (NULL == disp) {
9756 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9757 "vkCmdDrawMeshTasksIndirectEXT: Invalid commandBuffer "
9758 "[VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter]");
9759 abort(); /* Intentionally fail so user can correct issue. */
9760 }
9761 disp->CmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride);
9762 }
9763
CmdDrawMeshTasksIndirectCountEXT(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)9764 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT(
9765 VkCommandBuffer commandBuffer,
9766 VkBuffer buffer,
9767 VkDeviceSize offset,
9768 VkBuffer countBuffer,
9769 VkDeviceSize countBufferOffset,
9770 uint32_t maxDrawCount,
9771 uint32_t stride) {
9772 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9773 if (NULL == disp) {
9774 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9775 "vkCmdDrawMeshTasksIndirectCountEXT: Invalid commandBuffer "
9776 "[VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter]");
9777 abort(); /* Intentionally fail so user can correct issue. */
9778 }
9779 disp->CmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
9780 }
9781
9782 // ---- VK_OHOS_native_buffer extension trampoline/terminators
9783
9784 #ifdef VK_USE_PLATFORM_OHOS
GetSwapchainGrallocUsageOHOS(VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,uint64_t * grallocUsage)9785 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainGrallocUsageOHOS(
9786 VkDevice device,
9787 VkFormat format,
9788 VkImageUsageFlags imageUsage,
9789 uint64_t* grallocUsage) {
9790 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9791 if (NULL == disp) {
9792 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9793 "vkGetSwapchainGrallocUsageOHOS: Invalid device "
9794 "[VUID-vkGetSwapchainGrallocUsageOHOS-device-parameter]");
9795 abort(); /* Intentionally fail so user can correct issue. */
9796 }
9797 return disp->GetSwapchainGrallocUsageOHOS(device, format, imageUsage, grallocUsage);
9798 }
9799
9800 #endif // VK_USE_PLATFORM_OHOS
9801 #ifdef VK_USE_PLATFORM_OHOS
AcquireImageOHOS(VkDevice device,VkImage image,int32_t nativeFenceFd,VkSemaphore semaphore,VkFence fence)9802 VKAPI_ATTR VkResult VKAPI_CALL AcquireImageOHOS(
9803 VkDevice device,
9804 VkImage image,
9805 int32_t nativeFenceFd,
9806 VkSemaphore semaphore,
9807 VkFence fence) {
9808 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9809 if (NULL == disp) {
9810 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9811 "vkAcquireImageOHOS: Invalid device "
9812 "[VUID-vkAcquireImageOHOS-device-parameter]");
9813 abort(); /* Intentionally fail so user can correct issue. */
9814 }
9815 return disp->AcquireImageOHOS(device, image, nativeFenceFd, semaphore, fence);
9816 }
9817
9818 #endif // VK_USE_PLATFORM_OHOS
9819 #ifdef VK_USE_PLATFORM_OHOS
QueueSignalReleaseImageOHOS(VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image,int32_t * pNativeFenceFd)9820 VKAPI_ATTR VkResult VKAPI_CALL QueueSignalReleaseImageOHOS(
9821 VkQueue queue,
9822 uint32_t waitSemaphoreCount,
9823 const VkSemaphore* pWaitSemaphores,
9824 VkImage image,
9825 int32_t* pNativeFenceFd) {
9826 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
9827 if (NULL == disp) {
9828 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9829 "vkQueueSignalReleaseImageOHOS: Invalid queue "
9830 "[VUID-vkQueueSignalReleaseImageOHOS-queue-parameter]");
9831 abort(); /* Intentionally fail so user can correct issue. */
9832 }
9833 return disp->QueueSignalReleaseImageOHOS(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
9834 }
9835
9836 #endif // VK_USE_PLATFORM_OHOS
9837
9838 // ---- VK_OHOS_external_memory extension trampoline/terminators
9839
9840 #ifdef VK_USE_PLATFORM_OHOS
vkGetNativeBufferPropertiesOHOS(VkDevice device,const struct OH_NativeBuffer * buffer,VkNativeBufferPropertiesOHOS * pProperties)9841 VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeBufferPropertiesOHOS(
9842 VkDevice device,
9843 const struct OH_NativeBuffer* buffer,
9844 VkNativeBufferPropertiesOHOS* pProperties) {
9845 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9846 if (NULL == disp) {
9847 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9848 "vkGetNativeBufferPropertiesOHOS: Invalid device "
9849 "[VUID-vkGetNativeBufferPropertiesOHOS-device-parameter]");
9850 abort(); /* Intentionally fail so user can correct issue. */
9851 }
9852 return disp->GetNativeBufferPropertiesOHOS(device, buffer, pProperties);
9853 }
9854
9855 #endif // VK_USE_PLATFORM_OHOS
9856 #ifdef VK_USE_PLATFORM_OHOS
vkGetMemoryNativeBufferOHOS(VkDevice device,const VkMemoryGetNativeBufferInfoOHOS * pInfo,struct OH_NativeBuffer ** pBuffer)9857 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryNativeBufferOHOS(
9858 VkDevice device,
9859 const VkMemoryGetNativeBufferInfoOHOS* pInfo,
9860 struct OH_NativeBuffer** pBuffer) {
9861 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9862 if (NULL == disp) {
9863 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9864 "vkGetMemoryNativeBufferOHOS: Invalid device "
9865 "[VUID-vkGetMemoryNativeBufferOHOS-device-parameter]");
9866 abort(); /* Intentionally fail so user can correct issue. */
9867 }
9868 return disp->GetMemoryNativeBufferOHOS(device, pInfo, pBuffer);
9869 }
9870
9871 #endif // VK_USE_PLATFORM_OHOS
9872
9873 // GPA helpers for extensions
extension_instance_gpa(struct loader_instance * ptr_instance,const char * name,void ** addr)9874 bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr) {
9875 *addr = NULL;
9876
9877
9878 // ---- VK_KHR_video_queue extension commands
9879 if (!strcmp("vkGetPhysicalDeviceVideoCapabilitiesKHR", name)) {
9880 *addr = (void *)GetPhysicalDeviceVideoCapabilitiesKHR;
9881 return true;
9882 }
9883 if (!strcmp("vkGetPhysicalDeviceVideoFormatPropertiesKHR", name)) {
9884 *addr = (void *)GetPhysicalDeviceVideoFormatPropertiesKHR;
9885 return true;
9886 }
9887 if (!strcmp("vkCreateVideoSessionKHR", name)) {
9888 *addr = (void *)CreateVideoSessionKHR;
9889 return true;
9890 }
9891 if (!strcmp("vkDestroyVideoSessionKHR", name)) {
9892 *addr = (void *)DestroyVideoSessionKHR;
9893 return true;
9894 }
9895 if (!strcmp("vkGetVideoSessionMemoryRequirementsKHR", name)) {
9896 *addr = (void *)GetVideoSessionMemoryRequirementsKHR;
9897 return true;
9898 }
9899 if (!strcmp("vkBindVideoSessionMemoryKHR", name)) {
9900 *addr = (void *)BindVideoSessionMemoryKHR;
9901 return true;
9902 }
9903 if (!strcmp("vkCreateVideoSessionParametersKHR", name)) {
9904 *addr = (void *)CreateVideoSessionParametersKHR;
9905 return true;
9906 }
9907 if (!strcmp("vkUpdateVideoSessionParametersKHR", name)) {
9908 *addr = (void *)UpdateVideoSessionParametersKHR;
9909 return true;
9910 }
9911 if (!strcmp("vkDestroyVideoSessionParametersKHR", name)) {
9912 *addr = (void *)DestroyVideoSessionParametersKHR;
9913 return true;
9914 }
9915 if (!strcmp("vkCmdBeginVideoCodingKHR", name)) {
9916 *addr = (void *)CmdBeginVideoCodingKHR;
9917 return true;
9918 }
9919 if (!strcmp("vkCmdEndVideoCodingKHR", name)) {
9920 *addr = (void *)CmdEndVideoCodingKHR;
9921 return true;
9922 }
9923 if (!strcmp("vkCmdControlVideoCodingKHR", name)) {
9924 *addr = (void *)CmdControlVideoCodingKHR;
9925 return true;
9926 }
9927
9928 // ---- VK_KHR_video_decode_queue extension commands
9929 if (!strcmp("vkCmdDecodeVideoKHR", name)) {
9930 *addr = (void *)CmdDecodeVideoKHR;
9931 return true;
9932 }
9933
9934 // ---- VK_KHR_dynamic_rendering extension commands
9935 if (!strcmp("vkCmdBeginRenderingKHR", name)) {
9936 *addr = (void *)CmdBeginRenderingKHR;
9937 return true;
9938 }
9939 if (!strcmp("vkCmdEndRenderingKHR", name)) {
9940 *addr = (void *)CmdEndRenderingKHR;
9941 return true;
9942 }
9943
9944 // ---- VK_KHR_get_physical_device_properties2 extension commands
9945 if (!strcmp("vkGetPhysicalDeviceFeatures2KHR", name)) {
9946 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
9947 ? (void *)vkGetPhysicalDeviceFeatures2
9948 : NULL;
9949 return true;
9950 }
9951 if (!strcmp("vkGetPhysicalDeviceProperties2KHR", name)) {
9952 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
9953 ? (void *)vkGetPhysicalDeviceProperties2
9954 : NULL;
9955 return true;
9956 }
9957 if (!strcmp("vkGetPhysicalDeviceFormatProperties2KHR", name)) {
9958 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
9959 ? (void *)vkGetPhysicalDeviceFormatProperties2
9960 : NULL;
9961 return true;
9962 }
9963 if (!strcmp("vkGetPhysicalDeviceImageFormatProperties2KHR", name)) {
9964 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
9965 ? (void *)vkGetPhysicalDeviceImageFormatProperties2
9966 : NULL;
9967 return true;
9968 }
9969 if (!strcmp("vkGetPhysicalDeviceQueueFamilyProperties2KHR", name)) {
9970 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
9971 ? (void *)vkGetPhysicalDeviceQueueFamilyProperties2
9972 : NULL;
9973 return true;
9974 }
9975 if (!strcmp("vkGetPhysicalDeviceMemoryProperties2KHR", name)) {
9976 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
9977 ? (void *)vkGetPhysicalDeviceMemoryProperties2
9978 : NULL;
9979 return true;
9980 }
9981 if (!strcmp("vkGetPhysicalDeviceSparseImageFormatProperties2KHR", name)) {
9982 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
9983 ? (void *)vkGetPhysicalDeviceSparseImageFormatProperties2
9984 : NULL;
9985 return true;
9986 }
9987
9988 // ---- VK_KHR_device_group extension commands
9989 if (!strcmp("vkGetDeviceGroupPeerMemoryFeaturesKHR", name)) {
9990 *addr = (void *)GetDeviceGroupPeerMemoryFeaturesKHR;
9991 return true;
9992 }
9993 if (!strcmp("vkCmdSetDeviceMaskKHR", name)) {
9994 *addr = (void *)CmdSetDeviceMaskKHR;
9995 return true;
9996 }
9997 if (!strcmp("vkCmdDispatchBaseKHR", name)) {
9998 *addr = (void *)CmdDispatchBaseKHR;
9999 return true;
10000 }
10001
10002 // ---- VK_KHR_maintenance1 extension commands
10003 if (!strcmp("vkTrimCommandPoolKHR", name)) {
10004 *addr = (void *)TrimCommandPoolKHR;
10005 return true;
10006 }
10007
10008 // ---- VK_KHR_device_group_creation extension commands
10009 if (!strcmp("vkEnumeratePhysicalDeviceGroupsKHR", name)) {
10010 *addr = (ptr_instance->enabled_known_extensions.khr_device_group_creation == 1)
10011 ? (void *)vkEnumeratePhysicalDeviceGroups
10012 : NULL;
10013 return true;
10014 }
10015
10016 // ---- VK_KHR_external_memory_capabilities extension commands
10017 if (!strcmp("vkGetPhysicalDeviceExternalBufferPropertiesKHR", name)) {
10018 *addr = (ptr_instance->enabled_known_extensions.khr_external_memory_capabilities == 1)
10019 ? (void *)vkGetPhysicalDeviceExternalBufferProperties
10020 : NULL;
10021 return true;
10022 }
10023
10024 // ---- VK_KHR_external_memory_win32 extension commands
10025 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10026 if (!strcmp("vkGetMemoryWin32HandleKHR", name)) {
10027 *addr = (void *)GetMemoryWin32HandleKHR;
10028 return true;
10029 }
10030 #endif // VK_USE_PLATFORM_WIN32_KHR
10031 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10032 if (!strcmp("vkGetMemoryWin32HandlePropertiesKHR", name)) {
10033 *addr = (void *)GetMemoryWin32HandlePropertiesKHR;
10034 return true;
10035 }
10036 #endif // VK_USE_PLATFORM_WIN32_KHR
10037
10038 // ---- VK_KHR_external_memory_fd extension commands
10039 if (!strcmp("vkGetMemoryFdKHR", name)) {
10040 *addr = (void *)GetMemoryFdKHR;
10041 return true;
10042 }
10043 if (!strcmp("vkGetMemoryFdPropertiesKHR", name)) {
10044 *addr = (void *)GetMemoryFdPropertiesKHR;
10045 return true;
10046 }
10047
10048 // ---- VK_KHR_external_semaphore_capabilities extension commands
10049 if (!strcmp("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR", name)) {
10050 *addr = (ptr_instance->enabled_known_extensions.khr_external_semaphore_capabilities == 1)
10051 ? (void *)vkGetPhysicalDeviceExternalSemaphoreProperties
10052 : NULL;
10053 return true;
10054 }
10055
10056 // ---- VK_KHR_external_semaphore_win32 extension commands
10057 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10058 if (!strcmp("vkImportSemaphoreWin32HandleKHR", name)) {
10059 *addr = (void *)ImportSemaphoreWin32HandleKHR;
10060 return true;
10061 }
10062 #endif // VK_USE_PLATFORM_WIN32_KHR
10063 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10064 if (!strcmp("vkGetSemaphoreWin32HandleKHR", name)) {
10065 *addr = (void *)GetSemaphoreWin32HandleKHR;
10066 return true;
10067 }
10068 #endif // VK_USE_PLATFORM_WIN32_KHR
10069
10070 // ---- VK_KHR_external_semaphore_fd extension commands
10071 if (!strcmp("vkImportSemaphoreFdKHR", name)) {
10072 *addr = (void *)ImportSemaphoreFdKHR;
10073 return true;
10074 }
10075 if (!strcmp("vkGetSemaphoreFdKHR", name)) {
10076 *addr = (void *)GetSemaphoreFdKHR;
10077 return true;
10078 }
10079
10080 // ---- VK_KHR_push_descriptor extension commands
10081 if (!strcmp("vkCmdPushDescriptorSetKHR", name)) {
10082 *addr = (void *)CmdPushDescriptorSetKHR;
10083 return true;
10084 }
10085 if (!strcmp("vkCmdPushDescriptorSetWithTemplateKHR", name)) {
10086 *addr = (void *)CmdPushDescriptorSetWithTemplateKHR;
10087 return true;
10088 }
10089
10090 // ---- VK_KHR_descriptor_update_template extension commands
10091 if (!strcmp("vkCreateDescriptorUpdateTemplateKHR", name)) {
10092 *addr = (void *)CreateDescriptorUpdateTemplateKHR;
10093 return true;
10094 }
10095 if (!strcmp("vkDestroyDescriptorUpdateTemplateKHR", name)) {
10096 *addr = (void *)DestroyDescriptorUpdateTemplateKHR;
10097 return true;
10098 }
10099 if (!strcmp("vkUpdateDescriptorSetWithTemplateKHR", name)) {
10100 *addr = (void *)UpdateDescriptorSetWithTemplateKHR;
10101 return true;
10102 }
10103
10104 // ---- VK_KHR_create_renderpass2 extension commands
10105 if (!strcmp("vkCreateRenderPass2KHR", name)) {
10106 *addr = (void *)CreateRenderPass2KHR;
10107 return true;
10108 }
10109 if (!strcmp("vkCmdBeginRenderPass2KHR", name)) {
10110 *addr = (void *)CmdBeginRenderPass2KHR;
10111 return true;
10112 }
10113 if (!strcmp("vkCmdNextSubpass2KHR", name)) {
10114 *addr = (void *)CmdNextSubpass2KHR;
10115 return true;
10116 }
10117 if (!strcmp("vkCmdEndRenderPass2KHR", name)) {
10118 *addr = (void *)CmdEndRenderPass2KHR;
10119 return true;
10120 }
10121
10122 // ---- VK_KHR_shared_presentable_image extension commands
10123 if (!strcmp("vkGetSwapchainStatusKHR", name)) {
10124 *addr = (void *)GetSwapchainStatusKHR;
10125 return true;
10126 }
10127
10128 // ---- VK_KHR_external_fence_capabilities extension commands
10129 if (!strcmp("vkGetPhysicalDeviceExternalFencePropertiesKHR", name)) {
10130 *addr = (ptr_instance->enabled_known_extensions.khr_external_fence_capabilities == 1)
10131 ? (void *)vkGetPhysicalDeviceExternalFenceProperties
10132 : NULL;
10133 return true;
10134 }
10135
10136 // ---- VK_KHR_external_fence_win32 extension commands
10137 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10138 if (!strcmp("vkImportFenceWin32HandleKHR", name)) {
10139 *addr = (void *)ImportFenceWin32HandleKHR;
10140 return true;
10141 }
10142 #endif // VK_USE_PLATFORM_WIN32_KHR
10143 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10144 if (!strcmp("vkGetFenceWin32HandleKHR", name)) {
10145 *addr = (void *)GetFenceWin32HandleKHR;
10146 return true;
10147 }
10148 #endif // VK_USE_PLATFORM_WIN32_KHR
10149
10150 // ---- VK_KHR_external_fence_fd extension commands
10151 if (!strcmp("vkImportFenceFdKHR", name)) {
10152 *addr = (void *)ImportFenceFdKHR;
10153 return true;
10154 }
10155 if (!strcmp("vkGetFenceFdKHR", name)) {
10156 *addr = (void *)GetFenceFdKHR;
10157 return true;
10158 }
10159
10160 // ---- VK_KHR_performance_query extension commands
10161 if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR", name)) {
10162 *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
10163 return true;
10164 }
10165 if (!strcmp("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", name)) {
10166 *addr = (void *)GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
10167 return true;
10168 }
10169 if (!strcmp("vkAcquireProfilingLockKHR", name)) {
10170 *addr = (void *)AcquireProfilingLockKHR;
10171 return true;
10172 }
10173 if (!strcmp("vkReleaseProfilingLockKHR", name)) {
10174 *addr = (void *)ReleaseProfilingLockKHR;
10175 return true;
10176 }
10177
10178 // ---- VK_KHR_get_memory_requirements2 extension commands
10179 if (!strcmp("vkGetImageMemoryRequirements2KHR", name)) {
10180 *addr = (void *)GetImageMemoryRequirements2KHR;
10181 return true;
10182 }
10183 if (!strcmp("vkGetBufferMemoryRequirements2KHR", name)) {
10184 *addr = (void *)GetBufferMemoryRequirements2KHR;
10185 return true;
10186 }
10187 if (!strcmp("vkGetImageSparseMemoryRequirements2KHR", name)) {
10188 *addr = (void *)GetImageSparseMemoryRequirements2KHR;
10189 return true;
10190 }
10191
10192 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
10193 if (!strcmp("vkCreateSamplerYcbcrConversionKHR", name)) {
10194 *addr = (void *)CreateSamplerYcbcrConversionKHR;
10195 return true;
10196 }
10197 if (!strcmp("vkDestroySamplerYcbcrConversionKHR", name)) {
10198 *addr = (void *)DestroySamplerYcbcrConversionKHR;
10199 return true;
10200 }
10201
10202 // ---- VK_KHR_bind_memory2 extension commands
10203 if (!strcmp("vkBindBufferMemory2KHR", name)) {
10204 *addr = (void *)BindBufferMemory2KHR;
10205 return true;
10206 }
10207 if (!strcmp("vkBindImageMemory2KHR", name)) {
10208 *addr = (void *)BindImageMemory2KHR;
10209 return true;
10210 }
10211
10212 // ---- VK_KHR_maintenance3 extension commands
10213 if (!strcmp("vkGetDescriptorSetLayoutSupportKHR", name)) {
10214 *addr = (void *)GetDescriptorSetLayoutSupportKHR;
10215 return true;
10216 }
10217
10218 // ---- VK_KHR_draw_indirect_count extension commands
10219 if (!strcmp("vkCmdDrawIndirectCountKHR", name)) {
10220 *addr = (void *)CmdDrawIndirectCountKHR;
10221 return true;
10222 }
10223 if (!strcmp("vkCmdDrawIndexedIndirectCountKHR", name)) {
10224 *addr = (void *)CmdDrawIndexedIndirectCountKHR;
10225 return true;
10226 }
10227
10228 // ---- VK_KHR_timeline_semaphore extension commands
10229 if (!strcmp("vkGetSemaphoreCounterValueKHR", name)) {
10230 *addr = (void *)GetSemaphoreCounterValueKHR;
10231 return true;
10232 }
10233 if (!strcmp("vkWaitSemaphoresKHR", name)) {
10234 *addr = (void *)WaitSemaphoresKHR;
10235 return true;
10236 }
10237 if (!strcmp("vkSignalSemaphoreKHR", name)) {
10238 *addr = (void *)SignalSemaphoreKHR;
10239 return true;
10240 }
10241
10242 // ---- VK_KHR_fragment_shading_rate extension commands
10243 if (!strcmp("vkGetPhysicalDeviceFragmentShadingRatesKHR", name)) {
10244 *addr = (void *)GetPhysicalDeviceFragmentShadingRatesKHR;
10245 return true;
10246 }
10247 if (!strcmp("vkCmdSetFragmentShadingRateKHR", name)) {
10248 *addr = (void *)CmdSetFragmentShadingRateKHR;
10249 return true;
10250 }
10251
10252 // ---- VK_KHR_present_wait extension commands
10253 if (!strcmp("vkWaitForPresentKHR", name)) {
10254 *addr = (void *)WaitForPresentKHR;
10255 return true;
10256 }
10257
10258 // ---- VK_KHR_buffer_device_address extension commands
10259 if (!strcmp("vkGetBufferDeviceAddressKHR", name)) {
10260 *addr = (void *)GetBufferDeviceAddressKHR;
10261 return true;
10262 }
10263 if (!strcmp("vkGetBufferOpaqueCaptureAddressKHR", name)) {
10264 *addr = (void *)GetBufferOpaqueCaptureAddressKHR;
10265 return true;
10266 }
10267 if (!strcmp("vkGetDeviceMemoryOpaqueCaptureAddressKHR", name)) {
10268 *addr = (void *)GetDeviceMemoryOpaqueCaptureAddressKHR;
10269 return true;
10270 }
10271
10272 // ---- VK_KHR_deferred_host_operations extension commands
10273 if (!strcmp("vkCreateDeferredOperationKHR", name)) {
10274 *addr = (void *)CreateDeferredOperationKHR;
10275 return true;
10276 }
10277 if (!strcmp("vkDestroyDeferredOperationKHR", name)) {
10278 *addr = (void *)DestroyDeferredOperationKHR;
10279 return true;
10280 }
10281 if (!strcmp("vkGetDeferredOperationMaxConcurrencyKHR", name)) {
10282 *addr = (void *)GetDeferredOperationMaxConcurrencyKHR;
10283 return true;
10284 }
10285 if (!strcmp("vkGetDeferredOperationResultKHR", name)) {
10286 *addr = (void *)GetDeferredOperationResultKHR;
10287 return true;
10288 }
10289 if (!strcmp("vkDeferredOperationJoinKHR", name)) {
10290 *addr = (void *)DeferredOperationJoinKHR;
10291 return true;
10292 }
10293
10294 // ---- VK_KHR_pipeline_executable_properties extension commands
10295 if (!strcmp("vkGetPipelineExecutablePropertiesKHR", name)) {
10296 *addr = (void *)GetPipelineExecutablePropertiesKHR;
10297 return true;
10298 }
10299 if (!strcmp("vkGetPipelineExecutableStatisticsKHR", name)) {
10300 *addr = (void *)GetPipelineExecutableStatisticsKHR;
10301 return true;
10302 }
10303 if (!strcmp("vkGetPipelineExecutableInternalRepresentationsKHR", name)) {
10304 *addr = (void *)GetPipelineExecutableInternalRepresentationsKHR;
10305 return true;
10306 }
10307
10308 // ---- VK_KHR_map_memory2 extension commands
10309 if (!strcmp("vkMapMemory2KHR", name)) {
10310 *addr = (void *)MapMemory2KHR;
10311 return true;
10312 }
10313 if (!strcmp("vkUnmapMemory2KHR", name)) {
10314 *addr = (void *)UnmapMemory2KHR;
10315 return true;
10316 }
10317
10318 // ---- VK_KHR_video_encode_queue extension commands
10319 if (!strcmp("vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR", name)) {
10320 *addr = (void *)GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
10321 return true;
10322 }
10323 if (!strcmp("vkGetEncodedVideoSessionParametersKHR", name)) {
10324 *addr = (void *)GetEncodedVideoSessionParametersKHR;
10325 return true;
10326 }
10327 if (!strcmp("vkCmdEncodeVideoKHR", name)) {
10328 *addr = (void *)CmdEncodeVideoKHR;
10329 return true;
10330 }
10331
10332 // ---- VK_KHR_synchronization2 extension commands
10333 if (!strcmp("vkCmdSetEvent2KHR", name)) {
10334 *addr = (void *)CmdSetEvent2KHR;
10335 return true;
10336 }
10337 if (!strcmp("vkCmdResetEvent2KHR", name)) {
10338 *addr = (void *)CmdResetEvent2KHR;
10339 return true;
10340 }
10341 if (!strcmp("vkCmdWaitEvents2KHR", name)) {
10342 *addr = (void *)CmdWaitEvents2KHR;
10343 return true;
10344 }
10345 if (!strcmp("vkCmdPipelineBarrier2KHR", name)) {
10346 *addr = (void *)CmdPipelineBarrier2KHR;
10347 return true;
10348 }
10349 if (!strcmp("vkCmdWriteTimestamp2KHR", name)) {
10350 *addr = (void *)CmdWriteTimestamp2KHR;
10351 return true;
10352 }
10353 if (!strcmp("vkQueueSubmit2KHR", name)) {
10354 *addr = (void *)QueueSubmit2KHR;
10355 return true;
10356 }
10357 if (!strcmp("vkCmdWriteBufferMarker2AMD", name)) {
10358 *addr = (void *)CmdWriteBufferMarker2AMD;
10359 return true;
10360 }
10361 if (!strcmp("vkGetQueueCheckpointData2NV", name)) {
10362 *addr = (void *)GetQueueCheckpointData2NV;
10363 return true;
10364 }
10365
10366 // ---- VK_KHR_copy_commands2 extension commands
10367 if (!strcmp("vkCmdCopyBuffer2KHR", name)) {
10368 *addr = (void *)CmdCopyBuffer2KHR;
10369 return true;
10370 }
10371 if (!strcmp("vkCmdCopyImage2KHR", name)) {
10372 *addr = (void *)CmdCopyImage2KHR;
10373 return true;
10374 }
10375 if (!strcmp("vkCmdCopyBufferToImage2KHR", name)) {
10376 *addr = (void *)CmdCopyBufferToImage2KHR;
10377 return true;
10378 }
10379 if (!strcmp("vkCmdCopyImageToBuffer2KHR", name)) {
10380 *addr = (void *)CmdCopyImageToBuffer2KHR;
10381 return true;
10382 }
10383 if (!strcmp("vkCmdBlitImage2KHR", name)) {
10384 *addr = (void *)CmdBlitImage2KHR;
10385 return true;
10386 }
10387 if (!strcmp("vkCmdResolveImage2KHR", name)) {
10388 *addr = (void *)CmdResolveImage2KHR;
10389 return true;
10390 }
10391
10392 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
10393 if (!strcmp("vkCmdTraceRaysIndirect2KHR", name)) {
10394 *addr = (void *)CmdTraceRaysIndirect2KHR;
10395 return true;
10396 }
10397
10398 // ---- VK_KHR_maintenance4 extension commands
10399 if (!strcmp("vkGetDeviceBufferMemoryRequirementsKHR", name)) {
10400 *addr = (void *)GetDeviceBufferMemoryRequirementsKHR;
10401 return true;
10402 }
10403 if (!strcmp("vkGetDeviceImageMemoryRequirementsKHR", name)) {
10404 *addr = (void *)GetDeviceImageMemoryRequirementsKHR;
10405 return true;
10406 }
10407 if (!strcmp("vkGetDeviceImageSparseMemoryRequirementsKHR", name)) {
10408 *addr = (void *)GetDeviceImageSparseMemoryRequirementsKHR;
10409 return true;
10410 }
10411
10412 // ---- VK_KHR_maintenance5 extension commands
10413 if (!strcmp("vkCmdBindIndexBuffer2KHR", name)) {
10414 *addr = (void *)CmdBindIndexBuffer2KHR;
10415 return true;
10416 }
10417 if (!strcmp("vkGetRenderingAreaGranularityKHR", name)) {
10418 *addr = (void *)GetRenderingAreaGranularityKHR;
10419 return true;
10420 }
10421 if (!strcmp("vkGetDeviceImageSubresourceLayoutKHR", name)) {
10422 *addr = (void *)GetDeviceImageSubresourceLayoutKHR;
10423 return true;
10424 }
10425 if (!strcmp("vkGetImageSubresourceLayout2KHR", name)) {
10426 *addr = (void *)GetImageSubresourceLayout2KHR;
10427 return true;
10428 }
10429
10430 // ---- VK_KHR_cooperative_matrix extension commands
10431 if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", name)) {
10432 *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
10433 return true;
10434 }
10435
10436 // ---- VK_KHR_calibrated_timestamps extension commands
10437 if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", name)) {
10438 *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsKHR;
10439 return true;
10440 }
10441 if (!strcmp("vkGetCalibratedTimestampsKHR", name)) {
10442 *addr = (void *)GetCalibratedTimestampsKHR;
10443 return true;
10444 }
10445
10446 // ---- VK_KHR_maintenance6 extension commands
10447 if (!strcmp("vkCmdBindDescriptorSets2KHR", name)) {
10448 *addr = (void *)CmdBindDescriptorSets2KHR;
10449 return true;
10450 }
10451 if (!strcmp("vkCmdPushConstants2KHR", name)) {
10452 *addr = (void *)CmdPushConstants2KHR;
10453 return true;
10454 }
10455 if (!strcmp("vkCmdPushDescriptorSet2KHR", name)) {
10456 *addr = (void *)CmdPushDescriptorSet2KHR;
10457 return true;
10458 }
10459 if (!strcmp("vkCmdPushDescriptorSetWithTemplate2KHR", name)) {
10460 *addr = (void *)CmdPushDescriptorSetWithTemplate2KHR;
10461 return true;
10462 }
10463 if (!strcmp("vkCmdSetDescriptorBufferOffsets2EXT", name)) {
10464 *addr = (void *)CmdSetDescriptorBufferOffsets2EXT;
10465 return true;
10466 }
10467 if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplers2EXT", name)) {
10468 *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplers2EXT;
10469 return true;
10470 }
10471
10472 // ---- VK_EXT_debug_marker extension commands
10473 if (!strcmp("vkDebugMarkerSetObjectTagEXT", name)) {
10474 *addr = (void *)DebugMarkerSetObjectTagEXT;
10475 return true;
10476 }
10477 if (!strcmp("vkDebugMarkerSetObjectNameEXT", name)) {
10478 *addr = (void *)DebugMarkerSetObjectNameEXT;
10479 return true;
10480 }
10481 if (!strcmp("vkCmdDebugMarkerBeginEXT", name)) {
10482 *addr = (void *)CmdDebugMarkerBeginEXT;
10483 return true;
10484 }
10485 if (!strcmp("vkCmdDebugMarkerEndEXT", name)) {
10486 *addr = (void *)CmdDebugMarkerEndEXT;
10487 return true;
10488 }
10489 if (!strcmp("vkCmdDebugMarkerInsertEXT", name)) {
10490 *addr = (void *)CmdDebugMarkerInsertEXT;
10491 return true;
10492 }
10493
10494 // ---- VK_EXT_transform_feedback extension commands
10495 if (!strcmp("vkCmdBindTransformFeedbackBuffersEXT", name)) {
10496 *addr = (void *)CmdBindTransformFeedbackBuffersEXT;
10497 return true;
10498 }
10499 if (!strcmp("vkCmdBeginTransformFeedbackEXT", name)) {
10500 *addr = (void *)CmdBeginTransformFeedbackEXT;
10501 return true;
10502 }
10503 if (!strcmp("vkCmdEndTransformFeedbackEXT", name)) {
10504 *addr = (void *)CmdEndTransformFeedbackEXT;
10505 return true;
10506 }
10507 if (!strcmp("vkCmdBeginQueryIndexedEXT", name)) {
10508 *addr = (void *)CmdBeginQueryIndexedEXT;
10509 return true;
10510 }
10511 if (!strcmp("vkCmdEndQueryIndexedEXT", name)) {
10512 *addr = (void *)CmdEndQueryIndexedEXT;
10513 return true;
10514 }
10515 if (!strcmp("vkCmdDrawIndirectByteCountEXT", name)) {
10516 *addr = (void *)CmdDrawIndirectByteCountEXT;
10517 return true;
10518 }
10519
10520 // ---- VK_NVX_binary_import extension commands
10521 if (!strcmp("vkCreateCuModuleNVX", name)) {
10522 *addr = (void *)CreateCuModuleNVX;
10523 return true;
10524 }
10525 if (!strcmp("vkCreateCuFunctionNVX", name)) {
10526 *addr = (void *)CreateCuFunctionNVX;
10527 return true;
10528 }
10529 if (!strcmp("vkDestroyCuModuleNVX", name)) {
10530 *addr = (void *)DestroyCuModuleNVX;
10531 return true;
10532 }
10533 if (!strcmp("vkDestroyCuFunctionNVX", name)) {
10534 *addr = (void *)DestroyCuFunctionNVX;
10535 return true;
10536 }
10537 if (!strcmp("vkCmdCuLaunchKernelNVX", name)) {
10538 *addr = (void *)CmdCuLaunchKernelNVX;
10539 return true;
10540 }
10541
10542 // ---- VK_NVX_image_view_handle extension commands
10543 if (!strcmp("vkGetImageViewHandleNVX", name)) {
10544 *addr = (void *)GetImageViewHandleNVX;
10545 return true;
10546 }
10547 if (!strcmp("vkGetImageViewAddressNVX", name)) {
10548 *addr = (void *)GetImageViewAddressNVX;
10549 return true;
10550 }
10551
10552 // ---- VK_AMD_draw_indirect_count extension commands
10553 if (!strcmp("vkCmdDrawIndirectCountAMD", name)) {
10554 *addr = (void *)CmdDrawIndirectCountAMD;
10555 return true;
10556 }
10557 if (!strcmp("vkCmdDrawIndexedIndirectCountAMD", name)) {
10558 *addr = (void *)CmdDrawIndexedIndirectCountAMD;
10559 return true;
10560 }
10561
10562 // ---- VK_AMD_shader_info extension commands
10563 if (!strcmp("vkGetShaderInfoAMD", name)) {
10564 *addr = (void *)GetShaderInfoAMD;
10565 return true;
10566 }
10567
10568 // ---- VK_NV_external_memory_capabilities extension commands
10569 if (!strcmp("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", name)) {
10570 *addr = (ptr_instance->enabled_known_extensions.nv_external_memory_capabilities == 1)
10571 ? (void *)GetPhysicalDeviceExternalImageFormatPropertiesNV
10572 : NULL;
10573 return true;
10574 }
10575
10576 // ---- VK_NV_external_memory_win32 extension commands
10577 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10578 if (!strcmp("vkGetMemoryWin32HandleNV", name)) {
10579 *addr = (void *)GetMemoryWin32HandleNV;
10580 return true;
10581 }
10582 #endif // VK_USE_PLATFORM_WIN32_KHR
10583
10584 // ---- VK_EXT_conditional_rendering extension commands
10585 if (!strcmp("vkCmdBeginConditionalRenderingEXT", name)) {
10586 *addr = (void *)CmdBeginConditionalRenderingEXT;
10587 return true;
10588 }
10589 if (!strcmp("vkCmdEndConditionalRenderingEXT", name)) {
10590 *addr = (void *)CmdEndConditionalRenderingEXT;
10591 return true;
10592 }
10593
10594 // ---- VK_NV_clip_space_w_scaling extension commands
10595 if (!strcmp("vkCmdSetViewportWScalingNV", name)) {
10596 *addr = (void *)CmdSetViewportWScalingNV;
10597 return true;
10598 }
10599
10600 // ---- VK_EXT_direct_mode_display extension commands
10601 if (!strcmp("vkReleaseDisplayEXT", name)) {
10602 *addr = (ptr_instance->enabled_known_extensions.ext_direct_mode_display == 1)
10603 ? (void *)ReleaseDisplayEXT
10604 : NULL;
10605 return true;
10606 }
10607
10608 // ---- VK_EXT_acquire_xlib_display extension commands
10609 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
10610 if (!strcmp("vkAcquireXlibDisplayEXT", name)) {
10611 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_xlib_display == 1)
10612 ? (void *)AcquireXlibDisplayEXT
10613 : NULL;
10614 return true;
10615 }
10616 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
10617 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
10618 if (!strcmp("vkGetRandROutputDisplayEXT", name)) {
10619 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_xlib_display == 1)
10620 ? (void *)GetRandROutputDisplayEXT
10621 : NULL;
10622 return true;
10623 }
10624 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
10625
10626 // ---- VK_EXT_display_surface_counter extension commands
10627 if (!strcmp("vkGetPhysicalDeviceSurfaceCapabilities2EXT", name)) {
10628 *addr = (ptr_instance->enabled_known_extensions.ext_display_surface_counter == 1)
10629 ? (void *)GetPhysicalDeviceSurfaceCapabilities2EXT
10630 : NULL;
10631 return true;
10632 }
10633
10634 // ---- VK_EXT_display_control extension commands
10635 if (!strcmp("vkDisplayPowerControlEXT", name)) {
10636 *addr = (void *)DisplayPowerControlEXT;
10637 return true;
10638 }
10639 if (!strcmp("vkRegisterDeviceEventEXT", name)) {
10640 *addr = (void *)RegisterDeviceEventEXT;
10641 return true;
10642 }
10643 if (!strcmp("vkRegisterDisplayEventEXT", name)) {
10644 *addr = (void *)RegisterDisplayEventEXT;
10645 return true;
10646 }
10647 if (!strcmp("vkGetSwapchainCounterEXT", name)) {
10648 *addr = (void *)GetSwapchainCounterEXT;
10649 return true;
10650 }
10651
10652 // ---- VK_GOOGLE_display_timing extension commands
10653 if (!strcmp("vkGetRefreshCycleDurationGOOGLE", name)) {
10654 *addr = (void *)GetRefreshCycleDurationGOOGLE;
10655 return true;
10656 }
10657 if (!strcmp("vkGetPastPresentationTimingGOOGLE", name)) {
10658 *addr = (void *)GetPastPresentationTimingGOOGLE;
10659 return true;
10660 }
10661
10662 // ---- VK_EXT_discard_rectangles extension commands
10663 if (!strcmp("vkCmdSetDiscardRectangleEXT", name)) {
10664 *addr = (void *)CmdSetDiscardRectangleEXT;
10665 return true;
10666 }
10667 if (!strcmp("vkCmdSetDiscardRectangleEnableEXT", name)) {
10668 *addr = (void *)CmdSetDiscardRectangleEnableEXT;
10669 return true;
10670 }
10671 if (!strcmp("vkCmdSetDiscardRectangleModeEXT", name)) {
10672 *addr = (void *)CmdSetDiscardRectangleModeEXT;
10673 return true;
10674 }
10675
10676 // ---- VK_EXT_hdr_metadata extension commands
10677 if (!strcmp("vkSetHdrMetadataEXT", name)) {
10678 *addr = (void *)SetHdrMetadataEXT;
10679 return true;
10680 }
10681
10682 // ---- VK_EXT_debug_utils extension commands
10683 if (!strcmp("vkSetDebugUtilsObjectNameEXT", name)) {
10684 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
10685 ? (void *)SetDebugUtilsObjectNameEXT
10686 : NULL;
10687 return true;
10688 }
10689 if (!strcmp("vkSetDebugUtilsObjectTagEXT", name)) {
10690 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
10691 ? (void *)SetDebugUtilsObjectTagEXT
10692 : NULL;
10693 return true;
10694 }
10695 if (!strcmp("vkQueueBeginDebugUtilsLabelEXT", name)) {
10696 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
10697 ? (void *)QueueBeginDebugUtilsLabelEXT
10698 : NULL;
10699 return true;
10700 }
10701 if (!strcmp("vkQueueEndDebugUtilsLabelEXT", name)) {
10702 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
10703 ? (void *)QueueEndDebugUtilsLabelEXT
10704 : NULL;
10705 return true;
10706 }
10707 if (!strcmp("vkQueueInsertDebugUtilsLabelEXT", name)) {
10708 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
10709 ? (void *)QueueInsertDebugUtilsLabelEXT
10710 : NULL;
10711 return true;
10712 }
10713 if (!strcmp("vkCmdBeginDebugUtilsLabelEXT", name)) {
10714 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
10715 ? (void *)CmdBeginDebugUtilsLabelEXT
10716 : NULL;
10717 return true;
10718 }
10719 if (!strcmp("vkCmdEndDebugUtilsLabelEXT", name)) {
10720 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
10721 ? (void *)CmdEndDebugUtilsLabelEXT
10722 : NULL;
10723 return true;
10724 }
10725 if (!strcmp("vkCmdInsertDebugUtilsLabelEXT", name)) {
10726 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
10727 ? (void *)CmdInsertDebugUtilsLabelEXT
10728 : NULL;
10729 return true;
10730 }
10731
10732 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
10733 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
10734 if (!strcmp("vkGetAndroidHardwareBufferPropertiesANDROID", name)) {
10735 *addr = (void *)GetAndroidHardwareBufferPropertiesANDROID;
10736 return true;
10737 }
10738 #endif // VK_USE_PLATFORM_ANDROID_KHR
10739 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
10740 if (!strcmp("vkGetMemoryAndroidHardwareBufferANDROID", name)) {
10741 *addr = (void *)GetMemoryAndroidHardwareBufferANDROID;
10742 return true;
10743 }
10744 #endif // VK_USE_PLATFORM_ANDROID_KHR
10745
10746 // ---- VK_AMDX_shader_enqueue extension commands
10747 #if defined(VK_ENABLE_BETA_EXTENSIONS)
10748 if (!strcmp("vkCreateExecutionGraphPipelinesAMDX", name)) {
10749 *addr = (void *)CreateExecutionGraphPipelinesAMDX;
10750 return true;
10751 }
10752 #endif // VK_ENABLE_BETA_EXTENSIONS
10753 #if defined(VK_ENABLE_BETA_EXTENSIONS)
10754 if (!strcmp("vkGetExecutionGraphPipelineScratchSizeAMDX", name)) {
10755 *addr = (void *)GetExecutionGraphPipelineScratchSizeAMDX;
10756 return true;
10757 }
10758 #endif // VK_ENABLE_BETA_EXTENSIONS
10759 #if defined(VK_ENABLE_BETA_EXTENSIONS)
10760 if (!strcmp("vkGetExecutionGraphPipelineNodeIndexAMDX", name)) {
10761 *addr = (void *)GetExecutionGraphPipelineNodeIndexAMDX;
10762 return true;
10763 }
10764 #endif // VK_ENABLE_BETA_EXTENSIONS
10765 #if defined(VK_ENABLE_BETA_EXTENSIONS)
10766 if (!strcmp("vkCmdInitializeGraphScratchMemoryAMDX", name)) {
10767 *addr = (void *)CmdInitializeGraphScratchMemoryAMDX;
10768 return true;
10769 }
10770 #endif // VK_ENABLE_BETA_EXTENSIONS
10771 #if defined(VK_ENABLE_BETA_EXTENSIONS)
10772 if (!strcmp("vkCmdDispatchGraphAMDX", name)) {
10773 *addr = (void *)CmdDispatchGraphAMDX;
10774 return true;
10775 }
10776 #endif // VK_ENABLE_BETA_EXTENSIONS
10777 #if defined(VK_ENABLE_BETA_EXTENSIONS)
10778 if (!strcmp("vkCmdDispatchGraphIndirectAMDX", name)) {
10779 *addr = (void *)CmdDispatchGraphIndirectAMDX;
10780 return true;
10781 }
10782 #endif // VK_ENABLE_BETA_EXTENSIONS
10783 #if defined(VK_ENABLE_BETA_EXTENSIONS)
10784 if (!strcmp("vkCmdDispatchGraphIndirectCountAMDX", name)) {
10785 *addr = (void *)CmdDispatchGraphIndirectCountAMDX;
10786 return true;
10787 }
10788 #endif // VK_ENABLE_BETA_EXTENSIONS
10789
10790 // ---- VK_EXT_sample_locations extension commands
10791 if (!strcmp("vkCmdSetSampleLocationsEXT", name)) {
10792 *addr = (void *)CmdSetSampleLocationsEXT;
10793 return true;
10794 }
10795 if (!strcmp("vkGetPhysicalDeviceMultisamplePropertiesEXT", name)) {
10796 *addr = (void *)GetPhysicalDeviceMultisamplePropertiesEXT;
10797 return true;
10798 }
10799
10800 // ---- VK_EXT_image_drm_format_modifier extension commands
10801 if (!strcmp("vkGetImageDrmFormatModifierPropertiesEXT", name)) {
10802 *addr = (void *)GetImageDrmFormatModifierPropertiesEXT;
10803 return true;
10804 }
10805
10806 // ---- VK_EXT_validation_cache extension commands
10807 if (!strcmp("vkCreateValidationCacheEXT", name)) {
10808 *addr = (void *)CreateValidationCacheEXT;
10809 return true;
10810 }
10811 if (!strcmp("vkDestroyValidationCacheEXT", name)) {
10812 *addr = (void *)DestroyValidationCacheEXT;
10813 return true;
10814 }
10815 if (!strcmp("vkMergeValidationCachesEXT", name)) {
10816 *addr = (void *)MergeValidationCachesEXT;
10817 return true;
10818 }
10819 if (!strcmp("vkGetValidationCacheDataEXT", name)) {
10820 *addr = (void *)GetValidationCacheDataEXT;
10821 return true;
10822 }
10823
10824 // ---- VK_NV_shading_rate_image extension commands
10825 if (!strcmp("vkCmdBindShadingRateImageNV", name)) {
10826 *addr = (void *)CmdBindShadingRateImageNV;
10827 return true;
10828 }
10829 if (!strcmp("vkCmdSetViewportShadingRatePaletteNV", name)) {
10830 *addr = (void *)CmdSetViewportShadingRatePaletteNV;
10831 return true;
10832 }
10833 if (!strcmp("vkCmdSetCoarseSampleOrderNV", name)) {
10834 *addr = (void *)CmdSetCoarseSampleOrderNV;
10835 return true;
10836 }
10837
10838 // ---- VK_NV_ray_tracing extension commands
10839 if (!strcmp("vkCreateAccelerationStructureNV", name)) {
10840 *addr = (void *)CreateAccelerationStructureNV;
10841 return true;
10842 }
10843 if (!strcmp("vkDestroyAccelerationStructureNV", name)) {
10844 *addr = (void *)DestroyAccelerationStructureNV;
10845 return true;
10846 }
10847 if (!strcmp("vkGetAccelerationStructureMemoryRequirementsNV", name)) {
10848 *addr = (void *)GetAccelerationStructureMemoryRequirementsNV;
10849 return true;
10850 }
10851 if (!strcmp("vkBindAccelerationStructureMemoryNV", name)) {
10852 *addr = (void *)BindAccelerationStructureMemoryNV;
10853 return true;
10854 }
10855 if (!strcmp("vkCmdBuildAccelerationStructureNV", name)) {
10856 *addr = (void *)CmdBuildAccelerationStructureNV;
10857 return true;
10858 }
10859 if (!strcmp("vkCmdCopyAccelerationStructureNV", name)) {
10860 *addr = (void *)CmdCopyAccelerationStructureNV;
10861 return true;
10862 }
10863 if (!strcmp("vkCmdTraceRaysNV", name)) {
10864 *addr = (void *)CmdTraceRaysNV;
10865 return true;
10866 }
10867 if (!strcmp("vkCreateRayTracingPipelinesNV", name)) {
10868 *addr = (void *)CreateRayTracingPipelinesNV;
10869 return true;
10870 }
10871 if (!strcmp("vkGetRayTracingShaderGroupHandlesKHR", name)) {
10872 *addr = (void *)GetRayTracingShaderGroupHandlesKHR;
10873 return true;
10874 }
10875 if (!strcmp("vkGetRayTracingShaderGroupHandlesNV", name)) {
10876 *addr = (void *)GetRayTracingShaderGroupHandlesNV;
10877 return true;
10878 }
10879 if (!strcmp("vkGetAccelerationStructureHandleNV", name)) {
10880 *addr = (void *)GetAccelerationStructureHandleNV;
10881 return true;
10882 }
10883 if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesNV", name)) {
10884 *addr = (void *)CmdWriteAccelerationStructuresPropertiesNV;
10885 return true;
10886 }
10887 if (!strcmp("vkCompileDeferredNV", name)) {
10888 *addr = (void *)CompileDeferredNV;
10889 return true;
10890 }
10891
10892 // ---- VK_EXT_external_memory_host extension commands
10893 if (!strcmp("vkGetMemoryHostPointerPropertiesEXT", name)) {
10894 *addr = (void *)GetMemoryHostPointerPropertiesEXT;
10895 return true;
10896 }
10897
10898 // ---- VK_AMD_buffer_marker extension commands
10899 if (!strcmp("vkCmdWriteBufferMarkerAMD", name)) {
10900 *addr = (void *)CmdWriteBufferMarkerAMD;
10901 return true;
10902 }
10903
10904 // ---- VK_EXT_calibrated_timestamps extension commands
10905 if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", name)) {
10906 *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsEXT;
10907 return true;
10908 }
10909 if (!strcmp("vkGetCalibratedTimestampsEXT", name)) {
10910 *addr = (void *)GetCalibratedTimestampsEXT;
10911 return true;
10912 }
10913
10914 // ---- VK_NV_mesh_shader extension commands
10915 if (!strcmp("vkCmdDrawMeshTasksNV", name)) {
10916 *addr = (void *)CmdDrawMeshTasksNV;
10917 return true;
10918 }
10919 if (!strcmp("vkCmdDrawMeshTasksIndirectNV", name)) {
10920 *addr = (void *)CmdDrawMeshTasksIndirectNV;
10921 return true;
10922 }
10923 if (!strcmp("vkCmdDrawMeshTasksIndirectCountNV", name)) {
10924 *addr = (void *)CmdDrawMeshTasksIndirectCountNV;
10925 return true;
10926 }
10927
10928 // ---- VK_NV_scissor_exclusive extension commands
10929 if (!strcmp("vkCmdSetExclusiveScissorEnableNV", name)) {
10930 *addr = (void *)CmdSetExclusiveScissorEnableNV;
10931 return true;
10932 }
10933 if (!strcmp("vkCmdSetExclusiveScissorNV", name)) {
10934 *addr = (void *)CmdSetExclusiveScissorNV;
10935 return true;
10936 }
10937
10938 // ---- VK_NV_device_diagnostic_checkpoints extension commands
10939 if (!strcmp("vkCmdSetCheckpointNV", name)) {
10940 *addr = (void *)CmdSetCheckpointNV;
10941 return true;
10942 }
10943 if (!strcmp("vkGetQueueCheckpointDataNV", name)) {
10944 *addr = (void *)GetQueueCheckpointDataNV;
10945 return true;
10946 }
10947
10948 // ---- VK_INTEL_performance_query extension commands
10949 if (!strcmp("vkInitializePerformanceApiINTEL", name)) {
10950 *addr = (void *)InitializePerformanceApiINTEL;
10951 return true;
10952 }
10953 if (!strcmp("vkUninitializePerformanceApiINTEL", name)) {
10954 *addr = (void *)UninitializePerformanceApiINTEL;
10955 return true;
10956 }
10957 if (!strcmp("vkCmdSetPerformanceMarkerINTEL", name)) {
10958 *addr = (void *)CmdSetPerformanceMarkerINTEL;
10959 return true;
10960 }
10961 if (!strcmp("vkCmdSetPerformanceStreamMarkerINTEL", name)) {
10962 *addr = (void *)CmdSetPerformanceStreamMarkerINTEL;
10963 return true;
10964 }
10965 if (!strcmp("vkCmdSetPerformanceOverrideINTEL", name)) {
10966 *addr = (void *)CmdSetPerformanceOverrideINTEL;
10967 return true;
10968 }
10969 if (!strcmp("vkAcquirePerformanceConfigurationINTEL", name)) {
10970 *addr = (void *)AcquirePerformanceConfigurationINTEL;
10971 return true;
10972 }
10973 if (!strcmp("vkReleasePerformanceConfigurationINTEL", name)) {
10974 *addr = (void *)ReleasePerformanceConfigurationINTEL;
10975 return true;
10976 }
10977 if (!strcmp("vkQueueSetPerformanceConfigurationINTEL", name)) {
10978 *addr = (void *)QueueSetPerformanceConfigurationINTEL;
10979 return true;
10980 }
10981 if (!strcmp("vkGetPerformanceParameterINTEL", name)) {
10982 *addr = (void *)GetPerformanceParameterINTEL;
10983 return true;
10984 }
10985
10986 // ---- VK_AMD_display_native_hdr extension commands
10987 if (!strcmp("vkSetLocalDimmingAMD", name)) {
10988 *addr = (void *)SetLocalDimmingAMD;
10989 return true;
10990 }
10991
10992 // ---- VK_EXT_buffer_device_address extension commands
10993 if (!strcmp("vkGetBufferDeviceAddressEXT", name)) {
10994 *addr = (void *)GetBufferDeviceAddressEXT;
10995 return true;
10996 }
10997
10998 // ---- VK_EXT_tooling_info extension commands
10999 if (!strcmp("vkGetPhysicalDeviceToolPropertiesEXT", name)) {
11000 *addr = (void *)GetPhysicalDeviceToolPropertiesEXT;
11001 return true;
11002 }
11003
11004 // ---- VK_NV_cooperative_matrix extension commands
11005 if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", name)) {
11006 *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesNV;
11007 return true;
11008 }
11009
11010 // ---- VK_NV_coverage_reduction_mode extension commands
11011 if (!strcmp("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", name)) {
11012 *addr = (void *)GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
11013 return true;
11014 }
11015
11016 // ---- VK_EXT_full_screen_exclusive extension commands
11017 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11018 if (!strcmp("vkGetPhysicalDeviceSurfacePresentModes2EXT", name)) {
11019 *addr = (void *)GetPhysicalDeviceSurfacePresentModes2EXT;
11020 return true;
11021 }
11022 #endif // VK_USE_PLATFORM_WIN32_KHR
11023 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11024 if (!strcmp("vkAcquireFullScreenExclusiveModeEXT", name)) {
11025 *addr = (void *)AcquireFullScreenExclusiveModeEXT;
11026 return true;
11027 }
11028 #endif // VK_USE_PLATFORM_WIN32_KHR
11029 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11030 if (!strcmp("vkReleaseFullScreenExclusiveModeEXT", name)) {
11031 *addr = (void *)ReleaseFullScreenExclusiveModeEXT;
11032 return true;
11033 }
11034 #endif // VK_USE_PLATFORM_WIN32_KHR
11035 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11036 if (!strcmp("vkGetDeviceGroupSurfacePresentModes2EXT", name)) {
11037 *addr = (void *)GetDeviceGroupSurfacePresentModes2EXT;
11038 return true;
11039 }
11040 #endif // VK_USE_PLATFORM_WIN32_KHR
11041
11042 // ---- VK_EXT_line_rasterization extension commands
11043 if (!strcmp("vkCmdSetLineStippleEXT", name)) {
11044 *addr = (void *)CmdSetLineStippleEXT;
11045 return true;
11046 }
11047
11048 // ---- VK_EXT_host_query_reset extension commands
11049 if (!strcmp("vkResetQueryPoolEXT", name)) {
11050 *addr = (void *)ResetQueryPoolEXT;
11051 return true;
11052 }
11053
11054 // ---- VK_EXT_extended_dynamic_state extension commands
11055 if (!strcmp("vkCmdSetCullModeEXT", name)) {
11056 *addr = (void *)CmdSetCullModeEXT;
11057 return true;
11058 }
11059 if (!strcmp("vkCmdSetFrontFaceEXT", name)) {
11060 *addr = (void *)CmdSetFrontFaceEXT;
11061 return true;
11062 }
11063 if (!strcmp("vkCmdSetPrimitiveTopologyEXT", name)) {
11064 *addr = (void *)CmdSetPrimitiveTopologyEXT;
11065 return true;
11066 }
11067 if (!strcmp("vkCmdSetViewportWithCountEXT", name)) {
11068 *addr = (void *)CmdSetViewportWithCountEXT;
11069 return true;
11070 }
11071 if (!strcmp("vkCmdSetScissorWithCountEXT", name)) {
11072 *addr = (void *)CmdSetScissorWithCountEXT;
11073 return true;
11074 }
11075 if (!strcmp("vkCmdBindVertexBuffers2EXT", name)) {
11076 *addr = (void *)CmdBindVertexBuffers2EXT;
11077 return true;
11078 }
11079 if (!strcmp("vkCmdSetDepthTestEnableEXT", name)) {
11080 *addr = (void *)CmdSetDepthTestEnableEXT;
11081 return true;
11082 }
11083 if (!strcmp("vkCmdSetDepthWriteEnableEXT", name)) {
11084 *addr = (void *)CmdSetDepthWriteEnableEXT;
11085 return true;
11086 }
11087 if (!strcmp("vkCmdSetDepthCompareOpEXT", name)) {
11088 *addr = (void *)CmdSetDepthCompareOpEXT;
11089 return true;
11090 }
11091 if (!strcmp("vkCmdSetDepthBoundsTestEnableEXT", name)) {
11092 *addr = (void *)CmdSetDepthBoundsTestEnableEXT;
11093 return true;
11094 }
11095 if (!strcmp("vkCmdSetStencilTestEnableEXT", name)) {
11096 *addr = (void *)CmdSetStencilTestEnableEXT;
11097 return true;
11098 }
11099 if (!strcmp("vkCmdSetStencilOpEXT", name)) {
11100 *addr = (void *)CmdSetStencilOpEXT;
11101 return true;
11102 }
11103
11104 // ---- VK_EXT_host_image_copy extension commands
11105 if (!strcmp("vkCopyMemoryToImageEXT", name)) {
11106 *addr = (void *)CopyMemoryToImageEXT;
11107 return true;
11108 }
11109 if (!strcmp("vkCopyImageToMemoryEXT", name)) {
11110 *addr = (void *)CopyImageToMemoryEXT;
11111 return true;
11112 }
11113 if (!strcmp("vkCopyImageToImageEXT", name)) {
11114 *addr = (void *)CopyImageToImageEXT;
11115 return true;
11116 }
11117 if (!strcmp("vkTransitionImageLayoutEXT", name)) {
11118 *addr = (void *)TransitionImageLayoutEXT;
11119 return true;
11120 }
11121 if (!strcmp("vkGetImageSubresourceLayout2EXT", name)) {
11122 *addr = (void *)GetImageSubresourceLayout2EXT;
11123 return true;
11124 }
11125
11126 // ---- VK_EXT_swapchain_maintenance1 extension commands
11127 if (!strcmp("vkReleaseSwapchainImagesEXT", name)) {
11128 *addr = (void *)ReleaseSwapchainImagesEXT;
11129 return true;
11130 }
11131
11132 // ---- VK_NV_device_generated_commands extension commands
11133 if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsNV", name)) {
11134 *addr = (void *)GetGeneratedCommandsMemoryRequirementsNV;
11135 return true;
11136 }
11137 if (!strcmp("vkCmdPreprocessGeneratedCommandsNV", name)) {
11138 *addr = (void *)CmdPreprocessGeneratedCommandsNV;
11139 return true;
11140 }
11141 if (!strcmp("vkCmdExecuteGeneratedCommandsNV", name)) {
11142 *addr = (void *)CmdExecuteGeneratedCommandsNV;
11143 return true;
11144 }
11145 if (!strcmp("vkCmdBindPipelineShaderGroupNV", name)) {
11146 *addr = (void *)CmdBindPipelineShaderGroupNV;
11147 return true;
11148 }
11149 if (!strcmp("vkCreateIndirectCommandsLayoutNV", name)) {
11150 *addr = (void *)CreateIndirectCommandsLayoutNV;
11151 return true;
11152 }
11153 if (!strcmp("vkDestroyIndirectCommandsLayoutNV", name)) {
11154 *addr = (void *)DestroyIndirectCommandsLayoutNV;
11155 return true;
11156 }
11157
11158 // ---- VK_EXT_depth_bias_control extension commands
11159 if (!strcmp("vkCmdSetDepthBias2EXT", name)) {
11160 *addr = (void *)CmdSetDepthBias2EXT;
11161 return true;
11162 }
11163
11164 // ---- VK_EXT_acquire_drm_display extension commands
11165 if (!strcmp("vkAcquireDrmDisplayEXT", name)) {
11166 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_drm_display == 1)
11167 ? (void *)AcquireDrmDisplayEXT
11168 : NULL;
11169 return true;
11170 }
11171 if (!strcmp("vkGetDrmDisplayEXT", name)) {
11172 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_drm_display == 1)
11173 ? (void *)GetDrmDisplayEXT
11174 : NULL;
11175 return true;
11176 }
11177
11178 // ---- VK_EXT_private_data extension commands
11179 if (!strcmp("vkCreatePrivateDataSlotEXT", name)) {
11180 *addr = (void *)CreatePrivateDataSlotEXT;
11181 return true;
11182 }
11183 if (!strcmp("vkDestroyPrivateDataSlotEXT", name)) {
11184 *addr = (void *)DestroyPrivateDataSlotEXT;
11185 return true;
11186 }
11187 if (!strcmp("vkSetPrivateDataEXT", name)) {
11188 *addr = (void *)SetPrivateDataEXT;
11189 return true;
11190 }
11191 if (!strcmp("vkGetPrivateDataEXT", name)) {
11192 *addr = (void *)GetPrivateDataEXT;
11193 return true;
11194 }
11195
11196 // ---- VK_NV_cuda_kernel_launch extension commands
11197 if (!strcmp("vkCreateCudaModuleNV", name)) {
11198 *addr = (void *)CreateCudaModuleNV;
11199 return true;
11200 }
11201 if (!strcmp("vkGetCudaModuleCacheNV", name)) {
11202 *addr = (void *)GetCudaModuleCacheNV;
11203 return true;
11204 }
11205 if (!strcmp("vkCreateCudaFunctionNV", name)) {
11206 *addr = (void *)CreateCudaFunctionNV;
11207 return true;
11208 }
11209 if (!strcmp("vkDestroyCudaModuleNV", name)) {
11210 *addr = (void *)DestroyCudaModuleNV;
11211 return true;
11212 }
11213 if (!strcmp("vkDestroyCudaFunctionNV", name)) {
11214 *addr = (void *)DestroyCudaFunctionNV;
11215 return true;
11216 }
11217 if (!strcmp("vkCmdCudaLaunchKernelNV", name)) {
11218 *addr = (void *)CmdCudaLaunchKernelNV;
11219 return true;
11220 }
11221
11222 // ---- VK_EXT_metal_objects extension commands
11223 #if defined(VK_USE_PLATFORM_METAL_EXT)
11224 if (!strcmp("vkExportMetalObjectsEXT", name)) {
11225 *addr = (void *)ExportMetalObjectsEXT;
11226 return true;
11227 }
11228 #endif // VK_USE_PLATFORM_METAL_EXT
11229
11230 // ---- VK_EXT_descriptor_buffer extension commands
11231 if (!strcmp("vkGetDescriptorSetLayoutSizeEXT", name)) {
11232 *addr = (void *)GetDescriptorSetLayoutSizeEXT;
11233 return true;
11234 }
11235 if (!strcmp("vkGetDescriptorSetLayoutBindingOffsetEXT", name)) {
11236 *addr = (void *)GetDescriptorSetLayoutBindingOffsetEXT;
11237 return true;
11238 }
11239 if (!strcmp("vkGetDescriptorEXT", name)) {
11240 *addr = (void *)GetDescriptorEXT;
11241 return true;
11242 }
11243 if (!strcmp("vkCmdBindDescriptorBuffersEXT", name)) {
11244 *addr = (void *)CmdBindDescriptorBuffersEXT;
11245 return true;
11246 }
11247 if (!strcmp("vkCmdSetDescriptorBufferOffsetsEXT", name)) {
11248 *addr = (void *)CmdSetDescriptorBufferOffsetsEXT;
11249 return true;
11250 }
11251 if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplersEXT", name)) {
11252 *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplersEXT;
11253 return true;
11254 }
11255 if (!strcmp("vkGetBufferOpaqueCaptureDescriptorDataEXT", name)) {
11256 *addr = (void *)GetBufferOpaqueCaptureDescriptorDataEXT;
11257 return true;
11258 }
11259 if (!strcmp("vkGetImageOpaqueCaptureDescriptorDataEXT", name)) {
11260 *addr = (void *)GetImageOpaqueCaptureDescriptorDataEXT;
11261 return true;
11262 }
11263 if (!strcmp("vkGetImageViewOpaqueCaptureDescriptorDataEXT", name)) {
11264 *addr = (void *)GetImageViewOpaqueCaptureDescriptorDataEXT;
11265 return true;
11266 }
11267 if (!strcmp("vkGetSamplerOpaqueCaptureDescriptorDataEXT", name)) {
11268 *addr = (void *)GetSamplerOpaqueCaptureDescriptorDataEXT;
11269 return true;
11270 }
11271 if (!strcmp("vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT", name)) {
11272 *addr = (void *)GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
11273 return true;
11274 }
11275
11276 // ---- VK_NV_fragment_shading_rate_enums extension commands
11277 if (!strcmp("vkCmdSetFragmentShadingRateEnumNV", name)) {
11278 *addr = (void *)CmdSetFragmentShadingRateEnumNV;
11279 return true;
11280 }
11281
11282 // ---- VK_EXT_device_fault extension commands
11283 if (!strcmp("vkGetDeviceFaultInfoEXT", name)) {
11284 *addr = (void *)GetDeviceFaultInfoEXT;
11285 return true;
11286 }
11287
11288 // ---- VK_NV_acquire_winrt_display extension commands
11289 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11290 if (!strcmp("vkAcquireWinrtDisplayNV", name)) {
11291 *addr = (void *)AcquireWinrtDisplayNV;
11292 return true;
11293 }
11294 #endif // VK_USE_PLATFORM_WIN32_KHR
11295 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11296 if (!strcmp("vkGetWinrtDisplayNV", name)) {
11297 *addr = (void *)GetWinrtDisplayNV;
11298 return true;
11299 }
11300 #endif // VK_USE_PLATFORM_WIN32_KHR
11301
11302 // ---- VK_EXT_vertex_input_dynamic_state extension commands
11303 if (!strcmp("vkCmdSetVertexInputEXT", name)) {
11304 *addr = (void *)CmdSetVertexInputEXT;
11305 return true;
11306 }
11307
11308 // ---- VK_FUCHSIA_external_memory extension commands
11309 #if defined(VK_USE_PLATFORM_FUCHSIA)
11310 if (!strcmp("vkGetMemoryZirconHandleFUCHSIA", name)) {
11311 *addr = (void *)GetMemoryZirconHandleFUCHSIA;
11312 return true;
11313 }
11314 #endif // VK_USE_PLATFORM_FUCHSIA
11315 #if defined(VK_USE_PLATFORM_FUCHSIA)
11316 if (!strcmp("vkGetMemoryZirconHandlePropertiesFUCHSIA", name)) {
11317 *addr = (void *)GetMemoryZirconHandlePropertiesFUCHSIA;
11318 return true;
11319 }
11320 #endif // VK_USE_PLATFORM_FUCHSIA
11321
11322 // ---- VK_FUCHSIA_external_semaphore extension commands
11323 #if defined(VK_USE_PLATFORM_FUCHSIA)
11324 if (!strcmp("vkImportSemaphoreZirconHandleFUCHSIA", name)) {
11325 *addr = (void *)ImportSemaphoreZirconHandleFUCHSIA;
11326 return true;
11327 }
11328 #endif // VK_USE_PLATFORM_FUCHSIA
11329 #if defined(VK_USE_PLATFORM_FUCHSIA)
11330 if (!strcmp("vkGetSemaphoreZirconHandleFUCHSIA", name)) {
11331 *addr = (void *)GetSemaphoreZirconHandleFUCHSIA;
11332 return true;
11333 }
11334 #endif // VK_USE_PLATFORM_FUCHSIA
11335
11336 // ---- VK_FUCHSIA_buffer_collection extension commands
11337 #if defined(VK_USE_PLATFORM_FUCHSIA)
11338 if (!strcmp("vkCreateBufferCollectionFUCHSIA", name)) {
11339 *addr = (void *)CreateBufferCollectionFUCHSIA;
11340 return true;
11341 }
11342 #endif // VK_USE_PLATFORM_FUCHSIA
11343 #if defined(VK_USE_PLATFORM_FUCHSIA)
11344 if (!strcmp("vkSetBufferCollectionImageConstraintsFUCHSIA", name)) {
11345 *addr = (void *)SetBufferCollectionImageConstraintsFUCHSIA;
11346 return true;
11347 }
11348 #endif // VK_USE_PLATFORM_FUCHSIA
11349 #if defined(VK_USE_PLATFORM_FUCHSIA)
11350 if (!strcmp("vkSetBufferCollectionBufferConstraintsFUCHSIA", name)) {
11351 *addr = (void *)SetBufferCollectionBufferConstraintsFUCHSIA;
11352 return true;
11353 }
11354 #endif // VK_USE_PLATFORM_FUCHSIA
11355 #if defined(VK_USE_PLATFORM_FUCHSIA)
11356 if (!strcmp("vkDestroyBufferCollectionFUCHSIA", name)) {
11357 *addr = (void *)DestroyBufferCollectionFUCHSIA;
11358 return true;
11359 }
11360 #endif // VK_USE_PLATFORM_FUCHSIA
11361 #if defined(VK_USE_PLATFORM_FUCHSIA)
11362 if (!strcmp("vkGetBufferCollectionPropertiesFUCHSIA", name)) {
11363 *addr = (void *)GetBufferCollectionPropertiesFUCHSIA;
11364 return true;
11365 }
11366 #endif // VK_USE_PLATFORM_FUCHSIA
11367
11368 // ---- VK_HUAWEI_subpass_shading extension commands
11369 if (!strcmp("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", name)) {
11370 *addr = (void *)GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
11371 return true;
11372 }
11373 if (!strcmp("vkCmdSubpassShadingHUAWEI", name)) {
11374 *addr = (void *)CmdSubpassShadingHUAWEI;
11375 return true;
11376 }
11377
11378 // ---- VK_HUAWEI_invocation_mask extension commands
11379 if (!strcmp("vkCmdBindInvocationMaskHUAWEI", name)) {
11380 *addr = (void *)CmdBindInvocationMaskHUAWEI;
11381 return true;
11382 }
11383
11384 // ---- VK_NV_external_memory_rdma extension commands
11385 if (!strcmp("vkGetMemoryRemoteAddressNV", name)) {
11386 *addr = (void *)GetMemoryRemoteAddressNV;
11387 return true;
11388 }
11389
11390 // ---- VK_EXT_pipeline_properties extension commands
11391 if (!strcmp("vkGetPipelinePropertiesEXT", name)) {
11392 *addr = (void *)GetPipelinePropertiesEXT;
11393 return true;
11394 }
11395
11396 // ---- VK_EXT_extended_dynamic_state2 extension commands
11397 if (!strcmp("vkCmdSetPatchControlPointsEXT", name)) {
11398 *addr = (void *)CmdSetPatchControlPointsEXT;
11399 return true;
11400 }
11401 if (!strcmp("vkCmdSetRasterizerDiscardEnableEXT", name)) {
11402 *addr = (void *)CmdSetRasterizerDiscardEnableEXT;
11403 return true;
11404 }
11405 if (!strcmp("vkCmdSetDepthBiasEnableEXT", name)) {
11406 *addr = (void *)CmdSetDepthBiasEnableEXT;
11407 return true;
11408 }
11409 if (!strcmp("vkCmdSetLogicOpEXT", name)) {
11410 *addr = (void *)CmdSetLogicOpEXT;
11411 return true;
11412 }
11413 if (!strcmp("vkCmdSetPrimitiveRestartEnableEXT", name)) {
11414 *addr = (void *)CmdSetPrimitiveRestartEnableEXT;
11415 return true;
11416 }
11417
11418 // ---- VK_EXT_color_write_enable extension commands
11419 if (!strcmp("vkCmdSetColorWriteEnableEXT", name)) {
11420 *addr = (void *)CmdSetColorWriteEnableEXT;
11421 return true;
11422 }
11423
11424 // ---- VK_EXT_multi_draw extension commands
11425 if (!strcmp("vkCmdDrawMultiEXT", name)) {
11426 *addr = (void *)CmdDrawMultiEXT;
11427 return true;
11428 }
11429 if (!strcmp("vkCmdDrawMultiIndexedEXT", name)) {
11430 *addr = (void *)CmdDrawMultiIndexedEXT;
11431 return true;
11432 }
11433
11434 // ---- VK_EXT_opacity_micromap extension commands
11435 if (!strcmp("vkCreateMicromapEXT", name)) {
11436 *addr = (void *)CreateMicromapEXT;
11437 return true;
11438 }
11439 if (!strcmp("vkDestroyMicromapEXT", name)) {
11440 *addr = (void *)DestroyMicromapEXT;
11441 return true;
11442 }
11443 if (!strcmp("vkCmdBuildMicromapsEXT", name)) {
11444 *addr = (void *)CmdBuildMicromapsEXT;
11445 return true;
11446 }
11447 if (!strcmp("vkBuildMicromapsEXT", name)) {
11448 *addr = (void *)BuildMicromapsEXT;
11449 return true;
11450 }
11451 if (!strcmp("vkCopyMicromapEXT", name)) {
11452 *addr = (void *)CopyMicromapEXT;
11453 return true;
11454 }
11455 if (!strcmp("vkCopyMicromapToMemoryEXT", name)) {
11456 *addr = (void *)CopyMicromapToMemoryEXT;
11457 return true;
11458 }
11459 if (!strcmp("vkCopyMemoryToMicromapEXT", name)) {
11460 *addr = (void *)CopyMemoryToMicromapEXT;
11461 return true;
11462 }
11463 if (!strcmp("vkWriteMicromapsPropertiesEXT", name)) {
11464 *addr = (void *)WriteMicromapsPropertiesEXT;
11465 return true;
11466 }
11467 if (!strcmp("vkCmdCopyMicromapEXT", name)) {
11468 *addr = (void *)CmdCopyMicromapEXT;
11469 return true;
11470 }
11471 if (!strcmp("vkCmdCopyMicromapToMemoryEXT", name)) {
11472 *addr = (void *)CmdCopyMicromapToMemoryEXT;
11473 return true;
11474 }
11475 if (!strcmp("vkCmdCopyMemoryToMicromapEXT", name)) {
11476 *addr = (void *)CmdCopyMemoryToMicromapEXT;
11477 return true;
11478 }
11479 if (!strcmp("vkCmdWriteMicromapsPropertiesEXT", name)) {
11480 *addr = (void *)CmdWriteMicromapsPropertiesEXT;
11481 return true;
11482 }
11483 if (!strcmp("vkGetDeviceMicromapCompatibilityEXT", name)) {
11484 *addr = (void *)GetDeviceMicromapCompatibilityEXT;
11485 return true;
11486 }
11487 if (!strcmp("vkGetMicromapBuildSizesEXT", name)) {
11488 *addr = (void *)GetMicromapBuildSizesEXT;
11489 return true;
11490 }
11491
11492 // ---- VK_HUAWEI_cluster_culling_shader extension commands
11493 if (!strcmp("vkCmdDrawClusterHUAWEI", name)) {
11494 *addr = (void *)CmdDrawClusterHUAWEI;
11495 return true;
11496 }
11497 if (!strcmp("vkCmdDrawClusterIndirectHUAWEI", name)) {
11498 *addr = (void *)CmdDrawClusterIndirectHUAWEI;
11499 return true;
11500 }
11501
11502 // ---- VK_EXT_pageable_device_local_memory extension commands
11503 if (!strcmp("vkSetDeviceMemoryPriorityEXT", name)) {
11504 *addr = (void *)SetDeviceMemoryPriorityEXT;
11505 return true;
11506 }
11507
11508 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
11509 if (!strcmp("vkGetDescriptorSetLayoutHostMappingInfoVALVE", name)) {
11510 *addr = (void *)GetDescriptorSetLayoutHostMappingInfoVALVE;
11511 return true;
11512 }
11513 if (!strcmp("vkGetDescriptorSetHostMappingVALVE", name)) {
11514 *addr = (void *)GetDescriptorSetHostMappingVALVE;
11515 return true;
11516 }
11517
11518 // ---- VK_NV_copy_memory_indirect extension commands
11519 if (!strcmp("vkCmdCopyMemoryIndirectNV", name)) {
11520 *addr = (void *)CmdCopyMemoryIndirectNV;
11521 return true;
11522 }
11523 if (!strcmp("vkCmdCopyMemoryToImageIndirectNV", name)) {
11524 *addr = (void *)CmdCopyMemoryToImageIndirectNV;
11525 return true;
11526 }
11527
11528 // ---- VK_NV_memory_decompression extension commands
11529 if (!strcmp("vkCmdDecompressMemoryNV", name)) {
11530 *addr = (void *)CmdDecompressMemoryNV;
11531 return true;
11532 }
11533 if (!strcmp("vkCmdDecompressMemoryIndirectCountNV", name)) {
11534 *addr = (void *)CmdDecompressMemoryIndirectCountNV;
11535 return true;
11536 }
11537
11538 // ---- VK_NV_device_generated_commands_compute extension commands
11539 if (!strcmp("vkGetPipelineIndirectMemoryRequirementsNV", name)) {
11540 *addr = (void *)GetPipelineIndirectMemoryRequirementsNV;
11541 return true;
11542 }
11543 if (!strcmp("vkCmdUpdatePipelineIndirectBufferNV", name)) {
11544 *addr = (void *)CmdUpdatePipelineIndirectBufferNV;
11545 return true;
11546 }
11547 if (!strcmp("vkGetPipelineIndirectDeviceAddressNV", name)) {
11548 *addr = (void *)GetPipelineIndirectDeviceAddressNV;
11549 return true;
11550 }
11551
11552 // ---- VK_EXT_extended_dynamic_state3 extension commands
11553 if (!strcmp("vkCmdSetTessellationDomainOriginEXT", name)) {
11554 *addr = (void *)CmdSetTessellationDomainOriginEXT;
11555 return true;
11556 }
11557 if (!strcmp("vkCmdSetDepthClampEnableEXT", name)) {
11558 *addr = (void *)CmdSetDepthClampEnableEXT;
11559 return true;
11560 }
11561 if (!strcmp("vkCmdSetPolygonModeEXT", name)) {
11562 *addr = (void *)CmdSetPolygonModeEXT;
11563 return true;
11564 }
11565 if (!strcmp("vkCmdSetRasterizationSamplesEXT", name)) {
11566 *addr = (void *)CmdSetRasterizationSamplesEXT;
11567 return true;
11568 }
11569 if (!strcmp("vkCmdSetSampleMaskEXT", name)) {
11570 *addr = (void *)CmdSetSampleMaskEXT;
11571 return true;
11572 }
11573 if (!strcmp("vkCmdSetAlphaToCoverageEnableEXT", name)) {
11574 *addr = (void *)CmdSetAlphaToCoverageEnableEXT;
11575 return true;
11576 }
11577 if (!strcmp("vkCmdSetAlphaToOneEnableEXT", name)) {
11578 *addr = (void *)CmdSetAlphaToOneEnableEXT;
11579 return true;
11580 }
11581 if (!strcmp("vkCmdSetLogicOpEnableEXT", name)) {
11582 *addr = (void *)CmdSetLogicOpEnableEXT;
11583 return true;
11584 }
11585 if (!strcmp("vkCmdSetColorBlendEnableEXT", name)) {
11586 *addr = (void *)CmdSetColorBlendEnableEXT;
11587 return true;
11588 }
11589 if (!strcmp("vkCmdSetColorBlendEquationEXT", name)) {
11590 *addr = (void *)CmdSetColorBlendEquationEXT;
11591 return true;
11592 }
11593 if (!strcmp("vkCmdSetColorWriteMaskEXT", name)) {
11594 *addr = (void *)CmdSetColorWriteMaskEXT;
11595 return true;
11596 }
11597 if (!strcmp("vkCmdSetRasterizationStreamEXT", name)) {
11598 *addr = (void *)CmdSetRasterizationStreamEXT;
11599 return true;
11600 }
11601 if (!strcmp("vkCmdSetConservativeRasterizationModeEXT", name)) {
11602 *addr = (void *)CmdSetConservativeRasterizationModeEXT;
11603 return true;
11604 }
11605 if (!strcmp("vkCmdSetExtraPrimitiveOverestimationSizeEXT", name)) {
11606 *addr = (void *)CmdSetExtraPrimitiveOverestimationSizeEXT;
11607 return true;
11608 }
11609 if (!strcmp("vkCmdSetDepthClipEnableEXT", name)) {
11610 *addr = (void *)CmdSetDepthClipEnableEXT;
11611 return true;
11612 }
11613 if (!strcmp("vkCmdSetSampleLocationsEnableEXT", name)) {
11614 *addr = (void *)CmdSetSampleLocationsEnableEXT;
11615 return true;
11616 }
11617 if (!strcmp("vkCmdSetColorBlendAdvancedEXT", name)) {
11618 *addr = (void *)CmdSetColorBlendAdvancedEXT;
11619 return true;
11620 }
11621 if (!strcmp("vkCmdSetProvokingVertexModeEXT", name)) {
11622 *addr = (void *)CmdSetProvokingVertexModeEXT;
11623 return true;
11624 }
11625 if (!strcmp("vkCmdSetLineRasterizationModeEXT", name)) {
11626 *addr = (void *)CmdSetLineRasterizationModeEXT;
11627 return true;
11628 }
11629 if (!strcmp("vkCmdSetLineStippleEnableEXT", name)) {
11630 *addr = (void *)CmdSetLineStippleEnableEXT;
11631 return true;
11632 }
11633 if (!strcmp("vkCmdSetDepthClipNegativeOneToOneEXT", name)) {
11634 *addr = (void *)CmdSetDepthClipNegativeOneToOneEXT;
11635 return true;
11636 }
11637 if (!strcmp("vkCmdSetViewportWScalingEnableNV", name)) {
11638 *addr = (void *)CmdSetViewportWScalingEnableNV;
11639 return true;
11640 }
11641 if (!strcmp("vkCmdSetViewportSwizzleNV", name)) {
11642 *addr = (void *)CmdSetViewportSwizzleNV;
11643 return true;
11644 }
11645 if (!strcmp("vkCmdSetCoverageToColorEnableNV", name)) {
11646 *addr = (void *)CmdSetCoverageToColorEnableNV;
11647 return true;
11648 }
11649 if (!strcmp("vkCmdSetCoverageToColorLocationNV", name)) {
11650 *addr = (void *)CmdSetCoverageToColorLocationNV;
11651 return true;
11652 }
11653 if (!strcmp("vkCmdSetCoverageModulationModeNV", name)) {
11654 *addr = (void *)CmdSetCoverageModulationModeNV;
11655 return true;
11656 }
11657 if (!strcmp("vkCmdSetCoverageModulationTableEnableNV", name)) {
11658 *addr = (void *)CmdSetCoverageModulationTableEnableNV;
11659 return true;
11660 }
11661 if (!strcmp("vkCmdSetCoverageModulationTableNV", name)) {
11662 *addr = (void *)CmdSetCoverageModulationTableNV;
11663 return true;
11664 }
11665 if (!strcmp("vkCmdSetShadingRateImageEnableNV", name)) {
11666 *addr = (void *)CmdSetShadingRateImageEnableNV;
11667 return true;
11668 }
11669 if (!strcmp("vkCmdSetRepresentativeFragmentTestEnableNV", name)) {
11670 *addr = (void *)CmdSetRepresentativeFragmentTestEnableNV;
11671 return true;
11672 }
11673 if (!strcmp("vkCmdSetCoverageReductionModeNV", name)) {
11674 *addr = (void *)CmdSetCoverageReductionModeNV;
11675 return true;
11676 }
11677
11678 // ---- VK_EXT_shader_module_identifier extension commands
11679 if (!strcmp("vkGetShaderModuleIdentifierEXT", name)) {
11680 *addr = (void *)GetShaderModuleIdentifierEXT;
11681 return true;
11682 }
11683 if (!strcmp("vkGetShaderModuleCreateInfoIdentifierEXT", name)) {
11684 *addr = (void *)GetShaderModuleCreateInfoIdentifierEXT;
11685 return true;
11686 }
11687
11688 // ---- VK_NV_optical_flow extension commands
11689 if (!strcmp("vkGetPhysicalDeviceOpticalFlowImageFormatsNV", name)) {
11690 *addr = (void *)GetPhysicalDeviceOpticalFlowImageFormatsNV;
11691 return true;
11692 }
11693 if (!strcmp("vkCreateOpticalFlowSessionNV", name)) {
11694 *addr = (void *)CreateOpticalFlowSessionNV;
11695 return true;
11696 }
11697 if (!strcmp("vkDestroyOpticalFlowSessionNV", name)) {
11698 *addr = (void *)DestroyOpticalFlowSessionNV;
11699 return true;
11700 }
11701 if (!strcmp("vkBindOpticalFlowSessionImageNV", name)) {
11702 *addr = (void *)BindOpticalFlowSessionImageNV;
11703 return true;
11704 }
11705 if (!strcmp("vkCmdOpticalFlowExecuteNV", name)) {
11706 *addr = (void *)CmdOpticalFlowExecuteNV;
11707 return true;
11708 }
11709
11710 // ---- VK_EXT_shader_object extension commands
11711 if (!strcmp("vkCreateShadersEXT", name)) {
11712 *addr = (void *)CreateShadersEXT;
11713 return true;
11714 }
11715 if (!strcmp("vkDestroyShaderEXT", name)) {
11716 *addr = (void *)DestroyShaderEXT;
11717 return true;
11718 }
11719 if (!strcmp("vkGetShaderBinaryDataEXT", name)) {
11720 *addr = (void *)GetShaderBinaryDataEXT;
11721 return true;
11722 }
11723 if (!strcmp("vkCmdBindShadersEXT", name)) {
11724 *addr = (void *)CmdBindShadersEXT;
11725 return true;
11726 }
11727
11728 // ---- VK_QCOM_tile_properties extension commands
11729 if (!strcmp("vkGetFramebufferTilePropertiesQCOM", name)) {
11730 *addr = (void *)GetFramebufferTilePropertiesQCOM;
11731 return true;
11732 }
11733 if (!strcmp("vkGetDynamicRenderingTilePropertiesQCOM", name)) {
11734 *addr = (void *)GetDynamicRenderingTilePropertiesQCOM;
11735 return true;
11736 }
11737
11738 // ---- VK_NV_low_latency2 extension commands
11739 if (!strcmp("vkSetLatencySleepModeNV", name)) {
11740 *addr = (void *)SetLatencySleepModeNV;
11741 return true;
11742 }
11743 if (!strcmp("vkLatencySleepNV", name)) {
11744 *addr = (void *)LatencySleepNV;
11745 return true;
11746 }
11747 if (!strcmp("vkSetLatencyMarkerNV", name)) {
11748 *addr = (void *)SetLatencyMarkerNV;
11749 return true;
11750 }
11751 if (!strcmp("vkGetLatencyTimingsNV", name)) {
11752 *addr = (void *)GetLatencyTimingsNV;
11753 return true;
11754 }
11755 if (!strcmp("vkQueueNotifyOutOfBandNV", name)) {
11756 *addr = (void *)QueueNotifyOutOfBandNV;
11757 return true;
11758 }
11759
11760 // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
11761 if (!strcmp("vkCmdSetAttachmentFeedbackLoopEnableEXT", name)) {
11762 *addr = (void *)CmdSetAttachmentFeedbackLoopEnableEXT;
11763 return true;
11764 }
11765
11766 // ---- VK_QNX_external_memory_screen_buffer extension commands
11767 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
11768 if (!strcmp("vkGetScreenBufferPropertiesQNX", name)) {
11769 *addr = (void *)GetScreenBufferPropertiesQNX;
11770 return true;
11771 }
11772 #endif // VK_USE_PLATFORM_SCREEN_QNX
11773
11774 // ---- VK_KHR_acceleration_structure extension commands
11775 if (!strcmp("vkCreateAccelerationStructureKHR", name)) {
11776 *addr = (void *)CreateAccelerationStructureKHR;
11777 return true;
11778 }
11779 if (!strcmp("vkDestroyAccelerationStructureKHR", name)) {
11780 *addr = (void *)DestroyAccelerationStructureKHR;
11781 return true;
11782 }
11783 if (!strcmp("vkCmdBuildAccelerationStructuresKHR", name)) {
11784 *addr = (void *)CmdBuildAccelerationStructuresKHR;
11785 return true;
11786 }
11787 if (!strcmp("vkCmdBuildAccelerationStructuresIndirectKHR", name)) {
11788 *addr = (void *)CmdBuildAccelerationStructuresIndirectKHR;
11789 return true;
11790 }
11791 if (!strcmp("vkBuildAccelerationStructuresKHR", name)) {
11792 *addr = (void *)BuildAccelerationStructuresKHR;
11793 return true;
11794 }
11795 if (!strcmp("vkCopyAccelerationStructureKHR", name)) {
11796 *addr = (void *)CopyAccelerationStructureKHR;
11797 return true;
11798 }
11799 if (!strcmp("vkCopyAccelerationStructureToMemoryKHR", name)) {
11800 *addr = (void *)CopyAccelerationStructureToMemoryKHR;
11801 return true;
11802 }
11803 if (!strcmp("vkCopyMemoryToAccelerationStructureKHR", name)) {
11804 *addr = (void *)CopyMemoryToAccelerationStructureKHR;
11805 return true;
11806 }
11807 if (!strcmp("vkWriteAccelerationStructuresPropertiesKHR", name)) {
11808 *addr = (void *)WriteAccelerationStructuresPropertiesKHR;
11809 return true;
11810 }
11811 if (!strcmp("vkCmdCopyAccelerationStructureKHR", name)) {
11812 *addr = (void *)CmdCopyAccelerationStructureKHR;
11813 return true;
11814 }
11815 if (!strcmp("vkCmdCopyAccelerationStructureToMemoryKHR", name)) {
11816 *addr = (void *)CmdCopyAccelerationStructureToMemoryKHR;
11817 return true;
11818 }
11819 if (!strcmp("vkCmdCopyMemoryToAccelerationStructureKHR", name)) {
11820 *addr = (void *)CmdCopyMemoryToAccelerationStructureKHR;
11821 return true;
11822 }
11823 if (!strcmp("vkGetAccelerationStructureDeviceAddressKHR", name)) {
11824 *addr = (void *)GetAccelerationStructureDeviceAddressKHR;
11825 return true;
11826 }
11827 if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesKHR", name)) {
11828 *addr = (void *)CmdWriteAccelerationStructuresPropertiesKHR;
11829 return true;
11830 }
11831 if (!strcmp("vkGetDeviceAccelerationStructureCompatibilityKHR", name)) {
11832 *addr = (void *)GetDeviceAccelerationStructureCompatibilityKHR;
11833 return true;
11834 }
11835 if (!strcmp("vkGetAccelerationStructureBuildSizesKHR", name)) {
11836 *addr = (void *)GetAccelerationStructureBuildSizesKHR;
11837 return true;
11838 }
11839
11840 // ---- VK_KHR_ray_tracing_pipeline extension commands
11841 if (!strcmp("vkCmdTraceRaysKHR", name)) {
11842 *addr = (void *)CmdTraceRaysKHR;
11843 return true;
11844 }
11845 if (!strcmp("vkCreateRayTracingPipelinesKHR", name)) {
11846 *addr = (void *)CreateRayTracingPipelinesKHR;
11847 return true;
11848 }
11849 if (!strcmp("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", name)) {
11850 *addr = (void *)GetRayTracingCaptureReplayShaderGroupHandlesKHR;
11851 return true;
11852 }
11853 if (!strcmp("vkCmdTraceRaysIndirectKHR", name)) {
11854 *addr = (void *)CmdTraceRaysIndirectKHR;
11855 return true;
11856 }
11857 if (!strcmp("vkGetRayTracingShaderGroupStackSizeKHR", name)) {
11858 *addr = (void *)GetRayTracingShaderGroupStackSizeKHR;
11859 return true;
11860 }
11861 if (!strcmp("vkCmdSetRayTracingPipelineStackSizeKHR", name)) {
11862 *addr = (void *)CmdSetRayTracingPipelineStackSizeKHR;
11863 return true;
11864 }
11865
11866 // ---- VK_EXT_mesh_shader extension commands
11867 if (!strcmp("vkCmdDrawMeshTasksEXT", name)) {
11868 *addr = (void *)CmdDrawMeshTasksEXT;
11869 return true;
11870 }
11871 if (!strcmp("vkCmdDrawMeshTasksIndirectEXT", name)) {
11872 *addr = (void *)CmdDrawMeshTasksIndirectEXT;
11873 return true;
11874 }
11875 if (!strcmp("vkCmdDrawMeshTasksIndirectCountEXT", name)) {
11876 *addr = (void *)CmdDrawMeshTasksIndirectCountEXT;
11877 return true;
11878 }
11879
11880 // ---- VK_OHOS_native_buffer extension commands
11881 #ifdef VK_USE_PLATFORM_OHOS
11882 if (!strcmp("vkGetSwapchainGrallocUsageOHOS", name)) {
11883 *addr = (void *)GetSwapchainGrallocUsageOHOS;
11884 return true;
11885 }
11886 #endif // VK_USE_PLATFORM_OHOS
11887 #ifdef VK_USE_PLATFORM_OHOS
11888 if (!strcmp("vkAcquireImageOHOS", name)) {
11889 *addr = (void *)AcquireImageOHOS;
11890 return true;
11891 }
11892 #endif // VK_USE_PLATFORM_OHOS
11893 #ifdef VK_USE_PLATFORM_OHOS
11894 if (!strcmp("vkQueueSignalReleaseImageOHOS", name)) {
11895 *addr = (void *)QueueSignalReleaseImageOHOS;
11896 return true;
11897 }
11898 #endif // VK_USE_PLATFORM_OHOS
11899
11900 // ---- VK_OHOS_external_memory extension commands
11901 #ifdef VK_USE_PLATFORM_OHOS
11902 if (!strcmp("vkGetNativeBufferPropertiesOHOS", name)) {
11903 *addr = (void *)vkGetNativeBufferPropertiesOHOS;
11904 return true;
11905 }
11906 #endif // VK_USE_PLATFORM_OHOS
11907 #ifdef VK_USE_PLATFORM_OHOS
11908 if (!strcmp("vkGetMemoryNativeBufferOHOS", name)) {
11909 *addr = (void *)vkGetMemoryNativeBufferOHOS;
11910 return true;
11911 }
11912 #endif // VK_USE_PLATFORM_OHOS
11913
11914 return false;
11915 }
11916
11917 // 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)11918 void extensions_create_instance(struct loader_instance *ptr_instance, const VkInstanceCreateInfo *pCreateInfo) {
11919 for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
11920
11921 // ---- VK_KHR_get_physical_device_properties2 extension commands
11922 if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) {
11923 ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 = 1;
11924
11925 // ---- VK_KHR_device_group_creation extension commands
11926 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)) {
11927 ptr_instance->enabled_known_extensions.khr_device_group_creation = 1;
11928
11929 // ---- VK_KHR_external_memory_capabilities extension commands
11930 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) {
11931 ptr_instance->enabled_known_extensions.khr_external_memory_capabilities = 1;
11932
11933 // ---- VK_KHR_external_semaphore_capabilities extension commands
11934 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME)) {
11935 ptr_instance->enabled_known_extensions.khr_external_semaphore_capabilities = 1;
11936
11937 // ---- VK_KHR_external_fence_capabilities extension commands
11938 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME)) {
11939 ptr_instance->enabled_known_extensions.khr_external_fence_capabilities = 1;
11940
11941 // ---- VK_NV_external_memory_capabilities extension commands
11942 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) {
11943 ptr_instance->enabled_known_extensions.nv_external_memory_capabilities = 1;
11944
11945 // ---- VK_EXT_direct_mode_display extension commands
11946 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)) {
11947 ptr_instance->enabled_known_extensions.ext_direct_mode_display = 1;
11948
11949 // ---- VK_EXT_acquire_xlib_display extension commands
11950 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
11951 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME)) {
11952 ptr_instance->enabled_known_extensions.ext_acquire_xlib_display = 1;
11953 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
11954
11955 // ---- VK_EXT_display_surface_counter extension commands
11956 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)) {
11957 ptr_instance->enabled_known_extensions.ext_display_surface_counter = 1;
11958
11959 // ---- VK_EXT_debug_utils extension commands
11960 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) {
11961 ptr_instance->enabled_known_extensions.ext_debug_utils = 1;
11962
11963 // ---- VK_EXT_acquire_drm_display extension commands
11964 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME)) {
11965 ptr_instance->enabled_known_extensions.ext_acquire_drm_display = 1;
11966 }
11967 }
11968 }
11969
11970 // Some device commands still need a terminator because the loader needs to unwrap something about them.
11971 // In many cases, the item needing unwrapping is a VkPhysicalDevice or VkSurfaceKHR object. But there may be other items
11972 // in the future.
get_extension_device_proc_terminator(struct loader_device * dev,const char * name,bool * found_name)11973 PFN_vkVoidFunction get_extension_device_proc_terminator(struct loader_device *dev, const char *name, bool* found_name) {
11974 *found_name = false;
11975 if (!name || name[0] != 'v' || name[1] != 'k') {
11976 return NULL;
11977 }
11978 name += 2;
11979 // ---- VK_KHR_swapchain extension commands
11980 if (!strcmp(name, "CreateSwapchainKHR")) {
11981 *found_name = true;
11982 return dev->driver_extensions.khr_swapchain_enabled ?
11983 (PFN_vkVoidFunction)terminator_CreateSwapchainKHR : NULL;
11984 }
11985 if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) {
11986 *found_name = true;
11987 return dev->driver_extensions.khr_swapchain_enabled ?
11988 (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModesKHR : NULL;
11989 }
11990 // ---- VK_KHR_display_swapchain extension commands
11991 if (!strcmp(name, "CreateSharedSwapchainsKHR")) {
11992 *found_name = true;
11993 return dev->driver_extensions.khr_display_swapchain_enabled ?
11994 (PFN_vkVoidFunction)terminator_CreateSharedSwapchainsKHR : NULL;
11995 }
11996 // ---- VK_EXT_debug_marker extension commands
11997 if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) {
11998 *found_name = true;
11999 return dev->driver_extensions.ext_debug_marker_enabled ?
12000 (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectTagEXT : NULL;
12001 }
12002 if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) {
12003 *found_name = true;
12004 return dev->driver_extensions.ext_debug_marker_enabled ?
12005 (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectNameEXT : NULL;
12006 }
12007 // ---- VK_EXT_debug_utils extension commands
12008 if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) {
12009 *found_name = true;
12010 return dev->driver_extensions.ext_debug_utils_enabled ?
12011 (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectNameEXT : NULL;
12012 }
12013 if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) {
12014 *found_name = true;
12015 return dev->driver_extensions.ext_debug_utils_enabled ?
12016 (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectTagEXT : NULL;
12017 }
12018 if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) {
12019 *found_name = true;
12020 return dev->driver_extensions.ext_debug_utils_enabled ?
12021 (PFN_vkVoidFunction)terminator_QueueBeginDebugUtilsLabelEXT : NULL;
12022 }
12023 if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) {
12024 *found_name = true;
12025 return dev->driver_extensions.ext_debug_utils_enabled ?
12026 (PFN_vkVoidFunction)terminator_QueueEndDebugUtilsLabelEXT : NULL;
12027 }
12028 if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) {
12029 *found_name = true;
12030 return dev->driver_extensions.ext_debug_utils_enabled ?
12031 (PFN_vkVoidFunction)terminator_QueueInsertDebugUtilsLabelEXT : NULL;
12032 }
12033 if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) {
12034 *found_name = true;
12035 return dev->driver_extensions.ext_debug_utils_enabled ?
12036 (PFN_vkVoidFunction)terminator_CmdBeginDebugUtilsLabelEXT : NULL;
12037 }
12038 if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) {
12039 *found_name = true;
12040 return dev->driver_extensions.ext_debug_utils_enabled ?
12041 (PFN_vkVoidFunction)terminator_CmdEndDebugUtilsLabelEXT : NULL;
12042 }
12043 if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) {
12044 *found_name = true;
12045 return dev->driver_extensions.ext_debug_utils_enabled ?
12046 (PFN_vkVoidFunction)terminator_CmdInsertDebugUtilsLabelEXT : NULL;
12047 }
12048 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12049 // ---- VK_EXT_full_screen_exclusive extension commands
12050 if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) {
12051 *found_name = true;
12052 return dev->driver_extensions.ext_full_screen_exclusive_enabled && dev->driver_extensions.khr_device_group_enabled ?
12053 (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModes2EXT : NULL;
12054 }
12055 #endif // VK_USE_PLATFORM_WIN32_KHR
12056 return NULL;
12057 }
12058
12059 // This table contains the loader's instance dispatch table, which contains
12060 // default functions if no instance layers are activated. This contains
12061 // pointers to "terminator functions".
12062 const VkLayerInstanceDispatchTable instance_disp = {
12063
12064 // ---- Core Vulkan 1.0 commands
12065 .DestroyInstance = terminator_DestroyInstance,
12066 .EnumeratePhysicalDevices = terminator_EnumeratePhysicalDevices,
12067 .GetPhysicalDeviceFeatures = terminator_GetPhysicalDeviceFeatures,
12068 .GetPhysicalDeviceFormatProperties = terminator_GetPhysicalDeviceFormatProperties,
12069 .GetPhysicalDeviceImageFormatProperties = terminator_GetPhysicalDeviceImageFormatProperties,
12070 .GetPhysicalDeviceProperties = terminator_GetPhysicalDeviceProperties,
12071 .GetPhysicalDeviceQueueFamilyProperties = terminator_GetPhysicalDeviceQueueFamilyProperties,
12072 .GetPhysicalDeviceMemoryProperties = terminator_GetPhysicalDeviceMemoryProperties,
12073 .GetInstanceProcAddr = vkGetInstanceProcAddr,
12074 .EnumerateDeviceExtensionProperties = terminator_EnumerateDeviceExtensionProperties,
12075 .EnumerateDeviceLayerProperties = terminator_EnumerateDeviceLayerProperties,
12076 .GetPhysicalDeviceSparseImageFormatProperties = terminator_GetPhysicalDeviceSparseImageFormatProperties,
12077
12078 // ---- Core Vulkan 1.1 commands
12079 .EnumeratePhysicalDeviceGroups = terminator_EnumeratePhysicalDeviceGroups,
12080 .GetPhysicalDeviceFeatures2 = terminator_GetPhysicalDeviceFeatures2,
12081 .GetPhysicalDeviceProperties2 = terminator_GetPhysicalDeviceProperties2,
12082 .GetPhysicalDeviceFormatProperties2 = terminator_GetPhysicalDeviceFormatProperties2,
12083 .GetPhysicalDeviceImageFormatProperties2 = terminator_GetPhysicalDeviceImageFormatProperties2,
12084 .GetPhysicalDeviceQueueFamilyProperties2 = terminator_GetPhysicalDeviceQueueFamilyProperties2,
12085 .GetPhysicalDeviceMemoryProperties2 = terminator_GetPhysicalDeviceMemoryProperties2,
12086 .GetPhysicalDeviceSparseImageFormatProperties2 = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
12087 .GetPhysicalDeviceExternalBufferProperties = terminator_GetPhysicalDeviceExternalBufferProperties,
12088 .GetPhysicalDeviceExternalFenceProperties = terminator_GetPhysicalDeviceExternalFenceProperties,
12089 .GetPhysicalDeviceExternalSemaphoreProperties = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
12090
12091 // ---- Core Vulkan 1.3 commands
12092 .GetPhysicalDeviceToolProperties = terminator_GetPhysicalDeviceToolProperties,
12093
12094 // ---- VK_KHR_surface extension commands
12095 .DestroySurfaceKHR = terminator_DestroySurfaceKHR,
12096 .GetPhysicalDeviceSurfaceSupportKHR = terminator_GetPhysicalDeviceSurfaceSupportKHR,
12097 .GetPhysicalDeviceSurfaceCapabilitiesKHR = terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR,
12098 .GetPhysicalDeviceSurfaceFormatsKHR = terminator_GetPhysicalDeviceSurfaceFormatsKHR,
12099 .GetPhysicalDeviceSurfacePresentModesKHR = terminator_GetPhysicalDeviceSurfacePresentModesKHR,
12100
12101 // ---- VK_KHR_swapchain extension commands
12102 .GetPhysicalDevicePresentRectanglesKHR = terminator_GetPhysicalDevicePresentRectanglesKHR,
12103
12104 // ---- VK_KHR_display extension commands
12105 .GetPhysicalDeviceDisplayPropertiesKHR = terminator_GetPhysicalDeviceDisplayPropertiesKHR,
12106 .GetPhysicalDeviceDisplayPlanePropertiesKHR = terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR,
12107 .GetDisplayPlaneSupportedDisplaysKHR = terminator_GetDisplayPlaneSupportedDisplaysKHR,
12108 .GetDisplayModePropertiesKHR = terminator_GetDisplayModePropertiesKHR,
12109 .CreateDisplayModeKHR = terminator_CreateDisplayModeKHR,
12110 .GetDisplayPlaneCapabilitiesKHR = terminator_GetDisplayPlaneCapabilitiesKHR,
12111 .CreateDisplayPlaneSurfaceKHR = terminator_CreateDisplayPlaneSurfaceKHR,
12112
12113 // ---- VK_KHR_xlib_surface extension commands
12114 #if defined(VK_USE_PLATFORM_XLIB_KHR)
12115 .CreateXlibSurfaceKHR = terminator_CreateXlibSurfaceKHR,
12116 #endif // VK_USE_PLATFORM_XLIB_KHR
12117 #if defined(VK_USE_PLATFORM_XLIB_KHR)
12118 .GetPhysicalDeviceXlibPresentationSupportKHR = terminator_GetPhysicalDeviceXlibPresentationSupportKHR,
12119 #endif // VK_USE_PLATFORM_XLIB_KHR
12120
12121 // ---- VK_KHR_xcb_surface extension commands
12122 #if defined(VK_USE_PLATFORM_XCB_KHR)
12123 .CreateXcbSurfaceKHR = terminator_CreateXcbSurfaceKHR,
12124 #endif // VK_USE_PLATFORM_XCB_KHR
12125 #if defined(VK_USE_PLATFORM_XCB_KHR)
12126 .GetPhysicalDeviceXcbPresentationSupportKHR = terminator_GetPhysicalDeviceXcbPresentationSupportKHR,
12127 #endif // VK_USE_PLATFORM_XCB_KHR
12128
12129 // ---- VK_KHR_wayland_surface extension commands
12130 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
12131 .CreateWaylandSurfaceKHR = terminator_CreateWaylandSurfaceKHR,
12132 #endif // VK_USE_PLATFORM_WAYLAND_KHR
12133 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
12134 .GetPhysicalDeviceWaylandPresentationSupportKHR = terminator_GetPhysicalDeviceWaylandPresentationSupportKHR,
12135 #endif // VK_USE_PLATFORM_WAYLAND_KHR
12136
12137 // ---- VK_KHR_android_surface extension commands
12138 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
12139 .CreateAndroidSurfaceKHR = terminator_CreateAndroidSurfaceKHR,
12140 #endif // VK_USE_PLATFORM_ANDROID_KHR
12141
12142 // ---- VK_KHR_win32_surface extension commands
12143 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12144 .CreateWin32SurfaceKHR = terminator_CreateWin32SurfaceKHR,
12145 #endif // VK_USE_PLATFORM_WIN32_KHR
12146 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12147 .GetPhysicalDeviceWin32PresentationSupportKHR = terminator_GetPhysicalDeviceWin32PresentationSupportKHR,
12148 #endif // VK_USE_PLATFORM_WIN32_KHR
12149
12150 // ---- VK_KHR_video_queue extension commands
12151 .GetPhysicalDeviceVideoCapabilitiesKHR = terminator_GetPhysicalDeviceVideoCapabilitiesKHR,
12152 .GetPhysicalDeviceVideoFormatPropertiesKHR = terminator_GetPhysicalDeviceVideoFormatPropertiesKHR,
12153
12154 // ---- VK_KHR_get_physical_device_properties2 extension commands
12155 .GetPhysicalDeviceFeatures2KHR = terminator_GetPhysicalDeviceFeatures2,
12156 .GetPhysicalDeviceProperties2KHR = terminator_GetPhysicalDeviceProperties2,
12157 .GetPhysicalDeviceFormatProperties2KHR = terminator_GetPhysicalDeviceFormatProperties2,
12158 .GetPhysicalDeviceImageFormatProperties2KHR = terminator_GetPhysicalDeviceImageFormatProperties2,
12159 .GetPhysicalDeviceQueueFamilyProperties2KHR = terminator_GetPhysicalDeviceQueueFamilyProperties2,
12160 .GetPhysicalDeviceMemoryProperties2KHR = terminator_GetPhysicalDeviceMemoryProperties2,
12161 .GetPhysicalDeviceSparseImageFormatProperties2KHR = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
12162
12163 // ---- VK_KHR_device_group_creation extension commands
12164 .EnumeratePhysicalDeviceGroupsKHR = terminator_EnumeratePhysicalDeviceGroups,
12165
12166 // ---- VK_KHR_external_memory_capabilities extension commands
12167 .GetPhysicalDeviceExternalBufferPropertiesKHR = terminator_GetPhysicalDeviceExternalBufferProperties,
12168
12169 // ---- VK_KHR_external_semaphore_capabilities extension commands
12170 .GetPhysicalDeviceExternalSemaphorePropertiesKHR = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
12171
12172 // ---- VK_KHR_external_fence_capabilities extension commands
12173 .GetPhysicalDeviceExternalFencePropertiesKHR = terminator_GetPhysicalDeviceExternalFenceProperties,
12174
12175 // ---- VK_KHR_performance_query extension commands
12176 .EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
12177 .GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
12178
12179 // ---- VK_KHR_get_surface_capabilities2 extension commands
12180 .GetPhysicalDeviceSurfaceCapabilities2KHR = terminator_GetPhysicalDeviceSurfaceCapabilities2KHR,
12181 .GetPhysicalDeviceSurfaceFormats2KHR = terminator_GetPhysicalDeviceSurfaceFormats2KHR,
12182
12183 // ---- VK_KHR_get_display_properties2 extension commands
12184 .GetPhysicalDeviceDisplayProperties2KHR = terminator_GetPhysicalDeviceDisplayProperties2KHR,
12185 .GetPhysicalDeviceDisplayPlaneProperties2KHR = terminator_GetPhysicalDeviceDisplayPlaneProperties2KHR,
12186 .GetDisplayModeProperties2KHR = terminator_GetDisplayModeProperties2KHR,
12187 .GetDisplayPlaneCapabilities2KHR = terminator_GetDisplayPlaneCapabilities2KHR,
12188
12189 // ---- VK_KHR_fragment_shading_rate extension commands
12190 .GetPhysicalDeviceFragmentShadingRatesKHR = terminator_GetPhysicalDeviceFragmentShadingRatesKHR,
12191
12192 // ---- VK_KHR_video_encode_queue extension commands
12193 .GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR,
12194
12195 // ---- VK_KHR_cooperative_matrix extension commands
12196 .GetPhysicalDeviceCooperativeMatrixPropertiesKHR = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR,
12197
12198 // ---- VK_KHR_calibrated_timestamps extension commands
12199 .GetPhysicalDeviceCalibrateableTimeDomainsKHR = terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR,
12200
12201 // ---- VK_EXT_debug_report extension commands
12202 .CreateDebugReportCallbackEXT = terminator_CreateDebugReportCallbackEXT,
12203 .DestroyDebugReportCallbackEXT = terminator_DestroyDebugReportCallbackEXT,
12204 .DebugReportMessageEXT = terminator_DebugReportMessageEXT,
12205
12206 // ---- VK_GGP_stream_descriptor_surface extension commands
12207 #if defined(VK_USE_PLATFORM_GGP)
12208 .CreateStreamDescriptorSurfaceGGP = terminator_CreateStreamDescriptorSurfaceGGP,
12209 #endif // VK_USE_PLATFORM_GGP
12210
12211 // ---- VK_NV_external_memory_capabilities extension commands
12212 .GetPhysicalDeviceExternalImageFormatPropertiesNV = terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV,
12213
12214 // ---- VK_NN_vi_surface extension commands
12215 #if defined(VK_USE_PLATFORM_VI_NN)
12216 .CreateViSurfaceNN = terminator_CreateViSurfaceNN,
12217 #endif // VK_USE_PLATFORM_VI_NN
12218
12219 // ---- VK_EXT_direct_mode_display extension commands
12220 .ReleaseDisplayEXT = terminator_ReleaseDisplayEXT,
12221
12222 // ---- VK_EXT_acquire_xlib_display extension commands
12223 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
12224 .AcquireXlibDisplayEXT = terminator_AcquireXlibDisplayEXT,
12225 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
12226 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
12227 .GetRandROutputDisplayEXT = terminator_GetRandROutputDisplayEXT,
12228 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
12229
12230 // ---- VK_EXT_display_surface_counter extension commands
12231 .GetPhysicalDeviceSurfaceCapabilities2EXT = terminator_GetPhysicalDeviceSurfaceCapabilities2EXT,
12232
12233 // ---- VK_MVK_ios_surface extension commands
12234 #if defined(VK_USE_PLATFORM_IOS_MVK)
12235 .CreateIOSSurfaceMVK = terminator_CreateIOSSurfaceMVK,
12236 #endif // VK_USE_PLATFORM_IOS_MVK
12237
12238 // ---- VK_MVK_macos_surface extension commands
12239 #if defined(VK_USE_PLATFORM_MACOS_MVK)
12240 .CreateMacOSSurfaceMVK = terminator_CreateMacOSSurfaceMVK,
12241 #endif // VK_USE_PLATFORM_MACOS_MVK
12242
12243 // ---- VK_EXT_debug_utils extension commands
12244 .CreateDebugUtilsMessengerEXT = terminator_CreateDebugUtilsMessengerEXT,
12245 .DestroyDebugUtilsMessengerEXT = terminator_DestroyDebugUtilsMessengerEXT,
12246 .SubmitDebugUtilsMessageEXT = terminator_SubmitDebugUtilsMessageEXT,
12247
12248 // ---- VK_EXT_sample_locations extension commands
12249 .GetPhysicalDeviceMultisamplePropertiesEXT = terminator_GetPhysicalDeviceMultisamplePropertiesEXT,
12250
12251 // ---- VK_EXT_calibrated_timestamps extension commands
12252 .GetPhysicalDeviceCalibrateableTimeDomainsEXT = terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT,
12253
12254 // ---- VK_FUCHSIA_imagepipe_surface extension commands
12255 #if defined(VK_USE_PLATFORM_FUCHSIA)
12256 .CreateImagePipeSurfaceFUCHSIA = terminator_CreateImagePipeSurfaceFUCHSIA,
12257 #endif // VK_USE_PLATFORM_FUCHSIA
12258
12259 // ---- VK_EXT_metal_surface extension commands
12260 #if defined(VK_USE_PLATFORM_METAL_EXT)
12261 .CreateMetalSurfaceEXT = terminator_CreateMetalSurfaceEXT,
12262 #endif // VK_USE_PLATFORM_METAL_EXT
12263
12264 // ---- VK_EXT_tooling_info extension commands
12265 .GetPhysicalDeviceToolPropertiesEXT = terminator_GetPhysicalDeviceToolPropertiesEXT,
12266
12267 // ---- VK_NV_cooperative_matrix extension commands
12268 .GetPhysicalDeviceCooperativeMatrixPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV,
12269
12270 // ---- VK_NV_coverage_reduction_mode extension commands
12271 .GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
12272
12273 // ---- VK_EXT_full_screen_exclusive extension commands
12274 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12275 .GetPhysicalDeviceSurfacePresentModes2EXT = terminator_GetPhysicalDeviceSurfacePresentModes2EXT,
12276 #endif // VK_USE_PLATFORM_WIN32_KHR
12277
12278 // ---- VK_EXT_headless_surface extension commands
12279 .CreateHeadlessSurfaceEXT = terminator_CreateHeadlessSurfaceEXT,
12280
12281 // ---- VK_EXT_acquire_drm_display extension commands
12282 .AcquireDrmDisplayEXT = terminator_AcquireDrmDisplayEXT,
12283 .GetDrmDisplayEXT = terminator_GetDrmDisplayEXT,
12284
12285 // ---- VK_NV_acquire_winrt_display extension commands
12286 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12287 .AcquireWinrtDisplayNV = terminator_AcquireWinrtDisplayNV,
12288 #endif // VK_USE_PLATFORM_WIN32_KHR
12289 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12290 .GetWinrtDisplayNV = terminator_GetWinrtDisplayNV,
12291 #endif // VK_USE_PLATFORM_WIN32_KHR
12292
12293 // ---- VK_EXT_directfb_surface extension commands
12294 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
12295 .CreateDirectFBSurfaceEXT = terminator_CreateDirectFBSurfaceEXT,
12296 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
12297 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
12298 .GetPhysicalDeviceDirectFBPresentationSupportEXT = terminator_GetPhysicalDeviceDirectFBPresentationSupportEXT,
12299 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
12300
12301 // ---- VK_QNX_screen_surface extension commands
12302 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
12303 .CreateScreenSurfaceQNX = terminator_CreateScreenSurfaceQNX,
12304 #endif // VK_USE_PLATFORM_SCREEN_QNX
12305 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
12306 .GetPhysicalDeviceScreenPresentationSupportQNX = terminator_GetPhysicalDeviceScreenPresentationSupportQNX,
12307 #endif // VK_USE_PLATFORM_SCREEN_QNX
12308
12309 // ---- VK_NV_optical_flow extension commands
12310 .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV,
12311
12312 #if defined(VK_USE_PLATFORM_OHOS)
12313 .CreateSurfaceOHOS = terminator_CreateSurfaceOHOS,
12314 #endif // VK_USE_PLATFORM_OHOS
12315 };
12316
12317 // A null-terminated list of all of the instance extensions supported by the loader.
12318 // If an instance extension name is not in this list, but it is exported by one or more of the
12319 // ICDs detected by the loader, then the extension name not in the list will be filtered out
12320 // before passing the list of extensions to the application.
12321 const char *const LOADER_INSTANCE_EXTENSIONS[] = {
12322 VK_KHR_SURFACE_EXTENSION_NAME,
12323 VK_KHR_DISPLAY_EXTENSION_NAME,
12324 #if defined(VK_USE_PLATFORM_XLIB_KHR)
12325 VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
12326 #endif // VK_USE_PLATFORM_XLIB_KHR
12327 #if defined(VK_USE_PLATFORM_XCB_KHR)
12328 VK_KHR_XCB_SURFACE_EXTENSION_NAME,
12329 #endif // VK_USE_PLATFORM_XCB_KHR
12330 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
12331 VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
12332 #endif // VK_USE_PLATFORM_WAYLAND_KHR
12333 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12334 VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
12335 #endif // VK_USE_PLATFORM_WIN32_KHR
12336 VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME,
12337 VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME,
12338 VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
12339 VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME,
12340 VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME,
12341 VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME,
12342 VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME,
12343 VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME,
12344 VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME,
12345 VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
12346 #if defined(VK_USE_PLATFORM_GGP)
12347 VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME,
12348 #endif // VK_USE_PLATFORM_GGP
12349 VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
12350 VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME,
12351 #if defined(VK_USE_PLATFORM_VI_NN)
12352 VK_NN_VI_SURFACE_EXTENSION_NAME,
12353 #endif // VK_USE_PLATFORM_VI_NN
12354 VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME,
12355 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
12356 VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME,
12357 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
12358 VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME,
12359 VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME,
12360 #if defined(VK_USE_PLATFORM_IOS_MVK)
12361 VK_MVK_IOS_SURFACE_EXTENSION_NAME,
12362 #endif // VK_USE_PLATFORM_IOS_MVK
12363 #if defined(VK_USE_PLATFORM_MACOS_MVK)
12364 VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
12365 #endif // VK_USE_PLATFORM_MACOS_MVK
12366 VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
12367 #if defined(VK_USE_PLATFORM_FUCHSIA)
12368 VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME,
12369 #endif // VK_USE_PLATFORM_FUCHSIA
12370 #if defined(VK_USE_PLATFORM_METAL_EXT)
12371 VK_EXT_METAL_SURFACE_EXTENSION_NAME,
12372 #endif // VK_USE_PLATFORM_METAL_EXT
12373 VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME,
12374 VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME,
12375 VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
12376 VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME,
12377 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
12378 VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME,
12379 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
12380 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
12381 VK_QNX_SCREEN_SURFACE_EXTENSION_NAME,
12382 #endif // VK_USE_PLATFORM_SCREEN_QNX
12383 VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME,
12384 VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME,
12385 VK_EXT_LAYER_SETTINGS_EXTENSION_NAME,
12386 #if defined(VK_USE_PLATFORM_OHOS)
12387 VK_OHOS_SURFACE_EXTENSION_NAME,
12388 #endif // VK_USE_PLATFORM_OHOS
12389 NULL };
12390 // clang-format on
12391