Coverage Report

Created: 2025-12-08 06:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/vulkan-loader/loader/generated/vk_loader_extensions.c
Line
Count
Source
1
// *** THIS FILE IS GENERATED - DO NOT EDIT ***
2
// See loader_extension_generator.py for modifications
3
4
/*
5
 * Copyright (c) 2015-2025 The Khronos Group Inc.
6
 * Copyright (c) 2015-2025 Valve Corporation
7
 * Copyright (c) 2015-2025 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
 * Author: Charles Giessen <charles@lunarg.com>
26
 */
27
28
// clang-format off
29
#include <stdio.h>
30
#include <stdlib.h>
31
#include <string.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
40
0
VKAPI_ATTR VkResult VKAPI_CALL vkDevExtError(VkDevice dev) {
41
0
    struct loader_device *found_dev;
42
    // The device going in is a trampoline device
43
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(dev, &found_dev);
44
45
0
    if (icd_term)
46
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
47
0
                   "Bad destination in loader trampoline dispatch,"
48
0
                   "Are layers and extensions that you are calling enabled?");
49
0
    return VK_ERROR_EXTENSION_NOT_PRESENT;
50
0
}
51
52
0
VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst, struct loader_icd_term *icd_term) {
53
0
    const PFN_vkGetInstanceProcAddr fp_gipa = icd_term->scanned_icd->GetInstanceProcAddr;
54
55
0
#define LOOKUP_GIPA(func) icd_term->dispatch.func = (PFN_vk##func)fp_gipa(icd_term->instance, "vk" #func);
56
57
0
#define LOOKUP_REQUIRED_GIPA(func)                                                      \
58
0
    do {                                                                                \
59
0
        LOOKUP_GIPA(func);                                                              \
60
0
        if (!icd_term->dispatch.func) {                                                 \
61
0
            loader_log(inst, VULKAN_LOADER_WARN_BIT, 0, "Unable to load %s from ICD %s",\
62
0
                       "vk"#func, icd_term->scanned_icd->lib_name);                     \
63
0
            return false;                                                               \
64
0
        }                                                                               \
65
0
    } while (0)
66
67
68
    // ---- Core Vulkan 1.0
69
0
    LOOKUP_REQUIRED_GIPA(DestroyInstance);
70
0
    LOOKUP_REQUIRED_GIPA(EnumeratePhysicalDevices);
71
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceFeatures);
72
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceFormatProperties);
73
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceImageFormatProperties);
74
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceProperties);
75
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceQueueFamilyProperties);
76
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceMemoryProperties);
77
0
    LOOKUP_REQUIRED_GIPA(GetDeviceProcAddr);
78
0
    LOOKUP_REQUIRED_GIPA(CreateDevice);
79
0
    LOOKUP_REQUIRED_GIPA(EnumerateDeviceExtensionProperties);
80
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceSparseImageFormatProperties);
81
82
    // ---- Core Vulkan 1.1
83
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceGroups);
84
0
    LOOKUP_GIPA(GetPhysicalDeviceFeatures2);
85
0
    LOOKUP_GIPA(GetPhysicalDeviceProperties2);
86
0
    LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2);
87
0
    LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2);
88
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2);
89
0
    LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2);
90
0
    LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2);
91
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalBufferProperties);
92
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalFenceProperties);
93
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphoreProperties);
94
95
    // ---- Core Vulkan 1.3
96
0
    LOOKUP_GIPA(GetPhysicalDeviceToolProperties);
97
98
    // ---- VK_KHR_surface extension commands
99
0
    LOOKUP_GIPA(DestroySurfaceKHR);
100
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceSupportKHR);
101
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilitiesKHR);
102
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormatsKHR);
103
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModesKHR);
104
105
    // ---- VK_KHR_swapchain extension commands
106
0
    LOOKUP_GIPA(GetPhysicalDevicePresentRectanglesKHR);
107
108
    // ---- VK_KHR_display extension commands
109
0
    LOOKUP_GIPA(GetPhysicalDeviceDisplayPropertiesKHR);
110
0
    LOOKUP_GIPA(GetPhysicalDeviceDisplayPlanePropertiesKHR);
111
0
    LOOKUP_GIPA(GetDisplayPlaneSupportedDisplaysKHR);
112
0
    LOOKUP_GIPA(GetDisplayModePropertiesKHR);
113
0
    LOOKUP_GIPA(CreateDisplayModeKHR);
114
0
    LOOKUP_GIPA(GetDisplayPlaneCapabilitiesKHR);
115
0
    LOOKUP_GIPA(CreateDisplayPlaneSurfaceKHR);
116
117
    // ---- VK_KHR_xlib_surface extension commands
118
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
119
0
    LOOKUP_GIPA(CreateXlibSurfaceKHR);
120
0
#endif // VK_USE_PLATFORM_XLIB_KHR
121
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
122
0
    LOOKUP_GIPA(GetPhysicalDeviceXlibPresentationSupportKHR);
123
0
#endif // VK_USE_PLATFORM_XLIB_KHR
124
125
    // ---- VK_KHR_xcb_surface extension commands
126
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
127
0
    LOOKUP_GIPA(CreateXcbSurfaceKHR);
128
0
#endif // VK_USE_PLATFORM_XCB_KHR
129
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
130
0
    LOOKUP_GIPA(GetPhysicalDeviceXcbPresentationSupportKHR);
131
0
#endif // VK_USE_PLATFORM_XCB_KHR
132
133
    // ---- VK_KHR_wayland_surface extension commands
134
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
135
0
    LOOKUP_GIPA(CreateWaylandSurfaceKHR);
136
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
137
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
138
0
    LOOKUP_GIPA(GetPhysicalDeviceWaylandPresentationSupportKHR);
139
0
#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
0
    LOOKUP_GIPA(GetPhysicalDeviceVideoCapabilitiesKHR);
156
0
    LOOKUP_GIPA(GetPhysicalDeviceVideoFormatPropertiesKHR);
157
158
    // ---- VK_KHR_get_physical_device_properties2 extension commands
159
0
    LOOKUP_GIPA(GetPhysicalDeviceFeatures2KHR);
160
0
    LOOKUP_GIPA(GetPhysicalDeviceProperties2KHR);
161
0
    LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2KHR);
162
0
    LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2KHR);
163
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2KHR);
164
0
    LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2KHR);
165
0
    LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2KHR);
166
167
    // ---- VK_KHR_device_group_creation extension commands
168
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceGroupsKHR);
169
170
    // ---- VK_KHR_external_memory_capabilities extension commands
171
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalBufferPropertiesKHR);
172
173
    // ---- VK_KHR_external_semaphore_capabilities extension commands
174
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphorePropertiesKHR);
175
176
    // ---- VK_KHR_external_fence_capabilities extension commands
177
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalFencePropertiesKHR);
178
179
    // ---- VK_KHR_performance_query extension commands
180
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
181
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
182
183
    // ---- VK_KHR_get_surface_capabilities2 extension commands
184
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2KHR);
185
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormats2KHR);
186
187
    // ---- VK_KHR_get_display_properties2 extension commands
188
0
    LOOKUP_GIPA(GetPhysicalDeviceDisplayProperties2KHR);
189
0
    LOOKUP_GIPA(GetPhysicalDeviceDisplayPlaneProperties2KHR);
190
0
    LOOKUP_GIPA(GetDisplayModeProperties2KHR);
191
0
    LOOKUP_GIPA(GetDisplayPlaneCapabilities2KHR);
192
193
    // ---- VK_KHR_fragment_shading_rate extension commands
194
0
    LOOKUP_GIPA(GetPhysicalDeviceFragmentShadingRatesKHR);
195
196
    // ---- VK_KHR_video_encode_queue extension commands
197
0
    LOOKUP_GIPA(GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR);
198
199
    // ---- VK_KHR_cooperative_matrix extension commands
200
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesKHR);
201
202
    // ---- VK_KHR_calibrated_timestamps extension commands
203
0
    LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsKHR);
204
205
    // ---- VK_EXT_debug_report extension commands
206
0
    LOOKUP_GIPA(CreateDebugReportCallbackEXT);
207
0
    LOOKUP_GIPA(DestroyDebugReportCallbackEXT);
208
0
    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
0
    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
0
    LOOKUP_GIPA(ReleaseDisplayEXT);
225
226
    // ---- VK_EXT_acquire_xlib_display extension commands
227
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
228
0
    LOOKUP_GIPA(AcquireXlibDisplayEXT);
229
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
230
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
231
0
    LOOKUP_GIPA(GetRandROutputDisplayEXT);
232
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
233
234
    // ---- VK_EXT_display_surface_counter extension commands
235
0
    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
0
    LOOKUP_GIPA(CreateDebugUtilsMessengerEXT);
249
0
    LOOKUP_GIPA(DestroyDebugUtilsMessengerEXT);
250
0
    LOOKUP_GIPA(SubmitDebugUtilsMessageEXT);
251
252
    // ---- VK_EXT_sample_locations extension commands
253
0
    LOOKUP_GIPA(GetPhysicalDeviceMultisamplePropertiesEXT);
254
255
    // ---- VK_EXT_calibrated_timestamps extension commands
256
0
    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
0
    LOOKUP_GIPA(GetPhysicalDeviceToolPropertiesEXT);
270
271
    // ---- VK_NV_cooperative_matrix extension commands
272
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesNV);
273
274
    // ---- VK_NV_coverage_reduction_mode extension commands
275
0
    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
0
    LOOKUP_GIPA(CreateHeadlessSurfaceEXT);
284
285
    // ---- VK_EXT_acquire_drm_display extension commands
286
0
    LOOKUP_GIPA(AcquireDrmDisplayEXT);
287
0
    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_ARM_tensors extension commands
314
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalTensorPropertiesARM);
315
316
    // ---- VK_NV_optical_flow extension commands
317
0
    LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV);
318
319
    // ---- VK_NV_cooperative_vector extension commands
320
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeVectorPropertiesNV);
321
322
    // ---- VK_ARM_data_graph extension commands
323
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM);
324
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM);
325
326
    // ---- VK_OHOS_surface extension commands
327
#if defined(VK_USE_PLATFORM_OHOS)
328
    LOOKUP_GIPA(CreateSurfaceOHOS);
329
#endif // VK_USE_PLATFORM_OHOS
330
331
    // ---- VK_NV_cooperative_matrix2 extension commands
332
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV);
333
334
    // ---- VK_ARM_performance_counters_by_region extension commands
335
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM);
336
337
0
#undef LOOKUP_REQUIRED_GIPA
338
0
#undef LOOKUP_GIPA
339
340
0
    return true;
341
0
};
342
343
// Init Device function pointer dispatch table with core commands
344
VKAPI_ATTR void VKAPI_CALL loader_init_device_dispatch_table(struct loader_dev_dispatch_table *dev_table, PFN_vkGetDeviceProcAddr gpa,
345
0
                                                             VkDevice dev) {
346
0
    VkLayerDispatchTable *table = &dev_table->core_dispatch;
347
0
    if (table->magic != DEVICE_DISP_TABLE_MAGIC_NUMBER) { abort(); }
348
0
    for (uint32_t i = 0; i < MAX_NUM_UNKNOWN_EXTS; i++) dev_table->ext_dispatch[i] = (PFN_vkDevExt)vkDevExtError;
349
350
    // ---- Core Vulkan 1.0 commands
351
0
    table->GetDeviceProcAddr = gpa;
352
0
    table->DestroyDevice = (PFN_vkDestroyDevice)gpa(dev, "vkDestroyDevice");
353
0
    table->GetDeviceQueue = (PFN_vkGetDeviceQueue)gpa(dev, "vkGetDeviceQueue");
354
0
    table->QueueSubmit = (PFN_vkQueueSubmit)gpa(dev, "vkQueueSubmit");
355
0
    table->QueueWaitIdle = (PFN_vkQueueWaitIdle)gpa(dev, "vkQueueWaitIdle");
356
0
    table->DeviceWaitIdle = (PFN_vkDeviceWaitIdle)gpa(dev, "vkDeviceWaitIdle");
357
0
    table->AllocateMemory = (PFN_vkAllocateMemory)gpa(dev, "vkAllocateMemory");
358
0
    table->FreeMemory = (PFN_vkFreeMemory)gpa(dev, "vkFreeMemory");
359
0
    table->MapMemory = (PFN_vkMapMemory)gpa(dev, "vkMapMemory");
360
0
    table->UnmapMemory = (PFN_vkUnmapMemory)gpa(dev, "vkUnmapMemory");
361
0
    table->FlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)gpa(dev, "vkFlushMappedMemoryRanges");
362
0
    table->InvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)gpa(dev, "vkInvalidateMappedMemoryRanges");
363
0
    table->GetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)gpa(dev, "vkGetDeviceMemoryCommitment");
364
0
    table->BindBufferMemory = (PFN_vkBindBufferMemory)gpa(dev, "vkBindBufferMemory");
365
0
    table->BindImageMemory = (PFN_vkBindImageMemory)gpa(dev, "vkBindImageMemory");
366
0
    table->GetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)gpa(dev, "vkGetBufferMemoryRequirements");
367
0
    table->GetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)gpa(dev, "vkGetImageMemoryRequirements");
368
0
    table->GetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)gpa(dev, "vkGetImageSparseMemoryRequirements");
369
0
    table->QueueBindSparse = (PFN_vkQueueBindSparse)gpa(dev, "vkQueueBindSparse");
370
0
    table->CreateFence = (PFN_vkCreateFence)gpa(dev, "vkCreateFence");
371
0
    table->DestroyFence = (PFN_vkDestroyFence)gpa(dev, "vkDestroyFence");
372
0
    table->ResetFences = (PFN_vkResetFences)gpa(dev, "vkResetFences");
373
0
    table->GetFenceStatus = (PFN_vkGetFenceStatus)gpa(dev, "vkGetFenceStatus");
374
0
    table->WaitForFences = (PFN_vkWaitForFences)gpa(dev, "vkWaitForFences");
375
0
    table->CreateSemaphore = (PFN_vkCreateSemaphore)gpa(dev, "vkCreateSemaphore");
376
0
    table->DestroySemaphore = (PFN_vkDestroySemaphore)gpa(dev, "vkDestroySemaphore");
377
0
    table->CreateQueryPool = (PFN_vkCreateQueryPool)gpa(dev, "vkCreateQueryPool");
378
0
    table->DestroyQueryPool = (PFN_vkDestroyQueryPool)gpa(dev, "vkDestroyQueryPool");
379
0
    table->GetQueryPoolResults = (PFN_vkGetQueryPoolResults)gpa(dev, "vkGetQueryPoolResults");
380
0
    table->CreateBuffer = (PFN_vkCreateBuffer)gpa(dev, "vkCreateBuffer");
381
0
    table->DestroyBuffer = (PFN_vkDestroyBuffer)gpa(dev, "vkDestroyBuffer");
382
0
    table->CreateImage = (PFN_vkCreateImage)gpa(dev, "vkCreateImage");
383
0
    table->DestroyImage = (PFN_vkDestroyImage)gpa(dev, "vkDestroyImage");
384
0
    table->GetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)gpa(dev, "vkGetImageSubresourceLayout");
385
0
    table->CreateImageView = (PFN_vkCreateImageView)gpa(dev, "vkCreateImageView");
386
0
    table->DestroyImageView = (PFN_vkDestroyImageView)gpa(dev, "vkDestroyImageView");
387
0
    table->CreateCommandPool = (PFN_vkCreateCommandPool)gpa(dev, "vkCreateCommandPool");
388
0
    table->DestroyCommandPool = (PFN_vkDestroyCommandPool)gpa(dev, "vkDestroyCommandPool");
389
0
    table->ResetCommandPool = (PFN_vkResetCommandPool)gpa(dev, "vkResetCommandPool");
390
0
    table->AllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)gpa(dev, "vkAllocateCommandBuffers");
391
0
    table->FreeCommandBuffers = (PFN_vkFreeCommandBuffers)gpa(dev, "vkFreeCommandBuffers");
392
0
    table->BeginCommandBuffer = (PFN_vkBeginCommandBuffer)gpa(dev, "vkBeginCommandBuffer");
393
0
    table->EndCommandBuffer = (PFN_vkEndCommandBuffer)gpa(dev, "vkEndCommandBuffer");
394
0
    table->ResetCommandBuffer = (PFN_vkResetCommandBuffer)gpa(dev, "vkResetCommandBuffer");
395
0
    table->CmdCopyBuffer = (PFN_vkCmdCopyBuffer)gpa(dev, "vkCmdCopyBuffer");
396
0
    table->CmdCopyImage = (PFN_vkCmdCopyImage)gpa(dev, "vkCmdCopyImage");
397
0
    table->CmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)gpa(dev, "vkCmdCopyBufferToImage");
398
0
    table->CmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)gpa(dev, "vkCmdCopyImageToBuffer");
399
0
    table->CmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)gpa(dev, "vkCmdUpdateBuffer");
400
0
    table->CmdFillBuffer = (PFN_vkCmdFillBuffer)gpa(dev, "vkCmdFillBuffer");
401
0
    table->CmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)gpa(dev, "vkCmdPipelineBarrier");
402
0
    table->CmdBeginQuery = (PFN_vkCmdBeginQuery)gpa(dev, "vkCmdBeginQuery");
403
0
    table->CmdEndQuery = (PFN_vkCmdEndQuery)gpa(dev, "vkCmdEndQuery");
404
0
    table->CmdResetQueryPool = (PFN_vkCmdResetQueryPool)gpa(dev, "vkCmdResetQueryPool");
405
0
    table->CmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)gpa(dev, "vkCmdWriteTimestamp");
406
0
    table->CmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)gpa(dev, "vkCmdCopyQueryPoolResults");
407
0
    table->CmdExecuteCommands = (PFN_vkCmdExecuteCommands)gpa(dev, "vkCmdExecuteCommands");
408
0
    table->CreateEvent = (PFN_vkCreateEvent)gpa(dev, "vkCreateEvent");
409
0
    table->DestroyEvent = (PFN_vkDestroyEvent)gpa(dev, "vkDestroyEvent");
410
0
    table->GetEventStatus = (PFN_vkGetEventStatus)gpa(dev, "vkGetEventStatus");
411
0
    table->SetEvent = (PFN_vkSetEvent)gpa(dev, "vkSetEvent");
412
0
    table->ResetEvent = (PFN_vkResetEvent)gpa(dev, "vkResetEvent");
413
0
    table->CreateBufferView = (PFN_vkCreateBufferView)gpa(dev, "vkCreateBufferView");
414
0
    table->DestroyBufferView = (PFN_vkDestroyBufferView)gpa(dev, "vkDestroyBufferView");
415
0
    table->CreateShaderModule = (PFN_vkCreateShaderModule)gpa(dev, "vkCreateShaderModule");
416
0
    table->DestroyShaderModule = (PFN_vkDestroyShaderModule)gpa(dev, "vkDestroyShaderModule");
417
0
    table->CreatePipelineCache = (PFN_vkCreatePipelineCache)gpa(dev, "vkCreatePipelineCache");
418
0
    table->DestroyPipelineCache = (PFN_vkDestroyPipelineCache)gpa(dev, "vkDestroyPipelineCache");
419
0
    table->GetPipelineCacheData = (PFN_vkGetPipelineCacheData)gpa(dev, "vkGetPipelineCacheData");
420
0
    table->MergePipelineCaches = (PFN_vkMergePipelineCaches)gpa(dev, "vkMergePipelineCaches");
421
0
    table->CreateComputePipelines = (PFN_vkCreateComputePipelines)gpa(dev, "vkCreateComputePipelines");
422
0
    table->DestroyPipeline = (PFN_vkDestroyPipeline)gpa(dev, "vkDestroyPipeline");
423
0
    table->CreatePipelineLayout = (PFN_vkCreatePipelineLayout)gpa(dev, "vkCreatePipelineLayout");
424
0
    table->DestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)gpa(dev, "vkDestroyPipelineLayout");
425
0
    table->CreateSampler = (PFN_vkCreateSampler)gpa(dev, "vkCreateSampler");
426
0
    table->DestroySampler = (PFN_vkDestroySampler)gpa(dev, "vkDestroySampler");
427
0
    table->CreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)gpa(dev, "vkCreateDescriptorSetLayout");
428
0
    table->DestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)gpa(dev, "vkDestroyDescriptorSetLayout");
429
0
    table->CreateDescriptorPool = (PFN_vkCreateDescriptorPool)gpa(dev, "vkCreateDescriptorPool");
430
0
    table->DestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)gpa(dev, "vkDestroyDescriptorPool");
431
0
    table->ResetDescriptorPool = (PFN_vkResetDescriptorPool)gpa(dev, "vkResetDescriptorPool");
432
0
    table->AllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)gpa(dev, "vkAllocateDescriptorSets");
433
0
    table->FreeDescriptorSets = (PFN_vkFreeDescriptorSets)gpa(dev, "vkFreeDescriptorSets");
434
0
    table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)gpa(dev, "vkUpdateDescriptorSets");
435
0
    table->CmdBindPipeline = (PFN_vkCmdBindPipeline)gpa(dev, "vkCmdBindPipeline");
436
0
    table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)gpa(dev, "vkCmdBindDescriptorSets");
437
0
    table->CmdClearColorImage = (PFN_vkCmdClearColorImage)gpa(dev, "vkCmdClearColorImage");
438
0
    table->CmdDispatch = (PFN_vkCmdDispatch)gpa(dev, "vkCmdDispatch");
439
0
    table->CmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)gpa(dev, "vkCmdDispatchIndirect");
440
0
    table->CmdSetEvent = (PFN_vkCmdSetEvent)gpa(dev, "vkCmdSetEvent");
441
0
    table->CmdResetEvent = (PFN_vkCmdResetEvent)gpa(dev, "vkCmdResetEvent");
442
0
    table->CmdWaitEvents = (PFN_vkCmdWaitEvents)gpa(dev, "vkCmdWaitEvents");
443
0
    table->CmdPushConstants = (PFN_vkCmdPushConstants)gpa(dev, "vkCmdPushConstants");
444
0
    table->CreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)gpa(dev, "vkCreateGraphicsPipelines");
445
0
    table->CreateFramebuffer = (PFN_vkCreateFramebuffer)gpa(dev, "vkCreateFramebuffer");
446
0
    table->DestroyFramebuffer = (PFN_vkDestroyFramebuffer)gpa(dev, "vkDestroyFramebuffer");
447
0
    table->CreateRenderPass = (PFN_vkCreateRenderPass)gpa(dev, "vkCreateRenderPass");
448
0
    table->DestroyRenderPass = (PFN_vkDestroyRenderPass)gpa(dev, "vkDestroyRenderPass");
449
0
    table->GetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)gpa(dev, "vkGetRenderAreaGranularity");
450
0
    table->CmdSetViewport = (PFN_vkCmdSetViewport)gpa(dev, "vkCmdSetViewport");
451
0
    table->CmdSetScissor = (PFN_vkCmdSetScissor)gpa(dev, "vkCmdSetScissor");
452
0
    table->CmdSetLineWidth = (PFN_vkCmdSetLineWidth)gpa(dev, "vkCmdSetLineWidth");
453
0
    table->CmdSetDepthBias = (PFN_vkCmdSetDepthBias)gpa(dev, "vkCmdSetDepthBias");
454
0
    table->CmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)gpa(dev, "vkCmdSetBlendConstants");
455
0
    table->CmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)gpa(dev, "vkCmdSetDepthBounds");
456
0
    table->CmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)gpa(dev, "vkCmdSetStencilCompareMask");
457
0
    table->CmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)gpa(dev, "vkCmdSetStencilWriteMask");
458
0
    table->CmdSetStencilReference = (PFN_vkCmdSetStencilReference)gpa(dev, "vkCmdSetStencilReference");
459
0
    table->CmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)gpa(dev, "vkCmdBindIndexBuffer");
460
0
    table->CmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)gpa(dev, "vkCmdBindVertexBuffers");
461
0
    table->CmdDraw = (PFN_vkCmdDraw)gpa(dev, "vkCmdDraw");
462
0
    table->CmdDrawIndexed = (PFN_vkCmdDrawIndexed)gpa(dev, "vkCmdDrawIndexed");
463
0
    table->CmdDrawIndirect = (PFN_vkCmdDrawIndirect)gpa(dev, "vkCmdDrawIndirect");
464
0
    table->CmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)gpa(dev, "vkCmdDrawIndexedIndirect");
465
0
    table->CmdBlitImage = (PFN_vkCmdBlitImage)gpa(dev, "vkCmdBlitImage");
466
0
    table->CmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)gpa(dev, "vkCmdClearDepthStencilImage");
467
0
    table->CmdClearAttachments = (PFN_vkCmdClearAttachments)gpa(dev, "vkCmdClearAttachments");
468
0
    table->CmdResolveImage = (PFN_vkCmdResolveImage)gpa(dev, "vkCmdResolveImage");
469
0
    table->CmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)gpa(dev, "vkCmdBeginRenderPass");
470
0
    table->CmdNextSubpass = (PFN_vkCmdNextSubpass)gpa(dev, "vkCmdNextSubpass");
471
0
    table->CmdEndRenderPass = (PFN_vkCmdEndRenderPass)gpa(dev, "vkCmdEndRenderPass");
472
473
    // ---- Core Vulkan 1.1 commands
474
0
    table->BindBufferMemory2 = (PFN_vkBindBufferMemory2)gpa(dev, "vkBindBufferMemory2");
475
0
    table->BindImageMemory2 = (PFN_vkBindImageMemory2)gpa(dev, "vkBindImageMemory2");
476
0
    table->GetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)gpa(dev, "vkGetDeviceGroupPeerMemoryFeatures");
477
0
    table->CmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)gpa(dev, "vkCmdSetDeviceMask");
478
0
    table->GetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)gpa(dev, "vkGetImageMemoryRequirements2");
479
0
    table->GetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)gpa(dev, "vkGetBufferMemoryRequirements2");
480
0
    table->GetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)gpa(dev, "vkGetImageSparseMemoryRequirements2");
481
0
    table->TrimCommandPool = (PFN_vkTrimCommandPool)gpa(dev, "vkTrimCommandPool");
482
0
    table->GetDeviceQueue2 = (PFN_vkGetDeviceQueue2)gpa(dev, "vkGetDeviceQueue2");
483
0
    table->CmdDispatchBase = (PFN_vkCmdDispatchBase)gpa(dev, "vkCmdDispatchBase");
484
0
    table->CreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)gpa(dev, "vkCreateDescriptorUpdateTemplate");
485
0
    table->DestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)gpa(dev, "vkDestroyDescriptorUpdateTemplate");
486
0
    table->UpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)gpa(dev, "vkUpdateDescriptorSetWithTemplate");
487
0
    table->GetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)gpa(dev, "vkGetDescriptorSetLayoutSupport");
488
0
    table->CreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)gpa(dev, "vkCreateSamplerYcbcrConversion");
489
0
    table->DestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)gpa(dev, "vkDestroySamplerYcbcrConversion");
490
491
    // ---- Core Vulkan 1.2 commands
492
0
    table->ResetQueryPool = (PFN_vkResetQueryPool)gpa(dev, "vkResetQueryPool");
493
0
    table->GetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)gpa(dev, "vkGetSemaphoreCounterValue");
494
0
    table->WaitSemaphores = (PFN_vkWaitSemaphores)gpa(dev, "vkWaitSemaphores");
495
0
    table->SignalSemaphore = (PFN_vkSignalSemaphore)gpa(dev, "vkSignalSemaphore");
496
0
    table->GetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)gpa(dev, "vkGetBufferDeviceAddress");
497
0
    table->GetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)gpa(dev, "vkGetBufferOpaqueCaptureAddress");
498
0
    table->GetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)gpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddress");
499
0
    table->CmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)gpa(dev, "vkCmdDrawIndirectCount");
500
0
    table->CmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)gpa(dev, "vkCmdDrawIndexedIndirectCount");
501
0
    table->CreateRenderPass2 = (PFN_vkCreateRenderPass2)gpa(dev, "vkCreateRenderPass2");
502
0
    table->CmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)gpa(dev, "vkCmdBeginRenderPass2");
503
0
    table->CmdNextSubpass2 = (PFN_vkCmdNextSubpass2)gpa(dev, "vkCmdNextSubpass2");
504
0
    table->CmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)gpa(dev, "vkCmdEndRenderPass2");
505
506
    // ---- Core Vulkan 1.3 commands
507
0
    table->CreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)gpa(dev, "vkCreatePrivateDataSlot");
508
0
    table->DestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)gpa(dev, "vkDestroyPrivateDataSlot");
509
0
    table->SetPrivateData = (PFN_vkSetPrivateData)gpa(dev, "vkSetPrivateData");
510
0
    table->GetPrivateData = (PFN_vkGetPrivateData)gpa(dev, "vkGetPrivateData");
511
0
    table->CmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)gpa(dev, "vkCmdPipelineBarrier2");
512
0
    table->CmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)gpa(dev, "vkCmdWriteTimestamp2");
513
0
    table->QueueSubmit2 = (PFN_vkQueueSubmit2)gpa(dev, "vkQueueSubmit2");
514
0
    table->CmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)gpa(dev, "vkCmdCopyBuffer2");
515
0
    table->CmdCopyImage2 = (PFN_vkCmdCopyImage2)gpa(dev, "vkCmdCopyImage2");
516
0
    table->CmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)gpa(dev, "vkCmdCopyBufferToImage2");
517
0
    table->CmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)gpa(dev, "vkCmdCopyImageToBuffer2");
518
0
    table->GetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)gpa(dev, "vkGetDeviceBufferMemoryRequirements");
519
0
    table->GetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)gpa(dev, "vkGetDeviceImageMemoryRequirements");
520
0
    table->GetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)gpa(dev, "vkGetDeviceImageSparseMemoryRequirements");
521
0
    table->CmdSetEvent2 = (PFN_vkCmdSetEvent2)gpa(dev, "vkCmdSetEvent2");
522
0
    table->CmdResetEvent2 = (PFN_vkCmdResetEvent2)gpa(dev, "vkCmdResetEvent2");
523
0
    table->CmdWaitEvents2 = (PFN_vkCmdWaitEvents2)gpa(dev, "vkCmdWaitEvents2");
524
0
    table->CmdBlitImage2 = (PFN_vkCmdBlitImage2)gpa(dev, "vkCmdBlitImage2");
525
0
    table->CmdResolveImage2 = (PFN_vkCmdResolveImage2)gpa(dev, "vkCmdResolveImage2");
526
0
    table->CmdBeginRendering = (PFN_vkCmdBeginRendering)gpa(dev, "vkCmdBeginRendering");
527
0
    table->CmdEndRendering = (PFN_vkCmdEndRendering)gpa(dev, "vkCmdEndRendering");
528
0
    table->CmdSetCullMode = (PFN_vkCmdSetCullMode)gpa(dev, "vkCmdSetCullMode");
529
0
    table->CmdSetFrontFace = (PFN_vkCmdSetFrontFace)gpa(dev, "vkCmdSetFrontFace");
530
0
    table->CmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)gpa(dev, "vkCmdSetPrimitiveTopology");
531
0
    table->CmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)gpa(dev, "vkCmdSetViewportWithCount");
532
0
    table->CmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)gpa(dev, "vkCmdSetScissorWithCount");
533
0
    table->CmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)gpa(dev, "vkCmdBindVertexBuffers2");
534
0
    table->CmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)gpa(dev, "vkCmdSetDepthTestEnable");
535
0
    table->CmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)gpa(dev, "vkCmdSetDepthWriteEnable");
536
0
    table->CmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)gpa(dev, "vkCmdSetDepthCompareOp");
537
0
    table->CmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)gpa(dev, "vkCmdSetDepthBoundsTestEnable");
538
0
    table->CmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)gpa(dev, "vkCmdSetStencilTestEnable");
539
0
    table->CmdSetStencilOp = (PFN_vkCmdSetStencilOp)gpa(dev, "vkCmdSetStencilOp");
540
0
    table->CmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)gpa(dev, "vkCmdSetRasterizerDiscardEnable");
541
0
    table->CmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)gpa(dev, "vkCmdSetDepthBiasEnable");
542
0
    table->CmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)gpa(dev, "vkCmdSetPrimitiveRestartEnable");
543
544
    // ---- Core Vulkan 1.4 commands
545
0
    table->MapMemory2 = (PFN_vkMapMemory2)gpa(dev, "vkMapMemory2");
546
0
    table->UnmapMemory2 = (PFN_vkUnmapMemory2)gpa(dev, "vkUnmapMemory2");
547
0
    table->GetDeviceImageSubresourceLayout = (PFN_vkGetDeviceImageSubresourceLayout)gpa(dev, "vkGetDeviceImageSubresourceLayout");
548
0
    table->GetImageSubresourceLayout2 = (PFN_vkGetImageSubresourceLayout2)gpa(dev, "vkGetImageSubresourceLayout2");
549
0
    table->CopyMemoryToImage = (PFN_vkCopyMemoryToImage)gpa(dev, "vkCopyMemoryToImage");
550
0
    table->CopyImageToMemory = (PFN_vkCopyImageToMemory)gpa(dev, "vkCopyImageToMemory");
551
0
    table->CopyImageToImage = (PFN_vkCopyImageToImage)gpa(dev, "vkCopyImageToImage");
552
0
    table->TransitionImageLayout = (PFN_vkTransitionImageLayout)gpa(dev, "vkTransitionImageLayout");
553
0
    table->CmdPushDescriptorSet = (PFN_vkCmdPushDescriptorSet)gpa(dev, "vkCmdPushDescriptorSet");
554
0
    table->CmdPushDescriptorSetWithTemplate = (PFN_vkCmdPushDescriptorSetWithTemplate)gpa(dev, "vkCmdPushDescriptorSetWithTemplate");
555
0
    table->CmdBindDescriptorSets2 = (PFN_vkCmdBindDescriptorSets2)gpa(dev, "vkCmdBindDescriptorSets2");
556
0
    table->CmdPushConstants2 = (PFN_vkCmdPushConstants2)gpa(dev, "vkCmdPushConstants2");
557
0
    table->CmdPushDescriptorSet2 = (PFN_vkCmdPushDescriptorSet2)gpa(dev, "vkCmdPushDescriptorSet2");
558
0
    table->CmdPushDescriptorSetWithTemplate2 = (PFN_vkCmdPushDescriptorSetWithTemplate2)gpa(dev, "vkCmdPushDescriptorSetWithTemplate2");
559
0
    table->CmdSetLineStipple = (PFN_vkCmdSetLineStipple)gpa(dev, "vkCmdSetLineStipple");
560
0
    table->CmdBindIndexBuffer2 = (PFN_vkCmdBindIndexBuffer2)gpa(dev, "vkCmdBindIndexBuffer2");
561
0
    table->GetRenderingAreaGranularity = (PFN_vkGetRenderingAreaGranularity)gpa(dev, "vkGetRenderingAreaGranularity");
562
0
    table->CmdSetRenderingAttachmentLocations = (PFN_vkCmdSetRenderingAttachmentLocations)gpa(dev, "vkCmdSetRenderingAttachmentLocations");
563
0
    table->CmdSetRenderingInputAttachmentIndices = (PFN_vkCmdSetRenderingInputAttachmentIndices)gpa(dev, "vkCmdSetRenderingInputAttachmentIndices");
564
0
}
565
566
// Init Device function pointer dispatch table with extension commands
567
VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table *dev_table,
568
                                                                       PFN_vkGetInstanceProcAddr gipa,
569
                                                                       PFN_vkGetDeviceProcAddr gdpa,
570
                                                                       VkInstance inst,
571
0
                                                                       VkDevice dev) {
572
0
    VkLayerDispatchTable *table = &dev_table->core_dispatch;
573
0
    table->magic = DEVICE_DISP_TABLE_MAGIC_NUMBER;
574
575
    // ---- VK_KHR_swapchain extension commands
576
0
    table->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gdpa(dev, "vkCreateSwapchainKHR");
577
0
    table->DestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)gdpa(dev, "vkDestroySwapchainKHR");
578
0
    table->GetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)gdpa(dev, "vkGetSwapchainImagesKHR");
579
0
    table->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)gdpa(dev, "vkAcquireNextImageKHR");
580
0
    table->QueuePresentKHR = (PFN_vkQueuePresentKHR)gdpa(dev, "vkQueuePresentKHR");
581
0
    table->GetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)gdpa(dev, "vkGetDeviceGroupPresentCapabilitiesKHR");
582
0
    table->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gdpa(dev, "vkGetDeviceGroupSurfacePresentModesKHR");
583
0
    table->AcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)gdpa(dev, "vkAcquireNextImage2KHR");
584
585
    // ---- VK_KHR_display_swapchain extension commands
586
0
    table->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gdpa(dev, "vkCreateSharedSwapchainsKHR");
587
588
    // ---- VK_KHR_video_queue extension commands
589
0
    table->CreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)gdpa(dev, "vkCreateVideoSessionKHR");
590
0
    table->DestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)gdpa(dev, "vkDestroyVideoSessionKHR");
591
0
    table->GetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)gdpa(dev, "vkGetVideoSessionMemoryRequirementsKHR");
592
0
    table->BindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)gdpa(dev, "vkBindVideoSessionMemoryKHR");
593
0
    table->CreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)gdpa(dev, "vkCreateVideoSessionParametersKHR");
594
0
    table->UpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)gdpa(dev, "vkUpdateVideoSessionParametersKHR");
595
0
    table->DestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)gdpa(dev, "vkDestroyVideoSessionParametersKHR");
596
0
    table->CmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)gdpa(dev, "vkCmdBeginVideoCodingKHR");
597
0
    table->CmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)gdpa(dev, "vkCmdEndVideoCodingKHR");
598
0
    table->CmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)gdpa(dev, "vkCmdControlVideoCodingKHR");
599
600
    // ---- VK_KHR_video_decode_queue extension commands
601
0
    table->CmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)gdpa(dev, "vkCmdDecodeVideoKHR");
602
603
    // ---- VK_KHR_dynamic_rendering extension commands
604
0
    table->CmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)gdpa(dev, "vkCmdBeginRenderingKHR");
605
0
    table->CmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)gdpa(dev, "vkCmdEndRenderingKHR");
606
607
    // ---- VK_KHR_device_group extension commands
608
0
    table->GetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)gdpa(dev, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
609
0
    table->CmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)gdpa(dev, "vkCmdSetDeviceMaskKHR");
610
0
    table->CmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)gdpa(dev, "vkCmdDispatchBaseKHR");
611
612
    // ---- VK_KHR_maintenance1 extension commands
613
0
    table->TrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)gdpa(dev, "vkTrimCommandPoolKHR");
614
615
    // ---- VK_KHR_external_memory_win32 extension commands
616
#if defined(VK_USE_PLATFORM_WIN32_KHR)
617
    table->GetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)gdpa(dev, "vkGetMemoryWin32HandleKHR");
618
#endif // VK_USE_PLATFORM_WIN32_KHR
619
#if defined(VK_USE_PLATFORM_WIN32_KHR)
620
    table->GetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)gdpa(dev, "vkGetMemoryWin32HandlePropertiesKHR");
621
#endif // VK_USE_PLATFORM_WIN32_KHR
622
623
    // ---- VK_KHR_external_memory_fd extension commands
624
0
    table->GetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)gdpa(dev, "vkGetMemoryFdKHR");
625
0
    table->GetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)gdpa(dev, "vkGetMemoryFdPropertiesKHR");
626
627
    // ---- VK_KHR_external_semaphore_win32 extension commands
628
#if defined(VK_USE_PLATFORM_WIN32_KHR)
629
    table->ImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)gdpa(dev, "vkImportSemaphoreWin32HandleKHR");
630
#endif // VK_USE_PLATFORM_WIN32_KHR
631
#if defined(VK_USE_PLATFORM_WIN32_KHR)
632
    table->GetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)gdpa(dev, "vkGetSemaphoreWin32HandleKHR");
633
#endif // VK_USE_PLATFORM_WIN32_KHR
634
635
    // ---- VK_KHR_external_semaphore_fd extension commands
636
0
    table->ImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)gdpa(dev, "vkImportSemaphoreFdKHR");
637
0
    table->GetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)gdpa(dev, "vkGetSemaphoreFdKHR");
638
639
    // ---- VK_KHR_push_descriptor extension commands
640
0
    table->CmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)gdpa(dev, "vkCmdPushDescriptorSetKHR");
641
0
    table->CmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplateKHR");
642
643
    // ---- VK_KHR_descriptor_update_template extension commands
644
0
    table->CreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)gdpa(dev, "vkCreateDescriptorUpdateTemplateKHR");
645
0
    table->DestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)gdpa(dev, "vkDestroyDescriptorUpdateTemplateKHR");
646
0
    table->UpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)gdpa(dev, "vkUpdateDescriptorSetWithTemplateKHR");
647
648
    // ---- VK_KHR_create_renderpass2 extension commands
649
0
    table->CreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)gdpa(dev, "vkCreateRenderPass2KHR");
650
0
    table->CmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)gdpa(dev, "vkCmdBeginRenderPass2KHR");
651
0
    table->CmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)gdpa(dev, "vkCmdNextSubpass2KHR");
652
0
    table->CmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)gdpa(dev, "vkCmdEndRenderPass2KHR");
653
654
    // ---- VK_KHR_shared_presentable_image extension commands
655
0
    table->GetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)gdpa(dev, "vkGetSwapchainStatusKHR");
656
657
    // ---- VK_KHR_external_fence_win32 extension commands
658
#if defined(VK_USE_PLATFORM_WIN32_KHR)
659
    table->ImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)gdpa(dev, "vkImportFenceWin32HandleKHR");
660
#endif // VK_USE_PLATFORM_WIN32_KHR
661
#if defined(VK_USE_PLATFORM_WIN32_KHR)
662
    table->GetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)gdpa(dev, "vkGetFenceWin32HandleKHR");
663
#endif // VK_USE_PLATFORM_WIN32_KHR
664
665
    // ---- VK_KHR_external_fence_fd extension commands
666
0
    table->ImportFenceFdKHR = (PFN_vkImportFenceFdKHR)gdpa(dev, "vkImportFenceFdKHR");
667
0
    table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR)gdpa(dev, "vkGetFenceFdKHR");
668
669
    // ---- VK_KHR_performance_query extension commands
670
0
    table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)gdpa(dev, "vkAcquireProfilingLockKHR");
671
0
    table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)gdpa(dev, "vkReleaseProfilingLockKHR");
672
673
    // ---- VK_KHR_get_memory_requirements2 extension commands
674
0
    table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)gdpa(dev, "vkGetImageMemoryRequirements2KHR");
675
0
    table->GetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)gdpa(dev, "vkGetBufferMemoryRequirements2KHR");
676
0
    table->GetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)gdpa(dev, "vkGetImageSparseMemoryRequirements2KHR");
677
678
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
679
0
    table->CreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)gdpa(dev, "vkCreateSamplerYcbcrConversionKHR");
680
0
    table->DestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)gdpa(dev, "vkDestroySamplerYcbcrConversionKHR");
681
682
    // ---- VK_KHR_bind_memory2 extension commands
683
0
    table->BindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)gdpa(dev, "vkBindBufferMemory2KHR");
684
0
    table->BindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)gdpa(dev, "vkBindImageMemory2KHR");
685
686
    // ---- VK_KHR_maintenance3 extension commands
687
0
    table->GetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)gdpa(dev, "vkGetDescriptorSetLayoutSupportKHR");
688
689
    // ---- VK_KHR_draw_indirect_count extension commands
690
0
    table->CmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)gdpa(dev, "vkCmdDrawIndirectCountKHR");
691
0
    table->CmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)gdpa(dev, "vkCmdDrawIndexedIndirectCountKHR");
692
693
    // ---- VK_KHR_timeline_semaphore extension commands
694
0
    table->GetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)gdpa(dev, "vkGetSemaphoreCounterValueKHR");
695
0
    table->WaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)gdpa(dev, "vkWaitSemaphoresKHR");
696
0
    table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)gdpa(dev, "vkSignalSemaphoreKHR");
697
698
    // ---- VK_KHR_fragment_shading_rate extension commands
699
0
    table->CmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)gdpa(dev, "vkCmdSetFragmentShadingRateKHR");
700
701
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
702
0
    table->CmdSetRenderingAttachmentLocationsKHR = (PFN_vkCmdSetRenderingAttachmentLocationsKHR)gdpa(dev, "vkCmdSetRenderingAttachmentLocationsKHR");
703
0
    table->CmdSetRenderingInputAttachmentIndicesKHR = (PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)gdpa(dev, "vkCmdSetRenderingInputAttachmentIndicesKHR");
704
705
    // ---- VK_KHR_present_wait extension commands
706
0
    table->WaitForPresentKHR = (PFN_vkWaitForPresentKHR)gdpa(dev, "vkWaitForPresentKHR");
707
708
    // ---- VK_KHR_buffer_device_address extension commands
709
0
    table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)gdpa(dev, "vkGetBufferDeviceAddressKHR");
710
0
    table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)gdpa(dev, "vkGetBufferOpaqueCaptureAddressKHR");
711
0
    table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)gdpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
712
713
    // ---- VK_KHR_deferred_host_operations extension commands
714
0
    table->CreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)gdpa(dev, "vkCreateDeferredOperationKHR");
715
0
    table->DestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)gdpa(dev, "vkDestroyDeferredOperationKHR");
716
0
    table->GetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)gdpa(dev, "vkGetDeferredOperationMaxConcurrencyKHR");
717
0
    table->GetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)gdpa(dev, "vkGetDeferredOperationResultKHR");
718
0
    table->DeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)gdpa(dev, "vkDeferredOperationJoinKHR");
719
720
    // ---- VK_KHR_pipeline_executable_properties extension commands
721
0
    table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)gdpa(dev, "vkGetPipelineExecutablePropertiesKHR");
722
0
    table->GetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)gdpa(dev, "vkGetPipelineExecutableStatisticsKHR");
723
0
    table->GetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)gdpa(dev, "vkGetPipelineExecutableInternalRepresentationsKHR");
724
725
    // ---- VK_KHR_map_memory2 extension commands
726
0
    table->MapMemory2KHR = (PFN_vkMapMemory2KHR)gdpa(dev, "vkMapMemory2KHR");
727
0
    table->UnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)gdpa(dev, "vkUnmapMemory2KHR");
728
729
    // ---- VK_KHR_video_encode_queue extension commands
730
0
    table->GetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)gdpa(dev, "vkGetEncodedVideoSessionParametersKHR");
731
0
    table->CmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)gdpa(dev, "vkCmdEncodeVideoKHR");
732
733
    // ---- VK_KHR_synchronization2 extension commands
734
0
    table->CmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)gdpa(dev, "vkCmdSetEvent2KHR");
735
0
    table->CmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)gdpa(dev, "vkCmdResetEvent2KHR");
736
0
    table->CmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)gdpa(dev, "vkCmdWaitEvents2KHR");
737
0
    table->CmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)gdpa(dev, "vkCmdPipelineBarrier2KHR");
738
0
    table->CmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)gdpa(dev, "vkCmdWriteTimestamp2KHR");
739
0
    table->QueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)gdpa(dev, "vkQueueSubmit2KHR");
740
741
    // ---- VK_KHR_copy_commands2 extension commands
742
0
    table->CmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)gdpa(dev, "vkCmdCopyBuffer2KHR");
743
0
    table->CmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)gdpa(dev, "vkCmdCopyImage2KHR");
744
0
    table->CmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)gdpa(dev, "vkCmdCopyBufferToImage2KHR");
745
0
    table->CmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)gdpa(dev, "vkCmdCopyImageToBuffer2KHR");
746
0
    table->CmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)gdpa(dev, "vkCmdBlitImage2KHR");
747
0
    table->CmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)gdpa(dev, "vkCmdResolveImage2KHR");
748
749
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
750
0
    table->CmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)gdpa(dev, "vkCmdTraceRaysIndirect2KHR");
751
752
    // ---- VK_KHR_maintenance4 extension commands
753
0
    table->GetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceBufferMemoryRequirementsKHR");
754
0
    table->GetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageMemoryRequirementsKHR");
755
0
    table->GetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageSparseMemoryRequirementsKHR");
756
757
    // ---- VK_KHR_maintenance5 extension commands
758
0
    table->CmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)gdpa(dev, "vkCmdBindIndexBuffer2KHR");
759
0
    table->GetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)gdpa(dev, "vkGetRenderingAreaGranularityKHR");
760
0
    table->GetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)gdpa(dev, "vkGetDeviceImageSubresourceLayoutKHR");
761
0
    table->GetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)gdpa(dev, "vkGetImageSubresourceLayout2KHR");
762
763
    // ---- VK_KHR_present_wait2 extension commands
764
0
    table->WaitForPresent2KHR = (PFN_vkWaitForPresent2KHR)gdpa(dev, "vkWaitForPresent2KHR");
765
766
    // ---- VK_KHR_pipeline_binary extension commands
767
0
    table->CreatePipelineBinariesKHR = (PFN_vkCreatePipelineBinariesKHR)gdpa(dev, "vkCreatePipelineBinariesKHR");
768
0
    table->DestroyPipelineBinaryKHR = (PFN_vkDestroyPipelineBinaryKHR)gdpa(dev, "vkDestroyPipelineBinaryKHR");
769
0
    table->GetPipelineKeyKHR = (PFN_vkGetPipelineKeyKHR)gdpa(dev, "vkGetPipelineKeyKHR");
770
0
    table->GetPipelineBinaryDataKHR = (PFN_vkGetPipelineBinaryDataKHR)gdpa(dev, "vkGetPipelineBinaryDataKHR");
771
0
    table->ReleaseCapturedPipelineDataKHR = (PFN_vkReleaseCapturedPipelineDataKHR)gdpa(dev, "vkReleaseCapturedPipelineDataKHR");
772
773
    // ---- VK_KHR_swapchain_maintenance1 extension commands
774
0
    table->ReleaseSwapchainImagesKHR = (PFN_vkReleaseSwapchainImagesKHR)gdpa(dev, "vkReleaseSwapchainImagesKHR");
775
776
    // ---- VK_KHR_line_rasterization extension commands
777
0
    table->CmdSetLineStippleKHR = (PFN_vkCmdSetLineStippleKHR)gdpa(dev, "vkCmdSetLineStippleKHR");
778
779
    // ---- VK_KHR_calibrated_timestamps extension commands
780
0
    table->GetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)gdpa(dev, "vkGetCalibratedTimestampsKHR");
781
782
    // ---- VK_KHR_maintenance6 extension commands
783
0
    table->CmdBindDescriptorSets2KHR = (PFN_vkCmdBindDescriptorSets2KHR)gdpa(dev, "vkCmdBindDescriptorSets2KHR");
784
0
    table->CmdPushConstants2KHR = (PFN_vkCmdPushConstants2KHR)gdpa(dev, "vkCmdPushConstants2KHR");
785
0
    table->CmdPushDescriptorSet2KHR = (PFN_vkCmdPushDescriptorSet2KHR)gdpa(dev, "vkCmdPushDescriptorSet2KHR");
786
0
    table->CmdPushDescriptorSetWithTemplate2KHR = (PFN_vkCmdPushDescriptorSetWithTemplate2KHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplate2KHR");
787
0
    table->CmdSetDescriptorBufferOffsets2EXT = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsets2EXT");
788
0
    table->CmdBindDescriptorBufferEmbeddedSamplers2EXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT");
789
790
    // ---- VK_KHR_copy_memory_indirect extension commands
791
0
    table->CmdCopyMemoryIndirectKHR = (PFN_vkCmdCopyMemoryIndirectKHR)gdpa(dev, "vkCmdCopyMemoryIndirectKHR");
792
0
    table->CmdCopyMemoryToImageIndirectKHR = (PFN_vkCmdCopyMemoryToImageIndirectKHR)gdpa(dev, "vkCmdCopyMemoryToImageIndirectKHR");
793
794
    // ---- VK_KHR_maintenance10 extension commands
795
0
    table->CmdEndRendering2KHR = (PFN_vkCmdEndRendering2KHR)gdpa(dev, "vkCmdEndRendering2KHR");
796
797
    // ---- VK_EXT_debug_marker extension commands
798
0
    table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gdpa(dev, "vkDebugMarkerSetObjectTagEXT");
799
0
    table->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gdpa(dev, "vkDebugMarkerSetObjectNameEXT");
800
0
    table->CmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)gdpa(dev, "vkCmdDebugMarkerBeginEXT");
801
0
    table->CmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)gdpa(dev, "vkCmdDebugMarkerEndEXT");
802
0
    table->CmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)gdpa(dev, "vkCmdDebugMarkerInsertEXT");
803
804
    // ---- VK_EXT_transform_feedback extension commands
805
0
    table->CmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)gdpa(dev, "vkCmdBindTransformFeedbackBuffersEXT");
806
0
    table->CmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)gdpa(dev, "vkCmdBeginTransformFeedbackEXT");
807
0
    table->CmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)gdpa(dev, "vkCmdEndTransformFeedbackEXT");
808
0
    table->CmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)gdpa(dev, "vkCmdBeginQueryIndexedEXT");
809
0
    table->CmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)gdpa(dev, "vkCmdEndQueryIndexedEXT");
810
0
    table->CmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)gdpa(dev, "vkCmdDrawIndirectByteCountEXT");
811
812
    // ---- VK_NVX_binary_import extension commands
813
0
    table->CreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)gdpa(dev, "vkCreateCuModuleNVX");
814
0
    table->CreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)gdpa(dev, "vkCreateCuFunctionNVX");
815
0
    table->DestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)gdpa(dev, "vkDestroyCuModuleNVX");
816
0
    table->DestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)gdpa(dev, "vkDestroyCuFunctionNVX");
817
0
    table->CmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)gdpa(dev, "vkCmdCuLaunchKernelNVX");
818
819
    // ---- VK_NVX_image_view_handle extension commands
820
0
    table->GetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)gdpa(dev, "vkGetImageViewHandleNVX");
821
0
    table->GetImageViewHandle64NVX = (PFN_vkGetImageViewHandle64NVX)gdpa(dev, "vkGetImageViewHandle64NVX");
822
0
    table->GetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)gdpa(dev, "vkGetImageViewAddressNVX");
823
824
    // ---- VK_AMD_draw_indirect_count extension commands
825
0
    table->CmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)gdpa(dev, "vkCmdDrawIndirectCountAMD");
826
0
    table->CmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)gdpa(dev, "vkCmdDrawIndexedIndirectCountAMD");
827
828
    // ---- VK_AMD_shader_info extension commands
829
0
    table->GetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)gdpa(dev, "vkGetShaderInfoAMD");
830
831
    // ---- VK_NV_external_memory_win32 extension commands
832
#if defined(VK_USE_PLATFORM_WIN32_KHR)
833
    table->GetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)gdpa(dev, "vkGetMemoryWin32HandleNV");
834
#endif // VK_USE_PLATFORM_WIN32_KHR
835
836
    // ---- VK_EXT_conditional_rendering extension commands
837
0
    table->CmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)gdpa(dev, "vkCmdBeginConditionalRenderingEXT");
838
0
    table->CmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)gdpa(dev, "vkCmdEndConditionalRenderingEXT");
839
840
    // ---- VK_NV_clip_space_w_scaling extension commands
841
0
    table->CmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)gdpa(dev, "vkCmdSetViewportWScalingNV");
842
843
    // ---- VK_EXT_display_control extension commands
844
0
    table->DisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)gdpa(dev, "vkDisplayPowerControlEXT");
845
0
    table->RegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)gdpa(dev, "vkRegisterDeviceEventEXT");
846
0
    table->RegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)gdpa(dev, "vkRegisterDisplayEventEXT");
847
0
    table->GetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)gdpa(dev, "vkGetSwapchainCounterEXT");
848
849
    // ---- VK_GOOGLE_display_timing extension commands
850
0
    table->GetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)gdpa(dev, "vkGetRefreshCycleDurationGOOGLE");
851
0
    table->GetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)gdpa(dev, "vkGetPastPresentationTimingGOOGLE");
852
853
    // ---- VK_EXT_discard_rectangles extension commands
854
0
    table->CmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)gdpa(dev, "vkCmdSetDiscardRectangleEXT");
855
0
    table->CmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)gdpa(dev, "vkCmdSetDiscardRectangleEnableEXT");
856
0
    table->CmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)gdpa(dev, "vkCmdSetDiscardRectangleModeEXT");
857
858
    // ---- VK_EXT_hdr_metadata extension commands
859
0
    table->SetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)gdpa(dev, "vkSetHdrMetadataEXT");
860
861
    // ---- VK_EXT_debug_utils extension commands
862
0
    table->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gipa(inst, "vkSetDebugUtilsObjectNameEXT");
863
0
    table->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gipa(inst, "vkSetDebugUtilsObjectTagEXT");
864
0
    table->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gipa(inst, "vkQueueBeginDebugUtilsLabelEXT");
865
0
    table->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gipa(inst, "vkQueueEndDebugUtilsLabelEXT");
866
0
    table->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gipa(inst, "vkQueueInsertDebugUtilsLabelEXT");
867
0
    table->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gipa(inst, "vkCmdBeginDebugUtilsLabelEXT");
868
0
    table->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gipa(inst, "vkCmdEndDebugUtilsLabelEXT");
869
0
    table->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gipa(inst, "vkCmdInsertDebugUtilsLabelEXT");
870
871
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
872
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
873
    table->GetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)gdpa(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
874
#endif // VK_USE_PLATFORM_ANDROID_KHR
875
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
876
    table->GetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)gdpa(dev, "vkGetMemoryAndroidHardwareBufferANDROID");
877
#endif // VK_USE_PLATFORM_ANDROID_KHR
878
879
    // ---- VK_AMDX_shader_enqueue extension commands
880
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
881
0
    table->CreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)gdpa(dev, "vkCreateExecutionGraphPipelinesAMDX");
882
0
#endif // VK_ENABLE_BETA_EXTENSIONS
883
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
884
0
    table->GetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)gdpa(dev, "vkGetExecutionGraphPipelineScratchSizeAMDX");
885
0
#endif // VK_ENABLE_BETA_EXTENSIONS
886
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
887
0
    table->GetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)gdpa(dev, "vkGetExecutionGraphPipelineNodeIndexAMDX");
888
0
#endif // VK_ENABLE_BETA_EXTENSIONS
889
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
890
0
    table->CmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)gdpa(dev, "vkCmdInitializeGraphScratchMemoryAMDX");
891
0
#endif // VK_ENABLE_BETA_EXTENSIONS
892
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
893
0
    table->CmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)gdpa(dev, "vkCmdDispatchGraphAMDX");
894
0
#endif // VK_ENABLE_BETA_EXTENSIONS
895
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
896
0
    table->CmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectAMDX");
897
0
#endif // VK_ENABLE_BETA_EXTENSIONS
898
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
899
0
    table->CmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectCountAMDX");
900
0
#endif // VK_ENABLE_BETA_EXTENSIONS
901
902
    // ---- VK_EXT_sample_locations extension commands
903
0
    table->CmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)gdpa(dev, "vkCmdSetSampleLocationsEXT");
904
905
    // ---- VK_EXT_image_drm_format_modifier extension commands
906
0
    table->GetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)gdpa(dev, "vkGetImageDrmFormatModifierPropertiesEXT");
907
908
    // ---- VK_EXT_validation_cache extension commands
909
0
    table->CreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)gdpa(dev, "vkCreateValidationCacheEXT");
910
0
    table->DestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)gdpa(dev, "vkDestroyValidationCacheEXT");
911
0
    table->MergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)gdpa(dev, "vkMergeValidationCachesEXT");
912
0
    table->GetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)gdpa(dev, "vkGetValidationCacheDataEXT");
913
914
    // ---- VK_NV_shading_rate_image extension commands
915
0
    table->CmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)gdpa(dev, "vkCmdBindShadingRateImageNV");
916
0
    table->CmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)gdpa(dev, "vkCmdSetViewportShadingRatePaletteNV");
917
0
    table->CmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)gdpa(dev, "vkCmdSetCoarseSampleOrderNV");
918
919
    // ---- VK_NV_ray_tracing extension commands
920
0
    table->CreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)gdpa(dev, "vkCreateAccelerationStructureNV");
921
0
    table->DestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)gdpa(dev, "vkDestroyAccelerationStructureNV");
922
0
    table->GetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)gdpa(dev, "vkGetAccelerationStructureMemoryRequirementsNV");
923
0
    table->BindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)gdpa(dev, "vkBindAccelerationStructureMemoryNV");
924
0
    table->CmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)gdpa(dev, "vkCmdBuildAccelerationStructureNV");
925
0
    table->CmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)gdpa(dev, "vkCmdCopyAccelerationStructureNV");
926
0
    table->CmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)gdpa(dev, "vkCmdTraceRaysNV");
927
0
    table->CreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)gdpa(dev, "vkCreateRayTracingPipelinesNV");
928
929
    // ---- VK_KHR_ray_tracing_pipeline extension commands
930
0
    table->GetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingShaderGroupHandlesKHR");
931
932
    // ---- VK_NV_ray_tracing extension commands
933
0
    table->GetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)gdpa(dev, "vkGetRayTracingShaderGroupHandlesNV");
934
0
    table->GetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)gdpa(dev, "vkGetAccelerationStructureHandleNV");
935
0
    table->CmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesNV");
936
0
    table->CompileDeferredNV = (PFN_vkCompileDeferredNV)gdpa(dev, "vkCompileDeferredNV");
937
938
    // ---- VK_EXT_external_memory_host extension commands
939
0
    table->GetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)gdpa(dev, "vkGetMemoryHostPointerPropertiesEXT");
940
941
    // ---- VK_AMD_buffer_marker extension commands
942
0
    table->CmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)gdpa(dev, "vkCmdWriteBufferMarkerAMD");
943
0
    table->CmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)gdpa(dev, "vkCmdWriteBufferMarker2AMD");
944
945
    // ---- VK_EXT_calibrated_timestamps extension commands
946
0
    table->GetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)gdpa(dev, "vkGetCalibratedTimestampsEXT");
947
948
    // ---- VK_NV_mesh_shader extension commands
949
0
    table->CmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)gdpa(dev, "vkCmdDrawMeshTasksNV");
950
0
    table->CmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectNV");
951
0
    table->CmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountNV");
952
953
    // ---- VK_NV_scissor_exclusive extension commands
954
0
    table->CmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)gdpa(dev, "vkCmdSetExclusiveScissorEnableNV");
955
0
    table->CmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)gdpa(dev, "vkCmdSetExclusiveScissorNV");
956
957
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
958
0
    table->CmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)gdpa(dev, "vkCmdSetCheckpointNV");
959
0
    table->GetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)gdpa(dev, "vkGetQueueCheckpointDataNV");
960
0
    table->GetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)gdpa(dev, "vkGetQueueCheckpointData2NV");
961
962
    // ---- VK_EXT_present_timing extension commands
963
0
    table->SetSwapchainPresentTimingQueueSizeEXT = (PFN_vkSetSwapchainPresentTimingQueueSizeEXT)gdpa(dev, "vkSetSwapchainPresentTimingQueueSizeEXT");
964
0
    table->GetSwapchainTimingPropertiesEXT = (PFN_vkGetSwapchainTimingPropertiesEXT)gdpa(dev, "vkGetSwapchainTimingPropertiesEXT");
965
0
    table->GetSwapchainTimeDomainPropertiesEXT = (PFN_vkGetSwapchainTimeDomainPropertiesEXT)gdpa(dev, "vkGetSwapchainTimeDomainPropertiesEXT");
966
0
    table->GetPastPresentationTimingEXT = (PFN_vkGetPastPresentationTimingEXT)gdpa(dev, "vkGetPastPresentationTimingEXT");
967
968
    // ---- VK_INTEL_performance_query extension commands
969
0
    table->InitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)gdpa(dev, "vkInitializePerformanceApiINTEL");
970
0
    table->UninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)gdpa(dev, "vkUninitializePerformanceApiINTEL");
971
0
    table->CmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceMarkerINTEL");
972
0
    table->CmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceStreamMarkerINTEL");
973
0
    table->CmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)gdpa(dev, "vkCmdSetPerformanceOverrideINTEL");
974
0
    table->AcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)gdpa(dev, "vkAcquirePerformanceConfigurationINTEL");
975
0
    table->ReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)gdpa(dev, "vkReleasePerformanceConfigurationINTEL");
976
0
    table->QueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)gdpa(dev, "vkQueueSetPerformanceConfigurationINTEL");
977
0
    table->GetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)gdpa(dev, "vkGetPerformanceParameterINTEL");
978
979
    // ---- VK_AMD_display_native_hdr extension commands
980
0
    table->SetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)gdpa(dev, "vkSetLocalDimmingAMD");
981
982
    // ---- VK_EXT_buffer_device_address extension commands
983
0
    table->GetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)gdpa(dev, "vkGetBufferDeviceAddressEXT");
984
985
    // ---- VK_EXT_full_screen_exclusive extension commands
986
#if defined(VK_USE_PLATFORM_WIN32_KHR)
987
    table->AcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)gdpa(dev, "vkAcquireFullScreenExclusiveModeEXT");
988
#endif // VK_USE_PLATFORM_WIN32_KHR
989
#if defined(VK_USE_PLATFORM_WIN32_KHR)
990
    table->ReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)gdpa(dev, "vkReleaseFullScreenExclusiveModeEXT");
991
#endif // VK_USE_PLATFORM_WIN32_KHR
992
#if defined(VK_USE_PLATFORM_WIN32_KHR)
993
    table->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gdpa(dev, "vkGetDeviceGroupSurfacePresentModes2EXT");
994
#endif // VK_USE_PLATFORM_WIN32_KHR
995
996
    // ---- VK_EXT_line_rasterization extension commands
997
0
    table->CmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)gdpa(dev, "vkCmdSetLineStippleEXT");
998
999
    // ---- VK_EXT_host_query_reset extension commands
1000
0
    table->ResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)gdpa(dev, "vkResetQueryPoolEXT");
1001
1002
    // ---- VK_EXT_extended_dynamic_state extension commands
1003
0
    table->CmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)gdpa(dev, "vkCmdSetCullModeEXT");
1004
0
    table->CmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)gdpa(dev, "vkCmdSetFrontFaceEXT");
1005
0
    table->CmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)gdpa(dev, "vkCmdSetPrimitiveTopologyEXT");
1006
0
    table->CmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)gdpa(dev, "vkCmdSetViewportWithCountEXT");
1007
0
    table->CmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)gdpa(dev, "vkCmdSetScissorWithCountEXT");
1008
0
    table->CmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)gdpa(dev, "vkCmdBindVertexBuffers2EXT");
1009
0
    table->CmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)gdpa(dev, "vkCmdSetDepthTestEnableEXT");
1010
0
    table->CmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)gdpa(dev, "vkCmdSetDepthWriteEnableEXT");
1011
0
    table->CmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)gdpa(dev, "vkCmdSetDepthCompareOpEXT");
1012
0
    table->CmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)gdpa(dev, "vkCmdSetDepthBoundsTestEnableEXT");
1013
0
    table->CmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)gdpa(dev, "vkCmdSetStencilTestEnableEXT");
1014
0
    table->CmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)gdpa(dev, "vkCmdSetStencilOpEXT");
1015
1016
    // ---- VK_EXT_host_image_copy extension commands
1017
0
    table->CopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)gdpa(dev, "vkCopyMemoryToImageEXT");
1018
0
    table->CopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)gdpa(dev, "vkCopyImageToMemoryEXT");
1019
0
    table->CopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)gdpa(dev, "vkCopyImageToImageEXT");
1020
0
    table->TransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)gdpa(dev, "vkTransitionImageLayoutEXT");
1021
0
    table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)gdpa(dev, "vkGetImageSubresourceLayout2EXT");
1022
1023
    // ---- VK_EXT_swapchain_maintenance1 extension commands
1024
0
    table->ReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)gdpa(dev, "vkReleaseSwapchainImagesEXT");
1025
1026
    // ---- VK_NV_device_generated_commands extension commands
1027
0
    table->GetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsNV");
1028
0
    table->CmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)gdpa(dev, "vkCmdPreprocessGeneratedCommandsNV");
1029
0
    table->CmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)gdpa(dev, "vkCmdExecuteGeneratedCommandsNV");
1030
0
    table->CmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)gdpa(dev, "vkCmdBindPipelineShaderGroupNV");
1031
0
    table->CreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)gdpa(dev, "vkCreateIndirectCommandsLayoutNV");
1032
0
    table->DestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)gdpa(dev, "vkDestroyIndirectCommandsLayoutNV");
1033
1034
    // ---- VK_EXT_depth_bias_control extension commands
1035
0
    table->CmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)gdpa(dev, "vkCmdSetDepthBias2EXT");
1036
1037
    // ---- VK_EXT_private_data extension commands
1038
0
    table->CreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)gdpa(dev, "vkCreatePrivateDataSlotEXT");
1039
0
    table->DestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)gdpa(dev, "vkDestroyPrivateDataSlotEXT");
1040
0
    table->SetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)gdpa(dev, "vkSetPrivateDataEXT");
1041
0
    table->GetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)gdpa(dev, "vkGetPrivateDataEXT");
1042
1043
    // ---- VK_NV_cuda_kernel_launch extension commands
1044
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1045
0
    table->CreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)gdpa(dev, "vkCreateCudaModuleNV");
1046
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1047
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1048
0
    table->GetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)gdpa(dev, "vkGetCudaModuleCacheNV");
1049
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1050
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1051
0
    table->CreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)gdpa(dev, "vkCreateCudaFunctionNV");
1052
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1053
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1054
0
    table->DestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)gdpa(dev, "vkDestroyCudaModuleNV");
1055
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1056
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1057
0
    table->DestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)gdpa(dev, "vkDestroyCudaFunctionNV");
1058
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1059
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1060
0
    table->CmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)gdpa(dev, "vkCmdCudaLaunchKernelNV");
1061
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1062
1063
    // ---- VK_QCOM_tile_shading extension commands
1064
0
    table->CmdDispatchTileQCOM = (PFN_vkCmdDispatchTileQCOM)gdpa(dev, "vkCmdDispatchTileQCOM");
1065
0
    table->CmdBeginPerTileExecutionQCOM = (PFN_vkCmdBeginPerTileExecutionQCOM)gdpa(dev, "vkCmdBeginPerTileExecutionQCOM");
1066
0
    table->CmdEndPerTileExecutionQCOM = (PFN_vkCmdEndPerTileExecutionQCOM)gdpa(dev, "vkCmdEndPerTileExecutionQCOM");
1067
1068
    // ---- VK_EXT_metal_objects extension commands
1069
#if defined(VK_USE_PLATFORM_METAL_EXT)
1070
    table->ExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)gdpa(dev, "vkExportMetalObjectsEXT");
1071
#endif // VK_USE_PLATFORM_METAL_EXT
1072
1073
    // ---- VK_EXT_descriptor_buffer extension commands
1074
0
    table->GetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)gdpa(dev, "vkGetDescriptorSetLayoutSizeEXT");
1075
0
    table->GetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)gdpa(dev, "vkGetDescriptorSetLayoutBindingOffsetEXT");
1076
0
    table->GetDescriptorEXT = (PFN_vkGetDescriptorEXT)gdpa(dev, "vkGetDescriptorEXT");
1077
0
    table->CmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)gdpa(dev, "vkCmdBindDescriptorBuffersEXT");
1078
0
    table->CmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsetsEXT");
1079
0
    table->CmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT");
1080
0
    table->GetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetBufferOpaqueCaptureDescriptorDataEXT");
1081
0
    table->GetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageOpaqueCaptureDescriptorDataEXT");
1082
0
    table->GetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageViewOpaqueCaptureDescriptorDataEXT");
1083
0
    table->GetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetSamplerOpaqueCaptureDescriptorDataEXT");
1084
0
    table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT");
1085
1086
    // ---- VK_NV_fragment_shading_rate_enums extension commands
1087
0
    table->CmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)gdpa(dev, "vkCmdSetFragmentShadingRateEnumNV");
1088
1089
    // ---- VK_EXT_device_fault extension commands
1090
0
    table->GetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)gdpa(dev, "vkGetDeviceFaultInfoEXT");
1091
1092
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
1093
0
    table->CmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)gdpa(dev, "vkCmdSetVertexInputEXT");
1094
1095
    // ---- VK_FUCHSIA_external_memory extension commands
1096
#if defined(VK_USE_PLATFORM_FUCHSIA)
1097
    table->GetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandleFUCHSIA");
1098
#endif // VK_USE_PLATFORM_FUCHSIA
1099
#if defined(VK_USE_PLATFORM_FUCHSIA)
1100
    table->GetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
1101
#endif // VK_USE_PLATFORM_FUCHSIA
1102
1103
    // ---- VK_FUCHSIA_external_semaphore extension commands
1104
#if defined(VK_USE_PLATFORM_FUCHSIA)
1105
    table->ImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkImportSemaphoreZirconHandleFUCHSIA");
1106
#endif // VK_USE_PLATFORM_FUCHSIA
1107
#if defined(VK_USE_PLATFORM_FUCHSIA)
1108
    table->GetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkGetSemaphoreZirconHandleFUCHSIA");
1109
#endif // VK_USE_PLATFORM_FUCHSIA
1110
1111
    // ---- VK_FUCHSIA_buffer_collection extension commands
1112
#if defined(VK_USE_PLATFORM_FUCHSIA)
1113
    table->CreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)gdpa(dev, "vkCreateBufferCollectionFUCHSIA");
1114
#endif // VK_USE_PLATFORM_FUCHSIA
1115
#if defined(VK_USE_PLATFORM_FUCHSIA)
1116
    table->SetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionImageConstraintsFUCHSIA");
1117
#endif // VK_USE_PLATFORM_FUCHSIA
1118
#if defined(VK_USE_PLATFORM_FUCHSIA)
1119
    table->SetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
1120
#endif // VK_USE_PLATFORM_FUCHSIA
1121
#if defined(VK_USE_PLATFORM_FUCHSIA)
1122
    table->DestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)gdpa(dev, "vkDestroyBufferCollectionFUCHSIA");
1123
#endif // VK_USE_PLATFORM_FUCHSIA
1124
#if defined(VK_USE_PLATFORM_FUCHSIA)
1125
    table->GetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)gdpa(dev, "vkGetBufferCollectionPropertiesFUCHSIA");
1126
#endif // VK_USE_PLATFORM_FUCHSIA
1127
1128
    // ---- VK_HUAWEI_subpass_shading extension commands
1129
0
    table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)gdpa(dev, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
1130
0
    table->CmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)gdpa(dev, "vkCmdSubpassShadingHUAWEI");
1131
1132
    // ---- VK_HUAWEI_invocation_mask extension commands
1133
0
    table->CmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)gdpa(dev, "vkCmdBindInvocationMaskHUAWEI");
1134
1135
    // ---- VK_NV_external_memory_rdma extension commands
1136
0
    table->GetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)gdpa(dev, "vkGetMemoryRemoteAddressNV");
1137
1138
    // ---- VK_EXT_pipeline_properties extension commands
1139
0
    table->GetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)gdpa(dev, "vkGetPipelinePropertiesEXT");
1140
1141
    // ---- VK_EXT_extended_dynamic_state2 extension commands
1142
0
    table->CmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)gdpa(dev, "vkCmdSetPatchControlPointsEXT");
1143
0
    table->CmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)gdpa(dev, "vkCmdSetRasterizerDiscardEnableEXT");
1144
0
    table->CmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)gdpa(dev, "vkCmdSetDepthBiasEnableEXT");
1145
0
    table->CmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)gdpa(dev, "vkCmdSetLogicOpEXT");
1146
0
    table->CmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)gdpa(dev, "vkCmdSetPrimitiveRestartEnableEXT");
1147
1148
    // ---- VK_EXT_color_write_enable extension commands
1149
0
    table->CmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)gdpa(dev, "vkCmdSetColorWriteEnableEXT");
1150
1151
    // ---- VK_EXT_multi_draw extension commands
1152
0
    table->CmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)gdpa(dev, "vkCmdDrawMultiEXT");
1153
0
    table->CmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)gdpa(dev, "vkCmdDrawMultiIndexedEXT");
1154
1155
    // ---- VK_EXT_opacity_micromap extension commands
1156
0
    table->CreateMicromapEXT = (PFN_vkCreateMicromapEXT)gdpa(dev, "vkCreateMicromapEXT");
1157
0
    table->DestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)gdpa(dev, "vkDestroyMicromapEXT");
1158
0
    table->CmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)gdpa(dev, "vkCmdBuildMicromapsEXT");
1159
0
    table->BuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)gdpa(dev, "vkBuildMicromapsEXT");
1160
0
    table->CopyMicromapEXT = (PFN_vkCopyMicromapEXT)gdpa(dev, "vkCopyMicromapEXT");
1161
0
    table->CopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)gdpa(dev, "vkCopyMicromapToMemoryEXT");
1162
0
    table->CopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)gdpa(dev, "vkCopyMemoryToMicromapEXT");
1163
0
    table->WriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)gdpa(dev, "vkWriteMicromapsPropertiesEXT");
1164
0
    table->CmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)gdpa(dev, "vkCmdCopyMicromapEXT");
1165
0
    table->CmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)gdpa(dev, "vkCmdCopyMicromapToMemoryEXT");
1166
0
    table->CmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)gdpa(dev, "vkCmdCopyMemoryToMicromapEXT");
1167
0
    table->CmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)gdpa(dev, "vkCmdWriteMicromapsPropertiesEXT");
1168
0
    table->GetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)gdpa(dev, "vkGetDeviceMicromapCompatibilityEXT");
1169
0
    table->GetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)gdpa(dev, "vkGetMicromapBuildSizesEXT");
1170
1171
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
1172
0
    table->CmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)gdpa(dev, "vkCmdDrawClusterHUAWEI");
1173
0
    table->CmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)gdpa(dev, "vkCmdDrawClusterIndirectHUAWEI");
1174
1175
    // ---- VK_EXT_pageable_device_local_memory extension commands
1176
0
    table->SetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)gdpa(dev, "vkSetDeviceMemoryPriorityEXT");
1177
1178
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
1179
0
    table->GetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)gdpa(dev, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
1180
0
    table->GetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)gdpa(dev, "vkGetDescriptorSetHostMappingVALVE");
1181
1182
    // ---- VK_NV_copy_memory_indirect extension commands
1183
0
    table->CmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)gdpa(dev, "vkCmdCopyMemoryIndirectNV");
1184
0
    table->CmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)gdpa(dev, "vkCmdCopyMemoryToImageIndirectNV");
1185
1186
    // ---- VK_NV_memory_decompression extension commands
1187
0
    table->CmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)gdpa(dev, "vkCmdDecompressMemoryNV");
1188
0
    table->CmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)gdpa(dev, "vkCmdDecompressMemoryIndirectCountNV");
1189
1190
    // ---- VK_NV_device_generated_commands_compute extension commands
1191
0
    table->GetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)gdpa(dev, "vkGetPipelineIndirectMemoryRequirementsNV");
1192
0
    table->CmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)gdpa(dev, "vkCmdUpdatePipelineIndirectBufferNV");
1193
0
    table->GetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)gdpa(dev, "vkGetPipelineIndirectDeviceAddressNV");
1194
1195
    // ---- VK_OHOS_external_memory extension commands
1196
#if defined(VK_USE_PLATFORM_OHOS)
1197
    table->GetNativeBufferPropertiesOHOS = (PFN_vkGetNativeBufferPropertiesOHOS)gdpa(dev, "vkGetNativeBufferPropertiesOHOS");
1198
#endif // VK_USE_PLATFORM_OHOS
1199
#if defined(VK_USE_PLATFORM_OHOS)
1200
    table->GetMemoryNativeBufferOHOS = (PFN_vkGetMemoryNativeBufferOHOS)gdpa(dev, "vkGetMemoryNativeBufferOHOS");
1201
#endif // VK_USE_PLATFORM_OHOS
1202
1203
    // ---- VK_EXT_extended_dynamic_state3 extension commands
1204
0
    table->CmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)gdpa(dev, "vkCmdSetDepthClampEnableEXT");
1205
0
    table->CmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)gdpa(dev, "vkCmdSetPolygonModeEXT");
1206
0
    table->CmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)gdpa(dev, "vkCmdSetRasterizationSamplesEXT");
1207
0
    table->CmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)gdpa(dev, "vkCmdSetSampleMaskEXT");
1208
0
    table->CmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)gdpa(dev, "vkCmdSetAlphaToCoverageEnableEXT");
1209
0
    table->CmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)gdpa(dev, "vkCmdSetAlphaToOneEnableEXT");
1210
0
    table->CmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)gdpa(dev, "vkCmdSetLogicOpEnableEXT");
1211
0
    table->CmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)gdpa(dev, "vkCmdSetColorBlendEnableEXT");
1212
0
    table->CmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)gdpa(dev, "vkCmdSetColorBlendEquationEXT");
1213
0
    table->CmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)gdpa(dev, "vkCmdSetColorWriteMaskEXT");
1214
0
    table->CmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)gdpa(dev, "vkCmdSetTessellationDomainOriginEXT");
1215
0
    table->CmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)gdpa(dev, "vkCmdSetRasterizationStreamEXT");
1216
0
    table->CmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)gdpa(dev, "vkCmdSetConservativeRasterizationModeEXT");
1217
0
    table->CmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)gdpa(dev, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
1218
0
    table->CmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)gdpa(dev, "vkCmdSetDepthClipEnableEXT");
1219
0
    table->CmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)gdpa(dev, "vkCmdSetSampleLocationsEnableEXT");
1220
0
    table->CmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)gdpa(dev, "vkCmdSetColorBlendAdvancedEXT");
1221
0
    table->CmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)gdpa(dev, "vkCmdSetProvokingVertexModeEXT");
1222
0
    table->CmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)gdpa(dev, "vkCmdSetLineRasterizationModeEXT");
1223
0
    table->CmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)gdpa(dev, "vkCmdSetLineStippleEnableEXT");
1224
0
    table->CmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)gdpa(dev, "vkCmdSetDepthClipNegativeOneToOneEXT");
1225
0
    table->CmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)gdpa(dev, "vkCmdSetViewportWScalingEnableNV");
1226
0
    table->CmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)gdpa(dev, "vkCmdSetViewportSwizzleNV");
1227
0
    table->CmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)gdpa(dev, "vkCmdSetCoverageToColorEnableNV");
1228
0
    table->CmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)gdpa(dev, "vkCmdSetCoverageToColorLocationNV");
1229
0
    table->CmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)gdpa(dev, "vkCmdSetCoverageModulationModeNV");
1230
0
    table->CmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)gdpa(dev, "vkCmdSetCoverageModulationTableEnableNV");
1231
0
    table->CmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)gdpa(dev, "vkCmdSetCoverageModulationTableNV");
1232
0
    table->CmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)gdpa(dev, "vkCmdSetShadingRateImageEnableNV");
1233
0
    table->CmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)gdpa(dev, "vkCmdSetRepresentativeFragmentTestEnableNV");
1234
0
    table->CmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)gdpa(dev, "vkCmdSetCoverageReductionModeNV");
1235
1236
    // ---- VK_ARM_tensors extension commands
1237
0
    table->CreateTensorARM = (PFN_vkCreateTensorARM)gdpa(dev, "vkCreateTensorARM");
1238
0
    table->DestroyTensorARM = (PFN_vkDestroyTensorARM)gdpa(dev, "vkDestroyTensorARM");
1239
0
    table->CreateTensorViewARM = (PFN_vkCreateTensorViewARM)gdpa(dev, "vkCreateTensorViewARM");
1240
0
    table->DestroyTensorViewARM = (PFN_vkDestroyTensorViewARM)gdpa(dev, "vkDestroyTensorViewARM");
1241
0
    table->GetTensorMemoryRequirementsARM = (PFN_vkGetTensorMemoryRequirementsARM)gdpa(dev, "vkGetTensorMemoryRequirementsARM");
1242
0
    table->BindTensorMemoryARM = (PFN_vkBindTensorMemoryARM)gdpa(dev, "vkBindTensorMemoryARM");
1243
0
    table->GetDeviceTensorMemoryRequirementsARM = (PFN_vkGetDeviceTensorMemoryRequirementsARM)gdpa(dev, "vkGetDeviceTensorMemoryRequirementsARM");
1244
0
    table->CmdCopyTensorARM = (PFN_vkCmdCopyTensorARM)gdpa(dev, "vkCmdCopyTensorARM");
1245
0
    table->GetTensorOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)gdpa(dev, "vkGetTensorOpaqueCaptureDescriptorDataARM");
1246
0
    table->GetTensorViewOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)gdpa(dev, "vkGetTensorViewOpaqueCaptureDescriptorDataARM");
1247
1248
    // ---- VK_EXT_shader_module_identifier extension commands
1249
0
    table->GetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)gdpa(dev, "vkGetShaderModuleIdentifierEXT");
1250
0
    table->GetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)gdpa(dev, "vkGetShaderModuleCreateInfoIdentifierEXT");
1251
1252
    // ---- VK_NV_optical_flow extension commands
1253
0
    table->CreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)gdpa(dev, "vkCreateOpticalFlowSessionNV");
1254
0
    table->DestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)gdpa(dev, "vkDestroyOpticalFlowSessionNV");
1255
0
    table->BindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)gdpa(dev, "vkBindOpticalFlowSessionImageNV");
1256
0
    table->CmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)gdpa(dev, "vkCmdOpticalFlowExecuteNV");
1257
1258
    // ---- VK_AMD_anti_lag extension commands
1259
0
    table->AntiLagUpdateAMD = (PFN_vkAntiLagUpdateAMD)gdpa(dev, "vkAntiLagUpdateAMD");
1260
1261
    // ---- VK_EXT_shader_object extension commands
1262
0
    table->CreateShadersEXT = (PFN_vkCreateShadersEXT)gdpa(dev, "vkCreateShadersEXT");
1263
0
    table->DestroyShaderEXT = (PFN_vkDestroyShaderEXT)gdpa(dev, "vkDestroyShaderEXT");
1264
0
    table->GetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)gdpa(dev, "vkGetShaderBinaryDataEXT");
1265
0
    table->CmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)gdpa(dev, "vkCmdBindShadersEXT");
1266
0
    table->CmdSetDepthClampRangeEXT = (PFN_vkCmdSetDepthClampRangeEXT)gdpa(dev, "vkCmdSetDepthClampRangeEXT");
1267
1268
    // ---- VK_QCOM_tile_properties extension commands
1269
0
    table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)gdpa(dev, "vkGetFramebufferTilePropertiesQCOM");
1270
0
    table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)gdpa(dev, "vkGetDynamicRenderingTilePropertiesQCOM");
1271
1272
    // ---- VK_NV_cooperative_vector extension commands
1273
0
    table->ConvertCooperativeVectorMatrixNV = (PFN_vkConvertCooperativeVectorMatrixNV)gdpa(dev, "vkConvertCooperativeVectorMatrixNV");
1274
0
    table->CmdConvertCooperativeVectorMatrixNV = (PFN_vkCmdConvertCooperativeVectorMatrixNV)gdpa(dev, "vkCmdConvertCooperativeVectorMatrixNV");
1275
1276
    // ---- VK_NV_low_latency2 extension commands
1277
0
    table->SetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)gdpa(dev, "vkSetLatencySleepModeNV");
1278
0
    table->LatencySleepNV = (PFN_vkLatencySleepNV)gdpa(dev, "vkLatencySleepNV");
1279
0
    table->SetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)gdpa(dev, "vkSetLatencyMarkerNV");
1280
0
    table->GetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)gdpa(dev, "vkGetLatencyTimingsNV");
1281
0
    table->QueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)gdpa(dev, "vkQueueNotifyOutOfBandNV");
1282
1283
    // ---- VK_ARM_data_graph extension commands
1284
0
    table->CreateDataGraphPipelinesARM = (PFN_vkCreateDataGraphPipelinesARM)gdpa(dev, "vkCreateDataGraphPipelinesARM");
1285
0
    table->CreateDataGraphPipelineSessionARM = (PFN_vkCreateDataGraphPipelineSessionARM)gdpa(dev, "vkCreateDataGraphPipelineSessionARM");
1286
0
    table->GetDataGraphPipelineSessionBindPointRequirementsARM = (PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)gdpa(dev, "vkGetDataGraphPipelineSessionBindPointRequirementsARM");
1287
0
    table->GetDataGraphPipelineSessionMemoryRequirementsARM = (PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)gdpa(dev, "vkGetDataGraphPipelineSessionMemoryRequirementsARM");
1288
0
    table->BindDataGraphPipelineSessionMemoryARM = (PFN_vkBindDataGraphPipelineSessionMemoryARM)gdpa(dev, "vkBindDataGraphPipelineSessionMemoryARM");
1289
0
    table->DestroyDataGraphPipelineSessionARM = (PFN_vkDestroyDataGraphPipelineSessionARM)gdpa(dev, "vkDestroyDataGraphPipelineSessionARM");
1290
0
    table->CmdDispatchDataGraphARM = (PFN_vkCmdDispatchDataGraphARM)gdpa(dev, "vkCmdDispatchDataGraphARM");
1291
0
    table->GetDataGraphPipelineAvailablePropertiesARM = (PFN_vkGetDataGraphPipelineAvailablePropertiesARM)gdpa(dev, "vkGetDataGraphPipelineAvailablePropertiesARM");
1292
0
    table->GetDataGraphPipelinePropertiesARM = (PFN_vkGetDataGraphPipelinePropertiesARM)gdpa(dev, "vkGetDataGraphPipelinePropertiesARM");
1293
1294
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
1295
0
    table->CmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)gdpa(dev, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
1296
1297
    // ---- VK_QNX_external_memory_screen_buffer extension commands
1298
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1299
    table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gdpa(dev, "vkGetScreenBufferPropertiesQNX");
1300
#endif // VK_USE_PLATFORM_SCREEN_QNX
1301
1302
    // ---- VK_QCOM_tile_memory_heap extension commands
1303
0
    table->CmdBindTileMemoryQCOM = (PFN_vkCmdBindTileMemoryQCOM)gdpa(dev, "vkCmdBindTileMemoryQCOM");
1304
1305
    // ---- VK_EXT_memory_decompression extension commands
1306
0
    table->CmdDecompressMemoryEXT = (PFN_vkCmdDecompressMemoryEXT)gdpa(dev, "vkCmdDecompressMemoryEXT");
1307
0
    table->CmdDecompressMemoryIndirectCountEXT = (PFN_vkCmdDecompressMemoryIndirectCountEXT)gdpa(dev, "vkCmdDecompressMemoryIndirectCountEXT");
1308
1309
    // ---- VK_NV_external_compute_queue extension commands
1310
0
    table->CreateExternalComputeQueueNV = (PFN_vkCreateExternalComputeQueueNV)gdpa(dev, "vkCreateExternalComputeQueueNV");
1311
0
    table->DestroyExternalComputeQueueNV = (PFN_vkDestroyExternalComputeQueueNV)gdpa(dev, "vkDestroyExternalComputeQueueNV");
1312
0
    table->GetExternalComputeQueueDataNV = (PFN_vkGetExternalComputeQueueDataNV)gdpa(dev, "vkGetExternalComputeQueueDataNV");
1313
1314
    // ---- VK_NV_cluster_acceleration_structure extension commands
1315
0
    table->GetClusterAccelerationStructureBuildSizesNV = (PFN_vkGetClusterAccelerationStructureBuildSizesNV)gdpa(dev, "vkGetClusterAccelerationStructureBuildSizesNV");
1316
0
    table->CmdBuildClusterAccelerationStructureIndirectNV = (PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)gdpa(dev, "vkCmdBuildClusterAccelerationStructureIndirectNV");
1317
1318
    // ---- VK_NV_partitioned_acceleration_structure extension commands
1319
0
    table->GetPartitionedAccelerationStructuresBuildSizesNV = (PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)gdpa(dev, "vkGetPartitionedAccelerationStructuresBuildSizesNV");
1320
0
    table->CmdBuildPartitionedAccelerationStructuresNV = (PFN_vkCmdBuildPartitionedAccelerationStructuresNV)gdpa(dev, "vkCmdBuildPartitionedAccelerationStructuresNV");
1321
1322
    // ---- VK_EXT_device_generated_commands extension commands
1323
0
    table->GetGeneratedCommandsMemoryRequirementsEXT = (PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsEXT");
1324
0
    table->CmdPreprocessGeneratedCommandsEXT = (PFN_vkCmdPreprocessGeneratedCommandsEXT)gdpa(dev, "vkCmdPreprocessGeneratedCommandsEXT");
1325
0
    table->CmdExecuteGeneratedCommandsEXT = (PFN_vkCmdExecuteGeneratedCommandsEXT)gdpa(dev, "vkCmdExecuteGeneratedCommandsEXT");
1326
0
    table->CreateIndirectCommandsLayoutEXT = (PFN_vkCreateIndirectCommandsLayoutEXT)gdpa(dev, "vkCreateIndirectCommandsLayoutEXT");
1327
0
    table->DestroyIndirectCommandsLayoutEXT = (PFN_vkDestroyIndirectCommandsLayoutEXT)gdpa(dev, "vkDestroyIndirectCommandsLayoutEXT");
1328
0
    table->CreateIndirectExecutionSetEXT = (PFN_vkCreateIndirectExecutionSetEXT)gdpa(dev, "vkCreateIndirectExecutionSetEXT");
1329
0
    table->DestroyIndirectExecutionSetEXT = (PFN_vkDestroyIndirectExecutionSetEXT)gdpa(dev, "vkDestroyIndirectExecutionSetEXT");
1330
0
    table->UpdateIndirectExecutionSetPipelineEXT = (PFN_vkUpdateIndirectExecutionSetPipelineEXT)gdpa(dev, "vkUpdateIndirectExecutionSetPipelineEXT");
1331
0
    table->UpdateIndirectExecutionSetShaderEXT = (PFN_vkUpdateIndirectExecutionSetShaderEXT)gdpa(dev, "vkUpdateIndirectExecutionSetShaderEXT");
1332
1333
    // ---- VK_OHOS_native_buffer extension commands
1334
#if defined(VK_USE_PLATFORM_OHOS)
1335
    table->GetSwapchainGrallocUsageOHOS = (PFN_vkGetSwapchainGrallocUsageOHOS)gdpa(dev, "vkGetSwapchainGrallocUsageOHOS");
1336
#endif // VK_USE_PLATFORM_OHOS
1337
#if defined(VK_USE_PLATFORM_OHOS)
1338
    table->AcquireImageOHOS = (PFN_vkAcquireImageOHOS)gdpa(dev, "vkAcquireImageOHOS");
1339
#endif // VK_USE_PLATFORM_OHOS
1340
#if defined(VK_USE_PLATFORM_OHOS)
1341
    table->QueueSignalReleaseImageOHOS = (PFN_vkQueueSignalReleaseImageOHOS)gdpa(dev, "vkQueueSignalReleaseImageOHOS");
1342
#endif // VK_USE_PLATFORM_OHOS
1343
1344
    // ---- VK_EXT_external_memory_metal extension commands
1345
#if defined(VK_USE_PLATFORM_METAL_EXT)
1346
    table->GetMemoryMetalHandleEXT = (PFN_vkGetMemoryMetalHandleEXT)gdpa(dev, "vkGetMemoryMetalHandleEXT");
1347
#endif // VK_USE_PLATFORM_METAL_EXT
1348
#if defined(VK_USE_PLATFORM_METAL_EXT)
1349
    table->GetMemoryMetalHandlePropertiesEXT = (PFN_vkGetMemoryMetalHandlePropertiesEXT)gdpa(dev, "vkGetMemoryMetalHandlePropertiesEXT");
1350
#endif // VK_USE_PLATFORM_METAL_EXT
1351
1352
    // ---- VK_EXT_fragment_density_map_offset extension commands
1353
0
    table->CmdEndRendering2EXT = (PFN_vkCmdEndRendering2EXT)gdpa(dev, "vkCmdEndRendering2EXT");
1354
1355
    // ---- VK_EXT_custom_resolve extension commands
1356
0
    table->CmdBeginCustomResolveEXT = (PFN_vkCmdBeginCustomResolveEXT)gdpa(dev, "vkCmdBeginCustomResolveEXT");
1357
1358
    // ---- VK_KHR_acceleration_structure extension commands
1359
0
    table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)gdpa(dev, "vkCreateAccelerationStructureKHR");
1360
0
    table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)gdpa(dev, "vkDestroyAccelerationStructureKHR");
1361
0
    table->CmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresKHR");
1362
0
    table->CmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresIndirectKHR");
1363
0
    table->BuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)gdpa(dev, "vkBuildAccelerationStructuresKHR");
1364
0
    table->CopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)gdpa(dev, "vkCopyAccelerationStructureKHR");
1365
0
    table->CopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCopyAccelerationStructureToMemoryKHR");
1366
0
    table->CopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCopyMemoryToAccelerationStructureKHR");
1367
0
    table->WriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkWriteAccelerationStructuresPropertiesKHR");
1368
0
    table->CmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)gdpa(dev, "vkCmdCopyAccelerationStructureKHR");
1369
0
    table->CmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCmdCopyAccelerationStructureToMemoryKHR");
1370
0
    table->CmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCmdCopyMemoryToAccelerationStructureKHR");
1371
0
    table->GetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)gdpa(dev, "vkGetAccelerationStructureDeviceAddressKHR");
1372
0
    table->CmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesKHR");
1373
0
    table->GetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)gdpa(dev, "vkGetDeviceAccelerationStructureCompatibilityKHR");
1374
0
    table->GetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)gdpa(dev, "vkGetAccelerationStructureBuildSizesKHR");
1375
1376
    // ---- VK_KHR_ray_tracing_pipeline extension commands
1377
0
    table->CmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)gdpa(dev, "vkCmdTraceRaysKHR");
1378
0
    table->CreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)gdpa(dev, "vkCreateRayTracingPipelinesKHR");
1379
0
    table->GetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
1380
0
    table->CmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)gdpa(dev, "vkCmdTraceRaysIndirectKHR");
1381
0
    table->GetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)gdpa(dev, "vkGetRayTracingShaderGroupStackSizeKHR");
1382
0
    table->CmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)gdpa(dev, "vkCmdSetRayTracingPipelineStackSizeKHR");
1383
1384
    // ---- VK_EXT_mesh_shader extension commands
1385
0
    table->CmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)gdpa(dev, "vkCmdDrawMeshTasksEXT");
1386
0
    table->CmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectEXT");
1387
0
    table->CmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountEXT");
1388
0
}
1389
1390
// Init Instance function pointer dispatch table with core commands
1391
VKAPI_ATTR void VKAPI_CALL loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1392
0
                                                                    VkInstance inst) {
1393
1394
    // ---- Core Vulkan 1.0 commands
1395
0
    table->DestroyInstance = (PFN_vkDestroyInstance)gpa(inst, "vkDestroyInstance");
1396
0
    table->EnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)gpa(inst, "vkEnumeratePhysicalDevices");
1397
0
    table->GetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)gpa(inst, "vkGetPhysicalDeviceFeatures");
1398
0
    table->GetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)gpa(inst, "vkGetPhysicalDeviceFormatProperties");
1399
0
    table->GetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties");
1400
0
    table->GetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)gpa(inst, "vkGetPhysicalDeviceProperties");
1401
0
    table->GetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties");
1402
0
    table->GetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)gpa(inst, "vkGetPhysicalDeviceMemoryProperties");
1403
0
    table->GetInstanceProcAddr = gpa;
1404
0
    table->EnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)gpa(inst, "vkEnumerateDeviceExtensionProperties");
1405
0
    table->EnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)gpa(inst, "vkEnumerateDeviceLayerProperties");
1406
0
    table->GetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties");
1407
1408
    // ---- Core Vulkan 1.1 commands
1409
0
    table->EnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)gpa(inst, "vkEnumeratePhysicalDeviceGroups");
1410
0
    table->GetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)gpa(inst, "vkGetPhysicalDeviceFeatures2");
1411
0
    table->GetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)gpa(inst, "vkGetPhysicalDeviceProperties2");
1412
0
    table->GetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)gpa(inst, "vkGetPhysicalDeviceFormatProperties2");
1413
0
    table->GetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2");
1414
0
    table->GetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2");
1415
0
    table->GetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2");
1416
0
    table->GetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2");
1417
0
    table->GetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)gpa(inst, "vkGetPhysicalDeviceExternalBufferProperties");
1418
0
    table->GetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)gpa(inst, "vkGetPhysicalDeviceExternalFenceProperties");
1419
0
    table->GetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)gpa(inst, "vkGetPhysicalDeviceExternalSemaphoreProperties");
1420
1421
    // ---- Core Vulkan 1.3 commands
1422
0
    table->GetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)gpa(inst, "vkGetPhysicalDeviceToolProperties");
1423
0
}
1424
1425
// Init Instance function pointer dispatch table with core commands
1426
VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1427
0
                                                                        VkInstance inst) {
1428
1429
    // ---- VK_KHR_surface extension commands
1430
0
    table->DestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)gpa(inst, "vkDestroySurfaceKHR");
1431
0
    table->GetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceSupportKHR");
1432
0
    table->GetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
1433
0
    table->GetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormatsKHR");
1434
0
    table->GetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModesKHR");
1435
1436
    // ---- VK_KHR_swapchain extension commands
1437
0
    table->GetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)gpa(inst, "vkGetPhysicalDevicePresentRectanglesKHR");
1438
1439
    // ---- VK_KHR_display extension commands
1440
0
    table->GetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPropertiesKHR");
1441
0
    table->GetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
1442
0
    table->GetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)gpa(inst, "vkGetDisplayPlaneSupportedDisplaysKHR");
1443
0
    table->GetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)gpa(inst, "vkGetDisplayModePropertiesKHR");
1444
0
    table->CreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)gpa(inst, "vkCreateDisplayModeKHR");
1445
0
    table->GetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)gpa(inst, "vkGetDisplayPlaneCapabilitiesKHR");
1446
0
    table->CreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)gpa(inst, "vkCreateDisplayPlaneSurfaceKHR");
1447
1448
    // ---- VK_KHR_xlib_surface extension commands
1449
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
1450
0
    table->CreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)gpa(inst, "vkCreateXlibSurfaceKHR");
1451
0
#endif // VK_USE_PLATFORM_XLIB_KHR
1452
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
1453
0
    table->GetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
1454
0
#endif // VK_USE_PLATFORM_XLIB_KHR
1455
1456
    // ---- VK_KHR_xcb_surface extension commands
1457
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
1458
0
    table->CreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)gpa(inst, "vkCreateXcbSurfaceKHR");
1459
0
#endif // VK_USE_PLATFORM_XCB_KHR
1460
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
1461
0
    table->GetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
1462
0
#endif // VK_USE_PLATFORM_XCB_KHR
1463
1464
    // ---- VK_KHR_wayland_surface extension commands
1465
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1466
0
    table->CreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)gpa(inst, "vkCreateWaylandSurfaceKHR");
1467
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
1468
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1469
0
    table->GetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
1470
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
1471
1472
    // ---- VK_KHR_android_surface extension commands
1473
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
1474
    table->CreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)gpa(inst, "vkCreateAndroidSurfaceKHR");
1475
#endif // VK_USE_PLATFORM_ANDROID_KHR
1476
1477
    // ---- VK_KHR_win32_surface extension commands
1478
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1479
    table->CreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)gpa(inst, "vkCreateWin32SurfaceKHR");
1480
#endif // VK_USE_PLATFORM_WIN32_KHR
1481
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1482
    table->GetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
1483
#endif // VK_USE_PLATFORM_WIN32_KHR
1484
1485
    // ---- VK_KHR_video_queue extension commands
1486
0
    table->GetPhysicalDeviceVideoCapabilitiesKHR = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
1487
0
    table->GetPhysicalDeviceVideoFormatPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
1488
1489
    // ---- VK_KHR_get_physical_device_properties2 extension commands
1490
0
    table->GetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)gpa(inst, "vkGetPhysicalDeviceFeatures2KHR");
1491
0
    table->GetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)gpa(inst, "vkGetPhysicalDeviceProperties2KHR");
1492
0
    table->GetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceFormatProperties2KHR");
1493
0
    table->GetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2KHR");
1494
0
    table->GetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
1495
0
    table->GetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2KHR");
1496
0
    table->GetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
1497
1498
    // ---- VK_KHR_device_group_creation extension commands
1499
0
    table->EnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)gpa(inst, "vkEnumeratePhysicalDeviceGroupsKHR");
1500
1501
    // ---- VK_KHR_external_memory_capabilities extension commands
1502
0
    table->GetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
1503
1504
    // ---- VK_KHR_external_semaphore_capabilities extension commands
1505
0
    table->GetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
1506
1507
    // ---- VK_KHR_external_fence_capabilities extension commands
1508
0
    table->GetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
1509
1510
    // ---- VK_KHR_performance_query extension commands
1511
0
    table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
1512
0
    table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
1513
1514
    // ---- VK_KHR_get_surface_capabilities2 extension commands
1515
0
    table->GetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
1516
0
    table->GetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormats2KHR");
1517
1518
    // ---- VK_KHR_get_display_properties2 extension commands
1519
0
    table->GetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayProperties2KHR");
1520
0
    table->GetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
1521
0
    table->GetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)gpa(inst, "vkGetDisplayModeProperties2KHR");
1522
0
    table->GetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)gpa(inst, "vkGetDisplayPlaneCapabilities2KHR");
1523
1524
    // ---- VK_KHR_fragment_shading_rate extension commands
1525
0
    table->GetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)gpa(inst, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
1526
1527
    // ---- VK_KHR_video_encode_queue extension commands
1528
0
    table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
1529
1530
    // ---- VK_KHR_cooperative_matrix extension commands
1531
0
    table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR");
1532
1533
    // ---- VK_KHR_calibrated_timestamps extension commands
1534
0
    table->GetPhysicalDeviceCalibrateableTimeDomainsKHR = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR");
1535
1536
    // ---- VK_EXT_debug_report extension commands
1537
0
    table->CreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)gpa(inst, "vkCreateDebugReportCallbackEXT");
1538
0
    table->DestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)gpa(inst, "vkDestroyDebugReportCallbackEXT");
1539
0
    table->DebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)gpa(inst, "vkDebugReportMessageEXT");
1540
1541
    // ---- VK_GGP_stream_descriptor_surface extension commands
1542
#if defined(VK_USE_PLATFORM_GGP)
1543
    table->CreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)gpa(inst, "vkCreateStreamDescriptorSurfaceGGP");
1544
#endif // VK_USE_PLATFORM_GGP
1545
1546
    // ---- VK_NV_external_memory_capabilities extension commands
1547
0
    table->GetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)gpa(inst, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
1548
1549
    // ---- VK_NN_vi_surface extension commands
1550
#if defined(VK_USE_PLATFORM_VI_NN)
1551
    table->CreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)gpa(inst, "vkCreateViSurfaceNN");
1552
#endif // VK_USE_PLATFORM_VI_NN
1553
1554
    // ---- VK_EXT_direct_mode_display extension commands
1555
0
    table->ReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)gpa(inst, "vkReleaseDisplayEXT");
1556
1557
    // ---- VK_EXT_acquire_xlib_display extension commands
1558
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1559
0
    table->AcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)gpa(inst, "vkAcquireXlibDisplayEXT");
1560
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1561
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1562
0
    table->GetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)gpa(inst, "vkGetRandROutputDisplayEXT");
1563
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1564
1565
    // ---- VK_EXT_display_surface_counter extension commands
1566
0
    table->GetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
1567
1568
    // ---- VK_MVK_ios_surface extension commands
1569
#if defined(VK_USE_PLATFORM_IOS_MVK)
1570
    table->CreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)gpa(inst, "vkCreateIOSSurfaceMVK");
1571
#endif // VK_USE_PLATFORM_IOS_MVK
1572
1573
    // ---- VK_MVK_macos_surface extension commands
1574
#if defined(VK_USE_PLATFORM_MACOS_MVK)
1575
    table->CreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)gpa(inst, "vkCreateMacOSSurfaceMVK");
1576
#endif // VK_USE_PLATFORM_MACOS_MVK
1577
1578
    // ---- VK_EXT_debug_utils extension commands
1579
0
    table->CreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)gpa(inst, "vkCreateDebugUtilsMessengerEXT");
1580
0
    table->DestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)gpa(inst, "vkDestroyDebugUtilsMessengerEXT");
1581
0
    table->SubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)gpa(inst, "vkSubmitDebugUtilsMessageEXT");
1582
1583
    // ---- VK_EXT_sample_locations extension commands
1584
0
    table->GetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)gpa(inst, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1585
1586
    // ---- VK_EXT_calibrated_timestamps extension commands
1587
0
    table->GetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1588
1589
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
1590
#if defined(VK_USE_PLATFORM_FUCHSIA)
1591
    table->CreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)gpa(inst, "vkCreateImagePipeSurfaceFUCHSIA");
1592
#endif // VK_USE_PLATFORM_FUCHSIA
1593
1594
    // ---- VK_EXT_metal_surface extension commands
1595
#if defined(VK_USE_PLATFORM_METAL_EXT)
1596
    table->CreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)gpa(inst, "vkCreateMetalSurfaceEXT");
1597
#endif // VK_USE_PLATFORM_METAL_EXT
1598
1599
    // ---- VK_EXT_tooling_info extension commands
1600
0
    table->GetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)gpa(inst, "vkGetPhysicalDeviceToolPropertiesEXT");
1601
1602
    // ---- VK_NV_cooperative_matrix extension commands
1603
0
    table->GetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1604
1605
    // ---- VK_NV_coverage_reduction_mode extension commands
1606
0
    table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)gpa(inst, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1607
1608
    // ---- VK_EXT_full_screen_exclusive extension commands
1609
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1610
    table->GetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1611
#endif // VK_USE_PLATFORM_WIN32_KHR
1612
1613
    // ---- VK_EXT_headless_surface extension commands
1614
0
    table->CreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)gpa(inst, "vkCreateHeadlessSurfaceEXT");
1615
1616
    // ---- VK_EXT_acquire_drm_display extension commands
1617
0
    table->AcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)gpa(inst, "vkAcquireDrmDisplayEXT");
1618
0
    table->GetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)gpa(inst, "vkGetDrmDisplayEXT");
1619
1620
    // ---- VK_NV_acquire_winrt_display extension commands
1621
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1622
    table->AcquireWinrtDisplayNV = (PFN_vkAcquireWinrtDisplayNV)gpa(inst, "vkAcquireWinrtDisplayNV");
1623
#endif // VK_USE_PLATFORM_WIN32_KHR
1624
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1625
    table->GetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)gpa(inst, "vkGetWinrtDisplayNV");
1626
#endif // VK_USE_PLATFORM_WIN32_KHR
1627
1628
    // ---- VK_EXT_directfb_surface extension commands
1629
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1630
    table->CreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)gpa(inst, "vkCreateDirectFBSurfaceEXT");
1631
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
1632
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1633
    table->GetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)gpa(inst, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1634
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
1635
1636
    // ---- VK_QNX_screen_surface extension commands
1637
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1638
    table->CreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)gpa(inst, "vkCreateScreenSurfaceQNX");
1639
#endif // VK_USE_PLATFORM_SCREEN_QNX
1640
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1641
    table->GetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)gpa(inst, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
1642
#endif // VK_USE_PLATFORM_SCREEN_QNX
1643
1644
    // ---- VK_ARM_tensors extension commands
1645
0
    table->GetPhysicalDeviceExternalTensorPropertiesARM = (PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)gpa(inst, "vkGetPhysicalDeviceExternalTensorPropertiesARM");
1646
1647
    // ---- VK_NV_optical_flow extension commands
1648
0
    table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
1649
1650
    // ---- VK_NV_cooperative_vector extension commands
1651
0
    table->GetPhysicalDeviceCooperativeVectorPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV");
1652
1653
    // ---- VK_ARM_data_graph extension commands
1654
0
    table->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = (PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)gpa(inst, "vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM");
1655
0
    table->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = (PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)gpa(inst, "vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM");
1656
1657
    // ---- VK_OHOS_surface extension commands
1658
#if defined(VK_USE_PLATFORM_OHOS)
1659
    table->CreateSurfaceOHOS = (PFN_vkCreateSurfaceOHOS)gpa(inst, "vkCreateSurfaceOHOS");
1660
#endif // VK_USE_PLATFORM_OHOS
1661
1662
    // ---- VK_NV_cooperative_matrix2 extension commands
1663
0
    table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
1664
1665
    // ---- VK_ARM_performance_counters_by_region extension commands
1666
0
    table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM");
1667
0
}
1668
1669
// Functions that required a terminator need to have a separate dispatch table which contains their corresponding
1670
// device function. This is used in the terminators themselves.
1671
0
void init_extension_device_proc_terminator_dispatch(struct loader_device *dev) {
1672
0
    struct loader_device_terminator_dispatch* dispatch = &dev->loader_dispatch.extension_terminator_dispatch;
1673
0
    PFN_vkGetDeviceProcAddr gpda = (PFN_vkGetDeviceProcAddr)dev->phys_dev_term->this_icd_term->dispatch.GetDeviceProcAddr;
1674
1675
    // ---- VK_KHR_swapchain extension commands
1676
0
    if (dev->driver_extensions.khr_swapchain_enabled)
1677
0
       dispatch->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gpda(dev->icd_device, "vkCreateSwapchainKHR");
1678
0
    if (dev->driver_extensions.khr_swapchain_enabled || dev->driver_extensions.khr_device_group_enabled)
1679
0
       dispatch->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModesKHR");
1680
1681
    // ---- VK_KHR_display_swapchain extension commands
1682
0
    if (dev->driver_extensions.khr_display_swapchain_enabled)
1683
0
       dispatch->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gpda(dev->icd_device, "vkCreateSharedSwapchainsKHR");
1684
1685
    // ---- VK_EXT_debug_marker extension commands
1686
0
    if (dev->driver_extensions.ext_debug_marker_enabled)
1687
0
       dispatch->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectTagEXT");
1688
0
    if (dev->driver_extensions.ext_debug_marker_enabled)
1689
0
       dispatch->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectNameEXT");
1690
1691
    // ---- VK_EXT_debug_utils extension commands
1692
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1693
0
       dispatch->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectNameEXT");
1694
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1695
0
       dispatch->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectTagEXT");
1696
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1697
0
       dispatch->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueBeginDebugUtilsLabelEXT");
1698
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1699
0
       dispatch->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueEndDebugUtilsLabelEXT");
1700
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1701
0
       dispatch->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueInsertDebugUtilsLabelEXT");
1702
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1703
0
       dispatch->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdBeginDebugUtilsLabelEXT");
1704
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1705
0
       dispatch->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdEndDebugUtilsLabelEXT");
1706
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1707
0
       dispatch->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdInsertDebugUtilsLabelEXT");
1708
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1709
1710
    // ---- VK_EXT_full_screen_exclusive extension commands
1711
    if (dev->driver_extensions.ext_full_screen_exclusive_enabled)
1712
       dispatch->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModes2EXT");
1713
#endif // VK_USE_PLATFORM_WIN32_KHR
1714
0
}
1715
1716
// These are prototypes for functions that need their trampoline called in all circumstances.
1717
// They are used in loader_lookup_device_dispatch_table but are defined afterwards.
1718
1719
    // ---- VK_EXT_debug_marker extension commands
1720
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
1721
    VkDevice                                    device,
1722
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
1723
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
1724
    VkDevice                                    device,
1725
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
1726
1727
    // ---- VK_EXT_debug_utils extension commands
1728
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
1729
    VkDevice                                    device,
1730
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
1731
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
1732
    VkDevice                                    device,
1733
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
1734
1735
// Device command lookup function
1736
0
VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDispatchTable *table, const char *name, bool* found_name) {
1737
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
1738
0
        *found_name = false;
1739
0
        return NULL;
1740
0
    }
1741
1742
0
    name += 2;
1743
0
    *found_name = true;
1744
0
    struct loader_device* dev = (struct loader_device *)table;
1745
0
    const struct loader_instance* inst = dev->phys_dev_term->this_icd_term->this_instance;
1746
0
    uint32_t api_version = VK_MAKE_API_VERSION(0, inst->app_api_version.major, inst->app_api_version.minor, inst->app_api_version.patch);
1747
1748
1749
    // ---- Core Vulkan 1.0 commands
1750
0
    if (!strcmp(name, "GetDeviceProcAddr")) {
1751
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1752
0
        return (void *)table->GetDeviceProcAddr;
1753
0
    }
1754
0
    if (!strcmp(name, "DestroyDevice")) {
1755
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1756
0
        return (void *)table->DestroyDevice;
1757
0
    }
1758
0
    if (!strcmp(name, "GetDeviceQueue")) {
1759
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1760
0
        return (void *)table->GetDeviceQueue;
1761
0
    }
1762
0
    if (!strcmp(name, "QueueSubmit")) {
1763
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1764
0
        return (void *)table->QueueSubmit;
1765
0
    }
1766
0
    if (!strcmp(name, "QueueWaitIdle")) {
1767
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1768
0
        return (void *)table->QueueWaitIdle;
1769
0
    }
1770
0
    if (!strcmp(name, "DeviceWaitIdle")) {
1771
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1772
0
        return (void *)table->DeviceWaitIdle;
1773
0
    }
1774
0
    if (!strcmp(name, "AllocateMemory")) {
1775
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1776
0
        return (void *)table->AllocateMemory;
1777
0
    }
1778
0
    if (!strcmp(name, "FreeMemory")) {
1779
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1780
0
        return (void *)table->FreeMemory;
1781
0
    }
1782
0
    if (!strcmp(name, "MapMemory")) {
1783
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1784
0
        return (void *)table->MapMemory;
1785
0
    }
1786
0
    if (!strcmp(name, "UnmapMemory")) {
1787
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1788
0
        return (void *)table->UnmapMemory;
1789
0
    }
1790
0
    if (!strcmp(name, "FlushMappedMemoryRanges")) {
1791
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1792
0
        return (void *)table->FlushMappedMemoryRanges;
1793
0
    }
1794
0
    if (!strcmp(name, "InvalidateMappedMemoryRanges")) {
1795
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1796
0
        return (void *)table->InvalidateMappedMemoryRanges;
1797
0
    }
1798
0
    if (!strcmp(name, "GetDeviceMemoryCommitment")) {
1799
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1800
0
        return (void *)table->GetDeviceMemoryCommitment;
1801
0
    }
1802
0
    if (!strcmp(name, "BindBufferMemory")) {
1803
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1804
0
        return (void *)table->BindBufferMemory;
1805
0
    }
1806
0
    if (!strcmp(name, "BindImageMemory")) {
1807
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1808
0
        return (void *)table->BindImageMemory;
1809
0
    }
1810
0
    if (!strcmp(name, "GetBufferMemoryRequirements")) {
1811
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1812
0
        return (void *)table->GetBufferMemoryRequirements;
1813
0
    }
1814
0
    if (!strcmp(name, "GetImageMemoryRequirements")) {
1815
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1816
0
        return (void *)table->GetImageMemoryRequirements;
1817
0
    }
1818
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements")) {
1819
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1820
0
        return (void *)table->GetImageSparseMemoryRequirements;
1821
0
    }
1822
0
    if (!strcmp(name, "QueueBindSparse")) {
1823
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1824
0
        return (void *)table->QueueBindSparse;
1825
0
    }
1826
0
    if (!strcmp(name, "CreateFence")) {
1827
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1828
0
        return (void *)table->CreateFence;
1829
0
    }
1830
0
    if (!strcmp(name, "DestroyFence")) {
1831
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1832
0
        return (void *)table->DestroyFence;
1833
0
    }
1834
0
    if (!strcmp(name, "ResetFences")) {
1835
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1836
0
        return (void *)table->ResetFences;
1837
0
    }
1838
0
    if (!strcmp(name, "GetFenceStatus")) {
1839
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1840
0
        return (void *)table->GetFenceStatus;
1841
0
    }
1842
0
    if (!strcmp(name, "WaitForFences")) {
1843
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1844
0
        return (void *)table->WaitForFences;
1845
0
    }
1846
0
    if (!strcmp(name, "CreateSemaphore")) {
1847
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1848
0
        return (void *)table->CreateSemaphore;
1849
0
    }
1850
0
    if (!strcmp(name, "DestroySemaphore")) {
1851
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1852
0
        return (void *)table->DestroySemaphore;
1853
0
    }
1854
0
    if (!strcmp(name, "CreateQueryPool")) {
1855
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1856
0
        return (void *)table->CreateQueryPool;
1857
0
    }
1858
0
    if (!strcmp(name, "DestroyQueryPool")) {
1859
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1860
0
        return (void *)table->DestroyQueryPool;
1861
0
    }
1862
0
    if (!strcmp(name, "GetQueryPoolResults")) {
1863
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1864
0
        return (void *)table->GetQueryPoolResults;
1865
0
    }
1866
0
    if (!strcmp(name, "CreateBuffer")) {
1867
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1868
0
        return (void *)table->CreateBuffer;
1869
0
    }
1870
0
    if (!strcmp(name, "DestroyBuffer")) {
1871
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1872
0
        return (void *)table->DestroyBuffer;
1873
0
    }
1874
0
    if (!strcmp(name, "CreateImage")) {
1875
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1876
0
        return (void *)table->CreateImage;
1877
0
    }
1878
0
    if (!strcmp(name, "DestroyImage")) {
1879
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1880
0
        return (void *)table->DestroyImage;
1881
0
    }
1882
0
    if (!strcmp(name, "GetImageSubresourceLayout")) {
1883
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1884
0
        return (void *)table->GetImageSubresourceLayout;
1885
0
    }
1886
0
    if (!strcmp(name, "CreateImageView")) {
1887
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1888
0
        return (void *)table->CreateImageView;
1889
0
    }
1890
0
    if (!strcmp(name, "DestroyImageView")) {
1891
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1892
0
        return (void *)table->DestroyImageView;
1893
0
    }
1894
0
    if (!strcmp(name, "CreateCommandPool")) {
1895
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1896
0
        return (void *)table->CreateCommandPool;
1897
0
    }
1898
0
    if (!strcmp(name, "DestroyCommandPool")) {
1899
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1900
0
        return (void *)table->DestroyCommandPool;
1901
0
    }
1902
0
    if (!strcmp(name, "ResetCommandPool")) {
1903
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1904
0
        return (void *)table->ResetCommandPool;
1905
0
    }
1906
0
    if (!strcmp(name, "AllocateCommandBuffers")) {
1907
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1908
0
        return (void *)table->AllocateCommandBuffers;
1909
0
    }
1910
0
    if (!strcmp(name, "FreeCommandBuffers")) {
1911
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1912
0
        return (void *)table->FreeCommandBuffers;
1913
0
    }
1914
0
    if (!strcmp(name, "BeginCommandBuffer")) {
1915
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1916
0
        return (void *)table->BeginCommandBuffer;
1917
0
    }
1918
0
    if (!strcmp(name, "EndCommandBuffer")) {
1919
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1920
0
        return (void *)table->EndCommandBuffer;
1921
0
    }
1922
0
    if (!strcmp(name, "ResetCommandBuffer")) {
1923
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1924
0
        return (void *)table->ResetCommandBuffer;
1925
0
    }
1926
0
    if (!strcmp(name, "CmdCopyBuffer")) {
1927
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1928
0
        return (void *)table->CmdCopyBuffer;
1929
0
    }
1930
0
    if (!strcmp(name, "CmdCopyImage")) {
1931
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1932
0
        return (void *)table->CmdCopyImage;
1933
0
    }
1934
0
    if (!strcmp(name, "CmdCopyBufferToImage")) {
1935
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1936
0
        return (void *)table->CmdCopyBufferToImage;
1937
0
    }
1938
0
    if (!strcmp(name, "CmdCopyImageToBuffer")) {
1939
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1940
0
        return (void *)table->CmdCopyImageToBuffer;
1941
0
    }
1942
0
    if (!strcmp(name, "CmdUpdateBuffer")) {
1943
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1944
0
        return (void *)table->CmdUpdateBuffer;
1945
0
    }
1946
0
    if (!strcmp(name, "CmdFillBuffer")) {
1947
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1948
0
        return (void *)table->CmdFillBuffer;
1949
0
    }
1950
0
    if (!strcmp(name, "CmdPipelineBarrier")) {
1951
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1952
0
        return (void *)table->CmdPipelineBarrier;
1953
0
    }
1954
0
    if (!strcmp(name, "CmdBeginQuery")) {
1955
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1956
0
        return (void *)table->CmdBeginQuery;
1957
0
    }
1958
0
    if (!strcmp(name, "CmdEndQuery")) {
1959
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1960
0
        return (void *)table->CmdEndQuery;
1961
0
    }
1962
0
    if (!strcmp(name, "CmdResetQueryPool")) {
1963
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1964
0
        return (void *)table->CmdResetQueryPool;
1965
0
    }
1966
0
    if (!strcmp(name, "CmdWriteTimestamp")) {
1967
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1968
0
        return (void *)table->CmdWriteTimestamp;
1969
0
    }
1970
0
    if (!strcmp(name, "CmdCopyQueryPoolResults")) {
1971
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1972
0
        return (void *)table->CmdCopyQueryPoolResults;
1973
0
    }
1974
0
    if (!strcmp(name, "CmdExecuteCommands")) {
1975
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1976
0
        return (void *)table->CmdExecuteCommands;
1977
0
    }
1978
0
    if (!strcmp(name, "CreateEvent")) {
1979
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1980
0
        return (void *)table->CreateEvent;
1981
0
    }
1982
0
    if (!strcmp(name, "DestroyEvent")) {
1983
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1984
0
        return (void *)table->DestroyEvent;
1985
0
    }
1986
0
    if (!strcmp(name, "GetEventStatus")) {
1987
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1988
0
        return (void *)table->GetEventStatus;
1989
0
    }
1990
0
    if (!strcmp(name, "SetEvent")) {
1991
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1992
0
        return (void *)table->SetEvent;
1993
0
    }
1994
0
    if (!strcmp(name, "ResetEvent")) {
1995
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1996
0
        return (void *)table->ResetEvent;
1997
0
    }
1998
0
    if (!strcmp(name, "CreateBufferView")) {
1999
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2000
0
        return (void *)table->CreateBufferView;
2001
0
    }
2002
0
    if (!strcmp(name, "DestroyBufferView")) {
2003
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2004
0
        return (void *)table->DestroyBufferView;
2005
0
    }
2006
0
    if (!strcmp(name, "CreateShaderModule")) {
2007
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2008
0
        return (void *)table->CreateShaderModule;
2009
0
    }
2010
0
    if (!strcmp(name, "DestroyShaderModule")) {
2011
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2012
0
        return (void *)table->DestroyShaderModule;
2013
0
    }
2014
0
    if (!strcmp(name, "CreatePipelineCache")) {
2015
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2016
0
        return (void *)table->CreatePipelineCache;
2017
0
    }
2018
0
    if (!strcmp(name, "DestroyPipelineCache")) {
2019
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2020
0
        return (void *)table->DestroyPipelineCache;
2021
0
    }
2022
0
    if (!strcmp(name, "GetPipelineCacheData")) {
2023
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2024
0
        return (void *)table->GetPipelineCacheData;
2025
0
    }
2026
0
    if (!strcmp(name, "MergePipelineCaches")) {
2027
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2028
0
        return (void *)table->MergePipelineCaches;
2029
0
    }
2030
0
    if (!strcmp(name, "CreateComputePipelines")) {
2031
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2032
0
        return (void *)table->CreateComputePipelines;
2033
0
    }
2034
0
    if (!strcmp(name, "DestroyPipeline")) {
2035
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2036
0
        return (void *)table->DestroyPipeline;
2037
0
    }
2038
0
    if (!strcmp(name, "CreatePipelineLayout")) {
2039
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2040
0
        return (void *)table->CreatePipelineLayout;
2041
0
    }
2042
0
    if (!strcmp(name, "DestroyPipelineLayout")) {
2043
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2044
0
        return (void *)table->DestroyPipelineLayout;
2045
0
    }
2046
0
    if (!strcmp(name, "CreateSampler")) {
2047
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2048
0
        return (void *)table->CreateSampler;
2049
0
    }
2050
0
    if (!strcmp(name, "DestroySampler")) {
2051
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2052
0
        return (void *)table->DestroySampler;
2053
0
    }
2054
0
    if (!strcmp(name, "CreateDescriptorSetLayout")) {
2055
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2056
0
        return (void *)table->CreateDescriptorSetLayout;
2057
0
    }
2058
0
    if (!strcmp(name, "DestroyDescriptorSetLayout")) {
2059
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2060
0
        return (void *)table->DestroyDescriptorSetLayout;
2061
0
    }
2062
0
    if (!strcmp(name, "CreateDescriptorPool")) {
2063
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2064
0
        return (void *)table->CreateDescriptorPool;
2065
0
    }
2066
0
    if (!strcmp(name, "DestroyDescriptorPool")) {
2067
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2068
0
        return (void *)table->DestroyDescriptorPool;
2069
0
    }
2070
0
    if (!strcmp(name, "ResetDescriptorPool")) {
2071
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2072
0
        return (void *)table->ResetDescriptorPool;
2073
0
    }
2074
0
    if (!strcmp(name, "AllocateDescriptorSets")) {
2075
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2076
0
        return (void *)table->AllocateDescriptorSets;
2077
0
    }
2078
0
    if (!strcmp(name, "FreeDescriptorSets")) {
2079
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2080
0
        return (void *)table->FreeDescriptorSets;
2081
0
    }
2082
0
    if (!strcmp(name, "UpdateDescriptorSets")) {
2083
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2084
0
        return (void *)table->UpdateDescriptorSets;
2085
0
    }
2086
0
    if (!strcmp(name, "CmdBindPipeline")) {
2087
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2088
0
        return (void *)table->CmdBindPipeline;
2089
0
    }
2090
0
    if (!strcmp(name, "CmdBindDescriptorSets")) {
2091
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2092
0
        return (void *)table->CmdBindDescriptorSets;
2093
0
    }
2094
0
    if (!strcmp(name, "CmdClearColorImage")) {
2095
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2096
0
        return (void *)table->CmdClearColorImage;
2097
0
    }
2098
0
    if (!strcmp(name, "CmdDispatch")) {
2099
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2100
0
        return (void *)table->CmdDispatch;
2101
0
    }
2102
0
    if (!strcmp(name, "CmdDispatchIndirect")) {
2103
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2104
0
        return (void *)table->CmdDispatchIndirect;
2105
0
    }
2106
0
    if (!strcmp(name, "CmdSetEvent")) {
2107
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2108
0
        return (void *)table->CmdSetEvent;
2109
0
    }
2110
0
    if (!strcmp(name, "CmdResetEvent")) {
2111
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2112
0
        return (void *)table->CmdResetEvent;
2113
0
    }
2114
0
    if (!strcmp(name, "CmdWaitEvents")) {
2115
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2116
0
        return (void *)table->CmdWaitEvents;
2117
0
    }
2118
0
    if (!strcmp(name, "CmdPushConstants")) {
2119
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2120
0
        return (void *)table->CmdPushConstants;
2121
0
    }
2122
0
    if (!strcmp(name, "CreateGraphicsPipelines")) {
2123
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2124
0
        return (void *)table->CreateGraphicsPipelines;
2125
0
    }
2126
0
    if (!strcmp(name, "CreateFramebuffer")) {
2127
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2128
0
        return (void *)table->CreateFramebuffer;
2129
0
    }
2130
0
    if (!strcmp(name, "DestroyFramebuffer")) {
2131
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2132
0
        return (void *)table->DestroyFramebuffer;
2133
0
    }
2134
0
    if (!strcmp(name, "CreateRenderPass")) {
2135
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2136
0
        return (void *)table->CreateRenderPass;
2137
0
    }
2138
0
    if (!strcmp(name, "DestroyRenderPass")) {
2139
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2140
0
        return (void *)table->DestroyRenderPass;
2141
0
    }
2142
0
    if (!strcmp(name, "GetRenderAreaGranularity")) {
2143
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2144
0
        return (void *)table->GetRenderAreaGranularity;
2145
0
    }
2146
0
    if (!strcmp(name, "CmdSetViewport")) {
2147
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2148
0
        return (void *)table->CmdSetViewport;
2149
0
    }
2150
0
    if (!strcmp(name, "CmdSetScissor")) {
2151
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2152
0
        return (void *)table->CmdSetScissor;
2153
0
    }
2154
0
    if (!strcmp(name, "CmdSetLineWidth")) {
2155
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2156
0
        return (void *)table->CmdSetLineWidth;
2157
0
    }
2158
0
    if (!strcmp(name, "CmdSetDepthBias")) {
2159
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2160
0
        return (void *)table->CmdSetDepthBias;
2161
0
    }
2162
0
    if (!strcmp(name, "CmdSetBlendConstants")) {
2163
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2164
0
        return (void *)table->CmdSetBlendConstants;
2165
0
    }
2166
0
    if (!strcmp(name, "CmdSetDepthBounds")) {
2167
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2168
0
        return (void *)table->CmdSetDepthBounds;
2169
0
    }
2170
0
    if (!strcmp(name, "CmdSetStencilCompareMask")) {
2171
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2172
0
        return (void *)table->CmdSetStencilCompareMask;
2173
0
    }
2174
0
    if (!strcmp(name, "CmdSetStencilWriteMask")) {
2175
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2176
0
        return (void *)table->CmdSetStencilWriteMask;
2177
0
    }
2178
0
    if (!strcmp(name, "CmdSetStencilReference")) {
2179
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2180
0
        return (void *)table->CmdSetStencilReference;
2181
0
    }
2182
0
    if (!strcmp(name, "CmdBindIndexBuffer")) {
2183
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2184
0
        return (void *)table->CmdBindIndexBuffer;
2185
0
    }
2186
0
    if (!strcmp(name, "CmdBindVertexBuffers")) {
2187
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2188
0
        return (void *)table->CmdBindVertexBuffers;
2189
0
    }
2190
0
    if (!strcmp(name, "CmdDraw")) {
2191
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2192
0
        return (void *)table->CmdDraw;
2193
0
    }
2194
0
    if (!strcmp(name, "CmdDrawIndexed")) {
2195
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2196
0
        return (void *)table->CmdDrawIndexed;
2197
0
    }
2198
0
    if (!strcmp(name, "CmdDrawIndirect")) {
2199
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2200
0
        return (void *)table->CmdDrawIndirect;
2201
0
    }
2202
0
    if (!strcmp(name, "CmdDrawIndexedIndirect")) {
2203
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2204
0
        return (void *)table->CmdDrawIndexedIndirect;
2205
0
    }
2206
0
    if (!strcmp(name, "CmdBlitImage")) {
2207
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2208
0
        return (void *)table->CmdBlitImage;
2209
0
    }
2210
0
    if (!strcmp(name, "CmdClearDepthStencilImage")) {
2211
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2212
0
        return (void *)table->CmdClearDepthStencilImage;
2213
0
    }
2214
0
    if (!strcmp(name, "CmdClearAttachments")) {
2215
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2216
0
        return (void *)table->CmdClearAttachments;
2217
0
    }
2218
0
    if (!strcmp(name, "CmdResolveImage")) {
2219
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2220
0
        return (void *)table->CmdResolveImage;
2221
0
    }
2222
0
    if (!strcmp(name, "CmdBeginRenderPass")) {
2223
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2224
0
        return (void *)table->CmdBeginRenderPass;
2225
0
    }
2226
0
    if (!strcmp(name, "CmdNextSubpass")) {
2227
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2228
0
        return (void *)table->CmdNextSubpass;
2229
0
    }
2230
0
    if (!strcmp(name, "CmdEndRenderPass")) {
2231
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2232
0
        return (void *)table->CmdEndRenderPass;
2233
0
    }
2234
2235
    // ---- Core Vulkan 1.1 commands
2236
0
    if (!strcmp(name, "BindBufferMemory2")) {
2237
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2238
0
        return (void *)table->BindBufferMemory2;
2239
0
    }
2240
0
    if (!strcmp(name, "BindImageMemory2")) {
2241
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2242
0
        return (void *)table->BindImageMemory2;
2243
0
    }
2244
0
    if (!strcmp(name, "GetDeviceGroupPeerMemoryFeatures")) {
2245
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2246
0
        return (void *)table->GetDeviceGroupPeerMemoryFeatures;
2247
0
    }
2248
0
    if (!strcmp(name, "CmdSetDeviceMask")) {
2249
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2250
0
        return (void *)table->CmdSetDeviceMask;
2251
0
    }
2252
0
    if (!strcmp(name, "GetImageMemoryRequirements2")) {
2253
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2254
0
        return (void *)table->GetImageMemoryRequirements2;
2255
0
    }
2256
0
    if (!strcmp(name, "GetBufferMemoryRequirements2")) {
2257
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2258
0
        return (void *)table->GetBufferMemoryRequirements2;
2259
0
    }
2260
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements2")) {
2261
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2262
0
        return (void *)table->GetImageSparseMemoryRequirements2;
2263
0
    }
2264
0
    if (!strcmp(name, "TrimCommandPool")) {
2265
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2266
0
        return (void *)table->TrimCommandPool;
2267
0
    }
2268
0
    if (!strcmp(name, "GetDeviceQueue2")) {
2269
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2270
0
        return (void *)table->GetDeviceQueue2;
2271
0
    }
2272
0
    if (!strcmp(name, "CmdDispatchBase")) {
2273
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2274
0
        return (void *)table->CmdDispatchBase;
2275
0
    }
2276
0
    if (!strcmp(name, "CreateDescriptorUpdateTemplate")) {
2277
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2278
0
        return (void *)table->CreateDescriptorUpdateTemplate;
2279
0
    }
2280
0
    if (!strcmp(name, "DestroyDescriptorUpdateTemplate")) {
2281
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2282
0
        return (void *)table->DestroyDescriptorUpdateTemplate;
2283
0
    }
2284
0
    if (!strcmp(name, "UpdateDescriptorSetWithTemplate")) {
2285
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2286
0
        return (void *)table->UpdateDescriptorSetWithTemplate;
2287
0
    }
2288
0
    if (!strcmp(name, "GetDescriptorSetLayoutSupport")) {
2289
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2290
0
        return (void *)table->GetDescriptorSetLayoutSupport;
2291
0
    }
2292
0
    if (!strcmp(name, "CreateSamplerYcbcrConversion")) {
2293
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2294
0
        return (void *)table->CreateSamplerYcbcrConversion;
2295
0
    }
2296
0
    if (!strcmp(name, "DestroySamplerYcbcrConversion")) {
2297
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2298
0
        return (void *)table->DestroySamplerYcbcrConversion;
2299
0
    }
2300
2301
    // ---- Core Vulkan 1.2 commands
2302
0
    if (!strcmp(name, "ResetQueryPool")) {
2303
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2304
0
        return (void *)table->ResetQueryPool;
2305
0
    }
2306
0
    if (!strcmp(name, "GetSemaphoreCounterValue")) {
2307
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2308
0
        return (void *)table->GetSemaphoreCounterValue;
2309
0
    }
2310
0
    if (!strcmp(name, "WaitSemaphores")) {
2311
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2312
0
        return (void *)table->WaitSemaphores;
2313
0
    }
2314
0
    if (!strcmp(name, "SignalSemaphore")) {
2315
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2316
0
        return (void *)table->SignalSemaphore;
2317
0
    }
2318
0
    if (!strcmp(name, "GetBufferDeviceAddress")) {
2319
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2320
0
        return (void *)table->GetBufferDeviceAddress;
2321
0
    }
2322
0
    if (!strcmp(name, "GetBufferOpaqueCaptureAddress")) {
2323
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2324
0
        return (void *)table->GetBufferOpaqueCaptureAddress;
2325
0
    }
2326
0
    if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddress")) {
2327
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2328
0
        return (void *)table->GetDeviceMemoryOpaqueCaptureAddress;
2329
0
    }
2330
0
    if (!strcmp(name, "CmdDrawIndirectCount")) {
2331
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2332
0
        return (void *)table->CmdDrawIndirectCount;
2333
0
    }
2334
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCount")) {
2335
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2336
0
        return (void *)table->CmdDrawIndexedIndirectCount;
2337
0
    }
2338
0
    if (!strcmp(name, "CreateRenderPass2")) {
2339
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2340
0
        return (void *)table->CreateRenderPass2;
2341
0
    }
2342
0
    if (!strcmp(name, "CmdBeginRenderPass2")) {
2343
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2344
0
        return (void *)table->CmdBeginRenderPass2;
2345
0
    }
2346
0
    if (!strcmp(name, "CmdNextSubpass2")) {
2347
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2348
0
        return (void *)table->CmdNextSubpass2;
2349
0
    }
2350
0
    if (!strcmp(name, "CmdEndRenderPass2")) {
2351
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2352
0
        return (void *)table->CmdEndRenderPass2;
2353
0
    }
2354
2355
    // ---- Core Vulkan 1.3 commands
2356
0
    if (!strcmp(name, "CreatePrivateDataSlot")) {
2357
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2358
0
        return (void *)table->CreatePrivateDataSlot;
2359
0
    }
2360
0
    if (!strcmp(name, "DestroyPrivateDataSlot")) {
2361
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2362
0
        return (void *)table->DestroyPrivateDataSlot;
2363
0
    }
2364
0
    if (!strcmp(name, "SetPrivateData")) {
2365
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2366
0
        return (void *)table->SetPrivateData;
2367
0
    }
2368
0
    if (!strcmp(name, "GetPrivateData")) {
2369
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2370
0
        return (void *)table->GetPrivateData;
2371
0
    }
2372
0
    if (!strcmp(name, "CmdPipelineBarrier2")) {
2373
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2374
0
        return (void *)table->CmdPipelineBarrier2;
2375
0
    }
2376
0
    if (!strcmp(name, "CmdWriteTimestamp2")) {
2377
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2378
0
        return (void *)table->CmdWriteTimestamp2;
2379
0
    }
2380
0
    if (!strcmp(name, "QueueSubmit2")) {
2381
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2382
0
        return (void *)table->QueueSubmit2;
2383
0
    }
2384
0
    if (!strcmp(name, "CmdCopyBuffer2")) {
2385
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2386
0
        return (void *)table->CmdCopyBuffer2;
2387
0
    }
2388
0
    if (!strcmp(name, "CmdCopyImage2")) {
2389
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2390
0
        return (void *)table->CmdCopyImage2;
2391
0
    }
2392
0
    if (!strcmp(name, "CmdCopyBufferToImage2")) {
2393
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2394
0
        return (void *)table->CmdCopyBufferToImage2;
2395
0
    }
2396
0
    if (!strcmp(name, "CmdCopyImageToBuffer2")) {
2397
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2398
0
        return (void *)table->CmdCopyImageToBuffer2;
2399
0
    }
2400
0
    if (!strcmp(name, "GetDeviceBufferMemoryRequirements")) {
2401
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2402
0
        return (void *)table->GetDeviceBufferMemoryRequirements;
2403
0
    }
2404
0
    if (!strcmp(name, "GetDeviceImageMemoryRequirements")) {
2405
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2406
0
        return (void *)table->GetDeviceImageMemoryRequirements;
2407
0
    }
2408
0
    if (!strcmp(name, "GetDeviceImageSparseMemoryRequirements")) {
2409
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2410
0
        return (void *)table->GetDeviceImageSparseMemoryRequirements;
2411
0
    }
2412
0
    if (!strcmp(name, "CmdSetEvent2")) {
2413
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2414
0
        return (void *)table->CmdSetEvent2;
2415
0
    }
2416
0
    if (!strcmp(name, "CmdResetEvent2")) {
2417
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2418
0
        return (void *)table->CmdResetEvent2;
2419
0
    }
2420
0
    if (!strcmp(name, "CmdWaitEvents2")) {
2421
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2422
0
        return (void *)table->CmdWaitEvents2;
2423
0
    }
2424
0
    if (!strcmp(name, "CmdBlitImage2")) {
2425
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2426
0
        return (void *)table->CmdBlitImage2;
2427
0
    }
2428
0
    if (!strcmp(name, "CmdResolveImage2")) {
2429
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2430
0
        return (void *)table->CmdResolveImage2;
2431
0
    }
2432
0
    if (!strcmp(name, "CmdBeginRendering")) {
2433
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2434
0
        return (void *)table->CmdBeginRendering;
2435
0
    }
2436
0
    if (!strcmp(name, "CmdEndRendering")) {
2437
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2438
0
        return (void *)table->CmdEndRendering;
2439
0
    }
2440
0
    if (!strcmp(name, "CmdSetCullMode")) {
2441
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2442
0
        return (void *)table->CmdSetCullMode;
2443
0
    }
2444
0
    if (!strcmp(name, "CmdSetFrontFace")) {
2445
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2446
0
        return (void *)table->CmdSetFrontFace;
2447
0
    }
2448
0
    if (!strcmp(name, "CmdSetPrimitiveTopology")) {
2449
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2450
0
        return (void *)table->CmdSetPrimitiveTopology;
2451
0
    }
2452
0
    if (!strcmp(name, "CmdSetViewportWithCount")) {
2453
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2454
0
        return (void *)table->CmdSetViewportWithCount;
2455
0
    }
2456
0
    if (!strcmp(name, "CmdSetScissorWithCount")) {
2457
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2458
0
        return (void *)table->CmdSetScissorWithCount;
2459
0
    }
2460
0
    if (!strcmp(name, "CmdBindVertexBuffers2")) {
2461
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2462
0
        return (void *)table->CmdBindVertexBuffers2;
2463
0
    }
2464
0
    if (!strcmp(name, "CmdSetDepthTestEnable")) {
2465
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2466
0
        return (void *)table->CmdSetDepthTestEnable;
2467
0
    }
2468
0
    if (!strcmp(name, "CmdSetDepthWriteEnable")) {
2469
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2470
0
        return (void *)table->CmdSetDepthWriteEnable;
2471
0
    }
2472
0
    if (!strcmp(name, "CmdSetDepthCompareOp")) {
2473
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2474
0
        return (void *)table->CmdSetDepthCompareOp;
2475
0
    }
2476
0
    if (!strcmp(name, "CmdSetDepthBoundsTestEnable")) {
2477
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2478
0
        return (void *)table->CmdSetDepthBoundsTestEnable;
2479
0
    }
2480
0
    if (!strcmp(name, "CmdSetStencilTestEnable")) {
2481
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2482
0
        return (void *)table->CmdSetStencilTestEnable;
2483
0
    }
2484
0
    if (!strcmp(name, "CmdSetStencilOp")) {
2485
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2486
0
        return (void *)table->CmdSetStencilOp;
2487
0
    }
2488
0
    if (!strcmp(name, "CmdSetRasterizerDiscardEnable")) {
2489
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2490
0
        return (void *)table->CmdSetRasterizerDiscardEnable;
2491
0
    }
2492
0
    if (!strcmp(name, "CmdSetDepthBiasEnable")) {
2493
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2494
0
        return (void *)table->CmdSetDepthBiasEnable;
2495
0
    }
2496
0
    if (!strcmp(name, "CmdSetPrimitiveRestartEnable")) {
2497
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2498
0
        return (void *)table->CmdSetPrimitiveRestartEnable;
2499
0
    }
2500
2501
    // ---- Core Vulkan 1.4 commands
2502
0
    if (!strcmp(name, "MapMemory2")) {
2503
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2504
0
        return (void *)table->MapMemory2;
2505
0
    }
2506
0
    if (!strcmp(name, "UnmapMemory2")) {
2507
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2508
0
        return (void *)table->UnmapMemory2;
2509
0
    }
2510
0
    if (!strcmp(name, "GetDeviceImageSubresourceLayout")) {
2511
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2512
0
        return (void *)table->GetDeviceImageSubresourceLayout;
2513
0
    }
2514
0
    if (!strcmp(name, "GetImageSubresourceLayout2")) {
2515
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2516
0
        return (void *)table->GetImageSubresourceLayout2;
2517
0
    }
2518
0
    if (!strcmp(name, "CopyMemoryToImage")) {
2519
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2520
0
        return (void *)table->CopyMemoryToImage;
2521
0
    }
2522
0
    if (!strcmp(name, "CopyImageToMemory")) {
2523
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2524
0
        return (void *)table->CopyImageToMemory;
2525
0
    }
2526
0
    if (!strcmp(name, "CopyImageToImage")) {
2527
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2528
0
        return (void *)table->CopyImageToImage;
2529
0
    }
2530
0
    if (!strcmp(name, "TransitionImageLayout")) {
2531
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2532
0
        return (void *)table->TransitionImageLayout;
2533
0
    }
2534
0
    if (!strcmp(name, "CmdPushDescriptorSet")) {
2535
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2536
0
        return (void *)table->CmdPushDescriptorSet;
2537
0
    }
2538
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate")) {
2539
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2540
0
        return (void *)table->CmdPushDescriptorSetWithTemplate;
2541
0
    }
2542
0
    if (!strcmp(name, "CmdBindDescriptorSets2")) {
2543
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2544
0
        return (void *)table->CmdBindDescriptorSets2;
2545
0
    }
2546
0
    if (!strcmp(name, "CmdPushConstants2")) {
2547
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2548
0
        return (void *)table->CmdPushConstants2;
2549
0
    }
2550
0
    if (!strcmp(name, "CmdPushDescriptorSet2")) {
2551
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2552
0
        return (void *)table->CmdPushDescriptorSet2;
2553
0
    }
2554
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2")) {
2555
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2556
0
        return (void *)table->CmdPushDescriptorSetWithTemplate2;
2557
0
    }
2558
0
    if (!strcmp(name, "CmdSetLineStipple")) {
2559
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2560
0
        return (void *)table->CmdSetLineStipple;
2561
0
    }
2562
0
    if (!strcmp(name, "CmdBindIndexBuffer2")) {
2563
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2564
0
        return (void *)table->CmdBindIndexBuffer2;
2565
0
    }
2566
0
    if (!strcmp(name, "GetRenderingAreaGranularity")) {
2567
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2568
0
        return (void *)table->GetRenderingAreaGranularity;
2569
0
    }
2570
0
    if (!strcmp(name, "CmdSetRenderingAttachmentLocations")) {
2571
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2572
0
        return (void *)table->CmdSetRenderingAttachmentLocations;
2573
0
    }
2574
0
    if (!strcmp(name, "CmdSetRenderingInputAttachmentIndices")) {
2575
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2576
0
        return (void *)table->CmdSetRenderingInputAttachmentIndices;
2577
0
    }
2578
2579
    // ---- VK_KHR_swapchain extension commands
2580
0
    if (!strcmp(name, "CreateSwapchainKHR")) return (void *)table->CreateSwapchainKHR;
2581
0
    if (!strcmp(name, "DestroySwapchainKHR")) return (void *)table->DestroySwapchainKHR;
2582
0
    if (!strcmp(name, "GetSwapchainImagesKHR")) return (void *)table->GetSwapchainImagesKHR;
2583
0
    if (!strcmp(name, "AcquireNextImageKHR")) return (void *)table->AcquireNextImageKHR;
2584
0
    if (!strcmp(name, "QueuePresentKHR")) return (void *)table->QueuePresentKHR;
2585
0
    if (!strcmp(name, "GetDeviceGroupPresentCapabilitiesKHR")) return (void *)table->GetDeviceGroupPresentCapabilitiesKHR;
2586
0
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) return (void *)table->GetDeviceGroupSurfacePresentModesKHR;
2587
0
    if (!strcmp(name, "AcquireNextImage2KHR")) return (void *)table->AcquireNextImage2KHR;
2588
2589
    // ---- VK_KHR_display_swapchain extension commands
2590
0
    if (!strcmp(name, "CreateSharedSwapchainsKHR")) return (void *)table->CreateSharedSwapchainsKHR;
2591
2592
    // ---- VK_KHR_video_queue extension commands
2593
0
    if (!strcmp(name, "CreateVideoSessionKHR")) return (void *)table->CreateVideoSessionKHR;
2594
0
    if (!strcmp(name, "DestroyVideoSessionKHR")) return (void *)table->DestroyVideoSessionKHR;
2595
0
    if (!strcmp(name, "GetVideoSessionMemoryRequirementsKHR")) return (void *)table->GetVideoSessionMemoryRequirementsKHR;
2596
0
    if (!strcmp(name, "BindVideoSessionMemoryKHR")) return (void *)table->BindVideoSessionMemoryKHR;
2597
0
    if (!strcmp(name, "CreateVideoSessionParametersKHR")) return (void *)table->CreateVideoSessionParametersKHR;
2598
0
    if (!strcmp(name, "UpdateVideoSessionParametersKHR")) return (void *)table->UpdateVideoSessionParametersKHR;
2599
0
    if (!strcmp(name, "DestroyVideoSessionParametersKHR")) return (void *)table->DestroyVideoSessionParametersKHR;
2600
0
    if (!strcmp(name, "CmdBeginVideoCodingKHR")) return (void *)table->CmdBeginVideoCodingKHR;
2601
0
    if (!strcmp(name, "CmdEndVideoCodingKHR")) return (void *)table->CmdEndVideoCodingKHR;
2602
0
    if (!strcmp(name, "CmdControlVideoCodingKHR")) return (void *)table->CmdControlVideoCodingKHR;
2603
2604
    // ---- VK_KHR_video_decode_queue extension commands
2605
0
    if (!strcmp(name, "CmdDecodeVideoKHR")) return (void *)table->CmdDecodeVideoKHR;
2606
2607
    // ---- VK_KHR_dynamic_rendering extension commands
2608
0
    if (!strcmp(name, "CmdBeginRenderingKHR")) return (void *)table->CmdBeginRenderingKHR;
2609
0
    if (!strcmp(name, "CmdEndRenderingKHR")) return (void *)table->CmdEndRenderingKHR;
2610
2611
    // ---- VK_KHR_device_group extension commands
2612
0
    if (!strcmp(name, "GetDeviceGroupPeerMemoryFeaturesKHR")) return (void *)table->GetDeviceGroupPeerMemoryFeaturesKHR;
2613
0
    if (!strcmp(name, "CmdSetDeviceMaskKHR")) return (void *)table->CmdSetDeviceMaskKHR;
2614
0
    if (!strcmp(name, "CmdDispatchBaseKHR")) return (void *)table->CmdDispatchBaseKHR;
2615
2616
    // ---- VK_KHR_maintenance1 extension commands
2617
0
    if (!strcmp(name, "TrimCommandPoolKHR")) return (void *)table->TrimCommandPoolKHR;
2618
2619
    // ---- VK_KHR_external_memory_win32 extension commands
2620
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2621
    if (!strcmp(name, "GetMemoryWin32HandleKHR")) return (void *)table->GetMemoryWin32HandleKHR;
2622
#endif // VK_USE_PLATFORM_WIN32_KHR
2623
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2624
    if (!strcmp(name, "GetMemoryWin32HandlePropertiesKHR")) return (void *)table->GetMemoryWin32HandlePropertiesKHR;
2625
#endif // VK_USE_PLATFORM_WIN32_KHR
2626
2627
    // ---- VK_KHR_external_memory_fd extension commands
2628
0
    if (!strcmp(name, "GetMemoryFdKHR")) return (void *)table->GetMemoryFdKHR;
2629
0
    if (!strcmp(name, "GetMemoryFdPropertiesKHR")) return (void *)table->GetMemoryFdPropertiesKHR;
2630
2631
    // ---- VK_KHR_external_semaphore_win32 extension commands
2632
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2633
    if (!strcmp(name, "ImportSemaphoreWin32HandleKHR")) return (void *)table->ImportSemaphoreWin32HandleKHR;
2634
#endif // VK_USE_PLATFORM_WIN32_KHR
2635
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2636
    if (!strcmp(name, "GetSemaphoreWin32HandleKHR")) return (void *)table->GetSemaphoreWin32HandleKHR;
2637
#endif // VK_USE_PLATFORM_WIN32_KHR
2638
2639
    // ---- VK_KHR_external_semaphore_fd extension commands
2640
0
    if (!strcmp(name, "ImportSemaphoreFdKHR")) return (void *)table->ImportSemaphoreFdKHR;
2641
0
    if (!strcmp(name, "GetSemaphoreFdKHR")) return (void *)table->GetSemaphoreFdKHR;
2642
2643
    // ---- VK_KHR_push_descriptor extension commands
2644
0
    if (!strcmp(name, "CmdPushDescriptorSetKHR")) return (void *)table->CmdPushDescriptorSetKHR;
2645
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplateKHR")) return (void *)table->CmdPushDescriptorSetWithTemplateKHR;
2646
2647
    // ---- VK_KHR_descriptor_update_template extension commands
2648
0
    if (!strcmp(name, "CreateDescriptorUpdateTemplateKHR")) return (void *)table->CreateDescriptorUpdateTemplateKHR;
2649
0
    if (!strcmp(name, "DestroyDescriptorUpdateTemplateKHR")) return (void *)table->DestroyDescriptorUpdateTemplateKHR;
2650
0
    if (!strcmp(name, "UpdateDescriptorSetWithTemplateKHR")) return (void *)table->UpdateDescriptorSetWithTemplateKHR;
2651
2652
    // ---- VK_KHR_create_renderpass2 extension commands
2653
0
    if (!strcmp(name, "CreateRenderPass2KHR")) return (void *)table->CreateRenderPass2KHR;
2654
0
    if (!strcmp(name, "CmdBeginRenderPass2KHR")) return (void *)table->CmdBeginRenderPass2KHR;
2655
0
    if (!strcmp(name, "CmdNextSubpass2KHR")) return (void *)table->CmdNextSubpass2KHR;
2656
0
    if (!strcmp(name, "CmdEndRenderPass2KHR")) return (void *)table->CmdEndRenderPass2KHR;
2657
2658
    // ---- VK_KHR_shared_presentable_image extension commands
2659
0
    if (!strcmp(name, "GetSwapchainStatusKHR")) return (void *)table->GetSwapchainStatusKHR;
2660
2661
    // ---- VK_KHR_external_fence_win32 extension commands
2662
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2663
    if (!strcmp(name, "ImportFenceWin32HandleKHR")) return (void *)table->ImportFenceWin32HandleKHR;
2664
#endif // VK_USE_PLATFORM_WIN32_KHR
2665
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2666
    if (!strcmp(name, "GetFenceWin32HandleKHR")) return (void *)table->GetFenceWin32HandleKHR;
2667
#endif // VK_USE_PLATFORM_WIN32_KHR
2668
2669
    // ---- VK_KHR_external_fence_fd extension commands
2670
0
    if (!strcmp(name, "ImportFenceFdKHR")) return (void *)table->ImportFenceFdKHR;
2671
0
    if (!strcmp(name, "GetFenceFdKHR")) return (void *)table->GetFenceFdKHR;
2672
2673
    // ---- VK_KHR_performance_query extension commands
2674
0
    if (!strcmp(name, "AcquireProfilingLockKHR")) return (void *)table->AcquireProfilingLockKHR;
2675
0
    if (!strcmp(name, "ReleaseProfilingLockKHR")) return (void *)table->ReleaseProfilingLockKHR;
2676
2677
    // ---- VK_KHR_get_memory_requirements2 extension commands
2678
0
    if (!strcmp(name, "GetImageMemoryRequirements2KHR")) return (void *)table->GetImageMemoryRequirements2KHR;
2679
0
    if (!strcmp(name, "GetBufferMemoryRequirements2KHR")) return (void *)table->GetBufferMemoryRequirements2KHR;
2680
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements2KHR")) return (void *)table->GetImageSparseMemoryRequirements2KHR;
2681
2682
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
2683
0
    if (!strcmp(name, "CreateSamplerYcbcrConversionKHR")) return (void *)table->CreateSamplerYcbcrConversionKHR;
2684
0
    if (!strcmp(name, "DestroySamplerYcbcrConversionKHR")) return (void *)table->DestroySamplerYcbcrConversionKHR;
2685
2686
    // ---- VK_KHR_bind_memory2 extension commands
2687
0
    if (!strcmp(name, "BindBufferMemory2KHR")) return (void *)table->BindBufferMemory2KHR;
2688
0
    if (!strcmp(name, "BindImageMemory2KHR")) return (void *)table->BindImageMemory2KHR;
2689
2690
    // ---- VK_KHR_maintenance3 extension commands
2691
0
    if (!strcmp(name, "GetDescriptorSetLayoutSupportKHR")) return (void *)table->GetDescriptorSetLayoutSupportKHR;
2692
2693
    // ---- VK_KHR_draw_indirect_count extension commands
2694
0
    if (!strcmp(name, "CmdDrawIndirectCountKHR")) return (void *)table->CmdDrawIndirectCountKHR;
2695
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCountKHR")) return (void *)table->CmdDrawIndexedIndirectCountKHR;
2696
2697
    // ---- VK_KHR_timeline_semaphore extension commands
2698
0
    if (!strcmp(name, "GetSemaphoreCounterValueKHR")) return (void *)table->GetSemaphoreCounterValueKHR;
2699
0
    if (!strcmp(name, "WaitSemaphoresKHR")) return (void *)table->WaitSemaphoresKHR;
2700
0
    if (!strcmp(name, "SignalSemaphoreKHR")) return (void *)table->SignalSemaphoreKHR;
2701
2702
    // ---- VK_KHR_fragment_shading_rate extension commands
2703
0
    if (!strcmp(name, "CmdSetFragmentShadingRateKHR")) return (void *)table->CmdSetFragmentShadingRateKHR;
2704
2705
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
2706
0
    if (!strcmp(name, "CmdSetRenderingAttachmentLocationsKHR")) return (void *)table->CmdSetRenderingAttachmentLocationsKHR;
2707
0
    if (!strcmp(name, "CmdSetRenderingInputAttachmentIndicesKHR")) return (void *)table->CmdSetRenderingInputAttachmentIndicesKHR;
2708
2709
    // ---- VK_KHR_present_wait extension commands
2710
0
    if (!strcmp(name, "WaitForPresentKHR")) return (void *)table->WaitForPresentKHR;
2711
2712
    // ---- VK_KHR_buffer_device_address extension commands
2713
0
    if (!strcmp(name, "GetBufferDeviceAddressKHR")) return (void *)table->GetBufferDeviceAddressKHR;
2714
0
    if (!strcmp(name, "GetBufferOpaqueCaptureAddressKHR")) return (void *)table->GetBufferOpaqueCaptureAddressKHR;
2715
0
    if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddressKHR")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddressKHR;
2716
2717
    // ---- VK_KHR_deferred_host_operations extension commands
2718
0
    if (!strcmp(name, "CreateDeferredOperationKHR")) return (void *)table->CreateDeferredOperationKHR;
2719
0
    if (!strcmp(name, "DestroyDeferredOperationKHR")) return (void *)table->DestroyDeferredOperationKHR;
2720
0
    if (!strcmp(name, "GetDeferredOperationMaxConcurrencyKHR")) return (void *)table->GetDeferredOperationMaxConcurrencyKHR;
2721
0
    if (!strcmp(name, "GetDeferredOperationResultKHR")) return (void *)table->GetDeferredOperationResultKHR;
2722
0
    if (!strcmp(name, "DeferredOperationJoinKHR")) return (void *)table->DeferredOperationJoinKHR;
2723
2724
    // ---- VK_KHR_pipeline_executable_properties extension commands
2725
0
    if (!strcmp(name, "GetPipelineExecutablePropertiesKHR")) return (void *)table->GetPipelineExecutablePropertiesKHR;
2726
0
    if (!strcmp(name, "GetPipelineExecutableStatisticsKHR")) return (void *)table->GetPipelineExecutableStatisticsKHR;
2727
0
    if (!strcmp(name, "GetPipelineExecutableInternalRepresentationsKHR")) return (void *)table->GetPipelineExecutableInternalRepresentationsKHR;
2728
2729
    // ---- VK_KHR_map_memory2 extension commands
2730
0
    if (!strcmp(name, "MapMemory2KHR")) return (void *)table->MapMemory2KHR;
2731
0
    if (!strcmp(name, "UnmapMemory2KHR")) return (void *)table->UnmapMemory2KHR;
2732
2733
    // ---- VK_KHR_video_encode_queue extension commands
2734
0
    if (!strcmp(name, "GetEncodedVideoSessionParametersKHR")) return (void *)table->GetEncodedVideoSessionParametersKHR;
2735
0
    if (!strcmp(name, "CmdEncodeVideoKHR")) return (void *)table->CmdEncodeVideoKHR;
2736
2737
    // ---- VK_KHR_synchronization2 extension commands
2738
0
    if (!strcmp(name, "CmdSetEvent2KHR")) return (void *)table->CmdSetEvent2KHR;
2739
0
    if (!strcmp(name, "CmdResetEvent2KHR")) return (void *)table->CmdResetEvent2KHR;
2740
0
    if (!strcmp(name, "CmdWaitEvents2KHR")) return (void *)table->CmdWaitEvents2KHR;
2741
0
    if (!strcmp(name, "CmdPipelineBarrier2KHR")) return (void *)table->CmdPipelineBarrier2KHR;
2742
0
    if (!strcmp(name, "CmdWriteTimestamp2KHR")) return (void *)table->CmdWriteTimestamp2KHR;
2743
0
    if (!strcmp(name, "QueueSubmit2KHR")) return (void *)table->QueueSubmit2KHR;
2744
2745
    // ---- VK_KHR_copy_commands2 extension commands
2746
0
    if (!strcmp(name, "CmdCopyBuffer2KHR")) return (void *)table->CmdCopyBuffer2KHR;
2747
0
    if (!strcmp(name, "CmdCopyImage2KHR")) return (void *)table->CmdCopyImage2KHR;
2748
0
    if (!strcmp(name, "CmdCopyBufferToImage2KHR")) return (void *)table->CmdCopyBufferToImage2KHR;
2749
0
    if (!strcmp(name, "CmdCopyImageToBuffer2KHR")) return (void *)table->CmdCopyImageToBuffer2KHR;
2750
0
    if (!strcmp(name, "CmdBlitImage2KHR")) return (void *)table->CmdBlitImage2KHR;
2751
0
    if (!strcmp(name, "CmdResolveImage2KHR")) return (void *)table->CmdResolveImage2KHR;
2752
2753
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
2754
0
    if (!strcmp(name, "CmdTraceRaysIndirect2KHR")) return (void *)table->CmdTraceRaysIndirect2KHR;
2755
2756
    // ---- VK_KHR_maintenance4 extension commands
2757
0
    if (!strcmp(name, "GetDeviceBufferMemoryRequirementsKHR")) return (void *)table->GetDeviceBufferMemoryRequirementsKHR;
2758
0
    if (!strcmp(name, "GetDeviceImageMemoryRequirementsKHR")) return (void *)table->GetDeviceImageMemoryRequirementsKHR;
2759
0
    if (!strcmp(name, "GetDeviceImageSparseMemoryRequirementsKHR")) return (void *)table->GetDeviceImageSparseMemoryRequirementsKHR;
2760
2761
    // ---- VK_KHR_maintenance5 extension commands
2762
0
    if (!strcmp(name, "CmdBindIndexBuffer2KHR")) return (void *)table->CmdBindIndexBuffer2KHR;
2763
0
    if (!strcmp(name, "GetRenderingAreaGranularityKHR")) return (void *)table->GetRenderingAreaGranularityKHR;
2764
0
    if (!strcmp(name, "GetDeviceImageSubresourceLayoutKHR")) return (void *)table->GetDeviceImageSubresourceLayoutKHR;
2765
0
    if (!strcmp(name, "GetImageSubresourceLayout2KHR")) return (void *)table->GetImageSubresourceLayout2KHR;
2766
2767
    // ---- VK_KHR_present_wait2 extension commands
2768
0
    if (!strcmp(name, "WaitForPresent2KHR")) return (void *)table->WaitForPresent2KHR;
2769
2770
    // ---- VK_KHR_pipeline_binary extension commands
2771
0
    if (!strcmp(name, "CreatePipelineBinariesKHR")) return (void *)table->CreatePipelineBinariesKHR;
2772
0
    if (!strcmp(name, "DestroyPipelineBinaryKHR")) return (void *)table->DestroyPipelineBinaryKHR;
2773
0
    if (!strcmp(name, "GetPipelineKeyKHR")) return (void *)table->GetPipelineKeyKHR;
2774
0
    if (!strcmp(name, "GetPipelineBinaryDataKHR")) return (void *)table->GetPipelineBinaryDataKHR;
2775
0
    if (!strcmp(name, "ReleaseCapturedPipelineDataKHR")) return (void *)table->ReleaseCapturedPipelineDataKHR;
2776
2777
    // ---- VK_KHR_swapchain_maintenance1 extension commands
2778
0
    if (!strcmp(name, "ReleaseSwapchainImagesKHR")) return (void *)table->ReleaseSwapchainImagesKHR;
2779
2780
    // ---- VK_KHR_line_rasterization extension commands
2781
0
    if (!strcmp(name, "CmdSetLineStippleKHR")) return (void *)table->CmdSetLineStippleKHR;
2782
2783
    // ---- VK_KHR_calibrated_timestamps extension commands
2784
0
    if (!strcmp(name, "GetCalibratedTimestampsKHR")) return (void *)table->GetCalibratedTimestampsKHR;
2785
2786
    // ---- VK_KHR_maintenance6 extension commands
2787
0
    if (!strcmp(name, "CmdBindDescriptorSets2KHR")) return (void *)table->CmdBindDescriptorSets2KHR;
2788
0
    if (!strcmp(name, "CmdPushConstants2KHR")) return (void *)table->CmdPushConstants2KHR;
2789
0
    if (!strcmp(name, "CmdPushDescriptorSet2KHR")) return (void *)table->CmdPushDescriptorSet2KHR;
2790
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2KHR")) return (void *)table->CmdPushDescriptorSetWithTemplate2KHR;
2791
0
    if (!strcmp(name, "CmdSetDescriptorBufferOffsets2EXT")) return (void *)table->CmdSetDescriptorBufferOffsets2EXT;
2792
0
    if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplers2EXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplers2EXT;
2793
2794
    // ---- VK_KHR_copy_memory_indirect extension commands
2795
0
    if (!strcmp(name, "CmdCopyMemoryIndirectKHR")) return (void *)table->CmdCopyMemoryIndirectKHR;
2796
0
    if (!strcmp(name, "CmdCopyMemoryToImageIndirectKHR")) return (void *)table->CmdCopyMemoryToImageIndirectKHR;
2797
2798
    // ---- VK_KHR_maintenance10 extension commands
2799
0
    if (!strcmp(name, "CmdEndRendering2KHR")) return (void *)table->CmdEndRendering2KHR;
2800
2801
    // ---- VK_EXT_debug_marker extension commands
2802
0
    if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectTagEXT : NULL;
2803
0
    if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectNameEXT : NULL;
2804
0
    if (!strcmp(name, "CmdDebugMarkerBeginEXT")) return (void *)table->CmdDebugMarkerBeginEXT;
2805
0
    if (!strcmp(name, "CmdDebugMarkerEndEXT")) return (void *)table->CmdDebugMarkerEndEXT;
2806
0
    if (!strcmp(name, "CmdDebugMarkerInsertEXT")) return (void *)table->CmdDebugMarkerInsertEXT;
2807
2808
    // ---- VK_EXT_transform_feedback extension commands
2809
0
    if (!strcmp(name, "CmdBindTransformFeedbackBuffersEXT")) return (void *)table->CmdBindTransformFeedbackBuffersEXT;
2810
0
    if (!strcmp(name, "CmdBeginTransformFeedbackEXT")) return (void *)table->CmdBeginTransformFeedbackEXT;
2811
0
    if (!strcmp(name, "CmdEndTransformFeedbackEXT")) return (void *)table->CmdEndTransformFeedbackEXT;
2812
0
    if (!strcmp(name, "CmdBeginQueryIndexedEXT")) return (void *)table->CmdBeginQueryIndexedEXT;
2813
0
    if (!strcmp(name, "CmdEndQueryIndexedEXT")) return (void *)table->CmdEndQueryIndexedEXT;
2814
0
    if (!strcmp(name, "CmdDrawIndirectByteCountEXT")) return (void *)table->CmdDrawIndirectByteCountEXT;
2815
2816
    // ---- VK_NVX_binary_import extension commands
2817
0
    if (!strcmp(name, "CreateCuModuleNVX")) return (void *)table->CreateCuModuleNVX;
2818
0
    if (!strcmp(name, "CreateCuFunctionNVX")) return (void *)table->CreateCuFunctionNVX;
2819
0
    if (!strcmp(name, "DestroyCuModuleNVX")) return (void *)table->DestroyCuModuleNVX;
2820
0
    if (!strcmp(name, "DestroyCuFunctionNVX")) return (void *)table->DestroyCuFunctionNVX;
2821
0
    if (!strcmp(name, "CmdCuLaunchKernelNVX")) return (void *)table->CmdCuLaunchKernelNVX;
2822
2823
    // ---- VK_NVX_image_view_handle extension commands
2824
0
    if (!strcmp(name, "GetImageViewHandleNVX")) return (void *)table->GetImageViewHandleNVX;
2825
0
    if (!strcmp(name, "GetImageViewHandle64NVX")) return (void *)table->GetImageViewHandle64NVX;
2826
0
    if (!strcmp(name, "GetImageViewAddressNVX")) return (void *)table->GetImageViewAddressNVX;
2827
2828
    // ---- VK_AMD_draw_indirect_count extension commands
2829
0
    if (!strcmp(name, "CmdDrawIndirectCountAMD")) return (void *)table->CmdDrawIndirectCountAMD;
2830
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCountAMD")) return (void *)table->CmdDrawIndexedIndirectCountAMD;
2831
2832
    // ---- VK_AMD_shader_info extension commands
2833
0
    if (!strcmp(name, "GetShaderInfoAMD")) return (void *)table->GetShaderInfoAMD;
2834
2835
    // ---- VK_NV_external_memory_win32 extension commands
2836
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2837
    if (!strcmp(name, "GetMemoryWin32HandleNV")) return (void *)table->GetMemoryWin32HandleNV;
2838
#endif // VK_USE_PLATFORM_WIN32_KHR
2839
2840
    // ---- VK_EXT_conditional_rendering extension commands
2841
0
    if (!strcmp(name, "CmdBeginConditionalRenderingEXT")) return (void *)table->CmdBeginConditionalRenderingEXT;
2842
0
    if (!strcmp(name, "CmdEndConditionalRenderingEXT")) return (void *)table->CmdEndConditionalRenderingEXT;
2843
2844
    // ---- VK_NV_clip_space_w_scaling extension commands
2845
0
    if (!strcmp(name, "CmdSetViewportWScalingNV")) return (void *)table->CmdSetViewportWScalingNV;
2846
2847
    // ---- VK_EXT_display_control extension commands
2848
0
    if (!strcmp(name, "DisplayPowerControlEXT")) return (void *)table->DisplayPowerControlEXT;
2849
0
    if (!strcmp(name, "RegisterDeviceEventEXT")) return (void *)table->RegisterDeviceEventEXT;
2850
0
    if (!strcmp(name, "RegisterDisplayEventEXT")) return (void *)table->RegisterDisplayEventEXT;
2851
0
    if (!strcmp(name, "GetSwapchainCounterEXT")) return (void *)table->GetSwapchainCounterEXT;
2852
2853
    // ---- VK_GOOGLE_display_timing extension commands
2854
0
    if (!strcmp(name, "GetRefreshCycleDurationGOOGLE")) return (void *)table->GetRefreshCycleDurationGOOGLE;
2855
0
    if (!strcmp(name, "GetPastPresentationTimingGOOGLE")) return (void *)table->GetPastPresentationTimingGOOGLE;
2856
2857
    // ---- VK_EXT_discard_rectangles extension commands
2858
0
    if (!strcmp(name, "CmdSetDiscardRectangleEXT")) return (void *)table->CmdSetDiscardRectangleEXT;
2859
0
    if (!strcmp(name, "CmdSetDiscardRectangleEnableEXT")) return (void *)table->CmdSetDiscardRectangleEnableEXT;
2860
0
    if (!strcmp(name, "CmdSetDiscardRectangleModeEXT")) return (void *)table->CmdSetDiscardRectangleModeEXT;
2861
2862
    // ---- VK_EXT_hdr_metadata extension commands
2863
0
    if (!strcmp(name, "SetHdrMetadataEXT")) return (void *)table->SetHdrMetadataEXT;
2864
2865
    // ---- VK_EXT_debug_utils extension commands
2866
0
    if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectNameEXT : NULL;
2867
0
    if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectTagEXT : NULL;
2868
0
    if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) return (void *)table->QueueBeginDebugUtilsLabelEXT;
2869
0
    if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) return (void *)table->QueueEndDebugUtilsLabelEXT;
2870
0
    if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) return (void *)table->QueueInsertDebugUtilsLabelEXT;
2871
0
    if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) return (void *)table->CmdBeginDebugUtilsLabelEXT;
2872
0
    if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) return (void *)table->CmdEndDebugUtilsLabelEXT;
2873
0
    if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) return (void *)table->CmdInsertDebugUtilsLabelEXT;
2874
2875
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
2876
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
2877
    if (!strcmp(name, "GetAndroidHardwareBufferPropertiesANDROID")) return (void *)table->GetAndroidHardwareBufferPropertiesANDROID;
2878
#endif // VK_USE_PLATFORM_ANDROID_KHR
2879
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
2880
    if (!strcmp(name, "GetMemoryAndroidHardwareBufferANDROID")) return (void *)table->GetMemoryAndroidHardwareBufferANDROID;
2881
#endif // VK_USE_PLATFORM_ANDROID_KHR
2882
2883
    // ---- VK_AMDX_shader_enqueue extension commands
2884
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2885
0
    if (!strcmp(name, "CreateExecutionGraphPipelinesAMDX")) return (void *)table->CreateExecutionGraphPipelinesAMDX;
2886
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2887
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2888
0
    if (!strcmp(name, "GetExecutionGraphPipelineScratchSizeAMDX")) return (void *)table->GetExecutionGraphPipelineScratchSizeAMDX;
2889
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2890
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2891
0
    if (!strcmp(name, "GetExecutionGraphPipelineNodeIndexAMDX")) return (void *)table->GetExecutionGraphPipelineNodeIndexAMDX;
2892
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2893
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2894
0
    if (!strcmp(name, "CmdInitializeGraphScratchMemoryAMDX")) return (void *)table->CmdInitializeGraphScratchMemoryAMDX;
2895
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2896
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2897
0
    if (!strcmp(name, "CmdDispatchGraphAMDX")) return (void *)table->CmdDispatchGraphAMDX;
2898
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2899
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2900
0
    if (!strcmp(name, "CmdDispatchGraphIndirectAMDX")) return (void *)table->CmdDispatchGraphIndirectAMDX;
2901
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2902
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2903
0
    if (!strcmp(name, "CmdDispatchGraphIndirectCountAMDX")) return (void *)table->CmdDispatchGraphIndirectCountAMDX;
2904
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2905
2906
    // ---- VK_EXT_sample_locations extension commands
2907
0
    if (!strcmp(name, "CmdSetSampleLocationsEXT")) return (void *)table->CmdSetSampleLocationsEXT;
2908
2909
    // ---- VK_EXT_image_drm_format_modifier extension commands
2910
0
    if (!strcmp(name, "GetImageDrmFormatModifierPropertiesEXT")) return (void *)table->GetImageDrmFormatModifierPropertiesEXT;
2911
2912
    // ---- VK_EXT_validation_cache extension commands
2913
0
    if (!strcmp(name, "CreateValidationCacheEXT")) return (void *)table->CreateValidationCacheEXT;
2914
0
    if (!strcmp(name, "DestroyValidationCacheEXT")) return (void *)table->DestroyValidationCacheEXT;
2915
0
    if (!strcmp(name, "MergeValidationCachesEXT")) return (void *)table->MergeValidationCachesEXT;
2916
0
    if (!strcmp(name, "GetValidationCacheDataEXT")) return (void *)table->GetValidationCacheDataEXT;
2917
2918
    // ---- VK_NV_shading_rate_image extension commands
2919
0
    if (!strcmp(name, "CmdBindShadingRateImageNV")) return (void *)table->CmdBindShadingRateImageNV;
2920
0
    if (!strcmp(name, "CmdSetViewportShadingRatePaletteNV")) return (void *)table->CmdSetViewportShadingRatePaletteNV;
2921
0
    if (!strcmp(name, "CmdSetCoarseSampleOrderNV")) return (void *)table->CmdSetCoarseSampleOrderNV;
2922
2923
    // ---- VK_NV_ray_tracing extension commands
2924
0
    if (!strcmp(name, "CreateAccelerationStructureNV")) return (void *)table->CreateAccelerationStructureNV;
2925
0
    if (!strcmp(name, "DestroyAccelerationStructureNV")) return (void *)table->DestroyAccelerationStructureNV;
2926
0
    if (!strcmp(name, "GetAccelerationStructureMemoryRequirementsNV")) return (void *)table->GetAccelerationStructureMemoryRequirementsNV;
2927
0
    if (!strcmp(name, "BindAccelerationStructureMemoryNV")) return (void *)table->BindAccelerationStructureMemoryNV;
2928
0
    if (!strcmp(name, "CmdBuildAccelerationStructureNV")) return (void *)table->CmdBuildAccelerationStructureNV;
2929
0
    if (!strcmp(name, "CmdCopyAccelerationStructureNV")) return (void *)table->CmdCopyAccelerationStructureNV;
2930
0
    if (!strcmp(name, "CmdTraceRaysNV")) return (void *)table->CmdTraceRaysNV;
2931
0
    if (!strcmp(name, "CreateRayTracingPipelinesNV")) return (void *)table->CreateRayTracingPipelinesNV;
2932
2933
    // ---- VK_KHR_ray_tracing_pipeline extension commands
2934
0
    if (!strcmp(name, "GetRayTracingShaderGroupHandlesKHR")) return (void *)table->GetRayTracingShaderGroupHandlesKHR;
2935
2936
    // ---- VK_NV_ray_tracing extension commands
2937
0
    if (!strcmp(name, "GetRayTracingShaderGroupHandlesNV")) return (void *)table->GetRayTracingShaderGroupHandlesNV;
2938
0
    if (!strcmp(name, "GetAccelerationStructureHandleNV")) return (void *)table->GetAccelerationStructureHandleNV;
2939
0
    if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesNV")) return (void *)table->CmdWriteAccelerationStructuresPropertiesNV;
2940
0
    if (!strcmp(name, "CompileDeferredNV")) return (void *)table->CompileDeferredNV;
2941
2942
    // ---- VK_EXT_external_memory_host extension commands
2943
0
    if (!strcmp(name, "GetMemoryHostPointerPropertiesEXT")) return (void *)table->GetMemoryHostPointerPropertiesEXT;
2944
2945
    // ---- VK_AMD_buffer_marker extension commands
2946
0
    if (!strcmp(name, "CmdWriteBufferMarkerAMD")) return (void *)table->CmdWriteBufferMarkerAMD;
2947
0
    if (!strcmp(name, "CmdWriteBufferMarker2AMD")) return (void *)table->CmdWriteBufferMarker2AMD;
2948
2949
    // ---- VK_EXT_calibrated_timestamps extension commands
2950
0
    if (!strcmp(name, "GetCalibratedTimestampsEXT")) return (void *)table->GetCalibratedTimestampsEXT;
2951
2952
    // ---- VK_NV_mesh_shader extension commands
2953
0
    if (!strcmp(name, "CmdDrawMeshTasksNV")) return (void *)table->CmdDrawMeshTasksNV;
2954
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectNV")) return (void *)table->CmdDrawMeshTasksIndirectNV;
2955
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectCountNV")) return (void *)table->CmdDrawMeshTasksIndirectCountNV;
2956
2957
    // ---- VK_NV_scissor_exclusive extension commands
2958
0
    if (!strcmp(name, "CmdSetExclusiveScissorEnableNV")) return (void *)table->CmdSetExclusiveScissorEnableNV;
2959
0
    if (!strcmp(name, "CmdSetExclusiveScissorNV")) return (void *)table->CmdSetExclusiveScissorNV;
2960
2961
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
2962
0
    if (!strcmp(name, "CmdSetCheckpointNV")) return (void *)table->CmdSetCheckpointNV;
2963
0
    if (!strcmp(name, "GetQueueCheckpointDataNV")) return (void *)table->GetQueueCheckpointDataNV;
2964
0
    if (!strcmp(name, "GetQueueCheckpointData2NV")) return (void *)table->GetQueueCheckpointData2NV;
2965
2966
    // ---- VK_EXT_present_timing extension commands
2967
0
    if (!strcmp(name, "SetSwapchainPresentTimingQueueSizeEXT")) return (void *)table->SetSwapchainPresentTimingQueueSizeEXT;
2968
0
    if (!strcmp(name, "GetSwapchainTimingPropertiesEXT")) return (void *)table->GetSwapchainTimingPropertiesEXT;
2969
0
    if (!strcmp(name, "GetSwapchainTimeDomainPropertiesEXT")) return (void *)table->GetSwapchainTimeDomainPropertiesEXT;
2970
0
    if (!strcmp(name, "GetPastPresentationTimingEXT")) return (void *)table->GetPastPresentationTimingEXT;
2971
2972
    // ---- VK_INTEL_performance_query extension commands
2973
0
    if (!strcmp(name, "InitializePerformanceApiINTEL")) return (void *)table->InitializePerformanceApiINTEL;
2974
0
    if (!strcmp(name, "UninitializePerformanceApiINTEL")) return (void *)table->UninitializePerformanceApiINTEL;
2975
0
    if (!strcmp(name, "CmdSetPerformanceMarkerINTEL")) return (void *)table->CmdSetPerformanceMarkerINTEL;
2976
0
    if (!strcmp(name, "CmdSetPerformanceStreamMarkerINTEL")) return (void *)table->CmdSetPerformanceStreamMarkerINTEL;
2977
0
    if (!strcmp(name, "CmdSetPerformanceOverrideINTEL")) return (void *)table->CmdSetPerformanceOverrideINTEL;
2978
0
    if (!strcmp(name, "AcquirePerformanceConfigurationINTEL")) return (void *)table->AcquirePerformanceConfigurationINTEL;
2979
0
    if (!strcmp(name, "ReleasePerformanceConfigurationINTEL")) return (void *)table->ReleasePerformanceConfigurationINTEL;
2980
0
    if (!strcmp(name, "QueueSetPerformanceConfigurationINTEL")) return (void *)table->QueueSetPerformanceConfigurationINTEL;
2981
0
    if (!strcmp(name, "GetPerformanceParameterINTEL")) return (void *)table->GetPerformanceParameterINTEL;
2982
2983
    // ---- VK_AMD_display_native_hdr extension commands
2984
0
    if (!strcmp(name, "SetLocalDimmingAMD")) return (void *)table->SetLocalDimmingAMD;
2985
2986
    // ---- VK_EXT_buffer_device_address extension commands
2987
0
    if (!strcmp(name, "GetBufferDeviceAddressEXT")) return (void *)table->GetBufferDeviceAddressEXT;
2988
2989
    // ---- VK_EXT_full_screen_exclusive extension commands
2990
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2991
    if (!strcmp(name, "AcquireFullScreenExclusiveModeEXT")) return (void *)table->AcquireFullScreenExclusiveModeEXT;
2992
#endif // VK_USE_PLATFORM_WIN32_KHR
2993
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2994
    if (!strcmp(name, "ReleaseFullScreenExclusiveModeEXT")) return (void *)table->ReleaseFullScreenExclusiveModeEXT;
2995
#endif // VK_USE_PLATFORM_WIN32_KHR
2996
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2997
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) return (void *)table->GetDeviceGroupSurfacePresentModes2EXT;
2998
#endif // VK_USE_PLATFORM_WIN32_KHR
2999
3000
    // ---- VK_EXT_line_rasterization extension commands
3001
0
    if (!strcmp(name, "CmdSetLineStippleEXT")) return (void *)table->CmdSetLineStippleEXT;
3002
3003
    // ---- VK_EXT_host_query_reset extension commands
3004
0
    if (!strcmp(name, "ResetQueryPoolEXT")) return (void *)table->ResetQueryPoolEXT;
3005
3006
    // ---- VK_EXT_extended_dynamic_state extension commands
3007
0
    if (!strcmp(name, "CmdSetCullModeEXT")) return (void *)table->CmdSetCullModeEXT;
3008
0
    if (!strcmp(name, "CmdSetFrontFaceEXT")) return (void *)table->CmdSetFrontFaceEXT;
3009
0
    if (!strcmp(name, "CmdSetPrimitiveTopologyEXT")) return (void *)table->CmdSetPrimitiveTopologyEXT;
3010
0
    if (!strcmp(name, "CmdSetViewportWithCountEXT")) return (void *)table->CmdSetViewportWithCountEXT;
3011
0
    if (!strcmp(name, "CmdSetScissorWithCountEXT")) return (void *)table->CmdSetScissorWithCountEXT;
3012
0
    if (!strcmp(name, "CmdBindVertexBuffers2EXT")) return (void *)table->CmdBindVertexBuffers2EXT;
3013
0
    if (!strcmp(name, "CmdSetDepthTestEnableEXT")) return (void *)table->CmdSetDepthTestEnableEXT;
3014
0
    if (!strcmp(name, "CmdSetDepthWriteEnableEXT")) return (void *)table->CmdSetDepthWriteEnableEXT;
3015
0
    if (!strcmp(name, "CmdSetDepthCompareOpEXT")) return (void *)table->CmdSetDepthCompareOpEXT;
3016
0
    if (!strcmp(name, "CmdSetDepthBoundsTestEnableEXT")) return (void *)table->CmdSetDepthBoundsTestEnableEXT;
3017
0
    if (!strcmp(name, "CmdSetStencilTestEnableEXT")) return (void *)table->CmdSetStencilTestEnableEXT;
3018
0
    if (!strcmp(name, "CmdSetStencilOpEXT")) return (void *)table->CmdSetStencilOpEXT;
3019
3020
    // ---- VK_EXT_host_image_copy extension commands
3021
0
    if (!strcmp(name, "CopyMemoryToImageEXT")) return (void *)table->CopyMemoryToImageEXT;
3022
0
    if (!strcmp(name, "CopyImageToMemoryEXT")) return (void *)table->CopyImageToMemoryEXT;
3023
0
    if (!strcmp(name, "CopyImageToImageEXT")) return (void *)table->CopyImageToImageEXT;
3024
0
    if (!strcmp(name, "TransitionImageLayoutEXT")) return (void *)table->TransitionImageLayoutEXT;
3025
0
    if (!strcmp(name, "GetImageSubresourceLayout2EXT")) return (void *)table->GetImageSubresourceLayout2EXT;
3026
3027
    // ---- VK_EXT_swapchain_maintenance1 extension commands
3028
0
    if (!strcmp(name, "ReleaseSwapchainImagesEXT")) return (void *)table->ReleaseSwapchainImagesEXT;
3029
3030
    // ---- VK_NV_device_generated_commands extension commands
3031
0
    if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsNV")) return (void *)table->GetGeneratedCommandsMemoryRequirementsNV;
3032
0
    if (!strcmp(name, "CmdPreprocessGeneratedCommandsNV")) return (void *)table->CmdPreprocessGeneratedCommandsNV;
3033
0
    if (!strcmp(name, "CmdExecuteGeneratedCommandsNV")) return (void *)table->CmdExecuteGeneratedCommandsNV;
3034
0
    if (!strcmp(name, "CmdBindPipelineShaderGroupNV")) return (void *)table->CmdBindPipelineShaderGroupNV;
3035
0
    if (!strcmp(name, "CreateIndirectCommandsLayoutNV")) return (void *)table->CreateIndirectCommandsLayoutNV;
3036
0
    if (!strcmp(name, "DestroyIndirectCommandsLayoutNV")) return (void *)table->DestroyIndirectCommandsLayoutNV;
3037
3038
    // ---- VK_EXT_depth_bias_control extension commands
3039
0
    if (!strcmp(name, "CmdSetDepthBias2EXT")) return (void *)table->CmdSetDepthBias2EXT;
3040
3041
    // ---- VK_EXT_private_data extension commands
3042
0
    if (!strcmp(name, "CreatePrivateDataSlotEXT")) return (void *)table->CreatePrivateDataSlotEXT;
3043
0
    if (!strcmp(name, "DestroyPrivateDataSlotEXT")) return (void *)table->DestroyPrivateDataSlotEXT;
3044
0
    if (!strcmp(name, "SetPrivateDataEXT")) return (void *)table->SetPrivateDataEXT;
3045
0
    if (!strcmp(name, "GetPrivateDataEXT")) return (void *)table->GetPrivateDataEXT;
3046
3047
    // ---- VK_NV_cuda_kernel_launch extension commands
3048
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3049
0
    if (!strcmp(name, "CreateCudaModuleNV")) return (void *)table->CreateCudaModuleNV;
3050
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3051
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3052
0
    if (!strcmp(name, "GetCudaModuleCacheNV")) return (void *)table->GetCudaModuleCacheNV;
3053
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3054
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3055
0
    if (!strcmp(name, "CreateCudaFunctionNV")) return (void *)table->CreateCudaFunctionNV;
3056
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3057
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3058
0
    if (!strcmp(name, "DestroyCudaModuleNV")) return (void *)table->DestroyCudaModuleNV;
3059
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3060
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3061
0
    if (!strcmp(name, "DestroyCudaFunctionNV")) return (void *)table->DestroyCudaFunctionNV;
3062
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3063
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3064
0
    if (!strcmp(name, "CmdCudaLaunchKernelNV")) return (void *)table->CmdCudaLaunchKernelNV;
3065
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3066
3067
    // ---- VK_QCOM_tile_shading extension commands
3068
0
    if (!strcmp(name, "CmdDispatchTileQCOM")) return (void *)table->CmdDispatchTileQCOM;
3069
0
    if (!strcmp(name, "CmdBeginPerTileExecutionQCOM")) return (void *)table->CmdBeginPerTileExecutionQCOM;
3070
0
    if (!strcmp(name, "CmdEndPerTileExecutionQCOM")) return (void *)table->CmdEndPerTileExecutionQCOM;
3071
3072
    // ---- VK_EXT_metal_objects extension commands
3073
#if defined(VK_USE_PLATFORM_METAL_EXT)
3074
    if (!strcmp(name, "ExportMetalObjectsEXT")) return (void *)table->ExportMetalObjectsEXT;
3075
#endif // VK_USE_PLATFORM_METAL_EXT
3076
3077
    // ---- VK_EXT_descriptor_buffer extension commands
3078
0
    if (!strcmp(name, "GetDescriptorSetLayoutSizeEXT")) return (void *)table->GetDescriptorSetLayoutSizeEXT;
3079
0
    if (!strcmp(name, "GetDescriptorSetLayoutBindingOffsetEXT")) return (void *)table->GetDescriptorSetLayoutBindingOffsetEXT;
3080
0
    if (!strcmp(name, "GetDescriptorEXT")) return (void *)table->GetDescriptorEXT;
3081
0
    if (!strcmp(name, "CmdBindDescriptorBuffersEXT")) return (void *)table->CmdBindDescriptorBuffersEXT;
3082
0
    if (!strcmp(name, "CmdSetDescriptorBufferOffsetsEXT")) return (void *)table->CmdSetDescriptorBufferOffsetsEXT;
3083
0
    if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplersEXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplersEXT;
3084
0
    if (!strcmp(name, "GetBufferOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetBufferOpaqueCaptureDescriptorDataEXT;
3085
0
    if (!strcmp(name, "GetImageOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageOpaqueCaptureDescriptorDataEXT;
3086
0
    if (!strcmp(name, "GetImageViewOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageViewOpaqueCaptureDescriptorDataEXT;
3087
0
    if (!strcmp(name, "GetSamplerOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetSamplerOpaqueCaptureDescriptorDataEXT;
3088
0
    if (!strcmp(name, "GetAccelerationStructureOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
3089
3090
    // ---- VK_NV_fragment_shading_rate_enums extension commands
3091
0
    if (!strcmp(name, "CmdSetFragmentShadingRateEnumNV")) return (void *)table->CmdSetFragmentShadingRateEnumNV;
3092
3093
    // ---- VK_EXT_device_fault extension commands
3094
0
    if (!strcmp(name, "GetDeviceFaultInfoEXT")) return (void *)table->GetDeviceFaultInfoEXT;
3095
3096
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
3097
0
    if (!strcmp(name, "CmdSetVertexInputEXT")) return (void *)table->CmdSetVertexInputEXT;
3098
3099
    // ---- VK_FUCHSIA_external_memory extension commands
3100
#if defined(VK_USE_PLATFORM_FUCHSIA)
3101
    if (!strcmp(name, "GetMemoryZirconHandleFUCHSIA")) return (void *)table->GetMemoryZirconHandleFUCHSIA;
3102
#endif // VK_USE_PLATFORM_FUCHSIA
3103
#if defined(VK_USE_PLATFORM_FUCHSIA)
3104
    if (!strcmp(name, "GetMemoryZirconHandlePropertiesFUCHSIA")) return (void *)table->GetMemoryZirconHandlePropertiesFUCHSIA;
3105
#endif // VK_USE_PLATFORM_FUCHSIA
3106
3107
    // ---- VK_FUCHSIA_external_semaphore extension commands
3108
#if defined(VK_USE_PLATFORM_FUCHSIA)
3109
    if (!strcmp(name, "ImportSemaphoreZirconHandleFUCHSIA")) return (void *)table->ImportSemaphoreZirconHandleFUCHSIA;
3110
#endif // VK_USE_PLATFORM_FUCHSIA
3111
#if defined(VK_USE_PLATFORM_FUCHSIA)
3112
    if (!strcmp(name, "GetSemaphoreZirconHandleFUCHSIA")) return (void *)table->GetSemaphoreZirconHandleFUCHSIA;
3113
#endif // VK_USE_PLATFORM_FUCHSIA
3114
3115
    // ---- VK_FUCHSIA_buffer_collection extension commands
3116
#if defined(VK_USE_PLATFORM_FUCHSIA)
3117
    if (!strcmp(name, "CreateBufferCollectionFUCHSIA")) return (void *)table->CreateBufferCollectionFUCHSIA;
3118
#endif // VK_USE_PLATFORM_FUCHSIA
3119
#if defined(VK_USE_PLATFORM_FUCHSIA)
3120
    if (!strcmp(name, "SetBufferCollectionImageConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionImageConstraintsFUCHSIA;
3121
#endif // VK_USE_PLATFORM_FUCHSIA
3122
#if defined(VK_USE_PLATFORM_FUCHSIA)
3123
    if (!strcmp(name, "SetBufferCollectionBufferConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionBufferConstraintsFUCHSIA;
3124
#endif // VK_USE_PLATFORM_FUCHSIA
3125
#if defined(VK_USE_PLATFORM_FUCHSIA)
3126
    if (!strcmp(name, "DestroyBufferCollectionFUCHSIA")) return (void *)table->DestroyBufferCollectionFUCHSIA;
3127
#endif // VK_USE_PLATFORM_FUCHSIA
3128
#if defined(VK_USE_PLATFORM_FUCHSIA)
3129
    if (!strcmp(name, "GetBufferCollectionPropertiesFUCHSIA")) return (void *)table->GetBufferCollectionPropertiesFUCHSIA;
3130
#endif // VK_USE_PLATFORM_FUCHSIA
3131
3132
    // ---- VK_HUAWEI_subpass_shading extension commands
3133
0
    if (!strcmp(name, "GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) return (void *)table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
3134
0
    if (!strcmp(name, "CmdSubpassShadingHUAWEI")) return (void *)table->CmdSubpassShadingHUAWEI;
3135
3136
    // ---- VK_HUAWEI_invocation_mask extension commands
3137
0
    if (!strcmp(name, "CmdBindInvocationMaskHUAWEI")) return (void *)table->CmdBindInvocationMaskHUAWEI;
3138
3139
    // ---- VK_NV_external_memory_rdma extension commands
3140
0
    if (!strcmp(name, "GetMemoryRemoteAddressNV")) return (void *)table->GetMemoryRemoteAddressNV;
3141
3142
    // ---- VK_EXT_pipeline_properties extension commands
3143
0
    if (!strcmp(name, "GetPipelinePropertiesEXT")) return (void *)table->GetPipelinePropertiesEXT;
3144
3145
    // ---- VK_EXT_extended_dynamic_state2 extension commands
3146
0
    if (!strcmp(name, "CmdSetPatchControlPointsEXT")) return (void *)table->CmdSetPatchControlPointsEXT;
3147
0
    if (!strcmp(name, "CmdSetRasterizerDiscardEnableEXT")) return (void *)table->CmdSetRasterizerDiscardEnableEXT;
3148
0
    if (!strcmp(name, "CmdSetDepthBiasEnableEXT")) return (void *)table->CmdSetDepthBiasEnableEXT;
3149
0
    if (!strcmp(name, "CmdSetLogicOpEXT")) return (void *)table->CmdSetLogicOpEXT;
3150
0
    if (!strcmp(name, "CmdSetPrimitiveRestartEnableEXT")) return (void *)table->CmdSetPrimitiveRestartEnableEXT;
3151
3152
    // ---- VK_EXT_color_write_enable extension commands
3153
0
    if (!strcmp(name, "CmdSetColorWriteEnableEXT")) return (void *)table->CmdSetColorWriteEnableEXT;
3154
3155
    // ---- VK_EXT_multi_draw extension commands
3156
0
    if (!strcmp(name, "CmdDrawMultiEXT")) return (void *)table->CmdDrawMultiEXT;
3157
0
    if (!strcmp(name, "CmdDrawMultiIndexedEXT")) return (void *)table->CmdDrawMultiIndexedEXT;
3158
3159
    // ---- VK_EXT_opacity_micromap extension commands
3160
0
    if (!strcmp(name, "CreateMicromapEXT")) return (void *)table->CreateMicromapEXT;
3161
0
    if (!strcmp(name, "DestroyMicromapEXT")) return (void *)table->DestroyMicromapEXT;
3162
0
    if (!strcmp(name, "CmdBuildMicromapsEXT")) return (void *)table->CmdBuildMicromapsEXT;
3163
0
    if (!strcmp(name, "BuildMicromapsEXT")) return (void *)table->BuildMicromapsEXT;
3164
0
    if (!strcmp(name, "CopyMicromapEXT")) return (void *)table->CopyMicromapEXT;
3165
0
    if (!strcmp(name, "CopyMicromapToMemoryEXT")) return (void *)table->CopyMicromapToMemoryEXT;
3166
0
    if (!strcmp(name, "CopyMemoryToMicromapEXT")) return (void *)table->CopyMemoryToMicromapEXT;
3167
0
    if (!strcmp(name, "WriteMicromapsPropertiesEXT")) return (void *)table->WriteMicromapsPropertiesEXT;
3168
0
    if (!strcmp(name, "CmdCopyMicromapEXT")) return (void *)table->CmdCopyMicromapEXT;
3169
0
    if (!strcmp(name, "CmdCopyMicromapToMemoryEXT")) return (void *)table->CmdCopyMicromapToMemoryEXT;
3170
0
    if (!strcmp(name, "CmdCopyMemoryToMicromapEXT")) return (void *)table->CmdCopyMemoryToMicromapEXT;
3171
0
    if (!strcmp(name, "CmdWriteMicromapsPropertiesEXT")) return (void *)table->CmdWriteMicromapsPropertiesEXT;
3172
0
    if (!strcmp(name, "GetDeviceMicromapCompatibilityEXT")) return (void *)table->GetDeviceMicromapCompatibilityEXT;
3173
0
    if (!strcmp(name, "GetMicromapBuildSizesEXT")) return (void *)table->GetMicromapBuildSizesEXT;
3174
3175
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
3176
0
    if (!strcmp(name, "CmdDrawClusterHUAWEI")) return (void *)table->CmdDrawClusterHUAWEI;
3177
0
    if (!strcmp(name, "CmdDrawClusterIndirectHUAWEI")) return (void *)table->CmdDrawClusterIndirectHUAWEI;
3178
3179
    // ---- VK_EXT_pageable_device_local_memory extension commands
3180
0
    if (!strcmp(name, "SetDeviceMemoryPriorityEXT")) return (void *)table->SetDeviceMemoryPriorityEXT;
3181
3182
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
3183
0
    if (!strcmp(name, "GetDescriptorSetLayoutHostMappingInfoVALVE")) return (void *)table->GetDescriptorSetLayoutHostMappingInfoVALVE;
3184
0
    if (!strcmp(name, "GetDescriptorSetHostMappingVALVE")) return (void *)table->GetDescriptorSetHostMappingVALVE;
3185
3186
    // ---- VK_NV_copy_memory_indirect extension commands
3187
0
    if (!strcmp(name, "CmdCopyMemoryIndirectNV")) return (void *)table->CmdCopyMemoryIndirectNV;
3188
0
    if (!strcmp(name, "CmdCopyMemoryToImageIndirectNV")) return (void *)table->CmdCopyMemoryToImageIndirectNV;
3189
3190
    // ---- VK_NV_memory_decompression extension commands
3191
0
    if (!strcmp(name, "CmdDecompressMemoryNV")) return (void *)table->CmdDecompressMemoryNV;
3192
0
    if (!strcmp(name, "CmdDecompressMemoryIndirectCountNV")) return (void *)table->CmdDecompressMemoryIndirectCountNV;
3193
3194
    // ---- VK_NV_device_generated_commands_compute extension commands
3195
0
    if (!strcmp(name, "GetPipelineIndirectMemoryRequirementsNV")) return (void *)table->GetPipelineIndirectMemoryRequirementsNV;
3196
0
    if (!strcmp(name, "CmdUpdatePipelineIndirectBufferNV")) return (void *)table->CmdUpdatePipelineIndirectBufferNV;
3197
0
    if (!strcmp(name, "GetPipelineIndirectDeviceAddressNV")) return (void *)table->GetPipelineIndirectDeviceAddressNV;
3198
3199
    // ---- VK_OHOS_external_memory extension commands
3200
#if defined(VK_USE_PLATFORM_OHOS)
3201
    if (!strcmp(name, "GetNativeBufferPropertiesOHOS")) return (void *)table->GetNativeBufferPropertiesOHOS;
3202
#endif // VK_USE_PLATFORM_OHOS
3203
#if defined(VK_USE_PLATFORM_OHOS)
3204
    if (!strcmp(name, "GetMemoryNativeBufferOHOS")) return (void *)table->GetMemoryNativeBufferOHOS;
3205
#endif // VK_USE_PLATFORM_OHOS
3206
3207
    // ---- VK_EXT_extended_dynamic_state3 extension commands
3208
0
    if (!strcmp(name, "CmdSetDepthClampEnableEXT")) return (void *)table->CmdSetDepthClampEnableEXT;
3209
0
    if (!strcmp(name, "CmdSetPolygonModeEXT")) return (void *)table->CmdSetPolygonModeEXT;
3210
0
    if (!strcmp(name, "CmdSetRasterizationSamplesEXT")) return (void *)table->CmdSetRasterizationSamplesEXT;
3211
0
    if (!strcmp(name, "CmdSetSampleMaskEXT")) return (void *)table->CmdSetSampleMaskEXT;
3212
0
    if (!strcmp(name, "CmdSetAlphaToCoverageEnableEXT")) return (void *)table->CmdSetAlphaToCoverageEnableEXT;
3213
0
    if (!strcmp(name, "CmdSetAlphaToOneEnableEXT")) return (void *)table->CmdSetAlphaToOneEnableEXT;
3214
0
    if (!strcmp(name, "CmdSetLogicOpEnableEXT")) return (void *)table->CmdSetLogicOpEnableEXT;
3215
0
    if (!strcmp(name, "CmdSetColorBlendEnableEXT")) return (void *)table->CmdSetColorBlendEnableEXT;
3216
0
    if (!strcmp(name, "CmdSetColorBlendEquationEXT")) return (void *)table->CmdSetColorBlendEquationEXT;
3217
0
    if (!strcmp(name, "CmdSetColorWriteMaskEXT")) return (void *)table->CmdSetColorWriteMaskEXT;
3218
0
    if (!strcmp(name, "CmdSetTessellationDomainOriginEXT")) return (void *)table->CmdSetTessellationDomainOriginEXT;
3219
0
    if (!strcmp(name, "CmdSetRasterizationStreamEXT")) return (void *)table->CmdSetRasterizationStreamEXT;
3220
0
    if (!strcmp(name, "CmdSetConservativeRasterizationModeEXT")) return (void *)table->CmdSetConservativeRasterizationModeEXT;
3221
0
    if (!strcmp(name, "CmdSetExtraPrimitiveOverestimationSizeEXT")) return (void *)table->CmdSetExtraPrimitiveOverestimationSizeEXT;
3222
0
    if (!strcmp(name, "CmdSetDepthClipEnableEXT")) return (void *)table->CmdSetDepthClipEnableEXT;
3223
0
    if (!strcmp(name, "CmdSetSampleLocationsEnableEXT")) return (void *)table->CmdSetSampleLocationsEnableEXT;
3224
0
    if (!strcmp(name, "CmdSetColorBlendAdvancedEXT")) return (void *)table->CmdSetColorBlendAdvancedEXT;
3225
0
    if (!strcmp(name, "CmdSetProvokingVertexModeEXT")) return (void *)table->CmdSetProvokingVertexModeEXT;
3226
0
    if (!strcmp(name, "CmdSetLineRasterizationModeEXT")) return (void *)table->CmdSetLineRasterizationModeEXT;
3227
0
    if (!strcmp(name, "CmdSetLineStippleEnableEXT")) return (void *)table->CmdSetLineStippleEnableEXT;
3228
0
    if (!strcmp(name, "CmdSetDepthClipNegativeOneToOneEXT")) return (void *)table->CmdSetDepthClipNegativeOneToOneEXT;
3229
0
    if (!strcmp(name, "CmdSetViewportWScalingEnableNV")) return (void *)table->CmdSetViewportWScalingEnableNV;
3230
0
    if (!strcmp(name, "CmdSetViewportSwizzleNV")) return (void *)table->CmdSetViewportSwizzleNV;
3231
0
    if (!strcmp(name, "CmdSetCoverageToColorEnableNV")) return (void *)table->CmdSetCoverageToColorEnableNV;
3232
0
    if (!strcmp(name, "CmdSetCoverageToColorLocationNV")) return (void *)table->CmdSetCoverageToColorLocationNV;
3233
0
    if (!strcmp(name, "CmdSetCoverageModulationModeNV")) return (void *)table->CmdSetCoverageModulationModeNV;
3234
0
    if (!strcmp(name, "CmdSetCoverageModulationTableEnableNV")) return (void *)table->CmdSetCoverageModulationTableEnableNV;
3235
0
    if (!strcmp(name, "CmdSetCoverageModulationTableNV")) return (void *)table->CmdSetCoverageModulationTableNV;
3236
0
    if (!strcmp(name, "CmdSetShadingRateImageEnableNV")) return (void *)table->CmdSetShadingRateImageEnableNV;
3237
0
    if (!strcmp(name, "CmdSetRepresentativeFragmentTestEnableNV")) return (void *)table->CmdSetRepresentativeFragmentTestEnableNV;
3238
0
    if (!strcmp(name, "CmdSetCoverageReductionModeNV")) return (void *)table->CmdSetCoverageReductionModeNV;
3239
3240
    // ---- VK_ARM_tensors extension commands
3241
0
    if (!strcmp(name, "CreateTensorARM")) return (void *)table->CreateTensorARM;
3242
0
    if (!strcmp(name, "DestroyTensorARM")) return (void *)table->DestroyTensorARM;
3243
0
    if (!strcmp(name, "CreateTensorViewARM")) return (void *)table->CreateTensorViewARM;
3244
0
    if (!strcmp(name, "DestroyTensorViewARM")) return (void *)table->DestroyTensorViewARM;
3245
0
    if (!strcmp(name, "GetTensorMemoryRequirementsARM")) return (void *)table->GetTensorMemoryRequirementsARM;
3246
0
    if (!strcmp(name, "BindTensorMemoryARM")) return (void *)table->BindTensorMemoryARM;
3247
0
    if (!strcmp(name, "GetDeviceTensorMemoryRequirementsARM")) return (void *)table->GetDeviceTensorMemoryRequirementsARM;
3248
0
    if (!strcmp(name, "CmdCopyTensorARM")) return (void *)table->CmdCopyTensorARM;
3249
0
    if (!strcmp(name, "GetTensorOpaqueCaptureDescriptorDataARM")) return (void *)table->GetTensorOpaqueCaptureDescriptorDataARM;
3250
0
    if (!strcmp(name, "GetTensorViewOpaqueCaptureDescriptorDataARM")) return (void *)table->GetTensorViewOpaqueCaptureDescriptorDataARM;
3251
3252
    // ---- VK_EXT_shader_module_identifier extension commands
3253
0
    if (!strcmp(name, "GetShaderModuleIdentifierEXT")) return (void *)table->GetShaderModuleIdentifierEXT;
3254
0
    if (!strcmp(name, "GetShaderModuleCreateInfoIdentifierEXT")) return (void *)table->GetShaderModuleCreateInfoIdentifierEXT;
3255
3256
    // ---- VK_NV_optical_flow extension commands
3257
0
    if (!strcmp(name, "CreateOpticalFlowSessionNV")) return (void *)table->CreateOpticalFlowSessionNV;
3258
0
    if (!strcmp(name, "DestroyOpticalFlowSessionNV")) return (void *)table->DestroyOpticalFlowSessionNV;
3259
0
    if (!strcmp(name, "BindOpticalFlowSessionImageNV")) return (void *)table->BindOpticalFlowSessionImageNV;
3260
0
    if (!strcmp(name, "CmdOpticalFlowExecuteNV")) return (void *)table->CmdOpticalFlowExecuteNV;
3261
3262
    // ---- VK_AMD_anti_lag extension commands
3263
0
    if (!strcmp(name, "AntiLagUpdateAMD")) return (void *)table->AntiLagUpdateAMD;
3264
3265
    // ---- VK_EXT_shader_object extension commands
3266
0
    if (!strcmp(name, "CreateShadersEXT")) return (void *)table->CreateShadersEXT;
3267
0
    if (!strcmp(name, "DestroyShaderEXT")) return (void *)table->DestroyShaderEXT;
3268
0
    if (!strcmp(name, "GetShaderBinaryDataEXT")) return (void *)table->GetShaderBinaryDataEXT;
3269
0
    if (!strcmp(name, "CmdBindShadersEXT")) return (void *)table->CmdBindShadersEXT;
3270
0
    if (!strcmp(name, "CmdSetDepthClampRangeEXT")) return (void *)table->CmdSetDepthClampRangeEXT;
3271
3272
    // ---- VK_QCOM_tile_properties extension commands
3273
0
    if (!strcmp(name, "GetFramebufferTilePropertiesQCOM")) return (void *)table->GetFramebufferTilePropertiesQCOM;
3274
0
    if (!strcmp(name, "GetDynamicRenderingTilePropertiesQCOM")) return (void *)table->GetDynamicRenderingTilePropertiesQCOM;
3275
3276
    // ---- VK_NV_cooperative_vector extension commands
3277
0
    if (!strcmp(name, "ConvertCooperativeVectorMatrixNV")) return (void *)table->ConvertCooperativeVectorMatrixNV;
3278
0
    if (!strcmp(name, "CmdConvertCooperativeVectorMatrixNV")) return (void *)table->CmdConvertCooperativeVectorMatrixNV;
3279
3280
    // ---- VK_NV_low_latency2 extension commands
3281
0
    if (!strcmp(name, "SetLatencySleepModeNV")) return (void *)table->SetLatencySleepModeNV;
3282
0
    if (!strcmp(name, "LatencySleepNV")) return (void *)table->LatencySleepNV;
3283
0
    if (!strcmp(name, "SetLatencyMarkerNV")) return (void *)table->SetLatencyMarkerNV;
3284
0
    if (!strcmp(name, "GetLatencyTimingsNV")) return (void *)table->GetLatencyTimingsNV;
3285
0
    if (!strcmp(name, "QueueNotifyOutOfBandNV")) return (void *)table->QueueNotifyOutOfBandNV;
3286
3287
    // ---- VK_ARM_data_graph extension commands
3288
0
    if (!strcmp(name, "CreateDataGraphPipelinesARM")) return (void *)table->CreateDataGraphPipelinesARM;
3289
0
    if (!strcmp(name, "CreateDataGraphPipelineSessionARM")) return (void *)table->CreateDataGraphPipelineSessionARM;
3290
0
    if (!strcmp(name, "GetDataGraphPipelineSessionBindPointRequirementsARM")) return (void *)table->GetDataGraphPipelineSessionBindPointRequirementsARM;
3291
0
    if (!strcmp(name, "GetDataGraphPipelineSessionMemoryRequirementsARM")) return (void *)table->GetDataGraphPipelineSessionMemoryRequirementsARM;
3292
0
    if (!strcmp(name, "BindDataGraphPipelineSessionMemoryARM")) return (void *)table->BindDataGraphPipelineSessionMemoryARM;
3293
0
    if (!strcmp(name, "DestroyDataGraphPipelineSessionARM")) return (void *)table->DestroyDataGraphPipelineSessionARM;
3294
0
    if (!strcmp(name, "CmdDispatchDataGraphARM")) return (void *)table->CmdDispatchDataGraphARM;
3295
0
    if (!strcmp(name, "GetDataGraphPipelineAvailablePropertiesARM")) return (void *)table->GetDataGraphPipelineAvailablePropertiesARM;
3296
0
    if (!strcmp(name, "GetDataGraphPipelinePropertiesARM")) return (void *)table->GetDataGraphPipelinePropertiesARM;
3297
3298
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
3299
0
    if (!strcmp(name, "CmdSetAttachmentFeedbackLoopEnableEXT")) return (void *)table->CmdSetAttachmentFeedbackLoopEnableEXT;
3300
3301
    // ---- VK_QNX_external_memory_screen_buffer extension commands
3302
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3303
    if (!strcmp(name, "GetScreenBufferPropertiesQNX")) return (void *)table->GetScreenBufferPropertiesQNX;
3304
#endif // VK_USE_PLATFORM_SCREEN_QNX
3305
3306
    // ---- VK_QCOM_tile_memory_heap extension commands
3307
0
    if (!strcmp(name, "CmdBindTileMemoryQCOM")) return (void *)table->CmdBindTileMemoryQCOM;
3308
3309
    // ---- VK_EXT_memory_decompression extension commands
3310
0
    if (!strcmp(name, "CmdDecompressMemoryEXT")) return (void *)table->CmdDecompressMemoryEXT;
3311
0
    if (!strcmp(name, "CmdDecompressMemoryIndirectCountEXT")) return (void *)table->CmdDecompressMemoryIndirectCountEXT;
3312
3313
    // ---- VK_NV_external_compute_queue extension commands
3314
0
    if (!strcmp(name, "CreateExternalComputeQueueNV")) return (void *)table->CreateExternalComputeQueueNV;
3315
0
    if (!strcmp(name, "DestroyExternalComputeQueueNV")) return (void *)table->DestroyExternalComputeQueueNV;
3316
0
    if (!strcmp(name, "GetExternalComputeQueueDataNV")) return (void *)table->GetExternalComputeQueueDataNV;
3317
3318
    // ---- VK_NV_cluster_acceleration_structure extension commands
3319
0
    if (!strcmp(name, "GetClusterAccelerationStructureBuildSizesNV")) return (void *)table->GetClusterAccelerationStructureBuildSizesNV;
3320
0
    if (!strcmp(name, "CmdBuildClusterAccelerationStructureIndirectNV")) return (void *)table->CmdBuildClusterAccelerationStructureIndirectNV;
3321
3322
    // ---- VK_NV_partitioned_acceleration_structure extension commands
3323
0
    if (!strcmp(name, "GetPartitionedAccelerationStructuresBuildSizesNV")) return (void *)table->GetPartitionedAccelerationStructuresBuildSizesNV;
3324
0
    if (!strcmp(name, "CmdBuildPartitionedAccelerationStructuresNV")) return (void *)table->CmdBuildPartitionedAccelerationStructuresNV;
3325
3326
    // ---- VK_EXT_device_generated_commands extension commands
3327
0
    if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsEXT")) return (void *)table->GetGeneratedCommandsMemoryRequirementsEXT;
3328
0
    if (!strcmp(name, "CmdPreprocessGeneratedCommandsEXT")) return (void *)table->CmdPreprocessGeneratedCommandsEXT;
3329
0
    if (!strcmp(name, "CmdExecuteGeneratedCommandsEXT")) return (void *)table->CmdExecuteGeneratedCommandsEXT;
3330
0
    if (!strcmp(name, "CreateIndirectCommandsLayoutEXT")) return (void *)table->CreateIndirectCommandsLayoutEXT;
3331
0
    if (!strcmp(name, "DestroyIndirectCommandsLayoutEXT")) return (void *)table->DestroyIndirectCommandsLayoutEXT;
3332
0
    if (!strcmp(name, "CreateIndirectExecutionSetEXT")) return (void *)table->CreateIndirectExecutionSetEXT;
3333
0
    if (!strcmp(name, "DestroyIndirectExecutionSetEXT")) return (void *)table->DestroyIndirectExecutionSetEXT;
3334
0
    if (!strcmp(name, "UpdateIndirectExecutionSetPipelineEXT")) return (void *)table->UpdateIndirectExecutionSetPipelineEXT;
3335
0
    if (!strcmp(name, "UpdateIndirectExecutionSetShaderEXT")) return (void *)table->UpdateIndirectExecutionSetShaderEXT;
3336
3337
    // ---- VK_OHOS_native_buffer extension commands
3338
#if defined(VK_USE_PLATFORM_OHOS)
3339
    if (!strcmp(name, "GetSwapchainGrallocUsageOHOS")) return (void *)table->GetSwapchainGrallocUsageOHOS;
3340
#endif // VK_USE_PLATFORM_OHOS
3341
#if defined(VK_USE_PLATFORM_OHOS)
3342
    if (!strcmp(name, "AcquireImageOHOS")) return (void *)table->AcquireImageOHOS;
3343
#endif // VK_USE_PLATFORM_OHOS
3344
#if defined(VK_USE_PLATFORM_OHOS)
3345
    if (!strcmp(name, "QueueSignalReleaseImageOHOS")) return (void *)table->QueueSignalReleaseImageOHOS;
3346
#endif // VK_USE_PLATFORM_OHOS
3347
3348
    // ---- VK_EXT_external_memory_metal extension commands
3349
#if defined(VK_USE_PLATFORM_METAL_EXT)
3350
    if (!strcmp(name, "GetMemoryMetalHandleEXT")) return (void *)table->GetMemoryMetalHandleEXT;
3351
#endif // VK_USE_PLATFORM_METAL_EXT
3352
#if defined(VK_USE_PLATFORM_METAL_EXT)
3353
    if (!strcmp(name, "GetMemoryMetalHandlePropertiesEXT")) return (void *)table->GetMemoryMetalHandlePropertiesEXT;
3354
#endif // VK_USE_PLATFORM_METAL_EXT
3355
3356
    // ---- VK_EXT_fragment_density_map_offset extension commands
3357
0
    if (!strcmp(name, "CmdEndRendering2EXT")) return (void *)table->CmdEndRendering2EXT;
3358
3359
    // ---- VK_EXT_custom_resolve extension commands
3360
0
    if (!strcmp(name, "CmdBeginCustomResolveEXT")) return (void *)table->CmdBeginCustomResolveEXT;
3361
3362
    // ---- VK_KHR_acceleration_structure extension commands
3363
0
    if (!strcmp(name, "CreateAccelerationStructureKHR")) return (void *)table->CreateAccelerationStructureKHR;
3364
0
    if (!strcmp(name, "DestroyAccelerationStructureKHR")) return (void *)table->DestroyAccelerationStructureKHR;
3365
0
    if (!strcmp(name, "CmdBuildAccelerationStructuresKHR")) return (void *)table->CmdBuildAccelerationStructuresKHR;
3366
0
    if (!strcmp(name, "CmdBuildAccelerationStructuresIndirectKHR")) return (void *)table->CmdBuildAccelerationStructuresIndirectKHR;
3367
0
    if (!strcmp(name, "BuildAccelerationStructuresKHR")) return (void *)table->BuildAccelerationStructuresKHR;
3368
0
    if (!strcmp(name, "CopyAccelerationStructureKHR")) return (void *)table->CopyAccelerationStructureKHR;
3369
0
    if (!strcmp(name, "CopyAccelerationStructureToMemoryKHR")) return (void *)table->CopyAccelerationStructureToMemoryKHR;
3370
0
    if (!strcmp(name, "CopyMemoryToAccelerationStructureKHR")) return (void *)table->CopyMemoryToAccelerationStructureKHR;
3371
0
    if (!strcmp(name, "WriteAccelerationStructuresPropertiesKHR")) return (void *)table->WriteAccelerationStructuresPropertiesKHR;
3372
0
    if (!strcmp(name, "CmdCopyAccelerationStructureKHR")) return (void *)table->CmdCopyAccelerationStructureKHR;
3373
0
    if (!strcmp(name, "CmdCopyAccelerationStructureToMemoryKHR")) return (void *)table->CmdCopyAccelerationStructureToMemoryKHR;
3374
0
    if (!strcmp(name, "CmdCopyMemoryToAccelerationStructureKHR")) return (void *)table->CmdCopyMemoryToAccelerationStructureKHR;
3375
0
    if (!strcmp(name, "GetAccelerationStructureDeviceAddressKHR")) return (void *)table->GetAccelerationStructureDeviceAddressKHR;
3376
0
    if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesKHR")) return (void *)table->CmdWriteAccelerationStructuresPropertiesKHR;
3377
0
    if (!strcmp(name, "GetDeviceAccelerationStructureCompatibilityKHR")) return (void *)table->GetDeviceAccelerationStructureCompatibilityKHR;
3378
0
    if (!strcmp(name, "GetAccelerationStructureBuildSizesKHR")) return (void *)table->GetAccelerationStructureBuildSizesKHR;
3379
3380
    // ---- VK_KHR_ray_tracing_pipeline extension commands
3381
0
    if (!strcmp(name, "CmdTraceRaysKHR")) return (void *)table->CmdTraceRaysKHR;
3382
0
    if (!strcmp(name, "CreateRayTracingPipelinesKHR")) return (void *)table->CreateRayTracingPipelinesKHR;
3383
0
    if (!strcmp(name, "GetRayTracingCaptureReplayShaderGroupHandlesKHR")) return (void *)table->GetRayTracingCaptureReplayShaderGroupHandlesKHR;
3384
0
    if (!strcmp(name, "CmdTraceRaysIndirectKHR")) return (void *)table->CmdTraceRaysIndirectKHR;
3385
0
    if (!strcmp(name, "GetRayTracingShaderGroupStackSizeKHR")) return (void *)table->GetRayTracingShaderGroupStackSizeKHR;
3386
0
    if (!strcmp(name, "CmdSetRayTracingPipelineStackSizeKHR")) return (void *)table->CmdSetRayTracingPipelineStackSizeKHR;
3387
3388
    // ---- VK_EXT_mesh_shader extension commands
3389
0
    if (!strcmp(name, "CmdDrawMeshTasksEXT")) return (void *)table->CmdDrawMeshTasksEXT;
3390
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectEXT")) return (void *)table->CmdDrawMeshTasksIndirectEXT;
3391
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectCountEXT")) return (void *)table->CmdDrawMeshTasksIndirectCountEXT;
3392
3393
0
    *found_name = false;
3394
0
    return NULL;
3395
0
}
3396
3397
// Instance command lookup function
3398
VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable *table, const char *name,
3399
0
                                                                 bool *found_name) {
3400
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
3401
0
        *found_name = false;
3402
0
        return NULL;
3403
0
    }
3404
3405
0
    *found_name = true;
3406
0
    name += 2;
3407
3408
    // ---- Core Vulkan 1.0 commands
3409
0
    if (!strcmp(name, "DestroyInstance")) return (void *)table->DestroyInstance;
3410
0
    if (!strcmp(name, "EnumeratePhysicalDevices")) return (void *)table->EnumeratePhysicalDevices;
3411
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures")) return (void *)table->GetPhysicalDeviceFeatures;
3412
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties")) return (void *)table->GetPhysicalDeviceFormatProperties;
3413
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties")) return (void *)table->GetPhysicalDeviceImageFormatProperties;
3414
0
    if (!strcmp(name, "GetPhysicalDeviceProperties")) return (void *)table->GetPhysicalDeviceProperties;
3415
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties;
3416
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties")) return (void *)table->GetPhysicalDeviceMemoryProperties;
3417
0
    if (!strcmp(name, "GetInstanceProcAddr")) return (void *)table->GetInstanceProcAddr;
3418
0
    if (!strcmp(name, "EnumerateDeviceExtensionProperties")) return (void *)table->EnumerateDeviceExtensionProperties;
3419
0
    if (!strcmp(name, "EnumerateDeviceLayerProperties")) return (void *)table->EnumerateDeviceLayerProperties;
3420
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties;
3421
3422
    // ---- Core Vulkan 1.1 commands
3423
0
    if (!strcmp(name, "EnumeratePhysicalDeviceGroups")) return (void *)table->EnumeratePhysicalDeviceGroups;
3424
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures2")) return (void *)table->GetPhysicalDeviceFeatures2;
3425
0
    if (!strcmp(name, "GetPhysicalDeviceProperties2")) return (void *)table->GetPhysicalDeviceProperties2;
3426
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties2")) return (void *)table->GetPhysicalDeviceFormatProperties2;
3427
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2")) return (void *)table->GetPhysicalDeviceImageFormatProperties2;
3428
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2;
3429
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2")) return (void *)table->GetPhysicalDeviceMemoryProperties2;
3430
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2;
3431
0
    if (!strcmp(name, "GetPhysicalDeviceExternalBufferProperties")) return (void *)table->GetPhysicalDeviceExternalBufferProperties;
3432
0
    if (!strcmp(name, "GetPhysicalDeviceExternalFenceProperties")) return (void *)table->GetPhysicalDeviceExternalFenceProperties;
3433
0
    if (!strcmp(name, "GetPhysicalDeviceExternalSemaphoreProperties")) return (void *)table->GetPhysicalDeviceExternalSemaphoreProperties;
3434
3435
    // ---- Core Vulkan 1.3 commands
3436
0
    if (!strcmp(name, "GetPhysicalDeviceToolProperties")) return (void *)table->GetPhysicalDeviceToolProperties;
3437
3438
    // ---- VK_KHR_surface extension commands
3439
0
    if (!strcmp(name, "DestroySurfaceKHR")) return (void *)table->DestroySurfaceKHR;
3440
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceSupportKHR")) return (void *)table->GetPhysicalDeviceSurfaceSupportKHR;
3441
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilitiesKHR;
3442
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceFormatsKHR")) return (void *)table->GetPhysicalDeviceSurfaceFormatsKHR;
3443
0
    if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModesKHR")) return (void *)table->GetPhysicalDeviceSurfacePresentModesKHR;
3444
3445
    // ---- VK_KHR_swapchain extension commands
3446
0
    if (!strcmp(name, "GetPhysicalDevicePresentRectanglesKHR")) return (void *)table->GetPhysicalDevicePresentRectanglesKHR;
3447
3448
    // ---- VK_KHR_display extension commands
3449
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPropertiesKHR;
3450
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPlanePropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPlanePropertiesKHR;
3451
0
    if (!strcmp(name, "GetDisplayPlaneSupportedDisplaysKHR")) return (void *)table->GetDisplayPlaneSupportedDisplaysKHR;
3452
0
    if (!strcmp(name, "GetDisplayModePropertiesKHR")) return (void *)table->GetDisplayModePropertiesKHR;
3453
0
    if (!strcmp(name, "CreateDisplayModeKHR")) return (void *)table->CreateDisplayModeKHR;
3454
0
    if (!strcmp(name, "GetDisplayPlaneCapabilitiesKHR")) return (void *)table->GetDisplayPlaneCapabilitiesKHR;
3455
0
    if (!strcmp(name, "CreateDisplayPlaneSurfaceKHR")) return (void *)table->CreateDisplayPlaneSurfaceKHR;
3456
3457
    // ---- VK_KHR_xlib_surface extension commands
3458
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
3459
0
    if (!strcmp(name, "CreateXlibSurfaceKHR")) return (void *)table->CreateXlibSurfaceKHR;
3460
0
#endif // VK_USE_PLATFORM_XLIB_KHR
3461
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
3462
0
    if (!strcmp(name, "GetPhysicalDeviceXlibPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXlibPresentationSupportKHR;
3463
0
#endif // VK_USE_PLATFORM_XLIB_KHR
3464
3465
    // ---- VK_KHR_xcb_surface extension commands
3466
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
3467
0
    if (!strcmp(name, "CreateXcbSurfaceKHR")) return (void *)table->CreateXcbSurfaceKHR;
3468
0
#endif // VK_USE_PLATFORM_XCB_KHR
3469
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
3470
0
    if (!strcmp(name, "GetPhysicalDeviceXcbPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXcbPresentationSupportKHR;
3471
0
#endif // VK_USE_PLATFORM_XCB_KHR
3472
3473
    // ---- VK_KHR_wayland_surface extension commands
3474
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3475
0
    if (!strcmp(name, "CreateWaylandSurfaceKHR")) return (void *)table->CreateWaylandSurfaceKHR;
3476
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
3477
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3478
0
    if (!strcmp(name, "GetPhysicalDeviceWaylandPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWaylandPresentationSupportKHR;
3479
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
3480
3481
    // ---- VK_KHR_android_surface extension commands
3482
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
3483
    if (!strcmp(name, "CreateAndroidSurfaceKHR")) return (void *)table->CreateAndroidSurfaceKHR;
3484
#endif // VK_USE_PLATFORM_ANDROID_KHR
3485
3486
    // ---- VK_KHR_win32_surface extension commands
3487
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3488
    if (!strcmp(name, "CreateWin32SurfaceKHR")) return (void *)table->CreateWin32SurfaceKHR;
3489
#endif // VK_USE_PLATFORM_WIN32_KHR
3490
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3491
    if (!strcmp(name, "GetPhysicalDeviceWin32PresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWin32PresentationSupportKHR;
3492
#endif // VK_USE_PLATFORM_WIN32_KHR
3493
3494
    // ---- VK_KHR_video_queue extension commands
3495
0
    if (!strcmp(name, "GetPhysicalDeviceVideoCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceVideoCapabilitiesKHR;
3496
0
    if (!strcmp(name, "GetPhysicalDeviceVideoFormatPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoFormatPropertiesKHR;
3497
3498
    // ---- VK_KHR_get_physical_device_properties2 extension commands
3499
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures2KHR")) return (void *)table->GetPhysicalDeviceFeatures2KHR;
3500
0
    if (!strcmp(name, "GetPhysicalDeviceProperties2KHR")) return (void *)table->GetPhysicalDeviceProperties2KHR;
3501
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceFormatProperties2KHR;
3502
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceImageFormatProperties2KHR;
3503
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2KHR")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2KHR;
3504
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2KHR")) return (void *)table->GetPhysicalDeviceMemoryProperties2KHR;
3505
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2KHR;
3506
3507
    // ---- VK_KHR_device_group_creation extension commands
3508
0
    if (!strcmp(name, "EnumeratePhysicalDeviceGroupsKHR")) return (void *)table->EnumeratePhysicalDeviceGroupsKHR;
3509
3510
    // ---- VK_KHR_external_memory_capabilities extension commands
3511
0
    if (!strcmp(name, "GetPhysicalDeviceExternalBufferPropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalBufferPropertiesKHR;
3512
3513
    // ---- VK_KHR_external_semaphore_capabilities extension commands
3514
0
    if (!strcmp(name, "GetPhysicalDeviceExternalSemaphorePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalSemaphorePropertiesKHR;
3515
3516
    // ---- VK_KHR_external_fence_capabilities extension commands
3517
0
    if (!strcmp(name, "GetPhysicalDeviceExternalFencePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalFencePropertiesKHR;
3518
3519
    // ---- VK_KHR_performance_query extension commands
3520
0
    if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
3521
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) return (void *)table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
3522
3523
    // ---- VK_KHR_get_surface_capabilities2 extension commands
3524
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2KHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2KHR;
3525
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceFormats2KHR")) return (void *)table->GetPhysicalDeviceSurfaceFormats2KHR;
3526
3527
    // ---- VK_KHR_get_display_properties2 extension commands
3528
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayProperties2KHR;
3529
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPlaneProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayPlaneProperties2KHR;
3530
0
    if (!strcmp(name, "GetDisplayModeProperties2KHR")) return (void *)table->GetDisplayModeProperties2KHR;
3531
0
    if (!strcmp(name, "GetDisplayPlaneCapabilities2KHR")) return (void *)table->GetDisplayPlaneCapabilities2KHR;
3532
3533
    // ---- VK_KHR_fragment_shading_rate extension commands
3534
0
    if (!strcmp(name, "GetPhysicalDeviceFragmentShadingRatesKHR")) return (void *)table->GetPhysicalDeviceFragmentShadingRatesKHR;
3535
3536
    // ---- VK_KHR_video_encode_queue extension commands
3537
0
    if (!strcmp(name, "GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
3538
3539
    // ---- VK_KHR_cooperative_matrix extension commands
3540
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesKHR")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
3541
3542
    // ---- VK_KHR_calibrated_timestamps extension commands
3543
0
    if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsKHR")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsKHR;
3544
3545
    // ---- VK_EXT_debug_report extension commands
3546
0
    if (!strcmp(name, "CreateDebugReportCallbackEXT")) return (void *)table->CreateDebugReportCallbackEXT;
3547
0
    if (!strcmp(name, "DestroyDebugReportCallbackEXT")) return (void *)table->DestroyDebugReportCallbackEXT;
3548
0
    if (!strcmp(name, "DebugReportMessageEXT")) return (void *)table->DebugReportMessageEXT;
3549
3550
    // ---- VK_GGP_stream_descriptor_surface extension commands
3551
#if defined(VK_USE_PLATFORM_GGP)
3552
    if (!strcmp(name, "CreateStreamDescriptorSurfaceGGP")) return (void *)table->CreateStreamDescriptorSurfaceGGP;
3553
#endif // VK_USE_PLATFORM_GGP
3554
3555
    // ---- VK_NV_external_memory_capabilities extension commands
3556
0
    if (!strcmp(name, "GetPhysicalDeviceExternalImageFormatPropertiesNV")) return (void *)table->GetPhysicalDeviceExternalImageFormatPropertiesNV;
3557
3558
    // ---- VK_NN_vi_surface extension commands
3559
#if defined(VK_USE_PLATFORM_VI_NN)
3560
    if (!strcmp(name, "CreateViSurfaceNN")) return (void *)table->CreateViSurfaceNN;
3561
#endif // VK_USE_PLATFORM_VI_NN
3562
3563
    // ---- VK_EXT_direct_mode_display extension commands
3564
0
    if (!strcmp(name, "ReleaseDisplayEXT")) return (void *)table->ReleaseDisplayEXT;
3565
3566
    // ---- VK_EXT_acquire_xlib_display extension commands
3567
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3568
0
    if (!strcmp(name, "AcquireXlibDisplayEXT")) return (void *)table->AcquireXlibDisplayEXT;
3569
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3570
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3571
0
    if (!strcmp(name, "GetRandROutputDisplayEXT")) return (void *)table->GetRandROutputDisplayEXT;
3572
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3573
3574
    // ---- VK_EXT_display_surface_counter extension commands
3575
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2EXT")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2EXT;
3576
3577
    // ---- VK_MVK_ios_surface extension commands
3578
#if defined(VK_USE_PLATFORM_IOS_MVK)
3579
    if (!strcmp(name, "CreateIOSSurfaceMVK")) return (void *)table->CreateIOSSurfaceMVK;
3580
#endif // VK_USE_PLATFORM_IOS_MVK
3581
3582
    // ---- VK_MVK_macos_surface extension commands
3583
#if defined(VK_USE_PLATFORM_MACOS_MVK)
3584
    if (!strcmp(name, "CreateMacOSSurfaceMVK")) return (void *)table->CreateMacOSSurfaceMVK;
3585
#endif // VK_USE_PLATFORM_MACOS_MVK
3586
3587
    // ---- VK_EXT_debug_utils extension commands
3588
0
    if (!strcmp(name, "CreateDebugUtilsMessengerEXT")) return (void *)table->CreateDebugUtilsMessengerEXT;
3589
0
    if (!strcmp(name, "DestroyDebugUtilsMessengerEXT")) return (void *)table->DestroyDebugUtilsMessengerEXT;
3590
0
    if (!strcmp(name, "SubmitDebugUtilsMessageEXT")) return (void *)table->SubmitDebugUtilsMessageEXT;
3591
3592
    // ---- VK_EXT_sample_locations extension commands
3593
0
    if (!strcmp(name, "GetPhysicalDeviceMultisamplePropertiesEXT")) return (void *)table->GetPhysicalDeviceMultisamplePropertiesEXT;
3594
3595
    // ---- VK_EXT_calibrated_timestamps extension commands
3596
0
    if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsEXT")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsEXT;
3597
3598
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
3599
#if defined(VK_USE_PLATFORM_FUCHSIA)
3600
    if (!strcmp(name, "CreateImagePipeSurfaceFUCHSIA")) return (void *)table->CreateImagePipeSurfaceFUCHSIA;
3601
#endif // VK_USE_PLATFORM_FUCHSIA
3602
3603
    // ---- VK_EXT_metal_surface extension commands
3604
#if defined(VK_USE_PLATFORM_METAL_EXT)
3605
    if (!strcmp(name, "CreateMetalSurfaceEXT")) return (void *)table->CreateMetalSurfaceEXT;
3606
#endif // VK_USE_PLATFORM_METAL_EXT
3607
3608
    // ---- VK_EXT_tooling_info extension commands
3609
0
    if (!strcmp(name, "GetPhysicalDeviceToolPropertiesEXT")) return (void *)table->GetPhysicalDeviceToolPropertiesEXT;
3610
3611
    // ---- VK_NV_cooperative_matrix extension commands
3612
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesNV;
3613
3614
    // ---- VK_NV_coverage_reduction_mode extension commands
3615
0
    if (!strcmp(name, "GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) return (void *)table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
3616
3617
    // ---- VK_EXT_full_screen_exclusive extension commands
3618
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3619
    if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModes2EXT")) return (void *)table->GetPhysicalDeviceSurfacePresentModes2EXT;
3620
#endif // VK_USE_PLATFORM_WIN32_KHR
3621
3622
    // ---- VK_EXT_headless_surface extension commands
3623
0
    if (!strcmp(name, "CreateHeadlessSurfaceEXT")) return (void *)table->CreateHeadlessSurfaceEXT;
3624
3625
    // ---- VK_EXT_acquire_drm_display extension commands
3626
0
    if (!strcmp(name, "AcquireDrmDisplayEXT")) return (void *)table->AcquireDrmDisplayEXT;
3627
0
    if (!strcmp(name, "GetDrmDisplayEXT")) return (void *)table->GetDrmDisplayEXT;
3628
3629
    // ---- VK_NV_acquire_winrt_display extension commands
3630
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3631
    if (!strcmp(name, "AcquireWinrtDisplayNV")) return (void *)table->AcquireWinrtDisplayNV;
3632
#endif // VK_USE_PLATFORM_WIN32_KHR
3633
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3634
    if (!strcmp(name, "GetWinrtDisplayNV")) return (void *)table->GetWinrtDisplayNV;
3635
#endif // VK_USE_PLATFORM_WIN32_KHR
3636
3637
    // ---- VK_EXT_directfb_surface extension commands
3638
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3639
    if (!strcmp(name, "CreateDirectFBSurfaceEXT")) return (void *)table->CreateDirectFBSurfaceEXT;
3640
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
3641
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3642
    if (!strcmp(name, "GetPhysicalDeviceDirectFBPresentationSupportEXT")) return (void *)table->GetPhysicalDeviceDirectFBPresentationSupportEXT;
3643
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
3644
3645
    // ---- VK_QNX_screen_surface extension commands
3646
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3647
    if (!strcmp(name, "CreateScreenSurfaceQNX")) return (void *)table->CreateScreenSurfaceQNX;
3648
#endif // VK_USE_PLATFORM_SCREEN_QNX
3649
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3650
    if (!strcmp(name, "GetPhysicalDeviceScreenPresentationSupportQNX")) return (void *)table->GetPhysicalDeviceScreenPresentationSupportQNX;
3651
#endif // VK_USE_PLATFORM_SCREEN_QNX
3652
3653
    // ---- VK_ARM_tensors extension commands
3654
0
    if (!strcmp(name, "GetPhysicalDeviceExternalTensorPropertiesARM")) return (void *)table->GetPhysicalDeviceExternalTensorPropertiesARM;
3655
3656
    // ---- VK_NV_optical_flow extension commands
3657
0
    if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV;
3658
3659
    // ---- VK_NV_cooperative_vector extension commands
3660
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeVectorPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeVectorPropertiesNV;
3661
3662
    // ---- VK_ARM_data_graph extension commands
3663
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM")) return (void *)table->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM;
3664
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM")) return (void *)table->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM;
3665
3666
    // ---- VK_OHOS_surface extension commands
3667
#if defined(VK_USE_PLATFORM_OHOS)
3668
    if (!strcmp(name, "CreateSurfaceOHOS")) return (void *)table->CreateSurfaceOHOS;
3669
#endif // VK_USE_PLATFORM_OHOS
3670
3671
    // ---- VK_NV_cooperative_matrix2 extension commands
3672
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
3673
3674
    // ---- VK_ARM_performance_counters_by_region extension commands
3675
0
    if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;
3676
3677
0
    *found_name = false;
3678
0
    return NULL;
3679
0
}
3680
3681
3682
// ---- VK_KHR_video_queue extension trampoline/terminators
3683
3684
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR(
3685
    VkPhysicalDevice                            physicalDevice,
3686
    const VkVideoProfileInfoKHR*                pVideoProfile,
3687
0
    VkVideoCapabilitiesKHR*                     pCapabilities) {
3688
0
    const VkLayerInstanceDispatchTable *disp;
3689
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3690
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3691
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3692
0
                   "vkGetPhysicalDeviceVideoCapabilitiesKHR: Invalid physicalDevice "
3693
0
                   "[VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter]");
3694
0
        abort(); /* Intentionally fail so user can correct issue. */
3695
0
    }
3696
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
3697
0
    return disp->GetPhysicalDeviceVideoCapabilitiesKHR(unwrapped_phys_dev, pVideoProfile, pCapabilities);
3698
0
}
3699
3700
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoCapabilitiesKHR(
3701
    VkPhysicalDevice                            physicalDevice,
3702
    const VkVideoProfileInfoKHR*                pVideoProfile,
3703
0
    VkVideoCapabilitiesKHR*                     pCapabilities) {
3704
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3705
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3706
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR) {
3707
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3708
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoCapabilitiesKHR");
3709
0
        abort(); /* Intentionally fail so user can correct issue. */
3710
0
    }
3711
0
    return icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR(phys_dev_term->phys_dev, pVideoProfile, pCapabilities);
3712
0
}
3713
3714
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR(
3715
    VkPhysicalDevice                            physicalDevice,
3716
    const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
3717
    uint32_t*                                   pVideoFormatPropertyCount,
3718
0
    VkVideoFormatPropertiesKHR*                 pVideoFormatProperties) {
3719
0
    const VkLayerInstanceDispatchTable *disp;
3720
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3721
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3722
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3723
0
                   "vkGetPhysicalDeviceVideoFormatPropertiesKHR: Invalid physicalDevice "
3724
0
                   "[VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter]");
3725
0
        abort(); /* Intentionally fail so user can correct issue. */
3726
0
    }
3727
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
3728
0
    return disp->GetPhysicalDeviceVideoFormatPropertiesKHR(unwrapped_phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3729
0
}
3730
3731
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(
3732
    VkPhysicalDevice                            physicalDevice,
3733
    const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
3734
    uint32_t*                                   pVideoFormatPropertyCount,
3735
0
    VkVideoFormatPropertiesKHR*                 pVideoFormatProperties) {
3736
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3737
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3738
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR) {
3739
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3740
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoFormatPropertiesKHR");
3741
0
        abort(); /* Intentionally fail so user can correct issue. */
3742
0
    }
3743
0
    return icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR(phys_dev_term->phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3744
0
}
3745
3746
VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR(
3747
    VkDevice                                    device,
3748
    const VkVideoSessionCreateInfoKHR*          pCreateInfo,
3749
    const VkAllocationCallbacks*                pAllocator,
3750
0
    VkVideoSessionKHR*                          pVideoSession) {
3751
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3752
0
    if (NULL == disp) {
3753
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3754
0
                   "vkCreateVideoSessionKHR: Invalid device "
3755
0
                   "[VUID-vkCreateVideoSessionKHR-device-parameter]");
3756
0
        abort(); /* Intentionally fail so user can correct issue. */
3757
0
    }
3758
0
    return disp->CreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession);
3759
0
}
3760
3761
VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionKHR(
3762
    VkDevice                                    device,
3763
    VkVideoSessionKHR                           videoSession,
3764
0
    const VkAllocationCallbacks*                pAllocator) {
3765
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3766
0
    if (NULL == disp) {
3767
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3768
0
                   "vkDestroyVideoSessionKHR: Invalid device "
3769
0
                   "[VUID-vkDestroyVideoSessionKHR-device-parameter]");
3770
0
        abort(); /* Intentionally fail so user can correct issue. */
3771
0
    }
3772
0
    disp->DestroyVideoSessionKHR(device, videoSession, pAllocator);
3773
0
}
3774
3775
VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR(
3776
    VkDevice                                    device,
3777
    VkVideoSessionKHR                           videoSession,
3778
    uint32_t*                                   pMemoryRequirementsCount,
3779
0
    VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements) {
3780
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3781
0
    if (NULL == disp) {
3782
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3783
0
                   "vkGetVideoSessionMemoryRequirementsKHR: Invalid device "
3784
0
                   "[VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter]");
3785
0
        abort(); /* Intentionally fail so user can correct issue. */
3786
0
    }
3787
0
    return disp->GetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements);
3788
0
}
3789
3790
VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR(
3791
    VkDevice                                    device,
3792
    VkVideoSessionKHR                           videoSession,
3793
    uint32_t                                    bindSessionMemoryInfoCount,
3794
0
    const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos) {
3795
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3796
0
    if (NULL == disp) {
3797
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3798
0
                   "vkBindVideoSessionMemoryKHR: Invalid device "
3799
0
                   "[VUID-vkBindVideoSessionMemoryKHR-device-parameter]");
3800
0
        abort(); /* Intentionally fail so user can correct issue. */
3801
0
    }
3802
0
    return disp->BindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos);
3803
0
}
3804
3805
VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR(
3806
    VkDevice                                    device,
3807
    const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
3808
    const VkAllocationCallbacks*                pAllocator,
3809
0
    VkVideoSessionParametersKHR*                pVideoSessionParameters) {
3810
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3811
0
    if (NULL == disp) {
3812
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3813
0
                   "vkCreateVideoSessionParametersKHR: Invalid device "
3814
0
                   "[VUID-vkCreateVideoSessionParametersKHR-device-parameter]");
3815
0
        abort(); /* Intentionally fail so user can correct issue. */
3816
0
    }
3817
0
    return disp->CreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters);
3818
0
}
3819
3820
VKAPI_ATTR VkResult VKAPI_CALL UpdateVideoSessionParametersKHR(
3821
    VkDevice                                    device,
3822
    VkVideoSessionParametersKHR                 videoSessionParameters,
3823
0
    const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) {
3824
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3825
0
    if (NULL == disp) {
3826
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3827
0
                   "vkUpdateVideoSessionParametersKHR: Invalid device "
3828
0
                   "[VUID-vkUpdateVideoSessionParametersKHR-device-parameter]");
3829
0
        abort(); /* Intentionally fail so user can correct issue. */
3830
0
    }
3831
0
    return disp->UpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo);
3832
0
}
3833
3834
VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionParametersKHR(
3835
    VkDevice                                    device,
3836
    VkVideoSessionParametersKHR                 videoSessionParameters,
3837
0
    const VkAllocationCallbacks*                pAllocator) {
3838
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3839
0
    if (NULL == disp) {
3840
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3841
0
                   "vkDestroyVideoSessionParametersKHR: Invalid device "
3842
0
                   "[VUID-vkDestroyVideoSessionParametersKHR-device-parameter]");
3843
0
        abort(); /* Intentionally fail so user can correct issue. */
3844
0
    }
3845
0
    disp->DestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator);
3846
0
}
3847
3848
VKAPI_ATTR void VKAPI_CALL CmdBeginVideoCodingKHR(
3849
    VkCommandBuffer                             commandBuffer,
3850
0
    const VkVideoBeginCodingInfoKHR*            pBeginInfo) {
3851
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3852
0
    if (NULL == disp) {
3853
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3854
0
                   "vkCmdBeginVideoCodingKHR: Invalid commandBuffer "
3855
0
                   "[VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter]");
3856
0
        abort(); /* Intentionally fail so user can correct issue. */
3857
0
    }
3858
0
    disp->CmdBeginVideoCodingKHR(commandBuffer, pBeginInfo);
3859
0
}
3860
3861
VKAPI_ATTR void VKAPI_CALL CmdEndVideoCodingKHR(
3862
    VkCommandBuffer                             commandBuffer,
3863
0
    const VkVideoEndCodingInfoKHR*              pEndCodingInfo) {
3864
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3865
0
    if (NULL == disp) {
3866
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3867
0
                   "vkCmdEndVideoCodingKHR: Invalid commandBuffer "
3868
0
                   "[VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter]");
3869
0
        abort(); /* Intentionally fail so user can correct issue. */
3870
0
    }
3871
0
    disp->CmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo);
3872
0
}
3873
3874
VKAPI_ATTR void VKAPI_CALL CmdControlVideoCodingKHR(
3875
    VkCommandBuffer                             commandBuffer,
3876
0
    const VkVideoCodingControlInfoKHR*          pCodingControlInfo) {
3877
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3878
0
    if (NULL == disp) {
3879
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3880
0
                   "vkCmdControlVideoCodingKHR: Invalid commandBuffer "
3881
0
                   "[VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter]");
3882
0
        abort(); /* Intentionally fail so user can correct issue. */
3883
0
    }
3884
0
    disp->CmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo);
3885
0
}
3886
3887
3888
// ---- VK_KHR_video_decode_queue extension trampoline/terminators
3889
3890
VKAPI_ATTR void VKAPI_CALL CmdDecodeVideoKHR(
3891
    VkCommandBuffer                             commandBuffer,
3892
0
    const VkVideoDecodeInfoKHR*                 pDecodeInfo) {
3893
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3894
0
    if (NULL == disp) {
3895
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3896
0
                   "vkCmdDecodeVideoKHR: Invalid commandBuffer "
3897
0
                   "[VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter]");
3898
0
        abort(); /* Intentionally fail so user can correct issue. */
3899
0
    }
3900
0
    disp->CmdDecodeVideoKHR(commandBuffer, pDecodeInfo);
3901
0
}
3902
3903
3904
// ---- VK_KHR_dynamic_rendering extension trampoline/terminators
3905
3906
VKAPI_ATTR void VKAPI_CALL CmdBeginRenderingKHR(
3907
    VkCommandBuffer                             commandBuffer,
3908
0
    const VkRenderingInfo*                      pRenderingInfo) {
3909
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3910
0
    if (NULL == disp) {
3911
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3912
0
                   "vkCmdBeginRenderingKHR: Invalid commandBuffer "
3913
0
                   "[VUID-vkCmdBeginRenderingKHR-commandBuffer-parameter]");
3914
0
        abort(); /* Intentionally fail so user can correct issue. */
3915
0
    }
3916
0
    disp->CmdBeginRenderingKHR(commandBuffer, pRenderingInfo);
3917
0
}
3918
3919
VKAPI_ATTR void VKAPI_CALL CmdEndRenderingKHR(
3920
0
    VkCommandBuffer                             commandBuffer) {
3921
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3922
0
    if (NULL == disp) {
3923
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3924
0
                   "vkCmdEndRenderingKHR: Invalid commandBuffer "
3925
0
                   "[VUID-vkCmdEndRenderingKHR-commandBuffer-parameter]");
3926
0
        abort(); /* Intentionally fail so user can correct issue. */
3927
0
    }
3928
0
    disp->CmdEndRenderingKHR(commandBuffer);
3929
0
}
3930
3931
3932
// ---- VK_KHR_device_group extension trampoline/terminators
3933
3934
VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR(
3935
    VkDevice                                    device,
3936
    uint32_t                                    heapIndex,
3937
    uint32_t                                    localDeviceIndex,
3938
    uint32_t                                    remoteDeviceIndex,
3939
0
    VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures) {
3940
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3941
0
    if (NULL == disp) {
3942
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3943
0
                   "vkGetDeviceGroupPeerMemoryFeaturesKHR: Invalid device "
3944
0
                   "[VUID-vkGetDeviceGroupPeerMemoryFeaturesKHR-device-parameter]");
3945
0
        abort(); /* Intentionally fail so user can correct issue. */
3946
0
    }
3947
0
    disp->GetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
3948
0
}
3949
3950
VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHR(
3951
    VkCommandBuffer                             commandBuffer,
3952
0
    uint32_t                                    deviceMask) {
3953
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3954
0
    if (NULL == disp) {
3955
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3956
0
                   "vkCmdSetDeviceMaskKHR: Invalid commandBuffer "
3957
0
                   "[VUID-vkCmdSetDeviceMaskKHR-commandBuffer-parameter]");
3958
0
        abort(); /* Intentionally fail so user can correct issue. */
3959
0
    }
3960
0
    disp->CmdSetDeviceMaskKHR(commandBuffer, deviceMask);
3961
0
}
3962
3963
VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR(
3964
    VkCommandBuffer                             commandBuffer,
3965
    uint32_t                                    baseGroupX,
3966
    uint32_t                                    baseGroupY,
3967
    uint32_t                                    baseGroupZ,
3968
    uint32_t                                    groupCountX,
3969
    uint32_t                                    groupCountY,
3970
0
    uint32_t                                    groupCountZ) {
3971
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3972
0
    if (NULL == disp) {
3973
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3974
0
                   "vkCmdDispatchBaseKHR: Invalid commandBuffer "
3975
0
                   "[VUID-vkCmdDispatchBaseKHR-commandBuffer-parameter]");
3976
0
        abort(); /* Intentionally fail so user can correct issue. */
3977
0
    }
3978
0
    disp->CmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
3979
0
}
3980
3981
3982
// ---- VK_KHR_maintenance1 extension trampoline/terminators
3983
3984
VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR(
3985
    VkDevice                                    device,
3986
    VkCommandPool                               commandPool,
3987
0
    VkCommandPoolTrimFlags                      flags) {
3988
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3989
0
    if (NULL == disp) {
3990
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3991
0
                   "vkTrimCommandPoolKHR: Invalid device "
3992
0
                   "[VUID-vkTrimCommandPoolKHR-device-parameter]");
3993
0
        abort(); /* Intentionally fail so user can correct issue. */
3994
0
    }
3995
0
    disp->TrimCommandPoolKHR(device, commandPool, flags);
3996
0
}
3997
3998
3999
// ---- VK_KHR_external_memory_win32 extension trampoline/terminators
4000
4001
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4002
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR(
4003
    VkDevice                                    device,
4004
    const VkMemoryGetWin32HandleInfoKHR*        pGetWin32HandleInfo,
4005
    HANDLE*                                     pHandle) {
4006
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4007
    if (NULL == disp) {
4008
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4009
                   "vkGetMemoryWin32HandleKHR: Invalid device "
4010
                   "[VUID-vkGetMemoryWin32HandleKHR-device-parameter]");
4011
        abort(); /* Intentionally fail so user can correct issue. */
4012
    }
4013
    return disp->GetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4014
}
4015
4016
#endif // VK_USE_PLATFORM_WIN32_KHR
4017
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4018
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR(
4019
    VkDevice                                    device,
4020
    VkExternalMemoryHandleTypeFlagBits          handleType,
4021
    HANDLE                                      handle,
4022
    VkMemoryWin32HandlePropertiesKHR*           pMemoryWin32HandleProperties) {
4023
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4024
    if (NULL == disp) {
4025
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4026
                   "vkGetMemoryWin32HandlePropertiesKHR: Invalid device "
4027
                   "[VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter]");
4028
        abort(); /* Intentionally fail so user can correct issue. */
4029
    }
4030
    return disp->GetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
4031
}
4032
4033
#endif // VK_USE_PLATFORM_WIN32_KHR
4034
4035
// ---- VK_KHR_external_memory_fd extension trampoline/terminators
4036
4037
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR(
4038
    VkDevice                                    device,
4039
    const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
4040
0
    int*                                        pFd) {
4041
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4042
0
    if (NULL == disp) {
4043
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4044
0
                   "vkGetMemoryFdKHR: Invalid device "
4045
0
                   "[VUID-vkGetMemoryFdKHR-device-parameter]");
4046
0
        abort(); /* Intentionally fail so user can correct issue. */
4047
0
    }
4048
0
    return disp->GetMemoryFdKHR(device, pGetFdInfo, pFd);
4049
0
}
4050
4051
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR(
4052
    VkDevice                                    device,
4053
    VkExternalMemoryHandleTypeFlagBits          handleType,
4054
    int                                         fd,
4055
0
    VkMemoryFdPropertiesKHR*                    pMemoryFdProperties) {
4056
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4057
0
    if (NULL == disp) {
4058
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4059
0
                   "vkGetMemoryFdPropertiesKHR: Invalid device "
4060
0
                   "[VUID-vkGetMemoryFdPropertiesKHR-device-parameter]");
4061
0
        abort(); /* Intentionally fail so user can correct issue. */
4062
0
    }
4063
0
    return disp->GetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
4064
0
}
4065
4066
4067
// ---- VK_KHR_external_semaphore_win32 extension trampoline/terminators
4068
4069
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4070
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreWin32HandleKHR(
4071
    VkDevice                                    device,
4072
    const VkImportSemaphoreWin32HandleInfoKHR*  pImportSemaphoreWin32HandleInfo) {
4073
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4074
    if (NULL == disp) {
4075
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4076
                   "vkImportSemaphoreWin32HandleKHR: Invalid device "
4077
                   "[VUID-vkImportSemaphoreWin32HandleKHR-device-parameter]");
4078
        abort(); /* Intentionally fail so user can correct issue. */
4079
    }
4080
    return disp->ImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
4081
}
4082
4083
#endif // VK_USE_PLATFORM_WIN32_KHR
4084
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4085
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR(
4086
    VkDevice                                    device,
4087
    const VkSemaphoreGetWin32HandleInfoKHR*     pGetWin32HandleInfo,
4088
    HANDLE*                                     pHandle) {
4089
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4090
    if (NULL == disp) {
4091
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4092
                   "vkGetSemaphoreWin32HandleKHR: Invalid device "
4093
                   "[VUID-vkGetSemaphoreWin32HandleKHR-device-parameter]");
4094
        abort(); /* Intentionally fail so user can correct issue. */
4095
    }
4096
    return disp->GetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4097
}
4098
4099
#endif // VK_USE_PLATFORM_WIN32_KHR
4100
4101
// ---- VK_KHR_external_semaphore_fd extension trampoline/terminators
4102
4103
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR(
4104
    VkDevice                                    device,
4105
0
    const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo) {
4106
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4107
0
    if (NULL == disp) {
4108
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4109
0
                   "vkImportSemaphoreFdKHR: Invalid device "
4110
0
                   "[VUID-vkImportSemaphoreFdKHR-device-parameter]");
4111
0
        abort(); /* Intentionally fail so user can correct issue. */
4112
0
    }
4113
0
    return disp->ImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
4114
0
}
4115
4116
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR(
4117
    VkDevice                                    device,
4118
    const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
4119
0
    int*                                        pFd) {
4120
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4121
0
    if (NULL == disp) {
4122
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4123
0
                   "vkGetSemaphoreFdKHR: Invalid device "
4124
0
                   "[VUID-vkGetSemaphoreFdKHR-device-parameter]");
4125
0
        abort(); /* Intentionally fail so user can correct issue. */
4126
0
    }
4127
0
    return disp->GetSemaphoreFdKHR(device, pGetFdInfo, pFd);
4128
0
}
4129
4130
4131
// ---- VK_KHR_push_descriptor extension trampoline/terminators
4132
4133
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR(
4134
    VkCommandBuffer                             commandBuffer,
4135
    VkPipelineBindPoint                         pipelineBindPoint,
4136
    VkPipelineLayout                            layout,
4137
    uint32_t                                    set,
4138
    uint32_t                                    descriptorWriteCount,
4139
0
    const VkWriteDescriptorSet*                 pDescriptorWrites) {
4140
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4141
0
    if (NULL == disp) {
4142
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4143
0
                   "vkCmdPushDescriptorSetKHR: Invalid commandBuffer "
4144
0
                   "[VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter]");
4145
0
        abort(); /* Intentionally fail so user can correct issue. */
4146
0
    }
4147
0
    disp->CmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
4148
0
}
4149
4150
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplateKHR(
4151
    VkCommandBuffer                             commandBuffer,
4152
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4153
    VkPipelineLayout                            layout,
4154
    uint32_t                                    set,
4155
0
    const void*                                 pData) {
4156
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4157
0
    if (NULL == disp) {
4158
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4159
0
                   "vkCmdPushDescriptorSetWithTemplateKHR: Invalid commandBuffer "
4160
0
                   "[VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter]");
4161
0
        abort(); /* Intentionally fail so user can correct issue. */
4162
0
    }
4163
0
    disp->CmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
4164
0
}
4165
4166
4167
// ---- VK_KHR_descriptor_update_template extension trampoline/terminators
4168
4169
VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR(
4170
    VkDevice                                    device,
4171
    const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
4172
    const VkAllocationCallbacks*                pAllocator,
4173
0
    VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate) {
4174
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4175
0
    if (NULL == disp) {
4176
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4177
0
                   "vkCreateDescriptorUpdateTemplateKHR: Invalid device "
4178
0
                   "[VUID-vkCreateDescriptorUpdateTemplateKHR-device-parameter]");
4179
0
        abort(); /* Intentionally fail so user can correct issue. */
4180
0
    }
4181
0
    return disp->CreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
4182
0
}
4183
4184
VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR(
4185
    VkDevice                                    device,
4186
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4187
0
    const VkAllocationCallbacks*                pAllocator) {
4188
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4189
0
    if (NULL == disp) {
4190
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4191
0
                   "vkDestroyDescriptorUpdateTemplateKHR: Invalid device "
4192
0
                   "[VUID-vkDestroyDescriptorUpdateTemplateKHR-device-parameter]");
4193
0
        abort(); /* Intentionally fail so user can correct issue. */
4194
0
    }
4195
0
    disp->DestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
4196
0
}
4197
4198
VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSetWithTemplateKHR(
4199
    VkDevice                                    device,
4200
    VkDescriptorSet                             descriptorSet,
4201
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4202
0
    const void*                                 pData) {
4203
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4204
0
    if (NULL == disp) {
4205
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4206
0
                   "vkUpdateDescriptorSetWithTemplateKHR: Invalid device "
4207
0
                   "[VUID-vkUpdateDescriptorSetWithTemplateKHR-device-parameter]");
4208
0
        abort(); /* Intentionally fail so user can correct issue. */
4209
0
    }
4210
0
    disp->UpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
4211
0
}
4212
4213
4214
// ---- VK_KHR_create_renderpass2 extension trampoline/terminators
4215
4216
VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR(
4217
    VkDevice                                    device,
4218
    const VkRenderPassCreateInfo2*              pCreateInfo,
4219
    const VkAllocationCallbacks*                pAllocator,
4220
0
    VkRenderPass*                               pRenderPass) {
4221
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4222
0
    if (NULL == disp) {
4223
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4224
0
                   "vkCreateRenderPass2KHR: Invalid device "
4225
0
                   "[VUID-vkCreateRenderPass2KHR-device-parameter]");
4226
0
        abort(); /* Intentionally fail so user can correct issue. */
4227
0
    }
4228
0
    return disp->CreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
4229
0
}
4230
4231
VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR(
4232
    VkCommandBuffer                             commandBuffer,
4233
    const VkRenderPassBeginInfo*                pRenderPassBegin,
4234
0
    const VkSubpassBeginInfo*                   pSubpassBeginInfo) {
4235
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4236
0
    if (NULL == disp) {
4237
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4238
0
                   "vkCmdBeginRenderPass2KHR: Invalid commandBuffer "
4239
0
                   "[VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter]");
4240
0
        abort(); /* Intentionally fail so user can correct issue. */
4241
0
    }
4242
0
    disp->CmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
4243
0
}
4244
4245
VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR(
4246
    VkCommandBuffer                             commandBuffer,
4247
    const VkSubpassBeginInfo*                   pSubpassBeginInfo,
4248
0
    const VkSubpassEndInfo*                     pSubpassEndInfo) {
4249
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4250
0
    if (NULL == disp) {
4251
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4252
0
                   "vkCmdNextSubpass2KHR: Invalid commandBuffer "
4253
0
                   "[VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter]");
4254
0
        abort(); /* Intentionally fail so user can correct issue. */
4255
0
    }
4256
0
    disp->CmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
4257
0
}
4258
4259
VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR(
4260
    VkCommandBuffer                             commandBuffer,
4261
0
    const VkSubpassEndInfo*                     pSubpassEndInfo) {
4262
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4263
0
    if (NULL == disp) {
4264
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4265
0
                   "vkCmdEndRenderPass2KHR: Invalid commandBuffer "
4266
0
                   "[VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter]");
4267
0
        abort(); /* Intentionally fail so user can correct issue. */
4268
0
    }
4269
0
    disp->CmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
4270
0
}
4271
4272
4273
// ---- VK_KHR_shared_presentable_image extension trampoline/terminators
4274
4275
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR(
4276
    VkDevice                                    device,
4277
0
    VkSwapchainKHR                              swapchain) {
4278
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4279
0
    if (NULL == disp) {
4280
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4281
0
                   "vkGetSwapchainStatusKHR: Invalid device "
4282
0
                   "[VUID-vkGetSwapchainStatusKHR-device-parameter]");
4283
0
        abort(); /* Intentionally fail so user can correct issue. */
4284
0
    }
4285
0
    return disp->GetSwapchainStatusKHR(device, swapchain);
4286
0
}
4287
4288
4289
// ---- VK_KHR_external_fence_win32 extension trampoline/terminators
4290
4291
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4292
VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR(
4293
    VkDevice                                    device,
4294
    const VkImportFenceWin32HandleInfoKHR*      pImportFenceWin32HandleInfo) {
4295
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4296
    if (NULL == disp) {
4297
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4298
                   "vkImportFenceWin32HandleKHR: Invalid device "
4299
                   "[VUID-vkImportFenceWin32HandleKHR-device-parameter]");
4300
        abort(); /* Intentionally fail so user can correct issue. */
4301
    }
4302
    return disp->ImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
4303
}
4304
4305
#endif // VK_USE_PLATFORM_WIN32_KHR
4306
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4307
VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR(
4308
    VkDevice                                    device,
4309
    const VkFenceGetWin32HandleInfoKHR*         pGetWin32HandleInfo,
4310
    HANDLE*                                     pHandle) {
4311
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4312
    if (NULL == disp) {
4313
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4314
                   "vkGetFenceWin32HandleKHR: Invalid device "
4315
                   "[VUID-vkGetFenceWin32HandleKHR-device-parameter]");
4316
        abort(); /* Intentionally fail so user can correct issue. */
4317
    }
4318
    return disp->GetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4319
}
4320
4321
#endif // VK_USE_PLATFORM_WIN32_KHR
4322
4323
// ---- VK_KHR_external_fence_fd extension trampoline/terminators
4324
4325
VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR(
4326
    VkDevice                                    device,
4327
0
    const VkImportFenceFdInfoKHR*               pImportFenceFdInfo) {
4328
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4329
0
    if (NULL == disp) {
4330
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4331
0
                   "vkImportFenceFdKHR: Invalid device "
4332
0
                   "[VUID-vkImportFenceFdKHR-device-parameter]");
4333
0
        abort(); /* Intentionally fail so user can correct issue. */
4334
0
    }
4335
0
    return disp->ImportFenceFdKHR(device, pImportFenceFdInfo);
4336
0
}
4337
4338
VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR(
4339
    VkDevice                                    device,
4340
    const VkFenceGetFdInfoKHR*                  pGetFdInfo,
4341
0
    int*                                        pFd) {
4342
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4343
0
    if (NULL == disp) {
4344
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4345
0
                   "vkGetFenceFdKHR: Invalid device "
4346
0
                   "[VUID-vkGetFenceFdKHR-device-parameter]");
4347
0
        abort(); /* Intentionally fail so user can correct issue. */
4348
0
    }
4349
0
    return disp->GetFenceFdKHR(device, pGetFdInfo, pFd);
4350
0
}
4351
4352
4353
// ---- VK_KHR_performance_query extension trampoline/terminators
4354
4355
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
4356
    VkPhysicalDevice                            physicalDevice,
4357
    uint32_t                                    queueFamilyIndex,
4358
    uint32_t*                                   pCounterCount,
4359
    VkPerformanceCounterKHR*                    pCounters,
4360
0
    VkPerformanceCounterDescriptionKHR*         pCounterDescriptions) {
4361
0
    const VkLayerInstanceDispatchTable *disp;
4362
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4363
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4364
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4365
0
                   "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR: Invalid physicalDevice "
4366
0
                   "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter]");
4367
0
        abort(); /* Intentionally fail so user can correct issue. */
4368
0
    }
4369
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4370
0
    return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
4371
0
}
4372
4373
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
4374
    VkPhysicalDevice                            physicalDevice,
4375
    uint32_t                                    queueFamilyIndex,
4376
    uint32_t*                                   pCounterCount,
4377
    VkPerformanceCounterKHR*                    pCounters,
4378
0
    VkPerformanceCounterDescriptionKHR*         pCounterDescriptions) {
4379
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4380
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4381
0
    if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) {
4382
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4383
0
                   "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
4384
0
        abort(); /* Intentionally fail so user can correct issue. */
4385
0
    }
4386
0
    return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
4387
0
}
4388
4389
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
4390
    VkPhysicalDevice                            physicalDevice,
4391
    const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
4392
0
    uint32_t*                                   pNumPasses) {
4393
0
    const VkLayerInstanceDispatchTable *disp;
4394
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4395
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4396
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4397
0
                   "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR: Invalid physicalDevice "
4398
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter]");
4399
0
        abort(); /* Intentionally fail so user can correct issue. */
4400
0
    }
4401
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4402
0
    disp->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(unwrapped_phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4403
0
}
4404
4405
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
4406
    VkPhysicalDevice                            physicalDevice,
4407
    const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
4408
0
    uint32_t*                                   pNumPasses) {
4409
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4410
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4411
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) {
4412
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4413
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
4414
0
        abort(); /* Intentionally fail so user can correct issue. */
4415
0
    }
4416
0
    icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(phys_dev_term->phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4417
0
}
4418
4419
VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR(
4420
    VkDevice                                    device,
4421
0
    const VkAcquireProfilingLockInfoKHR*        pInfo) {
4422
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4423
0
    if (NULL == disp) {
4424
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4425
0
                   "vkAcquireProfilingLockKHR: Invalid device "
4426
0
                   "[VUID-vkAcquireProfilingLockKHR-device-parameter]");
4427
0
        abort(); /* Intentionally fail so user can correct issue. */
4428
0
    }
4429
0
    return disp->AcquireProfilingLockKHR(device, pInfo);
4430
0
}
4431
4432
VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR(
4433
0
    VkDevice                                    device) {
4434
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4435
0
    if (NULL == disp) {
4436
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4437
0
                   "vkReleaseProfilingLockKHR: Invalid device "
4438
0
                   "[VUID-vkReleaseProfilingLockKHR-device-parameter]");
4439
0
        abort(); /* Intentionally fail so user can correct issue. */
4440
0
    }
4441
0
    disp->ReleaseProfilingLockKHR(device);
4442
0
}
4443
4444
4445
// ---- VK_KHR_get_memory_requirements2 extension trampoline/terminators
4446
4447
VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR(
4448
    VkDevice                                    device,
4449
    const VkImageMemoryRequirementsInfo2*       pInfo,
4450
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
4451
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4452
0
    if (NULL == disp) {
4453
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4454
0
                   "vkGetImageMemoryRequirements2KHR: Invalid device "
4455
0
                   "[VUID-vkGetImageMemoryRequirements2KHR-device-parameter]");
4456
0
        abort(); /* Intentionally fail so user can correct issue. */
4457
0
    }
4458
0
    disp->GetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4459
0
}
4460
4461
VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR(
4462
    VkDevice                                    device,
4463
    const VkBufferMemoryRequirementsInfo2*      pInfo,
4464
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
4465
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4466
0
    if (NULL == disp) {
4467
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4468
0
                   "vkGetBufferMemoryRequirements2KHR: Invalid device "
4469
0
                   "[VUID-vkGetBufferMemoryRequirements2KHR-device-parameter]");
4470
0
        abort(); /* Intentionally fail so user can correct issue. */
4471
0
    }
4472
0
    disp->GetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4473
0
}
4474
4475
VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR(
4476
    VkDevice                                    device,
4477
    const VkImageSparseMemoryRequirementsInfo2* pInfo,
4478
    uint32_t*                                   pSparseMemoryRequirementCount,
4479
0
    VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements) {
4480
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4481
0
    if (NULL == disp) {
4482
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4483
0
                   "vkGetImageSparseMemoryRequirements2KHR: Invalid device "
4484
0
                   "[VUID-vkGetImageSparseMemoryRequirements2KHR-device-parameter]");
4485
0
        abort(); /* Intentionally fail so user can correct issue. */
4486
0
    }
4487
0
    disp->GetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
4488
0
}
4489
4490
4491
// ---- VK_KHR_sampler_ycbcr_conversion extension trampoline/terminators
4492
4493
VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR(
4494
    VkDevice                                    device,
4495
    const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
4496
    const VkAllocationCallbacks*                pAllocator,
4497
0
    VkSamplerYcbcrConversion*                   pYcbcrConversion) {
4498
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4499
0
    if (NULL == disp) {
4500
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4501
0
                   "vkCreateSamplerYcbcrConversionKHR: Invalid device "
4502
0
                   "[VUID-vkCreateSamplerYcbcrConversionKHR-device-parameter]");
4503
0
        abort(); /* Intentionally fail so user can correct issue. */
4504
0
    }
4505
0
    return disp->CreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
4506
0
}
4507
4508
VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversionKHR(
4509
    VkDevice                                    device,
4510
    VkSamplerYcbcrConversion                    ycbcrConversion,
4511
0
    const VkAllocationCallbacks*                pAllocator) {
4512
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4513
0
    if (NULL == disp) {
4514
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4515
0
                   "vkDestroySamplerYcbcrConversionKHR: Invalid device "
4516
0
                   "[VUID-vkDestroySamplerYcbcrConversionKHR-device-parameter]");
4517
0
        abort(); /* Intentionally fail so user can correct issue. */
4518
0
    }
4519
0
    disp->DestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
4520
0
}
4521
4522
4523
// ---- VK_KHR_bind_memory2 extension trampoline/terminators
4524
4525
VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHR(
4526
    VkDevice                                    device,
4527
    uint32_t                                    bindInfoCount,
4528
0
    const VkBindBufferMemoryInfo*               pBindInfos) {
4529
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4530
0
    if (NULL == disp) {
4531
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4532
0
                   "vkBindBufferMemory2KHR: Invalid device "
4533
0
                   "[VUID-vkBindBufferMemory2KHR-device-parameter]");
4534
0
        abort(); /* Intentionally fail so user can correct issue. */
4535
0
    }
4536
0
    return disp->BindBufferMemory2KHR(device, bindInfoCount, pBindInfos);
4537
0
}
4538
4539
VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHR(
4540
    VkDevice                                    device,
4541
    uint32_t                                    bindInfoCount,
4542
0
    const VkBindImageMemoryInfo*                pBindInfos) {
4543
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4544
0
    if (NULL == disp) {
4545
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4546
0
                   "vkBindImageMemory2KHR: Invalid device "
4547
0
                   "[VUID-vkBindImageMemory2KHR-device-parameter]");
4548
0
        abort(); /* Intentionally fail so user can correct issue. */
4549
0
    }
4550
0
    return disp->BindImageMemory2KHR(device, bindInfoCount, pBindInfos);
4551
0
}
4552
4553
4554
// ---- VK_KHR_maintenance3 extension trampoline/terminators
4555
4556
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupportKHR(
4557
    VkDevice                                    device,
4558
    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4559
0
    VkDescriptorSetLayoutSupport*               pSupport) {
4560
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4561
0
    if (NULL == disp) {
4562
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4563
0
                   "vkGetDescriptorSetLayoutSupportKHR: Invalid device "
4564
0
                   "[VUID-vkGetDescriptorSetLayoutSupportKHR-device-parameter]");
4565
0
        abort(); /* Intentionally fail so user can correct issue. */
4566
0
    }
4567
0
    disp->GetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
4568
0
}
4569
4570
4571
// ---- VK_KHR_draw_indirect_count extension trampoline/terminators
4572
4573
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR(
4574
    VkCommandBuffer                             commandBuffer,
4575
    VkBuffer                                    buffer,
4576
    VkDeviceSize                                offset,
4577
    VkBuffer                                    countBuffer,
4578
    VkDeviceSize                                countBufferOffset,
4579
    uint32_t                                    maxDrawCount,
4580
0
    uint32_t                                    stride) {
4581
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4582
0
    if (NULL == disp) {
4583
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4584
0
                   "vkCmdDrawIndirectCountKHR: Invalid commandBuffer "
4585
0
                   "[VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter]");
4586
0
        abort(); /* Intentionally fail so user can correct issue. */
4587
0
    }
4588
0
    disp->CmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4589
0
}
4590
4591
VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR(
4592
    VkCommandBuffer                             commandBuffer,
4593
    VkBuffer                                    buffer,
4594
    VkDeviceSize                                offset,
4595
    VkBuffer                                    countBuffer,
4596
    VkDeviceSize                                countBufferOffset,
4597
    uint32_t                                    maxDrawCount,
4598
0
    uint32_t                                    stride) {
4599
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4600
0
    if (NULL == disp) {
4601
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4602
0
                   "vkCmdDrawIndexedIndirectCountKHR: Invalid commandBuffer "
4603
0
                   "[VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter]");
4604
0
        abort(); /* Intentionally fail so user can correct issue. */
4605
0
    }
4606
0
    disp->CmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4607
0
}
4608
4609
4610
// ---- VK_KHR_timeline_semaphore extension trampoline/terminators
4611
4612
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR(
4613
    VkDevice                                    device,
4614
    VkSemaphore                                 semaphore,
4615
0
    uint64_t*                                   pValue) {
4616
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4617
0
    if (NULL == disp) {
4618
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4619
0
                   "vkGetSemaphoreCounterValueKHR: Invalid device "
4620
0
                   "[VUID-vkGetSemaphoreCounterValueKHR-device-parameter]");
4621
0
        abort(); /* Intentionally fail so user can correct issue. */
4622
0
    }
4623
0
    return disp->GetSemaphoreCounterValueKHR(device, semaphore, pValue);
4624
0
}
4625
4626
VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR(
4627
    VkDevice                                    device,
4628
    const VkSemaphoreWaitInfo*                  pWaitInfo,
4629
0
    uint64_t                                    timeout) {
4630
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4631
0
    if (NULL == disp) {
4632
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4633
0
                   "vkWaitSemaphoresKHR: Invalid device "
4634
0
                   "[VUID-vkWaitSemaphoresKHR-device-parameter]");
4635
0
        abort(); /* Intentionally fail so user can correct issue. */
4636
0
    }
4637
0
    return disp->WaitSemaphoresKHR(device, pWaitInfo, timeout);
4638
0
}
4639
4640
VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR(
4641
    VkDevice                                    device,
4642
0
    const VkSemaphoreSignalInfo*                pSignalInfo) {
4643
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4644
0
    if (NULL == disp) {
4645
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4646
0
                   "vkSignalSemaphoreKHR: Invalid device "
4647
0
                   "[VUID-vkSignalSemaphoreKHR-device-parameter]");
4648
0
        abort(); /* Intentionally fail so user can correct issue. */
4649
0
    }
4650
0
    return disp->SignalSemaphoreKHR(device, pSignalInfo);
4651
0
}
4652
4653
4654
// ---- VK_KHR_fragment_shading_rate extension trampoline/terminators
4655
4656
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR(
4657
    VkPhysicalDevice                            physicalDevice,
4658
    uint32_t*                                   pFragmentShadingRateCount,
4659
0
    VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates) {
4660
0
    const VkLayerInstanceDispatchTable *disp;
4661
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4662
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4663
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4664
0
                   "vkGetPhysicalDeviceFragmentShadingRatesKHR: Invalid physicalDevice "
4665
0
                   "[VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter]");
4666
0
        abort(); /* Intentionally fail so user can correct issue. */
4667
0
    }
4668
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4669
0
    return disp->GetPhysicalDeviceFragmentShadingRatesKHR(unwrapped_phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4670
0
}
4671
4672
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceFragmentShadingRatesKHR(
4673
    VkPhysicalDevice                            physicalDevice,
4674
    uint32_t*                                   pFragmentShadingRateCount,
4675
0
    VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates) {
4676
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4677
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4678
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR) {
4679
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4680
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceFragmentShadingRatesKHR");
4681
0
        abort(); /* Intentionally fail so user can correct issue. */
4682
0
    }
4683
0
    return icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR(phys_dev_term->phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4684
0
}
4685
4686
VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateKHR(
4687
    VkCommandBuffer                             commandBuffer,
4688
    const VkExtent2D*                           pFragmentSize,
4689
0
    const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]) {
4690
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4691
0
    if (NULL == disp) {
4692
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4693
0
                   "vkCmdSetFragmentShadingRateKHR: Invalid commandBuffer "
4694
0
                   "[VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter]");
4695
0
        abort(); /* Intentionally fail so user can correct issue. */
4696
0
    }
4697
0
    disp->CmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
4698
0
}
4699
4700
4701
// ---- VK_KHR_dynamic_rendering_local_read extension trampoline/terminators
4702
4703
VKAPI_ATTR void VKAPI_CALL CmdSetRenderingAttachmentLocationsKHR(
4704
    VkCommandBuffer                             commandBuffer,
4705
0
    const VkRenderingAttachmentLocationInfo*    pLocationInfo) {
4706
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4707
0
    if (NULL == disp) {
4708
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4709
0
                   "vkCmdSetRenderingAttachmentLocationsKHR: Invalid commandBuffer "
4710
0
                   "[VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-parameter]");
4711
0
        abort(); /* Intentionally fail so user can correct issue. */
4712
0
    }
4713
0
    disp->CmdSetRenderingAttachmentLocationsKHR(commandBuffer, pLocationInfo);
4714
0
}
4715
4716
VKAPI_ATTR void VKAPI_CALL CmdSetRenderingInputAttachmentIndicesKHR(
4717
    VkCommandBuffer                             commandBuffer,
4718
0
    const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo) {
4719
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4720
0
    if (NULL == disp) {
4721
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4722
0
                   "vkCmdSetRenderingInputAttachmentIndicesKHR: Invalid commandBuffer "
4723
0
                   "[VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-parameter]");
4724
0
        abort(); /* Intentionally fail so user can correct issue. */
4725
0
    }
4726
0
    disp->CmdSetRenderingInputAttachmentIndicesKHR(commandBuffer, pInputAttachmentIndexInfo);
4727
0
}
4728
4729
4730
// ---- VK_KHR_present_wait extension trampoline/terminators
4731
4732
VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR(
4733
    VkDevice                                    device,
4734
    VkSwapchainKHR                              swapchain,
4735
    uint64_t                                    presentId,
4736
0
    uint64_t                                    timeout) {
4737
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4738
0
    if (NULL == disp) {
4739
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4740
0
                   "vkWaitForPresentKHR: Invalid device "
4741
0
                   "[VUID-vkWaitForPresentKHR-device-parameter]");
4742
0
        abort(); /* Intentionally fail so user can correct issue. */
4743
0
    }
4744
0
    return disp->WaitForPresentKHR(device, swapchain, presentId, timeout);
4745
0
}
4746
4747
4748
// ---- VK_KHR_buffer_device_address extension trampoline/terminators
4749
4750
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR(
4751
    VkDevice                                    device,
4752
0
    const VkBufferDeviceAddressInfo*            pInfo) {
4753
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4754
0
    if (NULL == disp) {
4755
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4756
0
                   "vkGetBufferDeviceAddressKHR: Invalid device "
4757
0
                   "[VUID-vkGetBufferDeviceAddressKHR-device-parameter]");
4758
0
        abort(); /* Intentionally fail so user can correct issue. */
4759
0
    }
4760
0
    return disp->GetBufferDeviceAddressKHR(device, pInfo);
4761
0
}
4762
4763
VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR(
4764
    VkDevice                                    device,
4765
0
    const VkBufferDeviceAddressInfo*            pInfo) {
4766
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4767
0
    if (NULL == disp) {
4768
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4769
0
                   "vkGetBufferOpaqueCaptureAddressKHR: Invalid device "
4770
0
                   "[VUID-vkGetBufferOpaqueCaptureAddressKHR-device-parameter]");
4771
0
        abort(); /* Intentionally fail so user can correct issue. */
4772
0
    }
4773
0
    return disp->GetBufferOpaqueCaptureAddressKHR(device, pInfo);
4774
0
}
4775
4776
VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR(
4777
    VkDevice                                    device,
4778
0
    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
4779
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4780
0
    if (NULL == disp) {
4781
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4782
0
                   "vkGetDeviceMemoryOpaqueCaptureAddressKHR: Invalid device "
4783
0
                   "[VUID-vkGetDeviceMemoryOpaqueCaptureAddressKHR-device-parameter]");
4784
0
        abort(); /* Intentionally fail so user can correct issue. */
4785
0
    }
4786
0
    return disp->GetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo);
4787
0
}
4788
4789
4790
// ---- VK_KHR_deferred_host_operations extension trampoline/terminators
4791
4792
VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR(
4793
    VkDevice                                    device,
4794
    const VkAllocationCallbacks*                pAllocator,
4795
0
    VkDeferredOperationKHR*                     pDeferredOperation) {
4796
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4797
0
    if (NULL == disp) {
4798
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4799
0
                   "vkCreateDeferredOperationKHR: Invalid device "
4800
0
                   "[VUID-vkCreateDeferredOperationKHR-device-parameter]");
4801
0
        abort(); /* Intentionally fail so user can correct issue. */
4802
0
    }
4803
0
    return disp->CreateDeferredOperationKHR(device, pAllocator, pDeferredOperation);
4804
0
}
4805
4806
VKAPI_ATTR void VKAPI_CALL DestroyDeferredOperationKHR(
4807
    VkDevice                                    device,
4808
    VkDeferredOperationKHR                      operation,
4809
0
    const VkAllocationCallbacks*                pAllocator) {
4810
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4811
0
    if (NULL == disp) {
4812
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4813
0
                   "vkDestroyDeferredOperationKHR: Invalid device "
4814
0
                   "[VUID-vkDestroyDeferredOperationKHR-device-parameter]");
4815
0
        abort(); /* Intentionally fail so user can correct issue. */
4816
0
    }
4817
0
    disp->DestroyDeferredOperationKHR(device, operation, pAllocator);
4818
0
}
4819
4820
VKAPI_ATTR uint32_t VKAPI_CALL GetDeferredOperationMaxConcurrencyKHR(
4821
    VkDevice                                    device,
4822
0
    VkDeferredOperationKHR                      operation) {
4823
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4824
0
    if (NULL == disp) {
4825
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4826
0
                   "vkGetDeferredOperationMaxConcurrencyKHR: Invalid device "
4827
0
                   "[VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter]");
4828
0
        abort(); /* Intentionally fail so user can correct issue. */
4829
0
    }
4830
0
    return disp->GetDeferredOperationMaxConcurrencyKHR(device, operation);
4831
0
}
4832
4833
VKAPI_ATTR VkResult VKAPI_CALL GetDeferredOperationResultKHR(
4834
    VkDevice                                    device,
4835
0
    VkDeferredOperationKHR                      operation) {
4836
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4837
0
    if (NULL == disp) {
4838
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4839
0
                   "vkGetDeferredOperationResultKHR: Invalid device "
4840
0
                   "[VUID-vkGetDeferredOperationResultKHR-device-parameter]");
4841
0
        abort(); /* Intentionally fail so user can correct issue. */
4842
0
    }
4843
0
    return disp->GetDeferredOperationResultKHR(device, operation);
4844
0
}
4845
4846
VKAPI_ATTR VkResult VKAPI_CALL DeferredOperationJoinKHR(
4847
    VkDevice                                    device,
4848
0
    VkDeferredOperationKHR                      operation) {
4849
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4850
0
    if (NULL == disp) {
4851
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4852
0
                   "vkDeferredOperationJoinKHR: Invalid device "
4853
0
                   "[VUID-vkDeferredOperationJoinKHR-device-parameter]");
4854
0
        abort(); /* Intentionally fail so user can correct issue. */
4855
0
    }
4856
0
    return disp->DeferredOperationJoinKHR(device, operation);
4857
0
}
4858
4859
4860
// ---- VK_KHR_pipeline_executable_properties extension trampoline/terminators
4861
4862
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR(
4863
    VkDevice                                    device,
4864
    const VkPipelineInfoKHR*                    pPipelineInfo,
4865
    uint32_t*                                   pExecutableCount,
4866
0
    VkPipelineExecutablePropertiesKHR*          pProperties) {
4867
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4868
0
    if (NULL == disp) {
4869
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4870
0
                   "vkGetPipelineExecutablePropertiesKHR: Invalid device "
4871
0
                   "[VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter]");
4872
0
        abort(); /* Intentionally fail so user can correct issue. */
4873
0
    }
4874
0
    return disp->GetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties);
4875
0
}
4876
4877
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR(
4878
    VkDevice                                    device,
4879
    const VkPipelineExecutableInfoKHR*          pExecutableInfo,
4880
    uint32_t*                                   pStatisticCount,
4881
0
    VkPipelineExecutableStatisticKHR*           pStatistics) {
4882
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4883
0
    if (NULL == disp) {
4884
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4885
0
                   "vkGetPipelineExecutableStatisticsKHR: Invalid device "
4886
0
                   "[VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter]");
4887
0
        abort(); /* Intentionally fail so user can correct issue. */
4888
0
    }
4889
0
    return disp->GetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics);
4890
0
}
4891
4892
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR(
4893
    VkDevice                                    device,
4894
    const VkPipelineExecutableInfoKHR*          pExecutableInfo,
4895
    uint32_t*                                   pInternalRepresentationCount,
4896
0
    VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
4897
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4898
0
    if (NULL == disp) {
4899
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4900
0
                   "vkGetPipelineExecutableInternalRepresentationsKHR: Invalid device "
4901
0
                   "[VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter]");
4902
0
        abort(); /* Intentionally fail so user can correct issue. */
4903
0
    }
4904
0
    return disp->GetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations);
4905
0
}
4906
4907
4908
// ---- VK_KHR_map_memory2 extension trampoline/terminators
4909
4910
VKAPI_ATTR VkResult VKAPI_CALL MapMemory2KHR(
4911
    VkDevice                                    device,
4912
    const VkMemoryMapInfo*                      pMemoryMapInfo,
4913
0
    void**                                      ppData) {
4914
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4915
0
    if (NULL == disp) {
4916
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4917
0
                   "vkMapMemory2KHR: Invalid device "
4918
0
                   "[VUID-vkMapMemory2KHR-device-parameter]");
4919
0
        abort(); /* Intentionally fail so user can correct issue. */
4920
0
    }
4921
0
    return disp->MapMemory2KHR(device, pMemoryMapInfo, ppData);
4922
0
}
4923
4924
VKAPI_ATTR VkResult VKAPI_CALL UnmapMemory2KHR(
4925
    VkDevice                                    device,
4926
0
    const VkMemoryUnmapInfo*                    pMemoryUnmapInfo) {
4927
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4928
0
    if (NULL == disp) {
4929
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4930
0
                   "vkUnmapMemory2KHR: Invalid device "
4931
0
                   "[VUID-vkUnmapMemory2KHR-device-parameter]");
4932
0
        abort(); /* Intentionally fail so user can correct issue. */
4933
0
    }
4934
0
    return disp->UnmapMemory2KHR(device, pMemoryUnmapInfo);
4935
0
}
4936
4937
4938
// ---- VK_KHR_video_encode_queue extension trampoline/terminators
4939
4940
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
4941
    VkPhysicalDevice                            physicalDevice,
4942
    const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
4943
0
    VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties) {
4944
0
    const VkLayerInstanceDispatchTable *disp;
4945
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4946
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4947
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4948
0
                   "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR: Invalid physicalDevice "
4949
0
                   "[VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameter]");
4950
0
        abort(); /* Intentionally fail so user can correct issue. */
4951
0
    }
4952
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4953
0
    return disp->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(unwrapped_phys_dev, pQualityLevelInfo, pQualityLevelProperties);
4954
0
}
4955
4956
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
4957
    VkPhysicalDevice                            physicalDevice,
4958
    const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
4959
0
    VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties) {
4960
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4961
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4962
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) {
4963
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4964
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
4965
0
        abort(); /* Intentionally fail so user can correct issue. */
4966
0
    }
4967
0
    return icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(phys_dev_term->phys_dev, pQualityLevelInfo, pQualityLevelProperties);
4968
0
}
4969
4970
VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR(
4971
    VkDevice                                    device,
4972
    const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
4973
    VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
4974
    size_t*                                     pDataSize,
4975
0
    void*                                       pData) {
4976
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4977
0
    if (NULL == disp) {
4978
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4979
0
                   "vkGetEncodedVideoSessionParametersKHR: Invalid device "
4980
0
                   "[VUID-vkGetEncodedVideoSessionParametersKHR-device-parameter]");
4981
0
        abort(); /* Intentionally fail so user can correct issue. */
4982
0
    }
4983
0
    return disp->GetEncodedVideoSessionParametersKHR(device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData);
4984
0
}
4985
4986
VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR(
4987
    VkCommandBuffer                             commandBuffer,
4988
0
    const VkVideoEncodeInfoKHR*                 pEncodeInfo) {
4989
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4990
0
    if (NULL == disp) {
4991
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4992
0
                   "vkCmdEncodeVideoKHR: Invalid commandBuffer "
4993
0
                   "[VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter]");
4994
0
        abort(); /* Intentionally fail so user can correct issue. */
4995
0
    }
4996
0
    disp->CmdEncodeVideoKHR(commandBuffer, pEncodeInfo);
4997
0
}
4998
4999
5000
// ---- VK_KHR_synchronization2 extension trampoline/terminators
5001
5002
VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR(
5003
    VkCommandBuffer                             commandBuffer,
5004
    VkEvent                                     event,
5005
0
    const VkDependencyInfo*                     pDependencyInfo) {
5006
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5007
0
    if (NULL == disp) {
5008
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5009
0
                   "vkCmdSetEvent2KHR: Invalid commandBuffer "
5010
0
                   "[VUID-vkCmdSetEvent2KHR-commandBuffer-parameter]");
5011
0
        abort(); /* Intentionally fail so user can correct issue. */
5012
0
    }
5013
0
    disp->CmdSetEvent2KHR(commandBuffer, event, pDependencyInfo);
5014
0
}
5015
5016
VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR(
5017
    VkCommandBuffer                             commandBuffer,
5018
    VkEvent                                     event,
5019
0
    VkPipelineStageFlags2                       stageMask) {
5020
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5021
0
    if (NULL == disp) {
5022
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5023
0
                   "vkCmdResetEvent2KHR: Invalid commandBuffer "
5024
0
                   "[VUID-vkCmdResetEvent2KHR-commandBuffer-parameter]");
5025
0
        abort(); /* Intentionally fail so user can correct issue. */
5026
0
    }
5027
0
    disp->CmdResetEvent2KHR(commandBuffer, event, stageMask);
5028
0
}
5029
5030
VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR(
5031
    VkCommandBuffer                             commandBuffer,
5032
    uint32_t                                    eventCount,
5033
    const VkEvent*                              pEvents,
5034
0
    const VkDependencyInfo*                     pDependencyInfos) {
5035
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5036
0
    if (NULL == disp) {
5037
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5038
0
                   "vkCmdWaitEvents2KHR: Invalid commandBuffer "
5039
0
                   "[VUID-vkCmdWaitEvents2KHR-commandBuffer-parameter]");
5040
0
        abort(); /* Intentionally fail so user can correct issue. */
5041
0
    }
5042
0
    disp->CmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos);
5043
0
}
5044
5045
VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2KHR(
5046
    VkCommandBuffer                             commandBuffer,
5047
0
    const VkDependencyInfo*                     pDependencyInfo) {
5048
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5049
0
    if (NULL == disp) {
5050
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5051
0
                   "vkCmdPipelineBarrier2KHR: Invalid commandBuffer "
5052
0
                   "[VUID-vkCmdPipelineBarrier2KHR-commandBuffer-parameter]");
5053
0
        abort(); /* Intentionally fail so user can correct issue. */
5054
0
    }
5055
0
    disp->CmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo);
5056
0
}
5057
5058
VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR(
5059
    VkCommandBuffer                             commandBuffer,
5060
    VkPipelineStageFlags2                       stage,
5061
    VkQueryPool                                 queryPool,
5062
0
    uint32_t                                    query) {
5063
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5064
0
    if (NULL == disp) {
5065
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5066
0
                   "vkCmdWriteTimestamp2KHR: Invalid commandBuffer "
5067
0
                   "[VUID-vkCmdWriteTimestamp2KHR-commandBuffer-parameter]");
5068
0
        abort(); /* Intentionally fail so user can correct issue. */
5069
0
    }
5070
0
    disp->CmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query);
5071
0
}
5072
5073
VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR(
5074
    VkQueue                                     queue,
5075
    uint32_t                                    submitCount,
5076
    const VkSubmitInfo2*                        pSubmits,
5077
0
    VkFence                                     fence) {
5078
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
5079
0
    if (NULL == disp) {
5080
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5081
0
                   "vkQueueSubmit2KHR: Invalid queue "
5082
0
                   "[VUID-vkQueueSubmit2KHR-queue-parameter]");
5083
0
        abort(); /* Intentionally fail so user can correct issue. */
5084
0
    }
5085
0
    return disp->QueueSubmit2KHR(queue, submitCount, pSubmits, fence);
5086
0
}
5087
5088
5089
// ---- VK_KHR_copy_commands2 extension trampoline/terminators
5090
5091
VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR(
5092
    VkCommandBuffer                             commandBuffer,
5093
0
    const VkCopyBufferInfo2*                    pCopyBufferInfo) {
5094
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5095
0
    if (NULL == disp) {
5096
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5097
0
                   "vkCmdCopyBuffer2KHR: Invalid commandBuffer "
5098
0
                   "[VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter]");
5099
0
        abort(); /* Intentionally fail so user can correct issue. */
5100
0
    }
5101
0
    disp->CmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo);
5102
0
}
5103
5104
VKAPI_ATTR void VKAPI_CALL CmdCopyImage2KHR(
5105
    VkCommandBuffer                             commandBuffer,
5106
0
    const VkCopyImageInfo2*                     pCopyImageInfo) {
5107
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5108
0
    if (NULL == disp) {
5109
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5110
0
                   "vkCmdCopyImage2KHR: Invalid commandBuffer "
5111
0
                   "[VUID-vkCmdCopyImage2KHR-commandBuffer-parameter]");
5112
0
        abort(); /* Intentionally fail so user can correct issue. */
5113
0
    }
5114
0
    disp->CmdCopyImage2KHR(commandBuffer, pCopyImageInfo);
5115
0
}
5116
5117
VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2KHR(
5118
    VkCommandBuffer                             commandBuffer,
5119
0
    const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo) {
5120
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5121
0
    if (NULL == disp) {
5122
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5123
0
                   "vkCmdCopyBufferToImage2KHR: Invalid commandBuffer "
5124
0
                   "[VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter]");
5125
0
        abort(); /* Intentionally fail so user can correct issue. */
5126
0
    }
5127
0
    disp->CmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo);
5128
0
}
5129
5130
VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2KHR(
5131
    VkCommandBuffer                             commandBuffer,
5132
0
    const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo) {
5133
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5134
0
    if (NULL == disp) {
5135
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5136
0
                   "vkCmdCopyImageToBuffer2KHR: Invalid commandBuffer "
5137
0
                   "[VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter]");
5138
0
        abort(); /* Intentionally fail so user can correct issue. */
5139
0
    }
5140
0
    disp->CmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo);
5141
0
}
5142
5143
VKAPI_ATTR void VKAPI_CALL CmdBlitImage2KHR(
5144
    VkCommandBuffer                             commandBuffer,
5145
0
    const VkBlitImageInfo2*                     pBlitImageInfo) {
5146
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5147
0
    if (NULL == disp) {
5148
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5149
0
                   "vkCmdBlitImage2KHR: Invalid commandBuffer "
5150
0
                   "[VUID-vkCmdBlitImage2KHR-commandBuffer-parameter]");
5151
0
        abort(); /* Intentionally fail so user can correct issue. */
5152
0
    }
5153
0
    disp->CmdBlitImage2KHR(commandBuffer, pBlitImageInfo);
5154
0
}
5155
5156
VKAPI_ATTR void VKAPI_CALL CmdResolveImage2KHR(
5157
    VkCommandBuffer                             commandBuffer,
5158
0
    const VkResolveImageInfo2*                  pResolveImageInfo) {
5159
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5160
0
    if (NULL == disp) {
5161
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5162
0
                   "vkCmdResolveImage2KHR: Invalid commandBuffer "
5163
0
                   "[VUID-vkCmdResolveImage2KHR-commandBuffer-parameter]");
5164
0
        abort(); /* Intentionally fail so user can correct issue. */
5165
0
    }
5166
0
    disp->CmdResolveImage2KHR(commandBuffer, pResolveImageInfo);
5167
0
}
5168
5169
5170
// ---- VK_KHR_ray_tracing_maintenance1 extension trampoline/terminators
5171
5172
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirect2KHR(
5173
    VkCommandBuffer                             commandBuffer,
5174
0
    VkDeviceAddress                             indirectDeviceAddress) {
5175
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5176
0
    if (NULL == disp) {
5177
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5178
0
                   "vkCmdTraceRaysIndirect2KHR: Invalid commandBuffer "
5179
0
                   "[VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter]");
5180
0
        abort(); /* Intentionally fail so user can correct issue. */
5181
0
    }
5182
0
    disp->CmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress);
5183
0
}
5184
5185
5186
// ---- VK_KHR_maintenance4 extension trampoline/terminators
5187
5188
VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR(
5189
    VkDevice                                    device,
5190
    const VkDeviceBufferMemoryRequirements*     pInfo,
5191
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
5192
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5193
0
    if (NULL == disp) {
5194
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5195
0
                   "vkGetDeviceBufferMemoryRequirementsKHR: Invalid device "
5196
0
                   "[VUID-vkGetDeviceBufferMemoryRequirementsKHR-device-parameter]");
5197
0
        abort(); /* Intentionally fail so user can correct issue. */
5198
0
    }
5199
0
    disp->GetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
5200
0
}
5201
5202
VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR(
5203
    VkDevice                                    device,
5204
    const VkDeviceImageMemoryRequirements*      pInfo,
5205
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
5206
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5207
0
    if (NULL == disp) {
5208
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5209
0
                   "vkGetDeviceImageMemoryRequirementsKHR: Invalid device "
5210
0
                   "[VUID-vkGetDeviceImageMemoryRequirementsKHR-device-parameter]");
5211
0
        abort(); /* Intentionally fail so user can correct issue. */
5212
0
    }
5213
0
    disp->GetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
5214
0
}
5215
5216
VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR(
5217
    VkDevice                                    device,
5218
    const VkDeviceImageMemoryRequirements*      pInfo,
5219
    uint32_t*                                   pSparseMemoryRequirementCount,
5220
0
    VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements) {
5221
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5222
0
    if (NULL == disp) {
5223
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5224
0
                   "vkGetDeviceImageSparseMemoryRequirementsKHR: Invalid device "
5225
0
                   "[VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-device-parameter]");
5226
0
        abort(); /* Intentionally fail so user can correct issue. */
5227
0
    }
5228
0
    disp->GetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
5229
0
}
5230
5231
5232
// ---- VK_KHR_maintenance5 extension trampoline/terminators
5233
5234
VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR(
5235
    VkCommandBuffer                             commandBuffer,
5236
    VkBuffer                                    buffer,
5237
    VkDeviceSize                                offset,
5238
    VkDeviceSize                                size,
5239
0
    VkIndexType                                 indexType) {
5240
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5241
0
    if (NULL == disp) {
5242
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5243
0
                   "vkCmdBindIndexBuffer2KHR: Invalid commandBuffer "
5244
0
                   "[VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter]");
5245
0
        abort(); /* Intentionally fail so user can correct issue. */
5246
0
    }
5247
0
    disp->CmdBindIndexBuffer2KHR(commandBuffer, buffer, offset, size, indexType);
5248
0
}
5249
5250
VKAPI_ATTR void VKAPI_CALL GetRenderingAreaGranularityKHR(
5251
    VkDevice                                    device,
5252
    const VkRenderingAreaInfo*                  pRenderingAreaInfo,
5253
0
    VkExtent2D*                                 pGranularity) {
5254
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5255
0
    if (NULL == disp) {
5256
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5257
0
                   "vkGetRenderingAreaGranularityKHR: Invalid device "
5258
0
                   "[VUID-vkGetRenderingAreaGranularityKHR-device-parameter]");
5259
0
        abort(); /* Intentionally fail so user can correct issue. */
5260
0
    }
5261
0
    disp->GetRenderingAreaGranularityKHR(device, pRenderingAreaInfo, pGranularity);
5262
0
}
5263
5264
VKAPI_ATTR void VKAPI_CALL GetDeviceImageSubresourceLayoutKHR(
5265
    VkDevice                                    device,
5266
    const VkDeviceImageSubresourceInfo*         pInfo,
5267
0
    VkSubresourceLayout2*                       pLayout) {
5268
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5269
0
    if (NULL == disp) {
5270
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5271
0
                   "vkGetDeviceImageSubresourceLayoutKHR: Invalid device "
5272
0
                   "[VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter]");
5273
0
        abort(); /* Intentionally fail so user can correct issue. */
5274
0
    }
5275
0
    disp->GetDeviceImageSubresourceLayoutKHR(device, pInfo, pLayout);
5276
0
}
5277
5278
VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR(
5279
    VkDevice                                    device,
5280
    VkImage                                     image,
5281
    const VkImageSubresource2*                  pSubresource,
5282
0
    VkSubresourceLayout2*                       pLayout) {
5283
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5284
0
    if (NULL == disp) {
5285
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5286
0
                   "vkGetImageSubresourceLayout2KHR: Invalid device "
5287
0
                   "[VUID-vkGetImageSubresourceLayout2KHR-device-parameter]");
5288
0
        abort(); /* Intentionally fail so user can correct issue. */
5289
0
    }
5290
0
    disp->GetImageSubresourceLayout2KHR(device, image, pSubresource, pLayout);
5291
0
}
5292
5293
5294
// ---- VK_KHR_present_wait2 extension trampoline/terminators
5295
5296
VKAPI_ATTR VkResult VKAPI_CALL WaitForPresent2KHR(
5297
    VkDevice                                    device,
5298
    VkSwapchainKHR                              swapchain,
5299
0
    const VkPresentWait2InfoKHR*                pPresentWait2Info) {
5300
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5301
0
    if (NULL == disp) {
5302
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5303
0
                   "vkWaitForPresent2KHR: Invalid device "
5304
0
                   "[VUID-vkWaitForPresent2KHR-device-parameter]");
5305
0
        abort(); /* Intentionally fail so user can correct issue. */
5306
0
    }
5307
0
    return disp->WaitForPresent2KHR(device, swapchain, pPresentWait2Info);
5308
0
}
5309
5310
5311
// ---- VK_KHR_pipeline_binary extension trampoline/terminators
5312
5313
VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineBinariesKHR(
5314
    VkDevice                                    device,
5315
    const VkPipelineBinaryCreateInfoKHR*        pCreateInfo,
5316
    const VkAllocationCallbacks*                pAllocator,
5317
0
    VkPipelineBinaryHandlesInfoKHR*             pBinaries) {
5318
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5319
0
    if (NULL == disp) {
5320
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5321
0
                   "vkCreatePipelineBinariesKHR: Invalid device "
5322
0
                   "[VUID-vkCreatePipelineBinariesKHR-device-parameter]");
5323
0
        abort(); /* Intentionally fail so user can correct issue. */
5324
0
    }
5325
0
    return disp->CreatePipelineBinariesKHR(device, pCreateInfo, pAllocator, pBinaries);
5326
0
}
5327
5328
VKAPI_ATTR void VKAPI_CALL DestroyPipelineBinaryKHR(
5329
    VkDevice                                    device,
5330
    VkPipelineBinaryKHR                         pipelineBinary,
5331
0
    const VkAllocationCallbacks*                pAllocator) {
5332
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5333
0
    if (NULL == disp) {
5334
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5335
0
                   "vkDestroyPipelineBinaryKHR: Invalid device "
5336
0
                   "[VUID-vkDestroyPipelineBinaryKHR-device-parameter]");
5337
0
        abort(); /* Intentionally fail so user can correct issue. */
5338
0
    }
5339
0
    disp->DestroyPipelineBinaryKHR(device, pipelineBinary, pAllocator);
5340
0
}
5341
5342
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineKeyKHR(
5343
    VkDevice                                    device,
5344
    const VkPipelineCreateInfoKHR*              pPipelineCreateInfo,
5345
0
    VkPipelineBinaryKeyKHR*                     pPipelineKey) {
5346
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5347
0
    if (NULL == disp) {
5348
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5349
0
                   "vkGetPipelineKeyKHR: Invalid device "
5350
0
                   "[VUID-vkGetPipelineKeyKHR-device-parameter]");
5351
0
        abort(); /* Intentionally fail so user can correct issue. */
5352
0
    }
5353
0
    return disp->GetPipelineKeyKHR(device, pPipelineCreateInfo, pPipelineKey);
5354
0
}
5355
5356
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineBinaryDataKHR(
5357
    VkDevice                                    device,
5358
    const VkPipelineBinaryDataInfoKHR*          pInfo,
5359
    VkPipelineBinaryKeyKHR*                     pPipelineBinaryKey,
5360
    size_t*                                     pPipelineBinaryDataSize,
5361
0
    void*                                       pPipelineBinaryData) {
5362
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5363
0
    if (NULL == disp) {
5364
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5365
0
                   "vkGetPipelineBinaryDataKHR: Invalid device "
5366
0
                   "[VUID-vkGetPipelineBinaryDataKHR-device-parameter]");
5367
0
        abort(); /* Intentionally fail so user can correct issue. */
5368
0
    }
5369
0
    return disp->GetPipelineBinaryDataKHR(device, pInfo, pPipelineBinaryKey, pPipelineBinaryDataSize, pPipelineBinaryData);
5370
0
}
5371
5372
VKAPI_ATTR VkResult VKAPI_CALL ReleaseCapturedPipelineDataKHR(
5373
    VkDevice                                    device,
5374
    const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
5375
0
    const VkAllocationCallbacks*                pAllocator) {
5376
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5377
0
    if (NULL == disp) {
5378
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5379
0
                   "vkReleaseCapturedPipelineDataKHR: Invalid device "
5380
0
                   "[VUID-vkReleaseCapturedPipelineDataKHR-device-parameter]");
5381
0
        abort(); /* Intentionally fail so user can correct issue. */
5382
0
    }
5383
0
    return disp->ReleaseCapturedPipelineDataKHR(device, pInfo, pAllocator);
5384
0
}
5385
5386
5387
// ---- VK_KHR_swapchain_maintenance1 extension trampoline/terminators
5388
5389
VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesKHR(
5390
    VkDevice                                    device,
5391
0
    const VkReleaseSwapchainImagesInfoKHR*      pReleaseInfo) {
5392
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5393
0
    if (NULL == disp) {
5394
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5395
0
                   "vkReleaseSwapchainImagesKHR: Invalid device "
5396
0
                   "[VUID-vkReleaseSwapchainImagesKHR-device-parameter]");
5397
0
        abort(); /* Intentionally fail so user can correct issue. */
5398
0
    }
5399
0
    return disp->ReleaseSwapchainImagesKHR(device, pReleaseInfo);
5400
0
}
5401
5402
5403
// ---- VK_KHR_cooperative_matrix extension trampoline/terminators
5404
5405
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
5406
    VkPhysicalDevice                            physicalDevice,
5407
    uint32_t*                                   pPropertyCount,
5408
0
    VkCooperativeMatrixPropertiesKHR*           pProperties) {
5409
0
    const VkLayerInstanceDispatchTable *disp;
5410
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5411
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5412
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5413
0
                   "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR: Invalid physicalDevice "
5414
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter]");
5415
0
        abort(); /* Intentionally fail so user can correct issue. */
5416
0
    }
5417
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
5418
0
    return disp->GetPhysicalDeviceCooperativeMatrixPropertiesKHR(unwrapped_phys_dev, pPropertyCount, pProperties);
5419
0
}
5420
5421
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
5422
    VkPhysicalDevice                            physicalDevice,
5423
    uint32_t*                                   pPropertyCount,
5424
0
    VkCooperativeMatrixPropertiesKHR*           pProperties) {
5425
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5426
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5427
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR) {
5428
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5429
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesKHR");
5430
0
        abort(); /* Intentionally fail so user can correct issue. */
5431
0
    }
5432
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR(phys_dev_term->phys_dev, pPropertyCount, pProperties);
5433
0
}
5434
5435
5436
// ---- VK_KHR_line_rasterization extension trampoline/terminators
5437
5438
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleKHR(
5439
    VkCommandBuffer                             commandBuffer,
5440
    uint32_t                                    lineStippleFactor,
5441
0
    uint16_t                                    lineStipplePattern) {
5442
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5443
0
    if (NULL == disp) {
5444
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5445
0
                   "vkCmdSetLineStippleKHR: Invalid commandBuffer "
5446
0
                   "[VUID-vkCmdSetLineStippleKHR-commandBuffer-parameter]");
5447
0
        abort(); /* Intentionally fail so user can correct issue. */
5448
0
    }
5449
0
    disp->CmdSetLineStippleKHR(commandBuffer, lineStippleFactor, lineStipplePattern);
5450
0
}
5451
5452
5453
// ---- VK_KHR_calibrated_timestamps extension trampoline/terminators
5454
5455
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsKHR(
5456
    VkPhysicalDevice                            physicalDevice,
5457
    uint32_t*                                   pTimeDomainCount,
5458
0
    VkTimeDomainKHR*                            pTimeDomains) {
5459
0
    const VkLayerInstanceDispatchTable *disp;
5460
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5461
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5462
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5463
0
                   "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR: Invalid physicalDevice "
5464
0
                   "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter]");
5465
0
        abort(); /* Intentionally fail so user can correct issue. */
5466
0
    }
5467
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
5468
0
    return disp->GetPhysicalDeviceCalibrateableTimeDomainsKHR(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
5469
0
}
5470
5471
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR(
5472
    VkPhysicalDevice                            physicalDevice,
5473
    uint32_t*                                   pTimeDomainCount,
5474
0
    VkTimeDomainKHR*                            pTimeDomains) {
5475
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5476
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5477
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR) {
5478
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5479
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsKHR");
5480
0
        abort(); /* Intentionally fail so user can correct issue. */
5481
0
    }
5482
0
    return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
5483
0
}
5484
5485
VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsKHR(
5486
    VkDevice                                    device,
5487
    uint32_t                                    timestampCount,
5488
    const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
5489
    uint64_t*                                   pTimestamps,
5490
0
    uint64_t*                                   pMaxDeviation) {
5491
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5492
0
    if (NULL == disp) {
5493
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5494
0
                   "vkGetCalibratedTimestampsKHR: Invalid device "
5495
0
                   "[VUID-vkGetCalibratedTimestampsKHR-device-parameter]");
5496
0
        abort(); /* Intentionally fail so user can correct issue. */
5497
0
    }
5498
0
    return disp->GetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
5499
0
}
5500
5501
5502
// ---- VK_KHR_maintenance6 extension trampoline/terminators
5503
5504
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets2KHR(
5505
    VkCommandBuffer                             commandBuffer,
5506
0
    const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo) {
5507
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5508
0
    if (NULL == disp) {
5509
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5510
0
                   "vkCmdBindDescriptorSets2KHR: Invalid commandBuffer "
5511
0
                   "[VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-parameter]");
5512
0
        abort(); /* Intentionally fail so user can correct issue. */
5513
0
    }
5514
0
    disp->CmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo);
5515
0
}
5516
5517
VKAPI_ATTR void VKAPI_CALL CmdPushConstants2KHR(
5518
    VkCommandBuffer                             commandBuffer,
5519
0
    const VkPushConstantsInfo*                  pPushConstantsInfo) {
5520
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5521
0
    if (NULL == disp) {
5522
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5523
0
                   "vkCmdPushConstants2KHR: Invalid commandBuffer "
5524
0
                   "[VUID-vkCmdPushConstants2KHR-commandBuffer-parameter]");
5525
0
        abort(); /* Intentionally fail so user can correct issue. */
5526
0
    }
5527
0
    disp->CmdPushConstants2KHR(commandBuffer, pPushConstantsInfo);
5528
0
}
5529
5530
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSet2KHR(
5531
    VkCommandBuffer                             commandBuffer,
5532
0
    const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo) {
5533
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5534
0
    if (NULL == disp) {
5535
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5536
0
                   "vkCmdPushDescriptorSet2KHR: Invalid commandBuffer "
5537
0
                   "[VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-parameter]");
5538
0
        abort(); /* Intentionally fail so user can correct issue. */
5539
0
    }
5540
0
    disp->CmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo);
5541
0
}
5542
5543
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplate2KHR(
5544
    VkCommandBuffer                             commandBuffer,
5545
0
    const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo) {
5546
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5547
0
    if (NULL == disp) {
5548
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5549
0
                   "vkCmdPushDescriptorSetWithTemplate2KHR: Invalid commandBuffer "
5550
0
                   "[VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-parameter]");
5551
0
        abort(); /* Intentionally fail so user can correct issue. */
5552
0
    }
5553
0
    disp->CmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo);
5554
0
}
5555
5556
VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsets2EXT(
5557
    VkCommandBuffer                             commandBuffer,
5558
0
    const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo) {
5559
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5560
0
    if (NULL == disp) {
5561
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5562
0
                   "vkCmdSetDescriptorBufferOffsets2EXT: Invalid commandBuffer "
5563
0
                   "[VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-parameter]");
5564
0
        abort(); /* Intentionally fail so user can correct issue. */
5565
0
    }
5566
0
    disp->CmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo);
5567
0
}
5568
5569
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplers2EXT(
5570
    VkCommandBuffer                             commandBuffer,
5571
0
    const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo) {
5572
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5573
0
    if (NULL == disp) {
5574
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5575
0
                   "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT: Invalid commandBuffer "
5576
0
                   "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-parameter]");
5577
0
        abort(); /* Intentionally fail so user can correct issue. */
5578
0
    }
5579
0
    disp->CmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo);
5580
0
}
5581
5582
5583
// ---- VK_KHR_copy_memory_indirect extension trampoline/terminators
5584
5585
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectKHR(
5586
    VkCommandBuffer                             commandBuffer,
5587
0
    const VkCopyMemoryIndirectInfoKHR*          pCopyMemoryIndirectInfo) {
5588
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5589
0
    if (NULL == disp) {
5590
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5591
0
                   "vkCmdCopyMemoryIndirectKHR: Invalid commandBuffer "
5592
0
                   "[VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-parameter]");
5593
0
        abort(); /* Intentionally fail so user can correct issue. */
5594
0
    }
5595
0
    disp->CmdCopyMemoryIndirectKHR(commandBuffer, pCopyMemoryIndirectInfo);
5596
0
}
5597
5598
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectKHR(
5599
    VkCommandBuffer                             commandBuffer,
5600
0
    const VkCopyMemoryToImageIndirectInfoKHR*   pCopyMemoryToImageIndirectInfo) {
5601
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5602
0
    if (NULL == disp) {
5603
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5604
0
                   "vkCmdCopyMemoryToImageIndirectKHR: Invalid commandBuffer "
5605
0
                   "[VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-parameter]");
5606
0
        abort(); /* Intentionally fail so user can correct issue. */
5607
0
    }
5608
0
    disp->CmdCopyMemoryToImageIndirectKHR(commandBuffer, pCopyMemoryToImageIndirectInfo);
5609
0
}
5610
5611
5612
// ---- VK_KHR_maintenance10 extension trampoline/terminators
5613
5614
VKAPI_ATTR void VKAPI_CALL CmdEndRendering2KHR(
5615
    VkCommandBuffer                             commandBuffer,
5616
0
    const VkRenderingEndInfoKHR*                pRenderingEndInfo) {
5617
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5618
0
    if (NULL == disp) {
5619
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5620
0
                   "vkCmdEndRendering2KHR: Invalid commandBuffer "
5621
0
                   "[VUID-vkCmdEndRendering2KHR-commandBuffer-parameter]");
5622
0
        abort(); /* Intentionally fail so user can correct issue. */
5623
0
    }
5624
0
    disp->CmdEndRendering2KHR(commandBuffer, pRenderingEndInfo);
5625
0
}
5626
5627
5628
// ---- VK_EXT_debug_marker extension trampoline/terminators
5629
5630
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
5631
    VkDevice                                    device,
5632
0
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo) {
5633
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5634
0
    if (NULL == disp) {
5635
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5636
0
                   "vkDebugMarkerSetObjectTagEXT: Invalid device "
5637
0
                   "[VUID-vkDebugMarkerSetObjectTagEXT-device-parameter]");
5638
0
        abort(); /* Intentionally fail so user can correct issue. */
5639
0
    }
5640
0
    VkDebugMarkerObjectTagInfoEXT local_tag_info;
5641
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
5642
    // If this is a physical device, we have to replace it with the proper one for the next call.
5643
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5644
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->object;
5645
0
        local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5646
0
    }
5647
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5648
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->object;
5649
0
        local_tag_info.object = (uint64_t)(uintptr_t)instance->instance;
5650
0
    }
5651
0
    return disp->DebugMarkerSetObjectTagEXT(device, &local_tag_info);
5652
0
}
5653
5654
VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectTagEXT(
5655
    VkDevice                                    device,
5656
0
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo) {
5657
0
    struct loader_device *dev;
5658
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
5659
0
    if (NULL == icd_term || NULL == dev) {
5660
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectTagEXT: Invalid device handle");
5661
0
        abort(); /* Intentionally fail so user can correct issue. */
5662
0
    }
5663
0
    VkDebugMarkerObjectTagInfoEXT local_tag_info;
5664
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
5665
    // If this is a physical device, we have to replace it with the proper one for the next call.
5666
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5667
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->object;
5668
0
        local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5669
    // 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.
5670
0
    } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
5671
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5672
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pTagInfo->object;
5673
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
5674
0
                local_tag_info.object = (uint64_t)surface;
5675
0
            }
5676
0
        }
5677
    // If this is an instance we have to replace it with the proper one for the next call.
5678
0
    } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5679
0
        local_tag_info.object = (uint64_t)(uintptr_t)icd_term->instance;
5680
0
    }
5681
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5682
    // debug utils but the driver does not.
5683
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT)
5684
0
        return VK_SUCCESS;
5685
0
    return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT(device, &local_tag_info);
5686
0
}
5687
5688
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
5689
    VkDevice                                    device,
5690
0
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo) {
5691
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5692
0
    if (NULL == disp) {
5693
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5694
0
                   "vkDebugMarkerSetObjectNameEXT: Invalid device "
5695
0
                   "[VUID-vkDebugMarkerSetObjectNameEXT-device-parameter]");
5696
0
        abort(); /* Intentionally fail so user can correct issue. */
5697
0
    }
5698
0
    VkDebugMarkerObjectNameInfoEXT local_name_info;
5699
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
5700
    // If this is a physical device, we have to replace it with the proper one for the next call.
5701
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5702
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->object;
5703
0
        local_name_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5704
0
    }
5705
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5706
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->object;
5707
0
        local_name_info.object = (uint64_t)(uintptr_t)instance->instance;
5708
0
    }
5709
0
    return disp->DebugMarkerSetObjectNameEXT(device, &local_name_info);
5710
0
}
5711
5712
VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectNameEXT(
5713
    VkDevice                                    device,
5714
0
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo) {
5715
0
    struct loader_device *dev;
5716
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
5717
0
    if (NULL == icd_term || NULL == dev) {
5718
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectNameEXT: Invalid device handle");
5719
0
        abort(); /* Intentionally fail so user can correct issue. */
5720
0
    }
5721
0
    VkDebugMarkerObjectNameInfoEXT local_name_info;
5722
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
5723
    // If this is a physical device, we have to replace it with the proper one for the next call.
5724
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5725
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->object;
5726
0
        local_name_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5727
    // 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.
5728
0
    } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
5729
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5730
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pNameInfo->object;
5731
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
5732
0
                local_name_info.object = (uint64_t)surface;
5733
0
            }
5734
0
        }
5735
    // If this is an instance we have to replace it with the proper one for the next call.
5736
0
    } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5737
0
        local_name_info.object = (uint64_t)(uintptr_t)icd_term->instance;
5738
0
    }
5739
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5740
    // debug utils but the driver does not.
5741
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT)
5742
0
        return VK_SUCCESS;
5743
0
    return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT(device, &local_name_info);
5744
0
}
5745
5746
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(
5747
    VkCommandBuffer                             commandBuffer,
5748
0
    const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo) {
5749
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5750
0
    if (NULL == disp) {
5751
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5752
0
                   "vkCmdDebugMarkerBeginEXT: Invalid commandBuffer "
5753
0
                   "[VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter]");
5754
0
        abort(); /* Intentionally fail so user can correct issue. */
5755
0
    }
5756
0
    disp->CmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
5757
0
}
5758
5759
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT(
5760
0
    VkCommandBuffer                             commandBuffer) {
5761
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5762
0
    if (NULL == disp) {
5763
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5764
0
                   "vkCmdDebugMarkerEndEXT: Invalid commandBuffer "
5765
0
                   "[VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter]");
5766
0
        abort(); /* Intentionally fail so user can correct issue. */
5767
0
    }
5768
0
    disp->CmdDebugMarkerEndEXT(commandBuffer);
5769
0
}
5770
5771
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(
5772
    VkCommandBuffer                             commandBuffer,
5773
0
    const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo) {
5774
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5775
0
    if (NULL == disp) {
5776
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5777
0
                   "vkCmdDebugMarkerInsertEXT: Invalid commandBuffer "
5778
0
                   "[VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter]");
5779
0
        abort(); /* Intentionally fail so user can correct issue. */
5780
0
    }
5781
0
    disp->CmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
5782
0
}
5783
5784
5785
// ---- VK_EXT_transform_feedback extension trampoline/terminators
5786
5787
VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT(
5788
    VkCommandBuffer                             commandBuffer,
5789
    uint32_t                                    firstBinding,
5790
    uint32_t                                    bindingCount,
5791
    const VkBuffer*                             pBuffers,
5792
    const VkDeviceSize*                         pOffsets,
5793
0
    const VkDeviceSize*                         pSizes) {
5794
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5795
0
    if (NULL == disp) {
5796
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5797
0
                   "vkCmdBindTransformFeedbackBuffersEXT: Invalid commandBuffer "
5798
0
                   "[VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter]");
5799
0
        abort(); /* Intentionally fail so user can correct issue. */
5800
0
    }
5801
0
    disp->CmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes);
5802
0
}
5803
5804
VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT(
5805
    VkCommandBuffer                             commandBuffer,
5806
    uint32_t                                    firstCounterBuffer,
5807
    uint32_t                                    counterBufferCount,
5808
    const VkBuffer*                             pCounterBuffers,
5809
0
    const VkDeviceSize*                         pCounterBufferOffsets) {
5810
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5811
0
    if (NULL == disp) {
5812
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5813
0
                   "vkCmdBeginTransformFeedbackEXT: Invalid commandBuffer "
5814
0
                   "[VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter]");
5815
0
        abort(); /* Intentionally fail so user can correct issue. */
5816
0
    }
5817
0
    disp->CmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
5818
0
}
5819
5820
VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT(
5821
    VkCommandBuffer                             commandBuffer,
5822
    uint32_t                                    firstCounterBuffer,
5823
    uint32_t                                    counterBufferCount,
5824
    const VkBuffer*                             pCounterBuffers,
5825
0
    const VkDeviceSize*                         pCounterBufferOffsets) {
5826
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5827
0
    if (NULL == disp) {
5828
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5829
0
                   "vkCmdEndTransformFeedbackEXT: Invalid commandBuffer "
5830
0
                   "[VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter]");
5831
0
        abort(); /* Intentionally fail so user can correct issue. */
5832
0
    }
5833
0
    disp->CmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
5834
0
}
5835
5836
VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT(
5837
    VkCommandBuffer                             commandBuffer,
5838
    VkQueryPool                                 queryPool,
5839
    uint32_t                                    query,
5840
    VkQueryControlFlags                         flags,
5841
0
    uint32_t                                    index) {
5842
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5843
0
    if (NULL == disp) {
5844
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5845
0
                   "vkCmdBeginQueryIndexedEXT: Invalid commandBuffer "
5846
0
                   "[VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter]");
5847
0
        abort(); /* Intentionally fail so user can correct issue. */
5848
0
    }
5849
0
    disp->CmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index);
5850
0
}
5851
5852
VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT(
5853
    VkCommandBuffer                             commandBuffer,
5854
    VkQueryPool                                 queryPool,
5855
    uint32_t                                    query,
5856
0
    uint32_t                                    index) {
5857
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5858
0
    if (NULL == disp) {
5859
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5860
0
                   "vkCmdEndQueryIndexedEXT: Invalid commandBuffer "
5861
0
                   "[VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter]");
5862
0
        abort(); /* Intentionally fail so user can correct issue. */
5863
0
    }
5864
0
    disp->CmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index);
5865
0
}
5866
5867
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT(
5868
    VkCommandBuffer                             commandBuffer,
5869
    uint32_t                                    instanceCount,
5870
    uint32_t                                    firstInstance,
5871
    VkBuffer                                    counterBuffer,
5872
    VkDeviceSize                                counterBufferOffset,
5873
    uint32_t                                    counterOffset,
5874
0
    uint32_t                                    vertexStride) {
5875
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5876
0
    if (NULL == disp) {
5877
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5878
0
                   "vkCmdDrawIndirectByteCountEXT: Invalid commandBuffer "
5879
0
                   "[VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter]");
5880
0
        abort(); /* Intentionally fail so user can correct issue. */
5881
0
    }
5882
0
    disp->CmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride);
5883
0
}
5884
5885
5886
// ---- VK_NVX_binary_import extension trampoline/terminators
5887
5888
VKAPI_ATTR VkResult VKAPI_CALL CreateCuModuleNVX(
5889
    VkDevice                                    device,
5890
    const VkCuModuleCreateInfoNVX*              pCreateInfo,
5891
    const VkAllocationCallbacks*                pAllocator,
5892
0
    VkCuModuleNVX*                              pModule) {
5893
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5894
0
    if (NULL == disp) {
5895
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5896
0
                   "vkCreateCuModuleNVX: Invalid device "
5897
0
                   "[VUID-vkCreateCuModuleNVX-device-parameter]");
5898
0
        abort(); /* Intentionally fail so user can correct issue. */
5899
0
    }
5900
0
    return disp->CreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule);
5901
0
}
5902
5903
VKAPI_ATTR VkResult VKAPI_CALL CreateCuFunctionNVX(
5904
    VkDevice                                    device,
5905
    const VkCuFunctionCreateInfoNVX*            pCreateInfo,
5906
    const VkAllocationCallbacks*                pAllocator,
5907
0
    VkCuFunctionNVX*                            pFunction) {
5908
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5909
0
    if (NULL == disp) {
5910
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5911
0
                   "vkCreateCuFunctionNVX: Invalid device "
5912
0
                   "[VUID-vkCreateCuFunctionNVX-device-parameter]");
5913
0
        abort(); /* Intentionally fail so user can correct issue. */
5914
0
    }
5915
0
    return disp->CreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction);
5916
0
}
5917
5918
VKAPI_ATTR void VKAPI_CALL DestroyCuModuleNVX(
5919
    VkDevice                                    device,
5920
    VkCuModuleNVX                               module,
5921
0
    const VkAllocationCallbacks*                pAllocator) {
5922
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5923
0
    if (NULL == disp) {
5924
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5925
0
                   "vkDestroyCuModuleNVX: Invalid device "
5926
0
                   "[VUID-vkDestroyCuModuleNVX-device-parameter]");
5927
0
        abort(); /* Intentionally fail so user can correct issue. */
5928
0
    }
5929
0
    disp->DestroyCuModuleNVX(device, module, pAllocator);
5930
0
}
5931
5932
VKAPI_ATTR void VKAPI_CALL DestroyCuFunctionNVX(
5933
    VkDevice                                    device,
5934
    VkCuFunctionNVX                             function,
5935
0
    const VkAllocationCallbacks*                pAllocator) {
5936
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5937
0
    if (NULL == disp) {
5938
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5939
0
                   "vkDestroyCuFunctionNVX: Invalid device "
5940
0
                   "[VUID-vkDestroyCuFunctionNVX-device-parameter]");
5941
0
        abort(); /* Intentionally fail so user can correct issue. */
5942
0
    }
5943
0
    disp->DestroyCuFunctionNVX(device, function, pAllocator);
5944
0
}
5945
5946
VKAPI_ATTR void VKAPI_CALL CmdCuLaunchKernelNVX(
5947
    VkCommandBuffer                             commandBuffer,
5948
0
    const VkCuLaunchInfoNVX*                    pLaunchInfo) {
5949
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5950
0
    if (NULL == disp) {
5951
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5952
0
                   "vkCmdCuLaunchKernelNVX: Invalid commandBuffer "
5953
0
                   "[VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter]");
5954
0
        abort(); /* Intentionally fail so user can correct issue. */
5955
0
    }
5956
0
    disp->CmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo);
5957
0
}
5958
5959
5960
// ---- VK_NVX_image_view_handle extension trampoline/terminators
5961
5962
VKAPI_ATTR uint32_t VKAPI_CALL GetImageViewHandleNVX(
5963
    VkDevice                                    device,
5964
0
    const VkImageViewHandleInfoNVX*             pInfo) {
5965
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5966
0
    if (NULL == disp) {
5967
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5968
0
                   "vkGetImageViewHandleNVX: Invalid device "
5969
0
                   "[VUID-vkGetImageViewHandleNVX-device-parameter]");
5970
0
        abort(); /* Intentionally fail so user can correct issue. */
5971
0
    }
5972
0
    return disp->GetImageViewHandleNVX(device, pInfo);
5973
0
}
5974
5975
VKAPI_ATTR uint64_t VKAPI_CALL GetImageViewHandle64NVX(
5976
    VkDevice                                    device,
5977
0
    const VkImageViewHandleInfoNVX*             pInfo) {
5978
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5979
0
    if (NULL == disp) {
5980
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5981
0
                   "vkGetImageViewHandle64NVX: Invalid device "
5982
0
                   "[VUID-vkGetImageViewHandle64NVX-device-parameter]");
5983
0
        abort(); /* Intentionally fail so user can correct issue. */
5984
0
    }
5985
0
    return disp->GetImageViewHandle64NVX(device, pInfo);
5986
0
}
5987
5988
VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX(
5989
    VkDevice                                    device,
5990
    VkImageView                                 imageView,
5991
0
    VkImageViewAddressPropertiesNVX*            pProperties) {
5992
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5993
0
    if (NULL == disp) {
5994
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5995
0
                   "vkGetImageViewAddressNVX: Invalid device "
5996
0
                   "[VUID-vkGetImageViewAddressNVX-device-parameter]");
5997
0
        abort(); /* Intentionally fail so user can correct issue. */
5998
0
    }
5999
0
    return disp->GetImageViewAddressNVX(device, imageView, pProperties);
6000
0
}
6001
6002
6003
// ---- VK_AMD_draw_indirect_count extension trampoline/terminators
6004
6005
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD(
6006
    VkCommandBuffer                             commandBuffer,
6007
    VkBuffer                                    buffer,
6008
    VkDeviceSize                                offset,
6009
    VkBuffer                                    countBuffer,
6010
    VkDeviceSize                                countBufferOffset,
6011
    uint32_t                                    maxDrawCount,
6012
0
    uint32_t                                    stride) {
6013
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6014
0
    if (NULL == disp) {
6015
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6016
0
                   "vkCmdDrawIndirectCountAMD: Invalid commandBuffer "
6017
0
                   "[VUID-vkCmdDrawIndirectCountAMD-commandBuffer-parameter]");
6018
0
        abort(); /* Intentionally fail so user can correct issue. */
6019
0
    }
6020
0
    disp->CmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
6021
0
}
6022
6023
VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD(
6024
    VkCommandBuffer                             commandBuffer,
6025
    VkBuffer                                    buffer,
6026
    VkDeviceSize                                offset,
6027
    VkBuffer                                    countBuffer,
6028
    VkDeviceSize                                countBufferOffset,
6029
    uint32_t                                    maxDrawCount,
6030
0
    uint32_t                                    stride) {
6031
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6032
0
    if (NULL == disp) {
6033
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6034
0
                   "vkCmdDrawIndexedIndirectCountAMD: Invalid commandBuffer "
6035
0
                   "[VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-parameter]");
6036
0
        abort(); /* Intentionally fail so user can correct issue. */
6037
0
    }
6038
0
    disp->CmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
6039
0
}
6040
6041
6042
// ---- VK_AMD_shader_info extension trampoline/terminators
6043
6044
VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD(
6045
    VkDevice                                    device,
6046
    VkPipeline                                  pipeline,
6047
    VkShaderStageFlagBits                       shaderStage,
6048
    VkShaderInfoTypeAMD                         infoType,
6049
    size_t*                                     pInfoSize,
6050
0
    void*                                       pInfo) {
6051
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6052
0
    if (NULL == disp) {
6053
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6054
0
                   "vkGetShaderInfoAMD: Invalid device "
6055
0
                   "[VUID-vkGetShaderInfoAMD-device-parameter]");
6056
0
        abort(); /* Intentionally fail so user can correct issue. */
6057
0
    }
6058
0
    return disp->GetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
6059
0
}
6060
6061
6062
// ---- VK_NV_external_memory_win32 extension trampoline/terminators
6063
6064
#if defined(VK_USE_PLATFORM_WIN32_KHR)
6065
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV(
6066
    VkDevice                                    device,
6067
    VkDeviceMemory                              memory,
6068
    VkExternalMemoryHandleTypeFlagsNV           handleType,
6069
    HANDLE*                                     pHandle) {
6070
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6071
    if (NULL == disp) {
6072
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6073
                   "vkGetMemoryWin32HandleNV: Invalid device "
6074
                   "[VUID-vkGetMemoryWin32HandleNV-device-parameter]");
6075
        abort(); /* Intentionally fail so user can correct issue. */
6076
    }
6077
    return disp->GetMemoryWin32HandleNV(device, memory, handleType, pHandle);
6078
}
6079
6080
#endif // VK_USE_PLATFORM_WIN32_KHR
6081
6082
// ---- VK_EXT_conditional_rendering extension trampoline/terminators
6083
6084
VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRenderingEXT(
6085
    VkCommandBuffer                             commandBuffer,
6086
0
    const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin) {
6087
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6088
0
    if (NULL == disp) {
6089
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6090
0
                   "vkCmdBeginConditionalRenderingEXT: Invalid commandBuffer "
6091
0
                   "[VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter]");
6092
0
        abort(); /* Intentionally fail so user can correct issue. */
6093
0
    }
6094
0
    disp->CmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
6095
0
}
6096
6097
VKAPI_ATTR void VKAPI_CALL CmdEndConditionalRenderingEXT(
6098
0
    VkCommandBuffer                             commandBuffer) {
6099
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6100
0
    if (NULL == disp) {
6101
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6102
0
                   "vkCmdEndConditionalRenderingEXT: Invalid commandBuffer "
6103
0
                   "[VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter]");
6104
0
        abort(); /* Intentionally fail so user can correct issue. */
6105
0
    }
6106
0
    disp->CmdEndConditionalRenderingEXT(commandBuffer);
6107
0
}
6108
6109
6110
// ---- VK_NV_clip_space_w_scaling extension trampoline/terminators
6111
6112
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV(
6113
    VkCommandBuffer                             commandBuffer,
6114
    uint32_t                                    firstViewport,
6115
    uint32_t                                    viewportCount,
6116
0
    const VkViewportWScalingNV*                 pViewportWScalings) {
6117
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6118
0
    if (NULL == disp) {
6119
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6120
0
                   "vkCmdSetViewportWScalingNV: Invalid commandBuffer "
6121
0
                   "[VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter]");
6122
0
        abort(); /* Intentionally fail so user can correct issue. */
6123
0
    }
6124
0
    disp->CmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
6125
0
}
6126
6127
6128
// ---- VK_EXT_display_control extension trampoline/terminators
6129
6130
VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT(
6131
    VkDevice                                    device,
6132
    VkDisplayKHR                                display,
6133
0
    const VkDisplayPowerInfoEXT*                pDisplayPowerInfo) {
6134
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6135
0
    if (NULL == disp) {
6136
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6137
0
                   "vkDisplayPowerControlEXT: Invalid device "
6138
0
                   "[VUID-vkDisplayPowerControlEXT-device-parameter]");
6139
0
        abort(); /* Intentionally fail so user can correct issue. */
6140
0
    }
6141
0
    return disp->DisplayPowerControlEXT(device, display, pDisplayPowerInfo);
6142
0
}
6143
6144
VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT(
6145
    VkDevice                                    device,
6146
    const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
6147
    const VkAllocationCallbacks*                pAllocator,
6148
0
    VkFence*                                    pFence) {
6149
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6150
0
    if (NULL == disp) {
6151
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6152
0
                   "vkRegisterDeviceEventEXT: Invalid device "
6153
0
                   "[VUID-vkRegisterDeviceEventEXT-device-parameter]");
6154
0
        abort(); /* Intentionally fail so user can correct issue. */
6155
0
    }
6156
0
    return disp->RegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
6157
0
}
6158
6159
VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT(
6160
    VkDevice                                    device,
6161
    VkDisplayKHR                                display,
6162
    const VkDisplayEventInfoEXT*                pDisplayEventInfo,
6163
    const VkAllocationCallbacks*                pAllocator,
6164
0
    VkFence*                                    pFence) {
6165
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6166
0
    if (NULL == disp) {
6167
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6168
0
                   "vkRegisterDisplayEventEXT: Invalid device "
6169
0
                   "[VUID-vkRegisterDisplayEventEXT-device-parameter]");
6170
0
        abort(); /* Intentionally fail so user can correct issue. */
6171
0
    }
6172
0
    return disp->RegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
6173
0
}
6174
6175
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT(
6176
    VkDevice                                    device,
6177
    VkSwapchainKHR                              swapchain,
6178
    VkSurfaceCounterFlagBitsEXT                 counter,
6179
0
    uint64_t*                                   pCounterValue) {
6180
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6181
0
    if (NULL == disp) {
6182
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6183
0
                   "vkGetSwapchainCounterEXT: Invalid device "
6184
0
                   "[VUID-vkGetSwapchainCounterEXT-device-parameter]");
6185
0
        abort(); /* Intentionally fail so user can correct issue. */
6186
0
    }
6187
0
    return disp->GetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
6188
0
}
6189
6190
6191
// ---- VK_GOOGLE_display_timing extension trampoline/terminators
6192
6193
VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE(
6194
    VkDevice                                    device,
6195
    VkSwapchainKHR                              swapchain,
6196
0
    VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties) {
6197
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6198
0
    if (NULL == disp) {
6199
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6200
0
                   "vkGetRefreshCycleDurationGOOGLE: Invalid device "
6201
0
                   "[VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter]");
6202
0
        abort(); /* Intentionally fail so user can correct issue. */
6203
0
    }
6204
0
    return disp->GetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
6205
0
}
6206
6207
VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE(
6208
    VkDevice                                    device,
6209
    VkSwapchainKHR                              swapchain,
6210
    uint32_t*                                   pPresentationTimingCount,
6211
0
    VkPastPresentationTimingGOOGLE*             pPresentationTimings) {
6212
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6213
0
    if (NULL == disp) {
6214
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6215
0
                   "vkGetPastPresentationTimingGOOGLE: Invalid device "
6216
0
                   "[VUID-vkGetPastPresentationTimingGOOGLE-device-parameter]");
6217
0
        abort(); /* Intentionally fail so user can correct issue. */
6218
0
    }
6219
0
    return disp->GetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
6220
0
}
6221
6222
6223
// ---- VK_EXT_discard_rectangles extension trampoline/terminators
6224
6225
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT(
6226
    VkCommandBuffer                             commandBuffer,
6227
    uint32_t                                    firstDiscardRectangle,
6228
    uint32_t                                    discardRectangleCount,
6229
0
    const VkRect2D*                             pDiscardRectangles) {
6230
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6231
0
    if (NULL == disp) {
6232
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6233
0
                   "vkCmdSetDiscardRectangleEXT: Invalid commandBuffer "
6234
0
                   "[VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter]");
6235
0
        abort(); /* Intentionally fail so user can correct issue. */
6236
0
    }
6237
0
    disp->CmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
6238
0
}
6239
6240
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEnableEXT(
6241
    VkCommandBuffer                             commandBuffer,
6242
0
    VkBool32                                    discardRectangleEnable) {
6243
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6244
0
    if (NULL == disp) {
6245
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6246
0
                   "vkCmdSetDiscardRectangleEnableEXT: Invalid commandBuffer "
6247
0
                   "[VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameter]");
6248
0
        abort(); /* Intentionally fail so user can correct issue. */
6249
0
    }
6250
0
    disp->CmdSetDiscardRectangleEnableEXT(commandBuffer, discardRectangleEnable);
6251
0
}
6252
6253
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleModeEXT(
6254
    VkCommandBuffer                             commandBuffer,
6255
0
    VkDiscardRectangleModeEXT                   discardRectangleMode) {
6256
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6257
0
    if (NULL == disp) {
6258
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6259
0
                   "vkCmdSetDiscardRectangleModeEXT: Invalid commandBuffer "
6260
0
                   "[VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameter]");
6261
0
        abort(); /* Intentionally fail so user can correct issue. */
6262
0
    }
6263
0
    disp->CmdSetDiscardRectangleModeEXT(commandBuffer, discardRectangleMode);
6264
0
}
6265
6266
6267
// ---- VK_EXT_hdr_metadata extension trampoline/terminators
6268
6269
VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT(
6270
    VkDevice                                    device,
6271
    uint32_t                                    swapchainCount,
6272
    const VkSwapchainKHR*                       pSwapchains,
6273
0
    const VkHdrMetadataEXT*                     pMetadata) {
6274
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6275
0
    if (NULL == disp) {
6276
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6277
0
                   "vkSetHdrMetadataEXT: Invalid device "
6278
0
                   "[VUID-vkSetHdrMetadataEXT-device-parameter]");
6279
0
        abort(); /* Intentionally fail so user can correct issue. */
6280
0
    }
6281
0
    disp->SetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
6282
0
}
6283
6284
6285
// ---- VK_EXT_debug_utils extension trampoline/terminators
6286
6287
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
6288
    VkDevice                                    device,
6289
0
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo) {
6290
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6291
0
    if (NULL == disp) {
6292
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6293
0
                   "vkSetDebugUtilsObjectNameEXT: Invalid device "
6294
0
                   "[VUID-vkSetDebugUtilsObjectNameEXT-device-parameter]");
6295
0
        abort(); /* Intentionally fail so user can correct issue. */
6296
0
    }
6297
0
    VkDebugUtilsObjectNameInfoEXT local_name_info;
6298
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
6299
    // If this is a physical device, we have to replace it with the proper one for the next call.
6300
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6301
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->objectHandle;
6302
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6303
0
    }
6304
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6305
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->objectHandle;
6306
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
6307
0
    }
6308
0
    if (disp->SetDebugUtilsObjectNameEXT != NULL) {
6309
0
        return disp->SetDebugUtilsObjectNameEXT(device, &local_name_info);
6310
0
    } else {
6311
0
        return VK_SUCCESS;
6312
0
    }
6313
0
}
6314
6315
VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectNameEXT(
6316
    VkDevice                                    device,
6317
0
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo) {
6318
0
    struct loader_device *dev;
6319
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6320
0
    if (NULL == icd_term || NULL == dev) {
6321
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectNameEXT: Invalid device handle");
6322
0
        abort(); /* Intentionally fail so user can correct issue. */
6323
0
    }
6324
0
    VkDebugUtilsObjectNameInfoEXT local_name_info;
6325
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
6326
    // If this is a physical device, we have to replace it with the proper one for the next call.
6327
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6328
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->objectHandle;
6329
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6330
    // 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.
6331
0
    } else if (pNameInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
6332
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6333
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pNameInfo->objectHandle;
6334
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
6335
0
                local_name_info.objectHandle = (uint64_t)surface;
6336
0
            }
6337
0
        }
6338
    // If this is an instance we have to replace it with the proper one for the next call.
6339
0
    } else if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6340
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
6341
0
    }
6342
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6343
    // debug utils but the driver does not.
6344
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT)
6345
0
        return VK_SUCCESS;
6346
0
    return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT(device, &local_name_info);
6347
0
}
6348
6349
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
6350
    VkDevice                                    device,
6351
0
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo) {
6352
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6353
0
    if (NULL == disp) {
6354
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6355
0
                   "vkSetDebugUtilsObjectTagEXT: Invalid device "
6356
0
                   "[VUID-vkSetDebugUtilsObjectTagEXT-device-parameter]");
6357
0
        abort(); /* Intentionally fail so user can correct issue. */
6358
0
    }
6359
0
    VkDebugUtilsObjectTagInfoEXT local_tag_info;
6360
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
6361
    // If this is a physical device, we have to replace it with the proper one for the next call.
6362
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6363
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->objectHandle;
6364
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6365
0
    }
6366
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6367
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->objectHandle;
6368
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
6369
0
    }
6370
0
    if (disp->SetDebugUtilsObjectTagEXT != NULL) {
6371
0
        return disp->SetDebugUtilsObjectTagEXT(device, &local_tag_info);
6372
0
    } else {
6373
0
        return VK_SUCCESS;
6374
0
    }
6375
0
}
6376
6377
VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectTagEXT(
6378
    VkDevice                                    device,
6379
0
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo) {
6380
0
    struct loader_device *dev;
6381
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6382
0
    if (NULL == icd_term || NULL == dev) {
6383
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectTagEXT: Invalid device handle");
6384
0
        abort(); /* Intentionally fail so user can correct issue. */
6385
0
    }
6386
0
    VkDebugUtilsObjectTagInfoEXT local_tag_info;
6387
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
6388
    // If this is a physical device, we have to replace it with the proper one for the next call.
6389
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6390
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->objectHandle;
6391
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6392
    // 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.
6393
0
    } else if (pTagInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
6394
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6395
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pTagInfo->objectHandle;
6396
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
6397
0
                local_tag_info.objectHandle = (uint64_t)surface;
6398
0
            }
6399
0
        }
6400
    // If this is an instance we have to replace it with the proper one for the next call.
6401
0
    } else if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6402
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
6403
0
    }
6404
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6405
    // debug utils but the driver does not.
6406
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT)
6407
0
        return VK_SUCCESS;
6408
0
    return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT(device, &local_tag_info);
6409
0
}
6410
6411
VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT(
6412
    VkQueue                                     queue,
6413
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6414
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6415
0
    if (NULL == disp) {
6416
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6417
0
                   "vkQueueBeginDebugUtilsLabelEXT: Invalid queue "
6418
0
                   "[VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter]");
6419
0
        abort(); /* Intentionally fail so user can correct issue. */
6420
0
    }
6421
0
    if (disp->QueueBeginDebugUtilsLabelEXT != NULL) {
6422
0
        disp->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
6423
0
    }
6424
0
}
6425
6426
VKAPI_ATTR void VKAPI_CALL terminator_QueueBeginDebugUtilsLabelEXT(
6427
    VkQueue                                     queue,
6428
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6429
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6430
0
    if (NULL == dispatch_table) {
6431
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6432
0
        abort(); /* Intentionally fail so user can correct issue. */
6433
0
    }
6434
    // Only call down if the device supports the function
6435
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT)
6436
0
        dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
6437
0
}
6438
6439
VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT(
6440
0
    VkQueue                                     queue) {
6441
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6442
0
    if (NULL == disp) {
6443
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6444
0
                   "vkQueueEndDebugUtilsLabelEXT: Invalid queue "
6445
0
                   "[VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter]");
6446
0
        abort(); /* Intentionally fail so user can correct issue. */
6447
0
    }
6448
0
    if (disp->QueueEndDebugUtilsLabelEXT != NULL) {
6449
0
        disp->QueueEndDebugUtilsLabelEXT(queue);
6450
0
    }
6451
0
}
6452
6453
VKAPI_ATTR void VKAPI_CALL terminator_QueueEndDebugUtilsLabelEXT(
6454
0
    VkQueue                                     queue) {
6455
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6456
0
    if (NULL == dispatch_table) {
6457
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6458
0
        abort(); /* Intentionally fail so user can correct issue. */
6459
0
    }
6460
    // Only call down if the device supports the function
6461
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT)
6462
0
        dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT(queue);
6463
0
}
6464
6465
VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT(
6466
    VkQueue                                     queue,
6467
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6468
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6469
0
    if (NULL == disp) {
6470
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6471
0
                   "vkQueueInsertDebugUtilsLabelEXT: Invalid queue "
6472
0
                   "[VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter]");
6473
0
        abort(); /* Intentionally fail so user can correct issue. */
6474
0
    }
6475
0
    if (disp->QueueInsertDebugUtilsLabelEXT != NULL) {
6476
0
        disp->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
6477
0
    }
6478
0
}
6479
6480
VKAPI_ATTR void VKAPI_CALL terminator_QueueInsertDebugUtilsLabelEXT(
6481
    VkQueue                                     queue,
6482
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6483
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6484
0
    if (NULL == dispatch_table) {
6485
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6486
0
        abort(); /* Intentionally fail so user can correct issue. */
6487
0
    }
6488
    // Only call down if the device supports the function
6489
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT)
6490
0
        dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
6491
0
}
6492
6493
VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT(
6494
    VkCommandBuffer                             commandBuffer,
6495
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6496
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6497
0
    if (NULL == disp) {
6498
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6499
0
                   "vkCmdBeginDebugUtilsLabelEXT: Invalid commandBuffer "
6500
0
                   "[VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter]");
6501
0
        abort(); /* Intentionally fail so user can correct issue. */
6502
0
    }
6503
0
    if (disp->CmdBeginDebugUtilsLabelEXT != NULL) {
6504
0
        disp->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6505
0
    }
6506
0
}
6507
6508
VKAPI_ATTR void VKAPI_CALL terminator_CmdBeginDebugUtilsLabelEXT(
6509
    VkCommandBuffer                             commandBuffer,
6510
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6511
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6512
0
    if (NULL == dispatch_table) {
6513
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6514
0
        abort(); /* Intentionally fail so user can correct issue. */
6515
0
    }
6516
    // Only call down if the device supports the function
6517
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT)
6518
0
        dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6519
0
}
6520
6521
VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT(
6522
0
    VkCommandBuffer                             commandBuffer) {
6523
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6524
0
    if (NULL == disp) {
6525
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6526
0
                   "vkCmdEndDebugUtilsLabelEXT: Invalid commandBuffer "
6527
0
                   "[VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter]");
6528
0
        abort(); /* Intentionally fail so user can correct issue. */
6529
0
    }
6530
0
    if (disp->CmdEndDebugUtilsLabelEXT != NULL) {
6531
0
        disp->CmdEndDebugUtilsLabelEXT(commandBuffer);
6532
0
    }
6533
0
}
6534
6535
VKAPI_ATTR void VKAPI_CALL terminator_CmdEndDebugUtilsLabelEXT(
6536
0
    VkCommandBuffer                             commandBuffer) {
6537
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6538
0
    if (NULL == dispatch_table) {
6539
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6540
0
        abort(); /* Intentionally fail so user can correct issue. */
6541
0
    }
6542
    // Only call down if the device supports the function
6543
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT)
6544
0
        dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT(commandBuffer);
6545
0
}
6546
6547
VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT(
6548
    VkCommandBuffer                             commandBuffer,
6549
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6550
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6551
0
    if (NULL == disp) {
6552
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6553
0
                   "vkCmdInsertDebugUtilsLabelEXT: Invalid commandBuffer "
6554
0
                   "[VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter]");
6555
0
        abort(); /* Intentionally fail so user can correct issue. */
6556
0
    }
6557
0
    if (disp->CmdInsertDebugUtilsLabelEXT != NULL) {
6558
0
        disp->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6559
0
    }
6560
0
}
6561
6562
VKAPI_ATTR void VKAPI_CALL terminator_CmdInsertDebugUtilsLabelEXT(
6563
    VkCommandBuffer                             commandBuffer,
6564
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6565
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6566
0
    if (NULL == dispatch_table) {
6567
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6568
0
        abort(); /* Intentionally fail so user can correct issue. */
6569
0
    }
6570
    // Only call down if the device supports the function
6571
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT)
6572
0
        dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6573
0
}
6574
6575
6576
// ---- VK_ANDROID_external_memory_android_hardware_buffer extension trampoline/terminators
6577
6578
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
6579
VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID(
6580
    VkDevice                                    device,
6581
    const struct AHardwareBuffer*               buffer,
6582
    VkAndroidHardwareBufferPropertiesANDROID*   pProperties) {
6583
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6584
    if (NULL == disp) {
6585
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6586
                   "vkGetAndroidHardwareBufferPropertiesANDROID: Invalid device "
6587
                   "[VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter]");
6588
        abort(); /* Intentionally fail so user can correct issue. */
6589
    }
6590
    return disp->GetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
6591
}
6592
6593
#endif // VK_USE_PLATFORM_ANDROID_KHR
6594
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
6595
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID(
6596
    VkDevice                                    device,
6597
    const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
6598
    struct AHardwareBuffer**                    pBuffer) {
6599
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6600
    if (NULL == disp) {
6601
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6602
                   "vkGetMemoryAndroidHardwareBufferANDROID: Invalid device "
6603
                   "[VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter]");
6604
        abort(); /* Intentionally fail so user can correct issue. */
6605
    }
6606
    return disp->GetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
6607
}
6608
6609
#endif // VK_USE_PLATFORM_ANDROID_KHR
6610
6611
// ---- VK_AMDX_shader_enqueue extension trampoline/terminators
6612
6613
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6614
VKAPI_ATTR VkResult VKAPI_CALL CreateExecutionGraphPipelinesAMDX(
6615
    VkDevice                                    device,
6616
    VkPipelineCache                             pipelineCache,
6617
    uint32_t                                    createInfoCount,
6618
    const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
6619
    const VkAllocationCallbacks*                pAllocator,
6620
0
    VkPipeline*                                 pPipelines) {
6621
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6622
0
    if (NULL == disp) {
6623
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6624
0
                   "vkCreateExecutionGraphPipelinesAMDX: Invalid device "
6625
0
                   "[VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter]");
6626
0
        abort(); /* Intentionally fail so user can correct issue. */
6627
0
    }
6628
0
    return disp->CreateExecutionGraphPipelinesAMDX(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
6629
0
}
6630
6631
#endif // VK_ENABLE_BETA_EXTENSIONS
6632
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6633
VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineScratchSizeAMDX(
6634
    VkDevice                                    device,
6635
    VkPipeline                                  executionGraph,
6636
0
    VkExecutionGraphPipelineScratchSizeAMDX*    pSizeInfo) {
6637
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6638
0
    if (NULL == disp) {
6639
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6640
0
                   "vkGetExecutionGraphPipelineScratchSizeAMDX: Invalid device "
6641
0
                   "[VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter]");
6642
0
        abort(); /* Intentionally fail so user can correct issue. */
6643
0
    }
6644
0
    return disp->GetExecutionGraphPipelineScratchSizeAMDX(device, executionGraph, pSizeInfo);
6645
0
}
6646
6647
#endif // VK_ENABLE_BETA_EXTENSIONS
6648
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6649
VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineNodeIndexAMDX(
6650
    VkDevice                                    device,
6651
    VkPipeline                                  executionGraph,
6652
    const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo,
6653
0
    uint32_t*                                   pNodeIndex) {
6654
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6655
0
    if (NULL == disp) {
6656
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6657
0
                   "vkGetExecutionGraphPipelineNodeIndexAMDX: Invalid device "
6658
0
                   "[VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter]");
6659
0
        abort(); /* Intentionally fail so user can correct issue. */
6660
0
    }
6661
0
    return disp->GetExecutionGraphPipelineNodeIndexAMDX(device, executionGraph, pNodeInfo, pNodeIndex);
6662
0
}
6663
6664
#endif // VK_ENABLE_BETA_EXTENSIONS
6665
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6666
VKAPI_ATTR void VKAPI_CALL CmdInitializeGraphScratchMemoryAMDX(
6667
    VkCommandBuffer                             commandBuffer,
6668
    VkPipeline                                  executionGraph,
6669
    VkDeviceAddress                             scratch,
6670
0
    VkDeviceSize                                scratchSize) {
6671
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6672
0
    if (NULL == disp) {
6673
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6674
0
                   "vkCmdInitializeGraphScratchMemoryAMDX: Invalid commandBuffer "
6675
0
                   "[VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter]");
6676
0
        abort(); /* Intentionally fail so user can correct issue. */
6677
0
    }
6678
0
    disp->CmdInitializeGraphScratchMemoryAMDX(commandBuffer, executionGraph, scratch, scratchSize);
6679
0
}
6680
6681
#endif // VK_ENABLE_BETA_EXTENSIONS
6682
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6683
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphAMDX(
6684
    VkCommandBuffer                             commandBuffer,
6685
    VkDeviceAddress                             scratch,
6686
    VkDeviceSize                                scratchSize,
6687
0
    const VkDispatchGraphCountInfoAMDX*         pCountInfo) {
6688
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6689
0
    if (NULL == disp) {
6690
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6691
0
                   "vkCmdDispatchGraphAMDX: Invalid commandBuffer "
6692
0
                   "[VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter]");
6693
0
        abort(); /* Intentionally fail so user can correct issue. */
6694
0
    }
6695
0
    disp->CmdDispatchGraphAMDX(commandBuffer, scratch, scratchSize, pCountInfo);
6696
0
}
6697
6698
#endif // VK_ENABLE_BETA_EXTENSIONS
6699
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6700
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectAMDX(
6701
    VkCommandBuffer                             commandBuffer,
6702
    VkDeviceAddress                             scratch,
6703
    VkDeviceSize                                scratchSize,
6704
0
    const VkDispatchGraphCountInfoAMDX*         pCountInfo) {
6705
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6706
0
    if (NULL == disp) {
6707
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6708
0
                   "vkCmdDispatchGraphIndirectAMDX: Invalid commandBuffer "
6709
0
                   "[VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter]");
6710
0
        abort(); /* Intentionally fail so user can correct issue. */
6711
0
    }
6712
0
    disp->CmdDispatchGraphIndirectAMDX(commandBuffer, scratch, scratchSize, pCountInfo);
6713
0
}
6714
6715
#endif // VK_ENABLE_BETA_EXTENSIONS
6716
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6717
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectCountAMDX(
6718
    VkCommandBuffer                             commandBuffer,
6719
    VkDeviceAddress                             scratch,
6720
    VkDeviceSize                                scratchSize,
6721
0
    VkDeviceAddress                             countInfo) {
6722
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6723
0
    if (NULL == disp) {
6724
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6725
0
                   "vkCmdDispatchGraphIndirectCountAMDX: Invalid commandBuffer "
6726
0
                   "[VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter]");
6727
0
        abort(); /* Intentionally fail so user can correct issue. */
6728
0
    }
6729
0
    disp->CmdDispatchGraphIndirectCountAMDX(commandBuffer, scratch, scratchSize, countInfo);
6730
0
}
6731
6732
#endif // VK_ENABLE_BETA_EXTENSIONS
6733
6734
// ---- VK_EXT_sample_locations extension trampoline/terminators
6735
6736
VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEXT(
6737
    VkCommandBuffer                             commandBuffer,
6738
0
    const VkSampleLocationsInfoEXT*             pSampleLocationsInfo) {
6739
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6740
0
    if (NULL == disp) {
6741
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6742
0
                   "vkCmdSetSampleLocationsEXT: Invalid commandBuffer "
6743
0
                   "[VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter]");
6744
0
        abort(); /* Intentionally fail so user can correct issue. */
6745
0
    }
6746
0
    disp->CmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
6747
0
}
6748
6749
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT(
6750
    VkPhysicalDevice                            physicalDevice,
6751
    VkSampleCountFlagBits                       samples,
6752
0
    VkMultisamplePropertiesEXT*                 pMultisampleProperties) {
6753
0
    const VkLayerInstanceDispatchTable *disp;
6754
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6755
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6756
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6757
0
                   "vkGetPhysicalDeviceMultisamplePropertiesEXT: Invalid physicalDevice "
6758
0
                   "[VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter]");
6759
0
        abort(); /* Intentionally fail so user can correct issue. */
6760
0
    }
6761
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
6762
0
    disp->GetPhysicalDeviceMultisamplePropertiesEXT(unwrapped_phys_dev, samples, pMultisampleProperties);
6763
0
}
6764
6765
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMultisamplePropertiesEXT(
6766
    VkPhysicalDevice                            physicalDevice,
6767
    VkSampleCountFlagBits                       samples,
6768
0
    VkMultisamplePropertiesEXT*                 pMultisampleProperties) {
6769
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6770
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6771
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT) {
6772
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
6773
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceMultisamplePropertiesEXT");
6774
0
        abort(); /* Intentionally fail so user can correct issue. */
6775
0
    }
6776
0
    icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT(phys_dev_term->phys_dev, samples, pMultisampleProperties);
6777
0
}
6778
6779
6780
// ---- VK_EXT_image_drm_format_modifier extension trampoline/terminators
6781
6782
VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT(
6783
    VkDevice                                    device,
6784
    VkImage                                     image,
6785
0
    VkImageDrmFormatModifierPropertiesEXT*      pProperties) {
6786
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6787
0
    if (NULL == disp) {
6788
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6789
0
                   "vkGetImageDrmFormatModifierPropertiesEXT: Invalid device "
6790
0
                   "[VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter]");
6791
0
        abort(); /* Intentionally fail so user can correct issue. */
6792
0
    }
6793
0
    return disp->GetImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
6794
0
}
6795
6796
6797
// ---- VK_EXT_validation_cache extension trampoline/terminators
6798
6799
VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT(
6800
    VkDevice                                    device,
6801
    const VkValidationCacheCreateInfoEXT*       pCreateInfo,
6802
    const VkAllocationCallbacks*                pAllocator,
6803
0
    VkValidationCacheEXT*                       pValidationCache) {
6804
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6805
0
    if (NULL == disp) {
6806
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6807
0
                   "vkCreateValidationCacheEXT: Invalid device "
6808
0
                   "[VUID-vkCreateValidationCacheEXT-device-parameter]");
6809
0
        abort(); /* Intentionally fail so user can correct issue. */
6810
0
    }
6811
0
    return disp->CreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
6812
0
}
6813
6814
VKAPI_ATTR void VKAPI_CALL DestroyValidationCacheEXT(
6815
    VkDevice                                    device,
6816
    VkValidationCacheEXT                        validationCache,
6817
0
    const VkAllocationCallbacks*                pAllocator) {
6818
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6819
0
    if (NULL == disp) {
6820
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6821
0
                   "vkDestroyValidationCacheEXT: Invalid device "
6822
0
                   "[VUID-vkDestroyValidationCacheEXT-device-parameter]");
6823
0
        abort(); /* Intentionally fail so user can correct issue. */
6824
0
    }
6825
0
    disp->DestroyValidationCacheEXT(device, validationCache, pAllocator);
6826
0
}
6827
6828
VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT(
6829
    VkDevice                                    device,
6830
    VkValidationCacheEXT                        dstCache,
6831
    uint32_t                                    srcCacheCount,
6832
0
    const VkValidationCacheEXT*                 pSrcCaches) {
6833
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6834
0
    if (NULL == disp) {
6835
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6836
0
                   "vkMergeValidationCachesEXT: Invalid device "
6837
0
                   "[VUID-vkMergeValidationCachesEXT-device-parameter]");
6838
0
        abort(); /* Intentionally fail so user can correct issue. */
6839
0
    }
6840
0
    return disp->MergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
6841
0
}
6842
6843
VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT(
6844
    VkDevice                                    device,
6845
    VkValidationCacheEXT                        validationCache,
6846
    size_t*                                     pDataSize,
6847
0
    void*                                       pData) {
6848
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6849
0
    if (NULL == disp) {
6850
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6851
0
                   "vkGetValidationCacheDataEXT: Invalid device "
6852
0
                   "[VUID-vkGetValidationCacheDataEXT-device-parameter]");
6853
0
        abort(); /* Intentionally fail so user can correct issue. */
6854
0
    }
6855
0
    return disp->GetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
6856
0
}
6857
6858
6859
// ---- VK_NV_shading_rate_image extension trampoline/terminators
6860
6861
VKAPI_ATTR void VKAPI_CALL CmdBindShadingRateImageNV(
6862
    VkCommandBuffer                             commandBuffer,
6863
    VkImageView                                 imageView,
6864
0
    VkImageLayout                               imageLayout) {
6865
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6866
0
    if (NULL == disp) {
6867
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6868
0
                   "vkCmdBindShadingRateImageNV: Invalid commandBuffer "
6869
0
                   "[VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter]");
6870
0
        abort(); /* Intentionally fail so user can correct issue. */
6871
0
    }
6872
0
    disp->CmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout);
6873
0
}
6874
6875
VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV(
6876
    VkCommandBuffer                             commandBuffer,
6877
    uint32_t                                    firstViewport,
6878
    uint32_t                                    viewportCount,
6879
0
    const VkShadingRatePaletteNV*               pShadingRatePalettes) {
6880
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6881
0
    if (NULL == disp) {
6882
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6883
0
                   "vkCmdSetViewportShadingRatePaletteNV: Invalid commandBuffer "
6884
0
                   "[VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter]");
6885
0
        abort(); /* Intentionally fail so user can correct issue. */
6886
0
    }
6887
0
    disp->CmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes);
6888
0
}
6889
6890
VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV(
6891
    VkCommandBuffer                             commandBuffer,
6892
    VkCoarseSampleOrderTypeNV                   sampleOrderType,
6893
    uint32_t                                    customSampleOrderCount,
6894
0
    const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders) {
6895
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6896
0
    if (NULL == disp) {
6897
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6898
0
                   "vkCmdSetCoarseSampleOrderNV: Invalid commandBuffer "
6899
0
                   "[VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter]");
6900
0
        abort(); /* Intentionally fail so user can correct issue. */
6901
0
    }
6902
0
    disp->CmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders);
6903
0
}
6904
6905
6906
// ---- VK_NV_ray_tracing extension trampoline/terminators
6907
6908
VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV(
6909
    VkDevice                                    device,
6910
    const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
6911
    const VkAllocationCallbacks*                pAllocator,
6912
0
    VkAccelerationStructureNV*                  pAccelerationStructure) {
6913
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6914
0
    if (NULL == disp) {
6915
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6916
0
                   "vkCreateAccelerationStructureNV: Invalid device "
6917
0
                   "[VUID-vkCreateAccelerationStructureNV-device-parameter]");
6918
0
        abort(); /* Intentionally fail so user can correct issue. */
6919
0
    }
6920
0
    return disp->CreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
6921
0
}
6922
6923
VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureNV(
6924
    VkDevice                                    device,
6925
    VkAccelerationStructureNV                   accelerationStructure,
6926
0
    const VkAllocationCallbacks*                pAllocator) {
6927
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6928
0
    if (NULL == disp) {
6929
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6930
0
                   "vkDestroyAccelerationStructureNV: Invalid device "
6931
0
                   "[VUID-vkDestroyAccelerationStructureNV-device-parameter]");
6932
0
        abort(); /* Intentionally fail so user can correct issue. */
6933
0
    }
6934
0
    disp->DestroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
6935
0
}
6936
6937
VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureMemoryRequirementsNV(
6938
    VkDevice                                    device,
6939
    const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
6940
0
    VkMemoryRequirements2KHR*                   pMemoryRequirements) {
6941
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6942
0
    if (NULL == disp) {
6943
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6944
0
                   "vkGetAccelerationStructureMemoryRequirementsNV: Invalid device "
6945
0
                   "[VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter]");
6946
0
        abort(); /* Intentionally fail so user can correct issue. */
6947
0
    }
6948
0
    disp->GetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
6949
0
}
6950
6951
VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV(
6952
    VkDevice                                    device,
6953
    uint32_t                                    bindInfoCount,
6954
0
    const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
6955
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6956
0
    if (NULL == disp) {
6957
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6958
0
                   "vkBindAccelerationStructureMemoryNV: Invalid device "
6959
0
                   "[VUID-vkBindAccelerationStructureMemoryNV-device-parameter]");
6960
0
        abort(); /* Intentionally fail so user can correct issue. */
6961
0
    }
6962
0
    return disp->BindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
6963
0
}
6964
6965
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV(
6966
    VkCommandBuffer                             commandBuffer,
6967
    const VkAccelerationStructureInfoNV*        pInfo,
6968
    VkBuffer                                    instanceData,
6969
    VkDeviceSize                                instanceOffset,
6970
    VkBool32                                    update,
6971
    VkAccelerationStructureNV                   dst,
6972
    VkAccelerationStructureNV                   src,
6973
    VkBuffer                                    scratch,
6974
0
    VkDeviceSize                                scratchOffset) {
6975
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6976
0
    if (NULL == disp) {
6977
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6978
0
                   "vkCmdBuildAccelerationStructureNV: Invalid commandBuffer "
6979
0
                   "[VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter]");
6980
0
        abort(); /* Intentionally fail so user can correct issue. */
6981
0
    }
6982
0
    disp->CmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
6983
0
}
6984
6985
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV(
6986
    VkCommandBuffer                             commandBuffer,
6987
    VkAccelerationStructureNV                   dst,
6988
    VkAccelerationStructureNV                   src,
6989
0
    VkCopyAccelerationStructureModeKHR          mode) {
6990
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6991
0
    if (NULL == disp) {
6992
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6993
0
                   "vkCmdCopyAccelerationStructureNV: Invalid commandBuffer "
6994
0
                   "[VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter]");
6995
0
        abort(); /* Intentionally fail so user can correct issue. */
6996
0
    }
6997
0
    disp->CmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
6998
0
}
6999
7000
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV(
7001
    VkCommandBuffer                             commandBuffer,
7002
    VkBuffer                                    raygenShaderBindingTableBuffer,
7003
    VkDeviceSize                                raygenShaderBindingOffset,
7004
    VkBuffer                                    missShaderBindingTableBuffer,
7005
    VkDeviceSize                                missShaderBindingOffset,
7006
    VkDeviceSize                                missShaderBindingStride,
7007
    VkBuffer                                    hitShaderBindingTableBuffer,
7008
    VkDeviceSize                                hitShaderBindingOffset,
7009
    VkDeviceSize                                hitShaderBindingStride,
7010
    VkBuffer                                    callableShaderBindingTableBuffer,
7011
    VkDeviceSize                                callableShaderBindingOffset,
7012
    VkDeviceSize                                callableShaderBindingStride,
7013
    uint32_t                                    width,
7014
    uint32_t                                    height,
7015
0
    uint32_t                                    depth) {
7016
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7017
0
    if (NULL == disp) {
7018
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7019
0
                   "vkCmdTraceRaysNV: Invalid commandBuffer "
7020
0
                   "[VUID-vkCmdTraceRaysNV-commandBuffer-parameter]");
7021
0
        abort(); /* Intentionally fail so user can correct issue. */
7022
0
    }
7023
0
    disp->CmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth);
7024
0
}
7025
7026
VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesNV(
7027
    VkDevice                                    device,
7028
    VkPipelineCache                             pipelineCache,
7029
    uint32_t                                    createInfoCount,
7030
    const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
7031
    const VkAllocationCallbacks*                pAllocator,
7032
0
    VkPipeline*                                 pPipelines) {
7033
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7034
0
    if (NULL == disp) {
7035
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7036
0
                   "vkCreateRayTracingPipelinesNV: Invalid device "
7037
0
                   "[VUID-vkCreateRayTracingPipelinesNV-device-parameter]");
7038
0
        abort(); /* Intentionally fail so user can correct issue. */
7039
0
    }
7040
0
    return disp->CreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
7041
0
}
7042
7043
7044
// ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
7045
7046
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR(
7047
    VkDevice                                    device,
7048
    VkPipeline                                  pipeline,
7049
    uint32_t                                    firstGroup,
7050
    uint32_t                                    groupCount,
7051
    size_t                                      dataSize,
7052
0
    void*                                       pData) {
7053
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7054
0
    if (NULL == disp) {
7055
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7056
0
                   "vkGetRayTracingShaderGroupHandlesKHR: Invalid device "
7057
0
                   "[VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter]");
7058
0
        abort(); /* Intentionally fail so user can correct issue. */
7059
0
    }
7060
0
    return disp->GetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
7061
0
}
7062
7063
7064
// ---- VK_NV_ray_tracing extension trampoline/terminators
7065
7066
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV(
7067
    VkDevice                                    device,
7068
    VkPipeline                                  pipeline,
7069
    uint32_t                                    firstGroup,
7070
    uint32_t                                    groupCount,
7071
    size_t                                      dataSize,
7072
0
    void*                                       pData) {
7073
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7074
0
    if (NULL == disp) {
7075
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7076
0
                   "vkGetRayTracingShaderGroupHandlesNV: Invalid device "
7077
0
                   "[VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter]");
7078
0
        abort(); /* Intentionally fail so user can correct issue. */
7079
0
    }
7080
0
    return disp->GetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData);
7081
0
}
7082
7083
VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV(
7084
    VkDevice                                    device,
7085
    VkAccelerationStructureNV                   accelerationStructure,
7086
    size_t                                      dataSize,
7087
0
    void*                                       pData) {
7088
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7089
0
    if (NULL == disp) {
7090
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7091
0
                   "vkGetAccelerationStructureHandleNV: Invalid device "
7092
0
                   "[VUID-vkGetAccelerationStructureHandleNV-device-parameter]");
7093
0
        abort(); /* Intentionally fail so user can correct issue. */
7094
0
    }
7095
0
    return disp->GetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
7096
0
}
7097
7098
VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV(
7099
    VkCommandBuffer                             commandBuffer,
7100
    uint32_t                                    accelerationStructureCount,
7101
    const VkAccelerationStructureNV*            pAccelerationStructures,
7102
    VkQueryType                                 queryType,
7103
    VkQueryPool                                 queryPool,
7104
0
    uint32_t                                    firstQuery) {
7105
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7106
0
    if (NULL == disp) {
7107
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7108
0
                   "vkCmdWriteAccelerationStructuresPropertiesNV: Invalid commandBuffer "
7109
0
                   "[VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter]");
7110
0
        abort(); /* Intentionally fail so user can correct issue. */
7111
0
    }
7112
0
    disp->CmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
7113
0
}
7114
7115
VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV(
7116
    VkDevice                                    device,
7117
    VkPipeline                                  pipeline,
7118
0
    uint32_t                                    shader) {
7119
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7120
0
    if (NULL == disp) {
7121
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7122
0
                   "vkCompileDeferredNV: Invalid device "
7123
0
                   "[VUID-vkCompileDeferredNV-device-parameter]");
7124
0
        abort(); /* Intentionally fail so user can correct issue. */
7125
0
    }
7126
0
    return disp->CompileDeferredNV(device, pipeline, shader);
7127
0
}
7128
7129
7130
// ---- VK_EXT_external_memory_host extension trampoline/terminators
7131
7132
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT(
7133
    VkDevice                                    device,
7134
    VkExternalMemoryHandleTypeFlagBits          handleType,
7135
    const void*                                 pHostPointer,
7136
0
    VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties) {
7137
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7138
0
    if (NULL == disp) {
7139
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7140
0
                   "vkGetMemoryHostPointerPropertiesEXT: Invalid device "
7141
0
                   "[VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter]");
7142
0
        abort(); /* Intentionally fail so user can correct issue. */
7143
0
    }
7144
0
    return disp->GetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
7145
0
}
7146
7147
7148
// ---- VK_AMD_buffer_marker extension trampoline/terminators
7149
7150
VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD(
7151
    VkCommandBuffer                             commandBuffer,
7152
    VkPipelineStageFlagBits                     pipelineStage,
7153
    VkBuffer                                    dstBuffer,
7154
    VkDeviceSize                                dstOffset,
7155
0
    uint32_t                                    marker) {
7156
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7157
0
    if (NULL == disp) {
7158
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7159
0
                   "vkCmdWriteBufferMarkerAMD: Invalid commandBuffer "
7160
0
                   "[VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter]");
7161
0
        abort(); /* Intentionally fail so user can correct issue. */
7162
0
    }
7163
0
    disp->CmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
7164
0
}
7165
7166
VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD(
7167
    VkCommandBuffer                             commandBuffer,
7168
    VkPipelineStageFlags2                       stage,
7169
    VkBuffer                                    dstBuffer,
7170
    VkDeviceSize                                dstOffset,
7171
0
    uint32_t                                    marker) {
7172
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7173
0
    if (NULL == disp) {
7174
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7175
0
                   "vkCmdWriteBufferMarker2AMD: Invalid commandBuffer "
7176
0
                   "[VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter]");
7177
0
        abort(); /* Intentionally fail so user can correct issue. */
7178
0
    }
7179
0
    disp->CmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker);
7180
0
}
7181
7182
7183
// ---- VK_EXT_calibrated_timestamps extension trampoline/terminators
7184
7185
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(
7186
    VkPhysicalDevice                            physicalDevice,
7187
    uint32_t*                                   pTimeDomainCount,
7188
0
    VkTimeDomainKHR*                            pTimeDomains) {
7189
0
    const VkLayerInstanceDispatchTable *disp;
7190
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7191
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7192
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7193
0
                   "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: Invalid physicalDevice "
7194
0
                   "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter]");
7195
0
        abort(); /* Intentionally fail so user can correct issue. */
7196
0
    }
7197
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7198
0
    return disp->GetPhysicalDeviceCalibrateableTimeDomainsEXT(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
7199
0
}
7200
7201
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(
7202
    VkPhysicalDevice                            physicalDevice,
7203
    uint32_t*                                   pTimeDomainCount,
7204
0
    VkTimeDomainKHR*                            pTimeDomains) {
7205
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7206
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7207
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT) {
7208
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7209
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsEXT");
7210
0
        abort(); /* Intentionally fail so user can correct issue. */
7211
0
    }
7212
0
    return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
7213
0
}
7214
7215
VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT(
7216
    VkDevice                                    device,
7217
    uint32_t                                    timestampCount,
7218
    const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
7219
    uint64_t*                                   pTimestamps,
7220
0
    uint64_t*                                   pMaxDeviation) {
7221
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7222
0
    if (NULL == disp) {
7223
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7224
0
                   "vkGetCalibratedTimestampsEXT: Invalid device "
7225
0
                   "[VUID-vkGetCalibratedTimestampsEXT-device-parameter]");
7226
0
        abort(); /* Intentionally fail so user can correct issue. */
7227
0
    }
7228
0
    return disp->GetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
7229
0
}
7230
7231
7232
// ---- VK_NV_mesh_shader extension trampoline/terminators
7233
7234
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV(
7235
    VkCommandBuffer                             commandBuffer,
7236
    uint32_t                                    taskCount,
7237
0
    uint32_t                                    firstTask) {
7238
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7239
0
    if (NULL == disp) {
7240
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7241
0
                   "vkCmdDrawMeshTasksNV: Invalid commandBuffer "
7242
0
                   "[VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter]");
7243
0
        abort(); /* Intentionally fail so user can correct issue. */
7244
0
    }
7245
0
    disp->CmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask);
7246
0
}
7247
7248
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV(
7249
    VkCommandBuffer                             commandBuffer,
7250
    VkBuffer                                    buffer,
7251
    VkDeviceSize                                offset,
7252
    uint32_t                                    drawCount,
7253
0
    uint32_t                                    stride) {
7254
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7255
0
    if (NULL == disp) {
7256
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7257
0
                   "vkCmdDrawMeshTasksIndirectNV: Invalid commandBuffer "
7258
0
                   "[VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter]");
7259
0
        abort(); /* Intentionally fail so user can correct issue. */
7260
0
    }
7261
0
    disp->CmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride);
7262
0
}
7263
7264
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV(
7265
    VkCommandBuffer                             commandBuffer,
7266
    VkBuffer                                    buffer,
7267
    VkDeviceSize                                offset,
7268
    VkBuffer                                    countBuffer,
7269
    VkDeviceSize                                countBufferOffset,
7270
    uint32_t                                    maxDrawCount,
7271
0
    uint32_t                                    stride) {
7272
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7273
0
    if (NULL == disp) {
7274
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7275
0
                   "vkCmdDrawMeshTasksIndirectCountNV: Invalid commandBuffer "
7276
0
                   "[VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter]");
7277
0
        abort(); /* Intentionally fail so user can correct issue. */
7278
0
    }
7279
0
    disp->CmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
7280
0
}
7281
7282
7283
// ---- VK_NV_scissor_exclusive extension trampoline/terminators
7284
7285
VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorEnableNV(
7286
    VkCommandBuffer                             commandBuffer,
7287
    uint32_t                                    firstExclusiveScissor,
7288
    uint32_t                                    exclusiveScissorCount,
7289
0
    const VkBool32*                             pExclusiveScissorEnables) {
7290
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7291
0
    if (NULL == disp) {
7292
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7293
0
                   "vkCmdSetExclusiveScissorEnableNV: Invalid commandBuffer "
7294
0
                   "[VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameter]");
7295
0
        abort(); /* Intentionally fail so user can correct issue. */
7296
0
    }
7297
0
    disp->CmdSetExclusiveScissorEnableNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables);
7298
0
}
7299
7300
VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV(
7301
    VkCommandBuffer                             commandBuffer,
7302
    uint32_t                                    firstExclusiveScissor,
7303
    uint32_t                                    exclusiveScissorCount,
7304
0
    const VkRect2D*                             pExclusiveScissors) {
7305
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7306
0
    if (NULL == disp) {
7307
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7308
0
                   "vkCmdSetExclusiveScissorNV: Invalid commandBuffer "
7309
0
                   "[VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter]");
7310
0
        abort(); /* Intentionally fail so user can correct issue. */
7311
0
    }
7312
0
    disp->CmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors);
7313
0
}
7314
7315
7316
// ---- VK_NV_device_diagnostic_checkpoints extension trampoline/terminators
7317
7318
VKAPI_ATTR void VKAPI_CALL CmdSetCheckpointNV(
7319
    VkCommandBuffer                             commandBuffer,
7320
0
    const void*                                 pCheckpointMarker) {
7321
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7322
0
    if (NULL == disp) {
7323
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7324
0
                   "vkCmdSetCheckpointNV: Invalid commandBuffer "
7325
0
                   "[VUID-vkCmdSetCheckpointNV-commandBuffer-parameter]");
7326
0
        abort(); /* Intentionally fail so user can correct issue. */
7327
0
    }
7328
0
    disp->CmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
7329
0
}
7330
7331
VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV(
7332
    VkQueue                                     queue,
7333
    uint32_t*                                   pCheckpointDataCount,
7334
0
    VkCheckpointDataNV*                         pCheckpointData) {
7335
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7336
0
    if (NULL == disp) {
7337
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7338
0
                   "vkGetQueueCheckpointDataNV: Invalid queue "
7339
0
                   "[VUID-vkGetQueueCheckpointDataNV-queue-parameter]");
7340
0
        abort(); /* Intentionally fail so user can correct issue. */
7341
0
    }
7342
0
    disp->GetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
7343
0
}
7344
7345
VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV(
7346
    VkQueue                                     queue,
7347
    uint32_t*                                   pCheckpointDataCount,
7348
0
    VkCheckpointData2NV*                        pCheckpointData) {
7349
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7350
0
    if (NULL == disp) {
7351
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7352
0
                   "vkGetQueueCheckpointData2NV: Invalid queue "
7353
0
                   "[VUID-vkGetQueueCheckpointData2NV-queue-parameter]");
7354
0
        abort(); /* Intentionally fail so user can correct issue. */
7355
0
    }
7356
0
    disp->GetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
7357
0
}
7358
7359
7360
// ---- VK_EXT_present_timing extension trampoline/terminators
7361
7362
VKAPI_ATTR VkResult VKAPI_CALL SetSwapchainPresentTimingQueueSizeEXT(
7363
    VkDevice                                    device,
7364
    VkSwapchainKHR                              swapchain,
7365
0
    uint32_t                                    size) {
7366
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7367
0
    if (NULL == disp) {
7368
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7369
0
                   "vkSetSwapchainPresentTimingQueueSizeEXT: Invalid device "
7370
0
                   "[VUID-vkSetSwapchainPresentTimingQueueSizeEXT-device-parameter]");
7371
0
        abort(); /* Intentionally fail so user can correct issue. */
7372
0
    }
7373
0
    return disp->SetSwapchainPresentTimingQueueSizeEXT(device, swapchain, size);
7374
0
}
7375
7376
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimingPropertiesEXT(
7377
    VkDevice                                    device,
7378
    VkSwapchainKHR                              swapchain,
7379
    VkSwapchainTimingPropertiesEXT*             pSwapchainTimingProperties,
7380
0
    uint64_t*                                   pSwapchainTimingPropertiesCounter) {
7381
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7382
0
    if (NULL == disp) {
7383
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7384
0
                   "vkGetSwapchainTimingPropertiesEXT: Invalid device "
7385
0
                   "[VUID-vkGetSwapchainTimingPropertiesEXT-device-parameter]");
7386
0
        abort(); /* Intentionally fail so user can correct issue. */
7387
0
    }
7388
0
    return disp->GetSwapchainTimingPropertiesEXT(device, swapchain, pSwapchainTimingProperties, pSwapchainTimingPropertiesCounter);
7389
0
}
7390
7391
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimeDomainPropertiesEXT(
7392
    VkDevice                                    device,
7393
    VkSwapchainKHR                              swapchain,
7394
    VkSwapchainTimeDomainPropertiesEXT*         pSwapchainTimeDomainProperties,
7395
0
    uint64_t*                                   pTimeDomainsCounter) {
7396
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7397
0
    if (NULL == disp) {
7398
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7399
0
                   "vkGetSwapchainTimeDomainPropertiesEXT: Invalid device "
7400
0
                   "[VUID-vkGetSwapchainTimeDomainPropertiesEXT-device-parameter]");
7401
0
        abort(); /* Intentionally fail so user can correct issue. */
7402
0
    }
7403
0
    return disp->GetSwapchainTimeDomainPropertiesEXT(device, swapchain, pSwapchainTimeDomainProperties, pTimeDomainsCounter);
7404
0
}
7405
7406
VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingEXT(
7407
    VkDevice                                    device,
7408
    const VkPastPresentationTimingInfoEXT*      pPastPresentationTimingInfo,
7409
0
    VkPastPresentationTimingPropertiesEXT*      pPastPresentationTimingProperties) {
7410
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7411
0
    if (NULL == disp) {
7412
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7413
0
                   "vkGetPastPresentationTimingEXT: Invalid device "
7414
0
                   "[VUID-vkGetPastPresentationTimingEXT-device-parameter]");
7415
0
        abort(); /* Intentionally fail so user can correct issue. */
7416
0
    }
7417
0
    return disp->GetPastPresentationTimingEXT(device, pPastPresentationTimingInfo, pPastPresentationTimingProperties);
7418
0
}
7419
7420
7421
// ---- VK_INTEL_performance_query extension trampoline/terminators
7422
7423
VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL(
7424
    VkDevice                                    device,
7425
0
    const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo) {
7426
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7427
0
    if (NULL == disp) {
7428
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7429
0
                   "vkInitializePerformanceApiINTEL: Invalid device "
7430
0
                   "[VUID-vkInitializePerformanceApiINTEL-device-parameter]");
7431
0
        abort(); /* Intentionally fail so user can correct issue. */
7432
0
    }
7433
0
    return disp->InitializePerformanceApiINTEL(device, pInitializeInfo);
7434
0
}
7435
7436
VKAPI_ATTR void VKAPI_CALL UninitializePerformanceApiINTEL(
7437
0
    VkDevice                                    device) {
7438
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7439
0
    if (NULL == disp) {
7440
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7441
0
                   "vkUninitializePerformanceApiINTEL: Invalid device "
7442
0
                   "[VUID-vkUninitializePerformanceApiINTEL-device-parameter]");
7443
0
        abort(); /* Intentionally fail so user can correct issue. */
7444
0
    }
7445
0
    disp->UninitializePerformanceApiINTEL(device);
7446
0
}
7447
7448
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceMarkerINTEL(
7449
    VkCommandBuffer                             commandBuffer,
7450
0
    const VkPerformanceMarkerInfoINTEL*         pMarkerInfo) {
7451
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7452
0
    if (NULL == disp) {
7453
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7454
0
                   "vkCmdSetPerformanceMarkerINTEL: Invalid commandBuffer "
7455
0
                   "[VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter]");
7456
0
        abort(); /* Intentionally fail so user can correct issue. */
7457
0
    }
7458
0
    return disp->CmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo);
7459
0
}
7460
7461
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceStreamMarkerINTEL(
7462
    VkCommandBuffer                             commandBuffer,
7463
0
    const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo) {
7464
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7465
0
    if (NULL == disp) {
7466
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7467
0
                   "vkCmdSetPerformanceStreamMarkerINTEL: Invalid commandBuffer "
7468
0
                   "[VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter]");
7469
0
        abort(); /* Intentionally fail so user can correct issue. */
7470
0
    }
7471
0
    return disp->CmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo);
7472
0
}
7473
7474
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceOverrideINTEL(
7475
    VkCommandBuffer                             commandBuffer,
7476
0
    const VkPerformanceOverrideInfoINTEL*       pOverrideInfo) {
7477
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7478
0
    if (NULL == disp) {
7479
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7480
0
                   "vkCmdSetPerformanceOverrideINTEL: Invalid commandBuffer "
7481
0
                   "[VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter]");
7482
0
        abort(); /* Intentionally fail so user can correct issue. */
7483
0
    }
7484
0
    return disp->CmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo);
7485
0
}
7486
7487
VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL(
7488
    VkDevice                                    device,
7489
    const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
7490
0
    VkPerformanceConfigurationINTEL*            pConfiguration) {
7491
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7492
0
    if (NULL == disp) {
7493
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7494
0
                   "vkAcquirePerformanceConfigurationINTEL: Invalid device "
7495
0
                   "[VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter]");
7496
0
        abort(); /* Intentionally fail so user can correct issue. */
7497
0
    }
7498
0
    return disp->AcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration);
7499
0
}
7500
7501
VKAPI_ATTR VkResult VKAPI_CALL ReleasePerformanceConfigurationINTEL(
7502
    VkDevice                                    device,
7503
0
    VkPerformanceConfigurationINTEL             configuration) {
7504
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7505
0
    if (NULL == disp) {
7506
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7507
0
                   "vkReleasePerformanceConfigurationINTEL: Invalid device "
7508
0
                   "[VUID-vkReleasePerformanceConfigurationINTEL-device-parameter]");
7509
0
        abort(); /* Intentionally fail so user can correct issue. */
7510
0
    }
7511
0
    return disp->ReleasePerformanceConfigurationINTEL(device, configuration);
7512
0
}
7513
7514
VKAPI_ATTR VkResult VKAPI_CALL QueueSetPerformanceConfigurationINTEL(
7515
    VkQueue                                     queue,
7516
0
    VkPerformanceConfigurationINTEL             configuration) {
7517
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7518
0
    if (NULL == disp) {
7519
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7520
0
                   "vkQueueSetPerformanceConfigurationINTEL: Invalid queue "
7521
0
                   "[VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter]");
7522
0
        abort(); /* Intentionally fail so user can correct issue. */
7523
0
    }
7524
0
    return disp->QueueSetPerformanceConfigurationINTEL(queue, configuration);
7525
0
}
7526
7527
VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL(
7528
    VkDevice                                    device,
7529
    VkPerformanceParameterTypeINTEL             parameter,
7530
0
    VkPerformanceValueINTEL*                    pValue) {
7531
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7532
0
    if (NULL == disp) {
7533
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7534
0
                   "vkGetPerformanceParameterINTEL: Invalid device "
7535
0
                   "[VUID-vkGetPerformanceParameterINTEL-device-parameter]");
7536
0
        abort(); /* Intentionally fail so user can correct issue. */
7537
0
    }
7538
0
    return disp->GetPerformanceParameterINTEL(device, parameter, pValue);
7539
0
}
7540
7541
7542
// ---- VK_AMD_display_native_hdr extension trampoline/terminators
7543
7544
VKAPI_ATTR void VKAPI_CALL SetLocalDimmingAMD(
7545
    VkDevice                                    device,
7546
    VkSwapchainKHR                              swapChain,
7547
0
    VkBool32                                    localDimmingEnable) {
7548
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7549
0
    if (NULL == disp) {
7550
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7551
0
                   "vkSetLocalDimmingAMD: Invalid device "
7552
0
                   "[VUID-vkSetLocalDimmingAMD-device-parameter]");
7553
0
        abort(); /* Intentionally fail so user can correct issue. */
7554
0
    }
7555
0
    disp->SetLocalDimmingAMD(device, swapChain, localDimmingEnable);
7556
0
}
7557
7558
7559
// ---- VK_EXT_buffer_device_address extension trampoline/terminators
7560
7561
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT(
7562
    VkDevice                                    device,
7563
0
    const VkBufferDeviceAddressInfo*            pInfo) {
7564
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7565
0
    if (NULL == disp) {
7566
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7567
0
                   "vkGetBufferDeviceAddressEXT: Invalid device "
7568
0
                   "[VUID-vkGetBufferDeviceAddressEXT-device-parameter]");
7569
0
        abort(); /* Intentionally fail so user can correct issue. */
7570
0
    }
7571
0
    return disp->GetBufferDeviceAddressEXT(device, pInfo);
7572
0
}
7573
7574
7575
// ---- VK_NV_cooperative_matrix extension trampoline/terminators
7576
7577
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV(
7578
    VkPhysicalDevice                            physicalDevice,
7579
    uint32_t*                                   pPropertyCount,
7580
0
    VkCooperativeMatrixPropertiesNV*            pProperties) {
7581
0
    const VkLayerInstanceDispatchTable *disp;
7582
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7583
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7584
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7585
0
                   "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV: Invalid physicalDevice "
7586
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter]");
7587
0
        abort(); /* Intentionally fail so user can correct issue. */
7588
0
    }
7589
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7590
0
    return disp->GetPhysicalDeviceCooperativeMatrixPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
7591
0
}
7592
7593
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(
7594
    VkPhysicalDevice                            physicalDevice,
7595
    uint32_t*                                   pPropertyCount,
7596
0
    VkCooperativeMatrixPropertiesNV*            pProperties) {
7597
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7598
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7599
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV) {
7600
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7601
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesNV");
7602
0
        abort(); /* Intentionally fail so user can correct issue. */
7603
0
    }
7604
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
7605
0
}
7606
7607
7608
// ---- VK_NV_coverage_reduction_mode extension trampoline/terminators
7609
7610
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
7611
    VkPhysicalDevice                            physicalDevice,
7612
    uint32_t*                                   pCombinationCount,
7613
0
    VkFramebufferMixedSamplesCombinationNV*     pCombinations) {
7614
0
    const VkLayerInstanceDispatchTable *disp;
7615
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7616
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7617
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7618
0
                   "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: Invalid physicalDevice "
7619
0
                   "[VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter]");
7620
0
        abort(); /* Intentionally fail so user can correct issue. */
7621
0
    }
7622
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7623
0
    return disp->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(unwrapped_phys_dev, pCombinationCount, pCombinations);
7624
0
}
7625
7626
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
7627
    VkPhysicalDevice                            physicalDevice,
7628
    uint32_t*                                   pCombinationCount,
7629
0
    VkFramebufferMixedSamplesCombinationNV*     pCombinations) {
7630
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7631
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7632
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) {
7633
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7634
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
7635
0
        abort(); /* Intentionally fail so user can correct issue. */
7636
0
    }
7637
0
    return icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(phys_dev_term->phys_dev, pCombinationCount, pCombinations);
7638
0
}
7639
7640
7641
// ---- VK_EXT_full_screen_exclusive extension trampoline/terminators
7642
7643
#if defined(VK_USE_PLATFORM_WIN32_KHR)
7644
VKAPI_ATTR VkResult VKAPI_CALL AcquireFullScreenExclusiveModeEXT(
7645
    VkDevice                                    device,
7646
    VkSwapchainKHR                              swapchain) {
7647
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7648
    if (NULL == disp) {
7649
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7650
                   "vkAcquireFullScreenExclusiveModeEXT: Invalid device "
7651
                   "[VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter]");
7652
        abort(); /* Intentionally fail so user can correct issue. */
7653
    }
7654
    return disp->AcquireFullScreenExclusiveModeEXT(device, swapchain);
7655
}
7656
7657
#endif // VK_USE_PLATFORM_WIN32_KHR
7658
#if defined(VK_USE_PLATFORM_WIN32_KHR)
7659
VKAPI_ATTR VkResult VKAPI_CALL ReleaseFullScreenExclusiveModeEXT(
7660
    VkDevice                                    device,
7661
    VkSwapchainKHR                              swapchain) {
7662
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7663
    if (NULL == disp) {
7664
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7665
                   "vkReleaseFullScreenExclusiveModeEXT: Invalid device "
7666
                   "[VUID-vkReleaseFullScreenExclusiveModeEXT-device-parameter]");
7667
        abort(); /* Intentionally fail so user can correct issue. */
7668
    }
7669
    return disp->ReleaseFullScreenExclusiveModeEXT(device, swapchain);
7670
}
7671
7672
#endif // VK_USE_PLATFORM_WIN32_KHR
7673
7674
// ---- VK_EXT_line_rasterization extension trampoline/terminators
7675
7676
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEXT(
7677
    VkCommandBuffer                             commandBuffer,
7678
    uint32_t                                    lineStippleFactor,
7679
0
    uint16_t                                    lineStipplePattern) {
7680
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7681
0
    if (NULL == disp) {
7682
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7683
0
                   "vkCmdSetLineStippleEXT: Invalid commandBuffer "
7684
0
                   "[VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter]");
7685
0
        abort(); /* Intentionally fail so user can correct issue. */
7686
0
    }
7687
0
    disp->CmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
7688
0
}
7689
7690
7691
// ---- VK_EXT_host_query_reset extension trampoline/terminators
7692
7693
VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT(
7694
    VkDevice                                    device,
7695
    VkQueryPool                                 queryPool,
7696
    uint32_t                                    firstQuery,
7697
0
    uint32_t                                    queryCount) {
7698
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7699
0
    if (NULL == disp) {
7700
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7701
0
                   "vkResetQueryPoolEXT: Invalid device "
7702
0
                   "[VUID-vkResetQueryPoolEXT-device-parameter]");
7703
0
        abort(); /* Intentionally fail so user can correct issue. */
7704
0
    }
7705
0
    disp->ResetQueryPoolEXT(device, queryPool, firstQuery, queryCount);
7706
0
}
7707
7708
7709
// ---- VK_EXT_extended_dynamic_state extension trampoline/terminators
7710
7711
VKAPI_ATTR void VKAPI_CALL CmdSetCullModeEXT(
7712
    VkCommandBuffer                             commandBuffer,
7713
0
    VkCullModeFlags                             cullMode) {
7714
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7715
0
    if (NULL == disp) {
7716
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7717
0
                   "vkCmdSetCullModeEXT: Invalid commandBuffer "
7718
0
                   "[VUID-vkCmdSetCullModeEXT-commandBuffer-parameter]");
7719
0
        abort(); /* Intentionally fail so user can correct issue. */
7720
0
    }
7721
0
    disp->CmdSetCullModeEXT(commandBuffer, cullMode);
7722
0
}
7723
7724
VKAPI_ATTR void VKAPI_CALL CmdSetFrontFaceEXT(
7725
    VkCommandBuffer                             commandBuffer,
7726
0
    VkFrontFace                                 frontFace) {
7727
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7728
0
    if (NULL == disp) {
7729
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7730
0
                   "vkCmdSetFrontFaceEXT: Invalid commandBuffer "
7731
0
                   "[VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter]");
7732
0
        abort(); /* Intentionally fail so user can correct issue. */
7733
0
    }
7734
0
    disp->CmdSetFrontFaceEXT(commandBuffer, frontFace);
7735
0
}
7736
7737
VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopologyEXT(
7738
    VkCommandBuffer                             commandBuffer,
7739
0
    VkPrimitiveTopology                         primitiveTopology) {
7740
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7741
0
    if (NULL == disp) {
7742
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7743
0
                   "vkCmdSetPrimitiveTopologyEXT: Invalid commandBuffer "
7744
0
                   "[VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter]");
7745
0
        abort(); /* Intentionally fail so user can correct issue. */
7746
0
    }
7747
0
    disp->CmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology);
7748
0
}
7749
7750
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT(
7751
    VkCommandBuffer                             commandBuffer,
7752
    uint32_t                                    viewportCount,
7753
0
    const VkViewport*                           pViewports) {
7754
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7755
0
    if (NULL == disp) {
7756
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7757
0
                   "vkCmdSetViewportWithCountEXT: Invalid commandBuffer "
7758
0
                   "[VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter]");
7759
0
        abort(); /* Intentionally fail so user can correct issue. */
7760
0
    }
7761
0
    disp->CmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports);
7762
0
}
7763
7764
VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT(
7765
    VkCommandBuffer                             commandBuffer,
7766
    uint32_t                                    scissorCount,
7767
0
    const VkRect2D*                             pScissors) {
7768
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7769
0
    if (NULL == disp) {
7770
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7771
0
                   "vkCmdSetScissorWithCountEXT: Invalid commandBuffer "
7772
0
                   "[VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter]");
7773
0
        abort(); /* Intentionally fail so user can correct issue. */
7774
0
    }
7775
0
    disp->CmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors);
7776
0
}
7777
7778
VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT(
7779
    VkCommandBuffer                             commandBuffer,
7780
    uint32_t                                    firstBinding,
7781
    uint32_t                                    bindingCount,
7782
    const VkBuffer*                             pBuffers,
7783
    const VkDeviceSize*                         pOffsets,
7784
    const VkDeviceSize*                         pSizes,
7785
0
    const VkDeviceSize*                         pStrides) {
7786
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7787
0
    if (NULL == disp) {
7788
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7789
0
                   "vkCmdBindVertexBuffers2EXT: Invalid commandBuffer "
7790
0
                   "[VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter]");
7791
0
        abort(); /* Intentionally fail so user can correct issue. */
7792
0
    }
7793
0
    disp->CmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
7794
0
}
7795
7796
VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnableEXT(
7797
    VkCommandBuffer                             commandBuffer,
7798
0
    VkBool32                                    depthTestEnable) {
7799
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7800
0
    if (NULL == disp) {
7801
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7802
0
                   "vkCmdSetDepthTestEnableEXT: Invalid commandBuffer "
7803
0
                   "[VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter]");
7804
0
        abort(); /* Intentionally fail so user can correct issue. */
7805
0
    }
7806
0
    disp->CmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable);
7807
0
}
7808
7809
VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnableEXT(
7810
    VkCommandBuffer                             commandBuffer,
7811
0
    VkBool32                                    depthWriteEnable) {
7812
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7813
0
    if (NULL == disp) {
7814
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7815
0
                   "vkCmdSetDepthWriteEnableEXT: Invalid commandBuffer "
7816
0
                   "[VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter]");
7817
0
        abort(); /* Intentionally fail so user can correct issue. */
7818
0
    }
7819
0
    disp->CmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable);
7820
0
}
7821
7822
VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOpEXT(
7823
    VkCommandBuffer                             commandBuffer,
7824
0
    VkCompareOp                                 depthCompareOp) {
7825
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7826
0
    if (NULL == disp) {
7827
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7828
0
                   "vkCmdSetDepthCompareOpEXT: Invalid commandBuffer "
7829
0
                   "[VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter]");
7830
0
        abort(); /* Intentionally fail so user can correct issue. */
7831
0
    }
7832
0
    disp->CmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp);
7833
0
}
7834
7835
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnableEXT(
7836
    VkCommandBuffer                             commandBuffer,
7837
0
    VkBool32                                    depthBoundsTestEnable) {
7838
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7839
0
    if (NULL == disp) {
7840
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7841
0
                   "vkCmdSetDepthBoundsTestEnableEXT: Invalid commandBuffer "
7842
0
                   "[VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter]");
7843
0
        abort(); /* Intentionally fail so user can correct issue. */
7844
0
    }
7845
0
    disp->CmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable);
7846
0
}
7847
7848
VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnableEXT(
7849
    VkCommandBuffer                             commandBuffer,
7850
0
    VkBool32                                    stencilTestEnable) {
7851
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7852
0
    if (NULL == disp) {
7853
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7854
0
                   "vkCmdSetStencilTestEnableEXT: Invalid commandBuffer "
7855
0
                   "[VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter]");
7856
0
        abort(); /* Intentionally fail so user can correct issue. */
7857
0
    }
7858
0
    disp->CmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable);
7859
0
}
7860
7861
VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT(
7862
    VkCommandBuffer                             commandBuffer,
7863
    VkStencilFaceFlags                          faceMask,
7864
    VkStencilOp                                 failOp,
7865
    VkStencilOp                                 passOp,
7866
    VkStencilOp                                 depthFailOp,
7867
0
    VkCompareOp                                 compareOp) {
7868
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7869
0
    if (NULL == disp) {
7870
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7871
0
                   "vkCmdSetStencilOpEXT: Invalid commandBuffer "
7872
0
                   "[VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter]");
7873
0
        abort(); /* Intentionally fail so user can correct issue. */
7874
0
    }
7875
0
    disp->CmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
7876
0
}
7877
7878
7879
// ---- VK_EXT_host_image_copy extension trampoline/terminators
7880
7881
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT(
7882
    VkDevice                                    device,
7883
0
    const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo) {
7884
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7885
0
    if (NULL == disp) {
7886
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7887
0
                   "vkCopyMemoryToImageEXT: Invalid device "
7888
0
                   "[VUID-vkCopyMemoryToImageEXT-device-parameter]");
7889
0
        abort(); /* Intentionally fail so user can correct issue. */
7890
0
    }
7891
0
    return disp->CopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
7892
0
}
7893
7894
VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT(
7895
    VkDevice                                    device,
7896
0
    const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo) {
7897
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7898
0
    if (NULL == disp) {
7899
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7900
0
                   "vkCopyImageToMemoryEXT: Invalid device "
7901
0
                   "[VUID-vkCopyImageToMemoryEXT-device-parameter]");
7902
0
        abort(); /* Intentionally fail so user can correct issue. */
7903
0
    }
7904
0
    return disp->CopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
7905
0
}
7906
7907
VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT(
7908
    VkDevice                                    device,
7909
0
    const VkCopyImageToImageInfo*               pCopyImageToImageInfo) {
7910
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7911
0
    if (NULL == disp) {
7912
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7913
0
                   "vkCopyImageToImageEXT: Invalid device "
7914
0
                   "[VUID-vkCopyImageToImageEXT-device-parameter]");
7915
0
        abort(); /* Intentionally fail so user can correct issue. */
7916
0
    }
7917
0
    return disp->CopyImageToImageEXT(device, pCopyImageToImageInfo);
7918
0
}
7919
7920
VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT(
7921
    VkDevice                                    device,
7922
    uint32_t                                    transitionCount,
7923
0
    const VkHostImageLayoutTransitionInfo*      pTransitions) {
7924
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7925
0
    if (NULL == disp) {
7926
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7927
0
                   "vkTransitionImageLayoutEXT: Invalid device "
7928
0
                   "[VUID-vkTransitionImageLayoutEXT-device-parameter]");
7929
0
        abort(); /* Intentionally fail so user can correct issue. */
7930
0
    }
7931
0
    return disp->TransitionImageLayoutEXT(device, transitionCount, pTransitions);
7932
0
}
7933
7934
VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
7935
    VkDevice                                    device,
7936
    VkImage                                     image,
7937
    const VkImageSubresource2*                  pSubresource,
7938
0
    VkSubresourceLayout2*                       pLayout) {
7939
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7940
0
    if (NULL == disp) {
7941
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7942
0
                   "vkGetImageSubresourceLayout2EXT: Invalid device "
7943
0
                   "[VUID-vkGetImageSubresourceLayout2EXT-device-parameter]");
7944
0
        abort(); /* Intentionally fail so user can correct issue. */
7945
0
    }
7946
0
    disp->GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
7947
0
}
7948
7949
7950
// ---- VK_EXT_swapchain_maintenance1 extension trampoline/terminators
7951
7952
VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT(
7953
    VkDevice                                    device,
7954
0
    const VkReleaseSwapchainImagesInfoKHR*      pReleaseInfo) {
7955
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7956
0
    if (NULL == disp) {
7957
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7958
0
                   "vkReleaseSwapchainImagesEXT: Invalid device "
7959
0
                   "[VUID-vkReleaseSwapchainImagesEXT-device-parameter]");
7960
0
        abort(); /* Intentionally fail so user can correct issue. */
7961
0
    }
7962
0
    return disp->ReleaseSwapchainImagesEXT(device, pReleaseInfo);
7963
0
}
7964
7965
7966
// ---- VK_NV_device_generated_commands extension trampoline/terminators
7967
7968
VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsNV(
7969
    VkDevice                                    device,
7970
    const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
7971
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
7972
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7973
0
    if (NULL == disp) {
7974
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7975
0
                   "vkGetGeneratedCommandsMemoryRequirementsNV: Invalid device "
7976
0
                   "[VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter]");
7977
0
        abort(); /* Intentionally fail so user can correct issue. */
7978
0
    }
7979
0
    disp->GetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
7980
0
}
7981
7982
VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsNV(
7983
    VkCommandBuffer                             commandBuffer,
7984
0
    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo) {
7985
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7986
0
    if (NULL == disp) {
7987
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7988
0
                   "vkCmdPreprocessGeneratedCommandsNV: Invalid commandBuffer "
7989
0
                   "[VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter]");
7990
0
        abort(); /* Intentionally fail so user can correct issue. */
7991
0
    }
7992
0
    disp->CmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
7993
0
}
7994
7995
VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV(
7996
    VkCommandBuffer                             commandBuffer,
7997
    VkBool32                                    isPreprocessed,
7998
0
    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo) {
7999
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8000
0
    if (NULL == disp) {
8001
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8002
0
                   "vkCmdExecuteGeneratedCommandsNV: Invalid commandBuffer "
8003
0
                   "[VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter]");
8004
0
        abort(); /* Intentionally fail so user can correct issue. */
8005
0
    }
8006
0
    disp->CmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
8007
0
}
8008
8009
VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV(
8010
    VkCommandBuffer                             commandBuffer,
8011
    VkPipelineBindPoint                         pipelineBindPoint,
8012
    VkPipeline                                  pipeline,
8013
0
    uint32_t                                    groupIndex) {
8014
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8015
0
    if (NULL == disp) {
8016
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8017
0
                   "vkCmdBindPipelineShaderGroupNV: Invalid commandBuffer "
8018
0
                   "[VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter]");
8019
0
        abort(); /* Intentionally fail so user can correct issue. */
8020
0
    }
8021
0
    disp->CmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
8022
0
}
8023
8024
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV(
8025
    VkDevice                                    device,
8026
    const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
8027
    const VkAllocationCallbacks*                pAllocator,
8028
0
    VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout) {
8029
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8030
0
    if (NULL == disp) {
8031
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8032
0
                   "vkCreateIndirectCommandsLayoutNV: Invalid device "
8033
0
                   "[VUID-vkCreateIndirectCommandsLayoutNV-device-parameter]");
8034
0
        abort(); /* Intentionally fail so user can correct issue. */
8035
0
    }
8036
0
    return disp->CreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
8037
0
}
8038
8039
VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNV(
8040
    VkDevice                                    device,
8041
    VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
8042
0
    const VkAllocationCallbacks*                pAllocator) {
8043
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8044
0
    if (NULL == disp) {
8045
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8046
0
                   "vkDestroyIndirectCommandsLayoutNV: Invalid device "
8047
0
                   "[VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter]");
8048
0
        abort(); /* Intentionally fail so user can correct issue. */
8049
0
    }
8050
0
    disp->DestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
8051
0
}
8052
8053
8054
// ---- VK_EXT_depth_bias_control extension trampoline/terminators
8055
8056
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias2EXT(
8057
    VkCommandBuffer                             commandBuffer,
8058
0
    const VkDepthBiasInfoEXT*                   pDepthBiasInfo) {
8059
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8060
0
    if (NULL == disp) {
8061
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8062
0
                   "vkCmdSetDepthBias2EXT: Invalid commandBuffer "
8063
0
                   "[VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter]");
8064
0
        abort(); /* Intentionally fail so user can correct issue. */
8065
0
    }
8066
0
    disp->CmdSetDepthBias2EXT(commandBuffer, pDepthBiasInfo);
8067
0
}
8068
8069
8070
// ---- VK_EXT_acquire_drm_display extension trampoline/terminators
8071
8072
VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT(
8073
    VkPhysicalDevice                            physicalDevice,
8074
    int32_t                                     drmFd,
8075
0
    VkDisplayKHR                                display) {
8076
0
    const VkLayerInstanceDispatchTable *disp;
8077
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8078
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8079
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8080
0
                   "vkAcquireDrmDisplayEXT: Invalid physicalDevice "
8081
0
                   "[VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter]");
8082
0
        abort(); /* Intentionally fail so user can correct issue. */
8083
0
    }
8084
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8085
0
    return disp->AcquireDrmDisplayEXT(unwrapped_phys_dev, drmFd, display);
8086
0
}
8087
8088
VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireDrmDisplayEXT(
8089
    VkPhysicalDevice                            physicalDevice,
8090
    int32_t                                     drmFd,
8091
0
    VkDisplayKHR                                display) {
8092
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8093
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8094
0
    if (NULL == icd_term->dispatch.AcquireDrmDisplayEXT) {
8095
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
8096
0
                   "ICD associated with VkPhysicalDevice does not support AcquireDrmDisplayEXT");
8097
0
        return VK_ERROR_EXTENSION_NOT_PRESENT;
8098
0
    }
8099
0
    return icd_term->dispatch.AcquireDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, display);
8100
0
}
8101
8102
VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT(
8103
    VkPhysicalDevice                            physicalDevice,
8104
    int32_t                                     drmFd,
8105
    uint32_t                                    connectorId,
8106
0
    VkDisplayKHR*                               display) {
8107
0
    const VkLayerInstanceDispatchTable *disp;
8108
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8109
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8110
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8111
0
                   "vkGetDrmDisplayEXT: Invalid physicalDevice "
8112
0
                   "[VUID-vkGetDrmDisplayEXT-physicalDevice-parameter]");
8113
0
        abort(); /* Intentionally fail so user can correct issue. */
8114
0
    }
8115
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8116
0
    return disp->GetDrmDisplayEXT(unwrapped_phys_dev, drmFd, connectorId, display);
8117
0
}
8118
8119
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDrmDisplayEXT(
8120
    VkPhysicalDevice                            physicalDevice,
8121
    int32_t                                     drmFd,
8122
    uint32_t                                    connectorId,
8123
0
    VkDisplayKHR*                               display) {
8124
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8125
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8126
0
    if (NULL == icd_term->dispatch.GetDrmDisplayEXT) {
8127
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
8128
0
                   "ICD associated with VkPhysicalDevice does not support GetDrmDisplayEXT");
8129
0
        return VK_ERROR_EXTENSION_NOT_PRESENT;
8130
0
    }
8131
0
    return icd_term->dispatch.GetDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, connectorId, display);
8132
0
}
8133
8134
8135
// ---- VK_EXT_private_data extension trampoline/terminators
8136
8137
VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT(
8138
    VkDevice                                    device,
8139
    const VkPrivateDataSlotCreateInfo*          pCreateInfo,
8140
    const VkAllocationCallbacks*                pAllocator,
8141
0
    VkPrivateDataSlot*                          pPrivateDataSlot) {
8142
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8143
0
    if (NULL == disp) {
8144
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8145
0
                   "vkCreatePrivateDataSlotEXT: Invalid device "
8146
0
                   "[VUID-vkCreatePrivateDataSlotEXT-device-parameter]");
8147
0
        abort(); /* Intentionally fail so user can correct issue. */
8148
0
    }
8149
0
    return disp->CreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot);
8150
0
}
8151
8152
VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlotEXT(
8153
    VkDevice                                    device,
8154
    VkPrivateDataSlot                           privateDataSlot,
8155
0
    const VkAllocationCallbacks*                pAllocator) {
8156
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8157
0
    if (NULL == disp) {
8158
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8159
0
                   "vkDestroyPrivateDataSlotEXT: Invalid device "
8160
0
                   "[VUID-vkDestroyPrivateDataSlotEXT-device-parameter]");
8161
0
        abort(); /* Intentionally fail so user can correct issue. */
8162
0
    }
8163
0
    disp->DestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator);
8164
0
}
8165
8166
VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT(
8167
    VkDevice                                    device,
8168
    VkObjectType                                objectType,
8169
    uint64_t                                    objectHandle,
8170
    VkPrivateDataSlot                           privateDataSlot,
8171
0
    uint64_t                                    data) {
8172
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8173
0
    if (NULL == disp) {
8174
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8175
0
                   "vkSetPrivateDataEXT: Invalid device "
8176
0
                   "[VUID-vkSetPrivateDataEXT-device-parameter]");
8177
0
        abort(); /* Intentionally fail so user can correct issue. */
8178
0
    }
8179
0
    return disp->SetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data);
8180
0
}
8181
8182
VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT(
8183
    VkDevice                                    device,
8184
    VkObjectType                                objectType,
8185
    uint64_t                                    objectHandle,
8186
    VkPrivateDataSlot                           privateDataSlot,
8187
0
    uint64_t*                                   pData) {
8188
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8189
0
    if (NULL == disp) {
8190
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8191
0
                   "vkGetPrivateDataEXT: Invalid device "
8192
0
                   "[VUID-vkGetPrivateDataEXT-device-parameter]");
8193
0
        abort(); /* Intentionally fail so user can correct issue. */
8194
0
    }
8195
0
    disp->GetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData);
8196
0
}
8197
8198
8199
// ---- VK_NV_cuda_kernel_launch extension trampoline/terminators
8200
8201
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8202
VKAPI_ATTR VkResult VKAPI_CALL CreateCudaModuleNV(
8203
    VkDevice                                    device,
8204
    const VkCudaModuleCreateInfoNV*             pCreateInfo,
8205
    const VkAllocationCallbacks*                pAllocator,
8206
0
    VkCudaModuleNV*                             pModule) {
8207
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8208
0
    if (NULL == disp) {
8209
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8210
0
                   "vkCreateCudaModuleNV: Invalid device "
8211
0
                   "[VUID-vkCreateCudaModuleNV-device-parameter]");
8212
0
        abort(); /* Intentionally fail so user can correct issue. */
8213
0
    }
8214
0
    return disp->CreateCudaModuleNV(device, pCreateInfo, pAllocator, pModule);
8215
0
}
8216
8217
#endif // VK_ENABLE_BETA_EXTENSIONS
8218
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8219
VKAPI_ATTR VkResult VKAPI_CALL GetCudaModuleCacheNV(
8220
    VkDevice                                    device,
8221
    VkCudaModuleNV                              module,
8222
    size_t*                                     pCacheSize,
8223
0
    void*                                       pCacheData) {
8224
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8225
0
    if (NULL == disp) {
8226
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8227
0
                   "vkGetCudaModuleCacheNV: Invalid device "
8228
0
                   "[VUID-vkGetCudaModuleCacheNV-device-parameter]");
8229
0
        abort(); /* Intentionally fail so user can correct issue. */
8230
0
    }
8231
0
    return disp->GetCudaModuleCacheNV(device, module, pCacheSize, pCacheData);
8232
0
}
8233
8234
#endif // VK_ENABLE_BETA_EXTENSIONS
8235
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8236
VKAPI_ATTR VkResult VKAPI_CALL CreateCudaFunctionNV(
8237
    VkDevice                                    device,
8238
    const VkCudaFunctionCreateInfoNV*           pCreateInfo,
8239
    const VkAllocationCallbacks*                pAllocator,
8240
0
    VkCudaFunctionNV*                           pFunction) {
8241
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8242
0
    if (NULL == disp) {
8243
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8244
0
                   "vkCreateCudaFunctionNV: Invalid device "
8245
0
                   "[VUID-vkCreateCudaFunctionNV-device-parameter]");
8246
0
        abort(); /* Intentionally fail so user can correct issue. */
8247
0
    }
8248
0
    return disp->CreateCudaFunctionNV(device, pCreateInfo, pAllocator, pFunction);
8249
0
}
8250
8251
#endif // VK_ENABLE_BETA_EXTENSIONS
8252
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8253
VKAPI_ATTR void VKAPI_CALL DestroyCudaModuleNV(
8254
    VkDevice                                    device,
8255
    VkCudaModuleNV                              module,
8256
0
    const VkAllocationCallbacks*                pAllocator) {
8257
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8258
0
    if (NULL == disp) {
8259
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8260
0
                   "vkDestroyCudaModuleNV: Invalid device "
8261
0
                   "[VUID-vkDestroyCudaModuleNV-device-parameter]");
8262
0
        abort(); /* Intentionally fail so user can correct issue. */
8263
0
    }
8264
0
    disp->DestroyCudaModuleNV(device, module, pAllocator);
8265
0
}
8266
8267
#endif // VK_ENABLE_BETA_EXTENSIONS
8268
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8269
VKAPI_ATTR void VKAPI_CALL DestroyCudaFunctionNV(
8270
    VkDevice                                    device,
8271
    VkCudaFunctionNV                            function,
8272
0
    const VkAllocationCallbacks*                pAllocator) {
8273
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8274
0
    if (NULL == disp) {
8275
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8276
0
                   "vkDestroyCudaFunctionNV: Invalid device "
8277
0
                   "[VUID-vkDestroyCudaFunctionNV-device-parameter]");
8278
0
        abort(); /* Intentionally fail so user can correct issue. */
8279
0
    }
8280
0
    disp->DestroyCudaFunctionNV(device, function, pAllocator);
8281
0
}
8282
8283
#endif // VK_ENABLE_BETA_EXTENSIONS
8284
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8285
VKAPI_ATTR void VKAPI_CALL CmdCudaLaunchKernelNV(
8286
    VkCommandBuffer                             commandBuffer,
8287
0
    const VkCudaLaunchInfoNV*                   pLaunchInfo) {
8288
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8289
0
    if (NULL == disp) {
8290
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8291
0
                   "vkCmdCudaLaunchKernelNV: Invalid commandBuffer "
8292
0
                   "[VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameter]");
8293
0
        abort(); /* Intentionally fail so user can correct issue. */
8294
0
    }
8295
0
    disp->CmdCudaLaunchKernelNV(commandBuffer, pLaunchInfo);
8296
0
}
8297
8298
#endif // VK_ENABLE_BETA_EXTENSIONS
8299
8300
// ---- VK_QCOM_tile_shading extension trampoline/terminators
8301
8302
VKAPI_ATTR void VKAPI_CALL CmdDispatchTileQCOM(
8303
    VkCommandBuffer                             commandBuffer,
8304
0
    const VkDispatchTileInfoQCOM*               pDispatchTileInfo) {
8305
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8306
0
    if (NULL == disp) {
8307
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8308
0
                   "vkCmdDispatchTileQCOM: Invalid commandBuffer "
8309
0
                   "[VUID-vkCmdDispatchTileQCOM-commandBuffer-parameter]");
8310
0
        abort(); /* Intentionally fail so user can correct issue. */
8311
0
    }
8312
0
    disp->CmdDispatchTileQCOM(commandBuffer, pDispatchTileInfo);
8313
0
}
8314
8315
VKAPI_ATTR void VKAPI_CALL CmdBeginPerTileExecutionQCOM(
8316
    VkCommandBuffer                             commandBuffer,
8317
0
    const VkPerTileBeginInfoQCOM*               pPerTileBeginInfo) {
8318
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8319
0
    if (NULL == disp) {
8320
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8321
0
                   "vkCmdBeginPerTileExecutionQCOM: Invalid commandBuffer "
8322
0
                   "[VUID-vkCmdBeginPerTileExecutionQCOM-commandBuffer-parameter]");
8323
0
        abort(); /* Intentionally fail so user can correct issue. */
8324
0
    }
8325
0
    disp->CmdBeginPerTileExecutionQCOM(commandBuffer, pPerTileBeginInfo);
8326
0
}
8327
8328
VKAPI_ATTR void VKAPI_CALL CmdEndPerTileExecutionQCOM(
8329
    VkCommandBuffer                             commandBuffer,
8330
0
    const VkPerTileEndInfoQCOM*                 pPerTileEndInfo) {
8331
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8332
0
    if (NULL == disp) {
8333
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8334
0
                   "vkCmdEndPerTileExecutionQCOM: Invalid commandBuffer "
8335
0
                   "[VUID-vkCmdEndPerTileExecutionQCOM-commandBuffer-parameter]");
8336
0
        abort(); /* Intentionally fail so user can correct issue. */
8337
0
    }
8338
0
    disp->CmdEndPerTileExecutionQCOM(commandBuffer, pPerTileEndInfo);
8339
0
}
8340
8341
8342
// ---- VK_EXT_metal_objects extension trampoline/terminators
8343
8344
#if defined(VK_USE_PLATFORM_METAL_EXT)
8345
VKAPI_ATTR void VKAPI_CALL ExportMetalObjectsEXT(
8346
    VkDevice                                    device,
8347
    VkExportMetalObjectsInfoEXT*                pMetalObjectsInfo) {
8348
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8349
    if (NULL == disp) {
8350
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8351
                   "vkExportMetalObjectsEXT: Invalid device "
8352
                   "[VUID-vkExportMetalObjectsEXT-device-parameter]");
8353
        abort(); /* Intentionally fail so user can correct issue. */
8354
    }
8355
    disp->ExportMetalObjectsEXT(device, pMetalObjectsInfo);
8356
}
8357
8358
#endif // VK_USE_PLATFORM_METAL_EXT
8359
8360
// ---- VK_EXT_descriptor_buffer extension trampoline/terminators
8361
8362
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSizeEXT(
8363
    VkDevice                                    device,
8364
    VkDescriptorSetLayout                       layout,
8365
0
    VkDeviceSize*                               pLayoutSizeInBytes) {
8366
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8367
0
    if (NULL == disp) {
8368
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8369
0
                   "vkGetDescriptorSetLayoutSizeEXT: Invalid device "
8370
0
                   "[VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameter]");
8371
0
        abort(); /* Intentionally fail so user can correct issue. */
8372
0
    }
8373
0
    disp->GetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes);
8374
0
}
8375
8376
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutBindingOffsetEXT(
8377
    VkDevice                                    device,
8378
    VkDescriptorSetLayout                       layout,
8379
    uint32_t                                    binding,
8380
0
    VkDeviceSize*                               pOffset) {
8381
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8382
0
    if (NULL == disp) {
8383
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8384
0
                   "vkGetDescriptorSetLayoutBindingOffsetEXT: Invalid device "
8385
0
                   "[VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter]");
8386
0
        abort(); /* Intentionally fail so user can correct issue. */
8387
0
    }
8388
0
    disp->GetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset);
8389
0
}
8390
8391
VKAPI_ATTR void VKAPI_CALL GetDescriptorEXT(
8392
    VkDevice                                    device,
8393
    const VkDescriptorGetInfoEXT*               pDescriptorInfo,
8394
    size_t                                      dataSize,
8395
0
    void*                                       pDescriptor) {
8396
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8397
0
    if (NULL == disp) {
8398
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8399
0
                   "vkGetDescriptorEXT: Invalid device "
8400
0
                   "[VUID-vkGetDescriptorEXT-device-parameter]");
8401
0
        abort(); /* Intentionally fail so user can correct issue. */
8402
0
    }
8403
0
    disp->GetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor);
8404
0
}
8405
8406
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBuffersEXT(
8407
    VkCommandBuffer                             commandBuffer,
8408
    uint32_t                                    bufferCount,
8409
0
    const VkDescriptorBufferBindingInfoEXT*     pBindingInfos) {
8410
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8411
0
    if (NULL == disp) {
8412
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8413
0
                   "vkCmdBindDescriptorBuffersEXT: Invalid commandBuffer "
8414
0
                   "[VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter]");
8415
0
        abort(); /* Intentionally fail so user can correct issue. */
8416
0
    }
8417
0
    disp->CmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos);
8418
0
}
8419
8420
VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsetsEXT(
8421
    VkCommandBuffer                             commandBuffer,
8422
    VkPipelineBindPoint                         pipelineBindPoint,
8423
    VkPipelineLayout                            layout,
8424
    uint32_t                                    firstSet,
8425
    uint32_t                                    setCount,
8426
    const uint32_t*                             pBufferIndices,
8427
0
    const VkDeviceSize*                         pOffsets) {
8428
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8429
0
    if (NULL == disp) {
8430
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8431
0
                   "vkCmdSetDescriptorBufferOffsetsEXT: Invalid commandBuffer "
8432
0
                   "[VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter]");
8433
0
        abort(); /* Intentionally fail so user can correct issue. */
8434
0
    }
8435
0
    disp->CmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets);
8436
0
}
8437
8438
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplersEXT(
8439
    VkCommandBuffer                             commandBuffer,
8440
    VkPipelineBindPoint                         pipelineBindPoint,
8441
    VkPipelineLayout                            layout,
8442
0
    uint32_t                                    set) {
8443
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8444
0
    if (NULL == disp) {
8445
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8446
0
                   "vkCmdBindDescriptorBufferEmbeddedSamplersEXT: Invalid commandBuffer "
8447
0
                   "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameter]");
8448
0
        abort(); /* Intentionally fail so user can correct issue. */
8449
0
    }
8450
0
    disp->CmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set);
8451
0
}
8452
8453
VKAPI_ATTR VkResult VKAPI_CALL GetBufferOpaqueCaptureDescriptorDataEXT(
8454
    VkDevice                                    device,
8455
    const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
8456
0
    void*                                       pData) {
8457
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8458
0
    if (NULL == disp) {
8459
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8460
0
                   "vkGetBufferOpaqueCaptureDescriptorDataEXT: Invalid device "
8461
0
                   "[VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter]");
8462
0
        abort(); /* Intentionally fail so user can correct issue. */
8463
0
    }
8464
0
    return disp->GetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8465
0
}
8466
8467
VKAPI_ATTR VkResult VKAPI_CALL GetImageOpaqueCaptureDescriptorDataEXT(
8468
    VkDevice                                    device,
8469
    const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
8470
0
    void*                                       pData) {
8471
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8472
0
    if (NULL == disp) {
8473
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8474
0
                   "vkGetImageOpaqueCaptureDescriptorDataEXT: Invalid device "
8475
0
                   "[VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter]");
8476
0
        abort(); /* Intentionally fail so user can correct issue. */
8477
0
    }
8478
0
    return disp->GetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8479
0
}
8480
8481
VKAPI_ATTR VkResult VKAPI_CALL GetImageViewOpaqueCaptureDescriptorDataEXT(
8482
    VkDevice                                    device,
8483
    const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
8484
0
    void*                                       pData) {
8485
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8486
0
    if (NULL == disp) {
8487
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8488
0
                   "vkGetImageViewOpaqueCaptureDescriptorDataEXT: Invalid device "
8489
0
                   "[VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter]");
8490
0
        abort(); /* Intentionally fail so user can correct issue. */
8491
0
    }
8492
0
    return disp->GetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8493
0
}
8494
8495
VKAPI_ATTR VkResult VKAPI_CALL GetSamplerOpaqueCaptureDescriptorDataEXT(
8496
    VkDevice                                    device,
8497
    const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
8498
0
    void*                                       pData) {
8499
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8500
0
    if (NULL == disp) {
8501
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8502
0
                   "vkGetSamplerOpaqueCaptureDescriptorDataEXT: Invalid device "
8503
0
                   "[VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameter]");
8504
0
        abort(); /* Intentionally fail so user can correct issue. */
8505
0
    }
8506
0
    return disp->GetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8507
0
}
8508
8509
VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
8510
    VkDevice                                    device,
8511
    const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
8512
0
    void*                                       pData) {
8513
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8514
0
    if (NULL == disp) {
8515
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8516
0
                   "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT: Invalid device "
8517
0
                   "[VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameter]");
8518
0
        abort(); /* Intentionally fail so user can correct issue. */
8519
0
    }
8520
0
    return disp->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8521
0
}
8522
8523
8524
// ---- VK_NV_fragment_shading_rate_enums extension trampoline/terminators
8525
8526
VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV(
8527
    VkCommandBuffer                             commandBuffer,
8528
    VkFragmentShadingRateNV                     shadingRate,
8529
0
    const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]) {
8530
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8531
0
    if (NULL == disp) {
8532
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8533
0
                   "vkCmdSetFragmentShadingRateEnumNV: Invalid commandBuffer "
8534
0
                   "[VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter]");
8535
0
        abort(); /* Intentionally fail so user can correct issue. */
8536
0
    }
8537
0
    disp->CmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps);
8538
0
}
8539
8540
8541
// ---- VK_EXT_device_fault extension trampoline/terminators
8542
8543
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT(
8544
    VkDevice                                    device,
8545
    VkDeviceFaultCountsEXT*                     pFaultCounts,
8546
0
    VkDeviceFaultInfoEXT*                       pFaultInfo) {
8547
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8548
0
    if (NULL == disp) {
8549
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8550
0
                   "vkGetDeviceFaultInfoEXT: Invalid device "
8551
0
                   "[VUID-vkGetDeviceFaultInfoEXT-device-parameter]");
8552
0
        abort(); /* Intentionally fail so user can correct issue. */
8553
0
    }
8554
0
    return disp->GetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo);
8555
0
}
8556
8557
8558
// ---- VK_NV_acquire_winrt_display extension trampoline/terminators
8559
8560
#if defined(VK_USE_PLATFORM_WIN32_KHR)
8561
VKAPI_ATTR VkResult VKAPI_CALL AcquireWinrtDisplayNV(
8562
    VkPhysicalDevice                            physicalDevice,
8563
    VkDisplayKHR                                display) {
8564
    const VkLayerInstanceDispatchTable *disp;
8565
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8566
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8567
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8568
                   "vkAcquireWinrtDisplayNV: Invalid physicalDevice "
8569
                   "[VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter]");
8570
        abort(); /* Intentionally fail so user can correct issue. */
8571
    }
8572
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8573
    return disp->AcquireWinrtDisplayNV(unwrapped_phys_dev, display);
8574
}
8575
8576
VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireWinrtDisplayNV(
8577
    VkPhysicalDevice                            physicalDevice,
8578
    VkDisplayKHR                                display) {
8579
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8580
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8581
    if (NULL == icd_term->dispatch.AcquireWinrtDisplayNV) {
8582
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
8583
                   "ICD associated with VkPhysicalDevice does not support AcquireWinrtDisplayNV");
8584
        abort(); /* Intentionally fail so user can correct issue. */
8585
    }
8586
    return icd_term->dispatch.AcquireWinrtDisplayNV(phys_dev_term->phys_dev, display);
8587
}
8588
8589
#endif // VK_USE_PLATFORM_WIN32_KHR
8590
#if defined(VK_USE_PLATFORM_WIN32_KHR)
8591
VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV(
8592
    VkPhysicalDevice                            physicalDevice,
8593
    uint32_t                                    deviceRelativeId,
8594
    VkDisplayKHR*                               pDisplay) {
8595
    const VkLayerInstanceDispatchTable *disp;
8596
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8597
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8598
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8599
                   "vkGetWinrtDisplayNV: Invalid physicalDevice "
8600
                   "[VUID-vkGetWinrtDisplayNV-physicalDevice-parameter]");
8601
        abort(); /* Intentionally fail so user can correct issue. */
8602
    }
8603
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8604
    return disp->GetWinrtDisplayNV(unwrapped_phys_dev, deviceRelativeId, pDisplay);
8605
}
8606
8607
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetWinrtDisplayNV(
8608
    VkPhysicalDevice                            physicalDevice,
8609
    uint32_t                                    deviceRelativeId,
8610
    VkDisplayKHR*                               pDisplay) {
8611
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8612
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8613
    if (NULL == icd_term->dispatch.GetWinrtDisplayNV) {
8614
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
8615
                   "ICD associated with VkPhysicalDevice does not support GetWinrtDisplayNV");
8616
        abort(); /* Intentionally fail so user can correct issue. */
8617
    }
8618
    return icd_term->dispatch.GetWinrtDisplayNV(phys_dev_term->phys_dev, deviceRelativeId, pDisplay);
8619
}
8620
8621
#endif // VK_USE_PLATFORM_WIN32_KHR
8622
8623
// ---- VK_EXT_vertex_input_dynamic_state extension trampoline/terminators
8624
8625
VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT(
8626
    VkCommandBuffer                             commandBuffer,
8627
    uint32_t                                    vertexBindingDescriptionCount,
8628
    const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
8629
    uint32_t                                    vertexAttributeDescriptionCount,
8630
0
    const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) {
8631
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8632
0
    if (NULL == disp) {
8633
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8634
0
                   "vkCmdSetVertexInputEXT: Invalid commandBuffer "
8635
0
                   "[VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter]");
8636
0
        abort(); /* Intentionally fail so user can correct issue. */
8637
0
    }
8638
0
    disp->CmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
8639
0
}
8640
8641
8642
// ---- VK_FUCHSIA_external_memory extension trampoline/terminators
8643
8644
#if defined(VK_USE_PLATFORM_FUCHSIA)
8645
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA(
8646
    VkDevice                                    device,
8647
    const VkMemoryGetZirconHandleInfoFUCHSIA*   pGetZirconHandleInfo,
8648
    zx_handle_t*                                pZirconHandle) {
8649
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8650
    if (NULL == disp) {
8651
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8652
                   "vkGetMemoryZirconHandleFUCHSIA: Invalid device "
8653
                   "[VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter]");
8654
        abort(); /* Intentionally fail so user can correct issue. */
8655
    }
8656
    return disp->GetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
8657
}
8658
8659
#endif // VK_USE_PLATFORM_FUCHSIA
8660
#if defined(VK_USE_PLATFORM_FUCHSIA)
8661
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA(
8662
    VkDevice                                    device,
8663
    VkExternalMemoryHandleTypeFlagBits          handleType,
8664
    zx_handle_t                                 zirconHandle,
8665
    VkMemoryZirconHandlePropertiesFUCHSIA*      pMemoryZirconHandleProperties) {
8666
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8667
    if (NULL == disp) {
8668
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8669
                   "vkGetMemoryZirconHandlePropertiesFUCHSIA: Invalid device "
8670
                   "[VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter]");
8671
        abort(); /* Intentionally fail so user can correct issue. */
8672
    }
8673
    return disp->GetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties);
8674
}
8675
8676
#endif // VK_USE_PLATFORM_FUCHSIA
8677
8678
// ---- VK_FUCHSIA_external_semaphore extension trampoline/terminators
8679
8680
#if defined(VK_USE_PLATFORM_FUCHSIA)
8681
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreZirconHandleFUCHSIA(
8682
    VkDevice                                    device,
8683
    const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) {
8684
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8685
    if (NULL == disp) {
8686
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8687
                   "vkImportSemaphoreZirconHandleFUCHSIA: Invalid device "
8688
                   "[VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter]");
8689
        abort(); /* Intentionally fail so user can correct issue. */
8690
    }
8691
    return disp->ImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo);
8692
}
8693
8694
#endif // VK_USE_PLATFORM_FUCHSIA
8695
#if defined(VK_USE_PLATFORM_FUCHSIA)
8696
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA(
8697
    VkDevice                                    device,
8698
    const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
8699
    zx_handle_t*                                pZirconHandle) {
8700
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8701
    if (NULL == disp) {
8702
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8703
                   "vkGetSemaphoreZirconHandleFUCHSIA: Invalid device "
8704
                   "[VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter]");
8705
        abort(); /* Intentionally fail so user can correct issue. */
8706
    }
8707
    return disp->GetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
8708
}
8709
8710
#endif // VK_USE_PLATFORM_FUCHSIA
8711
8712
// ---- VK_FUCHSIA_buffer_collection extension trampoline/terminators
8713
8714
#if defined(VK_USE_PLATFORM_FUCHSIA)
8715
VKAPI_ATTR VkResult VKAPI_CALL CreateBufferCollectionFUCHSIA(
8716
    VkDevice                                    device,
8717
    const VkBufferCollectionCreateInfoFUCHSIA*  pCreateInfo,
8718
    const VkAllocationCallbacks*                pAllocator,
8719
    VkBufferCollectionFUCHSIA*                  pCollection) {
8720
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8721
    if (NULL == disp) {
8722
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8723
                   "vkCreateBufferCollectionFUCHSIA: Invalid device "
8724
                   "[VUID-vkCreateBufferCollectionFUCHSIA-device-parameter]");
8725
        abort(); /* Intentionally fail so user can correct issue. */
8726
    }
8727
    return disp->CreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection);
8728
}
8729
8730
#endif // VK_USE_PLATFORM_FUCHSIA
8731
#if defined(VK_USE_PLATFORM_FUCHSIA)
8732
VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionImageConstraintsFUCHSIA(
8733
    VkDevice                                    device,
8734
    VkBufferCollectionFUCHSIA                   collection,
8735
    const VkImageConstraintsInfoFUCHSIA*        pImageConstraintsInfo) {
8736
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8737
    if (NULL == disp) {
8738
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8739
                   "vkSetBufferCollectionImageConstraintsFUCHSIA: Invalid device "
8740
                   "[VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter]");
8741
        abort(); /* Intentionally fail so user can correct issue. */
8742
    }
8743
    return disp->SetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo);
8744
}
8745
8746
#endif // VK_USE_PLATFORM_FUCHSIA
8747
#if defined(VK_USE_PLATFORM_FUCHSIA)
8748
VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionBufferConstraintsFUCHSIA(
8749
    VkDevice                                    device,
8750
    VkBufferCollectionFUCHSIA                   collection,
8751
    const VkBufferConstraintsInfoFUCHSIA*       pBufferConstraintsInfo) {
8752
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8753
    if (NULL == disp) {
8754
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8755
                   "vkSetBufferCollectionBufferConstraintsFUCHSIA: Invalid device "
8756
                   "[VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter]");
8757
        abort(); /* Intentionally fail so user can correct issue. */
8758
    }
8759
    return disp->SetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo);
8760
}
8761
8762
#endif // VK_USE_PLATFORM_FUCHSIA
8763
#if defined(VK_USE_PLATFORM_FUCHSIA)
8764
VKAPI_ATTR void VKAPI_CALL DestroyBufferCollectionFUCHSIA(
8765
    VkDevice                                    device,
8766
    VkBufferCollectionFUCHSIA                   collection,
8767
    const VkAllocationCallbacks*                pAllocator) {
8768
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8769
    if (NULL == disp) {
8770
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8771
                   "vkDestroyBufferCollectionFUCHSIA: Invalid device "
8772
                   "[VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter]");
8773
        abort(); /* Intentionally fail so user can correct issue. */
8774
    }
8775
    disp->DestroyBufferCollectionFUCHSIA(device, collection, pAllocator);
8776
}
8777
8778
#endif // VK_USE_PLATFORM_FUCHSIA
8779
#if defined(VK_USE_PLATFORM_FUCHSIA)
8780
VKAPI_ATTR VkResult VKAPI_CALL GetBufferCollectionPropertiesFUCHSIA(
8781
    VkDevice                                    device,
8782
    VkBufferCollectionFUCHSIA                   collection,
8783
    VkBufferCollectionPropertiesFUCHSIA*        pProperties) {
8784
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8785
    if (NULL == disp) {
8786
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8787
                   "vkGetBufferCollectionPropertiesFUCHSIA: Invalid device "
8788
                   "[VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter]");
8789
        abort(); /* Intentionally fail so user can correct issue. */
8790
    }
8791
    return disp->GetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties);
8792
}
8793
8794
#endif // VK_USE_PLATFORM_FUCHSIA
8795
8796
// ---- VK_HUAWEI_subpass_shading extension trampoline/terminators
8797
8798
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
8799
    VkDevice                                    device,
8800
    VkRenderPass                                renderpass,
8801
0
    VkExtent2D*                                 pMaxWorkgroupSize) {
8802
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8803
0
    if (NULL == disp) {
8804
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8805
0
                   "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: Invalid device "
8806
0
                   "[VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter]");
8807
0
        abort(); /* Intentionally fail so user can correct issue. */
8808
0
    }
8809
0
    return disp->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
8810
0
}
8811
8812
VKAPI_ATTR void VKAPI_CALL CmdSubpassShadingHUAWEI(
8813
0
    VkCommandBuffer                             commandBuffer) {
8814
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8815
0
    if (NULL == disp) {
8816
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8817
0
                   "vkCmdSubpassShadingHUAWEI: Invalid commandBuffer "
8818
0
                   "[VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter]");
8819
0
        abort(); /* Intentionally fail so user can correct issue. */
8820
0
    }
8821
0
    disp->CmdSubpassShadingHUAWEI(commandBuffer);
8822
0
}
8823
8824
8825
// ---- VK_HUAWEI_invocation_mask extension trampoline/terminators
8826
8827
VKAPI_ATTR void VKAPI_CALL CmdBindInvocationMaskHUAWEI(
8828
    VkCommandBuffer                             commandBuffer,
8829
    VkImageView                                 imageView,
8830
0
    VkImageLayout                               imageLayout) {
8831
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8832
0
    if (NULL == disp) {
8833
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8834
0
                   "vkCmdBindInvocationMaskHUAWEI: Invalid commandBuffer "
8835
0
                   "[VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter]");
8836
0
        abort(); /* Intentionally fail so user can correct issue. */
8837
0
    }
8838
0
    disp->CmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout);
8839
0
}
8840
8841
8842
// ---- VK_NV_external_memory_rdma extension trampoline/terminators
8843
8844
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV(
8845
    VkDevice                                    device,
8846
    const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
8847
0
    VkRemoteAddressNV*                          pAddress) {
8848
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8849
0
    if (NULL == disp) {
8850
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8851
0
                   "vkGetMemoryRemoteAddressNV: Invalid device "
8852
0
                   "[VUID-vkGetMemoryRemoteAddressNV-device-parameter]");
8853
0
        abort(); /* Intentionally fail so user can correct issue. */
8854
0
    }
8855
0
    return disp->GetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress);
8856
0
}
8857
8858
8859
// ---- VK_EXT_pipeline_properties extension trampoline/terminators
8860
8861
VKAPI_ATTR VkResult VKAPI_CALL GetPipelinePropertiesEXT(
8862
    VkDevice                                    device,
8863
    const VkPipelineInfoEXT*                    pPipelineInfo,
8864
0
    VkBaseOutStructure*                         pPipelineProperties) {
8865
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8866
0
    if (NULL == disp) {
8867
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8868
0
                   "vkGetPipelinePropertiesEXT: Invalid device "
8869
0
                   "[VUID-vkGetPipelinePropertiesEXT-device-parameter]");
8870
0
        abort(); /* Intentionally fail so user can correct issue. */
8871
0
    }
8872
0
    return disp->GetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties);
8873
0
}
8874
8875
8876
// ---- VK_EXT_extended_dynamic_state2 extension trampoline/terminators
8877
8878
VKAPI_ATTR void VKAPI_CALL CmdSetPatchControlPointsEXT(
8879
    VkCommandBuffer                             commandBuffer,
8880
0
    uint32_t                                    patchControlPoints) {
8881
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8882
0
    if (NULL == disp) {
8883
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8884
0
                   "vkCmdSetPatchControlPointsEXT: Invalid commandBuffer "
8885
0
                   "[VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter]");
8886
0
        abort(); /* Intentionally fail so user can correct issue. */
8887
0
    }
8888
0
    disp->CmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
8889
0
}
8890
8891
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnableEXT(
8892
    VkCommandBuffer                             commandBuffer,
8893
0
    VkBool32                                    rasterizerDiscardEnable) {
8894
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8895
0
    if (NULL == disp) {
8896
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8897
0
                   "vkCmdSetRasterizerDiscardEnableEXT: Invalid commandBuffer "
8898
0
                   "[VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter]");
8899
0
        abort(); /* Intentionally fail so user can correct issue. */
8900
0
    }
8901
0
    disp->CmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable);
8902
0
}
8903
8904
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnableEXT(
8905
    VkCommandBuffer                             commandBuffer,
8906
0
    VkBool32                                    depthBiasEnable) {
8907
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8908
0
    if (NULL == disp) {
8909
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8910
0
                   "vkCmdSetDepthBiasEnableEXT: Invalid commandBuffer "
8911
0
                   "[VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter]");
8912
0
        abort(); /* Intentionally fail so user can correct issue. */
8913
0
    }
8914
0
    disp->CmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable);
8915
0
}
8916
8917
VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEXT(
8918
    VkCommandBuffer                             commandBuffer,
8919
0
    VkLogicOp                                   logicOp) {
8920
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8921
0
    if (NULL == disp) {
8922
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8923
0
                   "vkCmdSetLogicOpEXT: Invalid commandBuffer "
8924
0
                   "[VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter]");
8925
0
        abort(); /* Intentionally fail so user can correct issue. */
8926
0
    }
8927
0
    disp->CmdSetLogicOpEXT(commandBuffer, logicOp);
8928
0
}
8929
8930
VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnableEXT(
8931
    VkCommandBuffer                             commandBuffer,
8932
0
    VkBool32                                    primitiveRestartEnable) {
8933
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8934
0
    if (NULL == disp) {
8935
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8936
0
                   "vkCmdSetPrimitiveRestartEnableEXT: Invalid commandBuffer "
8937
0
                   "[VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter]");
8938
0
        abort(); /* Intentionally fail so user can correct issue. */
8939
0
    }
8940
0
    disp->CmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable);
8941
0
}
8942
8943
8944
// ---- VK_EXT_color_write_enable extension trampoline/terminators
8945
8946
VKAPI_ATTR void                                    VKAPI_CALL CmdSetColorWriteEnableEXT(
8947
    VkCommandBuffer                             commandBuffer,
8948
    uint32_t                                    attachmentCount,
8949
0
    const VkBool32*                             pColorWriteEnables) {
8950
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8951
0
    if (NULL == disp) {
8952
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8953
0
                   "vkCmdSetColorWriteEnableEXT: Invalid commandBuffer "
8954
0
                   "[VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter]");
8955
0
        abort(); /* Intentionally fail so user can correct issue. */
8956
0
    }
8957
0
    disp->CmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
8958
0
}
8959
8960
8961
// ---- VK_EXT_multi_draw extension trampoline/terminators
8962
8963
VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT(
8964
    VkCommandBuffer                             commandBuffer,
8965
    uint32_t                                    drawCount,
8966
    const VkMultiDrawInfoEXT*                   pVertexInfo,
8967
    uint32_t                                    instanceCount,
8968
    uint32_t                                    firstInstance,
8969
0
    uint32_t                                    stride) {
8970
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8971
0
    if (NULL == disp) {
8972
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8973
0
                   "vkCmdDrawMultiEXT: Invalid commandBuffer "
8974
0
                   "[VUID-vkCmdDrawMultiEXT-commandBuffer-parameter]");
8975
0
        abort(); /* Intentionally fail so user can correct issue. */
8976
0
    }
8977
0
    disp->CmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride);
8978
0
}
8979
8980
VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT(
8981
    VkCommandBuffer                             commandBuffer,
8982
    uint32_t                                    drawCount,
8983
    const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
8984
    uint32_t                                    instanceCount,
8985
    uint32_t                                    firstInstance,
8986
    uint32_t                                    stride,
8987
0
    const int32_t*                              pVertexOffset) {
8988
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8989
0
    if (NULL == disp) {
8990
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8991
0
                   "vkCmdDrawMultiIndexedEXT: Invalid commandBuffer "
8992
0
                   "[VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter]");
8993
0
        abort(); /* Intentionally fail so user can correct issue. */
8994
0
    }
8995
0
    disp->CmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset);
8996
0
}
8997
8998
8999
// ---- VK_EXT_opacity_micromap extension trampoline/terminators
9000
9001
VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT(
9002
    VkDevice                                    device,
9003
    const VkMicromapCreateInfoEXT*              pCreateInfo,
9004
    const VkAllocationCallbacks*                pAllocator,
9005
0
    VkMicromapEXT*                              pMicromap) {
9006
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9007
0
    if (NULL == disp) {
9008
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9009
0
                   "vkCreateMicromapEXT: Invalid device "
9010
0
                   "[VUID-vkCreateMicromapEXT-device-parameter]");
9011
0
        abort(); /* Intentionally fail so user can correct issue. */
9012
0
    }
9013
0
    return disp->CreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap);
9014
0
}
9015
9016
VKAPI_ATTR void VKAPI_CALL DestroyMicromapEXT(
9017
    VkDevice                                    device,
9018
    VkMicromapEXT                               micromap,
9019
0
    const VkAllocationCallbacks*                pAllocator) {
9020
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9021
0
    if (NULL == disp) {
9022
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9023
0
                   "vkDestroyMicromapEXT: Invalid device "
9024
0
                   "[VUID-vkDestroyMicromapEXT-device-parameter]");
9025
0
        abort(); /* Intentionally fail so user can correct issue. */
9026
0
    }
9027
0
    disp->DestroyMicromapEXT(device, micromap, pAllocator);
9028
0
}
9029
9030
VKAPI_ATTR void VKAPI_CALL CmdBuildMicromapsEXT(
9031
    VkCommandBuffer                             commandBuffer,
9032
    uint32_t                                    infoCount,
9033
0
    const VkMicromapBuildInfoEXT*               pInfos) {
9034
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9035
0
    if (NULL == disp) {
9036
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9037
0
                   "vkCmdBuildMicromapsEXT: Invalid commandBuffer "
9038
0
                   "[VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter]");
9039
0
        abort(); /* Intentionally fail so user can correct issue. */
9040
0
    }
9041
0
    disp->CmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos);
9042
0
}
9043
9044
VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT(
9045
    VkDevice                                    device,
9046
    VkDeferredOperationKHR                      deferredOperation,
9047
    uint32_t                                    infoCount,
9048
0
    const VkMicromapBuildInfoEXT*               pInfos) {
9049
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9050
0
    if (NULL == disp) {
9051
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9052
0
                   "vkBuildMicromapsEXT: Invalid device "
9053
0
                   "[VUID-vkBuildMicromapsEXT-device-parameter]");
9054
0
        abort(); /* Intentionally fail so user can correct issue. */
9055
0
    }
9056
0
    return disp->BuildMicromapsEXT(device, deferredOperation, infoCount, pInfos);
9057
0
}
9058
9059
VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapEXT(
9060
    VkDevice                                    device,
9061
    VkDeferredOperationKHR                      deferredOperation,
9062
0
    const VkCopyMicromapInfoEXT*                pInfo) {
9063
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9064
0
    if (NULL == disp) {
9065
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9066
0
                   "vkCopyMicromapEXT: Invalid device "
9067
0
                   "[VUID-vkCopyMicromapEXT-device-parameter]");
9068
0
        abort(); /* Intentionally fail so user can correct issue. */
9069
0
    }
9070
0
    return disp->CopyMicromapEXT(device, deferredOperation, pInfo);
9071
0
}
9072
9073
VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapToMemoryEXT(
9074
    VkDevice                                    device,
9075
    VkDeferredOperationKHR                      deferredOperation,
9076
0
    const VkCopyMicromapToMemoryInfoEXT*        pInfo) {
9077
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9078
0
    if (NULL == disp) {
9079
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9080
0
                   "vkCopyMicromapToMemoryEXT: Invalid device "
9081
0
                   "[VUID-vkCopyMicromapToMemoryEXT-device-parameter]");
9082
0
        abort(); /* Intentionally fail so user can correct issue. */
9083
0
    }
9084
0
    return disp->CopyMicromapToMemoryEXT(device, deferredOperation, pInfo);
9085
0
}
9086
9087
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToMicromapEXT(
9088
    VkDevice                                    device,
9089
    VkDeferredOperationKHR                      deferredOperation,
9090
0
    const VkCopyMemoryToMicromapInfoEXT*        pInfo) {
9091
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9092
0
    if (NULL == disp) {
9093
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9094
0
                   "vkCopyMemoryToMicromapEXT: Invalid device "
9095
0
                   "[VUID-vkCopyMemoryToMicromapEXT-device-parameter]");
9096
0
        abort(); /* Intentionally fail so user can correct issue. */
9097
0
    }
9098
0
    return disp->CopyMemoryToMicromapEXT(device, deferredOperation, pInfo);
9099
0
}
9100
9101
VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT(
9102
    VkDevice                                    device,
9103
    uint32_t                                    micromapCount,
9104
    const VkMicromapEXT*                        pMicromaps,
9105
    VkQueryType                                 queryType,
9106
    size_t                                      dataSize,
9107
    void*                                       pData,
9108
0
    size_t                                      stride) {
9109
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9110
0
    if (NULL == disp) {
9111
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9112
0
                   "vkWriteMicromapsPropertiesEXT: Invalid device "
9113
0
                   "[VUID-vkWriteMicromapsPropertiesEXT-device-parameter]");
9114
0
        abort(); /* Intentionally fail so user can correct issue. */
9115
0
    }
9116
0
    return disp->WriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride);
9117
0
}
9118
9119
VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapEXT(
9120
    VkCommandBuffer                             commandBuffer,
9121
0
    const VkCopyMicromapInfoEXT*                pInfo) {
9122
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9123
0
    if (NULL == disp) {
9124
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9125
0
                   "vkCmdCopyMicromapEXT: Invalid commandBuffer "
9126
0
                   "[VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter]");
9127
0
        abort(); /* Intentionally fail so user can correct issue. */
9128
0
    }
9129
0
    disp->CmdCopyMicromapEXT(commandBuffer, pInfo);
9130
0
}
9131
9132
VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapToMemoryEXT(
9133
    VkCommandBuffer                             commandBuffer,
9134
0
    const VkCopyMicromapToMemoryInfoEXT*        pInfo) {
9135
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9136
0
    if (NULL == disp) {
9137
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9138
0
                   "vkCmdCopyMicromapToMemoryEXT: Invalid commandBuffer "
9139
0
                   "[VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter]");
9140
0
        abort(); /* Intentionally fail so user can correct issue. */
9141
0
    }
9142
0
    disp->CmdCopyMicromapToMemoryEXT(commandBuffer, pInfo);
9143
0
}
9144
9145
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToMicromapEXT(
9146
    VkCommandBuffer                             commandBuffer,
9147
0
    const VkCopyMemoryToMicromapInfoEXT*        pInfo) {
9148
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9149
0
    if (NULL == disp) {
9150
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9151
0
                   "vkCmdCopyMemoryToMicromapEXT: Invalid commandBuffer "
9152
0
                   "[VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter]");
9153
0
        abort(); /* Intentionally fail so user can correct issue. */
9154
0
    }
9155
0
    disp->CmdCopyMemoryToMicromapEXT(commandBuffer, pInfo);
9156
0
}
9157
9158
VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT(
9159
    VkCommandBuffer                             commandBuffer,
9160
    uint32_t                                    micromapCount,
9161
    const VkMicromapEXT*                        pMicromaps,
9162
    VkQueryType                                 queryType,
9163
    VkQueryPool                                 queryPool,
9164
0
    uint32_t                                    firstQuery) {
9165
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9166
0
    if (NULL == disp) {
9167
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9168
0
                   "vkCmdWriteMicromapsPropertiesEXT: Invalid commandBuffer "
9169
0
                   "[VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter]");
9170
0
        abort(); /* Intentionally fail so user can correct issue. */
9171
0
    }
9172
0
    disp->CmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery);
9173
0
}
9174
9175
VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT(
9176
    VkDevice                                    device,
9177
    const VkMicromapVersionInfoEXT*             pVersionInfo,
9178
0
    VkAccelerationStructureCompatibilityKHR*    pCompatibility) {
9179
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9180
0
    if (NULL == disp) {
9181
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9182
0
                   "vkGetDeviceMicromapCompatibilityEXT: Invalid device "
9183
0
                   "[VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter]");
9184
0
        abort(); /* Intentionally fail so user can correct issue. */
9185
0
    }
9186
0
    disp->GetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility);
9187
0
}
9188
9189
VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT(
9190
    VkDevice                                    device,
9191
    VkAccelerationStructureBuildTypeKHR         buildType,
9192
    const VkMicromapBuildInfoEXT*               pBuildInfo,
9193
0
    VkMicromapBuildSizesInfoEXT*                pSizeInfo) {
9194
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9195
0
    if (NULL == disp) {
9196
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9197
0
                   "vkGetMicromapBuildSizesEXT: Invalid device "
9198
0
                   "[VUID-vkGetMicromapBuildSizesEXT-device-parameter]");
9199
0
        abort(); /* Intentionally fail so user can correct issue. */
9200
0
    }
9201
0
    disp->GetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo);
9202
0
}
9203
9204
9205
// ---- VK_HUAWEI_cluster_culling_shader extension trampoline/terminators
9206
9207
VKAPI_ATTR void VKAPI_CALL CmdDrawClusterHUAWEI(
9208
    VkCommandBuffer                             commandBuffer,
9209
    uint32_t                                    groupCountX,
9210
    uint32_t                                    groupCountY,
9211
0
    uint32_t                                    groupCountZ) {
9212
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9213
0
    if (NULL == disp) {
9214
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9215
0
                   "vkCmdDrawClusterHUAWEI: Invalid commandBuffer "
9216
0
                   "[VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter]");
9217
0
        abort(); /* Intentionally fail so user can correct issue. */
9218
0
    }
9219
0
    disp->CmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ);
9220
0
}
9221
9222
VKAPI_ATTR void VKAPI_CALL CmdDrawClusterIndirectHUAWEI(
9223
    VkCommandBuffer                             commandBuffer,
9224
    VkBuffer                                    buffer,
9225
0
    VkDeviceSize                                offset) {
9226
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9227
0
    if (NULL == disp) {
9228
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9229
0
                   "vkCmdDrawClusterIndirectHUAWEI: Invalid commandBuffer "
9230
0
                   "[VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter]");
9231
0
        abort(); /* Intentionally fail so user can correct issue. */
9232
0
    }
9233
0
    disp->CmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset);
9234
0
}
9235
9236
9237
// ---- VK_EXT_pageable_device_local_memory extension trampoline/terminators
9238
9239
VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT(
9240
    VkDevice                                    device,
9241
    VkDeviceMemory                              memory,
9242
0
    float                                       priority) {
9243
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9244
0
    if (NULL == disp) {
9245
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9246
0
                   "vkSetDeviceMemoryPriorityEXT: Invalid device "
9247
0
                   "[VUID-vkSetDeviceMemoryPriorityEXT-device-parameter]");
9248
0
        abort(); /* Intentionally fail so user can correct issue. */
9249
0
    }
9250
0
    disp->SetDeviceMemoryPriorityEXT(device, memory, priority);
9251
0
}
9252
9253
9254
// ---- VK_VALVE_descriptor_set_host_mapping extension trampoline/terminators
9255
9256
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE(
9257
    VkDevice                                    device,
9258
    const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
9259
0
    VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping) {
9260
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9261
0
    if (NULL == disp) {
9262
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9263
0
                   "vkGetDescriptorSetLayoutHostMappingInfoVALVE: Invalid device "
9264
0
                   "[VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter]");
9265
0
        abort(); /* Intentionally fail so user can correct issue. */
9266
0
    }
9267
0
    disp->GetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping);
9268
0
}
9269
9270
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE(
9271
    VkDevice                                    device,
9272
    VkDescriptorSet                             descriptorSet,
9273
0
    void**                                      ppData) {
9274
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9275
0
    if (NULL == disp) {
9276
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9277
0
                   "vkGetDescriptorSetHostMappingVALVE: Invalid device "
9278
0
                   "[VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter]");
9279
0
        abort(); /* Intentionally fail so user can correct issue. */
9280
0
    }
9281
0
    disp->GetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData);
9282
0
}
9283
9284
9285
// ---- VK_NV_copy_memory_indirect extension trampoline/terminators
9286
9287
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectNV(
9288
    VkCommandBuffer                             commandBuffer,
9289
    VkDeviceAddress                             copyBufferAddress,
9290
    uint32_t                                    copyCount,
9291
0
    uint32_t                                    stride) {
9292
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9293
0
    if (NULL == disp) {
9294
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9295
0
                   "vkCmdCopyMemoryIndirectNV: Invalid commandBuffer "
9296
0
                   "[VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameter]");
9297
0
        abort(); /* Intentionally fail so user can correct issue. */
9298
0
    }
9299
0
    disp->CmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride);
9300
0
}
9301
9302
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectNV(
9303
    VkCommandBuffer                             commandBuffer,
9304
    VkDeviceAddress                             copyBufferAddress,
9305
    uint32_t                                    copyCount,
9306
    uint32_t                                    stride,
9307
    VkImage                                     dstImage,
9308
    VkImageLayout                               dstImageLayout,
9309
0
    const VkImageSubresourceLayers*             pImageSubresources) {
9310
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9311
0
    if (NULL == disp) {
9312
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9313
0
                   "vkCmdCopyMemoryToImageIndirectNV: Invalid commandBuffer "
9314
0
                   "[VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameter]");
9315
0
        abort(); /* Intentionally fail so user can correct issue. */
9316
0
    }
9317
0
    disp->CmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources);
9318
0
}
9319
9320
9321
// ---- VK_NV_memory_decompression extension trampoline/terminators
9322
9323
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryNV(
9324
    VkCommandBuffer                             commandBuffer,
9325
    uint32_t                                    decompressRegionCount,
9326
0
    const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions) {
9327
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9328
0
    if (NULL == disp) {
9329
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9330
0
                   "vkCmdDecompressMemoryNV: Invalid commandBuffer "
9331
0
                   "[VUID-vkCmdDecompressMemoryNV-commandBuffer-parameter]");
9332
0
        abort(); /* Intentionally fail so user can correct issue. */
9333
0
    }
9334
0
    disp->CmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions);
9335
0
}
9336
9337
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountNV(
9338
    VkCommandBuffer                             commandBuffer,
9339
    VkDeviceAddress                             indirectCommandsAddress,
9340
    VkDeviceAddress                             indirectCommandsCountAddress,
9341
0
    uint32_t                                    stride) {
9342
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9343
0
    if (NULL == disp) {
9344
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9345
0
                   "vkCmdDecompressMemoryIndirectCountNV: Invalid commandBuffer "
9346
0
                   "[VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameter]");
9347
0
        abort(); /* Intentionally fail so user can correct issue. */
9348
0
    }
9349
0
    disp->CmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride);
9350
0
}
9351
9352
9353
// ---- VK_NV_device_generated_commands_compute extension trampoline/terminators
9354
9355
VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV(
9356
    VkDevice                                    device,
9357
    const VkComputePipelineCreateInfo*          pCreateInfo,
9358
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
9359
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9360
0
    if (NULL == disp) {
9361
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9362
0
                   "vkGetPipelineIndirectMemoryRequirementsNV: Invalid device "
9363
0
                   "[VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter]");
9364
0
        abort(); /* Intentionally fail so user can correct issue. */
9365
0
    }
9366
0
    disp->GetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
9367
0
}
9368
9369
VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBufferNV(
9370
    VkCommandBuffer                             commandBuffer,
9371
    VkPipelineBindPoint                         pipelineBindPoint,
9372
0
    VkPipeline                                  pipeline) {
9373
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9374
0
    if (NULL == disp) {
9375
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9376
0
                   "vkCmdUpdatePipelineIndirectBufferNV: Invalid commandBuffer "
9377
0
                   "[VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter]");
9378
0
        abort(); /* Intentionally fail so user can correct issue. */
9379
0
    }
9380
0
    disp->CmdUpdatePipelineIndirectBufferNV(commandBuffer, pipelineBindPoint, pipeline);
9381
0
}
9382
9383
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV(
9384
    VkDevice                                    device,
9385
0
    const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {
9386
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9387
0
    if (NULL == disp) {
9388
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9389
0
                   "vkGetPipelineIndirectDeviceAddressNV: Invalid device "
9390
0
                   "[VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter]");
9391
0
        abort(); /* Intentionally fail so user can correct issue. */
9392
0
    }
9393
0
    return disp->GetPipelineIndirectDeviceAddressNV(device, pInfo);
9394
0
}
9395
9396
9397
// ---- VK_OHOS_external_memory extension trampoline/terminators
9398
9399
#if defined(VK_USE_PLATFORM_OHOS)
9400
VKAPI_ATTR VkResult VKAPI_CALL GetNativeBufferPropertiesOHOS(
9401
    VkDevice                                    device,
9402
    const struct OH_NativeBuffer*               buffer,
9403
    VkNativeBufferPropertiesOHOS*               pProperties) {
9404
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9405
    if (NULL == disp) {
9406
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9407
                   "vkGetNativeBufferPropertiesOHOS: Invalid device "
9408
                   "[VUID-vkGetNativeBufferPropertiesOHOS-device-parameter]");
9409
        abort(); /* Intentionally fail so user can correct issue. */
9410
    }
9411
    return disp->GetNativeBufferPropertiesOHOS(device, buffer, pProperties);
9412
}
9413
9414
#endif // VK_USE_PLATFORM_OHOS
9415
#if defined(VK_USE_PLATFORM_OHOS)
9416
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryNativeBufferOHOS(
9417
    VkDevice                                    device,
9418
    const VkMemoryGetNativeBufferInfoOHOS*      pInfo,
9419
    struct OH_NativeBuffer**                    pBuffer) {
9420
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9421
    if (NULL == disp) {
9422
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9423
                   "vkGetMemoryNativeBufferOHOS: Invalid device "
9424
                   "[VUID-vkGetMemoryNativeBufferOHOS-device-parameter]");
9425
        abort(); /* Intentionally fail so user can correct issue. */
9426
    }
9427
    return disp->GetMemoryNativeBufferOHOS(device, pInfo, pBuffer);
9428
}
9429
9430
#endif // VK_USE_PLATFORM_OHOS
9431
9432
// ---- VK_EXT_extended_dynamic_state3 extension trampoline/terminators
9433
9434
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampEnableEXT(
9435
    VkCommandBuffer                             commandBuffer,
9436
0
    VkBool32                                    depthClampEnable) {
9437
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9438
0
    if (NULL == disp) {
9439
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9440
0
                   "vkCmdSetDepthClampEnableEXT: Invalid commandBuffer "
9441
0
                   "[VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter]");
9442
0
        abort(); /* Intentionally fail so user can correct issue. */
9443
0
    }
9444
0
    disp->CmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable);
9445
0
}
9446
9447
VKAPI_ATTR void VKAPI_CALL CmdSetPolygonModeEXT(
9448
    VkCommandBuffer                             commandBuffer,
9449
0
    VkPolygonMode                               polygonMode) {
9450
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9451
0
    if (NULL == disp) {
9452
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9453
0
                   "vkCmdSetPolygonModeEXT: Invalid commandBuffer "
9454
0
                   "[VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter]");
9455
0
        abort(); /* Intentionally fail so user can correct issue. */
9456
0
    }
9457
0
    disp->CmdSetPolygonModeEXT(commandBuffer, polygonMode);
9458
0
}
9459
9460
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationSamplesEXT(
9461
    VkCommandBuffer                             commandBuffer,
9462
0
    VkSampleCountFlagBits                       rasterizationSamples) {
9463
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9464
0
    if (NULL == disp) {
9465
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9466
0
                   "vkCmdSetRasterizationSamplesEXT: Invalid commandBuffer "
9467
0
                   "[VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter]");
9468
0
        abort(); /* Intentionally fail so user can correct issue. */
9469
0
    }
9470
0
    disp->CmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples);
9471
0
}
9472
9473
VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT(
9474
    VkCommandBuffer                             commandBuffer,
9475
    VkSampleCountFlagBits                       samples,
9476
0
    const VkSampleMask*                         pSampleMask) {
9477
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9478
0
    if (NULL == disp) {
9479
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9480
0
                   "vkCmdSetSampleMaskEXT: Invalid commandBuffer "
9481
0
                   "[VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter]");
9482
0
        abort(); /* Intentionally fail so user can correct issue. */
9483
0
    }
9484
0
    disp->CmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask);
9485
0
}
9486
9487
VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToCoverageEnableEXT(
9488
    VkCommandBuffer                             commandBuffer,
9489
0
    VkBool32                                    alphaToCoverageEnable) {
9490
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9491
0
    if (NULL == disp) {
9492
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9493
0
                   "vkCmdSetAlphaToCoverageEnableEXT: Invalid commandBuffer "
9494
0
                   "[VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter]");
9495
0
        abort(); /* Intentionally fail so user can correct issue. */
9496
0
    }
9497
0
    disp->CmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable);
9498
0
}
9499
9500
VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToOneEnableEXT(
9501
    VkCommandBuffer                             commandBuffer,
9502
0
    VkBool32                                    alphaToOneEnable) {
9503
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9504
0
    if (NULL == disp) {
9505
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9506
0
                   "vkCmdSetAlphaToOneEnableEXT: Invalid commandBuffer "
9507
0
                   "[VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter]");
9508
0
        abort(); /* Intentionally fail so user can correct issue. */
9509
0
    }
9510
0
    disp->CmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable);
9511
0
}
9512
9513
VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEnableEXT(
9514
    VkCommandBuffer                             commandBuffer,
9515
0
    VkBool32                                    logicOpEnable) {
9516
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9517
0
    if (NULL == disp) {
9518
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9519
0
                   "vkCmdSetLogicOpEnableEXT: Invalid commandBuffer "
9520
0
                   "[VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter]");
9521
0
        abort(); /* Intentionally fail so user can correct issue. */
9522
0
    }
9523
0
    disp->CmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable);
9524
0
}
9525
9526
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT(
9527
    VkCommandBuffer                             commandBuffer,
9528
    uint32_t                                    firstAttachment,
9529
    uint32_t                                    attachmentCount,
9530
0
    const VkBool32*                             pColorBlendEnables) {
9531
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9532
0
    if (NULL == disp) {
9533
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9534
0
                   "vkCmdSetColorBlendEnableEXT: Invalid commandBuffer "
9535
0
                   "[VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter]");
9536
0
        abort(); /* Intentionally fail so user can correct issue. */
9537
0
    }
9538
0
    disp->CmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables);
9539
0
}
9540
9541
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT(
9542
    VkCommandBuffer                             commandBuffer,
9543
    uint32_t                                    firstAttachment,
9544
    uint32_t                                    attachmentCount,
9545
0
    const VkColorBlendEquationEXT*              pColorBlendEquations) {
9546
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9547
0
    if (NULL == disp) {
9548
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9549
0
                   "vkCmdSetColorBlendEquationEXT: Invalid commandBuffer "
9550
0
                   "[VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter]");
9551
0
        abort(); /* Intentionally fail so user can correct issue. */
9552
0
    }
9553
0
    disp->CmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations);
9554
0
}
9555
9556
VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT(
9557
    VkCommandBuffer                             commandBuffer,
9558
    uint32_t                                    firstAttachment,
9559
    uint32_t                                    attachmentCount,
9560
0
    const VkColorComponentFlags*                pColorWriteMasks) {
9561
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9562
0
    if (NULL == disp) {
9563
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9564
0
                   "vkCmdSetColorWriteMaskEXT: Invalid commandBuffer "
9565
0
                   "[VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter]");
9566
0
        abort(); /* Intentionally fail so user can correct issue. */
9567
0
    }
9568
0
    disp->CmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks);
9569
0
}
9570
9571
VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT(
9572
    VkCommandBuffer                             commandBuffer,
9573
0
    VkTessellationDomainOrigin                  domainOrigin) {
9574
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9575
0
    if (NULL == disp) {
9576
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9577
0
                   "vkCmdSetTessellationDomainOriginEXT: Invalid commandBuffer "
9578
0
                   "[VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter]");
9579
0
        abort(); /* Intentionally fail so user can correct issue. */
9580
0
    }
9581
0
    disp->CmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin);
9582
0
}
9583
9584
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationStreamEXT(
9585
    VkCommandBuffer                             commandBuffer,
9586
0
    uint32_t                                    rasterizationStream) {
9587
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9588
0
    if (NULL == disp) {
9589
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9590
0
                   "vkCmdSetRasterizationStreamEXT: Invalid commandBuffer "
9591
0
                   "[VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter]");
9592
0
        abort(); /* Intentionally fail so user can correct issue. */
9593
0
    }
9594
0
    disp->CmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream);
9595
0
}
9596
9597
VKAPI_ATTR void VKAPI_CALL CmdSetConservativeRasterizationModeEXT(
9598
    VkCommandBuffer                             commandBuffer,
9599
0
    VkConservativeRasterizationModeEXT          conservativeRasterizationMode) {
9600
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9601
0
    if (NULL == disp) {
9602
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9603
0
                   "vkCmdSetConservativeRasterizationModeEXT: Invalid commandBuffer "
9604
0
                   "[VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter]");
9605
0
        abort(); /* Intentionally fail so user can correct issue. */
9606
0
    }
9607
0
    disp->CmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode);
9608
0
}
9609
9610
VKAPI_ATTR void VKAPI_CALL CmdSetExtraPrimitiveOverestimationSizeEXT(
9611
    VkCommandBuffer                             commandBuffer,
9612
0
    float                                       extraPrimitiveOverestimationSize) {
9613
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9614
0
    if (NULL == disp) {
9615
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9616
0
                   "vkCmdSetExtraPrimitiveOverestimationSizeEXT: Invalid commandBuffer "
9617
0
                   "[VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter]");
9618
0
        abort(); /* Intentionally fail so user can correct issue. */
9619
0
    }
9620
0
    disp->CmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize);
9621
0
}
9622
9623
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipEnableEXT(
9624
    VkCommandBuffer                             commandBuffer,
9625
0
    VkBool32                                    depthClipEnable) {
9626
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9627
0
    if (NULL == disp) {
9628
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9629
0
                   "vkCmdSetDepthClipEnableEXT: Invalid commandBuffer "
9630
0
                   "[VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter]");
9631
0
        abort(); /* Intentionally fail so user can correct issue. */
9632
0
    }
9633
0
    disp->CmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable);
9634
0
}
9635
9636
VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEnableEXT(
9637
    VkCommandBuffer                             commandBuffer,
9638
0
    VkBool32                                    sampleLocationsEnable) {
9639
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9640
0
    if (NULL == disp) {
9641
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9642
0
                   "vkCmdSetSampleLocationsEnableEXT: Invalid commandBuffer "
9643
0
                   "[VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter]");
9644
0
        abort(); /* Intentionally fail so user can correct issue. */
9645
0
    }
9646
0
    disp->CmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable);
9647
0
}
9648
9649
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT(
9650
    VkCommandBuffer                             commandBuffer,
9651
    uint32_t                                    firstAttachment,
9652
    uint32_t                                    attachmentCount,
9653
0
    const VkColorBlendAdvancedEXT*              pColorBlendAdvanced) {
9654
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9655
0
    if (NULL == disp) {
9656
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9657
0
                   "vkCmdSetColorBlendAdvancedEXT: Invalid commandBuffer "
9658
0
                   "[VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter]");
9659
0
        abort(); /* Intentionally fail so user can correct issue. */
9660
0
    }
9661
0
    disp->CmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced);
9662
0
}
9663
9664
VKAPI_ATTR void VKAPI_CALL CmdSetProvokingVertexModeEXT(
9665
    VkCommandBuffer                             commandBuffer,
9666
0
    VkProvokingVertexModeEXT                    provokingVertexMode) {
9667
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9668
0
    if (NULL == disp) {
9669
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9670
0
                   "vkCmdSetProvokingVertexModeEXT: Invalid commandBuffer "
9671
0
                   "[VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter]");
9672
0
        abort(); /* Intentionally fail so user can correct issue. */
9673
0
    }
9674
0
    disp->CmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode);
9675
0
}
9676
9677
VKAPI_ATTR void VKAPI_CALL CmdSetLineRasterizationModeEXT(
9678
    VkCommandBuffer                             commandBuffer,
9679
0
    VkLineRasterizationModeEXT                  lineRasterizationMode) {
9680
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9681
0
    if (NULL == disp) {
9682
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9683
0
                   "vkCmdSetLineRasterizationModeEXT: Invalid commandBuffer "
9684
0
                   "[VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter]");
9685
0
        abort(); /* Intentionally fail so user can correct issue. */
9686
0
    }
9687
0
    disp->CmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode);
9688
0
}
9689
9690
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEnableEXT(
9691
    VkCommandBuffer                             commandBuffer,
9692
0
    VkBool32                                    stippledLineEnable) {
9693
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9694
0
    if (NULL == disp) {
9695
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9696
0
                   "vkCmdSetLineStippleEnableEXT: Invalid commandBuffer "
9697
0
                   "[VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter]");
9698
0
        abort(); /* Intentionally fail so user can correct issue. */
9699
0
    }
9700
0
    disp->CmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable);
9701
0
}
9702
9703
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipNegativeOneToOneEXT(
9704
    VkCommandBuffer                             commandBuffer,
9705
0
    VkBool32                                    negativeOneToOne) {
9706
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9707
0
    if (NULL == disp) {
9708
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9709
0
                   "vkCmdSetDepthClipNegativeOneToOneEXT: Invalid commandBuffer "
9710
0
                   "[VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter]");
9711
0
        abort(); /* Intentionally fail so user can correct issue. */
9712
0
    }
9713
0
    disp->CmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne);
9714
0
}
9715
9716
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingEnableNV(
9717
    VkCommandBuffer                             commandBuffer,
9718
0
    VkBool32                                    viewportWScalingEnable) {
9719
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9720
0
    if (NULL == disp) {
9721
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9722
0
                   "vkCmdSetViewportWScalingEnableNV: Invalid commandBuffer "
9723
0
                   "[VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter]");
9724
0
        abort(); /* Intentionally fail so user can correct issue. */
9725
0
    }
9726
0
    disp->CmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable);
9727
0
}
9728
9729
VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV(
9730
    VkCommandBuffer                             commandBuffer,
9731
    uint32_t                                    firstViewport,
9732
    uint32_t                                    viewportCount,
9733
0
    const VkViewportSwizzleNV*                  pViewportSwizzles) {
9734
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9735
0
    if (NULL == disp) {
9736
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9737
0
                   "vkCmdSetViewportSwizzleNV: Invalid commandBuffer "
9738
0
                   "[VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter]");
9739
0
        abort(); /* Intentionally fail so user can correct issue. */
9740
0
    }
9741
0
    disp->CmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles);
9742
0
}
9743
9744
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorEnableNV(
9745
    VkCommandBuffer                             commandBuffer,
9746
0
    VkBool32                                    coverageToColorEnable) {
9747
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9748
0
    if (NULL == disp) {
9749
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9750
0
                   "vkCmdSetCoverageToColorEnableNV: Invalid commandBuffer "
9751
0
                   "[VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter]");
9752
0
        abort(); /* Intentionally fail so user can correct issue. */
9753
0
    }
9754
0
    disp->CmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable);
9755
0
}
9756
9757
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorLocationNV(
9758
    VkCommandBuffer                             commandBuffer,
9759
0
    uint32_t                                    coverageToColorLocation) {
9760
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9761
0
    if (NULL == disp) {
9762
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9763
0
                   "vkCmdSetCoverageToColorLocationNV: Invalid commandBuffer "
9764
0
                   "[VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter]");
9765
0
        abort(); /* Intentionally fail so user can correct issue. */
9766
0
    }
9767
0
    disp->CmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation);
9768
0
}
9769
9770
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationModeNV(
9771
    VkCommandBuffer                             commandBuffer,
9772
0
    VkCoverageModulationModeNV                  coverageModulationMode) {
9773
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9774
0
    if (NULL == disp) {
9775
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9776
0
                   "vkCmdSetCoverageModulationModeNV: Invalid commandBuffer "
9777
0
                   "[VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter]");
9778
0
        abort(); /* Intentionally fail so user can correct issue. */
9779
0
    }
9780
0
    disp->CmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode);
9781
0
}
9782
9783
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableEnableNV(
9784
    VkCommandBuffer                             commandBuffer,
9785
0
    VkBool32                                    coverageModulationTableEnable) {
9786
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9787
0
    if (NULL == disp) {
9788
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9789
0
                   "vkCmdSetCoverageModulationTableEnableNV: Invalid commandBuffer "
9790
0
                   "[VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter]");
9791
0
        abort(); /* Intentionally fail so user can correct issue. */
9792
0
    }
9793
0
    disp->CmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable);
9794
0
}
9795
9796
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV(
9797
    VkCommandBuffer                             commandBuffer,
9798
    uint32_t                                    coverageModulationTableCount,
9799
0
    const float*                                pCoverageModulationTable) {
9800
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9801
0
    if (NULL == disp) {
9802
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9803
0
                   "vkCmdSetCoverageModulationTableNV: Invalid commandBuffer "
9804
0
                   "[VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter]");
9805
0
        abort(); /* Intentionally fail so user can correct issue. */
9806
0
    }
9807
0
    disp->CmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable);
9808
0
}
9809
9810
VKAPI_ATTR void VKAPI_CALL CmdSetShadingRateImageEnableNV(
9811
    VkCommandBuffer                             commandBuffer,
9812
0
    VkBool32                                    shadingRateImageEnable) {
9813
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9814
0
    if (NULL == disp) {
9815
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9816
0
                   "vkCmdSetShadingRateImageEnableNV: Invalid commandBuffer "
9817
0
                   "[VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter]");
9818
0
        abort(); /* Intentionally fail so user can correct issue. */
9819
0
    }
9820
0
    disp->CmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable);
9821
0
}
9822
9823
VKAPI_ATTR void VKAPI_CALL CmdSetRepresentativeFragmentTestEnableNV(
9824
    VkCommandBuffer                             commandBuffer,
9825
0
    VkBool32                                    representativeFragmentTestEnable) {
9826
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9827
0
    if (NULL == disp) {
9828
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9829
0
                   "vkCmdSetRepresentativeFragmentTestEnableNV: Invalid commandBuffer "
9830
0
                   "[VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter]");
9831
0
        abort(); /* Intentionally fail so user can correct issue. */
9832
0
    }
9833
0
    disp->CmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable);
9834
0
}
9835
9836
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV(
9837
    VkCommandBuffer                             commandBuffer,
9838
0
    VkCoverageReductionModeNV                   coverageReductionMode) {
9839
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9840
0
    if (NULL == disp) {
9841
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9842
0
                   "vkCmdSetCoverageReductionModeNV: Invalid commandBuffer "
9843
0
                   "[VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter]");
9844
0
        abort(); /* Intentionally fail so user can correct issue. */
9845
0
    }
9846
0
    disp->CmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode);
9847
0
}
9848
9849
9850
// ---- VK_ARM_tensors extension trampoline/terminators
9851
9852
VKAPI_ATTR VkResult VKAPI_CALL CreateTensorARM(
9853
    VkDevice                                    device,
9854
    const VkTensorCreateInfoARM*                pCreateInfo,
9855
    const VkAllocationCallbacks*                pAllocator,
9856
0
    VkTensorARM*                                pTensor) {
9857
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9858
0
    if (NULL == disp) {
9859
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9860
0
                   "vkCreateTensorARM: Invalid device "
9861
0
                   "[VUID-vkCreateTensorARM-device-parameter]");
9862
0
        abort(); /* Intentionally fail so user can correct issue. */
9863
0
    }
9864
0
    return disp->CreateTensorARM(device, pCreateInfo, pAllocator, pTensor);
9865
0
}
9866
9867
VKAPI_ATTR void VKAPI_CALL DestroyTensorARM(
9868
    VkDevice                                    device,
9869
    VkTensorARM                                 tensor,
9870
0
    const VkAllocationCallbacks*                pAllocator) {
9871
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9872
0
    if (NULL == disp) {
9873
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9874
0
                   "vkDestroyTensorARM: Invalid device "
9875
0
                   "[VUID-vkDestroyTensorARM-device-parameter]");
9876
0
        abort(); /* Intentionally fail so user can correct issue. */
9877
0
    }
9878
0
    disp->DestroyTensorARM(device, tensor, pAllocator);
9879
0
}
9880
9881
VKAPI_ATTR VkResult VKAPI_CALL CreateTensorViewARM(
9882
    VkDevice                                    device,
9883
    const VkTensorViewCreateInfoARM*            pCreateInfo,
9884
    const VkAllocationCallbacks*                pAllocator,
9885
0
    VkTensorViewARM*                            pView) {
9886
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9887
0
    if (NULL == disp) {
9888
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9889
0
                   "vkCreateTensorViewARM: Invalid device "
9890
0
                   "[VUID-vkCreateTensorViewARM-device-parameter]");
9891
0
        abort(); /* Intentionally fail so user can correct issue. */
9892
0
    }
9893
0
    return disp->CreateTensorViewARM(device, pCreateInfo, pAllocator, pView);
9894
0
}
9895
9896
VKAPI_ATTR void VKAPI_CALL DestroyTensorViewARM(
9897
    VkDevice                                    device,
9898
    VkTensorViewARM                             tensorView,
9899
0
    const VkAllocationCallbacks*                pAllocator) {
9900
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9901
0
    if (NULL == disp) {
9902
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9903
0
                   "vkDestroyTensorViewARM: Invalid device "
9904
0
                   "[VUID-vkDestroyTensorViewARM-device-parameter]");
9905
0
        abort(); /* Intentionally fail so user can correct issue. */
9906
0
    }
9907
0
    disp->DestroyTensorViewARM(device, tensorView, pAllocator);
9908
0
}
9909
9910
VKAPI_ATTR void VKAPI_CALL GetTensorMemoryRequirementsARM(
9911
    VkDevice                                    device,
9912
    const VkTensorMemoryRequirementsInfoARM*    pInfo,
9913
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
9914
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9915
0
    if (NULL == disp) {
9916
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9917
0
                   "vkGetTensorMemoryRequirementsARM: Invalid device "
9918
0
                   "[VUID-vkGetTensorMemoryRequirementsARM-device-parameter]");
9919
0
        abort(); /* Intentionally fail so user can correct issue. */
9920
0
    }
9921
0
    disp->GetTensorMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
9922
0
}
9923
9924
VKAPI_ATTR VkResult VKAPI_CALL BindTensorMemoryARM(
9925
    VkDevice                                    device,
9926
    uint32_t                                    bindInfoCount,
9927
0
    const VkBindTensorMemoryInfoARM*            pBindInfos) {
9928
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9929
0
    if (NULL == disp) {
9930
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9931
0
                   "vkBindTensorMemoryARM: Invalid device "
9932
0
                   "[VUID-vkBindTensorMemoryARM-device-parameter]");
9933
0
        abort(); /* Intentionally fail so user can correct issue. */
9934
0
    }
9935
0
    return disp->BindTensorMemoryARM(device, bindInfoCount, pBindInfos);
9936
0
}
9937
9938
VKAPI_ATTR void VKAPI_CALL GetDeviceTensorMemoryRequirementsARM(
9939
    VkDevice                                    device,
9940
    const VkDeviceTensorMemoryRequirementsARM*  pInfo,
9941
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
9942
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9943
0
    if (NULL == disp) {
9944
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9945
0
                   "vkGetDeviceTensorMemoryRequirementsARM: Invalid device "
9946
0
                   "[VUID-vkGetDeviceTensorMemoryRequirementsARM-device-parameter]");
9947
0
        abort(); /* Intentionally fail so user can correct issue. */
9948
0
    }
9949
0
    disp->GetDeviceTensorMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
9950
0
}
9951
9952
VKAPI_ATTR void VKAPI_CALL CmdCopyTensorARM(
9953
    VkCommandBuffer                             commandBuffer,
9954
0
    const VkCopyTensorInfoARM*                  pCopyTensorInfo) {
9955
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9956
0
    if (NULL == disp) {
9957
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9958
0
                   "vkCmdCopyTensorARM: Invalid commandBuffer "
9959
0
                   "[VUID-vkCmdCopyTensorARM-commandBuffer-parameter]");
9960
0
        abort(); /* Intentionally fail so user can correct issue. */
9961
0
    }
9962
0
    disp->CmdCopyTensorARM(commandBuffer, pCopyTensorInfo);
9963
0
}
9964
9965
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalTensorPropertiesARM(
9966
    VkPhysicalDevice                            physicalDevice,
9967
    const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
9968
0
    VkExternalTensorPropertiesARM*              pExternalTensorProperties) {
9969
0
    const VkLayerInstanceDispatchTable *disp;
9970
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
9971
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
9972
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9973
0
                   "vkGetPhysicalDeviceExternalTensorPropertiesARM: Invalid physicalDevice "
9974
0
                   "[VUID-vkGetPhysicalDeviceExternalTensorPropertiesARM-physicalDevice-parameter]");
9975
0
        abort(); /* Intentionally fail so user can correct issue. */
9976
0
    }
9977
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
9978
0
    disp->GetPhysicalDeviceExternalTensorPropertiesARM(unwrapped_phys_dev, pExternalTensorInfo, pExternalTensorProperties);
9979
0
}
9980
9981
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalTensorPropertiesARM(
9982
    VkPhysicalDevice                            physicalDevice,
9983
    const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
9984
0
    VkExternalTensorPropertiesARM*              pExternalTensorProperties) {
9985
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
9986
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
9987
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceExternalTensorPropertiesARM) {
9988
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
9989
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceExternalTensorPropertiesARM");
9990
0
        abort(); /* Intentionally fail so user can correct issue. */
9991
0
    }
9992
0
    icd_term->dispatch.GetPhysicalDeviceExternalTensorPropertiesARM(phys_dev_term->phys_dev, pExternalTensorInfo, pExternalTensorProperties);
9993
0
}
9994
9995
VKAPI_ATTR VkResult VKAPI_CALL GetTensorOpaqueCaptureDescriptorDataARM(
9996
    VkDevice                                    device,
9997
    const VkTensorCaptureDescriptorDataInfoARM* pInfo,
9998
0
    void*                                       pData) {
9999
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10000
0
    if (NULL == disp) {
10001
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10002
0
                   "vkGetTensorOpaqueCaptureDescriptorDataARM: Invalid device "
10003
0
                   "[VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-device-parameter]");
10004
0
        abort(); /* Intentionally fail so user can correct issue. */
10005
0
    }
10006
0
    return disp->GetTensorOpaqueCaptureDescriptorDataARM(device, pInfo, pData);
10007
0
}
10008
10009
VKAPI_ATTR VkResult VKAPI_CALL GetTensorViewOpaqueCaptureDescriptorDataARM(
10010
    VkDevice                                    device,
10011
    const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
10012
0
    void*                                       pData) {
10013
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10014
0
    if (NULL == disp) {
10015
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10016
0
                   "vkGetTensorViewOpaqueCaptureDescriptorDataARM: Invalid device "
10017
0
                   "[VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-device-parameter]");
10018
0
        abort(); /* Intentionally fail so user can correct issue. */
10019
0
    }
10020
0
    return disp->GetTensorViewOpaqueCaptureDescriptorDataARM(device, pInfo, pData);
10021
0
}
10022
10023
10024
// ---- VK_EXT_shader_module_identifier extension trampoline/terminators
10025
10026
VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT(
10027
    VkDevice                                    device,
10028
    VkShaderModule                              shaderModule,
10029
0
    VkShaderModuleIdentifierEXT*                pIdentifier) {
10030
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10031
0
    if (NULL == disp) {
10032
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10033
0
                   "vkGetShaderModuleIdentifierEXT: Invalid device "
10034
0
                   "[VUID-vkGetShaderModuleIdentifierEXT-device-parameter]");
10035
0
        abort(); /* Intentionally fail so user can correct issue. */
10036
0
    }
10037
0
    disp->GetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier);
10038
0
}
10039
10040
VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT(
10041
    VkDevice                                    device,
10042
    const VkShaderModuleCreateInfo*             pCreateInfo,
10043
0
    VkShaderModuleIdentifierEXT*                pIdentifier) {
10044
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10045
0
    if (NULL == disp) {
10046
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10047
0
                   "vkGetShaderModuleCreateInfoIdentifierEXT: Invalid device "
10048
0
                   "[VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter]");
10049
0
        abort(); /* Intentionally fail so user can correct issue. */
10050
0
    }
10051
0
    disp->GetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier);
10052
0
}
10053
10054
10055
// ---- VK_NV_optical_flow extension trampoline/terminators
10056
10057
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV(
10058
    VkPhysicalDevice                            physicalDevice,
10059
    const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
10060
    uint32_t*                                   pFormatCount,
10061
0
    VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties) {
10062
0
    const VkLayerInstanceDispatchTable *disp;
10063
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10064
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10065
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10066
0
                   "vkGetPhysicalDeviceOpticalFlowImageFormatsNV: Invalid physicalDevice "
10067
0
                   "[VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter]");
10068
0
        abort(); /* Intentionally fail so user can correct issue. */
10069
0
    }
10070
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10071
0
    return disp->GetPhysicalDeviceOpticalFlowImageFormatsNV(unwrapped_phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
10072
0
}
10073
10074
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(
10075
    VkPhysicalDevice                            physicalDevice,
10076
    const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
10077
    uint32_t*                                   pFormatCount,
10078
0
    VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties) {
10079
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10080
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10081
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV) {
10082
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10083
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceOpticalFlowImageFormatsNV");
10084
0
        abort(); /* Intentionally fail so user can correct issue. */
10085
0
    }
10086
0
    return icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV(phys_dev_term->phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
10087
0
}
10088
10089
VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV(
10090
    VkDevice                                    device,
10091
    const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
10092
    const VkAllocationCallbacks*                pAllocator,
10093
0
    VkOpticalFlowSessionNV*                     pSession) {
10094
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10095
0
    if (NULL == disp) {
10096
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10097
0
                   "vkCreateOpticalFlowSessionNV: Invalid device "
10098
0
                   "[VUID-vkCreateOpticalFlowSessionNV-device-parameter]");
10099
0
        abort(); /* Intentionally fail so user can correct issue. */
10100
0
    }
10101
0
    return disp->CreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession);
10102
0
}
10103
10104
VKAPI_ATTR void VKAPI_CALL DestroyOpticalFlowSessionNV(
10105
    VkDevice                                    device,
10106
    VkOpticalFlowSessionNV                      session,
10107
0
    const VkAllocationCallbacks*                pAllocator) {
10108
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10109
0
    if (NULL == disp) {
10110
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10111
0
                   "vkDestroyOpticalFlowSessionNV: Invalid device "
10112
0
                   "[VUID-vkDestroyOpticalFlowSessionNV-device-parameter]");
10113
0
        abort(); /* Intentionally fail so user can correct issue. */
10114
0
    }
10115
0
    disp->DestroyOpticalFlowSessionNV(device, session, pAllocator);
10116
0
}
10117
10118
VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV(
10119
    VkDevice                                    device,
10120
    VkOpticalFlowSessionNV                      session,
10121
    VkOpticalFlowSessionBindingPointNV          bindingPoint,
10122
    VkImageView                                 view,
10123
0
    VkImageLayout                               layout) {
10124
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10125
0
    if (NULL == disp) {
10126
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10127
0
                   "vkBindOpticalFlowSessionImageNV: Invalid device "
10128
0
                   "[VUID-vkBindOpticalFlowSessionImageNV-device-parameter]");
10129
0
        abort(); /* Intentionally fail so user can correct issue. */
10130
0
    }
10131
0
    return disp->BindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout);
10132
0
}
10133
10134
VKAPI_ATTR void VKAPI_CALL CmdOpticalFlowExecuteNV(
10135
    VkCommandBuffer                             commandBuffer,
10136
    VkOpticalFlowSessionNV                      session,
10137
0
    const VkOpticalFlowExecuteInfoNV*           pExecuteInfo) {
10138
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10139
0
    if (NULL == disp) {
10140
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10141
0
                   "vkCmdOpticalFlowExecuteNV: Invalid commandBuffer "
10142
0
                   "[VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter]");
10143
0
        abort(); /* Intentionally fail so user can correct issue. */
10144
0
    }
10145
0
    disp->CmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo);
10146
0
}
10147
10148
10149
// ---- VK_AMD_anti_lag extension trampoline/terminators
10150
10151
VKAPI_ATTR void VKAPI_CALL AntiLagUpdateAMD(
10152
    VkDevice                                    device,
10153
0
    const VkAntiLagDataAMD*                     pData) {
10154
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10155
0
    if (NULL == disp) {
10156
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10157
0
                   "vkAntiLagUpdateAMD: Invalid device "
10158
0
                   "[VUID-vkAntiLagUpdateAMD-device-parameter]");
10159
0
        abort(); /* Intentionally fail so user can correct issue. */
10160
0
    }
10161
0
    disp->AntiLagUpdateAMD(device, pData);
10162
0
}
10163
10164
10165
// ---- VK_EXT_shader_object extension trampoline/terminators
10166
10167
VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT(
10168
    VkDevice                                    device,
10169
    uint32_t                                    createInfoCount,
10170
    const VkShaderCreateInfoEXT*                pCreateInfos,
10171
    const VkAllocationCallbacks*                pAllocator,
10172
0
    VkShaderEXT*                                pShaders) {
10173
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10174
0
    if (NULL == disp) {
10175
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10176
0
                   "vkCreateShadersEXT: Invalid device "
10177
0
                   "[VUID-vkCreateShadersEXT-device-parameter]");
10178
0
        abort(); /* Intentionally fail so user can correct issue. */
10179
0
    }
10180
0
    return disp->CreateShadersEXT(device, createInfoCount, pCreateInfos, pAllocator, pShaders);
10181
0
}
10182
10183
VKAPI_ATTR void VKAPI_CALL DestroyShaderEXT(
10184
    VkDevice                                    device,
10185
    VkShaderEXT                                 shader,
10186
0
    const VkAllocationCallbacks*                pAllocator) {
10187
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10188
0
    if (NULL == disp) {
10189
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10190
0
                   "vkDestroyShaderEXT: Invalid device "
10191
0
                   "[VUID-vkDestroyShaderEXT-device-parameter]");
10192
0
        abort(); /* Intentionally fail so user can correct issue. */
10193
0
    }
10194
0
    disp->DestroyShaderEXT(device, shader, pAllocator);
10195
0
}
10196
10197
VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT(
10198
    VkDevice                                    device,
10199
    VkShaderEXT                                 shader,
10200
    size_t*                                     pDataSize,
10201
0
    void*                                       pData) {
10202
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10203
0
    if (NULL == disp) {
10204
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10205
0
                   "vkGetShaderBinaryDataEXT: Invalid device "
10206
0
                   "[VUID-vkGetShaderBinaryDataEXT-device-parameter]");
10207
0
        abort(); /* Intentionally fail so user can correct issue. */
10208
0
    }
10209
0
    return disp->GetShaderBinaryDataEXT(device, shader, pDataSize, pData);
10210
0
}
10211
10212
VKAPI_ATTR void VKAPI_CALL CmdBindShadersEXT(
10213
    VkCommandBuffer                             commandBuffer,
10214
    uint32_t                                    stageCount,
10215
    const VkShaderStageFlagBits*                pStages,
10216
0
    const VkShaderEXT*                          pShaders) {
10217
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10218
0
    if (NULL == disp) {
10219
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10220
0
                   "vkCmdBindShadersEXT: Invalid commandBuffer "
10221
0
                   "[VUID-vkCmdBindShadersEXT-commandBuffer-parameter]");
10222
0
        abort(); /* Intentionally fail so user can correct issue. */
10223
0
    }
10224
0
    disp->CmdBindShadersEXT(commandBuffer, stageCount, pStages, pShaders);
10225
0
}
10226
10227
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampRangeEXT(
10228
    VkCommandBuffer                             commandBuffer,
10229
    VkDepthClampModeEXT                         depthClampMode,
10230
0
    const VkDepthClampRangeEXT*                 pDepthClampRange) {
10231
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10232
0
    if (NULL == disp) {
10233
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10234
0
                   "vkCmdSetDepthClampRangeEXT: Invalid commandBuffer "
10235
0
                   "[VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameter]");
10236
0
        abort(); /* Intentionally fail so user can correct issue. */
10237
0
    }
10238
0
    disp->CmdSetDepthClampRangeEXT(commandBuffer, depthClampMode, pDepthClampRange);
10239
0
}
10240
10241
10242
// ---- VK_QCOM_tile_properties extension trampoline/terminators
10243
10244
VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM(
10245
    VkDevice                                    device,
10246
    VkFramebuffer                               framebuffer,
10247
    uint32_t*                                   pPropertiesCount,
10248
0
    VkTilePropertiesQCOM*                       pProperties) {
10249
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10250
0
    if (NULL == disp) {
10251
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10252
0
                   "vkGetFramebufferTilePropertiesQCOM: Invalid device "
10253
0
                   "[VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter]");
10254
0
        abort(); /* Intentionally fail so user can correct issue. */
10255
0
    }
10256
0
    return disp->GetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties);
10257
0
}
10258
10259
VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(
10260
    VkDevice                                    device,
10261
    const VkRenderingInfo*                      pRenderingInfo,
10262
0
    VkTilePropertiesQCOM*                       pProperties) {
10263
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10264
0
    if (NULL == disp) {
10265
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10266
0
                   "vkGetDynamicRenderingTilePropertiesQCOM: Invalid device "
10267
0
                   "[VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter]");
10268
0
        abort(); /* Intentionally fail so user can correct issue. */
10269
0
    }
10270
0
    return disp->GetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties);
10271
0
}
10272
10273
10274
// ---- VK_NV_cooperative_vector extension trampoline/terminators
10275
10276
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeVectorPropertiesNV(
10277
    VkPhysicalDevice                            physicalDevice,
10278
    uint32_t*                                   pPropertyCount,
10279
0
    VkCooperativeVectorPropertiesNV*            pProperties) {
10280
0
    const VkLayerInstanceDispatchTable *disp;
10281
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10282
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10283
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10284
0
                   "vkGetPhysicalDeviceCooperativeVectorPropertiesNV: Invalid physicalDevice "
10285
0
                   "[VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-physicalDevice-parameter]");
10286
0
        abort(); /* Intentionally fail so user can correct issue. */
10287
0
    }
10288
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10289
0
    return disp->GetPhysicalDeviceCooperativeVectorPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
10290
0
}
10291
10292
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV(
10293
    VkPhysicalDevice                            physicalDevice,
10294
    uint32_t*                                   pPropertyCount,
10295
0
    VkCooperativeVectorPropertiesNV*            pProperties) {
10296
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10297
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10298
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV) {
10299
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10300
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeVectorPropertiesNV");
10301
0
        abort(); /* Intentionally fail so user can correct issue. */
10302
0
    }
10303
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
10304
0
}
10305
10306
VKAPI_ATTR VkResult VKAPI_CALL ConvertCooperativeVectorMatrixNV(
10307
    VkDevice                                    device,
10308
0
    const VkConvertCooperativeVectorMatrixInfoNV* pInfo) {
10309
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10310
0
    if (NULL == disp) {
10311
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10312
0
                   "vkConvertCooperativeVectorMatrixNV: Invalid device "
10313
0
                   "[VUID-vkConvertCooperativeVectorMatrixNV-device-parameter]");
10314
0
        abort(); /* Intentionally fail so user can correct issue. */
10315
0
    }
10316
0
    return disp->ConvertCooperativeVectorMatrixNV(device, pInfo);
10317
0
}
10318
10319
VKAPI_ATTR void VKAPI_CALL CmdConvertCooperativeVectorMatrixNV(
10320
    VkCommandBuffer                             commandBuffer,
10321
    uint32_t                                    infoCount,
10322
0
    const VkConvertCooperativeVectorMatrixInfoNV* pInfos) {
10323
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10324
0
    if (NULL == disp) {
10325
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10326
0
                   "vkCmdConvertCooperativeVectorMatrixNV: Invalid commandBuffer "
10327
0
                   "[VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-parameter]");
10328
0
        abort(); /* Intentionally fail so user can correct issue. */
10329
0
    }
10330
0
    disp->CmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos);
10331
0
}
10332
10333
10334
// ---- VK_NV_low_latency2 extension trampoline/terminators
10335
10336
VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(
10337
    VkDevice                                    device,
10338
    VkSwapchainKHR                              swapchain,
10339
0
    const VkLatencySleepModeInfoNV*             pSleepModeInfo) {
10340
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10341
0
    if (NULL == disp) {
10342
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10343
0
                   "vkSetLatencySleepModeNV: Invalid device "
10344
0
                   "[VUID-vkSetLatencySleepModeNV-device-parameter]");
10345
0
        abort(); /* Intentionally fail so user can correct issue. */
10346
0
    }
10347
0
    return disp->SetLatencySleepModeNV(device, swapchain, pSleepModeInfo);
10348
0
}
10349
10350
VKAPI_ATTR VkResult VKAPI_CALL LatencySleepNV(
10351
    VkDevice                                    device,
10352
    VkSwapchainKHR                              swapchain,
10353
0
    const VkLatencySleepInfoNV*                 pSleepInfo) {
10354
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10355
0
    if (NULL == disp) {
10356
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10357
0
                   "vkLatencySleepNV: Invalid device "
10358
0
                   "[VUID-vkLatencySleepNV-device-parameter]");
10359
0
        abort(); /* Intentionally fail so user can correct issue. */
10360
0
    }
10361
0
    return disp->LatencySleepNV(device, swapchain, pSleepInfo);
10362
0
}
10363
10364
VKAPI_ATTR void VKAPI_CALL SetLatencyMarkerNV(
10365
    VkDevice                                    device,
10366
    VkSwapchainKHR                              swapchain,
10367
0
    const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo) {
10368
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10369
0
    if (NULL == disp) {
10370
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10371
0
                   "vkSetLatencyMarkerNV: Invalid device "
10372
0
                   "[VUID-vkSetLatencyMarkerNV-device-parameter]");
10373
0
        abort(); /* Intentionally fail so user can correct issue. */
10374
0
    }
10375
0
    disp->SetLatencyMarkerNV(device, swapchain, pLatencyMarkerInfo);
10376
0
}
10377
10378
VKAPI_ATTR void VKAPI_CALL GetLatencyTimingsNV(
10379
    VkDevice                                    device,
10380
    VkSwapchainKHR                              swapchain,
10381
0
    VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo) {
10382
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10383
0
    if (NULL == disp) {
10384
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10385
0
                   "vkGetLatencyTimingsNV: Invalid device "
10386
0
                   "[VUID-vkGetLatencyTimingsNV-device-parameter]");
10387
0
        abort(); /* Intentionally fail so user can correct issue. */
10388
0
    }
10389
0
    disp->GetLatencyTimingsNV(device, swapchain, pLatencyMarkerInfo);
10390
0
}
10391
10392
VKAPI_ATTR void VKAPI_CALL QueueNotifyOutOfBandNV(
10393
    VkQueue                                     queue,
10394
0
    const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo) {
10395
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
10396
0
    if (NULL == disp) {
10397
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10398
0
                   "vkQueueNotifyOutOfBandNV: Invalid queue "
10399
0
                   "[VUID-vkQueueNotifyOutOfBandNV-queue-parameter]");
10400
0
        abort(); /* Intentionally fail so user can correct issue. */
10401
0
    }
10402
0
    disp->QueueNotifyOutOfBandNV(queue, pQueueTypeInfo);
10403
0
}
10404
10405
10406
// ---- VK_ARM_data_graph extension trampoline/terminators
10407
10408
VKAPI_ATTR VkResult VKAPI_CALL CreateDataGraphPipelinesARM(
10409
    VkDevice                                    device,
10410
    VkDeferredOperationKHR                      deferredOperation,
10411
    VkPipelineCache                             pipelineCache,
10412
    uint32_t                                    createInfoCount,
10413
    const VkDataGraphPipelineCreateInfoARM*     pCreateInfos,
10414
    const VkAllocationCallbacks*                pAllocator,
10415
0
    VkPipeline*                                 pPipelines) {
10416
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10417
0
    if (NULL == disp) {
10418
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10419
0
                   "vkCreateDataGraphPipelinesARM: Invalid device "
10420
0
                   "[VUID-vkCreateDataGraphPipelinesARM-device-parameter]");
10421
0
        abort(); /* Intentionally fail so user can correct issue. */
10422
0
    }
10423
0
    return disp->CreateDataGraphPipelinesARM(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
10424
0
}
10425
10426
VKAPI_ATTR VkResult VKAPI_CALL CreateDataGraphPipelineSessionARM(
10427
    VkDevice                                    device,
10428
    const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
10429
    const VkAllocationCallbacks*                pAllocator,
10430
0
    VkDataGraphPipelineSessionARM*              pSession) {
10431
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10432
0
    if (NULL == disp) {
10433
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10434
0
                   "vkCreateDataGraphPipelineSessionARM: Invalid device "
10435
0
                   "[VUID-vkCreateDataGraphPipelineSessionARM-device-parameter]");
10436
0
        abort(); /* Intentionally fail so user can correct issue. */
10437
0
    }
10438
0
    return disp->CreateDataGraphPipelineSessionARM(device, pCreateInfo, pAllocator, pSession);
10439
0
}
10440
10441
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelineSessionBindPointRequirementsARM(
10442
    VkDevice                                    device,
10443
    const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
10444
    uint32_t*                                   pBindPointRequirementCount,
10445
0
    VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements) {
10446
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10447
0
    if (NULL == disp) {
10448
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10449
0
                   "vkGetDataGraphPipelineSessionBindPointRequirementsARM: Invalid device "
10450
0
                   "[VUID-vkGetDataGraphPipelineSessionBindPointRequirementsARM-device-parameter]");
10451
0
        abort(); /* Intentionally fail so user can correct issue. */
10452
0
    }
10453
0
    return disp->GetDataGraphPipelineSessionBindPointRequirementsARM(device, pInfo, pBindPointRequirementCount, pBindPointRequirements);
10454
0
}
10455
10456
VKAPI_ATTR void VKAPI_CALL GetDataGraphPipelineSessionMemoryRequirementsARM(
10457
    VkDevice                                    device,
10458
    const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
10459
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
10460
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10461
0
    if (NULL == disp) {
10462
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10463
0
                   "vkGetDataGraphPipelineSessionMemoryRequirementsARM: Invalid device "
10464
0
                   "[VUID-vkGetDataGraphPipelineSessionMemoryRequirementsARM-device-parameter]");
10465
0
        abort(); /* Intentionally fail so user can correct issue. */
10466
0
    }
10467
0
    disp->GetDataGraphPipelineSessionMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
10468
0
}
10469
10470
VKAPI_ATTR VkResult VKAPI_CALL BindDataGraphPipelineSessionMemoryARM(
10471
    VkDevice                                    device,
10472
    uint32_t                                    bindInfoCount,
10473
0
    const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos) {
10474
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10475
0
    if (NULL == disp) {
10476
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10477
0
                   "vkBindDataGraphPipelineSessionMemoryARM: Invalid device "
10478
0
                   "[VUID-vkBindDataGraphPipelineSessionMemoryARM-device-parameter]");
10479
0
        abort(); /* Intentionally fail so user can correct issue. */
10480
0
    }
10481
0
    return disp->BindDataGraphPipelineSessionMemoryARM(device, bindInfoCount, pBindInfos);
10482
0
}
10483
10484
VKAPI_ATTR void VKAPI_CALL DestroyDataGraphPipelineSessionARM(
10485
    VkDevice                                    device,
10486
    VkDataGraphPipelineSessionARM               session,
10487
0
    const VkAllocationCallbacks*                pAllocator) {
10488
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10489
0
    if (NULL == disp) {
10490
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10491
0
                   "vkDestroyDataGraphPipelineSessionARM: Invalid device "
10492
0
                   "[VUID-vkDestroyDataGraphPipelineSessionARM-device-parameter]");
10493
0
        abort(); /* Intentionally fail so user can correct issue. */
10494
0
    }
10495
0
    disp->DestroyDataGraphPipelineSessionARM(device, session, pAllocator);
10496
0
}
10497
10498
VKAPI_ATTR void VKAPI_CALL CmdDispatchDataGraphARM(
10499
    VkCommandBuffer                             commandBuffer,
10500
    VkDataGraphPipelineSessionARM               session,
10501
0
    const VkDataGraphPipelineDispatchInfoARM*   pInfo) {
10502
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10503
0
    if (NULL == disp) {
10504
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10505
0
                   "vkCmdDispatchDataGraphARM: Invalid commandBuffer "
10506
0
                   "[VUID-vkCmdDispatchDataGraphARM-commandBuffer-parameter]");
10507
0
        abort(); /* Intentionally fail so user can correct issue. */
10508
0
    }
10509
0
    disp->CmdDispatchDataGraphARM(commandBuffer, session, pInfo);
10510
0
}
10511
10512
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelineAvailablePropertiesARM(
10513
    VkDevice                                    device,
10514
    const VkDataGraphPipelineInfoARM*           pPipelineInfo,
10515
    uint32_t*                                   pPropertiesCount,
10516
0
    VkDataGraphPipelinePropertyARM*             pProperties) {
10517
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10518
0
    if (NULL == disp) {
10519
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10520
0
                   "vkGetDataGraphPipelineAvailablePropertiesARM: Invalid device "
10521
0
                   "[VUID-vkGetDataGraphPipelineAvailablePropertiesARM-device-parameter]");
10522
0
        abort(); /* Intentionally fail so user can correct issue. */
10523
0
    }
10524
0
    return disp->GetDataGraphPipelineAvailablePropertiesARM(device, pPipelineInfo, pPropertiesCount, pProperties);
10525
0
}
10526
10527
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelinePropertiesARM(
10528
    VkDevice                                    device,
10529
    const VkDataGraphPipelineInfoARM*           pPipelineInfo,
10530
    uint32_t                                    propertiesCount,
10531
0
    VkDataGraphPipelinePropertyQueryResultARM*  pProperties) {
10532
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10533
0
    if (NULL == disp) {
10534
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10535
0
                   "vkGetDataGraphPipelinePropertiesARM: Invalid device "
10536
0
                   "[VUID-vkGetDataGraphPipelinePropertiesARM-device-parameter]");
10537
0
        abort(); /* Intentionally fail so user can correct issue. */
10538
0
    }
10539
0
    return disp->GetDataGraphPipelinePropertiesARM(device, pPipelineInfo, propertiesCount, pProperties);
10540
0
}
10541
10542
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
10543
    VkPhysicalDevice                            physicalDevice,
10544
    uint32_t                                    queueFamilyIndex,
10545
    uint32_t*                                   pQueueFamilyDataGraphPropertyCount,
10546
0
    VkQueueFamilyDataGraphPropertiesARM*        pQueueFamilyDataGraphProperties) {
10547
0
    const VkLayerInstanceDispatchTable *disp;
10548
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10549
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10550
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10551
0
                   "vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM: Invalid physicalDevice "
10552
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM-physicalDevice-parameter]");
10553
0
        abort(); /* Intentionally fail so user can correct issue. */
10554
0
    }
10555
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10556
0
    return disp->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(unwrapped_phys_dev, queueFamilyIndex, pQueueFamilyDataGraphPropertyCount, pQueueFamilyDataGraphProperties);
10557
0
}
10558
10559
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
10560
    VkPhysicalDevice                            physicalDevice,
10561
    uint32_t                                    queueFamilyIndex,
10562
    uint32_t*                                   pQueueFamilyDataGraphPropertyCount,
10563
0
    VkQueueFamilyDataGraphPropertiesARM*        pQueueFamilyDataGraphProperties) {
10564
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10565
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10566
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM) {
10567
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10568
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM");
10569
0
        abort(); /* Intentionally fail so user can correct issue. */
10570
0
    }
10571
0
    return icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(phys_dev_term->phys_dev, queueFamilyIndex, pQueueFamilyDataGraphPropertyCount, pQueueFamilyDataGraphProperties);
10572
0
}
10573
10574
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
10575
    VkPhysicalDevice                            physicalDevice,
10576
    const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
10577
0
    VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties) {
10578
0
    const VkLayerInstanceDispatchTable *disp;
10579
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10580
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10581
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10582
0
                   "vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM: Invalid physicalDevice "
10583
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM-physicalDevice-parameter]");
10584
0
        abort(); /* Intentionally fail so user can correct issue. */
10585
0
    }
10586
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10587
0
    disp->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(unwrapped_phys_dev, pQueueFamilyDataGraphProcessingEngineInfo, pQueueFamilyDataGraphProcessingEngineProperties);
10588
0
}
10589
10590
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
10591
    VkPhysicalDevice                            physicalDevice,
10592
    const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
10593
0
    VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties) {
10594
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10595
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10596
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM) {
10597
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10598
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM");
10599
0
        abort(); /* Intentionally fail so user can correct issue. */
10600
0
    }
10601
0
    icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(phys_dev_term->phys_dev, pQueueFamilyDataGraphProcessingEngineInfo, pQueueFamilyDataGraphProcessingEngineProperties);
10602
0
}
10603
10604
10605
// ---- VK_EXT_attachment_feedback_loop_dynamic_state extension trampoline/terminators
10606
10607
VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT(
10608
    VkCommandBuffer                             commandBuffer,
10609
0
    VkImageAspectFlags                          aspectMask) {
10610
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10611
0
    if (NULL == disp) {
10612
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10613
0
                   "vkCmdSetAttachmentFeedbackLoopEnableEXT: Invalid commandBuffer "
10614
0
                   "[VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter]");
10615
0
        abort(); /* Intentionally fail so user can correct issue. */
10616
0
    }
10617
0
    disp->CmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
10618
0
}
10619
10620
10621
// ---- VK_QNX_external_memory_screen_buffer extension trampoline/terminators
10622
10623
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
10624
VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(
10625
    VkDevice                                    device,
10626
    const struct _screen_buffer*                buffer,
10627
    VkScreenBufferPropertiesQNX*                pProperties) {
10628
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10629
    if (NULL == disp) {
10630
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10631
                   "vkGetScreenBufferPropertiesQNX: Invalid device "
10632
                   "[VUID-vkGetScreenBufferPropertiesQNX-device-parameter]");
10633
        abort(); /* Intentionally fail so user can correct issue. */
10634
    }
10635
    return disp->GetScreenBufferPropertiesQNX(device, buffer, pProperties);
10636
}
10637
10638
#endif // VK_USE_PLATFORM_SCREEN_QNX
10639
10640
// ---- VK_QCOM_tile_memory_heap extension trampoline/terminators
10641
10642
VKAPI_ATTR void VKAPI_CALL CmdBindTileMemoryQCOM(
10643
    VkCommandBuffer                             commandBuffer,
10644
0
    const VkTileMemoryBindInfoQCOM*             pTileMemoryBindInfo) {
10645
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10646
0
    if (NULL == disp) {
10647
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10648
0
                   "vkCmdBindTileMemoryQCOM: Invalid commandBuffer "
10649
0
                   "[VUID-vkCmdBindTileMemoryQCOM-commandBuffer-parameter]");
10650
0
        abort(); /* Intentionally fail so user can correct issue. */
10651
0
    }
10652
0
    disp->CmdBindTileMemoryQCOM(commandBuffer, pTileMemoryBindInfo);
10653
0
}
10654
10655
10656
// ---- VK_EXT_memory_decompression extension trampoline/terminators
10657
10658
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryEXT(
10659
    VkCommandBuffer                             commandBuffer,
10660
0
    const VkDecompressMemoryInfoEXT*            pDecompressMemoryInfoEXT) {
10661
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10662
0
    if (NULL == disp) {
10663
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10664
0
                   "vkCmdDecompressMemoryEXT: Invalid commandBuffer "
10665
0
                   "[VUID-vkCmdDecompressMemoryEXT-commandBuffer-parameter]");
10666
0
        abort(); /* Intentionally fail so user can correct issue. */
10667
0
    }
10668
0
    disp->CmdDecompressMemoryEXT(commandBuffer, pDecompressMemoryInfoEXT);
10669
0
}
10670
10671
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountEXT(
10672
    VkCommandBuffer                             commandBuffer,
10673
    VkMemoryDecompressionMethodFlagsEXT         decompressionMethod,
10674
    VkDeviceAddress                             indirectCommandsAddress,
10675
    VkDeviceAddress                             indirectCommandsCountAddress,
10676
    uint32_t                                    maxDecompressionCount,
10677
0
    uint32_t                                    stride) {
10678
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10679
0
    if (NULL == disp) {
10680
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10681
0
                   "vkCmdDecompressMemoryIndirectCountEXT: Invalid commandBuffer "
10682
0
                   "[VUID-vkCmdDecompressMemoryIndirectCountEXT-commandBuffer-parameter]");
10683
0
        abort(); /* Intentionally fail so user can correct issue. */
10684
0
    }
10685
0
    disp->CmdDecompressMemoryIndirectCountEXT(commandBuffer, decompressionMethod, indirectCommandsAddress, indirectCommandsCountAddress, maxDecompressionCount, stride);
10686
0
}
10687
10688
10689
// ---- VK_NV_external_compute_queue extension trampoline/terminators
10690
10691
VKAPI_ATTR VkResult VKAPI_CALL CreateExternalComputeQueueNV(
10692
    VkDevice                                    device,
10693
    const VkExternalComputeQueueCreateInfoNV*   pCreateInfo,
10694
    const VkAllocationCallbacks*                pAllocator,
10695
0
    VkExternalComputeQueueNV*                   pExternalQueue) {
10696
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10697
0
    if (NULL == disp) {
10698
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10699
0
                   "vkCreateExternalComputeQueueNV: Invalid device "
10700
0
                   "[VUID-vkCreateExternalComputeQueueNV-device-parameter]");
10701
0
        abort(); /* Intentionally fail so user can correct issue. */
10702
0
    }
10703
0
    return disp->CreateExternalComputeQueueNV(device, pCreateInfo, pAllocator, pExternalQueue);
10704
0
}
10705
10706
VKAPI_ATTR void VKAPI_CALL DestroyExternalComputeQueueNV(
10707
    VkDevice                                    device,
10708
    VkExternalComputeQueueNV                    externalQueue,
10709
0
    const VkAllocationCallbacks*                pAllocator) {
10710
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10711
0
    if (NULL == disp) {
10712
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10713
0
                   "vkDestroyExternalComputeQueueNV: Invalid device "
10714
0
                   "[VUID-vkDestroyExternalComputeQueueNV-device-parameter]");
10715
0
        abort(); /* Intentionally fail so user can correct issue. */
10716
0
    }
10717
0
    disp->DestroyExternalComputeQueueNV(device, externalQueue, pAllocator);
10718
0
}
10719
10720
VKAPI_ATTR void VKAPI_CALL GetExternalComputeQueueDataNV(
10721
    VkExternalComputeQueueNV                    externalQueue,
10722
    VkExternalComputeQueueDataParamsNV*         params,
10723
0
    void*                                       pData) {
10724
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(externalQueue);
10725
0
    if (NULL == disp) {
10726
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10727
0
                   "vkGetExternalComputeQueueDataNV: Invalid externalQueue "
10728
0
                   "[VUID-vkGetExternalComputeQueueDataNV-externalQueue-parameter]");
10729
0
        abort(); /* Intentionally fail so user can correct issue. */
10730
0
    }
10731
0
    disp->GetExternalComputeQueueDataNV(externalQueue, params, pData);
10732
0
}
10733
10734
10735
// ---- VK_NV_cluster_acceleration_structure extension trampoline/terminators
10736
10737
VKAPI_ATTR void VKAPI_CALL GetClusterAccelerationStructureBuildSizesNV(
10738
    VkDevice                                    device,
10739
    const VkClusterAccelerationStructureInputInfoNV* pInfo,
10740
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
10741
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10742
0
    if (NULL == disp) {
10743
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10744
0
                   "vkGetClusterAccelerationStructureBuildSizesNV: Invalid device "
10745
0
                   "[VUID-vkGetClusterAccelerationStructureBuildSizesNV-device-parameter]");
10746
0
        abort(); /* Intentionally fail so user can correct issue. */
10747
0
    }
10748
0
    disp->GetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo);
10749
0
}
10750
10751
VKAPI_ATTR void VKAPI_CALL CmdBuildClusterAccelerationStructureIndirectNV(
10752
    VkCommandBuffer                             commandBuffer,
10753
0
    const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) {
10754
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10755
0
    if (NULL == disp) {
10756
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10757
0
                   "vkCmdBuildClusterAccelerationStructureIndirectNV: Invalid commandBuffer "
10758
0
                   "[VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter]");
10759
0
        abort(); /* Intentionally fail so user can correct issue. */
10760
0
    }
10761
0
    disp->CmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos);
10762
0
}
10763
10764
10765
// ---- VK_NV_partitioned_acceleration_structure extension trampoline/terminators
10766
10767
VKAPI_ATTR void VKAPI_CALL GetPartitionedAccelerationStructuresBuildSizesNV(
10768
    VkDevice                                    device,
10769
    const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
10770
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
10771
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10772
0
    if (NULL == disp) {
10773
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10774
0
                   "vkGetPartitionedAccelerationStructuresBuildSizesNV: Invalid device "
10775
0
                   "[VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-device-parameter]");
10776
0
        abort(); /* Intentionally fail so user can correct issue. */
10777
0
    }
10778
0
    disp->GetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo);
10779
0
}
10780
10781
VKAPI_ATTR void VKAPI_CALL CmdBuildPartitionedAccelerationStructuresNV(
10782
    VkCommandBuffer                             commandBuffer,
10783
0
    const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) {
10784
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10785
0
    if (NULL == disp) {
10786
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10787
0
                   "vkCmdBuildPartitionedAccelerationStructuresNV: Invalid commandBuffer "
10788
0
                   "[VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-parameter]");
10789
0
        abort(); /* Intentionally fail so user can correct issue. */
10790
0
    }
10791
0
    disp->CmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo);
10792
0
}
10793
10794
10795
// ---- VK_EXT_device_generated_commands extension trampoline/terminators
10796
10797
VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT(
10798
    VkDevice                                    device,
10799
    const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
10800
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
10801
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10802
0
    if (NULL == disp) {
10803
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10804
0
                   "vkGetGeneratedCommandsMemoryRequirementsEXT: Invalid device "
10805
0
                   "[VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-device-parameter]");
10806
0
        abort(); /* Intentionally fail so user can correct issue. */
10807
0
    }
10808
0
    disp->GetGeneratedCommandsMemoryRequirementsEXT(device, pInfo, pMemoryRequirements);
10809
0
}
10810
10811
VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsEXT(
10812
    VkCommandBuffer                             commandBuffer,
10813
    const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo,
10814
0
    VkCommandBuffer                             stateCommandBuffer) {
10815
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10816
0
    if (NULL == disp) {
10817
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10818
0
                   "vkCmdPreprocessGeneratedCommandsEXT: Invalid commandBuffer "
10819
0
                   "[VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameter]");
10820
0
        abort(); /* Intentionally fail so user can correct issue. */
10821
0
    }
10822
0
    disp->CmdPreprocessGeneratedCommandsEXT(commandBuffer, pGeneratedCommandsInfo, stateCommandBuffer);
10823
0
}
10824
10825
VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsEXT(
10826
    VkCommandBuffer                             commandBuffer,
10827
    VkBool32                                    isPreprocessed,
10828
0
    const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo) {
10829
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10830
0
    if (NULL == disp) {
10831
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10832
0
                   "vkCmdExecuteGeneratedCommandsEXT: Invalid commandBuffer "
10833
0
                   "[VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-parameter]");
10834
0
        abort(); /* Intentionally fail so user can correct issue. */
10835
0
    }
10836
0
    disp->CmdExecuteGeneratedCommandsEXT(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
10837
0
}
10838
10839
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutEXT(
10840
    VkDevice                                    device,
10841
    const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
10842
    const VkAllocationCallbacks*                pAllocator,
10843
0
    VkIndirectCommandsLayoutEXT*                pIndirectCommandsLayout) {
10844
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10845
0
    if (NULL == disp) {
10846
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10847
0
                   "vkCreateIndirectCommandsLayoutEXT: Invalid device "
10848
0
                   "[VUID-vkCreateIndirectCommandsLayoutEXT-device-parameter]");
10849
0
        abort(); /* Intentionally fail so user can correct issue. */
10850
0
    }
10851
0
    return disp->CreateIndirectCommandsLayoutEXT(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
10852
0
}
10853
10854
VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutEXT(
10855
    VkDevice                                    device,
10856
    VkIndirectCommandsLayoutEXT                 indirectCommandsLayout,
10857
0
    const VkAllocationCallbacks*                pAllocator) {
10858
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10859
0
    if (NULL == disp) {
10860
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10861
0
                   "vkDestroyIndirectCommandsLayoutEXT: Invalid device "
10862
0
                   "[VUID-vkDestroyIndirectCommandsLayoutEXT-device-parameter]");
10863
0
        abort(); /* Intentionally fail so user can correct issue. */
10864
0
    }
10865
0
    disp->DestroyIndirectCommandsLayoutEXT(device, indirectCommandsLayout, pAllocator);
10866
0
}
10867
10868
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectExecutionSetEXT(
10869
    VkDevice                                    device,
10870
    const VkIndirectExecutionSetCreateInfoEXT*  pCreateInfo,
10871
    const VkAllocationCallbacks*                pAllocator,
10872
0
    VkIndirectExecutionSetEXT*                  pIndirectExecutionSet) {
10873
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10874
0
    if (NULL == disp) {
10875
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10876
0
                   "vkCreateIndirectExecutionSetEXT: Invalid device "
10877
0
                   "[VUID-vkCreateIndirectExecutionSetEXT-device-parameter]");
10878
0
        abort(); /* Intentionally fail so user can correct issue. */
10879
0
    }
10880
0
    return disp->CreateIndirectExecutionSetEXT(device, pCreateInfo, pAllocator, pIndirectExecutionSet);
10881
0
}
10882
10883
VKAPI_ATTR void VKAPI_CALL DestroyIndirectExecutionSetEXT(
10884
    VkDevice                                    device,
10885
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
10886
0
    const VkAllocationCallbacks*                pAllocator) {
10887
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10888
0
    if (NULL == disp) {
10889
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10890
0
                   "vkDestroyIndirectExecutionSetEXT: Invalid device "
10891
0
                   "[VUID-vkDestroyIndirectExecutionSetEXT-device-parameter]");
10892
0
        abort(); /* Intentionally fail so user can correct issue. */
10893
0
    }
10894
0
    disp->DestroyIndirectExecutionSetEXT(device, indirectExecutionSet, pAllocator);
10895
0
}
10896
10897
VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetPipelineEXT(
10898
    VkDevice                                    device,
10899
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
10900
    uint32_t                                    executionSetWriteCount,
10901
0
    const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites) {
10902
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10903
0
    if (NULL == disp) {
10904
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10905
0
                   "vkUpdateIndirectExecutionSetPipelineEXT: Invalid device "
10906
0
                   "[VUID-vkUpdateIndirectExecutionSetPipelineEXT-device-parameter]");
10907
0
        abort(); /* Intentionally fail so user can correct issue. */
10908
0
    }
10909
0
    disp->UpdateIndirectExecutionSetPipelineEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
10910
0
}
10911
10912
VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetShaderEXT(
10913
    VkDevice                                    device,
10914
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
10915
    uint32_t                                    executionSetWriteCount,
10916
0
    const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites) {
10917
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10918
0
    if (NULL == disp) {
10919
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10920
0
                   "vkUpdateIndirectExecutionSetShaderEXT: Invalid device "
10921
0
                   "[VUID-vkUpdateIndirectExecutionSetShaderEXT-device-parameter]");
10922
0
        abort(); /* Intentionally fail so user can correct issue. */
10923
0
    }
10924
0
    disp->UpdateIndirectExecutionSetShaderEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
10925
0
}
10926
10927
10928
// ---- VK_OHOS_surface extension trampoline/terminators
10929
10930
#if defined(VK_USE_PLATFORM_OHOS)
10931
VKAPI_ATTR VkResult VKAPI_CALL CreateSurfaceOHOS(
10932
    VkInstance                                  instance,
10933
    const VkSurfaceCreateInfoOHOS*              pCreateInfo,
10934
    const VkAllocationCallbacks*                pAllocator,
10935
    VkSurfaceKHR*                               pSurface) {
10936
    struct loader_instance *inst = loader_get_instance(instance);
10937
    if (NULL == inst) {
10938
        loader_log(
10939
            NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10940
            "vkCreateSurfaceOHOS: Invalid instance [VUID-vkCreateSurfaceOHOS-instance-parameter]");
10941
        abort(); /* Intentionally fail so user can correct issue. */
10942
    }
10943
#error("Not implemented. Likely needs to be manually generated!");
10944
    return inst->disp->CreateSurfaceOHOS(instance, pCreateInfo, pAllocator, pSurface);
10945
}
10946
10947
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSurfaceOHOS(
10948
    VkInstance                                  instance,
10949
    const VkSurfaceCreateInfoOHOS*              pCreateInfo,
10950
    const VkAllocationCallbacks*                pAllocator,
10951
    VkSurfaceKHR*                               pSurface) {
10952
    struct loader_instance *inst = loader_get_instance(instance);
10953
    if (NULL == inst) {
10954
        loader_log(
10955
            NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10956
            "vkCreateSurfaceOHOS: Invalid instance [VUID-vkCreateSurfaceOHOS-instance-parameter]");
10957
        abort(); /* Intentionally fail so user can correct issue. */
10958
    }
10959
#error("Not implemented. Likely needs to be manually generated!");
10960
}
10961
10962
#endif // VK_USE_PLATFORM_OHOS
10963
10964
// ---- VK_OHOS_native_buffer extension trampoline/terminators
10965
10966
#if defined(VK_USE_PLATFORM_OHOS)
10967
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainGrallocUsageOHOS(
10968
    VkDevice                                    device,
10969
    VkFormat                                    format,
10970
    VkImageUsageFlags                           imageUsage,
10971
    uint64_t*                                   grallocUsage) {
10972
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10973
    if (NULL == disp) {
10974
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10975
                   "vkGetSwapchainGrallocUsageOHOS: Invalid device "
10976
                   "[VUID-vkGetSwapchainGrallocUsageOHOS-device-parameter]");
10977
        abort(); /* Intentionally fail so user can correct issue. */
10978
    }
10979
    return disp->GetSwapchainGrallocUsageOHOS(device, format, imageUsage, grallocUsage);
10980
}
10981
10982
#endif // VK_USE_PLATFORM_OHOS
10983
#if defined(VK_USE_PLATFORM_OHOS)
10984
VKAPI_ATTR VkResult VKAPI_CALL AcquireImageOHOS(
10985
    VkDevice                                    device,
10986
    VkImage                                     image,
10987
    int32_t                                     nativeFenceFd,
10988
    VkSemaphore                                 semaphore,
10989
    VkFence                                     fence) {
10990
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10991
    if (NULL == disp) {
10992
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10993
                   "vkAcquireImageOHOS: Invalid device "
10994
                   "[VUID-vkAcquireImageOHOS-device-parameter]");
10995
        abort(); /* Intentionally fail so user can correct issue. */
10996
    }
10997
    return disp->AcquireImageOHOS(device, image, nativeFenceFd, semaphore, fence);
10998
}
10999
11000
#endif // VK_USE_PLATFORM_OHOS
11001
#if defined(VK_USE_PLATFORM_OHOS)
11002
VKAPI_ATTR VkResult VKAPI_CALL QueueSignalReleaseImageOHOS(
11003
    VkQueue                                     queue,
11004
    uint32_t                                    waitSemaphoreCount,
11005
    const VkSemaphore*                          pWaitSemaphores,
11006
    VkImage                                     image,
11007
    int32_t*                                    pNativeFenceFd) {
11008
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
11009
    if (NULL == disp) {
11010
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11011
                   "vkQueueSignalReleaseImageOHOS: Invalid queue "
11012
                   "[VUID-vkQueueSignalReleaseImageOHOS-queue-parameter]");
11013
        abort(); /* Intentionally fail so user can correct issue. */
11014
    }
11015
    return disp->QueueSignalReleaseImageOHOS(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
11016
}
11017
11018
#endif // VK_USE_PLATFORM_OHOS
11019
11020
// ---- VK_NV_cooperative_matrix2 extension trampoline/terminators
11021
11022
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
11023
    VkPhysicalDevice                            physicalDevice,
11024
    uint32_t*                                   pPropertyCount,
11025
0
    VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) {
11026
0
    const VkLayerInstanceDispatchTable *disp;
11027
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11028
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11029
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11030
0
                   "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV: Invalid physicalDevice "
11031
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV-physicalDevice-parameter]");
11032
0
        abort(); /* Intentionally fail so user can correct issue. */
11033
0
    }
11034
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11035
0
    return disp->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
11036
0
}
11037
11038
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
11039
    VkPhysicalDevice                            physicalDevice,
11040
    uint32_t*                                   pPropertyCount,
11041
0
    VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) {
11042
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11043
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11044
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV) {
11045
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11046
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
11047
0
        abort(); /* Intentionally fail so user can correct issue. */
11048
0
    }
11049
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
11050
0
}
11051
11052
11053
// ---- VK_EXT_external_memory_metal extension trampoline/terminators
11054
11055
#if defined(VK_USE_PLATFORM_METAL_EXT)
11056
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandleEXT(
11057
    VkDevice                                    device,
11058
    const VkMemoryGetMetalHandleInfoEXT*        pGetMetalHandleInfo,
11059
    void**                                      pHandle) {
11060
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11061
    if (NULL == disp) {
11062
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11063
                   "vkGetMemoryMetalHandleEXT: Invalid device "
11064
                   "[VUID-vkGetMemoryMetalHandleEXT-device-parameter]");
11065
        abort(); /* Intentionally fail so user can correct issue. */
11066
    }
11067
    return disp->GetMemoryMetalHandleEXT(device, pGetMetalHandleInfo, pHandle);
11068
}
11069
11070
#endif // VK_USE_PLATFORM_METAL_EXT
11071
#if defined(VK_USE_PLATFORM_METAL_EXT)
11072
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandlePropertiesEXT(
11073
    VkDevice                                    device,
11074
    VkExternalMemoryHandleTypeFlagBits          handleType,
11075
    const void*                                 pHandle,
11076
    VkMemoryMetalHandlePropertiesEXT*           pMemoryMetalHandleProperties) {
11077
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11078
    if (NULL == disp) {
11079
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11080
                   "vkGetMemoryMetalHandlePropertiesEXT: Invalid device "
11081
                   "[VUID-vkGetMemoryMetalHandlePropertiesEXT-device-parameter]");
11082
        abort(); /* Intentionally fail so user can correct issue. */
11083
    }
11084
    return disp->GetMemoryMetalHandlePropertiesEXT(device, handleType, pHandle, pMemoryMetalHandleProperties);
11085
}
11086
11087
#endif // VK_USE_PLATFORM_METAL_EXT
11088
11089
// ---- VK_ARM_performance_counters_by_region extension trampoline/terminators
11090
11091
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
11092
    VkPhysicalDevice                            physicalDevice,
11093
    uint32_t                                    queueFamilyIndex,
11094
    uint32_t*                                   pCounterCount,
11095
    VkPerformanceCounterARM*                    pCounters,
11096
0
    VkPerformanceCounterDescriptionARM*         pCounterDescriptions) {
11097
0
    const VkLayerInstanceDispatchTable *disp;
11098
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11099
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11100
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11101
0
                   "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM: Invalid physicalDevice "
11102
0
                   "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM-physicalDevice-parameter]");
11103
0
        abort(); /* Intentionally fail so user can correct issue. */
11104
0
    }
11105
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11106
0
    return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
11107
0
}
11108
11109
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
11110
    VkPhysicalDevice                            physicalDevice,
11111
    uint32_t                                    queueFamilyIndex,
11112
    uint32_t*                                   pCounterCount,
11113
    VkPerformanceCounterARM*                    pCounters,
11114
0
    VkPerformanceCounterDescriptionARM*         pCounterDescriptions) {
11115
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11116
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11117
0
    if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM) {
11118
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11119
0
                   "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM");
11120
0
        abort(); /* Intentionally fail so user can correct issue. */
11121
0
    }
11122
0
    return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
11123
0
}
11124
11125
11126
// ---- VK_EXT_fragment_density_map_offset extension trampoline/terminators
11127
11128
VKAPI_ATTR void VKAPI_CALL CmdEndRendering2EXT(
11129
    VkCommandBuffer                             commandBuffer,
11130
0
    const VkRenderingEndInfoKHR*                pRenderingEndInfo) {
11131
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11132
0
    if (NULL == disp) {
11133
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11134
0
                   "vkCmdEndRendering2EXT: Invalid commandBuffer "
11135
0
                   "[VUID-vkCmdEndRendering2EXT-commandBuffer-parameter]");
11136
0
        abort(); /* Intentionally fail so user can correct issue. */
11137
0
    }
11138
0
    disp->CmdEndRendering2EXT(commandBuffer, pRenderingEndInfo);
11139
0
}
11140
11141
11142
// ---- VK_EXT_custom_resolve extension trampoline/terminators
11143
11144
VKAPI_ATTR void VKAPI_CALL CmdBeginCustomResolveEXT(
11145
    VkCommandBuffer                             commandBuffer,
11146
0
    const VkBeginCustomResolveInfoEXT*          pBeginCustomResolveInfo) {
11147
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11148
0
    if (NULL == disp) {
11149
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11150
0
                   "vkCmdBeginCustomResolveEXT: Invalid commandBuffer "
11151
0
                   "[VUID-vkCmdBeginCustomResolveEXT-commandBuffer-parameter]");
11152
0
        abort(); /* Intentionally fail so user can correct issue. */
11153
0
    }
11154
0
    disp->CmdBeginCustomResolveEXT(commandBuffer, pBeginCustomResolveInfo);
11155
0
}
11156
11157
11158
// ---- VK_KHR_acceleration_structure extension trampoline/terminators
11159
11160
VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
11161
    VkDevice                                    device,
11162
    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
11163
    const VkAllocationCallbacks*                pAllocator,
11164
0
    VkAccelerationStructureKHR*                 pAccelerationStructure) {
11165
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11166
0
    if (NULL == disp) {
11167
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11168
0
                   "vkCreateAccelerationStructureKHR: Invalid device "
11169
0
                   "[VUID-vkCreateAccelerationStructureKHR-device-parameter]");
11170
0
        abort(); /* Intentionally fail so user can correct issue. */
11171
0
    }
11172
0
    return disp->CreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
11173
0
}
11174
11175
VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureKHR(
11176
    VkDevice                                    device,
11177
    VkAccelerationStructureKHR                  accelerationStructure,
11178
0
    const VkAllocationCallbacks*                pAllocator) {
11179
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11180
0
    if (NULL == disp) {
11181
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11182
0
                   "vkDestroyAccelerationStructureKHR: Invalid device "
11183
0
                   "[VUID-vkDestroyAccelerationStructureKHR-device-parameter]");
11184
0
        abort(); /* Intentionally fail so user can correct issue. */
11185
0
    }
11186
0
    disp->DestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
11187
0
}
11188
11189
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresKHR(
11190
    VkCommandBuffer                             commandBuffer,
11191
    uint32_t                                    infoCount,
11192
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
11193
0
    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
11194
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11195
0
    if (NULL == disp) {
11196
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11197
0
                   "vkCmdBuildAccelerationStructuresKHR: Invalid commandBuffer "
11198
0
                   "[VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter]");
11199
0
        abort(); /* Intentionally fail so user can correct issue. */
11200
0
    }
11201
0
    disp->CmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos);
11202
0
}
11203
11204
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR(
11205
    VkCommandBuffer                             commandBuffer,
11206
    uint32_t                                    infoCount,
11207
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
11208
    const VkDeviceAddress*                      pIndirectDeviceAddresses,
11209
    const uint32_t*                             pIndirectStrides,
11210
0
    const uint32_t* const*                      ppMaxPrimitiveCounts) {
11211
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11212
0
    if (NULL == disp) {
11213
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11214
0
                   "vkCmdBuildAccelerationStructuresIndirectKHR: Invalid commandBuffer "
11215
0
                   "[VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter]");
11216
0
        abort(); /* Intentionally fail so user can correct issue. */
11217
0
    }
11218
0
    disp->CmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts);
11219
0
}
11220
11221
VKAPI_ATTR VkResult VKAPI_CALL BuildAccelerationStructuresKHR(
11222
    VkDevice                                    device,
11223
    VkDeferredOperationKHR                      deferredOperation,
11224
    uint32_t                                    infoCount,
11225
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
11226
0
    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
11227
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11228
0
    if (NULL == disp) {
11229
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11230
0
                   "vkBuildAccelerationStructuresKHR: Invalid device "
11231
0
                   "[VUID-vkBuildAccelerationStructuresKHR-device-parameter]");
11232
0
        abort(); /* Intentionally fail so user can correct issue. */
11233
0
    }
11234
0
    return disp->BuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos);
11235
0
}
11236
11237
VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureKHR(
11238
    VkDevice                                    device,
11239
    VkDeferredOperationKHR                      deferredOperation,
11240
0
    const VkCopyAccelerationStructureInfoKHR*   pInfo) {
11241
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11242
0
    if (NULL == disp) {
11243
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11244
0
                   "vkCopyAccelerationStructureKHR: Invalid device "
11245
0
                   "[VUID-vkCopyAccelerationStructureKHR-device-parameter]");
11246
0
        abort(); /* Intentionally fail so user can correct issue. */
11247
0
    }
11248
0
    return disp->CopyAccelerationStructureKHR(device, deferredOperation, pInfo);
11249
0
}
11250
11251
VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR(
11252
    VkDevice                                    device,
11253
    VkDeferredOperationKHR                      deferredOperation,
11254
0
    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
11255
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11256
0
    if (NULL == disp) {
11257
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11258
0
                   "vkCopyAccelerationStructureToMemoryKHR: Invalid device "
11259
0
                   "[VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter]");
11260
0
        abort(); /* Intentionally fail so user can correct issue. */
11261
0
    }
11262
0
    return disp->CopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo);
11263
0
}
11264
11265
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToAccelerationStructureKHR(
11266
    VkDevice                                    device,
11267
    VkDeferredOperationKHR                      deferredOperation,
11268
0
    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
11269
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11270
0
    if (NULL == disp) {
11271
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11272
0
                   "vkCopyMemoryToAccelerationStructureKHR: Invalid device "
11273
0
                   "[VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter]");
11274
0
        abort(); /* Intentionally fail so user can correct issue. */
11275
0
    }
11276
0
    return disp->CopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo);
11277
0
}
11278
11279
VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR(
11280
    VkDevice                                    device,
11281
    uint32_t                                    accelerationStructureCount,
11282
    const VkAccelerationStructureKHR*           pAccelerationStructures,
11283
    VkQueryType                                 queryType,
11284
    size_t                                      dataSize,
11285
    void*                                       pData,
11286
0
    size_t                                      stride) {
11287
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11288
0
    if (NULL == disp) {
11289
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11290
0
                   "vkWriteAccelerationStructuresPropertiesKHR: Invalid device "
11291
0
                   "[VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter]");
11292
0
        abort(); /* Intentionally fail so user can correct issue. */
11293
0
    }
11294
0
    return disp->WriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
11295
0
}
11296
11297
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureKHR(
11298
    VkCommandBuffer                             commandBuffer,
11299
0
    const VkCopyAccelerationStructureInfoKHR*   pInfo) {
11300
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11301
0
    if (NULL == disp) {
11302
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11303
0
                   "vkCmdCopyAccelerationStructureKHR: Invalid commandBuffer "
11304
0
                   "[VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter]");
11305
0
        abort(); /* Intentionally fail so user can correct issue. */
11306
0
    }
11307
0
    disp->CmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
11308
0
}
11309
11310
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureToMemoryKHR(
11311
    VkCommandBuffer                             commandBuffer,
11312
0
    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
11313
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11314
0
    if (NULL == disp) {
11315
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11316
0
                   "vkCmdCopyAccelerationStructureToMemoryKHR: Invalid commandBuffer "
11317
0
                   "[VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter]");
11318
0
        abort(); /* Intentionally fail so user can correct issue. */
11319
0
    }
11320
0
    disp->CmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
11321
0
}
11322
11323
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToAccelerationStructureKHR(
11324
    VkCommandBuffer                             commandBuffer,
11325
0
    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
11326
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11327
0
    if (NULL == disp) {
11328
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11329
0
                   "vkCmdCopyMemoryToAccelerationStructureKHR: Invalid commandBuffer "
11330
0
                   "[VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter]");
11331
0
        abort(); /* Intentionally fail so user can correct issue. */
11332
0
    }
11333
0
    disp->CmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
11334
0
}
11335
11336
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetAccelerationStructureDeviceAddressKHR(
11337
    VkDevice                                    device,
11338
0
    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) {
11339
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11340
0
    if (NULL == disp) {
11341
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11342
0
                   "vkGetAccelerationStructureDeviceAddressKHR: Invalid device "
11343
0
                   "[VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter]");
11344
0
        abort(); /* Intentionally fail so user can correct issue. */
11345
0
    }
11346
0
    return disp->GetAccelerationStructureDeviceAddressKHR(device, pInfo);
11347
0
}
11348
11349
VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR(
11350
    VkCommandBuffer                             commandBuffer,
11351
    uint32_t                                    accelerationStructureCount,
11352
    const VkAccelerationStructureKHR*           pAccelerationStructures,
11353
    VkQueryType                                 queryType,
11354
    VkQueryPool                                 queryPool,
11355
0
    uint32_t                                    firstQuery) {
11356
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11357
0
    if (NULL == disp) {
11358
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11359
0
                   "vkCmdWriteAccelerationStructuresPropertiesKHR: Invalid commandBuffer "
11360
0
                   "[VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter]");
11361
0
        abort(); /* Intentionally fail so user can correct issue. */
11362
0
    }
11363
0
    disp->CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
11364
0
}
11365
11366
VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR(
11367
    VkDevice                                    device,
11368
    const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
11369
0
    VkAccelerationStructureCompatibilityKHR*    pCompatibility) {
11370
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11371
0
    if (NULL == disp) {
11372
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11373
0
                   "vkGetDeviceAccelerationStructureCompatibilityKHR: Invalid device "
11374
0
                   "[VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter]");
11375
0
        abort(); /* Intentionally fail so user can correct issue. */
11376
0
    }
11377
0
    disp->GetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility);
11378
0
}
11379
11380
VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR(
11381
    VkDevice                                    device,
11382
    VkAccelerationStructureBuildTypeKHR         buildType,
11383
    const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
11384
    const uint32_t*                             pMaxPrimitiveCounts,
11385
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
11386
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11387
0
    if (NULL == disp) {
11388
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11389
0
                   "vkGetAccelerationStructureBuildSizesKHR: Invalid device "
11390
0
                   "[VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter]");
11391
0
        abort(); /* Intentionally fail so user can correct issue. */
11392
0
    }
11393
0
    disp->GetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo);
11394
0
}
11395
11396
11397
// ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
11398
11399
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR(
11400
    VkCommandBuffer                             commandBuffer,
11401
    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
11402
    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
11403
    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
11404
    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
11405
    uint32_t                                    width,
11406
    uint32_t                                    height,
11407
0
    uint32_t                                    depth) {
11408
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11409
0
    if (NULL == disp) {
11410
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11411
0
                   "vkCmdTraceRaysKHR: Invalid commandBuffer "
11412
0
                   "[VUID-vkCmdTraceRaysKHR-commandBuffer-parameter]");
11413
0
        abort(); /* Intentionally fail so user can correct issue. */
11414
0
    }
11415
0
    disp->CmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
11416
0
}
11417
11418
VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesKHR(
11419
    VkDevice                                    device,
11420
    VkDeferredOperationKHR                      deferredOperation,
11421
    VkPipelineCache                             pipelineCache,
11422
    uint32_t                                    createInfoCount,
11423
    const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
11424
    const VkAllocationCallbacks*                pAllocator,
11425
0
    VkPipeline*                                 pPipelines) {
11426
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11427
0
    if (NULL == disp) {
11428
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11429
0
                   "vkCreateRayTracingPipelinesKHR: Invalid device "
11430
0
                   "[VUID-vkCreateRayTracingPipelinesKHR-device-parameter]");
11431
0
        abort(); /* Intentionally fail so user can correct issue. */
11432
0
    }
11433
0
    return disp->CreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
11434
0
}
11435
11436
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR(
11437
    VkDevice                                    device,
11438
    VkPipeline                                  pipeline,
11439
    uint32_t                                    firstGroup,
11440
    uint32_t                                    groupCount,
11441
    size_t                                      dataSize,
11442
0
    void*                                       pData) {
11443
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11444
0
    if (NULL == disp) {
11445
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11446
0
                   "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR: Invalid device "
11447
0
                   "[VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter]");
11448
0
        abort(); /* Intentionally fail so user can correct issue. */
11449
0
    }
11450
0
    return disp->GetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
11451
0
}
11452
11453
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR(
11454
    VkCommandBuffer                             commandBuffer,
11455
    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
11456
    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
11457
    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
11458
    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
11459
0
    VkDeviceAddress                             indirectDeviceAddress) {
11460
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11461
0
    if (NULL == disp) {
11462
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11463
0
                   "vkCmdTraceRaysIndirectKHR: Invalid commandBuffer "
11464
0
                   "[VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter]");
11465
0
        abort(); /* Intentionally fail so user can correct issue. */
11466
0
    }
11467
0
    disp->CmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress);
11468
0
}
11469
11470
VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR(
11471
    VkDevice                                    device,
11472
    VkPipeline                                  pipeline,
11473
    uint32_t                                    group,
11474
0
    VkShaderGroupShaderKHR                      groupShader) {
11475
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11476
0
    if (NULL == disp) {
11477
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11478
0
                   "vkGetRayTracingShaderGroupStackSizeKHR: Invalid device "
11479
0
                   "[VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter]");
11480
0
        abort(); /* Intentionally fail so user can correct issue. */
11481
0
    }
11482
0
    return disp->GetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader);
11483
0
}
11484
11485
VKAPI_ATTR void VKAPI_CALL CmdSetRayTracingPipelineStackSizeKHR(
11486
    VkCommandBuffer                             commandBuffer,
11487
0
    uint32_t                                    pipelineStackSize) {
11488
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11489
0
    if (NULL == disp) {
11490
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11491
0
                   "vkCmdSetRayTracingPipelineStackSizeKHR: Invalid commandBuffer "
11492
0
                   "[VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter]");
11493
0
        abort(); /* Intentionally fail so user can correct issue. */
11494
0
    }
11495
0
    disp->CmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize);
11496
0
}
11497
11498
11499
// ---- VK_EXT_mesh_shader extension trampoline/terminators
11500
11501
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT(
11502
    VkCommandBuffer                             commandBuffer,
11503
    uint32_t                                    groupCountX,
11504
    uint32_t                                    groupCountY,
11505
0
    uint32_t                                    groupCountZ) {
11506
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11507
0
    if (NULL == disp) {
11508
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11509
0
                   "vkCmdDrawMeshTasksEXT: Invalid commandBuffer "
11510
0
                   "[VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter]");
11511
0
        abort(); /* Intentionally fail so user can correct issue. */
11512
0
    }
11513
0
    disp->CmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ);
11514
0
}
11515
11516
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT(
11517
    VkCommandBuffer                             commandBuffer,
11518
    VkBuffer                                    buffer,
11519
    VkDeviceSize                                offset,
11520
    uint32_t                                    drawCount,
11521
0
    uint32_t                                    stride) {
11522
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11523
0
    if (NULL == disp) {
11524
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11525
0
                   "vkCmdDrawMeshTasksIndirectEXT: Invalid commandBuffer "
11526
0
                   "[VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter]");
11527
0
        abort(); /* Intentionally fail so user can correct issue. */
11528
0
    }
11529
0
    disp->CmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride);
11530
0
}
11531
11532
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT(
11533
    VkCommandBuffer                             commandBuffer,
11534
    VkBuffer                                    buffer,
11535
    VkDeviceSize                                offset,
11536
    VkBuffer                                    countBuffer,
11537
    VkDeviceSize                                countBufferOffset,
11538
    uint32_t                                    maxDrawCount,
11539
0
    uint32_t                                    stride) {
11540
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11541
0
    if (NULL == disp) {
11542
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11543
0
                   "vkCmdDrawMeshTasksIndirectCountEXT: Invalid commandBuffer "
11544
0
                   "[VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter]");
11545
0
        abort(); /* Intentionally fail so user can correct issue. */
11546
0
    }
11547
0
    disp->CmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
11548
0
}
11549
11550
// GPA helpers for extensions
11551
0
bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr) {
11552
0
    *addr = NULL;
11553
11554
11555
    // ---- VK_KHR_video_queue extension commands
11556
0
    if (!strcmp("vkGetPhysicalDeviceVideoCapabilitiesKHR", name)) {
11557
0
        *addr = (void *)GetPhysicalDeviceVideoCapabilitiesKHR;
11558
0
        return true;
11559
0
    }
11560
0
    if (!strcmp("vkGetPhysicalDeviceVideoFormatPropertiesKHR", name)) {
11561
0
        *addr = (void *)GetPhysicalDeviceVideoFormatPropertiesKHR;
11562
0
        return true;
11563
0
    }
11564
0
    if (!strcmp("vkCreateVideoSessionKHR", name)) {
11565
0
        *addr = (void *)CreateVideoSessionKHR;
11566
0
        return true;
11567
0
    }
11568
0
    if (!strcmp("vkDestroyVideoSessionKHR", name)) {
11569
0
        *addr = (void *)DestroyVideoSessionKHR;
11570
0
        return true;
11571
0
    }
11572
0
    if (!strcmp("vkGetVideoSessionMemoryRequirementsKHR", name)) {
11573
0
        *addr = (void *)GetVideoSessionMemoryRequirementsKHR;
11574
0
        return true;
11575
0
    }
11576
0
    if (!strcmp("vkBindVideoSessionMemoryKHR", name)) {
11577
0
        *addr = (void *)BindVideoSessionMemoryKHR;
11578
0
        return true;
11579
0
    }
11580
0
    if (!strcmp("vkCreateVideoSessionParametersKHR", name)) {
11581
0
        *addr = (void *)CreateVideoSessionParametersKHR;
11582
0
        return true;
11583
0
    }
11584
0
    if (!strcmp("vkUpdateVideoSessionParametersKHR", name)) {
11585
0
        *addr = (void *)UpdateVideoSessionParametersKHR;
11586
0
        return true;
11587
0
    }
11588
0
    if (!strcmp("vkDestroyVideoSessionParametersKHR", name)) {
11589
0
        *addr = (void *)DestroyVideoSessionParametersKHR;
11590
0
        return true;
11591
0
    }
11592
0
    if (!strcmp("vkCmdBeginVideoCodingKHR", name)) {
11593
0
        *addr = (void *)CmdBeginVideoCodingKHR;
11594
0
        return true;
11595
0
    }
11596
0
    if (!strcmp("vkCmdEndVideoCodingKHR", name)) {
11597
0
        *addr = (void *)CmdEndVideoCodingKHR;
11598
0
        return true;
11599
0
    }
11600
0
    if (!strcmp("vkCmdControlVideoCodingKHR", name)) {
11601
0
        *addr = (void *)CmdControlVideoCodingKHR;
11602
0
        return true;
11603
0
    }
11604
11605
    // ---- VK_KHR_video_decode_queue extension commands
11606
0
    if (!strcmp("vkCmdDecodeVideoKHR", name)) {
11607
0
        *addr = (void *)CmdDecodeVideoKHR;
11608
0
        return true;
11609
0
    }
11610
11611
    // ---- VK_KHR_dynamic_rendering extension commands
11612
0
    if (!strcmp("vkCmdBeginRenderingKHR", name)) {
11613
0
        *addr = (void *)CmdBeginRenderingKHR;
11614
0
        return true;
11615
0
    }
11616
0
    if (!strcmp("vkCmdEndRenderingKHR", name)) {
11617
0
        *addr = (void *)CmdEndRenderingKHR;
11618
0
        return true;
11619
0
    }
11620
11621
    // ---- VK_KHR_get_physical_device_properties2 extension commands
11622
0
    if (!strcmp("vkGetPhysicalDeviceFeatures2KHR", name)) {
11623
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11624
0
                     ? (void *)vkGetPhysicalDeviceFeatures2
11625
0
                     : NULL;
11626
0
        return true;
11627
0
    }
11628
0
    if (!strcmp("vkGetPhysicalDeviceProperties2KHR", name)) {
11629
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11630
0
                     ? (void *)vkGetPhysicalDeviceProperties2
11631
0
                     : NULL;
11632
0
        return true;
11633
0
    }
11634
0
    if (!strcmp("vkGetPhysicalDeviceFormatProperties2KHR", name)) {
11635
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11636
0
                     ? (void *)vkGetPhysicalDeviceFormatProperties2
11637
0
                     : NULL;
11638
0
        return true;
11639
0
    }
11640
0
    if (!strcmp("vkGetPhysicalDeviceImageFormatProperties2KHR", name)) {
11641
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11642
0
                     ? (void *)vkGetPhysicalDeviceImageFormatProperties2
11643
0
                     : NULL;
11644
0
        return true;
11645
0
    }
11646
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyProperties2KHR", name)) {
11647
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11648
0
                     ? (void *)vkGetPhysicalDeviceQueueFamilyProperties2
11649
0
                     : NULL;
11650
0
        return true;
11651
0
    }
11652
0
    if (!strcmp("vkGetPhysicalDeviceMemoryProperties2KHR", name)) {
11653
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11654
0
                     ? (void *)vkGetPhysicalDeviceMemoryProperties2
11655
0
                     : NULL;
11656
0
        return true;
11657
0
    }
11658
0
    if (!strcmp("vkGetPhysicalDeviceSparseImageFormatProperties2KHR", name)) {
11659
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11660
0
                     ? (void *)vkGetPhysicalDeviceSparseImageFormatProperties2
11661
0
                     : NULL;
11662
0
        return true;
11663
0
    }
11664
11665
    // ---- VK_KHR_device_group extension commands
11666
0
    if (!strcmp("vkGetDeviceGroupPeerMemoryFeaturesKHR", name)) {
11667
0
        *addr = (void *)GetDeviceGroupPeerMemoryFeaturesKHR;
11668
0
        return true;
11669
0
    }
11670
0
    if (!strcmp("vkCmdSetDeviceMaskKHR", name)) {
11671
0
        *addr = (void *)CmdSetDeviceMaskKHR;
11672
0
        return true;
11673
0
    }
11674
0
    if (!strcmp("vkCmdDispatchBaseKHR", name)) {
11675
0
        *addr = (void *)CmdDispatchBaseKHR;
11676
0
        return true;
11677
0
    }
11678
11679
    // ---- VK_KHR_maintenance1 extension commands
11680
0
    if (!strcmp("vkTrimCommandPoolKHR", name)) {
11681
0
        *addr = (void *)TrimCommandPoolKHR;
11682
0
        return true;
11683
0
    }
11684
11685
    // ---- VK_KHR_device_group_creation extension commands
11686
0
    if (!strcmp("vkEnumeratePhysicalDeviceGroupsKHR", name)) {
11687
0
        *addr = (ptr_instance->enabled_extensions.khr_device_group_creation == 1)
11688
0
                     ? (void *)vkEnumeratePhysicalDeviceGroups
11689
0
                     : NULL;
11690
0
        return true;
11691
0
    }
11692
11693
    // ---- VK_KHR_external_memory_capabilities extension commands
11694
0
    if (!strcmp("vkGetPhysicalDeviceExternalBufferPropertiesKHR", name)) {
11695
0
        *addr = (ptr_instance->enabled_extensions.khr_external_memory_capabilities == 1)
11696
0
                     ? (void *)vkGetPhysicalDeviceExternalBufferProperties
11697
0
                     : NULL;
11698
0
        return true;
11699
0
    }
11700
11701
    // ---- VK_KHR_external_memory_win32 extension commands
11702
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11703
    if (!strcmp("vkGetMemoryWin32HandleKHR", name)) {
11704
        *addr = (void *)GetMemoryWin32HandleKHR;
11705
        return true;
11706
    }
11707
#endif // VK_USE_PLATFORM_WIN32_KHR
11708
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11709
    if (!strcmp("vkGetMemoryWin32HandlePropertiesKHR", name)) {
11710
        *addr = (void *)GetMemoryWin32HandlePropertiesKHR;
11711
        return true;
11712
    }
11713
#endif // VK_USE_PLATFORM_WIN32_KHR
11714
11715
    // ---- VK_KHR_external_memory_fd extension commands
11716
0
    if (!strcmp("vkGetMemoryFdKHR", name)) {
11717
0
        *addr = (void *)GetMemoryFdKHR;
11718
0
        return true;
11719
0
    }
11720
0
    if (!strcmp("vkGetMemoryFdPropertiesKHR", name)) {
11721
0
        *addr = (void *)GetMemoryFdPropertiesKHR;
11722
0
        return true;
11723
0
    }
11724
11725
    // ---- VK_KHR_external_semaphore_capabilities extension commands
11726
0
    if (!strcmp("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR", name)) {
11727
0
        *addr = (ptr_instance->enabled_extensions.khr_external_semaphore_capabilities == 1)
11728
0
                     ? (void *)vkGetPhysicalDeviceExternalSemaphoreProperties
11729
0
                     : NULL;
11730
0
        return true;
11731
0
    }
11732
11733
    // ---- VK_KHR_external_semaphore_win32 extension commands
11734
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11735
    if (!strcmp("vkImportSemaphoreWin32HandleKHR", name)) {
11736
        *addr = (void *)ImportSemaphoreWin32HandleKHR;
11737
        return true;
11738
    }
11739
#endif // VK_USE_PLATFORM_WIN32_KHR
11740
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11741
    if (!strcmp("vkGetSemaphoreWin32HandleKHR", name)) {
11742
        *addr = (void *)GetSemaphoreWin32HandleKHR;
11743
        return true;
11744
    }
11745
#endif // VK_USE_PLATFORM_WIN32_KHR
11746
11747
    // ---- VK_KHR_external_semaphore_fd extension commands
11748
0
    if (!strcmp("vkImportSemaphoreFdKHR", name)) {
11749
0
        *addr = (void *)ImportSemaphoreFdKHR;
11750
0
        return true;
11751
0
    }
11752
0
    if (!strcmp("vkGetSemaphoreFdKHR", name)) {
11753
0
        *addr = (void *)GetSemaphoreFdKHR;
11754
0
        return true;
11755
0
    }
11756
11757
    // ---- VK_KHR_push_descriptor extension commands
11758
0
    if (!strcmp("vkCmdPushDescriptorSetKHR", name)) {
11759
0
        *addr = (void *)CmdPushDescriptorSetKHR;
11760
0
        return true;
11761
0
    }
11762
0
    if (!strcmp("vkCmdPushDescriptorSetWithTemplateKHR", name)) {
11763
0
        *addr = (void *)CmdPushDescriptorSetWithTemplateKHR;
11764
0
        return true;
11765
0
    }
11766
11767
    // ---- VK_KHR_descriptor_update_template extension commands
11768
0
    if (!strcmp("vkCreateDescriptorUpdateTemplateKHR", name)) {
11769
0
        *addr = (void *)CreateDescriptorUpdateTemplateKHR;
11770
0
        return true;
11771
0
    }
11772
0
    if (!strcmp("vkDestroyDescriptorUpdateTemplateKHR", name)) {
11773
0
        *addr = (void *)DestroyDescriptorUpdateTemplateKHR;
11774
0
        return true;
11775
0
    }
11776
0
    if (!strcmp("vkUpdateDescriptorSetWithTemplateKHR", name)) {
11777
0
        *addr = (void *)UpdateDescriptorSetWithTemplateKHR;
11778
0
        return true;
11779
0
    }
11780
11781
    // ---- VK_KHR_create_renderpass2 extension commands
11782
0
    if (!strcmp("vkCreateRenderPass2KHR", name)) {
11783
0
        *addr = (void *)CreateRenderPass2KHR;
11784
0
        return true;
11785
0
    }
11786
0
    if (!strcmp("vkCmdBeginRenderPass2KHR", name)) {
11787
0
        *addr = (void *)CmdBeginRenderPass2KHR;
11788
0
        return true;
11789
0
    }
11790
0
    if (!strcmp("vkCmdNextSubpass2KHR", name)) {
11791
0
        *addr = (void *)CmdNextSubpass2KHR;
11792
0
        return true;
11793
0
    }
11794
0
    if (!strcmp("vkCmdEndRenderPass2KHR", name)) {
11795
0
        *addr = (void *)CmdEndRenderPass2KHR;
11796
0
        return true;
11797
0
    }
11798
11799
    // ---- VK_KHR_shared_presentable_image extension commands
11800
0
    if (!strcmp("vkGetSwapchainStatusKHR", name)) {
11801
0
        *addr = (void *)GetSwapchainStatusKHR;
11802
0
        return true;
11803
0
    }
11804
11805
    // ---- VK_KHR_external_fence_capabilities extension commands
11806
0
    if (!strcmp("vkGetPhysicalDeviceExternalFencePropertiesKHR", name)) {
11807
0
        *addr = (ptr_instance->enabled_extensions.khr_external_fence_capabilities == 1)
11808
0
                     ? (void *)vkGetPhysicalDeviceExternalFenceProperties
11809
0
                     : NULL;
11810
0
        return true;
11811
0
    }
11812
11813
    // ---- VK_KHR_external_fence_win32 extension commands
11814
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11815
    if (!strcmp("vkImportFenceWin32HandleKHR", name)) {
11816
        *addr = (void *)ImportFenceWin32HandleKHR;
11817
        return true;
11818
    }
11819
#endif // VK_USE_PLATFORM_WIN32_KHR
11820
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11821
    if (!strcmp("vkGetFenceWin32HandleKHR", name)) {
11822
        *addr = (void *)GetFenceWin32HandleKHR;
11823
        return true;
11824
    }
11825
#endif // VK_USE_PLATFORM_WIN32_KHR
11826
11827
    // ---- VK_KHR_external_fence_fd extension commands
11828
0
    if (!strcmp("vkImportFenceFdKHR", name)) {
11829
0
        *addr = (void *)ImportFenceFdKHR;
11830
0
        return true;
11831
0
    }
11832
0
    if (!strcmp("vkGetFenceFdKHR", name)) {
11833
0
        *addr = (void *)GetFenceFdKHR;
11834
0
        return true;
11835
0
    }
11836
11837
    // ---- VK_KHR_performance_query extension commands
11838
0
    if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR", name)) {
11839
0
        *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
11840
0
        return true;
11841
0
    }
11842
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", name)) {
11843
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
11844
0
        return true;
11845
0
    }
11846
0
    if (!strcmp("vkAcquireProfilingLockKHR", name)) {
11847
0
        *addr = (void *)AcquireProfilingLockKHR;
11848
0
        return true;
11849
0
    }
11850
0
    if (!strcmp("vkReleaseProfilingLockKHR", name)) {
11851
0
        *addr = (void *)ReleaseProfilingLockKHR;
11852
0
        return true;
11853
0
    }
11854
11855
    // ---- VK_KHR_get_memory_requirements2 extension commands
11856
0
    if (!strcmp("vkGetImageMemoryRequirements2KHR", name)) {
11857
0
        *addr = (void *)GetImageMemoryRequirements2KHR;
11858
0
        return true;
11859
0
    }
11860
0
    if (!strcmp("vkGetBufferMemoryRequirements2KHR", name)) {
11861
0
        *addr = (void *)GetBufferMemoryRequirements2KHR;
11862
0
        return true;
11863
0
    }
11864
0
    if (!strcmp("vkGetImageSparseMemoryRequirements2KHR", name)) {
11865
0
        *addr = (void *)GetImageSparseMemoryRequirements2KHR;
11866
0
        return true;
11867
0
    }
11868
11869
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
11870
0
    if (!strcmp("vkCreateSamplerYcbcrConversionKHR", name)) {
11871
0
        *addr = (void *)CreateSamplerYcbcrConversionKHR;
11872
0
        return true;
11873
0
    }
11874
0
    if (!strcmp("vkDestroySamplerYcbcrConversionKHR", name)) {
11875
0
        *addr = (void *)DestroySamplerYcbcrConversionKHR;
11876
0
        return true;
11877
0
    }
11878
11879
    // ---- VK_KHR_bind_memory2 extension commands
11880
0
    if (!strcmp("vkBindBufferMemory2KHR", name)) {
11881
0
        *addr = (void *)BindBufferMemory2KHR;
11882
0
        return true;
11883
0
    }
11884
0
    if (!strcmp("vkBindImageMemory2KHR", name)) {
11885
0
        *addr = (void *)BindImageMemory2KHR;
11886
0
        return true;
11887
0
    }
11888
11889
    // ---- VK_KHR_maintenance3 extension commands
11890
0
    if (!strcmp("vkGetDescriptorSetLayoutSupportKHR", name)) {
11891
0
        *addr = (void *)GetDescriptorSetLayoutSupportKHR;
11892
0
        return true;
11893
0
    }
11894
11895
    // ---- VK_KHR_draw_indirect_count extension commands
11896
0
    if (!strcmp("vkCmdDrawIndirectCountKHR", name)) {
11897
0
        *addr = (void *)CmdDrawIndirectCountKHR;
11898
0
        return true;
11899
0
    }
11900
0
    if (!strcmp("vkCmdDrawIndexedIndirectCountKHR", name)) {
11901
0
        *addr = (void *)CmdDrawIndexedIndirectCountKHR;
11902
0
        return true;
11903
0
    }
11904
11905
    // ---- VK_KHR_timeline_semaphore extension commands
11906
0
    if (!strcmp("vkGetSemaphoreCounterValueKHR", name)) {
11907
0
        *addr = (void *)GetSemaphoreCounterValueKHR;
11908
0
        return true;
11909
0
    }
11910
0
    if (!strcmp("vkWaitSemaphoresKHR", name)) {
11911
0
        *addr = (void *)WaitSemaphoresKHR;
11912
0
        return true;
11913
0
    }
11914
0
    if (!strcmp("vkSignalSemaphoreKHR", name)) {
11915
0
        *addr = (void *)SignalSemaphoreKHR;
11916
0
        return true;
11917
0
    }
11918
11919
    // ---- VK_KHR_fragment_shading_rate extension commands
11920
0
    if (!strcmp("vkGetPhysicalDeviceFragmentShadingRatesKHR", name)) {
11921
0
        *addr = (void *)GetPhysicalDeviceFragmentShadingRatesKHR;
11922
0
        return true;
11923
0
    }
11924
0
    if (!strcmp("vkCmdSetFragmentShadingRateKHR", name)) {
11925
0
        *addr = (void *)CmdSetFragmentShadingRateKHR;
11926
0
        return true;
11927
0
    }
11928
11929
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
11930
0
    if (!strcmp("vkCmdSetRenderingAttachmentLocationsKHR", name)) {
11931
0
        *addr = (void *)CmdSetRenderingAttachmentLocationsKHR;
11932
0
        return true;
11933
0
    }
11934
0
    if (!strcmp("vkCmdSetRenderingInputAttachmentIndicesKHR", name)) {
11935
0
        *addr = (void *)CmdSetRenderingInputAttachmentIndicesKHR;
11936
0
        return true;
11937
0
    }
11938
11939
    // ---- VK_KHR_present_wait extension commands
11940
0
    if (!strcmp("vkWaitForPresentKHR", name)) {
11941
0
        *addr = (void *)WaitForPresentKHR;
11942
0
        return true;
11943
0
    }
11944
11945
    // ---- VK_KHR_buffer_device_address extension commands
11946
0
    if (!strcmp("vkGetBufferDeviceAddressKHR", name)) {
11947
0
        *addr = (void *)GetBufferDeviceAddressKHR;
11948
0
        return true;
11949
0
    }
11950
0
    if (!strcmp("vkGetBufferOpaqueCaptureAddressKHR", name)) {
11951
0
        *addr = (void *)GetBufferOpaqueCaptureAddressKHR;
11952
0
        return true;
11953
0
    }
11954
0
    if (!strcmp("vkGetDeviceMemoryOpaqueCaptureAddressKHR", name)) {
11955
0
        *addr = (void *)GetDeviceMemoryOpaqueCaptureAddressKHR;
11956
0
        return true;
11957
0
    }
11958
11959
    // ---- VK_KHR_deferred_host_operations extension commands
11960
0
    if (!strcmp("vkCreateDeferredOperationKHR", name)) {
11961
0
        *addr = (void *)CreateDeferredOperationKHR;
11962
0
        return true;
11963
0
    }
11964
0
    if (!strcmp("vkDestroyDeferredOperationKHR", name)) {
11965
0
        *addr = (void *)DestroyDeferredOperationKHR;
11966
0
        return true;
11967
0
    }
11968
0
    if (!strcmp("vkGetDeferredOperationMaxConcurrencyKHR", name)) {
11969
0
        *addr = (void *)GetDeferredOperationMaxConcurrencyKHR;
11970
0
        return true;
11971
0
    }
11972
0
    if (!strcmp("vkGetDeferredOperationResultKHR", name)) {
11973
0
        *addr = (void *)GetDeferredOperationResultKHR;
11974
0
        return true;
11975
0
    }
11976
0
    if (!strcmp("vkDeferredOperationJoinKHR", name)) {
11977
0
        *addr = (void *)DeferredOperationJoinKHR;
11978
0
        return true;
11979
0
    }
11980
11981
    // ---- VK_KHR_pipeline_executable_properties extension commands
11982
0
    if (!strcmp("vkGetPipelineExecutablePropertiesKHR", name)) {
11983
0
        *addr = (void *)GetPipelineExecutablePropertiesKHR;
11984
0
        return true;
11985
0
    }
11986
0
    if (!strcmp("vkGetPipelineExecutableStatisticsKHR", name)) {
11987
0
        *addr = (void *)GetPipelineExecutableStatisticsKHR;
11988
0
        return true;
11989
0
    }
11990
0
    if (!strcmp("vkGetPipelineExecutableInternalRepresentationsKHR", name)) {
11991
0
        *addr = (void *)GetPipelineExecutableInternalRepresentationsKHR;
11992
0
        return true;
11993
0
    }
11994
11995
    // ---- VK_KHR_map_memory2 extension commands
11996
0
    if (!strcmp("vkMapMemory2KHR", name)) {
11997
0
        *addr = (void *)MapMemory2KHR;
11998
0
        return true;
11999
0
    }
12000
0
    if (!strcmp("vkUnmapMemory2KHR", name)) {
12001
0
        *addr = (void *)UnmapMemory2KHR;
12002
0
        return true;
12003
0
    }
12004
12005
    // ---- VK_KHR_video_encode_queue extension commands
12006
0
    if (!strcmp("vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR", name)) {
12007
0
        *addr = (void *)GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
12008
0
        return true;
12009
0
    }
12010
0
    if (!strcmp("vkGetEncodedVideoSessionParametersKHR", name)) {
12011
0
        *addr = (void *)GetEncodedVideoSessionParametersKHR;
12012
0
        return true;
12013
0
    }
12014
0
    if (!strcmp("vkCmdEncodeVideoKHR", name)) {
12015
0
        *addr = (void *)CmdEncodeVideoKHR;
12016
0
        return true;
12017
0
    }
12018
12019
    // ---- VK_KHR_synchronization2 extension commands
12020
0
    if (!strcmp("vkCmdSetEvent2KHR", name)) {
12021
0
        *addr = (void *)CmdSetEvent2KHR;
12022
0
        return true;
12023
0
    }
12024
0
    if (!strcmp("vkCmdResetEvent2KHR", name)) {
12025
0
        *addr = (void *)CmdResetEvent2KHR;
12026
0
        return true;
12027
0
    }
12028
0
    if (!strcmp("vkCmdWaitEvents2KHR", name)) {
12029
0
        *addr = (void *)CmdWaitEvents2KHR;
12030
0
        return true;
12031
0
    }
12032
0
    if (!strcmp("vkCmdPipelineBarrier2KHR", name)) {
12033
0
        *addr = (void *)CmdPipelineBarrier2KHR;
12034
0
        return true;
12035
0
    }
12036
0
    if (!strcmp("vkCmdWriteTimestamp2KHR", name)) {
12037
0
        *addr = (void *)CmdWriteTimestamp2KHR;
12038
0
        return true;
12039
0
    }
12040
0
    if (!strcmp("vkQueueSubmit2KHR", name)) {
12041
0
        *addr = (void *)QueueSubmit2KHR;
12042
0
        return true;
12043
0
    }
12044
12045
    // ---- VK_KHR_copy_commands2 extension commands
12046
0
    if (!strcmp("vkCmdCopyBuffer2KHR", name)) {
12047
0
        *addr = (void *)CmdCopyBuffer2KHR;
12048
0
        return true;
12049
0
    }
12050
0
    if (!strcmp("vkCmdCopyImage2KHR", name)) {
12051
0
        *addr = (void *)CmdCopyImage2KHR;
12052
0
        return true;
12053
0
    }
12054
0
    if (!strcmp("vkCmdCopyBufferToImage2KHR", name)) {
12055
0
        *addr = (void *)CmdCopyBufferToImage2KHR;
12056
0
        return true;
12057
0
    }
12058
0
    if (!strcmp("vkCmdCopyImageToBuffer2KHR", name)) {
12059
0
        *addr = (void *)CmdCopyImageToBuffer2KHR;
12060
0
        return true;
12061
0
    }
12062
0
    if (!strcmp("vkCmdBlitImage2KHR", name)) {
12063
0
        *addr = (void *)CmdBlitImage2KHR;
12064
0
        return true;
12065
0
    }
12066
0
    if (!strcmp("vkCmdResolveImage2KHR", name)) {
12067
0
        *addr = (void *)CmdResolveImage2KHR;
12068
0
        return true;
12069
0
    }
12070
12071
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
12072
0
    if (!strcmp("vkCmdTraceRaysIndirect2KHR", name)) {
12073
0
        *addr = (void *)CmdTraceRaysIndirect2KHR;
12074
0
        return true;
12075
0
    }
12076
12077
    // ---- VK_KHR_maintenance4 extension commands
12078
0
    if (!strcmp("vkGetDeviceBufferMemoryRequirementsKHR", name)) {
12079
0
        *addr = (void *)GetDeviceBufferMemoryRequirementsKHR;
12080
0
        return true;
12081
0
    }
12082
0
    if (!strcmp("vkGetDeviceImageMemoryRequirementsKHR", name)) {
12083
0
        *addr = (void *)GetDeviceImageMemoryRequirementsKHR;
12084
0
        return true;
12085
0
    }
12086
0
    if (!strcmp("vkGetDeviceImageSparseMemoryRequirementsKHR", name)) {
12087
0
        *addr = (void *)GetDeviceImageSparseMemoryRequirementsKHR;
12088
0
        return true;
12089
0
    }
12090
12091
    // ---- VK_KHR_maintenance5 extension commands
12092
0
    if (!strcmp("vkCmdBindIndexBuffer2KHR", name)) {
12093
0
        *addr = (void *)CmdBindIndexBuffer2KHR;
12094
0
        return true;
12095
0
    }
12096
0
    if (!strcmp("vkGetRenderingAreaGranularityKHR", name)) {
12097
0
        *addr = (void *)GetRenderingAreaGranularityKHR;
12098
0
        return true;
12099
0
    }
12100
0
    if (!strcmp("vkGetDeviceImageSubresourceLayoutKHR", name)) {
12101
0
        *addr = (void *)GetDeviceImageSubresourceLayoutKHR;
12102
0
        return true;
12103
0
    }
12104
0
    if (!strcmp("vkGetImageSubresourceLayout2KHR", name)) {
12105
0
        *addr = (void *)GetImageSubresourceLayout2KHR;
12106
0
        return true;
12107
0
    }
12108
12109
    // ---- VK_KHR_present_wait2 extension commands
12110
0
    if (!strcmp("vkWaitForPresent2KHR", name)) {
12111
0
        *addr = (void *)WaitForPresent2KHR;
12112
0
        return true;
12113
0
    }
12114
12115
    // ---- VK_KHR_pipeline_binary extension commands
12116
0
    if (!strcmp("vkCreatePipelineBinariesKHR", name)) {
12117
0
        *addr = (void *)CreatePipelineBinariesKHR;
12118
0
        return true;
12119
0
    }
12120
0
    if (!strcmp("vkDestroyPipelineBinaryKHR", name)) {
12121
0
        *addr = (void *)DestroyPipelineBinaryKHR;
12122
0
        return true;
12123
0
    }
12124
0
    if (!strcmp("vkGetPipelineKeyKHR", name)) {
12125
0
        *addr = (void *)GetPipelineKeyKHR;
12126
0
        return true;
12127
0
    }
12128
0
    if (!strcmp("vkGetPipelineBinaryDataKHR", name)) {
12129
0
        *addr = (void *)GetPipelineBinaryDataKHR;
12130
0
        return true;
12131
0
    }
12132
0
    if (!strcmp("vkReleaseCapturedPipelineDataKHR", name)) {
12133
0
        *addr = (void *)ReleaseCapturedPipelineDataKHR;
12134
0
        return true;
12135
0
    }
12136
12137
    // ---- VK_KHR_swapchain_maintenance1 extension commands
12138
0
    if (!strcmp("vkReleaseSwapchainImagesKHR", name)) {
12139
0
        *addr = (void *)ReleaseSwapchainImagesKHR;
12140
0
        return true;
12141
0
    }
12142
12143
    // ---- VK_KHR_cooperative_matrix extension commands
12144
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", name)) {
12145
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
12146
0
        return true;
12147
0
    }
12148
12149
    // ---- VK_KHR_line_rasterization extension commands
12150
0
    if (!strcmp("vkCmdSetLineStippleKHR", name)) {
12151
0
        *addr = (void *)CmdSetLineStippleKHR;
12152
0
        return true;
12153
0
    }
12154
12155
    // ---- VK_KHR_calibrated_timestamps extension commands
12156
0
    if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", name)) {
12157
0
        *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsKHR;
12158
0
        return true;
12159
0
    }
12160
0
    if (!strcmp("vkGetCalibratedTimestampsKHR", name)) {
12161
0
        *addr = (void *)GetCalibratedTimestampsKHR;
12162
0
        return true;
12163
0
    }
12164
12165
    // ---- VK_KHR_maintenance6 extension commands
12166
0
    if (!strcmp("vkCmdBindDescriptorSets2KHR", name)) {
12167
0
        *addr = (void *)CmdBindDescriptorSets2KHR;
12168
0
        return true;
12169
0
    }
12170
0
    if (!strcmp("vkCmdPushConstants2KHR", name)) {
12171
0
        *addr = (void *)CmdPushConstants2KHR;
12172
0
        return true;
12173
0
    }
12174
0
    if (!strcmp("vkCmdPushDescriptorSet2KHR", name)) {
12175
0
        *addr = (void *)CmdPushDescriptorSet2KHR;
12176
0
        return true;
12177
0
    }
12178
0
    if (!strcmp("vkCmdPushDescriptorSetWithTemplate2KHR", name)) {
12179
0
        *addr = (void *)CmdPushDescriptorSetWithTemplate2KHR;
12180
0
        return true;
12181
0
    }
12182
0
    if (!strcmp("vkCmdSetDescriptorBufferOffsets2EXT", name)) {
12183
0
        *addr = (void *)CmdSetDescriptorBufferOffsets2EXT;
12184
0
        return true;
12185
0
    }
12186
0
    if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplers2EXT", name)) {
12187
0
        *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplers2EXT;
12188
0
        return true;
12189
0
    }
12190
12191
    // ---- VK_KHR_copy_memory_indirect extension commands
12192
0
    if (!strcmp("vkCmdCopyMemoryIndirectKHR", name)) {
12193
0
        *addr = (void *)CmdCopyMemoryIndirectKHR;
12194
0
        return true;
12195
0
    }
12196
0
    if (!strcmp("vkCmdCopyMemoryToImageIndirectKHR", name)) {
12197
0
        *addr = (void *)CmdCopyMemoryToImageIndirectKHR;
12198
0
        return true;
12199
0
    }
12200
12201
    // ---- VK_KHR_maintenance10 extension commands
12202
0
    if (!strcmp("vkCmdEndRendering2KHR", name)) {
12203
0
        *addr = (void *)CmdEndRendering2KHR;
12204
0
        return true;
12205
0
    }
12206
12207
    // ---- VK_EXT_debug_marker extension commands
12208
0
    if (!strcmp("vkDebugMarkerSetObjectTagEXT", name)) {
12209
0
        *addr = (void *)DebugMarkerSetObjectTagEXT;
12210
0
        return true;
12211
0
    }
12212
0
    if (!strcmp("vkDebugMarkerSetObjectNameEXT", name)) {
12213
0
        *addr = (void *)DebugMarkerSetObjectNameEXT;
12214
0
        return true;
12215
0
    }
12216
0
    if (!strcmp("vkCmdDebugMarkerBeginEXT", name)) {
12217
0
        *addr = (void *)CmdDebugMarkerBeginEXT;
12218
0
        return true;
12219
0
    }
12220
0
    if (!strcmp("vkCmdDebugMarkerEndEXT", name)) {
12221
0
        *addr = (void *)CmdDebugMarkerEndEXT;
12222
0
        return true;
12223
0
    }
12224
0
    if (!strcmp("vkCmdDebugMarkerInsertEXT", name)) {
12225
0
        *addr = (void *)CmdDebugMarkerInsertEXT;
12226
0
        return true;
12227
0
    }
12228
12229
    // ---- VK_EXT_transform_feedback extension commands
12230
0
    if (!strcmp("vkCmdBindTransformFeedbackBuffersEXT", name)) {
12231
0
        *addr = (void *)CmdBindTransformFeedbackBuffersEXT;
12232
0
        return true;
12233
0
    }
12234
0
    if (!strcmp("vkCmdBeginTransformFeedbackEXT", name)) {
12235
0
        *addr = (void *)CmdBeginTransformFeedbackEXT;
12236
0
        return true;
12237
0
    }
12238
0
    if (!strcmp("vkCmdEndTransformFeedbackEXT", name)) {
12239
0
        *addr = (void *)CmdEndTransformFeedbackEXT;
12240
0
        return true;
12241
0
    }
12242
0
    if (!strcmp("vkCmdBeginQueryIndexedEXT", name)) {
12243
0
        *addr = (void *)CmdBeginQueryIndexedEXT;
12244
0
        return true;
12245
0
    }
12246
0
    if (!strcmp("vkCmdEndQueryIndexedEXT", name)) {
12247
0
        *addr = (void *)CmdEndQueryIndexedEXT;
12248
0
        return true;
12249
0
    }
12250
0
    if (!strcmp("vkCmdDrawIndirectByteCountEXT", name)) {
12251
0
        *addr = (void *)CmdDrawIndirectByteCountEXT;
12252
0
        return true;
12253
0
    }
12254
12255
    // ---- VK_NVX_binary_import extension commands
12256
0
    if (!strcmp("vkCreateCuModuleNVX", name)) {
12257
0
        *addr = (void *)CreateCuModuleNVX;
12258
0
        return true;
12259
0
    }
12260
0
    if (!strcmp("vkCreateCuFunctionNVX", name)) {
12261
0
        *addr = (void *)CreateCuFunctionNVX;
12262
0
        return true;
12263
0
    }
12264
0
    if (!strcmp("vkDestroyCuModuleNVX", name)) {
12265
0
        *addr = (void *)DestroyCuModuleNVX;
12266
0
        return true;
12267
0
    }
12268
0
    if (!strcmp("vkDestroyCuFunctionNVX", name)) {
12269
0
        *addr = (void *)DestroyCuFunctionNVX;
12270
0
        return true;
12271
0
    }
12272
0
    if (!strcmp("vkCmdCuLaunchKernelNVX", name)) {
12273
0
        *addr = (void *)CmdCuLaunchKernelNVX;
12274
0
        return true;
12275
0
    }
12276
12277
    // ---- VK_NVX_image_view_handle extension commands
12278
0
    if (!strcmp("vkGetImageViewHandleNVX", name)) {
12279
0
        *addr = (void *)GetImageViewHandleNVX;
12280
0
        return true;
12281
0
    }
12282
0
    if (!strcmp("vkGetImageViewHandle64NVX", name)) {
12283
0
        *addr = (void *)GetImageViewHandle64NVX;
12284
0
        return true;
12285
0
    }
12286
0
    if (!strcmp("vkGetImageViewAddressNVX", name)) {
12287
0
        *addr = (void *)GetImageViewAddressNVX;
12288
0
        return true;
12289
0
    }
12290
12291
    // ---- VK_AMD_draw_indirect_count extension commands
12292
0
    if (!strcmp("vkCmdDrawIndirectCountAMD", name)) {
12293
0
        *addr = (void *)CmdDrawIndirectCountAMD;
12294
0
        return true;
12295
0
    }
12296
0
    if (!strcmp("vkCmdDrawIndexedIndirectCountAMD", name)) {
12297
0
        *addr = (void *)CmdDrawIndexedIndirectCountAMD;
12298
0
        return true;
12299
0
    }
12300
12301
    // ---- VK_AMD_shader_info extension commands
12302
0
    if (!strcmp("vkGetShaderInfoAMD", name)) {
12303
0
        *addr = (void *)GetShaderInfoAMD;
12304
0
        return true;
12305
0
    }
12306
12307
    // ---- VK_NV_external_memory_capabilities extension commands
12308
0
    if (!strcmp("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", name)) {
12309
0
        *addr = (ptr_instance->enabled_extensions.nv_external_memory_capabilities == 1)
12310
0
                     ? (void *)GetPhysicalDeviceExternalImageFormatPropertiesNV
12311
0
                     : NULL;
12312
0
        return true;
12313
0
    }
12314
12315
    // ---- VK_NV_external_memory_win32 extension commands
12316
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12317
    if (!strcmp("vkGetMemoryWin32HandleNV", name)) {
12318
        *addr = (void *)GetMemoryWin32HandleNV;
12319
        return true;
12320
    }
12321
#endif // VK_USE_PLATFORM_WIN32_KHR
12322
12323
    // ---- VK_EXT_conditional_rendering extension commands
12324
0
    if (!strcmp("vkCmdBeginConditionalRenderingEXT", name)) {
12325
0
        *addr = (void *)CmdBeginConditionalRenderingEXT;
12326
0
        return true;
12327
0
    }
12328
0
    if (!strcmp("vkCmdEndConditionalRenderingEXT", name)) {
12329
0
        *addr = (void *)CmdEndConditionalRenderingEXT;
12330
0
        return true;
12331
0
    }
12332
12333
    // ---- VK_NV_clip_space_w_scaling extension commands
12334
0
    if (!strcmp("vkCmdSetViewportWScalingNV", name)) {
12335
0
        *addr = (void *)CmdSetViewportWScalingNV;
12336
0
        return true;
12337
0
    }
12338
12339
    // ---- VK_EXT_direct_mode_display extension commands
12340
0
    if (!strcmp("vkReleaseDisplayEXT", name)) {
12341
0
        *addr = (ptr_instance->enabled_extensions.ext_direct_mode_display == 1)
12342
0
                     ? (void *)ReleaseDisplayEXT
12343
0
                     : NULL;
12344
0
        return true;
12345
0
    }
12346
12347
    // ---- VK_EXT_acquire_xlib_display extension commands
12348
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
12349
0
    if (!strcmp("vkAcquireXlibDisplayEXT", name)) {
12350
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_xlib_display == 1)
12351
0
                     ? (void *)AcquireXlibDisplayEXT
12352
0
                     : NULL;
12353
0
        return true;
12354
0
    }
12355
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
12356
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
12357
0
    if (!strcmp("vkGetRandROutputDisplayEXT", name)) {
12358
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_xlib_display == 1)
12359
0
                     ? (void *)GetRandROutputDisplayEXT
12360
0
                     : NULL;
12361
0
        return true;
12362
0
    }
12363
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
12364
12365
    // ---- VK_EXT_display_surface_counter extension commands
12366
0
    if (!strcmp("vkGetPhysicalDeviceSurfaceCapabilities2EXT", name)) {
12367
0
        *addr = (ptr_instance->enabled_extensions.ext_display_surface_counter == 1)
12368
0
                     ? (void *)GetPhysicalDeviceSurfaceCapabilities2EXT
12369
0
                     : NULL;
12370
0
        return true;
12371
0
    }
12372
12373
    // ---- VK_EXT_display_control extension commands
12374
0
    if (!strcmp("vkDisplayPowerControlEXT", name)) {
12375
0
        *addr = (void *)DisplayPowerControlEXT;
12376
0
        return true;
12377
0
    }
12378
0
    if (!strcmp("vkRegisterDeviceEventEXT", name)) {
12379
0
        *addr = (void *)RegisterDeviceEventEXT;
12380
0
        return true;
12381
0
    }
12382
0
    if (!strcmp("vkRegisterDisplayEventEXT", name)) {
12383
0
        *addr = (void *)RegisterDisplayEventEXT;
12384
0
        return true;
12385
0
    }
12386
0
    if (!strcmp("vkGetSwapchainCounterEXT", name)) {
12387
0
        *addr = (void *)GetSwapchainCounterEXT;
12388
0
        return true;
12389
0
    }
12390
12391
    // ---- VK_GOOGLE_display_timing extension commands
12392
0
    if (!strcmp("vkGetRefreshCycleDurationGOOGLE", name)) {
12393
0
        *addr = (void *)GetRefreshCycleDurationGOOGLE;
12394
0
        return true;
12395
0
    }
12396
0
    if (!strcmp("vkGetPastPresentationTimingGOOGLE", name)) {
12397
0
        *addr = (void *)GetPastPresentationTimingGOOGLE;
12398
0
        return true;
12399
0
    }
12400
12401
    // ---- VK_EXT_discard_rectangles extension commands
12402
0
    if (!strcmp("vkCmdSetDiscardRectangleEXT", name)) {
12403
0
        *addr = (void *)CmdSetDiscardRectangleEXT;
12404
0
        return true;
12405
0
    }
12406
0
    if (!strcmp("vkCmdSetDiscardRectangleEnableEXT", name)) {
12407
0
        *addr = (void *)CmdSetDiscardRectangleEnableEXT;
12408
0
        return true;
12409
0
    }
12410
0
    if (!strcmp("vkCmdSetDiscardRectangleModeEXT", name)) {
12411
0
        *addr = (void *)CmdSetDiscardRectangleModeEXT;
12412
0
        return true;
12413
0
    }
12414
12415
    // ---- VK_EXT_hdr_metadata extension commands
12416
0
    if (!strcmp("vkSetHdrMetadataEXT", name)) {
12417
0
        *addr = (void *)SetHdrMetadataEXT;
12418
0
        return true;
12419
0
    }
12420
12421
    // ---- VK_EXT_debug_utils extension commands
12422
0
    if (!strcmp("vkSetDebugUtilsObjectNameEXT", name)) {
12423
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12424
0
                     ? (void *)SetDebugUtilsObjectNameEXT
12425
0
                     : NULL;
12426
0
        return true;
12427
0
    }
12428
0
    if (!strcmp("vkSetDebugUtilsObjectTagEXT", name)) {
12429
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12430
0
                     ? (void *)SetDebugUtilsObjectTagEXT
12431
0
                     : NULL;
12432
0
        return true;
12433
0
    }
12434
0
    if (!strcmp("vkQueueBeginDebugUtilsLabelEXT", name)) {
12435
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12436
0
                     ? (void *)QueueBeginDebugUtilsLabelEXT
12437
0
                     : NULL;
12438
0
        return true;
12439
0
    }
12440
0
    if (!strcmp("vkQueueEndDebugUtilsLabelEXT", name)) {
12441
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12442
0
                     ? (void *)QueueEndDebugUtilsLabelEXT
12443
0
                     : NULL;
12444
0
        return true;
12445
0
    }
12446
0
    if (!strcmp("vkQueueInsertDebugUtilsLabelEXT", name)) {
12447
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12448
0
                     ? (void *)QueueInsertDebugUtilsLabelEXT
12449
0
                     : NULL;
12450
0
        return true;
12451
0
    }
12452
0
    if (!strcmp("vkCmdBeginDebugUtilsLabelEXT", name)) {
12453
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12454
0
                     ? (void *)CmdBeginDebugUtilsLabelEXT
12455
0
                     : NULL;
12456
0
        return true;
12457
0
    }
12458
0
    if (!strcmp("vkCmdEndDebugUtilsLabelEXT", name)) {
12459
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12460
0
                     ? (void *)CmdEndDebugUtilsLabelEXT
12461
0
                     : NULL;
12462
0
        return true;
12463
0
    }
12464
0
    if (!strcmp("vkCmdInsertDebugUtilsLabelEXT", name)) {
12465
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12466
0
                     ? (void *)CmdInsertDebugUtilsLabelEXT
12467
0
                     : NULL;
12468
0
        return true;
12469
0
    }
12470
12471
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
12472
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
12473
    if (!strcmp("vkGetAndroidHardwareBufferPropertiesANDROID", name)) {
12474
        *addr = (void *)GetAndroidHardwareBufferPropertiesANDROID;
12475
        return true;
12476
    }
12477
#endif // VK_USE_PLATFORM_ANDROID_KHR
12478
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
12479
    if (!strcmp("vkGetMemoryAndroidHardwareBufferANDROID", name)) {
12480
        *addr = (void *)GetMemoryAndroidHardwareBufferANDROID;
12481
        return true;
12482
    }
12483
#endif // VK_USE_PLATFORM_ANDROID_KHR
12484
12485
    // ---- VK_AMDX_shader_enqueue extension commands
12486
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12487
0
    if (!strcmp("vkCreateExecutionGraphPipelinesAMDX", name)) {
12488
0
        *addr = (void *)CreateExecutionGraphPipelinesAMDX;
12489
0
        return true;
12490
0
    }
12491
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12492
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12493
0
    if (!strcmp("vkGetExecutionGraphPipelineScratchSizeAMDX", name)) {
12494
0
        *addr = (void *)GetExecutionGraphPipelineScratchSizeAMDX;
12495
0
        return true;
12496
0
    }
12497
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12498
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12499
0
    if (!strcmp("vkGetExecutionGraphPipelineNodeIndexAMDX", name)) {
12500
0
        *addr = (void *)GetExecutionGraphPipelineNodeIndexAMDX;
12501
0
        return true;
12502
0
    }
12503
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12504
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12505
0
    if (!strcmp("vkCmdInitializeGraphScratchMemoryAMDX", name)) {
12506
0
        *addr = (void *)CmdInitializeGraphScratchMemoryAMDX;
12507
0
        return true;
12508
0
    }
12509
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12510
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12511
0
    if (!strcmp("vkCmdDispatchGraphAMDX", name)) {
12512
0
        *addr = (void *)CmdDispatchGraphAMDX;
12513
0
        return true;
12514
0
    }
12515
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12516
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12517
0
    if (!strcmp("vkCmdDispatchGraphIndirectAMDX", name)) {
12518
0
        *addr = (void *)CmdDispatchGraphIndirectAMDX;
12519
0
        return true;
12520
0
    }
12521
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12522
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12523
0
    if (!strcmp("vkCmdDispatchGraphIndirectCountAMDX", name)) {
12524
0
        *addr = (void *)CmdDispatchGraphIndirectCountAMDX;
12525
0
        return true;
12526
0
    }
12527
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12528
12529
    // ---- VK_EXT_sample_locations extension commands
12530
0
    if (!strcmp("vkCmdSetSampleLocationsEXT", name)) {
12531
0
        *addr = (void *)CmdSetSampleLocationsEXT;
12532
0
        return true;
12533
0
    }
12534
0
    if (!strcmp("vkGetPhysicalDeviceMultisamplePropertiesEXT", name)) {
12535
0
        *addr = (void *)GetPhysicalDeviceMultisamplePropertiesEXT;
12536
0
        return true;
12537
0
    }
12538
12539
    // ---- VK_EXT_image_drm_format_modifier extension commands
12540
0
    if (!strcmp("vkGetImageDrmFormatModifierPropertiesEXT", name)) {
12541
0
        *addr = (void *)GetImageDrmFormatModifierPropertiesEXT;
12542
0
        return true;
12543
0
    }
12544
12545
    // ---- VK_EXT_validation_cache extension commands
12546
0
    if (!strcmp("vkCreateValidationCacheEXT", name)) {
12547
0
        *addr = (void *)CreateValidationCacheEXT;
12548
0
        return true;
12549
0
    }
12550
0
    if (!strcmp("vkDestroyValidationCacheEXT", name)) {
12551
0
        *addr = (void *)DestroyValidationCacheEXT;
12552
0
        return true;
12553
0
    }
12554
0
    if (!strcmp("vkMergeValidationCachesEXT", name)) {
12555
0
        *addr = (void *)MergeValidationCachesEXT;
12556
0
        return true;
12557
0
    }
12558
0
    if (!strcmp("vkGetValidationCacheDataEXT", name)) {
12559
0
        *addr = (void *)GetValidationCacheDataEXT;
12560
0
        return true;
12561
0
    }
12562
12563
    // ---- VK_NV_shading_rate_image extension commands
12564
0
    if (!strcmp("vkCmdBindShadingRateImageNV", name)) {
12565
0
        *addr = (void *)CmdBindShadingRateImageNV;
12566
0
        return true;
12567
0
    }
12568
0
    if (!strcmp("vkCmdSetViewportShadingRatePaletteNV", name)) {
12569
0
        *addr = (void *)CmdSetViewportShadingRatePaletteNV;
12570
0
        return true;
12571
0
    }
12572
0
    if (!strcmp("vkCmdSetCoarseSampleOrderNV", name)) {
12573
0
        *addr = (void *)CmdSetCoarseSampleOrderNV;
12574
0
        return true;
12575
0
    }
12576
12577
    // ---- VK_NV_ray_tracing extension commands
12578
0
    if (!strcmp("vkCreateAccelerationStructureNV", name)) {
12579
0
        *addr = (void *)CreateAccelerationStructureNV;
12580
0
        return true;
12581
0
    }
12582
0
    if (!strcmp("vkDestroyAccelerationStructureNV", name)) {
12583
0
        *addr = (void *)DestroyAccelerationStructureNV;
12584
0
        return true;
12585
0
    }
12586
0
    if (!strcmp("vkGetAccelerationStructureMemoryRequirementsNV", name)) {
12587
0
        *addr = (void *)GetAccelerationStructureMemoryRequirementsNV;
12588
0
        return true;
12589
0
    }
12590
0
    if (!strcmp("vkBindAccelerationStructureMemoryNV", name)) {
12591
0
        *addr = (void *)BindAccelerationStructureMemoryNV;
12592
0
        return true;
12593
0
    }
12594
0
    if (!strcmp("vkCmdBuildAccelerationStructureNV", name)) {
12595
0
        *addr = (void *)CmdBuildAccelerationStructureNV;
12596
0
        return true;
12597
0
    }
12598
0
    if (!strcmp("vkCmdCopyAccelerationStructureNV", name)) {
12599
0
        *addr = (void *)CmdCopyAccelerationStructureNV;
12600
0
        return true;
12601
0
    }
12602
0
    if (!strcmp("vkCmdTraceRaysNV", name)) {
12603
0
        *addr = (void *)CmdTraceRaysNV;
12604
0
        return true;
12605
0
    }
12606
0
    if (!strcmp("vkCreateRayTracingPipelinesNV", name)) {
12607
0
        *addr = (void *)CreateRayTracingPipelinesNV;
12608
0
        return true;
12609
0
    }
12610
12611
    // ---- VK_KHR_ray_tracing_pipeline extension commands
12612
0
    if (!strcmp("vkGetRayTracingShaderGroupHandlesKHR", name)) {
12613
0
        *addr = (void *)GetRayTracingShaderGroupHandlesKHR;
12614
0
        return true;
12615
0
    }
12616
12617
    // ---- VK_NV_ray_tracing extension commands
12618
0
    if (!strcmp("vkGetRayTracingShaderGroupHandlesNV", name)) {
12619
0
        *addr = (void *)GetRayTracingShaderGroupHandlesNV;
12620
0
        return true;
12621
0
    }
12622
0
    if (!strcmp("vkGetAccelerationStructureHandleNV", name)) {
12623
0
        *addr = (void *)GetAccelerationStructureHandleNV;
12624
0
        return true;
12625
0
    }
12626
0
    if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesNV", name)) {
12627
0
        *addr = (void *)CmdWriteAccelerationStructuresPropertiesNV;
12628
0
        return true;
12629
0
    }
12630
0
    if (!strcmp("vkCompileDeferredNV", name)) {
12631
0
        *addr = (void *)CompileDeferredNV;
12632
0
        return true;
12633
0
    }
12634
12635
    // ---- VK_EXT_external_memory_host extension commands
12636
0
    if (!strcmp("vkGetMemoryHostPointerPropertiesEXT", name)) {
12637
0
        *addr = (void *)GetMemoryHostPointerPropertiesEXT;
12638
0
        return true;
12639
0
    }
12640
12641
    // ---- VK_AMD_buffer_marker extension commands
12642
0
    if (!strcmp("vkCmdWriteBufferMarkerAMD", name)) {
12643
0
        *addr = (void *)CmdWriteBufferMarkerAMD;
12644
0
        return true;
12645
0
    }
12646
0
    if (!strcmp("vkCmdWriteBufferMarker2AMD", name)) {
12647
0
        *addr = (void *)CmdWriteBufferMarker2AMD;
12648
0
        return true;
12649
0
    }
12650
12651
    // ---- VK_EXT_calibrated_timestamps extension commands
12652
0
    if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", name)) {
12653
0
        *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsEXT;
12654
0
        return true;
12655
0
    }
12656
0
    if (!strcmp("vkGetCalibratedTimestampsEXT", name)) {
12657
0
        *addr = (void *)GetCalibratedTimestampsEXT;
12658
0
        return true;
12659
0
    }
12660
12661
    // ---- VK_NV_mesh_shader extension commands
12662
0
    if (!strcmp("vkCmdDrawMeshTasksNV", name)) {
12663
0
        *addr = (void *)CmdDrawMeshTasksNV;
12664
0
        return true;
12665
0
    }
12666
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectNV", name)) {
12667
0
        *addr = (void *)CmdDrawMeshTasksIndirectNV;
12668
0
        return true;
12669
0
    }
12670
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectCountNV", name)) {
12671
0
        *addr = (void *)CmdDrawMeshTasksIndirectCountNV;
12672
0
        return true;
12673
0
    }
12674
12675
    // ---- VK_NV_scissor_exclusive extension commands
12676
0
    if (!strcmp("vkCmdSetExclusiveScissorEnableNV", name)) {
12677
0
        *addr = (void *)CmdSetExclusiveScissorEnableNV;
12678
0
        return true;
12679
0
    }
12680
0
    if (!strcmp("vkCmdSetExclusiveScissorNV", name)) {
12681
0
        *addr = (void *)CmdSetExclusiveScissorNV;
12682
0
        return true;
12683
0
    }
12684
12685
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
12686
0
    if (!strcmp("vkCmdSetCheckpointNV", name)) {
12687
0
        *addr = (void *)CmdSetCheckpointNV;
12688
0
        return true;
12689
0
    }
12690
0
    if (!strcmp("vkGetQueueCheckpointDataNV", name)) {
12691
0
        *addr = (void *)GetQueueCheckpointDataNV;
12692
0
        return true;
12693
0
    }
12694
0
    if (!strcmp("vkGetQueueCheckpointData2NV", name)) {
12695
0
        *addr = (void *)GetQueueCheckpointData2NV;
12696
0
        return true;
12697
0
    }
12698
12699
    // ---- VK_EXT_present_timing extension commands
12700
0
    if (!strcmp("vkSetSwapchainPresentTimingQueueSizeEXT", name)) {
12701
0
        *addr = (void *)SetSwapchainPresentTimingQueueSizeEXT;
12702
0
        return true;
12703
0
    }
12704
0
    if (!strcmp("vkGetSwapchainTimingPropertiesEXT", name)) {
12705
0
        *addr = (void *)GetSwapchainTimingPropertiesEXT;
12706
0
        return true;
12707
0
    }
12708
0
    if (!strcmp("vkGetSwapchainTimeDomainPropertiesEXT", name)) {
12709
0
        *addr = (void *)GetSwapchainTimeDomainPropertiesEXT;
12710
0
        return true;
12711
0
    }
12712
0
    if (!strcmp("vkGetPastPresentationTimingEXT", name)) {
12713
0
        *addr = (void *)GetPastPresentationTimingEXT;
12714
0
        return true;
12715
0
    }
12716
12717
    // ---- VK_INTEL_performance_query extension commands
12718
0
    if (!strcmp("vkInitializePerformanceApiINTEL", name)) {
12719
0
        *addr = (void *)InitializePerformanceApiINTEL;
12720
0
        return true;
12721
0
    }
12722
0
    if (!strcmp("vkUninitializePerformanceApiINTEL", name)) {
12723
0
        *addr = (void *)UninitializePerformanceApiINTEL;
12724
0
        return true;
12725
0
    }
12726
0
    if (!strcmp("vkCmdSetPerformanceMarkerINTEL", name)) {
12727
0
        *addr = (void *)CmdSetPerformanceMarkerINTEL;
12728
0
        return true;
12729
0
    }
12730
0
    if (!strcmp("vkCmdSetPerformanceStreamMarkerINTEL", name)) {
12731
0
        *addr = (void *)CmdSetPerformanceStreamMarkerINTEL;
12732
0
        return true;
12733
0
    }
12734
0
    if (!strcmp("vkCmdSetPerformanceOverrideINTEL", name)) {
12735
0
        *addr = (void *)CmdSetPerformanceOverrideINTEL;
12736
0
        return true;
12737
0
    }
12738
0
    if (!strcmp("vkAcquirePerformanceConfigurationINTEL", name)) {
12739
0
        *addr = (void *)AcquirePerformanceConfigurationINTEL;
12740
0
        return true;
12741
0
    }
12742
0
    if (!strcmp("vkReleasePerformanceConfigurationINTEL", name)) {
12743
0
        *addr = (void *)ReleasePerformanceConfigurationINTEL;
12744
0
        return true;
12745
0
    }
12746
0
    if (!strcmp("vkQueueSetPerformanceConfigurationINTEL", name)) {
12747
0
        *addr = (void *)QueueSetPerformanceConfigurationINTEL;
12748
0
        return true;
12749
0
    }
12750
0
    if (!strcmp("vkGetPerformanceParameterINTEL", name)) {
12751
0
        *addr = (void *)GetPerformanceParameterINTEL;
12752
0
        return true;
12753
0
    }
12754
12755
    // ---- VK_AMD_display_native_hdr extension commands
12756
0
    if (!strcmp("vkSetLocalDimmingAMD", name)) {
12757
0
        *addr = (void *)SetLocalDimmingAMD;
12758
0
        return true;
12759
0
    }
12760
12761
    // ---- VK_EXT_buffer_device_address extension commands
12762
0
    if (!strcmp("vkGetBufferDeviceAddressEXT", name)) {
12763
0
        *addr = (void *)GetBufferDeviceAddressEXT;
12764
0
        return true;
12765
0
    }
12766
12767
    // ---- VK_EXT_tooling_info extension commands
12768
0
    if (!strcmp("vkGetPhysicalDeviceToolPropertiesEXT", name)) {
12769
0
        *addr = (void *)GetPhysicalDeviceToolPropertiesEXT;
12770
0
        return true;
12771
0
    }
12772
12773
    // ---- VK_NV_cooperative_matrix extension commands
12774
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", name)) {
12775
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesNV;
12776
0
        return true;
12777
0
    }
12778
12779
    // ---- VK_NV_coverage_reduction_mode extension commands
12780
0
    if (!strcmp("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", name)) {
12781
0
        *addr = (void *)GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
12782
0
        return true;
12783
0
    }
12784
12785
    // ---- VK_EXT_full_screen_exclusive extension commands
12786
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12787
    if (!strcmp("vkGetPhysicalDeviceSurfacePresentModes2EXT", name)) {
12788
        *addr = (void *)GetPhysicalDeviceSurfacePresentModes2EXT;
12789
        return true;
12790
    }
12791
#endif // VK_USE_PLATFORM_WIN32_KHR
12792
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12793
    if (!strcmp("vkAcquireFullScreenExclusiveModeEXT", name)) {
12794
        *addr = (void *)AcquireFullScreenExclusiveModeEXT;
12795
        return true;
12796
    }
12797
#endif // VK_USE_PLATFORM_WIN32_KHR
12798
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12799
    if (!strcmp("vkReleaseFullScreenExclusiveModeEXT", name)) {
12800
        *addr = (void *)ReleaseFullScreenExclusiveModeEXT;
12801
        return true;
12802
    }
12803
#endif // VK_USE_PLATFORM_WIN32_KHR
12804
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12805
    if (!strcmp("vkGetDeviceGroupSurfacePresentModes2EXT", name)) {
12806
        *addr = (void *)GetDeviceGroupSurfacePresentModes2EXT;
12807
        return true;
12808
    }
12809
#endif // VK_USE_PLATFORM_WIN32_KHR
12810
12811
    // ---- VK_EXT_line_rasterization extension commands
12812
0
    if (!strcmp("vkCmdSetLineStippleEXT", name)) {
12813
0
        *addr = (void *)CmdSetLineStippleEXT;
12814
0
        return true;
12815
0
    }
12816
12817
    // ---- VK_EXT_host_query_reset extension commands
12818
0
    if (!strcmp("vkResetQueryPoolEXT", name)) {
12819
0
        *addr = (void *)ResetQueryPoolEXT;
12820
0
        return true;
12821
0
    }
12822
12823
    // ---- VK_EXT_extended_dynamic_state extension commands
12824
0
    if (!strcmp("vkCmdSetCullModeEXT", name)) {
12825
0
        *addr = (void *)CmdSetCullModeEXT;
12826
0
        return true;
12827
0
    }
12828
0
    if (!strcmp("vkCmdSetFrontFaceEXT", name)) {
12829
0
        *addr = (void *)CmdSetFrontFaceEXT;
12830
0
        return true;
12831
0
    }
12832
0
    if (!strcmp("vkCmdSetPrimitiveTopologyEXT", name)) {
12833
0
        *addr = (void *)CmdSetPrimitiveTopologyEXT;
12834
0
        return true;
12835
0
    }
12836
0
    if (!strcmp("vkCmdSetViewportWithCountEXT", name)) {
12837
0
        *addr = (void *)CmdSetViewportWithCountEXT;
12838
0
        return true;
12839
0
    }
12840
0
    if (!strcmp("vkCmdSetScissorWithCountEXT", name)) {
12841
0
        *addr = (void *)CmdSetScissorWithCountEXT;
12842
0
        return true;
12843
0
    }
12844
0
    if (!strcmp("vkCmdBindVertexBuffers2EXT", name)) {
12845
0
        *addr = (void *)CmdBindVertexBuffers2EXT;
12846
0
        return true;
12847
0
    }
12848
0
    if (!strcmp("vkCmdSetDepthTestEnableEXT", name)) {
12849
0
        *addr = (void *)CmdSetDepthTestEnableEXT;
12850
0
        return true;
12851
0
    }
12852
0
    if (!strcmp("vkCmdSetDepthWriteEnableEXT", name)) {
12853
0
        *addr = (void *)CmdSetDepthWriteEnableEXT;
12854
0
        return true;
12855
0
    }
12856
0
    if (!strcmp("vkCmdSetDepthCompareOpEXT", name)) {
12857
0
        *addr = (void *)CmdSetDepthCompareOpEXT;
12858
0
        return true;
12859
0
    }
12860
0
    if (!strcmp("vkCmdSetDepthBoundsTestEnableEXT", name)) {
12861
0
        *addr = (void *)CmdSetDepthBoundsTestEnableEXT;
12862
0
        return true;
12863
0
    }
12864
0
    if (!strcmp("vkCmdSetStencilTestEnableEXT", name)) {
12865
0
        *addr = (void *)CmdSetStencilTestEnableEXT;
12866
0
        return true;
12867
0
    }
12868
0
    if (!strcmp("vkCmdSetStencilOpEXT", name)) {
12869
0
        *addr = (void *)CmdSetStencilOpEXT;
12870
0
        return true;
12871
0
    }
12872
12873
    // ---- VK_EXT_host_image_copy extension commands
12874
0
    if (!strcmp("vkCopyMemoryToImageEXT", name)) {
12875
0
        *addr = (void *)CopyMemoryToImageEXT;
12876
0
        return true;
12877
0
    }
12878
0
    if (!strcmp("vkCopyImageToMemoryEXT", name)) {
12879
0
        *addr = (void *)CopyImageToMemoryEXT;
12880
0
        return true;
12881
0
    }
12882
0
    if (!strcmp("vkCopyImageToImageEXT", name)) {
12883
0
        *addr = (void *)CopyImageToImageEXT;
12884
0
        return true;
12885
0
    }
12886
0
    if (!strcmp("vkTransitionImageLayoutEXT", name)) {
12887
0
        *addr = (void *)TransitionImageLayoutEXT;
12888
0
        return true;
12889
0
    }
12890
0
    if (!strcmp("vkGetImageSubresourceLayout2EXT", name)) {
12891
0
        *addr = (void *)GetImageSubresourceLayout2EXT;
12892
0
        return true;
12893
0
    }
12894
12895
    // ---- VK_EXT_swapchain_maintenance1 extension commands
12896
0
    if (!strcmp("vkReleaseSwapchainImagesEXT", name)) {
12897
0
        *addr = (void *)ReleaseSwapchainImagesEXT;
12898
0
        return true;
12899
0
    }
12900
12901
    // ---- VK_NV_device_generated_commands extension commands
12902
0
    if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsNV", name)) {
12903
0
        *addr = (void *)GetGeneratedCommandsMemoryRequirementsNV;
12904
0
        return true;
12905
0
    }
12906
0
    if (!strcmp("vkCmdPreprocessGeneratedCommandsNV", name)) {
12907
0
        *addr = (void *)CmdPreprocessGeneratedCommandsNV;
12908
0
        return true;
12909
0
    }
12910
0
    if (!strcmp("vkCmdExecuteGeneratedCommandsNV", name)) {
12911
0
        *addr = (void *)CmdExecuteGeneratedCommandsNV;
12912
0
        return true;
12913
0
    }
12914
0
    if (!strcmp("vkCmdBindPipelineShaderGroupNV", name)) {
12915
0
        *addr = (void *)CmdBindPipelineShaderGroupNV;
12916
0
        return true;
12917
0
    }
12918
0
    if (!strcmp("vkCreateIndirectCommandsLayoutNV", name)) {
12919
0
        *addr = (void *)CreateIndirectCommandsLayoutNV;
12920
0
        return true;
12921
0
    }
12922
0
    if (!strcmp("vkDestroyIndirectCommandsLayoutNV", name)) {
12923
0
        *addr = (void *)DestroyIndirectCommandsLayoutNV;
12924
0
        return true;
12925
0
    }
12926
12927
    // ---- VK_EXT_depth_bias_control extension commands
12928
0
    if (!strcmp("vkCmdSetDepthBias2EXT", name)) {
12929
0
        *addr = (void *)CmdSetDepthBias2EXT;
12930
0
        return true;
12931
0
    }
12932
12933
    // ---- VK_EXT_acquire_drm_display extension commands
12934
0
    if (!strcmp("vkAcquireDrmDisplayEXT", name)) {
12935
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_drm_display == 1)
12936
0
                     ? (void *)AcquireDrmDisplayEXT
12937
0
                     : NULL;
12938
0
        return true;
12939
0
    }
12940
0
    if (!strcmp("vkGetDrmDisplayEXT", name)) {
12941
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_drm_display == 1)
12942
0
                     ? (void *)GetDrmDisplayEXT
12943
0
                     : NULL;
12944
0
        return true;
12945
0
    }
12946
12947
    // ---- VK_EXT_private_data extension commands
12948
0
    if (!strcmp("vkCreatePrivateDataSlotEXT", name)) {
12949
0
        *addr = (void *)CreatePrivateDataSlotEXT;
12950
0
        return true;
12951
0
    }
12952
0
    if (!strcmp("vkDestroyPrivateDataSlotEXT", name)) {
12953
0
        *addr = (void *)DestroyPrivateDataSlotEXT;
12954
0
        return true;
12955
0
    }
12956
0
    if (!strcmp("vkSetPrivateDataEXT", name)) {
12957
0
        *addr = (void *)SetPrivateDataEXT;
12958
0
        return true;
12959
0
    }
12960
0
    if (!strcmp("vkGetPrivateDataEXT", name)) {
12961
0
        *addr = (void *)GetPrivateDataEXT;
12962
0
        return true;
12963
0
    }
12964
12965
    // ---- VK_NV_cuda_kernel_launch extension commands
12966
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12967
0
    if (!strcmp("vkCreateCudaModuleNV", name)) {
12968
0
        *addr = (void *)CreateCudaModuleNV;
12969
0
        return true;
12970
0
    }
12971
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12972
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12973
0
    if (!strcmp("vkGetCudaModuleCacheNV", name)) {
12974
0
        *addr = (void *)GetCudaModuleCacheNV;
12975
0
        return true;
12976
0
    }
12977
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12978
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12979
0
    if (!strcmp("vkCreateCudaFunctionNV", name)) {
12980
0
        *addr = (void *)CreateCudaFunctionNV;
12981
0
        return true;
12982
0
    }
12983
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12984
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12985
0
    if (!strcmp("vkDestroyCudaModuleNV", name)) {
12986
0
        *addr = (void *)DestroyCudaModuleNV;
12987
0
        return true;
12988
0
    }
12989
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12990
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12991
0
    if (!strcmp("vkDestroyCudaFunctionNV", name)) {
12992
0
        *addr = (void *)DestroyCudaFunctionNV;
12993
0
        return true;
12994
0
    }
12995
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12996
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12997
0
    if (!strcmp("vkCmdCudaLaunchKernelNV", name)) {
12998
0
        *addr = (void *)CmdCudaLaunchKernelNV;
12999
0
        return true;
13000
0
    }
13001
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13002
13003
    // ---- VK_QCOM_tile_shading extension commands
13004
0
    if (!strcmp("vkCmdDispatchTileQCOM", name)) {
13005
0
        *addr = (void *)CmdDispatchTileQCOM;
13006
0
        return true;
13007
0
    }
13008
0
    if (!strcmp("vkCmdBeginPerTileExecutionQCOM", name)) {
13009
0
        *addr = (void *)CmdBeginPerTileExecutionQCOM;
13010
0
        return true;
13011
0
    }
13012
0
    if (!strcmp("vkCmdEndPerTileExecutionQCOM", name)) {
13013
0
        *addr = (void *)CmdEndPerTileExecutionQCOM;
13014
0
        return true;
13015
0
    }
13016
13017
    // ---- VK_EXT_metal_objects extension commands
13018
#if defined(VK_USE_PLATFORM_METAL_EXT)
13019
    if (!strcmp("vkExportMetalObjectsEXT", name)) {
13020
        *addr = (void *)ExportMetalObjectsEXT;
13021
        return true;
13022
    }
13023
#endif // VK_USE_PLATFORM_METAL_EXT
13024
13025
    // ---- VK_EXT_descriptor_buffer extension commands
13026
0
    if (!strcmp("vkGetDescriptorSetLayoutSizeEXT", name)) {
13027
0
        *addr = (void *)GetDescriptorSetLayoutSizeEXT;
13028
0
        return true;
13029
0
    }
13030
0
    if (!strcmp("vkGetDescriptorSetLayoutBindingOffsetEXT", name)) {
13031
0
        *addr = (void *)GetDescriptorSetLayoutBindingOffsetEXT;
13032
0
        return true;
13033
0
    }
13034
0
    if (!strcmp("vkGetDescriptorEXT", name)) {
13035
0
        *addr = (void *)GetDescriptorEXT;
13036
0
        return true;
13037
0
    }
13038
0
    if (!strcmp("vkCmdBindDescriptorBuffersEXT", name)) {
13039
0
        *addr = (void *)CmdBindDescriptorBuffersEXT;
13040
0
        return true;
13041
0
    }
13042
0
    if (!strcmp("vkCmdSetDescriptorBufferOffsetsEXT", name)) {
13043
0
        *addr = (void *)CmdSetDescriptorBufferOffsetsEXT;
13044
0
        return true;
13045
0
    }
13046
0
    if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplersEXT", name)) {
13047
0
        *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplersEXT;
13048
0
        return true;
13049
0
    }
13050
0
    if (!strcmp("vkGetBufferOpaqueCaptureDescriptorDataEXT", name)) {
13051
0
        *addr = (void *)GetBufferOpaqueCaptureDescriptorDataEXT;
13052
0
        return true;
13053
0
    }
13054
0
    if (!strcmp("vkGetImageOpaqueCaptureDescriptorDataEXT", name)) {
13055
0
        *addr = (void *)GetImageOpaqueCaptureDescriptorDataEXT;
13056
0
        return true;
13057
0
    }
13058
0
    if (!strcmp("vkGetImageViewOpaqueCaptureDescriptorDataEXT", name)) {
13059
0
        *addr = (void *)GetImageViewOpaqueCaptureDescriptorDataEXT;
13060
0
        return true;
13061
0
    }
13062
0
    if (!strcmp("vkGetSamplerOpaqueCaptureDescriptorDataEXT", name)) {
13063
0
        *addr = (void *)GetSamplerOpaqueCaptureDescriptorDataEXT;
13064
0
        return true;
13065
0
    }
13066
0
    if (!strcmp("vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT", name)) {
13067
0
        *addr = (void *)GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
13068
0
        return true;
13069
0
    }
13070
13071
    // ---- VK_NV_fragment_shading_rate_enums extension commands
13072
0
    if (!strcmp("vkCmdSetFragmentShadingRateEnumNV", name)) {
13073
0
        *addr = (void *)CmdSetFragmentShadingRateEnumNV;
13074
0
        return true;
13075
0
    }
13076
13077
    // ---- VK_EXT_device_fault extension commands
13078
0
    if (!strcmp("vkGetDeviceFaultInfoEXT", name)) {
13079
0
        *addr = (void *)GetDeviceFaultInfoEXT;
13080
0
        return true;
13081
0
    }
13082
13083
    // ---- VK_NV_acquire_winrt_display extension commands
13084
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13085
    if (!strcmp("vkAcquireWinrtDisplayNV", name)) {
13086
        *addr = (void *)AcquireWinrtDisplayNV;
13087
        return true;
13088
    }
13089
#endif // VK_USE_PLATFORM_WIN32_KHR
13090
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13091
    if (!strcmp("vkGetWinrtDisplayNV", name)) {
13092
        *addr = (void *)GetWinrtDisplayNV;
13093
        return true;
13094
    }
13095
#endif // VK_USE_PLATFORM_WIN32_KHR
13096
13097
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
13098
0
    if (!strcmp("vkCmdSetVertexInputEXT", name)) {
13099
0
        *addr = (void *)CmdSetVertexInputEXT;
13100
0
        return true;
13101
0
    }
13102
13103
    // ---- VK_FUCHSIA_external_memory extension commands
13104
#if defined(VK_USE_PLATFORM_FUCHSIA)
13105
    if (!strcmp("vkGetMemoryZirconHandleFUCHSIA", name)) {
13106
        *addr = (void *)GetMemoryZirconHandleFUCHSIA;
13107
        return true;
13108
    }
13109
#endif // VK_USE_PLATFORM_FUCHSIA
13110
#if defined(VK_USE_PLATFORM_FUCHSIA)
13111
    if (!strcmp("vkGetMemoryZirconHandlePropertiesFUCHSIA", name)) {
13112
        *addr = (void *)GetMemoryZirconHandlePropertiesFUCHSIA;
13113
        return true;
13114
    }
13115
#endif // VK_USE_PLATFORM_FUCHSIA
13116
13117
    // ---- VK_FUCHSIA_external_semaphore extension commands
13118
#if defined(VK_USE_PLATFORM_FUCHSIA)
13119
    if (!strcmp("vkImportSemaphoreZirconHandleFUCHSIA", name)) {
13120
        *addr = (void *)ImportSemaphoreZirconHandleFUCHSIA;
13121
        return true;
13122
    }
13123
#endif // VK_USE_PLATFORM_FUCHSIA
13124
#if defined(VK_USE_PLATFORM_FUCHSIA)
13125
    if (!strcmp("vkGetSemaphoreZirconHandleFUCHSIA", name)) {
13126
        *addr = (void *)GetSemaphoreZirconHandleFUCHSIA;
13127
        return true;
13128
    }
13129
#endif // VK_USE_PLATFORM_FUCHSIA
13130
13131
    // ---- VK_FUCHSIA_buffer_collection extension commands
13132
#if defined(VK_USE_PLATFORM_FUCHSIA)
13133
    if (!strcmp("vkCreateBufferCollectionFUCHSIA", name)) {
13134
        *addr = (void *)CreateBufferCollectionFUCHSIA;
13135
        return true;
13136
    }
13137
#endif // VK_USE_PLATFORM_FUCHSIA
13138
#if defined(VK_USE_PLATFORM_FUCHSIA)
13139
    if (!strcmp("vkSetBufferCollectionImageConstraintsFUCHSIA", name)) {
13140
        *addr = (void *)SetBufferCollectionImageConstraintsFUCHSIA;
13141
        return true;
13142
    }
13143
#endif // VK_USE_PLATFORM_FUCHSIA
13144
#if defined(VK_USE_PLATFORM_FUCHSIA)
13145
    if (!strcmp("vkSetBufferCollectionBufferConstraintsFUCHSIA", name)) {
13146
        *addr = (void *)SetBufferCollectionBufferConstraintsFUCHSIA;
13147
        return true;
13148
    }
13149
#endif // VK_USE_PLATFORM_FUCHSIA
13150
#if defined(VK_USE_PLATFORM_FUCHSIA)
13151
    if (!strcmp("vkDestroyBufferCollectionFUCHSIA", name)) {
13152
        *addr = (void *)DestroyBufferCollectionFUCHSIA;
13153
        return true;
13154
    }
13155
#endif // VK_USE_PLATFORM_FUCHSIA
13156
#if defined(VK_USE_PLATFORM_FUCHSIA)
13157
    if (!strcmp("vkGetBufferCollectionPropertiesFUCHSIA", name)) {
13158
        *addr = (void *)GetBufferCollectionPropertiesFUCHSIA;
13159
        return true;
13160
    }
13161
#endif // VK_USE_PLATFORM_FUCHSIA
13162
13163
    // ---- VK_HUAWEI_subpass_shading extension commands
13164
0
    if (!strcmp("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", name)) {
13165
0
        *addr = (void *)GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
13166
0
        return true;
13167
0
    }
13168
0
    if (!strcmp("vkCmdSubpassShadingHUAWEI", name)) {
13169
0
        *addr = (void *)CmdSubpassShadingHUAWEI;
13170
0
        return true;
13171
0
    }
13172
13173
    // ---- VK_HUAWEI_invocation_mask extension commands
13174
0
    if (!strcmp("vkCmdBindInvocationMaskHUAWEI", name)) {
13175
0
        *addr = (void *)CmdBindInvocationMaskHUAWEI;
13176
0
        return true;
13177
0
    }
13178
13179
    // ---- VK_NV_external_memory_rdma extension commands
13180
0
    if (!strcmp("vkGetMemoryRemoteAddressNV", name)) {
13181
0
        *addr = (void *)GetMemoryRemoteAddressNV;
13182
0
        return true;
13183
0
    }
13184
13185
    // ---- VK_EXT_pipeline_properties extension commands
13186
0
    if (!strcmp("vkGetPipelinePropertiesEXT", name)) {
13187
0
        *addr = (void *)GetPipelinePropertiesEXT;
13188
0
        return true;
13189
0
    }
13190
13191
    // ---- VK_EXT_extended_dynamic_state2 extension commands
13192
0
    if (!strcmp("vkCmdSetPatchControlPointsEXT", name)) {
13193
0
        *addr = (void *)CmdSetPatchControlPointsEXT;
13194
0
        return true;
13195
0
    }
13196
0
    if (!strcmp("vkCmdSetRasterizerDiscardEnableEXT", name)) {
13197
0
        *addr = (void *)CmdSetRasterizerDiscardEnableEXT;
13198
0
        return true;
13199
0
    }
13200
0
    if (!strcmp("vkCmdSetDepthBiasEnableEXT", name)) {
13201
0
        *addr = (void *)CmdSetDepthBiasEnableEXT;
13202
0
        return true;
13203
0
    }
13204
0
    if (!strcmp("vkCmdSetLogicOpEXT", name)) {
13205
0
        *addr = (void *)CmdSetLogicOpEXT;
13206
0
        return true;
13207
0
    }
13208
0
    if (!strcmp("vkCmdSetPrimitiveRestartEnableEXT", name)) {
13209
0
        *addr = (void *)CmdSetPrimitiveRestartEnableEXT;
13210
0
        return true;
13211
0
    }
13212
13213
    // ---- VK_EXT_color_write_enable extension commands
13214
0
    if (!strcmp("vkCmdSetColorWriteEnableEXT", name)) {
13215
0
        *addr = (void *)CmdSetColorWriteEnableEXT;
13216
0
        return true;
13217
0
    }
13218
13219
    // ---- VK_EXT_multi_draw extension commands
13220
0
    if (!strcmp("vkCmdDrawMultiEXT", name)) {
13221
0
        *addr = (void *)CmdDrawMultiEXT;
13222
0
        return true;
13223
0
    }
13224
0
    if (!strcmp("vkCmdDrawMultiIndexedEXT", name)) {
13225
0
        *addr = (void *)CmdDrawMultiIndexedEXT;
13226
0
        return true;
13227
0
    }
13228
13229
    // ---- VK_EXT_opacity_micromap extension commands
13230
0
    if (!strcmp("vkCreateMicromapEXT", name)) {
13231
0
        *addr = (void *)CreateMicromapEXT;
13232
0
        return true;
13233
0
    }
13234
0
    if (!strcmp("vkDestroyMicromapEXT", name)) {
13235
0
        *addr = (void *)DestroyMicromapEXT;
13236
0
        return true;
13237
0
    }
13238
0
    if (!strcmp("vkCmdBuildMicromapsEXT", name)) {
13239
0
        *addr = (void *)CmdBuildMicromapsEXT;
13240
0
        return true;
13241
0
    }
13242
0
    if (!strcmp("vkBuildMicromapsEXT", name)) {
13243
0
        *addr = (void *)BuildMicromapsEXT;
13244
0
        return true;
13245
0
    }
13246
0
    if (!strcmp("vkCopyMicromapEXT", name)) {
13247
0
        *addr = (void *)CopyMicromapEXT;
13248
0
        return true;
13249
0
    }
13250
0
    if (!strcmp("vkCopyMicromapToMemoryEXT", name)) {
13251
0
        *addr = (void *)CopyMicromapToMemoryEXT;
13252
0
        return true;
13253
0
    }
13254
0
    if (!strcmp("vkCopyMemoryToMicromapEXT", name)) {
13255
0
        *addr = (void *)CopyMemoryToMicromapEXT;
13256
0
        return true;
13257
0
    }
13258
0
    if (!strcmp("vkWriteMicromapsPropertiesEXT", name)) {
13259
0
        *addr = (void *)WriteMicromapsPropertiesEXT;
13260
0
        return true;
13261
0
    }
13262
0
    if (!strcmp("vkCmdCopyMicromapEXT", name)) {
13263
0
        *addr = (void *)CmdCopyMicromapEXT;
13264
0
        return true;
13265
0
    }
13266
0
    if (!strcmp("vkCmdCopyMicromapToMemoryEXT", name)) {
13267
0
        *addr = (void *)CmdCopyMicromapToMemoryEXT;
13268
0
        return true;
13269
0
    }
13270
0
    if (!strcmp("vkCmdCopyMemoryToMicromapEXT", name)) {
13271
0
        *addr = (void *)CmdCopyMemoryToMicromapEXT;
13272
0
        return true;
13273
0
    }
13274
0
    if (!strcmp("vkCmdWriteMicromapsPropertiesEXT", name)) {
13275
0
        *addr = (void *)CmdWriteMicromapsPropertiesEXT;
13276
0
        return true;
13277
0
    }
13278
0
    if (!strcmp("vkGetDeviceMicromapCompatibilityEXT", name)) {
13279
0
        *addr = (void *)GetDeviceMicromapCompatibilityEXT;
13280
0
        return true;
13281
0
    }
13282
0
    if (!strcmp("vkGetMicromapBuildSizesEXT", name)) {
13283
0
        *addr = (void *)GetMicromapBuildSizesEXT;
13284
0
        return true;
13285
0
    }
13286
13287
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
13288
0
    if (!strcmp("vkCmdDrawClusterHUAWEI", name)) {
13289
0
        *addr = (void *)CmdDrawClusterHUAWEI;
13290
0
        return true;
13291
0
    }
13292
0
    if (!strcmp("vkCmdDrawClusterIndirectHUAWEI", name)) {
13293
0
        *addr = (void *)CmdDrawClusterIndirectHUAWEI;
13294
0
        return true;
13295
0
    }
13296
13297
    // ---- VK_EXT_pageable_device_local_memory extension commands
13298
0
    if (!strcmp("vkSetDeviceMemoryPriorityEXT", name)) {
13299
0
        *addr = (void *)SetDeviceMemoryPriorityEXT;
13300
0
        return true;
13301
0
    }
13302
13303
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
13304
0
    if (!strcmp("vkGetDescriptorSetLayoutHostMappingInfoVALVE", name)) {
13305
0
        *addr = (void *)GetDescriptorSetLayoutHostMappingInfoVALVE;
13306
0
        return true;
13307
0
    }
13308
0
    if (!strcmp("vkGetDescriptorSetHostMappingVALVE", name)) {
13309
0
        *addr = (void *)GetDescriptorSetHostMappingVALVE;
13310
0
        return true;
13311
0
    }
13312
13313
    // ---- VK_NV_copy_memory_indirect extension commands
13314
0
    if (!strcmp("vkCmdCopyMemoryIndirectNV", name)) {
13315
0
        *addr = (void *)CmdCopyMemoryIndirectNV;
13316
0
        return true;
13317
0
    }
13318
0
    if (!strcmp("vkCmdCopyMemoryToImageIndirectNV", name)) {
13319
0
        *addr = (void *)CmdCopyMemoryToImageIndirectNV;
13320
0
        return true;
13321
0
    }
13322
13323
    // ---- VK_NV_memory_decompression extension commands
13324
0
    if (!strcmp("vkCmdDecompressMemoryNV", name)) {
13325
0
        *addr = (void *)CmdDecompressMemoryNV;
13326
0
        return true;
13327
0
    }
13328
0
    if (!strcmp("vkCmdDecompressMemoryIndirectCountNV", name)) {
13329
0
        *addr = (void *)CmdDecompressMemoryIndirectCountNV;
13330
0
        return true;
13331
0
    }
13332
13333
    // ---- VK_NV_device_generated_commands_compute extension commands
13334
0
    if (!strcmp("vkGetPipelineIndirectMemoryRequirementsNV", name)) {
13335
0
        *addr = (void *)GetPipelineIndirectMemoryRequirementsNV;
13336
0
        return true;
13337
0
    }
13338
0
    if (!strcmp("vkCmdUpdatePipelineIndirectBufferNV", name)) {
13339
0
        *addr = (void *)CmdUpdatePipelineIndirectBufferNV;
13340
0
        return true;
13341
0
    }
13342
0
    if (!strcmp("vkGetPipelineIndirectDeviceAddressNV", name)) {
13343
0
        *addr = (void *)GetPipelineIndirectDeviceAddressNV;
13344
0
        return true;
13345
0
    }
13346
13347
    // ---- VK_OHOS_external_memory extension commands
13348
#if defined(VK_USE_PLATFORM_OHOS)
13349
    if (!strcmp("vkGetNativeBufferPropertiesOHOS", name)) {
13350
        *addr = (void *)GetNativeBufferPropertiesOHOS;
13351
        return true;
13352
    }
13353
#endif // VK_USE_PLATFORM_OHOS
13354
#if defined(VK_USE_PLATFORM_OHOS)
13355
    if (!strcmp("vkGetMemoryNativeBufferOHOS", name)) {
13356
        *addr = (void *)GetMemoryNativeBufferOHOS;
13357
        return true;
13358
    }
13359
#endif // VK_USE_PLATFORM_OHOS
13360
13361
    // ---- VK_EXT_extended_dynamic_state3 extension commands
13362
0
    if (!strcmp("vkCmdSetDepthClampEnableEXT", name)) {
13363
0
        *addr = (void *)CmdSetDepthClampEnableEXT;
13364
0
        return true;
13365
0
    }
13366
0
    if (!strcmp("vkCmdSetPolygonModeEXT", name)) {
13367
0
        *addr = (void *)CmdSetPolygonModeEXT;
13368
0
        return true;
13369
0
    }
13370
0
    if (!strcmp("vkCmdSetRasterizationSamplesEXT", name)) {
13371
0
        *addr = (void *)CmdSetRasterizationSamplesEXT;
13372
0
        return true;
13373
0
    }
13374
0
    if (!strcmp("vkCmdSetSampleMaskEXT", name)) {
13375
0
        *addr = (void *)CmdSetSampleMaskEXT;
13376
0
        return true;
13377
0
    }
13378
0
    if (!strcmp("vkCmdSetAlphaToCoverageEnableEXT", name)) {
13379
0
        *addr = (void *)CmdSetAlphaToCoverageEnableEXT;
13380
0
        return true;
13381
0
    }
13382
0
    if (!strcmp("vkCmdSetAlphaToOneEnableEXT", name)) {
13383
0
        *addr = (void *)CmdSetAlphaToOneEnableEXT;
13384
0
        return true;
13385
0
    }
13386
0
    if (!strcmp("vkCmdSetLogicOpEnableEXT", name)) {
13387
0
        *addr = (void *)CmdSetLogicOpEnableEXT;
13388
0
        return true;
13389
0
    }
13390
0
    if (!strcmp("vkCmdSetColorBlendEnableEXT", name)) {
13391
0
        *addr = (void *)CmdSetColorBlendEnableEXT;
13392
0
        return true;
13393
0
    }
13394
0
    if (!strcmp("vkCmdSetColorBlendEquationEXT", name)) {
13395
0
        *addr = (void *)CmdSetColorBlendEquationEXT;
13396
0
        return true;
13397
0
    }
13398
0
    if (!strcmp("vkCmdSetColorWriteMaskEXT", name)) {
13399
0
        *addr = (void *)CmdSetColorWriteMaskEXT;
13400
0
        return true;
13401
0
    }
13402
0
    if (!strcmp("vkCmdSetTessellationDomainOriginEXT", name)) {
13403
0
        *addr = (void *)CmdSetTessellationDomainOriginEXT;
13404
0
        return true;
13405
0
    }
13406
0
    if (!strcmp("vkCmdSetRasterizationStreamEXT", name)) {
13407
0
        *addr = (void *)CmdSetRasterizationStreamEXT;
13408
0
        return true;
13409
0
    }
13410
0
    if (!strcmp("vkCmdSetConservativeRasterizationModeEXT", name)) {
13411
0
        *addr = (void *)CmdSetConservativeRasterizationModeEXT;
13412
0
        return true;
13413
0
    }
13414
0
    if (!strcmp("vkCmdSetExtraPrimitiveOverestimationSizeEXT", name)) {
13415
0
        *addr = (void *)CmdSetExtraPrimitiveOverestimationSizeEXT;
13416
0
        return true;
13417
0
    }
13418
0
    if (!strcmp("vkCmdSetDepthClipEnableEXT", name)) {
13419
0
        *addr = (void *)CmdSetDepthClipEnableEXT;
13420
0
        return true;
13421
0
    }
13422
0
    if (!strcmp("vkCmdSetSampleLocationsEnableEXT", name)) {
13423
0
        *addr = (void *)CmdSetSampleLocationsEnableEXT;
13424
0
        return true;
13425
0
    }
13426
0
    if (!strcmp("vkCmdSetColorBlendAdvancedEXT", name)) {
13427
0
        *addr = (void *)CmdSetColorBlendAdvancedEXT;
13428
0
        return true;
13429
0
    }
13430
0
    if (!strcmp("vkCmdSetProvokingVertexModeEXT", name)) {
13431
0
        *addr = (void *)CmdSetProvokingVertexModeEXT;
13432
0
        return true;
13433
0
    }
13434
0
    if (!strcmp("vkCmdSetLineRasterizationModeEXT", name)) {
13435
0
        *addr = (void *)CmdSetLineRasterizationModeEXT;
13436
0
        return true;
13437
0
    }
13438
0
    if (!strcmp("vkCmdSetLineStippleEnableEXT", name)) {
13439
0
        *addr = (void *)CmdSetLineStippleEnableEXT;
13440
0
        return true;
13441
0
    }
13442
0
    if (!strcmp("vkCmdSetDepthClipNegativeOneToOneEXT", name)) {
13443
0
        *addr = (void *)CmdSetDepthClipNegativeOneToOneEXT;
13444
0
        return true;
13445
0
    }
13446
0
    if (!strcmp("vkCmdSetViewportWScalingEnableNV", name)) {
13447
0
        *addr = (void *)CmdSetViewportWScalingEnableNV;
13448
0
        return true;
13449
0
    }
13450
0
    if (!strcmp("vkCmdSetViewportSwizzleNV", name)) {
13451
0
        *addr = (void *)CmdSetViewportSwizzleNV;
13452
0
        return true;
13453
0
    }
13454
0
    if (!strcmp("vkCmdSetCoverageToColorEnableNV", name)) {
13455
0
        *addr = (void *)CmdSetCoverageToColorEnableNV;
13456
0
        return true;
13457
0
    }
13458
0
    if (!strcmp("vkCmdSetCoverageToColorLocationNV", name)) {
13459
0
        *addr = (void *)CmdSetCoverageToColorLocationNV;
13460
0
        return true;
13461
0
    }
13462
0
    if (!strcmp("vkCmdSetCoverageModulationModeNV", name)) {
13463
0
        *addr = (void *)CmdSetCoverageModulationModeNV;
13464
0
        return true;
13465
0
    }
13466
0
    if (!strcmp("vkCmdSetCoverageModulationTableEnableNV", name)) {
13467
0
        *addr = (void *)CmdSetCoverageModulationTableEnableNV;
13468
0
        return true;
13469
0
    }
13470
0
    if (!strcmp("vkCmdSetCoverageModulationTableNV", name)) {
13471
0
        *addr = (void *)CmdSetCoverageModulationTableNV;
13472
0
        return true;
13473
0
    }
13474
0
    if (!strcmp("vkCmdSetShadingRateImageEnableNV", name)) {
13475
0
        *addr = (void *)CmdSetShadingRateImageEnableNV;
13476
0
        return true;
13477
0
    }
13478
0
    if (!strcmp("vkCmdSetRepresentativeFragmentTestEnableNV", name)) {
13479
0
        *addr = (void *)CmdSetRepresentativeFragmentTestEnableNV;
13480
0
        return true;
13481
0
    }
13482
0
    if (!strcmp("vkCmdSetCoverageReductionModeNV", name)) {
13483
0
        *addr = (void *)CmdSetCoverageReductionModeNV;
13484
0
        return true;
13485
0
    }
13486
13487
    // ---- VK_ARM_tensors extension commands
13488
0
    if (!strcmp("vkCreateTensorARM", name)) {
13489
0
        *addr = (void *)CreateTensorARM;
13490
0
        return true;
13491
0
    }
13492
0
    if (!strcmp("vkDestroyTensorARM", name)) {
13493
0
        *addr = (void *)DestroyTensorARM;
13494
0
        return true;
13495
0
    }
13496
0
    if (!strcmp("vkCreateTensorViewARM", name)) {
13497
0
        *addr = (void *)CreateTensorViewARM;
13498
0
        return true;
13499
0
    }
13500
0
    if (!strcmp("vkDestroyTensorViewARM", name)) {
13501
0
        *addr = (void *)DestroyTensorViewARM;
13502
0
        return true;
13503
0
    }
13504
0
    if (!strcmp("vkGetTensorMemoryRequirementsARM", name)) {
13505
0
        *addr = (void *)GetTensorMemoryRequirementsARM;
13506
0
        return true;
13507
0
    }
13508
0
    if (!strcmp("vkBindTensorMemoryARM", name)) {
13509
0
        *addr = (void *)BindTensorMemoryARM;
13510
0
        return true;
13511
0
    }
13512
0
    if (!strcmp("vkGetDeviceTensorMemoryRequirementsARM", name)) {
13513
0
        *addr = (void *)GetDeviceTensorMemoryRequirementsARM;
13514
0
        return true;
13515
0
    }
13516
0
    if (!strcmp("vkCmdCopyTensorARM", name)) {
13517
0
        *addr = (void *)CmdCopyTensorARM;
13518
0
        return true;
13519
0
    }
13520
0
    if (!strcmp("vkGetPhysicalDeviceExternalTensorPropertiesARM", name)) {
13521
0
        *addr = (void *)GetPhysicalDeviceExternalTensorPropertiesARM;
13522
0
        return true;
13523
0
    }
13524
0
    if (!strcmp("vkGetTensorOpaqueCaptureDescriptorDataARM", name)) {
13525
0
        *addr = (void *)GetTensorOpaqueCaptureDescriptorDataARM;
13526
0
        return true;
13527
0
    }
13528
0
    if (!strcmp("vkGetTensorViewOpaqueCaptureDescriptorDataARM", name)) {
13529
0
        *addr = (void *)GetTensorViewOpaqueCaptureDescriptorDataARM;
13530
0
        return true;
13531
0
    }
13532
13533
    // ---- VK_EXT_shader_module_identifier extension commands
13534
0
    if (!strcmp("vkGetShaderModuleIdentifierEXT", name)) {
13535
0
        *addr = (void *)GetShaderModuleIdentifierEXT;
13536
0
        return true;
13537
0
    }
13538
0
    if (!strcmp("vkGetShaderModuleCreateInfoIdentifierEXT", name)) {
13539
0
        *addr = (void *)GetShaderModuleCreateInfoIdentifierEXT;
13540
0
        return true;
13541
0
    }
13542
13543
    // ---- VK_NV_optical_flow extension commands
13544
0
    if (!strcmp("vkGetPhysicalDeviceOpticalFlowImageFormatsNV", name)) {
13545
0
        *addr = (void *)GetPhysicalDeviceOpticalFlowImageFormatsNV;
13546
0
        return true;
13547
0
    }
13548
0
    if (!strcmp("vkCreateOpticalFlowSessionNV", name)) {
13549
0
        *addr = (void *)CreateOpticalFlowSessionNV;
13550
0
        return true;
13551
0
    }
13552
0
    if (!strcmp("vkDestroyOpticalFlowSessionNV", name)) {
13553
0
        *addr = (void *)DestroyOpticalFlowSessionNV;
13554
0
        return true;
13555
0
    }
13556
0
    if (!strcmp("vkBindOpticalFlowSessionImageNV", name)) {
13557
0
        *addr = (void *)BindOpticalFlowSessionImageNV;
13558
0
        return true;
13559
0
    }
13560
0
    if (!strcmp("vkCmdOpticalFlowExecuteNV", name)) {
13561
0
        *addr = (void *)CmdOpticalFlowExecuteNV;
13562
0
        return true;
13563
0
    }
13564
13565
    // ---- VK_AMD_anti_lag extension commands
13566
0
    if (!strcmp("vkAntiLagUpdateAMD", name)) {
13567
0
        *addr = (void *)AntiLagUpdateAMD;
13568
0
        return true;
13569
0
    }
13570
13571
    // ---- VK_EXT_shader_object extension commands
13572
0
    if (!strcmp("vkCreateShadersEXT", name)) {
13573
0
        *addr = (void *)CreateShadersEXT;
13574
0
        return true;
13575
0
    }
13576
0
    if (!strcmp("vkDestroyShaderEXT", name)) {
13577
0
        *addr = (void *)DestroyShaderEXT;
13578
0
        return true;
13579
0
    }
13580
0
    if (!strcmp("vkGetShaderBinaryDataEXT", name)) {
13581
0
        *addr = (void *)GetShaderBinaryDataEXT;
13582
0
        return true;
13583
0
    }
13584
0
    if (!strcmp("vkCmdBindShadersEXT", name)) {
13585
0
        *addr = (void *)CmdBindShadersEXT;
13586
0
        return true;
13587
0
    }
13588
0
    if (!strcmp("vkCmdSetDepthClampRangeEXT", name)) {
13589
0
        *addr = (void *)CmdSetDepthClampRangeEXT;
13590
0
        return true;
13591
0
    }
13592
13593
    // ---- VK_QCOM_tile_properties extension commands
13594
0
    if (!strcmp("vkGetFramebufferTilePropertiesQCOM", name)) {
13595
0
        *addr = (void *)GetFramebufferTilePropertiesQCOM;
13596
0
        return true;
13597
0
    }
13598
0
    if (!strcmp("vkGetDynamicRenderingTilePropertiesQCOM", name)) {
13599
0
        *addr = (void *)GetDynamicRenderingTilePropertiesQCOM;
13600
0
        return true;
13601
0
    }
13602
13603
    // ---- VK_NV_cooperative_vector extension commands
13604
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeVectorPropertiesNV", name)) {
13605
0
        *addr = (void *)GetPhysicalDeviceCooperativeVectorPropertiesNV;
13606
0
        return true;
13607
0
    }
13608
0
    if (!strcmp("vkConvertCooperativeVectorMatrixNV", name)) {
13609
0
        *addr = (void *)ConvertCooperativeVectorMatrixNV;
13610
0
        return true;
13611
0
    }
13612
0
    if (!strcmp("vkCmdConvertCooperativeVectorMatrixNV", name)) {
13613
0
        *addr = (void *)CmdConvertCooperativeVectorMatrixNV;
13614
0
        return true;
13615
0
    }
13616
13617
    // ---- VK_NV_low_latency2 extension commands
13618
0
    if (!strcmp("vkSetLatencySleepModeNV", name)) {
13619
0
        *addr = (void *)SetLatencySleepModeNV;
13620
0
        return true;
13621
0
    }
13622
0
    if (!strcmp("vkLatencySleepNV", name)) {
13623
0
        *addr = (void *)LatencySleepNV;
13624
0
        return true;
13625
0
    }
13626
0
    if (!strcmp("vkSetLatencyMarkerNV", name)) {
13627
0
        *addr = (void *)SetLatencyMarkerNV;
13628
0
        return true;
13629
0
    }
13630
0
    if (!strcmp("vkGetLatencyTimingsNV", name)) {
13631
0
        *addr = (void *)GetLatencyTimingsNV;
13632
0
        return true;
13633
0
    }
13634
0
    if (!strcmp("vkQueueNotifyOutOfBandNV", name)) {
13635
0
        *addr = (void *)QueueNotifyOutOfBandNV;
13636
0
        return true;
13637
0
    }
13638
13639
    // ---- VK_ARM_data_graph extension commands
13640
0
    if (!strcmp("vkCreateDataGraphPipelinesARM", name)) {
13641
0
        *addr = (void *)CreateDataGraphPipelinesARM;
13642
0
        return true;
13643
0
    }
13644
0
    if (!strcmp("vkCreateDataGraphPipelineSessionARM", name)) {
13645
0
        *addr = (void *)CreateDataGraphPipelineSessionARM;
13646
0
        return true;
13647
0
    }
13648
0
    if (!strcmp("vkGetDataGraphPipelineSessionBindPointRequirementsARM", name)) {
13649
0
        *addr = (void *)GetDataGraphPipelineSessionBindPointRequirementsARM;
13650
0
        return true;
13651
0
    }
13652
0
    if (!strcmp("vkGetDataGraphPipelineSessionMemoryRequirementsARM", name)) {
13653
0
        *addr = (void *)GetDataGraphPipelineSessionMemoryRequirementsARM;
13654
0
        return true;
13655
0
    }
13656
0
    if (!strcmp("vkBindDataGraphPipelineSessionMemoryARM", name)) {
13657
0
        *addr = (void *)BindDataGraphPipelineSessionMemoryARM;
13658
0
        return true;
13659
0
    }
13660
0
    if (!strcmp("vkDestroyDataGraphPipelineSessionARM", name)) {
13661
0
        *addr = (void *)DestroyDataGraphPipelineSessionARM;
13662
0
        return true;
13663
0
    }
13664
0
    if (!strcmp("vkCmdDispatchDataGraphARM", name)) {
13665
0
        *addr = (void *)CmdDispatchDataGraphARM;
13666
0
        return true;
13667
0
    }
13668
0
    if (!strcmp("vkGetDataGraphPipelineAvailablePropertiesARM", name)) {
13669
0
        *addr = (void *)GetDataGraphPipelineAvailablePropertiesARM;
13670
0
        return true;
13671
0
    }
13672
0
    if (!strcmp("vkGetDataGraphPipelinePropertiesARM", name)) {
13673
0
        *addr = (void *)GetDataGraphPipelinePropertiesARM;
13674
0
        return true;
13675
0
    }
13676
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM", name)) {
13677
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM;
13678
0
        return true;
13679
0
    }
13680
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM", name)) {
13681
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM;
13682
0
        return true;
13683
0
    }
13684
13685
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
13686
0
    if (!strcmp("vkCmdSetAttachmentFeedbackLoopEnableEXT", name)) {
13687
0
        *addr = (void *)CmdSetAttachmentFeedbackLoopEnableEXT;
13688
0
        return true;
13689
0
    }
13690
13691
    // ---- VK_QNX_external_memory_screen_buffer extension commands
13692
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
13693
    if (!strcmp("vkGetScreenBufferPropertiesQNX", name)) {
13694
        *addr = (void *)GetScreenBufferPropertiesQNX;
13695
        return true;
13696
    }
13697
#endif // VK_USE_PLATFORM_SCREEN_QNX
13698
13699
    // ---- VK_QCOM_tile_memory_heap extension commands
13700
0
    if (!strcmp("vkCmdBindTileMemoryQCOM", name)) {
13701
0
        *addr = (void *)CmdBindTileMemoryQCOM;
13702
0
        return true;
13703
0
    }
13704
13705
    // ---- VK_EXT_memory_decompression extension commands
13706
0
    if (!strcmp("vkCmdDecompressMemoryEXT", name)) {
13707
0
        *addr = (void *)CmdDecompressMemoryEXT;
13708
0
        return true;
13709
0
    }
13710
0
    if (!strcmp("vkCmdDecompressMemoryIndirectCountEXT", name)) {
13711
0
        *addr = (void *)CmdDecompressMemoryIndirectCountEXT;
13712
0
        return true;
13713
0
    }
13714
13715
    // ---- VK_NV_external_compute_queue extension commands
13716
0
    if (!strcmp("vkCreateExternalComputeQueueNV", name)) {
13717
0
        *addr = (void *)CreateExternalComputeQueueNV;
13718
0
        return true;
13719
0
    }
13720
0
    if (!strcmp("vkDestroyExternalComputeQueueNV", name)) {
13721
0
        *addr = (void *)DestroyExternalComputeQueueNV;
13722
0
        return true;
13723
0
    }
13724
0
    if (!strcmp("vkGetExternalComputeQueueDataNV", name)) {
13725
0
        *addr = (void *)GetExternalComputeQueueDataNV;
13726
0
        return true;
13727
0
    }
13728
13729
    // ---- VK_NV_cluster_acceleration_structure extension commands
13730
0
    if (!strcmp("vkGetClusterAccelerationStructureBuildSizesNV", name)) {
13731
0
        *addr = (void *)GetClusterAccelerationStructureBuildSizesNV;
13732
0
        return true;
13733
0
    }
13734
0
    if (!strcmp("vkCmdBuildClusterAccelerationStructureIndirectNV", name)) {
13735
0
        *addr = (void *)CmdBuildClusterAccelerationStructureIndirectNV;
13736
0
        return true;
13737
0
    }
13738
13739
    // ---- VK_NV_partitioned_acceleration_structure extension commands
13740
0
    if (!strcmp("vkGetPartitionedAccelerationStructuresBuildSizesNV", name)) {
13741
0
        *addr = (void *)GetPartitionedAccelerationStructuresBuildSizesNV;
13742
0
        return true;
13743
0
    }
13744
0
    if (!strcmp("vkCmdBuildPartitionedAccelerationStructuresNV", name)) {
13745
0
        *addr = (void *)CmdBuildPartitionedAccelerationStructuresNV;
13746
0
        return true;
13747
0
    }
13748
13749
    // ---- VK_EXT_device_generated_commands extension commands
13750
0
    if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsEXT", name)) {
13751
0
        *addr = (void *)GetGeneratedCommandsMemoryRequirementsEXT;
13752
0
        return true;
13753
0
    }
13754
0
    if (!strcmp("vkCmdPreprocessGeneratedCommandsEXT", name)) {
13755
0
        *addr = (void *)CmdPreprocessGeneratedCommandsEXT;
13756
0
        return true;
13757
0
    }
13758
0
    if (!strcmp("vkCmdExecuteGeneratedCommandsEXT", name)) {
13759
0
        *addr = (void *)CmdExecuteGeneratedCommandsEXT;
13760
0
        return true;
13761
0
    }
13762
0
    if (!strcmp("vkCreateIndirectCommandsLayoutEXT", name)) {
13763
0
        *addr = (void *)CreateIndirectCommandsLayoutEXT;
13764
0
        return true;
13765
0
    }
13766
0
    if (!strcmp("vkDestroyIndirectCommandsLayoutEXT", name)) {
13767
0
        *addr = (void *)DestroyIndirectCommandsLayoutEXT;
13768
0
        return true;
13769
0
    }
13770
0
    if (!strcmp("vkCreateIndirectExecutionSetEXT", name)) {
13771
0
        *addr = (void *)CreateIndirectExecutionSetEXT;
13772
0
        return true;
13773
0
    }
13774
0
    if (!strcmp("vkDestroyIndirectExecutionSetEXT", name)) {
13775
0
        *addr = (void *)DestroyIndirectExecutionSetEXT;
13776
0
        return true;
13777
0
    }
13778
0
    if (!strcmp("vkUpdateIndirectExecutionSetPipelineEXT", name)) {
13779
0
        *addr = (void *)UpdateIndirectExecutionSetPipelineEXT;
13780
0
        return true;
13781
0
    }
13782
0
    if (!strcmp("vkUpdateIndirectExecutionSetShaderEXT", name)) {
13783
0
        *addr = (void *)UpdateIndirectExecutionSetShaderEXT;
13784
0
        return true;
13785
0
    }
13786
13787
    // ---- VK_OHOS_surface extension commands
13788
#if defined(VK_USE_PLATFORM_OHOS)
13789
    if (!strcmp("vkCreateSurfaceOHOS", name)) {
13790
        *addr = (ptr_instance->enabled_extensions.ohos_surface == 1)
13791
                     ? (void *)CreateSurfaceOHOS
13792
                     : NULL;
13793
        return true;
13794
    }
13795
#endif // VK_USE_PLATFORM_OHOS
13796
13797
    // ---- VK_OHOS_native_buffer extension commands
13798
#if defined(VK_USE_PLATFORM_OHOS)
13799
    if (!strcmp("vkGetSwapchainGrallocUsageOHOS", name)) {
13800
        *addr = (void *)GetSwapchainGrallocUsageOHOS;
13801
        return true;
13802
    }
13803
#endif // VK_USE_PLATFORM_OHOS
13804
#if defined(VK_USE_PLATFORM_OHOS)
13805
    if (!strcmp("vkAcquireImageOHOS", name)) {
13806
        *addr = (void *)AcquireImageOHOS;
13807
        return true;
13808
    }
13809
#endif // VK_USE_PLATFORM_OHOS
13810
#if defined(VK_USE_PLATFORM_OHOS)
13811
    if (!strcmp("vkQueueSignalReleaseImageOHOS", name)) {
13812
        *addr = (void *)QueueSignalReleaseImageOHOS;
13813
        return true;
13814
    }
13815
#endif // VK_USE_PLATFORM_OHOS
13816
13817
    // ---- VK_NV_cooperative_matrix2 extension commands
13818
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV", name)) {
13819
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
13820
0
        return true;
13821
0
    }
13822
13823
    // ---- VK_EXT_external_memory_metal extension commands
13824
#if defined(VK_USE_PLATFORM_METAL_EXT)
13825
    if (!strcmp("vkGetMemoryMetalHandleEXT", name)) {
13826
        *addr = (void *)GetMemoryMetalHandleEXT;
13827
        return true;
13828
    }
13829
#endif // VK_USE_PLATFORM_METAL_EXT
13830
#if defined(VK_USE_PLATFORM_METAL_EXT)
13831
    if (!strcmp("vkGetMemoryMetalHandlePropertiesEXT", name)) {
13832
        *addr = (void *)GetMemoryMetalHandlePropertiesEXT;
13833
        return true;
13834
    }
13835
#endif // VK_USE_PLATFORM_METAL_EXT
13836
13837
    // ---- VK_ARM_performance_counters_by_region extension commands
13838
0
    if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM", name)) {
13839
0
        *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;
13840
0
        return true;
13841
0
    }
13842
13843
    // ---- VK_EXT_fragment_density_map_offset extension commands
13844
0
    if (!strcmp("vkCmdEndRendering2EXT", name)) {
13845
0
        *addr = (void *)CmdEndRendering2EXT;
13846
0
        return true;
13847
0
    }
13848
13849
    // ---- VK_EXT_custom_resolve extension commands
13850
0
    if (!strcmp("vkCmdBeginCustomResolveEXT", name)) {
13851
0
        *addr = (void *)CmdBeginCustomResolveEXT;
13852
0
        return true;
13853
0
    }
13854
13855
    // ---- VK_KHR_acceleration_structure extension commands
13856
0
    if (!strcmp("vkCreateAccelerationStructureKHR", name)) {
13857
0
        *addr = (void *)CreateAccelerationStructureKHR;
13858
0
        return true;
13859
0
    }
13860
0
    if (!strcmp("vkDestroyAccelerationStructureKHR", name)) {
13861
0
        *addr = (void *)DestroyAccelerationStructureKHR;
13862
0
        return true;
13863
0
    }
13864
0
    if (!strcmp("vkCmdBuildAccelerationStructuresKHR", name)) {
13865
0
        *addr = (void *)CmdBuildAccelerationStructuresKHR;
13866
0
        return true;
13867
0
    }
13868
0
    if (!strcmp("vkCmdBuildAccelerationStructuresIndirectKHR", name)) {
13869
0
        *addr = (void *)CmdBuildAccelerationStructuresIndirectKHR;
13870
0
        return true;
13871
0
    }
13872
0
    if (!strcmp("vkBuildAccelerationStructuresKHR", name)) {
13873
0
        *addr = (void *)BuildAccelerationStructuresKHR;
13874
0
        return true;
13875
0
    }
13876
0
    if (!strcmp("vkCopyAccelerationStructureKHR", name)) {
13877
0
        *addr = (void *)CopyAccelerationStructureKHR;
13878
0
        return true;
13879
0
    }
13880
0
    if (!strcmp("vkCopyAccelerationStructureToMemoryKHR", name)) {
13881
0
        *addr = (void *)CopyAccelerationStructureToMemoryKHR;
13882
0
        return true;
13883
0
    }
13884
0
    if (!strcmp("vkCopyMemoryToAccelerationStructureKHR", name)) {
13885
0
        *addr = (void *)CopyMemoryToAccelerationStructureKHR;
13886
0
        return true;
13887
0
    }
13888
0
    if (!strcmp("vkWriteAccelerationStructuresPropertiesKHR", name)) {
13889
0
        *addr = (void *)WriteAccelerationStructuresPropertiesKHR;
13890
0
        return true;
13891
0
    }
13892
0
    if (!strcmp("vkCmdCopyAccelerationStructureKHR", name)) {
13893
0
        *addr = (void *)CmdCopyAccelerationStructureKHR;
13894
0
        return true;
13895
0
    }
13896
0
    if (!strcmp("vkCmdCopyAccelerationStructureToMemoryKHR", name)) {
13897
0
        *addr = (void *)CmdCopyAccelerationStructureToMemoryKHR;
13898
0
        return true;
13899
0
    }
13900
0
    if (!strcmp("vkCmdCopyMemoryToAccelerationStructureKHR", name)) {
13901
0
        *addr = (void *)CmdCopyMemoryToAccelerationStructureKHR;
13902
0
        return true;
13903
0
    }
13904
0
    if (!strcmp("vkGetAccelerationStructureDeviceAddressKHR", name)) {
13905
0
        *addr = (void *)GetAccelerationStructureDeviceAddressKHR;
13906
0
        return true;
13907
0
    }
13908
0
    if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesKHR", name)) {
13909
0
        *addr = (void *)CmdWriteAccelerationStructuresPropertiesKHR;
13910
0
        return true;
13911
0
    }
13912
0
    if (!strcmp("vkGetDeviceAccelerationStructureCompatibilityKHR", name)) {
13913
0
        *addr = (void *)GetDeviceAccelerationStructureCompatibilityKHR;
13914
0
        return true;
13915
0
    }
13916
0
    if (!strcmp("vkGetAccelerationStructureBuildSizesKHR", name)) {
13917
0
        *addr = (void *)GetAccelerationStructureBuildSizesKHR;
13918
0
        return true;
13919
0
    }
13920
13921
    // ---- VK_KHR_ray_tracing_pipeline extension commands
13922
0
    if (!strcmp("vkCmdTraceRaysKHR", name)) {
13923
0
        *addr = (void *)CmdTraceRaysKHR;
13924
0
        return true;
13925
0
    }
13926
0
    if (!strcmp("vkCreateRayTracingPipelinesKHR", name)) {
13927
0
        *addr = (void *)CreateRayTracingPipelinesKHR;
13928
0
        return true;
13929
0
    }
13930
0
    if (!strcmp("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", name)) {
13931
0
        *addr = (void *)GetRayTracingCaptureReplayShaderGroupHandlesKHR;
13932
0
        return true;
13933
0
    }
13934
0
    if (!strcmp("vkCmdTraceRaysIndirectKHR", name)) {
13935
0
        *addr = (void *)CmdTraceRaysIndirectKHR;
13936
0
        return true;
13937
0
    }
13938
0
    if (!strcmp("vkGetRayTracingShaderGroupStackSizeKHR", name)) {
13939
0
        *addr = (void *)GetRayTracingShaderGroupStackSizeKHR;
13940
0
        return true;
13941
0
    }
13942
0
    if (!strcmp("vkCmdSetRayTracingPipelineStackSizeKHR", name)) {
13943
0
        *addr = (void *)CmdSetRayTracingPipelineStackSizeKHR;
13944
0
        return true;
13945
0
    }
13946
13947
    // ---- VK_EXT_mesh_shader extension commands
13948
0
    if (!strcmp("vkCmdDrawMeshTasksEXT", name)) {
13949
0
        *addr = (void *)CmdDrawMeshTasksEXT;
13950
0
        return true;
13951
0
    }
13952
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectEXT", name)) {
13953
0
        *addr = (void *)CmdDrawMeshTasksIndirectEXT;
13954
0
        return true;
13955
0
    }
13956
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectCountEXT", name)) {
13957
0
        *addr = (void *)CmdDrawMeshTasksIndirectCountEXT;
13958
0
        return true;
13959
0
    }
13960
0
    return false;
13961
0
}
13962
13963
// Used to keep track of all enabled instance extensions
13964
0
void fill_out_enabled_instance_extensions(uint32_t extension_count, const char *const * extension_list, struct loader_instance_extension_enable_list* enables) {
13965
0
    for (uint32_t i = 0; i < extension_count; i++) {
13966
13967
    // ---- VK_KHR_surface extension commands
13968
0
        if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_EXTENSION_NAME)) { enables->khr_surface = 1; }
13969
13970
    // ---- VK_KHR_display extension commands
13971
0
        else if (0 == strcmp(extension_list[i], VK_KHR_DISPLAY_EXTENSION_NAME)) { enables->khr_display = 1; }
13972
13973
    // ---- VK_KHR_xlib_surface extension commands
13974
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
13975
0
        else if (0 == strcmp(extension_list[i], VK_KHR_XLIB_SURFACE_EXTENSION_NAME)) { enables->khr_xlib_surface = 1; }
13976
0
#endif // VK_USE_PLATFORM_XLIB_KHR
13977
13978
    // ---- VK_KHR_xcb_surface extension commands
13979
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
13980
0
        else if (0 == strcmp(extension_list[i], VK_KHR_XCB_SURFACE_EXTENSION_NAME)) { enables->khr_xcb_surface = 1; }
13981
0
#endif // VK_USE_PLATFORM_XCB_KHR
13982
13983
    // ---- VK_KHR_wayland_surface extension commands
13984
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
13985
0
        else if (0 == strcmp(extension_list[i], VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME)) { enables->khr_wayland_surface = 1; }
13986
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
13987
13988
    // ---- VK_KHR_android_surface extension commands
13989
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
13990
        else if (0 == strcmp(extension_list[i], VK_KHR_ANDROID_SURFACE_EXTENSION_NAME)) { enables->khr_android_surface = 1; }
13991
#endif // VK_USE_PLATFORM_ANDROID_KHR
13992
13993
    // ---- VK_KHR_win32_surface extension commands
13994
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13995
        else if (0 == strcmp(extension_list[i], VK_KHR_WIN32_SURFACE_EXTENSION_NAME)) { enables->khr_win32_surface = 1; }
13996
#endif // VK_USE_PLATFORM_WIN32_KHR
13997
13998
    // ---- VK_KHR_get_physical_device_properties2 extension commands
13999
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) { enables->khr_get_physical_device_properties2 = 1; }
14000
14001
    // ---- VK_KHR_device_group_creation extension commands
14002
0
        else if (0 == strcmp(extension_list[i], VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)) { enables->khr_device_group_creation = 1; }
14003
14004
    // ---- VK_KHR_external_memory_capabilities extension commands
14005
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_memory_capabilities = 1; }
14006
14007
    // ---- VK_KHR_external_semaphore_capabilities extension commands
14008
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_semaphore_capabilities = 1; }
14009
14010
    // ---- VK_KHR_external_fence_capabilities extension commands
14011
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_fence_capabilities = 1; }
14012
14013
    // ---- VK_KHR_get_surface_capabilities2 extension commands
14014
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME)) { enables->khr_get_surface_capabilities2 = 1; }
14015
14016
    // ---- VK_KHR_get_display_properties2 extension commands
14017
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME)) { enables->khr_get_display_properties2 = 1; }
14018
14019
    // ---- VK_KHR_surface_protected_capabilities extension commands
14020
0
        else if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME)) { enables->khr_surface_protected_capabilities = 1; }
14021
14022
    // ---- VK_KHR_portability_enumeration extension commands
14023
0
        else if (0 == strcmp(extension_list[i], VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME)) { enables->khr_portability_enumeration = 1; }
14024
14025
    // ---- VK_KHR_surface_maintenance1 extension commands
14026
0
        else if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME)) { enables->khr_surface_maintenance1 = 1; }
14027
14028
    // ---- VK_EXT_debug_report extension commands
14029
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DEBUG_REPORT_EXTENSION_NAME)) { enables->ext_debug_report = 1; }
14030
14031
    // ---- VK_GGP_stream_descriptor_surface extension commands
14032
#if defined(VK_USE_PLATFORM_GGP)
14033
        else if (0 == strcmp(extension_list[i], VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME)) { enables->ggp_stream_descriptor_surface = 1; }
14034
#endif // VK_USE_PLATFORM_GGP
14035
14036
    // ---- VK_NV_external_memory_capabilities extension commands
14037
0
        else if (0 == strcmp(extension_list[i], VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) { enables->nv_external_memory_capabilities = 1; }
14038
14039
    // ---- VK_EXT_validation_flags extension commands
14040
0
        else if (0 == strcmp(extension_list[i], VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME)) { enables->ext_validation_flags = 1; }
14041
14042
    // ---- VK_NN_vi_surface extension commands
14043
#if defined(VK_USE_PLATFORM_VI_NN)
14044
        else if (0 == strcmp(extension_list[i], VK_NN_VI_SURFACE_EXTENSION_NAME)) { enables->nn_vi_surface = 1; }
14045
#endif // VK_USE_PLATFORM_VI_NN
14046
14047
    // ---- VK_EXT_direct_mode_display extension commands
14048
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)) { enables->ext_direct_mode_display = 1; }
14049
14050
    // ---- VK_EXT_acquire_xlib_display extension commands
14051
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
14052
0
        else if (0 == strcmp(extension_list[i], VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME)) { enables->ext_acquire_xlib_display = 1; }
14053
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
14054
14055
    // ---- VK_EXT_display_surface_counter extension commands
14056
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)) { enables->ext_display_surface_counter = 1; }
14057
14058
    // ---- VK_EXT_swapchain_colorspace extension commands
14059
0
        else if (0 == strcmp(extension_list[i], VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME)) { enables->ext_swapchain_colorspace = 1; }
14060
14061
    // ---- VK_MVK_ios_surface extension commands
14062
#if defined(VK_USE_PLATFORM_IOS_MVK)
14063
        else if (0 == strcmp(extension_list[i], VK_MVK_IOS_SURFACE_EXTENSION_NAME)) { enables->mvk_ios_surface = 1; }
14064
#endif // VK_USE_PLATFORM_IOS_MVK
14065
14066
    // ---- VK_MVK_macos_surface extension commands
14067
#if defined(VK_USE_PLATFORM_MACOS_MVK)
14068
        else if (0 == strcmp(extension_list[i], VK_MVK_MACOS_SURFACE_EXTENSION_NAME)) { enables->mvk_macos_surface = 1; }
14069
#endif // VK_USE_PLATFORM_MACOS_MVK
14070
14071
    // ---- VK_EXT_debug_utils extension commands
14072
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) { enables->ext_debug_utils = 1; }
14073
14074
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
14075
#if defined(VK_USE_PLATFORM_FUCHSIA)
14076
        else if (0 == strcmp(extension_list[i], VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME)) { enables->fuchsia_imagepipe_surface = 1; }
14077
#endif // VK_USE_PLATFORM_FUCHSIA
14078
14079
    // ---- VK_EXT_metal_surface extension commands
14080
#if defined(VK_USE_PLATFORM_METAL_EXT)
14081
        else if (0 == strcmp(extension_list[i], VK_EXT_METAL_SURFACE_EXTENSION_NAME)) { enables->ext_metal_surface = 1; }
14082
#endif // VK_USE_PLATFORM_METAL_EXT
14083
14084
    // ---- VK_EXT_validation_features extension commands
14085
0
        else if (0 == strcmp(extension_list[i], VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME)) { enables->ext_validation_features = 1; }
14086
14087
    // ---- VK_EXT_headless_surface extension commands
14088
0
        else if (0 == strcmp(extension_list[i], VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME)) { enables->ext_headless_surface = 1; }
14089
14090
    // ---- VK_EXT_surface_maintenance1 extension commands
14091
0
        else if (0 == strcmp(extension_list[i], VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME)) { enables->ext_surface_maintenance1 = 1; }
14092
14093
    // ---- VK_EXT_acquire_drm_display extension commands
14094
0
        else if (0 == strcmp(extension_list[i], VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME)) { enables->ext_acquire_drm_display = 1; }
14095
14096
    // ---- VK_EXT_directfb_surface extension commands
14097
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
14098
        else if (0 == strcmp(extension_list[i], VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME)) { enables->ext_directfb_surface = 1; }
14099
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
14100
14101
    // ---- VK_QNX_screen_surface extension commands
14102
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14103
        else if (0 == strcmp(extension_list[i], VK_QNX_SCREEN_SURFACE_EXTENSION_NAME)) { enables->qnx_screen_surface = 1; }
14104
#endif // VK_USE_PLATFORM_SCREEN_QNX
14105
14106
    // ---- VK_GOOGLE_surfaceless_query extension commands
14107
0
        else if (0 == strcmp(extension_list[i], VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME)) { enables->google_surfaceless_query = 1; }
14108
14109
    // ---- VK_LUNARG_direct_driver_loading extension commands
14110
0
        else if (0 == strcmp(extension_list[i], VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME)) { enables->lunarg_direct_driver_loading = 1; }
14111
14112
    // ---- VK_EXT_layer_settings extension commands
14113
0
        else if (0 == strcmp(extension_list[i], VK_EXT_LAYER_SETTINGS_EXTENSION_NAME)) { enables->ext_layer_settings = 1; }
14114
14115
    // ---- VK_NV_display_stereo extension commands
14116
0
        else if (0 == strcmp(extension_list[i], VK_NV_DISPLAY_STEREO_EXTENSION_NAME)) { enables->nv_display_stereo = 1; }
14117
14118
    // ---- VK_OHOS_surface extension commands
14119
#if defined(VK_USE_PLATFORM_OHOS)
14120
        else if (0 == strcmp(extension_list[i], VK_OHOS_SURFACE_EXTENSION_NAME)) { enables->ohos_surface = 1; }
14121
#endif // VK_USE_PLATFORM_OHOS
14122
0
    }
14123
0
}
14124
14125
// Some device commands still need a terminator because the loader needs to unwrap something about them.
14126
// In many cases, the item needing unwrapping is a VkPhysicalDevice or VkSurfaceKHR object.  But there may be other items
14127
// in the future.
14128
0
PFN_vkVoidFunction get_extension_device_proc_terminator(struct loader_device *dev, const char *name, bool* found_name) {
14129
0
    *found_name = false;
14130
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
14131
0
        return NULL;
14132
0
    }
14133
0
    name += 2;
14134
    // ---- VK_KHR_swapchain extension commands
14135
0
    if (!strcmp(name, "CreateSwapchainKHR")) {
14136
0
        *found_name = true;
14137
0
        return dev->driver_extensions.khr_swapchain_enabled ?
14138
0
            (PFN_vkVoidFunction)terminator_CreateSwapchainKHR : NULL;
14139
0
    }
14140
0
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) {
14141
0
        *found_name = true;
14142
0
        return dev->driver_extensions.khr_swapchain_enabled || dev->driver_extensions.khr_device_group_enabled ?
14143
0
            (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModesKHR : NULL;
14144
0
    }
14145
    // ---- VK_KHR_display_swapchain extension commands
14146
0
    if (!strcmp(name, "CreateSharedSwapchainsKHR")) {
14147
0
        *found_name = true;
14148
0
        return dev->driver_extensions.khr_display_swapchain_enabled ?
14149
0
            (PFN_vkVoidFunction)terminator_CreateSharedSwapchainsKHR : NULL;
14150
0
    }
14151
    // ---- VK_EXT_debug_marker extension commands
14152
0
    if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) {
14153
0
        *found_name = true;
14154
0
        return dev->driver_extensions.ext_debug_marker_enabled ?
14155
0
            (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectTagEXT : NULL;
14156
0
    }
14157
0
    if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) {
14158
0
        *found_name = true;
14159
0
        return dev->driver_extensions.ext_debug_marker_enabled ?
14160
0
            (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectNameEXT : NULL;
14161
0
    }
14162
    // ---- VK_EXT_debug_utils extension commands
14163
0
    if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) {
14164
0
        *found_name = true;
14165
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14166
0
            (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectNameEXT : NULL;
14167
0
    }
14168
0
    if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) {
14169
0
        *found_name = true;
14170
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14171
0
            (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectTagEXT : NULL;
14172
0
    }
14173
0
    if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) {
14174
0
        *found_name = true;
14175
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14176
0
            (PFN_vkVoidFunction)terminator_QueueBeginDebugUtilsLabelEXT : NULL;
14177
0
    }
14178
0
    if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) {
14179
0
        *found_name = true;
14180
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14181
0
            (PFN_vkVoidFunction)terminator_QueueEndDebugUtilsLabelEXT : NULL;
14182
0
    }
14183
0
    if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) {
14184
0
        *found_name = true;
14185
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14186
0
            (PFN_vkVoidFunction)terminator_QueueInsertDebugUtilsLabelEXT : NULL;
14187
0
    }
14188
0
    if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) {
14189
0
        *found_name = true;
14190
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14191
0
            (PFN_vkVoidFunction)terminator_CmdBeginDebugUtilsLabelEXT : NULL;
14192
0
    }
14193
0
    if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) {
14194
0
        *found_name = true;
14195
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14196
0
            (PFN_vkVoidFunction)terminator_CmdEndDebugUtilsLabelEXT : NULL;
14197
0
    }
14198
0
    if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) {
14199
0
        *found_name = true;
14200
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14201
0
            (PFN_vkVoidFunction)terminator_CmdInsertDebugUtilsLabelEXT : NULL;
14202
0
    }
14203
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14204
    // ---- VK_EXT_full_screen_exclusive extension commands
14205
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) {
14206
        *found_name = true;
14207
        return dev->driver_extensions.ext_full_screen_exclusive_enabled ?
14208
            (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModes2EXT : NULL;
14209
    }
14210
#endif // VK_USE_PLATFORM_WIN32_KHR
14211
0
    return NULL;
14212
0
}
14213
14214
// This table contains the loader's instance dispatch table, which contains
14215
// default functions if no instance layers are activated.  This contains
14216
// pointers to "terminator functions".
14217
const VkLayerInstanceDispatchTable instance_disp = {
14218
14219
    // ---- Core Vulkan 1.0 commands
14220
    .DestroyInstance = terminator_DestroyInstance,
14221
    .EnumeratePhysicalDevices = terminator_EnumeratePhysicalDevices,
14222
    .GetPhysicalDeviceFeatures = terminator_GetPhysicalDeviceFeatures,
14223
    .GetPhysicalDeviceFormatProperties = terminator_GetPhysicalDeviceFormatProperties,
14224
    .GetPhysicalDeviceImageFormatProperties = terminator_GetPhysicalDeviceImageFormatProperties,
14225
    .GetPhysicalDeviceProperties = terminator_GetPhysicalDeviceProperties,
14226
    .GetPhysicalDeviceQueueFamilyProperties = terminator_GetPhysicalDeviceQueueFamilyProperties,
14227
    .GetPhysicalDeviceMemoryProperties = terminator_GetPhysicalDeviceMemoryProperties,
14228
    .GetInstanceProcAddr = vkGetInstanceProcAddr,
14229
    .EnumerateDeviceExtensionProperties = terminator_EnumerateDeviceExtensionProperties,
14230
    .EnumerateDeviceLayerProperties = terminator_EnumerateDeviceLayerProperties,
14231
    .GetPhysicalDeviceSparseImageFormatProperties = terminator_GetPhysicalDeviceSparseImageFormatProperties,
14232
14233
    // ---- Core Vulkan 1.1 commands
14234
    .EnumeratePhysicalDeviceGroups = terminator_EnumeratePhysicalDeviceGroups,
14235
    .GetPhysicalDeviceFeatures2 = terminator_GetPhysicalDeviceFeatures2,
14236
    .GetPhysicalDeviceProperties2 = terminator_GetPhysicalDeviceProperties2,
14237
    .GetPhysicalDeviceFormatProperties2 = terminator_GetPhysicalDeviceFormatProperties2,
14238
    .GetPhysicalDeviceImageFormatProperties2 = terminator_GetPhysicalDeviceImageFormatProperties2,
14239
    .GetPhysicalDeviceQueueFamilyProperties2 = terminator_GetPhysicalDeviceQueueFamilyProperties2,
14240
    .GetPhysicalDeviceMemoryProperties2 = terminator_GetPhysicalDeviceMemoryProperties2,
14241
    .GetPhysicalDeviceSparseImageFormatProperties2 = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
14242
    .GetPhysicalDeviceExternalBufferProperties = terminator_GetPhysicalDeviceExternalBufferProperties,
14243
    .GetPhysicalDeviceExternalFenceProperties = terminator_GetPhysicalDeviceExternalFenceProperties,
14244
    .GetPhysicalDeviceExternalSemaphoreProperties = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
14245
14246
    // ---- Core Vulkan 1.3 commands
14247
    .GetPhysicalDeviceToolProperties = terminator_GetPhysicalDeviceToolProperties,
14248
14249
    // ---- VK_KHR_surface extension commands
14250
    .DestroySurfaceKHR = terminator_DestroySurfaceKHR,
14251
    .GetPhysicalDeviceSurfaceSupportKHR = terminator_GetPhysicalDeviceSurfaceSupportKHR,
14252
    .GetPhysicalDeviceSurfaceCapabilitiesKHR = terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR,
14253
    .GetPhysicalDeviceSurfaceFormatsKHR = terminator_GetPhysicalDeviceSurfaceFormatsKHR,
14254
    .GetPhysicalDeviceSurfacePresentModesKHR = terminator_GetPhysicalDeviceSurfacePresentModesKHR,
14255
14256
    // ---- VK_KHR_swapchain extension commands
14257
    .GetPhysicalDevicePresentRectanglesKHR = terminator_GetPhysicalDevicePresentRectanglesKHR,
14258
14259
    // ---- VK_KHR_display extension commands
14260
    .GetPhysicalDeviceDisplayPropertiesKHR = terminator_GetPhysicalDeviceDisplayPropertiesKHR,
14261
    .GetPhysicalDeviceDisplayPlanePropertiesKHR = terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR,
14262
    .GetDisplayPlaneSupportedDisplaysKHR = terminator_GetDisplayPlaneSupportedDisplaysKHR,
14263
    .GetDisplayModePropertiesKHR = terminator_GetDisplayModePropertiesKHR,
14264
    .CreateDisplayModeKHR = terminator_CreateDisplayModeKHR,
14265
    .GetDisplayPlaneCapabilitiesKHR = terminator_GetDisplayPlaneCapabilitiesKHR,
14266
    .CreateDisplayPlaneSurfaceKHR = terminator_CreateDisplayPlaneSurfaceKHR,
14267
14268
    // ---- VK_KHR_xlib_surface extension commands
14269
#if defined(VK_USE_PLATFORM_XLIB_KHR)
14270
    .CreateXlibSurfaceKHR = terminator_CreateXlibSurfaceKHR,
14271
#endif // VK_USE_PLATFORM_XLIB_KHR
14272
#if defined(VK_USE_PLATFORM_XLIB_KHR)
14273
    .GetPhysicalDeviceXlibPresentationSupportKHR = terminator_GetPhysicalDeviceXlibPresentationSupportKHR,
14274
#endif // VK_USE_PLATFORM_XLIB_KHR
14275
14276
    // ---- VK_KHR_xcb_surface extension commands
14277
#if defined(VK_USE_PLATFORM_XCB_KHR)
14278
    .CreateXcbSurfaceKHR = terminator_CreateXcbSurfaceKHR,
14279
#endif // VK_USE_PLATFORM_XCB_KHR
14280
#if defined(VK_USE_PLATFORM_XCB_KHR)
14281
    .GetPhysicalDeviceXcbPresentationSupportKHR = terminator_GetPhysicalDeviceXcbPresentationSupportKHR,
14282
#endif // VK_USE_PLATFORM_XCB_KHR
14283
14284
    // ---- VK_KHR_wayland_surface extension commands
14285
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
14286
    .CreateWaylandSurfaceKHR = terminator_CreateWaylandSurfaceKHR,
14287
#endif // VK_USE_PLATFORM_WAYLAND_KHR
14288
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
14289
    .GetPhysicalDeviceWaylandPresentationSupportKHR = terminator_GetPhysicalDeviceWaylandPresentationSupportKHR,
14290
#endif // VK_USE_PLATFORM_WAYLAND_KHR
14291
14292
    // ---- VK_KHR_android_surface extension commands
14293
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
14294
    .CreateAndroidSurfaceKHR = terminator_CreateAndroidSurfaceKHR,
14295
#endif // VK_USE_PLATFORM_ANDROID_KHR
14296
14297
    // ---- VK_KHR_win32_surface extension commands
14298
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14299
    .CreateWin32SurfaceKHR = terminator_CreateWin32SurfaceKHR,
14300
#endif // VK_USE_PLATFORM_WIN32_KHR
14301
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14302
    .GetPhysicalDeviceWin32PresentationSupportKHR = terminator_GetPhysicalDeviceWin32PresentationSupportKHR,
14303
#endif // VK_USE_PLATFORM_WIN32_KHR
14304
14305
    // ---- VK_KHR_video_queue extension commands
14306
    .GetPhysicalDeviceVideoCapabilitiesKHR = terminator_GetPhysicalDeviceVideoCapabilitiesKHR,
14307
    .GetPhysicalDeviceVideoFormatPropertiesKHR = terminator_GetPhysicalDeviceVideoFormatPropertiesKHR,
14308
14309
    // ---- VK_KHR_get_physical_device_properties2 extension commands
14310
    .GetPhysicalDeviceFeatures2KHR = terminator_GetPhysicalDeviceFeatures2,
14311
    .GetPhysicalDeviceProperties2KHR = terminator_GetPhysicalDeviceProperties2,
14312
    .GetPhysicalDeviceFormatProperties2KHR = terminator_GetPhysicalDeviceFormatProperties2,
14313
    .GetPhysicalDeviceImageFormatProperties2KHR = terminator_GetPhysicalDeviceImageFormatProperties2,
14314
    .GetPhysicalDeviceQueueFamilyProperties2KHR = terminator_GetPhysicalDeviceQueueFamilyProperties2,
14315
    .GetPhysicalDeviceMemoryProperties2KHR = terminator_GetPhysicalDeviceMemoryProperties2,
14316
    .GetPhysicalDeviceSparseImageFormatProperties2KHR = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
14317
14318
    // ---- VK_KHR_device_group_creation extension commands
14319
    .EnumeratePhysicalDeviceGroupsKHR = terminator_EnumeratePhysicalDeviceGroups,
14320
14321
    // ---- VK_KHR_external_memory_capabilities extension commands
14322
    .GetPhysicalDeviceExternalBufferPropertiesKHR = terminator_GetPhysicalDeviceExternalBufferProperties,
14323
14324
    // ---- VK_KHR_external_semaphore_capabilities extension commands
14325
    .GetPhysicalDeviceExternalSemaphorePropertiesKHR = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
14326
14327
    // ---- VK_KHR_external_fence_capabilities extension commands
14328
    .GetPhysicalDeviceExternalFencePropertiesKHR = terminator_GetPhysicalDeviceExternalFenceProperties,
14329
14330
    // ---- VK_KHR_performance_query extension commands
14331
    .EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
14332
    .GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
14333
14334
    // ---- VK_KHR_get_surface_capabilities2 extension commands
14335
    .GetPhysicalDeviceSurfaceCapabilities2KHR = terminator_GetPhysicalDeviceSurfaceCapabilities2KHR,
14336
    .GetPhysicalDeviceSurfaceFormats2KHR = terminator_GetPhysicalDeviceSurfaceFormats2KHR,
14337
14338
    // ---- VK_KHR_get_display_properties2 extension commands
14339
    .GetPhysicalDeviceDisplayProperties2KHR = terminator_GetPhysicalDeviceDisplayProperties2KHR,
14340
    .GetPhysicalDeviceDisplayPlaneProperties2KHR = terminator_GetPhysicalDeviceDisplayPlaneProperties2KHR,
14341
    .GetDisplayModeProperties2KHR = terminator_GetDisplayModeProperties2KHR,
14342
    .GetDisplayPlaneCapabilities2KHR = terminator_GetDisplayPlaneCapabilities2KHR,
14343
14344
    // ---- VK_KHR_fragment_shading_rate extension commands
14345
    .GetPhysicalDeviceFragmentShadingRatesKHR = terminator_GetPhysicalDeviceFragmentShadingRatesKHR,
14346
14347
    // ---- VK_KHR_video_encode_queue extension commands
14348
    .GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR,
14349
14350
    // ---- VK_KHR_cooperative_matrix extension commands
14351
    .GetPhysicalDeviceCooperativeMatrixPropertiesKHR = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR,
14352
14353
    // ---- VK_KHR_calibrated_timestamps extension commands
14354
    .GetPhysicalDeviceCalibrateableTimeDomainsKHR = terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR,
14355
14356
    // ---- VK_EXT_debug_report extension commands
14357
    .CreateDebugReportCallbackEXT = terminator_CreateDebugReportCallbackEXT,
14358
    .DestroyDebugReportCallbackEXT = terminator_DestroyDebugReportCallbackEXT,
14359
    .DebugReportMessageEXT = terminator_DebugReportMessageEXT,
14360
14361
    // ---- VK_GGP_stream_descriptor_surface extension commands
14362
#if defined(VK_USE_PLATFORM_GGP)
14363
    .CreateStreamDescriptorSurfaceGGP = terminator_CreateStreamDescriptorSurfaceGGP,
14364
#endif // VK_USE_PLATFORM_GGP
14365
14366
    // ---- VK_NV_external_memory_capabilities extension commands
14367
    .GetPhysicalDeviceExternalImageFormatPropertiesNV = terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV,
14368
14369
    // ---- VK_NN_vi_surface extension commands
14370
#if defined(VK_USE_PLATFORM_VI_NN)
14371
    .CreateViSurfaceNN = terminator_CreateViSurfaceNN,
14372
#endif // VK_USE_PLATFORM_VI_NN
14373
14374
    // ---- VK_EXT_direct_mode_display extension commands
14375
    .ReleaseDisplayEXT = terminator_ReleaseDisplayEXT,
14376
14377
    // ---- VK_EXT_acquire_xlib_display extension commands
14378
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
14379
    .AcquireXlibDisplayEXT = terminator_AcquireXlibDisplayEXT,
14380
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
14381
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
14382
    .GetRandROutputDisplayEXT = terminator_GetRandROutputDisplayEXT,
14383
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
14384
14385
    // ---- VK_EXT_display_surface_counter extension commands
14386
    .GetPhysicalDeviceSurfaceCapabilities2EXT = terminator_GetPhysicalDeviceSurfaceCapabilities2EXT,
14387
14388
    // ---- VK_MVK_ios_surface extension commands
14389
#if defined(VK_USE_PLATFORM_IOS_MVK)
14390
    .CreateIOSSurfaceMVK = terminator_CreateIOSSurfaceMVK,
14391
#endif // VK_USE_PLATFORM_IOS_MVK
14392
14393
    // ---- VK_MVK_macos_surface extension commands
14394
#if defined(VK_USE_PLATFORM_MACOS_MVK)
14395
    .CreateMacOSSurfaceMVK = terminator_CreateMacOSSurfaceMVK,
14396
#endif // VK_USE_PLATFORM_MACOS_MVK
14397
14398
    // ---- VK_EXT_debug_utils extension commands
14399
    .CreateDebugUtilsMessengerEXT = terminator_CreateDebugUtilsMessengerEXT,
14400
    .DestroyDebugUtilsMessengerEXT = terminator_DestroyDebugUtilsMessengerEXT,
14401
    .SubmitDebugUtilsMessageEXT = terminator_SubmitDebugUtilsMessageEXT,
14402
14403
    // ---- VK_EXT_sample_locations extension commands
14404
    .GetPhysicalDeviceMultisamplePropertiesEXT = terminator_GetPhysicalDeviceMultisamplePropertiesEXT,
14405
14406
    // ---- VK_EXT_calibrated_timestamps extension commands
14407
    .GetPhysicalDeviceCalibrateableTimeDomainsEXT = terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT,
14408
14409
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
14410
#if defined(VK_USE_PLATFORM_FUCHSIA)
14411
    .CreateImagePipeSurfaceFUCHSIA = terminator_CreateImagePipeSurfaceFUCHSIA,
14412
#endif // VK_USE_PLATFORM_FUCHSIA
14413
14414
    // ---- VK_EXT_metal_surface extension commands
14415
#if defined(VK_USE_PLATFORM_METAL_EXT)
14416
    .CreateMetalSurfaceEXT = terminator_CreateMetalSurfaceEXT,
14417
#endif // VK_USE_PLATFORM_METAL_EXT
14418
14419
    // ---- VK_EXT_tooling_info extension commands
14420
    .GetPhysicalDeviceToolPropertiesEXT = terminator_GetPhysicalDeviceToolPropertiesEXT,
14421
14422
    // ---- VK_NV_cooperative_matrix extension commands
14423
    .GetPhysicalDeviceCooperativeMatrixPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV,
14424
14425
    // ---- VK_NV_coverage_reduction_mode extension commands
14426
    .GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
14427
14428
    // ---- VK_EXT_full_screen_exclusive extension commands
14429
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14430
    .GetPhysicalDeviceSurfacePresentModes2EXT = terminator_GetPhysicalDeviceSurfacePresentModes2EXT,
14431
#endif // VK_USE_PLATFORM_WIN32_KHR
14432
14433
    // ---- VK_EXT_headless_surface extension commands
14434
    .CreateHeadlessSurfaceEXT = terminator_CreateHeadlessSurfaceEXT,
14435
14436
    // ---- VK_EXT_acquire_drm_display extension commands
14437
    .AcquireDrmDisplayEXT = terminator_AcquireDrmDisplayEXT,
14438
    .GetDrmDisplayEXT = terminator_GetDrmDisplayEXT,
14439
14440
    // ---- VK_NV_acquire_winrt_display extension commands
14441
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14442
    .AcquireWinrtDisplayNV = terminator_AcquireWinrtDisplayNV,
14443
#endif // VK_USE_PLATFORM_WIN32_KHR
14444
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14445
    .GetWinrtDisplayNV = terminator_GetWinrtDisplayNV,
14446
#endif // VK_USE_PLATFORM_WIN32_KHR
14447
14448
    // ---- VK_EXT_directfb_surface extension commands
14449
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
14450
    .CreateDirectFBSurfaceEXT = terminator_CreateDirectFBSurfaceEXT,
14451
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
14452
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
14453
    .GetPhysicalDeviceDirectFBPresentationSupportEXT = terminator_GetPhysicalDeviceDirectFBPresentationSupportEXT,
14454
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
14455
14456
    // ---- VK_QNX_screen_surface extension commands
14457
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14458
    .CreateScreenSurfaceQNX = terminator_CreateScreenSurfaceQNX,
14459
#endif // VK_USE_PLATFORM_SCREEN_QNX
14460
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14461
    .GetPhysicalDeviceScreenPresentationSupportQNX = terminator_GetPhysicalDeviceScreenPresentationSupportQNX,
14462
#endif // VK_USE_PLATFORM_SCREEN_QNX
14463
14464
    // ---- VK_ARM_tensors extension commands
14465
    .GetPhysicalDeviceExternalTensorPropertiesARM = terminator_GetPhysicalDeviceExternalTensorPropertiesARM,
14466
14467
    // ---- VK_NV_optical_flow extension commands
14468
    .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV,
14469
14470
    // ---- VK_NV_cooperative_vector extension commands
14471
    .GetPhysicalDeviceCooperativeVectorPropertiesNV = terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV,
14472
14473
    // ---- VK_ARM_data_graph extension commands
14474
    .GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = terminator_GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM,
14475
    .GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = terminator_GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM,
14476
14477
    // ---- VK_OHOS_surface extension commands
14478
#if defined(VK_USE_PLATFORM_OHOS)
14479
    .CreateSurfaceOHOS = terminator_CreateSurfaceOHOS,
14480
#endif // VK_USE_PLATFORM_OHOS
14481
14482
    // ---- VK_NV_cooperative_matrix2 extension commands
14483
    .GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV,
14484
14485
    // ---- VK_ARM_performance_counters_by_region extension commands
14486
    .EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM,
14487
};
14488
14489
// A null-terminated list of all of the instance extensions supported by the loader.
14490
// If an instance extension name is not in this list, but it is exported by one or more of the
14491
// ICDs detected by the loader, then the extension name not in the list will be filtered out
14492
// before passing the list of extensions to the application.
14493
const char *const LOADER_INSTANCE_EXTENSIONS[] = {
14494
                                                  VK_KHR_SURFACE_EXTENSION_NAME,
14495
                                                  VK_KHR_DISPLAY_EXTENSION_NAME,
14496
#if defined(VK_USE_PLATFORM_XLIB_KHR)
14497
                                                  VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
14498
#endif // VK_USE_PLATFORM_XLIB_KHR
14499
#if defined(VK_USE_PLATFORM_XCB_KHR)
14500
                                                  VK_KHR_XCB_SURFACE_EXTENSION_NAME,
14501
#endif // VK_USE_PLATFORM_XCB_KHR
14502
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
14503
                                                  VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
14504
#endif // VK_USE_PLATFORM_WAYLAND_KHR
14505
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
14506
                                                  VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
14507
#endif // VK_USE_PLATFORM_ANDROID_KHR
14508
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14509
                                                  VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
14510
#endif // VK_USE_PLATFORM_WIN32_KHR
14511
                                                  VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME,
14512
                                                  VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME,
14513
                                                  VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
14514
                                                  VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME,
14515
                                                  VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME,
14516
                                                  VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME,
14517
                                                  VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME,
14518
                                                  VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME,
14519
                                                  VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME,
14520
                                                  VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
14521
                                                  VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
14522
#if defined(VK_USE_PLATFORM_GGP)
14523
                                                  VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME,
14524
#endif // VK_USE_PLATFORM_GGP
14525
                                                  VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
14526
                                                  VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME,
14527
#if defined(VK_USE_PLATFORM_VI_NN)
14528
                                                  VK_NN_VI_SURFACE_EXTENSION_NAME,
14529
#endif // VK_USE_PLATFORM_VI_NN
14530
                                                  VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME,
14531
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
14532
                                                  VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME,
14533
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
14534
                                                  VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME,
14535
                                                  VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME,
14536
#if defined(VK_USE_PLATFORM_IOS_MVK)
14537
                                                  VK_MVK_IOS_SURFACE_EXTENSION_NAME,
14538
#endif // VK_USE_PLATFORM_IOS_MVK
14539
#if defined(VK_USE_PLATFORM_MACOS_MVK)
14540
                                                  VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
14541
#endif // VK_USE_PLATFORM_MACOS_MVK
14542
                                                  VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
14543
#if defined(VK_USE_PLATFORM_FUCHSIA)
14544
                                                  VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME,
14545
#endif // VK_USE_PLATFORM_FUCHSIA
14546
#if defined(VK_USE_PLATFORM_METAL_EXT)
14547
                                                  VK_EXT_METAL_SURFACE_EXTENSION_NAME,
14548
#endif // VK_USE_PLATFORM_METAL_EXT
14549
                                                  VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME,
14550
                                                  VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME,
14551
                                                  VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
14552
                                                  VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME,
14553
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
14554
                                                  VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME,
14555
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
14556
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14557
                                                  VK_QNX_SCREEN_SURFACE_EXTENSION_NAME,
14558
#endif // VK_USE_PLATFORM_SCREEN_QNX
14559
                                                  VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME,
14560
                                                  VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME,
14561
                                                  VK_EXT_LAYER_SETTINGS_EXTENSION_NAME,
14562
                                                  VK_NV_DISPLAY_STEREO_EXTENSION_NAME,
14563
#if defined(VK_USE_PLATFORM_OHOS)
14564
                                                  VK_OHOS_SURFACE_EXTENSION_NAME,
14565
#endif // VK_USE_PLATFORM_OHOS
14566
                                                  NULL };
14567
// clang-format on