Coverage Report

Created: 2026-04-01 06:49

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_descriptor_heap extension commands
253
0
    LOOKUP_GIPA(GetPhysicalDeviceDescriptorSizeEXT);
254
255
    // ---- VK_EXT_sample_locations extension commands
256
0
    LOOKUP_GIPA(GetPhysicalDeviceMultisamplePropertiesEXT);
257
258
    // ---- VK_EXT_calibrated_timestamps extension commands
259
0
    LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsEXT);
260
261
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
262
#if defined(VK_USE_PLATFORM_FUCHSIA)
263
    LOOKUP_GIPA(CreateImagePipeSurfaceFUCHSIA);
264
#endif // VK_USE_PLATFORM_FUCHSIA
265
266
    // ---- VK_EXT_metal_surface extension commands
267
#if defined(VK_USE_PLATFORM_METAL_EXT)
268
    LOOKUP_GIPA(CreateMetalSurfaceEXT);
269
#endif // VK_USE_PLATFORM_METAL_EXT
270
271
    // ---- VK_EXT_tooling_info extension commands
272
0
    LOOKUP_GIPA(GetPhysicalDeviceToolPropertiesEXT);
273
274
    // ---- VK_NV_cooperative_matrix extension commands
275
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesNV);
276
277
    // ---- VK_NV_coverage_reduction_mode extension commands
278
0
    LOOKUP_GIPA(GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
279
280
    // ---- VK_EXT_full_screen_exclusive extension commands
281
#if defined(VK_USE_PLATFORM_WIN32_KHR)
282
    LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModes2EXT);
283
#endif // VK_USE_PLATFORM_WIN32_KHR
284
285
    // ---- VK_EXT_headless_surface extension commands
286
0
    LOOKUP_GIPA(CreateHeadlessSurfaceEXT);
287
288
    // ---- VK_EXT_acquire_drm_display extension commands
289
0
    LOOKUP_GIPA(AcquireDrmDisplayEXT);
290
0
    LOOKUP_GIPA(GetDrmDisplayEXT);
291
292
    // ---- VK_NV_acquire_winrt_display extension commands
293
#if defined(VK_USE_PLATFORM_WIN32_KHR)
294
    LOOKUP_GIPA(AcquireWinrtDisplayNV);
295
#endif // VK_USE_PLATFORM_WIN32_KHR
296
#if defined(VK_USE_PLATFORM_WIN32_KHR)
297
    LOOKUP_GIPA(GetWinrtDisplayNV);
298
#endif // VK_USE_PLATFORM_WIN32_KHR
299
300
    // ---- VK_EXT_directfb_surface extension commands
301
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
302
    LOOKUP_GIPA(CreateDirectFBSurfaceEXT);
303
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
304
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
305
    LOOKUP_GIPA(GetPhysicalDeviceDirectFBPresentationSupportEXT);
306
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
307
308
    // ---- VK_QNX_screen_surface extension commands
309
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
310
    LOOKUP_GIPA(CreateScreenSurfaceQNX);
311
#endif // VK_USE_PLATFORM_SCREEN_QNX
312
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
313
    LOOKUP_GIPA(GetPhysicalDeviceScreenPresentationSupportQNX);
314
#endif // VK_USE_PLATFORM_SCREEN_QNX
315
316
    // ---- VK_ARM_tensors extension commands
317
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalTensorPropertiesARM);
318
319
    // ---- VK_NV_optical_flow extension commands
320
0
    LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV);
321
322
    // ---- VK_NV_cooperative_vector extension commands
323
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeVectorPropertiesNV);
324
325
    // ---- VK_ARM_data_graph extension commands
326
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM);
327
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM);
328
329
    // ---- VK_OHOS_surface extension commands
330
#if defined(VK_USE_PLATFORM_OHOS)
331
    LOOKUP_GIPA(CreateSurfaceOHOS);
332
#endif // VK_USE_PLATFORM_OHOS
333
334
    // ---- VK_NV_cooperative_matrix2 extension commands
335
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV);
336
337
    // ---- VK_ARM_performance_counters_by_region extension commands
338
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM);
339
340
    // ---- VK_ARM_shader_instrumentation extension commands
341
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceShaderInstrumentationMetricsARM);
342
343
    // ---- VK_SEC_ubm_surface extension commands
344
#if defined(VK_USE_PLATFORM_UBM_SEC)
345
    LOOKUP_GIPA(CreateUbmSurfaceSEC);
346
#endif // VK_USE_PLATFORM_UBM_SEC
347
#if defined(VK_USE_PLATFORM_UBM_SEC)
348
    LOOKUP_GIPA(GetPhysicalDeviceUbmPresentationSupportSEC);
349
#endif // VK_USE_PLATFORM_UBM_SEC
350
351
0
#undef LOOKUP_REQUIRED_GIPA
352
0
#undef LOOKUP_GIPA
353
354
0
    return true;
355
0
};
356
357
// Init Device function pointer dispatch table with core commands
358
VKAPI_ATTR void VKAPI_CALL loader_init_device_dispatch_table(struct loader_dev_dispatch_table *dev_table, PFN_vkGetDeviceProcAddr gpa,
359
0
                                                             VkDevice dev) {
360
0
    VkLayerDispatchTable *table = &dev_table->core_dispatch;
361
0
    if (table->magic != DEVICE_DISP_TABLE_MAGIC_NUMBER) { abort(); }
362
0
    for (uint32_t i = 0; i < MAX_NUM_UNKNOWN_EXTS; i++) dev_table->ext_dispatch[i] = (PFN_vkDevExt)vkDevExtError;
363
364
    // ---- Core Vulkan 1.0 commands
365
0
    table->GetDeviceProcAddr = gpa;
366
0
    table->DestroyDevice = (PFN_vkDestroyDevice)gpa(dev, "vkDestroyDevice");
367
0
    table->GetDeviceQueue = (PFN_vkGetDeviceQueue)gpa(dev, "vkGetDeviceQueue");
368
0
    table->QueueSubmit = (PFN_vkQueueSubmit)gpa(dev, "vkQueueSubmit");
369
0
    table->QueueWaitIdle = (PFN_vkQueueWaitIdle)gpa(dev, "vkQueueWaitIdle");
370
0
    table->DeviceWaitIdle = (PFN_vkDeviceWaitIdle)gpa(dev, "vkDeviceWaitIdle");
371
0
    table->AllocateMemory = (PFN_vkAllocateMemory)gpa(dev, "vkAllocateMemory");
372
0
    table->FreeMemory = (PFN_vkFreeMemory)gpa(dev, "vkFreeMemory");
373
0
    table->MapMemory = (PFN_vkMapMemory)gpa(dev, "vkMapMemory");
374
0
    table->UnmapMemory = (PFN_vkUnmapMemory)gpa(dev, "vkUnmapMemory");
375
0
    table->FlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)gpa(dev, "vkFlushMappedMemoryRanges");
376
0
    table->InvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)gpa(dev, "vkInvalidateMappedMemoryRanges");
377
0
    table->GetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)gpa(dev, "vkGetDeviceMemoryCommitment");
378
0
    table->BindBufferMemory = (PFN_vkBindBufferMemory)gpa(dev, "vkBindBufferMemory");
379
0
    table->BindImageMemory = (PFN_vkBindImageMemory)gpa(dev, "vkBindImageMemory");
380
0
    table->GetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)gpa(dev, "vkGetBufferMemoryRequirements");
381
0
    table->GetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)gpa(dev, "vkGetImageMemoryRequirements");
382
0
    table->GetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)gpa(dev, "vkGetImageSparseMemoryRequirements");
383
0
    table->QueueBindSparse = (PFN_vkQueueBindSparse)gpa(dev, "vkQueueBindSparse");
384
0
    table->CreateFence = (PFN_vkCreateFence)gpa(dev, "vkCreateFence");
385
0
    table->DestroyFence = (PFN_vkDestroyFence)gpa(dev, "vkDestroyFence");
386
0
    table->ResetFences = (PFN_vkResetFences)gpa(dev, "vkResetFences");
387
0
    table->GetFenceStatus = (PFN_vkGetFenceStatus)gpa(dev, "vkGetFenceStatus");
388
0
    table->WaitForFences = (PFN_vkWaitForFences)gpa(dev, "vkWaitForFences");
389
0
    table->CreateSemaphore = (PFN_vkCreateSemaphore)gpa(dev, "vkCreateSemaphore");
390
0
    table->DestroySemaphore = (PFN_vkDestroySemaphore)gpa(dev, "vkDestroySemaphore");
391
0
    table->CreateQueryPool = (PFN_vkCreateQueryPool)gpa(dev, "vkCreateQueryPool");
392
0
    table->DestroyQueryPool = (PFN_vkDestroyQueryPool)gpa(dev, "vkDestroyQueryPool");
393
0
    table->GetQueryPoolResults = (PFN_vkGetQueryPoolResults)gpa(dev, "vkGetQueryPoolResults");
394
0
    table->CreateBuffer = (PFN_vkCreateBuffer)gpa(dev, "vkCreateBuffer");
395
0
    table->DestroyBuffer = (PFN_vkDestroyBuffer)gpa(dev, "vkDestroyBuffer");
396
0
    table->CreateImage = (PFN_vkCreateImage)gpa(dev, "vkCreateImage");
397
0
    table->DestroyImage = (PFN_vkDestroyImage)gpa(dev, "vkDestroyImage");
398
0
    table->GetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)gpa(dev, "vkGetImageSubresourceLayout");
399
0
    table->CreateImageView = (PFN_vkCreateImageView)gpa(dev, "vkCreateImageView");
400
0
    table->DestroyImageView = (PFN_vkDestroyImageView)gpa(dev, "vkDestroyImageView");
401
0
    table->CreateCommandPool = (PFN_vkCreateCommandPool)gpa(dev, "vkCreateCommandPool");
402
0
    table->DestroyCommandPool = (PFN_vkDestroyCommandPool)gpa(dev, "vkDestroyCommandPool");
403
0
    table->ResetCommandPool = (PFN_vkResetCommandPool)gpa(dev, "vkResetCommandPool");
404
0
    table->AllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)gpa(dev, "vkAllocateCommandBuffers");
405
0
    table->FreeCommandBuffers = (PFN_vkFreeCommandBuffers)gpa(dev, "vkFreeCommandBuffers");
406
0
    table->BeginCommandBuffer = (PFN_vkBeginCommandBuffer)gpa(dev, "vkBeginCommandBuffer");
407
0
    table->EndCommandBuffer = (PFN_vkEndCommandBuffer)gpa(dev, "vkEndCommandBuffer");
408
0
    table->ResetCommandBuffer = (PFN_vkResetCommandBuffer)gpa(dev, "vkResetCommandBuffer");
409
0
    table->CmdCopyBuffer = (PFN_vkCmdCopyBuffer)gpa(dev, "vkCmdCopyBuffer");
410
0
    table->CmdCopyImage = (PFN_vkCmdCopyImage)gpa(dev, "vkCmdCopyImage");
411
0
    table->CmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)gpa(dev, "vkCmdCopyBufferToImage");
412
0
    table->CmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)gpa(dev, "vkCmdCopyImageToBuffer");
413
0
    table->CmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)gpa(dev, "vkCmdUpdateBuffer");
414
0
    table->CmdFillBuffer = (PFN_vkCmdFillBuffer)gpa(dev, "vkCmdFillBuffer");
415
0
    table->CmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)gpa(dev, "vkCmdPipelineBarrier");
416
0
    table->CmdBeginQuery = (PFN_vkCmdBeginQuery)gpa(dev, "vkCmdBeginQuery");
417
0
    table->CmdEndQuery = (PFN_vkCmdEndQuery)gpa(dev, "vkCmdEndQuery");
418
0
    table->CmdResetQueryPool = (PFN_vkCmdResetQueryPool)gpa(dev, "vkCmdResetQueryPool");
419
0
    table->CmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)gpa(dev, "vkCmdWriteTimestamp");
420
0
    table->CmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)gpa(dev, "vkCmdCopyQueryPoolResults");
421
0
    table->CmdExecuteCommands = (PFN_vkCmdExecuteCommands)gpa(dev, "vkCmdExecuteCommands");
422
0
    table->CreateEvent = (PFN_vkCreateEvent)gpa(dev, "vkCreateEvent");
423
0
    table->DestroyEvent = (PFN_vkDestroyEvent)gpa(dev, "vkDestroyEvent");
424
0
    table->GetEventStatus = (PFN_vkGetEventStatus)gpa(dev, "vkGetEventStatus");
425
0
    table->SetEvent = (PFN_vkSetEvent)gpa(dev, "vkSetEvent");
426
0
    table->ResetEvent = (PFN_vkResetEvent)gpa(dev, "vkResetEvent");
427
0
    table->CreateBufferView = (PFN_vkCreateBufferView)gpa(dev, "vkCreateBufferView");
428
0
    table->DestroyBufferView = (PFN_vkDestroyBufferView)gpa(dev, "vkDestroyBufferView");
429
0
    table->CreateShaderModule = (PFN_vkCreateShaderModule)gpa(dev, "vkCreateShaderModule");
430
0
    table->DestroyShaderModule = (PFN_vkDestroyShaderModule)gpa(dev, "vkDestroyShaderModule");
431
0
    table->CreatePipelineCache = (PFN_vkCreatePipelineCache)gpa(dev, "vkCreatePipelineCache");
432
0
    table->DestroyPipelineCache = (PFN_vkDestroyPipelineCache)gpa(dev, "vkDestroyPipelineCache");
433
0
    table->GetPipelineCacheData = (PFN_vkGetPipelineCacheData)gpa(dev, "vkGetPipelineCacheData");
434
0
    table->MergePipelineCaches = (PFN_vkMergePipelineCaches)gpa(dev, "vkMergePipelineCaches");
435
0
    table->CreateComputePipelines = (PFN_vkCreateComputePipelines)gpa(dev, "vkCreateComputePipelines");
436
0
    table->DestroyPipeline = (PFN_vkDestroyPipeline)gpa(dev, "vkDestroyPipeline");
437
0
    table->CreatePipelineLayout = (PFN_vkCreatePipelineLayout)gpa(dev, "vkCreatePipelineLayout");
438
0
    table->DestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)gpa(dev, "vkDestroyPipelineLayout");
439
0
    table->CreateSampler = (PFN_vkCreateSampler)gpa(dev, "vkCreateSampler");
440
0
    table->DestroySampler = (PFN_vkDestroySampler)gpa(dev, "vkDestroySampler");
441
0
    table->CreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)gpa(dev, "vkCreateDescriptorSetLayout");
442
0
    table->DestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)gpa(dev, "vkDestroyDescriptorSetLayout");
443
0
    table->CreateDescriptorPool = (PFN_vkCreateDescriptorPool)gpa(dev, "vkCreateDescriptorPool");
444
0
    table->DestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)gpa(dev, "vkDestroyDescriptorPool");
445
0
    table->ResetDescriptorPool = (PFN_vkResetDescriptorPool)gpa(dev, "vkResetDescriptorPool");
446
0
    table->AllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)gpa(dev, "vkAllocateDescriptorSets");
447
0
    table->FreeDescriptorSets = (PFN_vkFreeDescriptorSets)gpa(dev, "vkFreeDescriptorSets");
448
0
    table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)gpa(dev, "vkUpdateDescriptorSets");
449
0
    table->CmdBindPipeline = (PFN_vkCmdBindPipeline)gpa(dev, "vkCmdBindPipeline");
450
0
    table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)gpa(dev, "vkCmdBindDescriptorSets");
451
0
    table->CmdClearColorImage = (PFN_vkCmdClearColorImage)gpa(dev, "vkCmdClearColorImage");
452
0
    table->CmdDispatch = (PFN_vkCmdDispatch)gpa(dev, "vkCmdDispatch");
453
0
    table->CmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)gpa(dev, "vkCmdDispatchIndirect");
454
0
    table->CmdSetEvent = (PFN_vkCmdSetEvent)gpa(dev, "vkCmdSetEvent");
455
0
    table->CmdResetEvent = (PFN_vkCmdResetEvent)gpa(dev, "vkCmdResetEvent");
456
0
    table->CmdWaitEvents = (PFN_vkCmdWaitEvents)gpa(dev, "vkCmdWaitEvents");
457
0
    table->CmdPushConstants = (PFN_vkCmdPushConstants)gpa(dev, "vkCmdPushConstants");
458
0
    table->CreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)gpa(dev, "vkCreateGraphicsPipelines");
459
0
    table->CreateFramebuffer = (PFN_vkCreateFramebuffer)gpa(dev, "vkCreateFramebuffer");
460
0
    table->DestroyFramebuffer = (PFN_vkDestroyFramebuffer)gpa(dev, "vkDestroyFramebuffer");
461
0
    table->CreateRenderPass = (PFN_vkCreateRenderPass)gpa(dev, "vkCreateRenderPass");
462
0
    table->DestroyRenderPass = (PFN_vkDestroyRenderPass)gpa(dev, "vkDestroyRenderPass");
463
0
    table->GetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)gpa(dev, "vkGetRenderAreaGranularity");
464
0
    table->CmdSetViewport = (PFN_vkCmdSetViewport)gpa(dev, "vkCmdSetViewport");
465
0
    table->CmdSetScissor = (PFN_vkCmdSetScissor)gpa(dev, "vkCmdSetScissor");
466
0
    table->CmdSetLineWidth = (PFN_vkCmdSetLineWidth)gpa(dev, "vkCmdSetLineWidth");
467
0
    table->CmdSetDepthBias = (PFN_vkCmdSetDepthBias)gpa(dev, "vkCmdSetDepthBias");
468
0
    table->CmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)gpa(dev, "vkCmdSetBlendConstants");
469
0
    table->CmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)gpa(dev, "vkCmdSetDepthBounds");
470
0
    table->CmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)gpa(dev, "vkCmdSetStencilCompareMask");
471
0
    table->CmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)gpa(dev, "vkCmdSetStencilWriteMask");
472
0
    table->CmdSetStencilReference = (PFN_vkCmdSetStencilReference)gpa(dev, "vkCmdSetStencilReference");
473
0
    table->CmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)gpa(dev, "vkCmdBindIndexBuffer");
474
0
    table->CmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)gpa(dev, "vkCmdBindVertexBuffers");
475
0
    table->CmdDraw = (PFN_vkCmdDraw)gpa(dev, "vkCmdDraw");
476
0
    table->CmdDrawIndexed = (PFN_vkCmdDrawIndexed)gpa(dev, "vkCmdDrawIndexed");
477
0
    table->CmdDrawIndirect = (PFN_vkCmdDrawIndirect)gpa(dev, "vkCmdDrawIndirect");
478
0
    table->CmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)gpa(dev, "vkCmdDrawIndexedIndirect");
479
0
    table->CmdBlitImage = (PFN_vkCmdBlitImage)gpa(dev, "vkCmdBlitImage");
480
0
    table->CmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)gpa(dev, "vkCmdClearDepthStencilImage");
481
0
    table->CmdClearAttachments = (PFN_vkCmdClearAttachments)gpa(dev, "vkCmdClearAttachments");
482
0
    table->CmdResolveImage = (PFN_vkCmdResolveImage)gpa(dev, "vkCmdResolveImage");
483
0
    table->CmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)gpa(dev, "vkCmdBeginRenderPass");
484
0
    table->CmdNextSubpass = (PFN_vkCmdNextSubpass)gpa(dev, "vkCmdNextSubpass");
485
0
    table->CmdEndRenderPass = (PFN_vkCmdEndRenderPass)gpa(dev, "vkCmdEndRenderPass");
486
487
    // ---- Core Vulkan 1.1 commands
488
0
    table->BindBufferMemory2 = (PFN_vkBindBufferMemory2)gpa(dev, "vkBindBufferMemory2");
489
0
    table->BindImageMemory2 = (PFN_vkBindImageMemory2)gpa(dev, "vkBindImageMemory2");
490
0
    table->GetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)gpa(dev, "vkGetDeviceGroupPeerMemoryFeatures");
491
0
    table->CmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)gpa(dev, "vkCmdSetDeviceMask");
492
0
    table->GetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)gpa(dev, "vkGetImageMemoryRequirements2");
493
0
    table->GetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)gpa(dev, "vkGetBufferMemoryRequirements2");
494
0
    table->GetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)gpa(dev, "vkGetImageSparseMemoryRequirements2");
495
0
    table->TrimCommandPool = (PFN_vkTrimCommandPool)gpa(dev, "vkTrimCommandPool");
496
0
    table->GetDeviceQueue2 = (PFN_vkGetDeviceQueue2)gpa(dev, "vkGetDeviceQueue2");
497
0
    table->CmdDispatchBase = (PFN_vkCmdDispatchBase)gpa(dev, "vkCmdDispatchBase");
498
0
    table->CreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)gpa(dev, "vkCreateDescriptorUpdateTemplate");
499
0
    table->DestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)gpa(dev, "vkDestroyDescriptorUpdateTemplate");
500
0
    table->UpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)gpa(dev, "vkUpdateDescriptorSetWithTemplate");
501
0
    table->GetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)gpa(dev, "vkGetDescriptorSetLayoutSupport");
502
0
    table->CreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)gpa(dev, "vkCreateSamplerYcbcrConversion");
503
0
    table->DestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)gpa(dev, "vkDestroySamplerYcbcrConversion");
504
505
    // ---- Core Vulkan 1.2 commands
506
0
    table->ResetQueryPool = (PFN_vkResetQueryPool)gpa(dev, "vkResetQueryPool");
507
0
    table->GetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)gpa(dev, "vkGetSemaphoreCounterValue");
508
0
    table->WaitSemaphores = (PFN_vkWaitSemaphores)gpa(dev, "vkWaitSemaphores");
509
0
    table->SignalSemaphore = (PFN_vkSignalSemaphore)gpa(dev, "vkSignalSemaphore");
510
0
    table->GetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)gpa(dev, "vkGetBufferDeviceAddress");
511
0
    table->GetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)gpa(dev, "vkGetBufferOpaqueCaptureAddress");
512
0
    table->GetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)gpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddress");
513
0
    table->CmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)gpa(dev, "vkCmdDrawIndirectCount");
514
0
    table->CmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)gpa(dev, "vkCmdDrawIndexedIndirectCount");
515
0
    table->CreateRenderPass2 = (PFN_vkCreateRenderPass2)gpa(dev, "vkCreateRenderPass2");
516
0
    table->CmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)gpa(dev, "vkCmdBeginRenderPass2");
517
0
    table->CmdNextSubpass2 = (PFN_vkCmdNextSubpass2)gpa(dev, "vkCmdNextSubpass2");
518
0
    table->CmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)gpa(dev, "vkCmdEndRenderPass2");
519
520
    // ---- Core Vulkan 1.3 commands
521
0
    table->CreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)gpa(dev, "vkCreatePrivateDataSlot");
522
0
    table->DestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)gpa(dev, "vkDestroyPrivateDataSlot");
523
0
    table->SetPrivateData = (PFN_vkSetPrivateData)gpa(dev, "vkSetPrivateData");
524
0
    table->GetPrivateData = (PFN_vkGetPrivateData)gpa(dev, "vkGetPrivateData");
525
0
    table->CmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)gpa(dev, "vkCmdPipelineBarrier2");
526
0
    table->CmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)gpa(dev, "vkCmdWriteTimestamp2");
527
0
    table->QueueSubmit2 = (PFN_vkQueueSubmit2)gpa(dev, "vkQueueSubmit2");
528
0
    table->CmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)gpa(dev, "vkCmdCopyBuffer2");
529
0
    table->CmdCopyImage2 = (PFN_vkCmdCopyImage2)gpa(dev, "vkCmdCopyImage2");
530
0
    table->CmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)gpa(dev, "vkCmdCopyBufferToImage2");
531
0
    table->CmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)gpa(dev, "vkCmdCopyImageToBuffer2");
532
0
    table->GetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)gpa(dev, "vkGetDeviceBufferMemoryRequirements");
533
0
    table->GetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)gpa(dev, "vkGetDeviceImageMemoryRequirements");
534
0
    table->GetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)gpa(dev, "vkGetDeviceImageSparseMemoryRequirements");
535
0
    table->CmdSetEvent2 = (PFN_vkCmdSetEvent2)gpa(dev, "vkCmdSetEvent2");
536
0
    table->CmdResetEvent2 = (PFN_vkCmdResetEvent2)gpa(dev, "vkCmdResetEvent2");
537
0
    table->CmdWaitEvents2 = (PFN_vkCmdWaitEvents2)gpa(dev, "vkCmdWaitEvents2");
538
0
    table->CmdBlitImage2 = (PFN_vkCmdBlitImage2)gpa(dev, "vkCmdBlitImage2");
539
0
    table->CmdResolveImage2 = (PFN_vkCmdResolveImage2)gpa(dev, "vkCmdResolveImage2");
540
0
    table->CmdBeginRendering = (PFN_vkCmdBeginRendering)gpa(dev, "vkCmdBeginRendering");
541
0
    table->CmdEndRendering = (PFN_vkCmdEndRendering)gpa(dev, "vkCmdEndRendering");
542
0
    table->CmdSetCullMode = (PFN_vkCmdSetCullMode)gpa(dev, "vkCmdSetCullMode");
543
0
    table->CmdSetFrontFace = (PFN_vkCmdSetFrontFace)gpa(dev, "vkCmdSetFrontFace");
544
0
    table->CmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)gpa(dev, "vkCmdSetPrimitiveTopology");
545
0
    table->CmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)gpa(dev, "vkCmdSetViewportWithCount");
546
0
    table->CmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)gpa(dev, "vkCmdSetScissorWithCount");
547
0
    table->CmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)gpa(dev, "vkCmdBindVertexBuffers2");
548
0
    table->CmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)gpa(dev, "vkCmdSetDepthTestEnable");
549
0
    table->CmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)gpa(dev, "vkCmdSetDepthWriteEnable");
550
0
    table->CmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)gpa(dev, "vkCmdSetDepthCompareOp");
551
0
    table->CmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)gpa(dev, "vkCmdSetDepthBoundsTestEnable");
552
0
    table->CmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)gpa(dev, "vkCmdSetStencilTestEnable");
553
0
    table->CmdSetStencilOp = (PFN_vkCmdSetStencilOp)gpa(dev, "vkCmdSetStencilOp");
554
0
    table->CmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)gpa(dev, "vkCmdSetRasterizerDiscardEnable");
555
0
    table->CmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)gpa(dev, "vkCmdSetDepthBiasEnable");
556
0
    table->CmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)gpa(dev, "vkCmdSetPrimitiveRestartEnable");
557
558
    // ---- Core Vulkan 1.4 commands
559
0
    table->MapMemory2 = (PFN_vkMapMemory2)gpa(dev, "vkMapMemory2");
560
0
    table->UnmapMemory2 = (PFN_vkUnmapMemory2)gpa(dev, "vkUnmapMemory2");
561
0
    table->GetDeviceImageSubresourceLayout = (PFN_vkGetDeviceImageSubresourceLayout)gpa(dev, "vkGetDeviceImageSubresourceLayout");
562
0
    table->GetImageSubresourceLayout2 = (PFN_vkGetImageSubresourceLayout2)gpa(dev, "vkGetImageSubresourceLayout2");
563
0
    table->CopyMemoryToImage = (PFN_vkCopyMemoryToImage)gpa(dev, "vkCopyMemoryToImage");
564
0
    table->CopyImageToMemory = (PFN_vkCopyImageToMemory)gpa(dev, "vkCopyImageToMemory");
565
0
    table->CopyImageToImage = (PFN_vkCopyImageToImage)gpa(dev, "vkCopyImageToImage");
566
0
    table->TransitionImageLayout = (PFN_vkTransitionImageLayout)gpa(dev, "vkTransitionImageLayout");
567
0
    table->CmdPushDescriptorSet = (PFN_vkCmdPushDescriptorSet)gpa(dev, "vkCmdPushDescriptorSet");
568
0
    table->CmdPushDescriptorSetWithTemplate = (PFN_vkCmdPushDescriptorSetWithTemplate)gpa(dev, "vkCmdPushDescriptorSetWithTemplate");
569
0
    table->CmdBindDescriptorSets2 = (PFN_vkCmdBindDescriptorSets2)gpa(dev, "vkCmdBindDescriptorSets2");
570
0
    table->CmdPushConstants2 = (PFN_vkCmdPushConstants2)gpa(dev, "vkCmdPushConstants2");
571
0
    table->CmdPushDescriptorSet2 = (PFN_vkCmdPushDescriptorSet2)gpa(dev, "vkCmdPushDescriptorSet2");
572
0
    table->CmdPushDescriptorSetWithTemplate2 = (PFN_vkCmdPushDescriptorSetWithTemplate2)gpa(dev, "vkCmdPushDescriptorSetWithTemplate2");
573
0
    table->CmdSetLineStipple = (PFN_vkCmdSetLineStipple)gpa(dev, "vkCmdSetLineStipple");
574
0
    table->CmdBindIndexBuffer2 = (PFN_vkCmdBindIndexBuffer2)gpa(dev, "vkCmdBindIndexBuffer2");
575
0
    table->GetRenderingAreaGranularity = (PFN_vkGetRenderingAreaGranularity)gpa(dev, "vkGetRenderingAreaGranularity");
576
0
    table->CmdSetRenderingAttachmentLocations = (PFN_vkCmdSetRenderingAttachmentLocations)gpa(dev, "vkCmdSetRenderingAttachmentLocations");
577
0
    table->CmdSetRenderingInputAttachmentIndices = (PFN_vkCmdSetRenderingInputAttachmentIndices)gpa(dev, "vkCmdSetRenderingInputAttachmentIndices");
578
0
}
579
580
// Init Device function pointer dispatch table with extension commands
581
VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table *dev_table,
582
                                                                       PFN_vkGetInstanceProcAddr gipa,
583
                                                                       PFN_vkGetDeviceProcAddr gdpa,
584
                                                                       VkInstance inst,
585
0
                                                                       VkDevice dev) {
586
0
    VkLayerDispatchTable *table = &dev_table->core_dispatch;
587
0
    table->magic = DEVICE_DISP_TABLE_MAGIC_NUMBER;
588
589
    // ---- VK_KHR_swapchain extension commands
590
0
    table->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gdpa(dev, "vkCreateSwapchainKHR");
591
0
    table->DestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)gdpa(dev, "vkDestroySwapchainKHR");
592
0
    table->GetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)gdpa(dev, "vkGetSwapchainImagesKHR");
593
0
    table->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)gdpa(dev, "vkAcquireNextImageKHR");
594
0
    table->QueuePresentKHR = (PFN_vkQueuePresentKHR)gdpa(dev, "vkQueuePresentKHR");
595
0
    table->GetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)gdpa(dev, "vkGetDeviceGroupPresentCapabilitiesKHR");
596
0
    table->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gdpa(dev, "vkGetDeviceGroupSurfacePresentModesKHR");
597
0
    table->AcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)gdpa(dev, "vkAcquireNextImage2KHR");
598
599
    // ---- VK_KHR_display_swapchain extension commands
600
0
    table->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gdpa(dev, "vkCreateSharedSwapchainsKHR");
601
602
    // ---- VK_KHR_video_queue extension commands
603
0
    table->CreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)gdpa(dev, "vkCreateVideoSessionKHR");
604
0
    table->DestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)gdpa(dev, "vkDestroyVideoSessionKHR");
605
0
    table->GetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)gdpa(dev, "vkGetVideoSessionMemoryRequirementsKHR");
606
0
    table->BindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)gdpa(dev, "vkBindVideoSessionMemoryKHR");
607
0
    table->CreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)gdpa(dev, "vkCreateVideoSessionParametersKHR");
608
0
    table->UpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)gdpa(dev, "vkUpdateVideoSessionParametersKHR");
609
0
    table->DestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)gdpa(dev, "vkDestroyVideoSessionParametersKHR");
610
0
    table->CmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)gdpa(dev, "vkCmdBeginVideoCodingKHR");
611
0
    table->CmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)gdpa(dev, "vkCmdEndVideoCodingKHR");
612
0
    table->CmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)gdpa(dev, "vkCmdControlVideoCodingKHR");
613
614
    // ---- VK_KHR_video_decode_queue extension commands
615
0
    table->CmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)gdpa(dev, "vkCmdDecodeVideoKHR");
616
617
    // ---- VK_KHR_dynamic_rendering extension commands
618
0
    table->CmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)gdpa(dev, "vkCmdBeginRenderingKHR");
619
0
    table->CmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)gdpa(dev, "vkCmdEndRenderingKHR");
620
621
    // ---- VK_KHR_device_group extension commands
622
0
    table->GetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)gdpa(dev, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
623
0
    table->CmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)gdpa(dev, "vkCmdSetDeviceMaskKHR");
624
0
    table->CmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)gdpa(dev, "vkCmdDispatchBaseKHR");
625
626
    // ---- VK_KHR_maintenance1 extension commands
627
0
    table->TrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)gdpa(dev, "vkTrimCommandPoolKHR");
628
629
    // ---- VK_KHR_external_memory_win32 extension commands
630
#if defined(VK_USE_PLATFORM_WIN32_KHR)
631
    table->GetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)gdpa(dev, "vkGetMemoryWin32HandleKHR");
632
#endif // VK_USE_PLATFORM_WIN32_KHR
633
#if defined(VK_USE_PLATFORM_WIN32_KHR)
634
    table->GetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)gdpa(dev, "vkGetMemoryWin32HandlePropertiesKHR");
635
#endif // VK_USE_PLATFORM_WIN32_KHR
636
637
    // ---- VK_KHR_external_memory_fd extension commands
638
0
    table->GetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)gdpa(dev, "vkGetMemoryFdKHR");
639
0
    table->GetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)gdpa(dev, "vkGetMemoryFdPropertiesKHR");
640
641
    // ---- VK_KHR_external_semaphore_win32 extension commands
642
#if defined(VK_USE_PLATFORM_WIN32_KHR)
643
    table->ImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)gdpa(dev, "vkImportSemaphoreWin32HandleKHR");
644
#endif // VK_USE_PLATFORM_WIN32_KHR
645
#if defined(VK_USE_PLATFORM_WIN32_KHR)
646
    table->GetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)gdpa(dev, "vkGetSemaphoreWin32HandleKHR");
647
#endif // VK_USE_PLATFORM_WIN32_KHR
648
649
    // ---- VK_KHR_external_semaphore_fd extension commands
650
0
    table->ImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)gdpa(dev, "vkImportSemaphoreFdKHR");
651
0
    table->GetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)gdpa(dev, "vkGetSemaphoreFdKHR");
652
653
    // ---- VK_KHR_push_descriptor extension commands
654
0
    table->CmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)gdpa(dev, "vkCmdPushDescriptorSetKHR");
655
0
    table->CmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplateKHR");
656
657
    // ---- VK_KHR_descriptor_update_template extension commands
658
0
    table->CreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)gdpa(dev, "vkCreateDescriptorUpdateTemplateKHR");
659
0
    table->DestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)gdpa(dev, "vkDestroyDescriptorUpdateTemplateKHR");
660
0
    table->UpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)gdpa(dev, "vkUpdateDescriptorSetWithTemplateKHR");
661
662
    // ---- VK_KHR_create_renderpass2 extension commands
663
0
    table->CreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)gdpa(dev, "vkCreateRenderPass2KHR");
664
0
    table->CmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)gdpa(dev, "vkCmdBeginRenderPass2KHR");
665
0
    table->CmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)gdpa(dev, "vkCmdNextSubpass2KHR");
666
0
    table->CmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)gdpa(dev, "vkCmdEndRenderPass2KHR");
667
668
    // ---- VK_KHR_shared_presentable_image extension commands
669
0
    table->GetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)gdpa(dev, "vkGetSwapchainStatusKHR");
670
671
    // ---- VK_KHR_external_fence_win32 extension commands
672
#if defined(VK_USE_PLATFORM_WIN32_KHR)
673
    table->ImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)gdpa(dev, "vkImportFenceWin32HandleKHR");
674
#endif // VK_USE_PLATFORM_WIN32_KHR
675
#if defined(VK_USE_PLATFORM_WIN32_KHR)
676
    table->GetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)gdpa(dev, "vkGetFenceWin32HandleKHR");
677
#endif // VK_USE_PLATFORM_WIN32_KHR
678
679
    // ---- VK_KHR_external_fence_fd extension commands
680
0
    table->ImportFenceFdKHR = (PFN_vkImportFenceFdKHR)gdpa(dev, "vkImportFenceFdKHR");
681
0
    table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR)gdpa(dev, "vkGetFenceFdKHR");
682
683
    // ---- VK_KHR_performance_query extension commands
684
0
    table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)gdpa(dev, "vkAcquireProfilingLockKHR");
685
0
    table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)gdpa(dev, "vkReleaseProfilingLockKHR");
686
687
    // ---- VK_KHR_get_memory_requirements2 extension commands
688
0
    table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)gdpa(dev, "vkGetImageMemoryRequirements2KHR");
689
0
    table->GetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)gdpa(dev, "vkGetBufferMemoryRequirements2KHR");
690
0
    table->GetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)gdpa(dev, "vkGetImageSparseMemoryRequirements2KHR");
691
692
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
693
0
    table->CreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)gdpa(dev, "vkCreateSamplerYcbcrConversionKHR");
694
0
    table->DestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)gdpa(dev, "vkDestroySamplerYcbcrConversionKHR");
695
696
    // ---- VK_KHR_bind_memory2 extension commands
697
0
    table->BindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)gdpa(dev, "vkBindBufferMemory2KHR");
698
0
    table->BindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)gdpa(dev, "vkBindImageMemory2KHR");
699
700
    // ---- VK_KHR_maintenance3 extension commands
701
0
    table->GetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)gdpa(dev, "vkGetDescriptorSetLayoutSupportKHR");
702
703
    // ---- VK_KHR_draw_indirect_count extension commands
704
0
    table->CmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)gdpa(dev, "vkCmdDrawIndirectCountKHR");
705
0
    table->CmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)gdpa(dev, "vkCmdDrawIndexedIndirectCountKHR");
706
707
    // ---- VK_KHR_timeline_semaphore extension commands
708
0
    table->GetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)gdpa(dev, "vkGetSemaphoreCounterValueKHR");
709
0
    table->WaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)gdpa(dev, "vkWaitSemaphoresKHR");
710
0
    table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)gdpa(dev, "vkSignalSemaphoreKHR");
711
712
    // ---- VK_KHR_fragment_shading_rate extension commands
713
0
    table->CmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)gdpa(dev, "vkCmdSetFragmentShadingRateKHR");
714
715
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
716
0
    table->CmdSetRenderingAttachmentLocationsKHR = (PFN_vkCmdSetRenderingAttachmentLocationsKHR)gdpa(dev, "vkCmdSetRenderingAttachmentLocationsKHR");
717
0
    table->CmdSetRenderingInputAttachmentIndicesKHR = (PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)gdpa(dev, "vkCmdSetRenderingInputAttachmentIndicesKHR");
718
719
    // ---- VK_KHR_present_wait extension commands
720
0
    table->WaitForPresentKHR = (PFN_vkWaitForPresentKHR)gdpa(dev, "vkWaitForPresentKHR");
721
722
    // ---- VK_KHR_buffer_device_address extension commands
723
0
    table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)gdpa(dev, "vkGetBufferDeviceAddressKHR");
724
0
    table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)gdpa(dev, "vkGetBufferOpaqueCaptureAddressKHR");
725
0
    table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)gdpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
726
727
    // ---- VK_KHR_deferred_host_operations extension commands
728
0
    table->CreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)gdpa(dev, "vkCreateDeferredOperationKHR");
729
0
    table->DestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)gdpa(dev, "vkDestroyDeferredOperationKHR");
730
0
    table->GetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)gdpa(dev, "vkGetDeferredOperationMaxConcurrencyKHR");
731
0
    table->GetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)gdpa(dev, "vkGetDeferredOperationResultKHR");
732
0
    table->DeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)gdpa(dev, "vkDeferredOperationJoinKHR");
733
734
    // ---- VK_KHR_pipeline_executable_properties extension commands
735
0
    table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)gdpa(dev, "vkGetPipelineExecutablePropertiesKHR");
736
0
    table->GetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)gdpa(dev, "vkGetPipelineExecutableStatisticsKHR");
737
0
    table->GetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)gdpa(dev, "vkGetPipelineExecutableInternalRepresentationsKHR");
738
739
    // ---- VK_KHR_map_memory2 extension commands
740
0
    table->MapMemory2KHR = (PFN_vkMapMemory2KHR)gdpa(dev, "vkMapMemory2KHR");
741
0
    table->UnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)gdpa(dev, "vkUnmapMemory2KHR");
742
743
    // ---- VK_KHR_video_encode_queue extension commands
744
0
    table->GetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)gdpa(dev, "vkGetEncodedVideoSessionParametersKHR");
745
0
    table->CmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)gdpa(dev, "vkCmdEncodeVideoKHR");
746
747
    // ---- VK_KHR_synchronization2 extension commands
748
0
    table->CmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)gdpa(dev, "vkCmdSetEvent2KHR");
749
0
    table->CmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)gdpa(dev, "vkCmdResetEvent2KHR");
750
0
    table->CmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)gdpa(dev, "vkCmdWaitEvents2KHR");
751
0
    table->CmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)gdpa(dev, "vkCmdPipelineBarrier2KHR");
752
0
    table->CmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)gdpa(dev, "vkCmdWriteTimestamp2KHR");
753
0
    table->QueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)gdpa(dev, "vkQueueSubmit2KHR");
754
755
    // ---- VK_KHR_device_address_commands extension commands
756
0
    table->CmdBindIndexBuffer3KHR = (PFN_vkCmdBindIndexBuffer3KHR)gdpa(dev, "vkCmdBindIndexBuffer3KHR");
757
0
    table->CmdBindVertexBuffers3KHR = (PFN_vkCmdBindVertexBuffers3KHR)gdpa(dev, "vkCmdBindVertexBuffers3KHR");
758
0
    table->CmdDrawIndirect2KHR = (PFN_vkCmdDrawIndirect2KHR)gdpa(dev, "vkCmdDrawIndirect2KHR");
759
0
    table->CmdDrawIndexedIndirect2KHR = (PFN_vkCmdDrawIndexedIndirect2KHR)gdpa(dev, "vkCmdDrawIndexedIndirect2KHR");
760
0
    table->CmdDispatchIndirect2KHR = (PFN_vkCmdDispatchIndirect2KHR)gdpa(dev, "vkCmdDispatchIndirect2KHR");
761
0
    table->CmdCopyMemoryKHR = (PFN_vkCmdCopyMemoryKHR)gdpa(dev, "vkCmdCopyMemoryKHR");
762
0
    table->CmdCopyMemoryToImageKHR = (PFN_vkCmdCopyMemoryToImageKHR)gdpa(dev, "vkCmdCopyMemoryToImageKHR");
763
0
    table->CmdCopyImageToMemoryKHR = (PFN_vkCmdCopyImageToMemoryKHR)gdpa(dev, "vkCmdCopyImageToMemoryKHR");
764
0
    table->CmdUpdateMemoryKHR = (PFN_vkCmdUpdateMemoryKHR)gdpa(dev, "vkCmdUpdateMemoryKHR");
765
0
    table->CmdFillMemoryKHR = (PFN_vkCmdFillMemoryKHR)gdpa(dev, "vkCmdFillMemoryKHR");
766
0
    table->CmdCopyQueryPoolResultsToMemoryKHR = (PFN_vkCmdCopyQueryPoolResultsToMemoryKHR)gdpa(dev, "vkCmdCopyQueryPoolResultsToMemoryKHR");
767
0
    table->CmdDrawIndirectCount2KHR = (PFN_vkCmdDrawIndirectCount2KHR)gdpa(dev, "vkCmdDrawIndirectCount2KHR");
768
0
    table->CmdDrawIndexedIndirectCount2KHR = (PFN_vkCmdDrawIndexedIndirectCount2KHR)gdpa(dev, "vkCmdDrawIndexedIndirectCount2KHR");
769
0
    table->CmdBeginConditionalRendering2EXT = (PFN_vkCmdBeginConditionalRendering2EXT)gdpa(dev, "vkCmdBeginConditionalRendering2EXT");
770
0
    table->CmdBindTransformFeedbackBuffers2EXT = (PFN_vkCmdBindTransformFeedbackBuffers2EXT)gdpa(dev, "vkCmdBindTransformFeedbackBuffers2EXT");
771
0
    table->CmdBeginTransformFeedback2EXT = (PFN_vkCmdBeginTransformFeedback2EXT)gdpa(dev, "vkCmdBeginTransformFeedback2EXT");
772
0
    table->CmdEndTransformFeedback2EXT = (PFN_vkCmdEndTransformFeedback2EXT)gdpa(dev, "vkCmdEndTransformFeedback2EXT");
773
0
    table->CmdDrawIndirectByteCount2EXT = (PFN_vkCmdDrawIndirectByteCount2EXT)gdpa(dev, "vkCmdDrawIndirectByteCount2EXT");
774
0
    table->CmdDrawMeshTasksIndirect2EXT = (PFN_vkCmdDrawMeshTasksIndirect2EXT)gdpa(dev, "vkCmdDrawMeshTasksIndirect2EXT");
775
0
    table->CmdDrawMeshTasksIndirectCount2EXT = (PFN_vkCmdDrawMeshTasksIndirectCount2EXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectCount2EXT");
776
0
    table->CmdWriteMarkerToMemoryAMD = (PFN_vkCmdWriteMarkerToMemoryAMD)gdpa(dev, "vkCmdWriteMarkerToMemoryAMD");
777
0
    table->CreateAccelerationStructure2KHR = (PFN_vkCreateAccelerationStructure2KHR)gdpa(dev, "vkCreateAccelerationStructure2KHR");
778
779
    // ---- VK_KHR_copy_commands2 extension commands
780
0
    table->CmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)gdpa(dev, "vkCmdCopyBuffer2KHR");
781
0
    table->CmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)gdpa(dev, "vkCmdCopyImage2KHR");
782
0
    table->CmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)gdpa(dev, "vkCmdCopyBufferToImage2KHR");
783
0
    table->CmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)gdpa(dev, "vkCmdCopyImageToBuffer2KHR");
784
0
    table->CmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)gdpa(dev, "vkCmdBlitImage2KHR");
785
0
    table->CmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)gdpa(dev, "vkCmdResolveImage2KHR");
786
787
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
788
0
    table->CmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)gdpa(dev, "vkCmdTraceRaysIndirect2KHR");
789
790
    // ---- VK_KHR_maintenance4 extension commands
791
0
    table->GetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceBufferMemoryRequirementsKHR");
792
0
    table->GetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageMemoryRequirementsKHR");
793
0
    table->GetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageSparseMemoryRequirementsKHR");
794
795
    // ---- VK_KHR_maintenance5 extension commands
796
0
    table->CmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)gdpa(dev, "vkCmdBindIndexBuffer2KHR");
797
0
    table->GetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)gdpa(dev, "vkGetRenderingAreaGranularityKHR");
798
0
    table->GetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)gdpa(dev, "vkGetDeviceImageSubresourceLayoutKHR");
799
0
    table->GetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)gdpa(dev, "vkGetImageSubresourceLayout2KHR");
800
801
    // ---- VK_KHR_present_wait2 extension commands
802
0
    table->WaitForPresent2KHR = (PFN_vkWaitForPresent2KHR)gdpa(dev, "vkWaitForPresent2KHR");
803
804
    // ---- VK_KHR_pipeline_binary extension commands
805
0
    table->CreatePipelineBinariesKHR = (PFN_vkCreatePipelineBinariesKHR)gdpa(dev, "vkCreatePipelineBinariesKHR");
806
0
    table->DestroyPipelineBinaryKHR = (PFN_vkDestroyPipelineBinaryKHR)gdpa(dev, "vkDestroyPipelineBinaryKHR");
807
0
    table->GetPipelineKeyKHR = (PFN_vkGetPipelineKeyKHR)gdpa(dev, "vkGetPipelineKeyKHR");
808
0
    table->GetPipelineBinaryDataKHR = (PFN_vkGetPipelineBinaryDataKHR)gdpa(dev, "vkGetPipelineBinaryDataKHR");
809
0
    table->ReleaseCapturedPipelineDataKHR = (PFN_vkReleaseCapturedPipelineDataKHR)gdpa(dev, "vkReleaseCapturedPipelineDataKHR");
810
811
    // ---- VK_KHR_swapchain_maintenance1 extension commands
812
0
    table->ReleaseSwapchainImagesKHR = (PFN_vkReleaseSwapchainImagesKHR)gdpa(dev, "vkReleaseSwapchainImagesKHR");
813
814
    // ---- VK_KHR_line_rasterization extension commands
815
0
    table->CmdSetLineStippleKHR = (PFN_vkCmdSetLineStippleKHR)gdpa(dev, "vkCmdSetLineStippleKHR");
816
817
    // ---- VK_KHR_calibrated_timestamps extension commands
818
0
    table->GetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)gdpa(dev, "vkGetCalibratedTimestampsKHR");
819
820
    // ---- VK_KHR_maintenance6 extension commands
821
0
    table->CmdBindDescriptorSets2KHR = (PFN_vkCmdBindDescriptorSets2KHR)gdpa(dev, "vkCmdBindDescriptorSets2KHR");
822
0
    table->CmdPushConstants2KHR = (PFN_vkCmdPushConstants2KHR)gdpa(dev, "vkCmdPushConstants2KHR");
823
0
    table->CmdPushDescriptorSet2KHR = (PFN_vkCmdPushDescriptorSet2KHR)gdpa(dev, "vkCmdPushDescriptorSet2KHR");
824
0
    table->CmdPushDescriptorSetWithTemplate2KHR = (PFN_vkCmdPushDescriptorSetWithTemplate2KHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplate2KHR");
825
0
    table->CmdSetDescriptorBufferOffsets2EXT = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsets2EXT");
826
0
    table->CmdBindDescriptorBufferEmbeddedSamplers2EXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT");
827
828
    // ---- VK_KHR_copy_memory_indirect extension commands
829
0
    table->CmdCopyMemoryIndirectKHR = (PFN_vkCmdCopyMemoryIndirectKHR)gdpa(dev, "vkCmdCopyMemoryIndirectKHR");
830
0
    table->CmdCopyMemoryToImageIndirectKHR = (PFN_vkCmdCopyMemoryToImageIndirectKHR)gdpa(dev, "vkCmdCopyMemoryToImageIndirectKHR");
831
832
    // ---- VK_KHR_device_fault extension commands
833
0
    table->GetDeviceFaultReportsKHR = (PFN_vkGetDeviceFaultReportsKHR)gdpa(dev, "vkGetDeviceFaultReportsKHR");
834
0
    table->GetDeviceFaultDebugInfoKHR = (PFN_vkGetDeviceFaultDebugInfoKHR)gdpa(dev, "vkGetDeviceFaultDebugInfoKHR");
835
836
    // ---- VK_KHR_maintenance10 extension commands
837
0
    table->CmdEndRendering2KHR = (PFN_vkCmdEndRendering2KHR)gdpa(dev, "vkCmdEndRendering2KHR");
838
839
    // ---- VK_EXT_debug_marker extension commands
840
0
    table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gdpa(dev, "vkDebugMarkerSetObjectTagEXT");
841
0
    table->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gdpa(dev, "vkDebugMarkerSetObjectNameEXT");
842
0
    table->CmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)gdpa(dev, "vkCmdDebugMarkerBeginEXT");
843
0
    table->CmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)gdpa(dev, "vkCmdDebugMarkerEndEXT");
844
0
    table->CmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)gdpa(dev, "vkCmdDebugMarkerInsertEXT");
845
846
    // ---- VK_EXT_transform_feedback extension commands
847
0
    table->CmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)gdpa(dev, "vkCmdBindTransformFeedbackBuffersEXT");
848
0
    table->CmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)gdpa(dev, "vkCmdBeginTransformFeedbackEXT");
849
0
    table->CmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)gdpa(dev, "vkCmdEndTransformFeedbackEXT");
850
0
    table->CmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)gdpa(dev, "vkCmdBeginQueryIndexedEXT");
851
0
    table->CmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)gdpa(dev, "vkCmdEndQueryIndexedEXT");
852
0
    table->CmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)gdpa(dev, "vkCmdDrawIndirectByteCountEXT");
853
854
    // ---- VK_NVX_binary_import extension commands
855
0
    table->CreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)gdpa(dev, "vkCreateCuModuleNVX");
856
0
    table->CreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)gdpa(dev, "vkCreateCuFunctionNVX");
857
0
    table->DestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)gdpa(dev, "vkDestroyCuModuleNVX");
858
0
    table->DestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)gdpa(dev, "vkDestroyCuFunctionNVX");
859
0
    table->CmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)gdpa(dev, "vkCmdCuLaunchKernelNVX");
860
861
    // ---- VK_NVX_image_view_handle extension commands
862
0
    table->GetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)gdpa(dev, "vkGetImageViewHandleNVX");
863
0
    table->GetImageViewHandle64NVX = (PFN_vkGetImageViewHandle64NVX)gdpa(dev, "vkGetImageViewHandle64NVX");
864
0
    table->GetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)gdpa(dev, "vkGetImageViewAddressNVX");
865
0
    table->GetDeviceCombinedImageSamplerIndexNVX = (PFN_vkGetDeviceCombinedImageSamplerIndexNVX)gdpa(dev, "vkGetDeviceCombinedImageSamplerIndexNVX");
866
867
    // ---- VK_AMD_draw_indirect_count extension commands
868
0
    table->CmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)gdpa(dev, "vkCmdDrawIndirectCountAMD");
869
0
    table->CmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)gdpa(dev, "vkCmdDrawIndexedIndirectCountAMD");
870
871
    // ---- VK_AMD_shader_info extension commands
872
0
    table->GetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)gdpa(dev, "vkGetShaderInfoAMD");
873
874
    // ---- VK_NV_external_memory_win32 extension commands
875
#if defined(VK_USE_PLATFORM_WIN32_KHR)
876
    table->GetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)gdpa(dev, "vkGetMemoryWin32HandleNV");
877
#endif // VK_USE_PLATFORM_WIN32_KHR
878
879
    // ---- VK_EXT_conditional_rendering extension commands
880
0
    table->CmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)gdpa(dev, "vkCmdBeginConditionalRenderingEXT");
881
0
    table->CmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)gdpa(dev, "vkCmdEndConditionalRenderingEXT");
882
883
    // ---- VK_NV_clip_space_w_scaling extension commands
884
0
    table->CmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)gdpa(dev, "vkCmdSetViewportWScalingNV");
885
886
    // ---- VK_EXT_display_control extension commands
887
0
    table->DisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)gdpa(dev, "vkDisplayPowerControlEXT");
888
0
    table->RegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)gdpa(dev, "vkRegisterDeviceEventEXT");
889
0
    table->RegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)gdpa(dev, "vkRegisterDisplayEventEXT");
890
0
    table->GetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)gdpa(dev, "vkGetSwapchainCounterEXT");
891
892
    // ---- VK_GOOGLE_display_timing extension commands
893
0
    table->GetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)gdpa(dev, "vkGetRefreshCycleDurationGOOGLE");
894
0
    table->GetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)gdpa(dev, "vkGetPastPresentationTimingGOOGLE");
895
896
    // ---- VK_EXT_discard_rectangles extension commands
897
0
    table->CmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)gdpa(dev, "vkCmdSetDiscardRectangleEXT");
898
0
    table->CmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)gdpa(dev, "vkCmdSetDiscardRectangleEnableEXT");
899
0
    table->CmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)gdpa(dev, "vkCmdSetDiscardRectangleModeEXT");
900
901
    // ---- VK_EXT_hdr_metadata extension commands
902
0
    table->SetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)gdpa(dev, "vkSetHdrMetadataEXT");
903
904
    // ---- VK_EXT_debug_utils extension commands
905
0
    table->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gipa(inst, "vkSetDebugUtilsObjectNameEXT");
906
0
    table->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gipa(inst, "vkSetDebugUtilsObjectTagEXT");
907
0
    table->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gipa(inst, "vkQueueBeginDebugUtilsLabelEXT");
908
0
    table->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gipa(inst, "vkQueueEndDebugUtilsLabelEXT");
909
0
    table->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gipa(inst, "vkQueueInsertDebugUtilsLabelEXT");
910
0
    table->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gipa(inst, "vkCmdBeginDebugUtilsLabelEXT");
911
0
    table->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gipa(inst, "vkCmdEndDebugUtilsLabelEXT");
912
0
    table->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gipa(inst, "vkCmdInsertDebugUtilsLabelEXT");
913
914
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
915
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
916
    table->GetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)gdpa(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
917
#endif // VK_USE_PLATFORM_ANDROID_KHR
918
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
919
    table->GetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)gdpa(dev, "vkGetMemoryAndroidHardwareBufferANDROID");
920
#endif // VK_USE_PLATFORM_ANDROID_KHR
921
922
    // ---- VK_AMDX_shader_enqueue extension commands
923
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
924
0
    table->CreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)gdpa(dev, "vkCreateExecutionGraphPipelinesAMDX");
925
0
#endif // VK_ENABLE_BETA_EXTENSIONS
926
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
927
0
    table->GetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)gdpa(dev, "vkGetExecutionGraphPipelineScratchSizeAMDX");
928
0
#endif // VK_ENABLE_BETA_EXTENSIONS
929
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
930
0
    table->GetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)gdpa(dev, "vkGetExecutionGraphPipelineNodeIndexAMDX");
931
0
#endif // VK_ENABLE_BETA_EXTENSIONS
932
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
933
0
    table->CmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)gdpa(dev, "vkCmdInitializeGraphScratchMemoryAMDX");
934
0
#endif // VK_ENABLE_BETA_EXTENSIONS
935
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
936
0
    table->CmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)gdpa(dev, "vkCmdDispatchGraphAMDX");
937
0
#endif // VK_ENABLE_BETA_EXTENSIONS
938
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
939
0
    table->CmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectAMDX");
940
0
#endif // VK_ENABLE_BETA_EXTENSIONS
941
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
942
0
    table->CmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectCountAMDX");
943
0
#endif // VK_ENABLE_BETA_EXTENSIONS
944
945
    // ---- VK_EXT_descriptor_heap extension commands
946
0
    table->WriteSamplerDescriptorsEXT = (PFN_vkWriteSamplerDescriptorsEXT)gdpa(dev, "vkWriteSamplerDescriptorsEXT");
947
0
    table->WriteResourceDescriptorsEXT = (PFN_vkWriteResourceDescriptorsEXT)gdpa(dev, "vkWriteResourceDescriptorsEXT");
948
0
    table->CmdBindSamplerHeapEXT = (PFN_vkCmdBindSamplerHeapEXT)gdpa(dev, "vkCmdBindSamplerHeapEXT");
949
0
    table->CmdBindResourceHeapEXT = (PFN_vkCmdBindResourceHeapEXT)gdpa(dev, "vkCmdBindResourceHeapEXT");
950
0
    table->CmdPushDataEXT = (PFN_vkCmdPushDataEXT)gdpa(dev, "vkCmdPushDataEXT");
951
0
    table->GetImageOpaqueCaptureDataEXT = (PFN_vkGetImageOpaqueCaptureDataEXT)gdpa(dev, "vkGetImageOpaqueCaptureDataEXT");
952
0
    table->RegisterCustomBorderColorEXT = (PFN_vkRegisterCustomBorderColorEXT)gdpa(dev, "vkRegisterCustomBorderColorEXT");
953
0
    table->UnregisterCustomBorderColorEXT = (PFN_vkUnregisterCustomBorderColorEXT)gdpa(dev, "vkUnregisterCustomBorderColorEXT");
954
0
    table->GetTensorOpaqueCaptureDataARM = (PFN_vkGetTensorOpaqueCaptureDataARM)gdpa(dev, "vkGetTensorOpaqueCaptureDataARM");
955
956
    // ---- VK_EXT_sample_locations extension commands
957
0
    table->CmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)gdpa(dev, "vkCmdSetSampleLocationsEXT");
958
959
    // ---- VK_EXT_image_drm_format_modifier extension commands
960
0
    table->GetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)gdpa(dev, "vkGetImageDrmFormatModifierPropertiesEXT");
961
962
    // ---- VK_EXT_validation_cache extension commands
963
0
    table->CreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)gdpa(dev, "vkCreateValidationCacheEXT");
964
0
    table->DestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)gdpa(dev, "vkDestroyValidationCacheEXT");
965
0
    table->MergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)gdpa(dev, "vkMergeValidationCachesEXT");
966
0
    table->GetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)gdpa(dev, "vkGetValidationCacheDataEXT");
967
968
    // ---- VK_NV_shading_rate_image extension commands
969
0
    table->CmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)gdpa(dev, "vkCmdBindShadingRateImageNV");
970
0
    table->CmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)gdpa(dev, "vkCmdSetViewportShadingRatePaletteNV");
971
0
    table->CmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)gdpa(dev, "vkCmdSetCoarseSampleOrderNV");
972
973
    // ---- VK_NV_ray_tracing extension commands
974
0
    table->CreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)gdpa(dev, "vkCreateAccelerationStructureNV");
975
0
    table->DestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)gdpa(dev, "vkDestroyAccelerationStructureNV");
976
0
    table->GetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)gdpa(dev, "vkGetAccelerationStructureMemoryRequirementsNV");
977
0
    table->BindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)gdpa(dev, "vkBindAccelerationStructureMemoryNV");
978
0
    table->CmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)gdpa(dev, "vkCmdBuildAccelerationStructureNV");
979
0
    table->CmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)gdpa(dev, "vkCmdCopyAccelerationStructureNV");
980
0
    table->CmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)gdpa(dev, "vkCmdTraceRaysNV");
981
0
    table->CreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)gdpa(dev, "vkCreateRayTracingPipelinesNV");
982
983
    // ---- VK_KHR_ray_tracing_pipeline extension commands
984
0
    table->GetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingShaderGroupHandlesKHR");
985
986
    // ---- VK_NV_ray_tracing extension commands
987
0
    table->GetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)gdpa(dev, "vkGetRayTracingShaderGroupHandlesNV");
988
0
    table->GetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)gdpa(dev, "vkGetAccelerationStructureHandleNV");
989
0
    table->CmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesNV");
990
0
    table->CompileDeferredNV = (PFN_vkCompileDeferredNV)gdpa(dev, "vkCompileDeferredNV");
991
992
    // ---- VK_EXT_external_memory_host extension commands
993
0
    table->GetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)gdpa(dev, "vkGetMemoryHostPointerPropertiesEXT");
994
995
    // ---- VK_AMD_buffer_marker extension commands
996
0
    table->CmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)gdpa(dev, "vkCmdWriteBufferMarkerAMD");
997
0
    table->CmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)gdpa(dev, "vkCmdWriteBufferMarker2AMD");
998
999
    // ---- VK_EXT_calibrated_timestamps extension commands
1000
0
    table->GetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)gdpa(dev, "vkGetCalibratedTimestampsEXT");
1001
1002
    // ---- VK_NV_mesh_shader extension commands
1003
0
    table->CmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)gdpa(dev, "vkCmdDrawMeshTasksNV");
1004
0
    table->CmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectNV");
1005
0
    table->CmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountNV");
1006
1007
    // ---- VK_NV_scissor_exclusive extension commands
1008
0
    table->CmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)gdpa(dev, "vkCmdSetExclusiveScissorEnableNV");
1009
0
    table->CmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)gdpa(dev, "vkCmdSetExclusiveScissorNV");
1010
1011
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
1012
0
    table->CmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)gdpa(dev, "vkCmdSetCheckpointNV");
1013
0
    table->GetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)gdpa(dev, "vkGetQueueCheckpointDataNV");
1014
0
    table->GetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)gdpa(dev, "vkGetQueueCheckpointData2NV");
1015
1016
    // ---- VK_EXT_present_timing extension commands
1017
0
    table->SetSwapchainPresentTimingQueueSizeEXT = (PFN_vkSetSwapchainPresentTimingQueueSizeEXT)gdpa(dev, "vkSetSwapchainPresentTimingQueueSizeEXT");
1018
0
    table->GetSwapchainTimingPropertiesEXT = (PFN_vkGetSwapchainTimingPropertiesEXT)gdpa(dev, "vkGetSwapchainTimingPropertiesEXT");
1019
0
    table->GetSwapchainTimeDomainPropertiesEXT = (PFN_vkGetSwapchainTimeDomainPropertiesEXT)gdpa(dev, "vkGetSwapchainTimeDomainPropertiesEXT");
1020
0
    table->GetPastPresentationTimingEXT = (PFN_vkGetPastPresentationTimingEXT)gdpa(dev, "vkGetPastPresentationTimingEXT");
1021
1022
    // ---- VK_INTEL_performance_query extension commands
1023
0
    table->InitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)gdpa(dev, "vkInitializePerformanceApiINTEL");
1024
0
    table->UninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)gdpa(dev, "vkUninitializePerformanceApiINTEL");
1025
0
    table->CmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceMarkerINTEL");
1026
0
    table->CmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceStreamMarkerINTEL");
1027
0
    table->CmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)gdpa(dev, "vkCmdSetPerformanceOverrideINTEL");
1028
0
    table->AcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)gdpa(dev, "vkAcquirePerformanceConfigurationINTEL");
1029
0
    table->ReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)gdpa(dev, "vkReleasePerformanceConfigurationINTEL");
1030
0
    table->QueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)gdpa(dev, "vkQueueSetPerformanceConfigurationINTEL");
1031
0
    table->GetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)gdpa(dev, "vkGetPerformanceParameterINTEL");
1032
1033
    // ---- VK_AMD_display_native_hdr extension commands
1034
0
    table->SetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)gdpa(dev, "vkSetLocalDimmingAMD");
1035
1036
    // ---- VK_EXT_buffer_device_address extension commands
1037
0
    table->GetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)gdpa(dev, "vkGetBufferDeviceAddressEXT");
1038
1039
    // ---- VK_EXT_full_screen_exclusive extension commands
1040
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1041
    table->AcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)gdpa(dev, "vkAcquireFullScreenExclusiveModeEXT");
1042
#endif // VK_USE_PLATFORM_WIN32_KHR
1043
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1044
    table->ReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)gdpa(dev, "vkReleaseFullScreenExclusiveModeEXT");
1045
#endif // VK_USE_PLATFORM_WIN32_KHR
1046
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1047
    table->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gdpa(dev, "vkGetDeviceGroupSurfacePresentModes2EXT");
1048
#endif // VK_USE_PLATFORM_WIN32_KHR
1049
1050
    // ---- VK_EXT_line_rasterization extension commands
1051
0
    table->CmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)gdpa(dev, "vkCmdSetLineStippleEXT");
1052
1053
    // ---- VK_EXT_host_query_reset extension commands
1054
0
    table->ResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)gdpa(dev, "vkResetQueryPoolEXT");
1055
1056
    // ---- VK_EXT_extended_dynamic_state extension commands
1057
0
    table->CmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)gdpa(dev, "vkCmdSetCullModeEXT");
1058
0
    table->CmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)gdpa(dev, "vkCmdSetFrontFaceEXT");
1059
0
    table->CmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)gdpa(dev, "vkCmdSetPrimitiveTopologyEXT");
1060
0
    table->CmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)gdpa(dev, "vkCmdSetViewportWithCountEXT");
1061
0
    table->CmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)gdpa(dev, "vkCmdSetScissorWithCountEXT");
1062
0
    table->CmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)gdpa(dev, "vkCmdBindVertexBuffers2EXT");
1063
0
    table->CmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)gdpa(dev, "vkCmdSetDepthTestEnableEXT");
1064
0
    table->CmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)gdpa(dev, "vkCmdSetDepthWriteEnableEXT");
1065
0
    table->CmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)gdpa(dev, "vkCmdSetDepthCompareOpEXT");
1066
0
    table->CmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)gdpa(dev, "vkCmdSetDepthBoundsTestEnableEXT");
1067
0
    table->CmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)gdpa(dev, "vkCmdSetStencilTestEnableEXT");
1068
0
    table->CmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)gdpa(dev, "vkCmdSetStencilOpEXT");
1069
1070
    // ---- VK_EXT_host_image_copy extension commands
1071
0
    table->CopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)gdpa(dev, "vkCopyMemoryToImageEXT");
1072
0
    table->CopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)gdpa(dev, "vkCopyImageToMemoryEXT");
1073
0
    table->CopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)gdpa(dev, "vkCopyImageToImageEXT");
1074
0
    table->TransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)gdpa(dev, "vkTransitionImageLayoutEXT");
1075
0
    table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)gdpa(dev, "vkGetImageSubresourceLayout2EXT");
1076
1077
    // ---- VK_EXT_swapchain_maintenance1 extension commands
1078
0
    table->ReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)gdpa(dev, "vkReleaseSwapchainImagesEXT");
1079
1080
    // ---- VK_NV_device_generated_commands extension commands
1081
0
    table->GetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsNV");
1082
0
    table->CmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)gdpa(dev, "vkCmdPreprocessGeneratedCommandsNV");
1083
0
    table->CmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)gdpa(dev, "vkCmdExecuteGeneratedCommandsNV");
1084
0
    table->CmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)gdpa(dev, "vkCmdBindPipelineShaderGroupNV");
1085
0
    table->CreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)gdpa(dev, "vkCreateIndirectCommandsLayoutNV");
1086
0
    table->DestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)gdpa(dev, "vkDestroyIndirectCommandsLayoutNV");
1087
1088
    // ---- VK_EXT_depth_bias_control extension commands
1089
0
    table->CmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)gdpa(dev, "vkCmdSetDepthBias2EXT");
1090
1091
    // ---- VK_EXT_private_data extension commands
1092
0
    table->CreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)gdpa(dev, "vkCreatePrivateDataSlotEXT");
1093
0
    table->DestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)gdpa(dev, "vkDestroyPrivateDataSlotEXT");
1094
0
    table->SetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)gdpa(dev, "vkSetPrivateDataEXT");
1095
0
    table->GetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)gdpa(dev, "vkGetPrivateDataEXT");
1096
1097
    // ---- VK_NV_cuda_kernel_launch extension commands
1098
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1099
0
    table->CreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)gdpa(dev, "vkCreateCudaModuleNV");
1100
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1101
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1102
0
    table->GetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)gdpa(dev, "vkGetCudaModuleCacheNV");
1103
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1104
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1105
0
    table->CreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)gdpa(dev, "vkCreateCudaFunctionNV");
1106
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1107
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1108
0
    table->DestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)gdpa(dev, "vkDestroyCudaModuleNV");
1109
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1110
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1111
0
    table->DestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)gdpa(dev, "vkDestroyCudaFunctionNV");
1112
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1113
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1114
0
    table->CmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)gdpa(dev, "vkCmdCudaLaunchKernelNV");
1115
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1116
1117
    // ---- VK_QCOM_tile_shading extension commands
1118
0
    table->CmdDispatchTileQCOM = (PFN_vkCmdDispatchTileQCOM)gdpa(dev, "vkCmdDispatchTileQCOM");
1119
0
    table->CmdBeginPerTileExecutionQCOM = (PFN_vkCmdBeginPerTileExecutionQCOM)gdpa(dev, "vkCmdBeginPerTileExecutionQCOM");
1120
0
    table->CmdEndPerTileExecutionQCOM = (PFN_vkCmdEndPerTileExecutionQCOM)gdpa(dev, "vkCmdEndPerTileExecutionQCOM");
1121
1122
    // ---- VK_EXT_metal_objects extension commands
1123
#if defined(VK_USE_PLATFORM_METAL_EXT)
1124
    table->ExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)gdpa(dev, "vkExportMetalObjectsEXT");
1125
#endif // VK_USE_PLATFORM_METAL_EXT
1126
1127
    // ---- VK_EXT_descriptor_buffer extension commands
1128
0
    table->GetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)gdpa(dev, "vkGetDescriptorSetLayoutSizeEXT");
1129
0
    table->GetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)gdpa(dev, "vkGetDescriptorSetLayoutBindingOffsetEXT");
1130
0
    table->GetDescriptorEXT = (PFN_vkGetDescriptorEXT)gdpa(dev, "vkGetDescriptorEXT");
1131
0
    table->CmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)gdpa(dev, "vkCmdBindDescriptorBuffersEXT");
1132
0
    table->CmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsetsEXT");
1133
0
    table->CmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT");
1134
0
    table->GetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetBufferOpaqueCaptureDescriptorDataEXT");
1135
0
    table->GetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageOpaqueCaptureDescriptorDataEXT");
1136
0
    table->GetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageViewOpaqueCaptureDescriptorDataEXT");
1137
0
    table->GetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetSamplerOpaqueCaptureDescriptorDataEXT");
1138
0
    table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT");
1139
1140
    // ---- VK_NV_fragment_shading_rate_enums extension commands
1141
0
    table->CmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)gdpa(dev, "vkCmdSetFragmentShadingRateEnumNV");
1142
1143
    // ---- VK_EXT_device_fault extension commands
1144
0
    table->GetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)gdpa(dev, "vkGetDeviceFaultInfoEXT");
1145
1146
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
1147
0
    table->CmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)gdpa(dev, "vkCmdSetVertexInputEXT");
1148
1149
    // ---- VK_FUCHSIA_external_memory extension commands
1150
#if defined(VK_USE_PLATFORM_FUCHSIA)
1151
    table->GetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandleFUCHSIA");
1152
#endif // VK_USE_PLATFORM_FUCHSIA
1153
#if defined(VK_USE_PLATFORM_FUCHSIA)
1154
    table->GetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
1155
#endif // VK_USE_PLATFORM_FUCHSIA
1156
1157
    // ---- VK_FUCHSIA_external_semaphore extension commands
1158
#if defined(VK_USE_PLATFORM_FUCHSIA)
1159
    table->ImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkImportSemaphoreZirconHandleFUCHSIA");
1160
#endif // VK_USE_PLATFORM_FUCHSIA
1161
#if defined(VK_USE_PLATFORM_FUCHSIA)
1162
    table->GetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkGetSemaphoreZirconHandleFUCHSIA");
1163
#endif // VK_USE_PLATFORM_FUCHSIA
1164
1165
    // ---- VK_FUCHSIA_buffer_collection extension commands
1166
#if defined(VK_USE_PLATFORM_FUCHSIA)
1167
    table->CreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)gdpa(dev, "vkCreateBufferCollectionFUCHSIA");
1168
#endif // VK_USE_PLATFORM_FUCHSIA
1169
#if defined(VK_USE_PLATFORM_FUCHSIA)
1170
    table->SetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionImageConstraintsFUCHSIA");
1171
#endif // VK_USE_PLATFORM_FUCHSIA
1172
#if defined(VK_USE_PLATFORM_FUCHSIA)
1173
    table->SetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
1174
#endif // VK_USE_PLATFORM_FUCHSIA
1175
#if defined(VK_USE_PLATFORM_FUCHSIA)
1176
    table->DestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)gdpa(dev, "vkDestroyBufferCollectionFUCHSIA");
1177
#endif // VK_USE_PLATFORM_FUCHSIA
1178
#if defined(VK_USE_PLATFORM_FUCHSIA)
1179
    table->GetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)gdpa(dev, "vkGetBufferCollectionPropertiesFUCHSIA");
1180
#endif // VK_USE_PLATFORM_FUCHSIA
1181
1182
    // ---- VK_HUAWEI_subpass_shading extension commands
1183
0
    table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)gdpa(dev, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
1184
0
    table->CmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)gdpa(dev, "vkCmdSubpassShadingHUAWEI");
1185
1186
    // ---- VK_HUAWEI_invocation_mask extension commands
1187
0
    table->CmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)gdpa(dev, "vkCmdBindInvocationMaskHUAWEI");
1188
1189
    // ---- VK_NV_external_memory_rdma extension commands
1190
0
    table->GetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)gdpa(dev, "vkGetMemoryRemoteAddressNV");
1191
1192
    // ---- VK_EXT_pipeline_properties extension commands
1193
0
    table->GetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)gdpa(dev, "vkGetPipelinePropertiesEXT");
1194
1195
    // ---- VK_EXT_extended_dynamic_state2 extension commands
1196
0
    table->CmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)gdpa(dev, "vkCmdSetPatchControlPointsEXT");
1197
0
    table->CmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)gdpa(dev, "vkCmdSetRasterizerDiscardEnableEXT");
1198
0
    table->CmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)gdpa(dev, "vkCmdSetDepthBiasEnableEXT");
1199
0
    table->CmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)gdpa(dev, "vkCmdSetLogicOpEXT");
1200
0
    table->CmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)gdpa(dev, "vkCmdSetPrimitiveRestartEnableEXT");
1201
1202
    // ---- VK_EXT_color_write_enable extension commands
1203
0
    table->CmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)gdpa(dev, "vkCmdSetColorWriteEnableEXT");
1204
1205
    // ---- VK_EXT_multi_draw extension commands
1206
0
    table->CmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)gdpa(dev, "vkCmdDrawMultiEXT");
1207
0
    table->CmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)gdpa(dev, "vkCmdDrawMultiIndexedEXT");
1208
1209
    // ---- VK_EXT_opacity_micromap extension commands
1210
0
    table->CreateMicromapEXT = (PFN_vkCreateMicromapEXT)gdpa(dev, "vkCreateMicromapEXT");
1211
0
    table->DestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)gdpa(dev, "vkDestroyMicromapEXT");
1212
0
    table->CmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)gdpa(dev, "vkCmdBuildMicromapsEXT");
1213
0
    table->BuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)gdpa(dev, "vkBuildMicromapsEXT");
1214
0
    table->CopyMicromapEXT = (PFN_vkCopyMicromapEXT)gdpa(dev, "vkCopyMicromapEXT");
1215
0
    table->CopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)gdpa(dev, "vkCopyMicromapToMemoryEXT");
1216
0
    table->CopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)gdpa(dev, "vkCopyMemoryToMicromapEXT");
1217
0
    table->WriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)gdpa(dev, "vkWriteMicromapsPropertiesEXT");
1218
0
    table->CmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)gdpa(dev, "vkCmdCopyMicromapEXT");
1219
0
    table->CmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)gdpa(dev, "vkCmdCopyMicromapToMemoryEXT");
1220
0
    table->CmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)gdpa(dev, "vkCmdCopyMemoryToMicromapEXT");
1221
0
    table->CmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)gdpa(dev, "vkCmdWriteMicromapsPropertiesEXT");
1222
0
    table->GetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)gdpa(dev, "vkGetDeviceMicromapCompatibilityEXT");
1223
0
    table->GetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)gdpa(dev, "vkGetMicromapBuildSizesEXT");
1224
1225
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
1226
0
    table->CmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)gdpa(dev, "vkCmdDrawClusterHUAWEI");
1227
0
    table->CmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)gdpa(dev, "vkCmdDrawClusterIndirectHUAWEI");
1228
1229
    // ---- VK_EXT_pageable_device_local_memory extension commands
1230
0
    table->SetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)gdpa(dev, "vkSetDeviceMemoryPriorityEXT");
1231
1232
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
1233
0
    table->GetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)gdpa(dev, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
1234
0
    table->GetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)gdpa(dev, "vkGetDescriptorSetHostMappingVALVE");
1235
1236
    // ---- VK_NV_copy_memory_indirect extension commands
1237
0
    table->CmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)gdpa(dev, "vkCmdCopyMemoryIndirectNV");
1238
0
    table->CmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)gdpa(dev, "vkCmdCopyMemoryToImageIndirectNV");
1239
1240
    // ---- VK_NV_memory_decompression extension commands
1241
0
    table->CmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)gdpa(dev, "vkCmdDecompressMemoryNV");
1242
0
    table->CmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)gdpa(dev, "vkCmdDecompressMemoryIndirectCountNV");
1243
1244
    // ---- VK_NV_device_generated_commands_compute extension commands
1245
0
    table->GetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)gdpa(dev, "vkGetPipelineIndirectMemoryRequirementsNV");
1246
0
    table->CmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)gdpa(dev, "vkCmdUpdatePipelineIndirectBufferNV");
1247
0
    table->GetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)gdpa(dev, "vkGetPipelineIndirectDeviceAddressNV");
1248
1249
    // ---- VK_OHOS_external_memory extension commands
1250
#if defined(VK_USE_PLATFORM_OHOS)
1251
    table->GetNativeBufferPropertiesOHOS = (PFN_vkGetNativeBufferPropertiesOHOS)gdpa(dev, "vkGetNativeBufferPropertiesOHOS");
1252
#endif // VK_USE_PLATFORM_OHOS
1253
#if defined(VK_USE_PLATFORM_OHOS)
1254
    table->GetMemoryNativeBufferOHOS = (PFN_vkGetMemoryNativeBufferOHOS)gdpa(dev, "vkGetMemoryNativeBufferOHOS");
1255
#endif // VK_USE_PLATFORM_OHOS
1256
1257
    // ---- VK_EXT_extended_dynamic_state3 extension commands
1258
0
    table->CmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)gdpa(dev, "vkCmdSetDepthClampEnableEXT");
1259
0
    table->CmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)gdpa(dev, "vkCmdSetPolygonModeEXT");
1260
0
    table->CmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)gdpa(dev, "vkCmdSetRasterizationSamplesEXT");
1261
0
    table->CmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)gdpa(dev, "vkCmdSetSampleMaskEXT");
1262
0
    table->CmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)gdpa(dev, "vkCmdSetAlphaToCoverageEnableEXT");
1263
0
    table->CmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)gdpa(dev, "vkCmdSetAlphaToOneEnableEXT");
1264
0
    table->CmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)gdpa(dev, "vkCmdSetLogicOpEnableEXT");
1265
0
    table->CmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)gdpa(dev, "vkCmdSetColorBlendEnableEXT");
1266
0
    table->CmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)gdpa(dev, "vkCmdSetColorBlendEquationEXT");
1267
0
    table->CmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)gdpa(dev, "vkCmdSetColorWriteMaskEXT");
1268
0
    table->CmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)gdpa(dev, "vkCmdSetTessellationDomainOriginEXT");
1269
0
    table->CmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)gdpa(dev, "vkCmdSetRasterizationStreamEXT");
1270
0
    table->CmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)gdpa(dev, "vkCmdSetConservativeRasterizationModeEXT");
1271
0
    table->CmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)gdpa(dev, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
1272
0
    table->CmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)gdpa(dev, "vkCmdSetDepthClipEnableEXT");
1273
0
    table->CmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)gdpa(dev, "vkCmdSetSampleLocationsEnableEXT");
1274
0
    table->CmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)gdpa(dev, "vkCmdSetColorBlendAdvancedEXT");
1275
0
    table->CmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)gdpa(dev, "vkCmdSetProvokingVertexModeEXT");
1276
0
    table->CmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)gdpa(dev, "vkCmdSetLineRasterizationModeEXT");
1277
0
    table->CmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)gdpa(dev, "vkCmdSetLineStippleEnableEXT");
1278
0
    table->CmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)gdpa(dev, "vkCmdSetDepthClipNegativeOneToOneEXT");
1279
0
    table->CmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)gdpa(dev, "vkCmdSetViewportWScalingEnableNV");
1280
0
    table->CmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)gdpa(dev, "vkCmdSetViewportSwizzleNV");
1281
0
    table->CmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)gdpa(dev, "vkCmdSetCoverageToColorEnableNV");
1282
0
    table->CmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)gdpa(dev, "vkCmdSetCoverageToColorLocationNV");
1283
0
    table->CmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)gdpa(dev, "vkCmdSetCoverageModulationModeNV");
1284
0
    table->CmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)gdpa(dev, "vkCmdSetCoverageModulationTableEnableNV");
1285
0
    table->CmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)gdpa(dev, "vkCmdSetCoverageModulationTableNV");
1286
0
    table->CmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)gdpa(dev, "vkCmdSetShadingRateImageEnableNV");
1287
0
    table->CmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)gdpa(dev, "vkCmdSetRepresentativeFragmentTestEnableNV");
1288
0
    table->CmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)gdpa(dev, "vkCmdSetCoverageReductionModeNV");
1289
1290
    // ---- VK_ARM_tensors extension commands
1291
0
    table->CreateTensorARM = (PFN_vkCreateTensorARM)gdpa(dev, "vkCreateTensorARM");
1292
0
    table->DestroyTensorARM = (PFN_vkDestroyTensorARM)gdpa(dev, "vkDestroyTensorARM");
1293
0
    table->CreateTensorViewARM = (PFN_vkCreateTensorViewARM)gdpa(dev, "vkCreateTensorViewARM");
1294
0
    table->DestroyTensorViewARM = (PFN_vkDestroyTensorViewARM)gdpa(dev, "vkDestroyTensorViewARM");
1295
0
    table->GetTensorMemoryRequirementsARM = (PFN_vkGetTensorMemoryRequirementsARM)gdpa(dev, "vkGetTensorMemoryRequirementsARM");
1296
0
    table->BindTensorMemoryARM = (PFN_vkBindTensorMemoryARM)gdpa(dev, "vkBindTensorMemoryARM");
1297
0
    table->GetDeviceTensorMemoryRequirementsARM = (PFN_vkGetDeviceTensorMemoryRequirementsARM)gdpa(dev, "vkGetDeviceTensorMemoryRequirementsARM");
1298
0
    table->CmdCopyTensorARM = (PFN_vkCmdCopyTensorARM)gdpa(dev, "vkCmdCopyTensorARM");
1299
0
    table->GetTensorOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)gdpa(dev, "vkGetTensorOpaqueCaptureDescriptorDataARM");
1300
0
    table->GetTensorViewOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)gdpa(dev, "vkGetTensorViewOpaqueCaptureDescriptorDataARM");
1301
1302
    // ---- VK_EXT_shader_module_identifier extension commands
1303
0
    table->GetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)gdpa(dev, "vkGetShaderModuleIdentifierEXT");
1304
0
    table->GetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)gdpa(dev, "vkGetShaderModuleCreateInfoIdentifierEXT");
1305
1306
    // ---- VK_NV_optical_flow extension commands
1307
0
    table->CreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)gdpa(dev, "vkCreateOpticalFlowSessionNV");
1308
0
    table->DestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)gdpa(dev, "vkDestroyOpticalFlowSessionNV");
1309
0
    table->BindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)gdpa(dev, "vkBindOpticalFlowSessionImageNV");
1310
0
    table->CmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)gdpa(dev, "vkCmdOpticalFlowExecuteNV");
1311
1312
    // ---- VK_AMD_anti_lag extension commands
1313
0
    table->AntiLagUpdateAMD = (PFN_vkAntiLagUpdateAMD)gdpa(dev, "vkAntiLagUpdateAMD");
1314
1315
    // ---- VK_EXT_shader_object extension commands
1316
0
    table->CreateShadersEXT = (PFN_vkCreateShadersEXT)gdpa(dev, "vkCreateShadersEXT");
1317
0
    table->DestroyShaderEXT = (PFN_vkDestroyShaderEXT)gdpa(dev, "vkDestroyShaderEXT");
1318
0
    table->GetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)gdpa(dev, "vkGetShaderBinaryDataEXT");
1319
0
    table->CmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)gdpa(dev, "vkCmdBindShadersEXT");
1320
0
    table->CmdSetDepthClampRangeEXT = (PFN_vkCmdSetDepthClampRangeEXT)gdpa(dev, "vkCmdSetDepthClampRangeEXT");
1321
1322
    // ---- VK_QCOM_tile_properties extension commands
1323
0
    table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)gdpa(dev, "vkGetFramebufferTilePropertiesQCOM");
1324
0
    table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)gdpa(dev, "vkGetDynamicRenderingTilePropertiesQCOM");
1325
1326
    // ---- VK_NV_cooperative_vector extension commands
1327
0
    table->ConvertCooperativeVectorMatrixNV = (PFN_vkConvertCooperativeVectorMatrixNV)gdpa(dev, "vkConvertCooperativeVectorMatrixNV");
1328
0
    table->CmdConvertCooperativeVectorMatrixNV = (PFN_vkCmdConvertCooperativeVectorMatrixNV)gdpa(dev, "vkCmdConvertCooperativeVectorMatrixNV");
1329
1330
    // ---- VK_NV_low_latency2 extension commands
1331
0
    table->SetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)gdpa(dev, "vkSetLatencySleepModeNV");
1332
0
    table->LatencySleepNV = (PFN_vkLatencySleepNV)gdpa(dev, "vkLatencySleepNV");
1333
0
    table->SetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)gdpa(dev, "vkSetLatencyMarkerNV");
1334
0
    table->GetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)gdpa(dev, "vkGetLatencyTimingsNV");
1335
0
    table->QueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)gdpa(dev, "vkQueueNotifyOutOfBandNV");
1336
1337
    // ---- VK_ARM_data_graph extension commands
1338
0
    table->CreateDataGraphPipelinesARM = (PFN_vkCreateDataGraphPipelinesARM)gdpa(dev, "vkCreateDataGraphPipelinesARM");
1339
0
    table->CreateDataGraphPipelineSessionARM = (PFN_vkCreateDataGraphPipelineSessionARM)gdpa(dev, "vkCreateDataGraphPipelineSessionARM");
1340
0
    table->GetDataGraphPipelineSessionBindPointRequirementsARM = (PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)gdpa(dev, "vkGetDataGraphPipelineSessionBindPointRequirementsARM");
1341
0
    table->GetDataGraphPipelineSessionMemoryRequirementsARM = (PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)gdpa(dev, "vkGetDataGraphPipelineSessionMemoryRequirementsARM");
1342
0
    table->BindDataGraphPipelineSessionMemoryARM = (PFN_vkBindDataGraphPipelineSessionMemoryARM)gdpa(dev, "vkBindDataGraphPipelineSessionMemoryARM");
1343
0
    table->DestroyDataGraphPipelineSessionARM = (PFN_vkDestroyDataGraphPipelineSessionARM)gdpa(dev, "vkDestroyDataGraphPipelineSessionARM");
1344
0
    table->CmdDispatchDataGraphARM = (PFN_vkCmdDispatchDataGraphARM)gdpa(dev, "vkCmdDispatchDataGraphARM");
1345
0
    table->GetDataGraphPipelineAvailablePropertiesARM = (PFN_vkGetDataGraphPipelineAvailablePropertiesARM)gdpa(dev, "vkGetDataGraphPipelineAvailablePropertiesARM");
1346
0
    table->GetDataGraphPipelinePropertiesARM = (PFN_vkGetDataGraphPipelinePropertiesARM)gdpa(dev, "vkGetDataGraphPipelinePropertiesARM");
1347
1348
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
1349
0
    table->CmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)gdpa(dev, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
1350
1351
    // ---- VK_QNX_external_memory_screen_buffer extension commands
1352
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1353
    table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gdpa(dev, "vkGetScreenBufferPropertiesQNX");
1354
#endif // VK_USE_PLATFORM_SCREEN_QNX
1355
1356
    // ---- VK_QCOM_tile_memory_heap extension commands
1357
0
    table->CmdBindTileMemoryQCOM = (PFN_vkCmdBindTileMemoryQCOM)gdpa(dev, "vkCmdBindTileMemoryQCOM");
1358
1359
    // ---- VK_EXT_memory_decompression extension commands
1360
0
    table->CmdDecompressMemoryEXT = (PFN_vkCmdDecompressMemoryEXT)gdpa(dev, "vkCmdDecompressMemoryEXT");
1361
0
    table->CmdDecompressMemoryIndirectCountEXT = (PFN_vkCmdDecompressMemoryIndirectCountEXT)gdpa(dev, "vkCmdDecompressMemoryIndirectCountEXT");
1362
1363
    // ---- VK_NV_external_compute_queue extension commands
1364
0
    table->CreateExternalComputeQueueNV = (PFN_vkCreateExternalComputeQueueNV)gdpa(dev, "vkCreateExternalComputeQueueNV");
1365
0
    table->DestroyExternalComputeQueueNV = (PFN_vkDestroyExternalComputeQueueNV)gdpa(dev, "vkDestroyExternalComputeQueueNV");
1366
0
    table->GetExternalComputeQueueDataNV = (PFN_vkGetExternalComputeQueueDataNV)gdpa(dev, "vkGetExternalComputeQueueDataNV");
1367
1368
    // ---- VK_NV_cluster_acceleration_structure extension commands
1369
0
    table->GetClusterAccelerationStructureBuildSizesNV = (PFN_vkGetClusterAccelerationStructureBuildSizesNV)gdpa(dev, "vkGetClusterAccelerationStructureBuildSizesNV");
1370
0
    table->CmdBuildClusterAccelerationStructureIndirectNV = (PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)gdpa(dev, "vkCmdBuildClusterAccelerationStructureIndirectNV");
1371
1372
    // ---- VK_NV_partitioned_acceleration_structure extension commands
1373
0
    table->GetPartitionedAccelerationStructuresBuildSizesNV = (PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)gdpa(dev, "vkGetPartitionedAccelerationStructuresBuildSizesNV");
1374
0
    table->CmdBuildPartitionedAccelerationStructuresNV = (PFN_vkCmdBuildPartitionedAccelerationStructuresNV)gdpa(dev, "vkCmdBuildPartitionedAccelerationStructuresNV");
1375
1376
    // ---- VK_EXT_device_generated_commands extension commands
1377
0
    table->GetGeneratedCommandsMemoryRequirementsEXT = (PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsEXT");
1378
0
    table->CmdPreprocessGeneratedCommandsEXT = (PFN_vkCmdPreprocessGeneratedCommandsEXT)gdpa(dev, "vkCmdPreprocessGeneratedCommandsEXT");
1379
0
    table->CmdExecuteGeneratedCommandsEXT = (PFN_vkCmdExecuteGeneratedCommandsEXT)gdpa(dev, "vkCmdExecuteGeneratedCommandsEXT");
1380
0
    table->CreateIndirectCommandsLayoutEXT = (PFN_vkCreateIndirectCommandsLayoutEXT)gdpa(dev, "vkCreateIndirectCommandsLayoutEXT");
1381
0
    table->DestroyIndirectCommandsLayoutEXT = (PFN_vkDestroyIndirectCommandsLayoutEXT)gdpa(dev, "vkDestroyIndirectCommandsLayoutEXT");
1382
0
    table->CreateIndirectExecutionSetEXT = (PFN_vkCreateIndirectExecutionSetEXT)gdpa(dev, "vkCreateIndirectExecutionSetEXT");
1383
0
    table->DestroyIndirectExecutionSetEXT = (PFN_vkDestroyIndirectExecutionSetEXT)gdpa(dev, "vkDestroyIndirectExecutionSetEXT");
1384
0
    table->UpdateIndirectExecutionSetPipelineEXT = (PFN_vkUpdateIndirectExecutionSetPipelineEXT)gdpa(dev, "vkUpdateIndirectExecutionSetPipelineEXT");
1385
0
    table->UpdateIndirectExecutionSetShaderEXT = (PFN_vkUpdateIndirectExecutionSetShaderEXT)gdpa(dev, "vkUpdateIndirectExecutionSetShaderEXT");
1386
1387
    // ---- VK_EXT_external_memory_metal extension commands
1388
#if defined(VK_USE_PLATFORM_METAL_EXT)
1389
    table->GetMemoryMetalHandleEXT = (PFN_vkGetMemoryMetalHandleEXT)gdpa(dev, "vkGetMemoryMetalHandleEXT");
1390
#endif // VK_USE_PLATFORM_METAL_EXT
1391
#if defined(VK_USE_PLATFORM_METAL_EXT)
1392
    table->GetMemoryMetalHandlePropertiesEXT = (PFN_vkGetMemoryMetalHandlePropertiesEXT)gdpa(dev, "vkGetMemoryMetalHandlePropertiesEXT");
1393
#endif // VK_USE_PLATFORM_METAL_EXT
1394
1395
    // ---- VK_ARM_shader_instrumentation extension commands
1396
0
    table->CreateShaderInstrumentationARM = (PFN_vkCreateShaderInstrumentationARM)gdpa(dev, "vkCreateShaderInstrumentationARM");
1397
0
    table->DestroyShaderInstrumentationARM = (PFN_vkDestroyShaderInstrumentationARM)gdpa(dev, "vkDestroyShaderInstrumentationARM");
1398
0
    table->CmdBeginShaderInstrumentationARM = (PFN_vkCmdBeginShaderInstrumentationARM)gdpa(dev, "vkCmdBeginShaderInstrumentationARM");
1399
0
    table->CmdEndShaderInstrumentationARM = (PFN_vkCmdEndShaderInstrumentationARM)gdpa(dev, "vkCmdEndShaderInstrumentationARM");
1400
0
    table->GetShaderInstrumentationValuesARM = (PFN_vkGetShaderInstrumentationValuesARM)gdpa(dev, "vkGetShaderInstrumentationValuesARM");
1401
0
    table->ClearShaderInstrumentationMetricsARM = (PFN_vkClearShaderInstrumentationMetricsARM)gdpa(dev, "vkClearShaderInstrumentationMetricsARM");
1402
1403
    // ---- VK_EXT_fragment_density_map_offset extension commands
1404
0
    table->CmdEndRendering2EXT = (PFN_vkCmdEndRendering2EXT)gdpa(dev, "vkCmdEndRendering2EXT");
1405
1406
    // ---- VK_EXT_custom_resolve extension commands
1407
0
    table->CmdBeginCustomResolveEXT = (PFN_vkCmdBeginCustomResolveEXT)gdpa(dev, "vkCmdBeginCustomResolveEXT");
1408
1409
    // ---- VK_NV_compute_occupancy_priority extension commands
1410
0
    table->CmdSetComputeOccupancyPriorityNV = (PFN_vkCmdSetComputeOccupancyPriorityNV)gdpa(dev, "vkCmdSetComputeOccupancyPriorityNV");
1411
1412
    // ---- VK_KHR_acceleration_structure extension commands
1413
0
    table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)gdpa(dev, "vkCreateAccelerationStructureKHR");
1414
0
    table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)gdpa(dev, "vkDestroyAccelerationStructureKHR");
1415
0
    table->CmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresKHR");
1416
0
    table->CmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresIndirectKHR");
1417
0
    table->BuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)gdpa(dev, "vkBuildAccelerationStructuresKHR");
1418
0
    table->CopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)gdpa(dev, "vkCopyAccelerationStructureKHR");
1419
0
    table->CopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCopyAccelerationStructureToMemoryKHR");
1420
0
    table->CopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCopyMemoryToAccelerationStructureKHR");
1421
0
    table->WriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkWriteAccelerationStructuresPropertiesKHR");
1422
0
    table->CmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)gdpa(dev, "vkCmdCopyAccelerationStructureKHR");
1423
0
    table->CmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCmdCopyAccelerationStructureToMemoryKHR");
1424
0
    table->CmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCmdCopyMemoryToAccelerationStructureKHR");
1425
0
    table->GetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)gdpa(dev, "vkGetAccelerationStructureDeviceAddressKHR");
1426
0
    table->CmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesKHR");
1427
0
    table->GetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)gdpa(dev, "vkGetDeviceAccelerationStructureCompatibilityKHR");
1428
0
    table->GetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)gdpa(dev, "vkGetAccelerationStructureBuildSizesKHR");
1429
1430
    // ---- VK_KHR_ray_tracing_pipeline extension commands
1431
0
    table->CmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)gdpa(dev, "vkCmdTraceRaysKHR");
1432
0
    table->CreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)gdpa(dev, "vkCreateRayTracingPipelinesKHR");
1433
0
    table->GetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
1434
0
    table->CmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)gdpa(dev, "vkCmdTraceRaysIndirectKHR");
1435
0
    table->GetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)gdpa(dev, "vkGetRayTracingShaderGroupStackSizeKHR");
1436
0
    table->CmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)gdpa(dev, "vkCmdSetRayTracingPipelineStackSizeKHR");
1437
1438
    // ---- VK_EXT_mesh_shader extension commands
1439
0
    table->CmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)gdpa(dev, "vkCmdDrawMeshTasksEXT");
1440
0
    table->CmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectEXT");
1441
0
    table->CmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountEXT");
1442
0
}
1443
1444
// Init Instance function pointer dispatch table with core commands
1445
VKAPI_ATTR void VKAPI_CALL loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1446
0
                                                                    VkInstance inst) {
1447
1448
    // ---- Core Vulkan 1.0 commands
1449
0
    table->DestroyInstance = (PFN_vkDestroyInstance)gpa(inst, "vkDestroyInstance");
1450
0
    table->EnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)gpa(inst, "vkEnumeratePhysicalDevices");
1451
0
    table->GetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)gpa(inst, "vkGetPhysicalDeviceFeatures");
1452
0
    table->GetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)gpa(inst, "vkGetPhysicalDeviceFormatProperties");
1453
0
    table->GetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties");
1454
0
    table->GetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)gpa(inst, "vkGetPhysicalDeviceProperties");
1455
0
    table->GetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties");
1456
0
    table->GetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)gpa(inst, "vkGetPhysicalDeviceMemoryProperties");
1457
0
    table->GetInstanceProcAddr = gpa;
1458
0
    table->EnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)gpa(inst, "vkEnumerateDeviceExtensionProperties");
1459
0
    table->EnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)gpa(inst, "vkEnumerateDeviceLayerProperties");
1460
0
    table->GetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties");
1461
1462
    // ---- Core Vulkan 1.1 commands
1463
0
    table->EnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)gpa(inst, "vkEnumeratePhysicalDeviceGroups");
1464
0
    table->GetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)gpa(inst, "vkGetPhysicalDeviceFeatures2");
1465
0
    table->GetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)gpa(inst, "vkGetPhysicalDeviceProperties2");
1466
0
    table->GetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)gpa(inst, "vkGetPhysicalDeviceFormatProperties2");
1467
0
    table->GetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2");
1468
0
    table->GetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2");
1469
0
    table->GetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2");
1470
0
    table->GetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2");
1471
0
    table->GetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)gpa(inst, "vkGetPhysicalDeviceExternalBufferProperties");
1472
0
    table->GetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)gpa(inst, "vkGetPhysicalDeviceExternalFenceProperties");
1473
0
    table->GetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)gpa(inst, "vkGetPhysicalDeviceExternalSemaphoreProperties");
1474
1475
    // ---- Core Vulkan 1.3 commands
1476
0
    table->GetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)gpa(inst, "vkGetPhysicalDeviceToolProperties");
1477
0
}
1478
1479
// Init Instance function pointer dispatch table with core commands
1480
VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1481
0
                                                                        VkInstance inst) {
1482
1483
    // ---- VK_KHR_surface extension commands
1484
0
    table->DestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)gpa(inst, "vkDestroySurfaceKHR");
1485
0
    table->GetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceSupportKHR");
1486
0
    table->GetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
1487
0
    table->GetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormatsKHR");
1488
0
    table->GetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModesKHR");
1489
1490
    // ---- VK_KHR_swapchain extension commands
1491
0
    table->GetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)gpa(inst, "vkGetPhysicalDevicePresentRectanglesKHR");
1492
1493
    // ---- VK_KHR_display extension commands
1494
0
    table->GetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPropertiesKHR");
1495
0
    table->GetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
1496
0
    table->GetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)gpa(inst, "vkGetDisplayPlaneSupportedDisplaysKHR");
1497
0
    table->GetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)gpa(inst, "vkGetDisplayModePropertiesKHR");
1498
0
    table->CreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)gpa(inst, "vkCreateDisplayModeKHR");
1499
0
    table->GetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)gpa(inst, "vkGetDisplayPlaneCapabilitiesKHR");
1500
0
    table->CreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)gpa(inst, "vkCreateDisplayPlaneSurfaceKHR");
1501
1502
    // ---- VK_KHR_xlib_surface extension commands
1503
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
1504
0
    table->CreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)gpa(inst, "vkCreateXlibSurfaceKHR");
1505
0
#endif // VK_USE_PLATFORM_XLIB_KHR
1506
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
1507
0
    table->GetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
1508
0
#endif // VK_USE_PLATFORM_XLIB_KHR
1509
1510
    // ---- VK_KHR_xcb_surface extension commands
1511
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
1512
0
    table->CreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)gpa(inst, "vkCreateXcbSurfaceKHR");
1513
0
#endif // VK_USE_PLATFORM_XCB_KHR
1514
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
1515
0
    table->GetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
1516
0
#endif // VK_USE_PLATFORM_XCB_KHR
1517
1518
    // ---- VK_KHR_wayland_surface extension commands
1519
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1520
0
    table->CreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)gpa(inst, "vkCreateWaylandSurfaceKHR");
1521
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
1522
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1523
0
    table->GetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
1524
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
1525
1526
    // ---- VK_KHR_android_surface extension commands
1527
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
1528
    table->CreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)gpa(inst, "vkCreateAndroidSurfaceKHR");
1529
#endif // VK_USE_PLATFORM_ANDROID_KHR
1530
1531
    // ---- VK_KHR_win32_surface extension commands
1532
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1533
    table->CreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)gpa(inst, "vkCreateWin32SurfaceKHR");
1534
#endif // VK_USE_PLATFORM_WIN32_KHR
1535
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1536
    table->GetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
1537
#endif // VK_USE_PLATFORM_WIN32_KHR
1538
1539
    // ---- VK_KHR_video_queue extension commands
1540
0
    table->GetPhysicalDeviceVideoCapabilitiesKHR = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
1541
0
    table->GetPhysicalDeviceVideoFormatPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
1542
1543
    // ---- VK_KHR_get_physical_device_properties2 extension commands
1544
0
    table->GetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)gpa(inst, "vkGetPhysicalDeviceFeatures2KHR");
1545
0
    table->GetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)gpa(inst, "vkGetPhysicalDeviceProperties2KHR");
1546
0
    table->GetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceFormatProperties2KHR");
1547
0
    table->GetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2KHR");
1548
0
    table->GetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
1549
0
    table->GetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2KHR");
1550
0
    table->GetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
1551
1552
    // ---- VK_KHR_device_group_creation extension commands
1553
0
    table->EnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)gpa(inst, "vkEnumeratePhysicalDeviceGroupsKHR");
1554
1555
    // ---- VK_KHR_external_memory_capabilities extension commands
1556
0
    table->GetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
1557
1558
    // ---- VK_KHR_external_semaphore_capabilities extension commands
1559
0
    table->GetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
1560
1561
    // ---- VK_KHR_external_fence_capabilities extension commands
1562
0
    table->GetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
1563
1564
    // ---- VK_KHR_performance_query extension commands
1565
0
    table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
1566
0
    table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
1567
1568
    // ---- VK_KHR_get_surface_capabilities2 extension commands
1569
0
    table->GetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
1570
0
    table->GetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormats2KHR");
1571
1572
    // ---- VK_KHR_get_display_properties2 extension commands
1573
0
    table->GetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayProperties2KHR");
1574
0
    table->GetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
1575
0
    table->GetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)gpa(inst, "vkGetDisplayModeProperties2KHR");
1576
0
    table->GetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)gpa(inst, "vkGetDisplayPlaneCapabilities2KHR");
1577
1578
    // ---- VK_KHR_fragment_shading_rate extension commands
1579
0
    table->GetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)gpa(inst, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
1580
1581
    // ---- VK_KHR_video_encode_queue extension commands
1582
0
    table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
1583
1584
    // ---- VK_KHR_cooperative_matrix extension commands
1585
0
    table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR");
1586
1587
    // ---- VK_KHR_calibrated_timestamps extension commands
1588
0
    table->GetPhysicalDeviceCalibrateableTimeDomainsKHR = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR");
1589
1590
    // ---- VK_EXT_debug_report extension commands
1591
0
    table->CreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)gpa(inst, "vkCreateDebugReportCallbackEXT");
1592
0
    table->DestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)gpa(inst, "vkDestroyDebugReportCallbackEXT");
1593
0
    table->DebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)gpa(inst, "vkDebugReportMessageEXT");
1594
1595
    // ---- VK_GGP_stream_descriptor_surface extension commands
1596
#if defined(VK_USE_PLATFORM_GGP)
1597
    table->CreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)gpa(inst, "vkCreateStreamDescriptorSurfaceGGP");
1598
#endif // VK_USE_PLATFORM_GGP
1599
1600
    // ---- VK_NV_external_memory_capabilities extension commands
1601
0
    table->GetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)gpa(inst, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
1602
1603
    // ---- VK_NN_vi_surface extension commands
1604
#if defined(VK_USE_PLATFORM_VI_NN)
1605
    table->CreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)gpa(inst, "vkCreateViSurfaceNN");
1606
#endif // VK_USE_PLATFORM_VI_NN
1607
1608
    // ---- VK_EXT_direct_mode_display extension commands
1609
0
    table->ReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)gpa(inst, "vkReleaseDisplayEXT");
1610
1611
    // ---- VK_EXT_acquire_xlib_display extension commands
1612
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1613
0
    table->AcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)gpa(inst, "vkAcquireXlibDisplayEXT");
1614
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1615
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1616
0
    table->GetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)gpa(inst, "vkGetRandROutputDisplayEXT");
1617
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1618
1619
    // ---- VK_EXT_display_surface_counter extension commands
1620
0
    table->GetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
1621
1622
    // ---- VK_MVK_ios_surface extension commands
1623
#if defined(VK_USE_PLATFORM_IOS_MVK)
1624
    table->CreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)gpa(inst, "vkCreateIOSSurfaceMVK");
1625
#endif // VK_USE_PLATFORM_IOS_MVK
1626
1627
    // ---- VK_MVK_macos_surface extension commands
1628
#if defined(VK_USE_PLATFORM_MACOS_MVK)
1629
    table->CreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)gpa(inst, "vkCreateMacOSSurfaceMVK");
1630
#endif // VK_USE_PLATFORM_MACOS_MVK
1631
1632
    // ---- VK_EXT_debug_utils extension commands
1633
0
    table->CreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)gpa(inst, "vkCreateDebugUtilsMessengerEXT");
1634
0
    table->DestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)gpa(inst, "vkDestroyDebugUtilsMessengerEXT");
1635
0
    table->SubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)gpa(inst, "vkSubmitDebugUtilsMessageEXT");
1636
1637
    // ---- VK_EXT_descriptor_heap extension commands
1638
0
    table->GetPhysicalDeviceDescriptorSizeEXT = (PFN_vkGetPhysicalDeviceDescriptorSizeEXT)gpa(inst, "vkGetPhysicalDeviceDescriptorSizeEXT");
1639
1640
    // ---- VK_EXT_sample_locations extension commands
1641
0
    table->GetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)gpa(inst, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1642
1643
    // ---- VK_EXT_calibrated_timestamps extension commands
1644
0
    table->GetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1645
1646
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
1647
#if defined(VK_USE_PLATFORM_FUCHSIA)
1648
    table->CreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)gpa(inst, "vkCreateImagePipeSurfaceFUCHSIA");
1649
#endif // VK_USE_PLATFORM_FUCHSIA
1650
1651
    // ---- VK_EXT_metal_surface extension commands
1652
#if defined(VK_USE_PLATFORM_METAL_EXT)
1653
    table->CreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)gpa(inst, "vkCreateMetalSurfaceEXT");
1654
#endif // VK_USE_PLATFORM_METAL_EXT
1655
1656
    // ---- VK_EXT_tooling_info extension commands
1657
0
    table->GetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)gpa(inst, "vkGetPhysicalDeviceToolPropertiesEXT");
1658
1659
    // ---- VK_NV_cooperative_matrix extension commands
1660
0
    table->GetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1661
1662
    // ---- VK_NV_coverage_reduction_mode extension commands
1663
0
    table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)gpa(inst, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1664
1665
    // ---- VK_EXT_full_screen_exclusive extension commands
1666
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1667
    table->GetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1668
#endif // VK_USE_PLATFORM_WIN32_KHR
1669
1670
    // ---- VK_EXT_headless_surface extension commands
1671
0
    table->CreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)gpa(inst, "vkCreateHeadlessSurfaceEXT");
1672
1673
    // ---- VK_EXT_acquire_drm_display extension commands
1674
0
    table->AcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)gpa(inst, "vkAcquireDrmDisplayEXT");
1675
0
    table->GetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)gpa(inst, "vkGetDrmDisplayEXT");
1676
1677
    // ---- VK_NV_acquire_winrt_display extension commands
1678
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1679
    table->AcquireWinrtDisplayNV = (PFN_vkAcquireWinrtDisplayNV)gpa(inst, "vkAcquireWinrtDisplayNV");
1680
#endif // VK_USE_PLATFORM_WIN32_KHR
1681
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1682
    table->GetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)gpa(inst, "vkGetWinrtDisplayNV");
1683
#endif // VK_USE_PLATFORM_WIN32_KHR
1684
1685
    // ---- VK_EXT_directfb_surface extension commands
1686
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1687
    table->CreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)gpa(inst, "vkCreateDirectFBSurfaceEXT");
1688
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
1689
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1690
    table->GetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)gpa(inst, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1691
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
1692
1693
    // ---- VK_QNX_screen_surface extension commands
1694
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1695
    table->CreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)gpa(inst, "vkCreateScreenSurfaceQNX");
1696
#endif // VK_USE_PLATFORM_SCREEN_QNX
1697
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1698
    table->GetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)gpa(inst, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
1699
#endif // VK_USE_PLATFORM_SCREEN_QNX
1700
1701
    // ---- VK_ARM_tensors extension commands
1702
0
    table->GetPhysicalDeviceExternalTensorPropertiesARM = (PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)gpa(inst, "vkGetPhysicalDeviceExternalTensorPropertiesARM");
1703
1704
    // ---- VK_NV_optical_flow extension commands
1705
0
    table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
1706
1707
    // ---- VK_NV_cooperative_vector extension commands
1708
0
    table->GetPhysicalDeviceCooperativeVectorPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV");
1709
1710
    // ---- VK_ARM_data_graph extension commands
1711
0
    table->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = (PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)gpa(inst, "vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM");
1712
0
    table->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = (PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)gpa(inst, "vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM");
1713
1714
    // ---- VK_OHOS_surface extension commands
1715
#if defined(VK_USE_PLATFORM_OHOS)
1716
    table->CreateSurfaceOHOS = (PFN_vkCreateSurfaceOHOS)gpa(inst, "vkCreateSurfaceOHOS");
1717
#endif // VK_USE_PLATFORM_OHOS
1718
1719
    // ---- VK_NV_cooperative_matrix2 extension commands
1720
0
    table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
1721
1722
    // ---- VK_ARM_performance_counters_by_region extension commands
1723
0
    table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM");
1724
1725
    // ---- VK_ARM_shader_instrumentation extension commands
1726
0
    table->EnumeratePhysicalDeviceShaderInstrumentationMetricsARM = (PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM)gpa(inst, "vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM");
1727
1728
    // ---- VK_SEC_ubm_surface extension commands
1729
#if defined(VK_USE_PLATFORM_UBM_SEC)
1730
    table->CreateUbmSurfaceSEC = (PFN_vkCreateUbmSurfaceSEC)gpa(inst, "vkCreateUbmSurfaceSEC");
1731
#endif // VK_USE_PLATFORM_UBM_SEC
1732
#if defined(VK_USE_PLATFORM_UBM_SEC)
1733
    table->GetPhysicalDeviceUbmPresentationSupportSEC = (PFN_vkGetPhysicalDeviceUbmPresentationSupportSEC)gpa(inst, "vkGetPhysicalDeviceUbmPresentationSupportSEC");
1734
#endif // VK_USE_PLATFORM_UBM_SEC
1735
0
}
1736
1737
// Functions that required a terminator need to have a separate dispatch table which contains their corresponding
1738
// device function. This is used in the terminators themselves.
1739
0
void init_extension_device_proc_terminator_dispatch(struct loader_device *dev) {
1740
0
    struct loader_device_terminator_dispatch* dispatch = &dev->loader_dispatch.extension_terminator_dispatch;
1741
0
    PFN_vkGetDeviceProcAddr gpda = (PFN_vkGetDeviceProcAddr)dev->phys_dev_term->this_icd_term->dispatch.GetDeviceProcAddr;
1742
1743
    // ---- VK_KHR_swapchain extension commands
1744
0
    if (dev->driver_extensions.khr_swapchain_enabled)
1745
0
       dispatch->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gpda(dev->icd_device, "vkCreateSwapchainKHR");
1746
0
    if (dev->driver_extensions.khr_swapchain_enabled || dev->driver_extensions.khr_device_group_enabled)
1747
0
       dispatch->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModesKHR");
1748
1749
    // ---- VK_KHR_display_swapchain extension commands
1750
0
    if (dev->driver_extensions.khr_display_swapchain_enabled)
1751
0
       dispatch->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gpda(dev->icd_device, "vkCreateSharedSwapchainsKHR");
1752
1753
    // ---- VK_EXT_debug_marker extension commands
1754
0
    if (dev->driver_extensions.ext_debug_marker_enabled)
1755
0
       dispatch->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectTagEXT");
1756
0
    if (dev->driver_extensions.ext_debug_marker_enabled)
1757
0
       dispatch->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectNameEXT");
1758
1759
    // ---- VK_EXT_debug_utils extension commands
1760
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1761
0
       dispatch->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectNameEXT");
1762
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1763
0
       dispatch->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectTagEXT");
1764
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1765
0
       dispatch->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueBeginDebugUtilsLabelEXT");
1766
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1767
0
       dispatch->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueEndDebugUtilsLabelEXT");
1768
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1769
0
       dispatch->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueInsertDebugUtilsLabelEXT");
1770
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1771
0
       dispatch->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdBeginDebugUtilsLabelEXT");
1772
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1773
0
       dispatch->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdEndDebugUtilsLabelEXT");
1774
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1775
0
       dispatch->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdInsertDebugUtilsLabelEXT");
1776
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1777
1778
    // ---- VK_EXT_full_screen_exclusive extension commands
1779
    if (dev->driver_extensions.ext_full_screen_exclusive_enabled)
1780
       dispatch->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModes2EXT");
1781
#endif // VK_USE_PLATFORM_WIN32_KHR
1782
0
}
1783
1784
// These are prototypes for functions that need their trampoline called in all circumstances.
1785
// They are used in loader_lookup_device_dispatch_table but are defined afterwards.
1786
1787
    // ---- VK_EXT_debug_marker extension commands
1788
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
1789
    VkDevice                                    device,
1790
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
1791
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
1792
    VkDevice                                    device,
1793
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
1794
1795
    // ---- VK_EXT_debug_utils extension commands
1796
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
1797
    VkDevice                                    device,
1798
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
1799
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
1800
    VkDevice                                    device,
1801
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
1802
1803
// Device command lookup function
1804
0
VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDispatchTable *table, const char *name, bool* found_name) {
1805
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
1806
0
        *found_name = false;
1807
0
        return NULL;
1808
0
    }
1809
1810
0
    name += 2;
1811
0
    *found_name = true;
1812
0
    struct loader_device* dev = (struct loader_device *)table;
1813
0
    const struct loader_instance* inst = dev->phys_dev_term->this_icd_term->this_instance;
1814
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);
1815
1816
1817
    // ---- Core Vulkan 1.0 commands
1818
0
    if (!strcmp(name, "GetDeviceProcAddr")) {
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->GetDeviceProcAddr;
1821
0
    }
1822
0
    if (!strcmp(name, "DestroyDevice")) {
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->DestroyDevice;
1825
0
    }
1826
0
    if (!strcmp(name, "GetDeviceQueue")) {
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->GetDeviceQueue;
1829
0
    }
1830
0
    if (!strcmp(name, "QueueSubmit")) {
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->QueueSubmit;
1833
0
    }
1834
0
    if (!strcmp(name, "QueueWaitIdle")) {
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->QueueWaitIdle;
1837
0
    }
1838
0
    if (!strcmp(name, "DeviceWaitIdle")) {
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->DeviceWaitIdle;
1841
0
    }
1842
0
    if (!strcmp(name, "AllocateMemory")) {
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->AllocateMemory;
1845
0
    }
1846
0
    if (!strcmp(name, "FreeMemory")) {
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->FreeMemory;
1849
0
    }
1850
0
    if (!strcmp(name, "MapMemory")) {
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->MapMemory;
1853
0
    }
1854
0
    if (!strcmp(name, "UnmapMemory")) {
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->UnmapMemory;
1857
0
    }
1858
0
    if (!strcmp(name, "FlushMappedMemoryRanges")) {
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->FlushMappedMemoryRanges;
1861
0
    }
1862
0
    if (!strcmp(name, "InvalidateMappedMemoryRanges")) {
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->InvalidateMappedMemoryRanges;
1865
0
    }
1866
0
    if (!strcmp(name, "GetDeviceMemoryCommitment")) {
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->GetDeviceMemoryCommitment;
1869
0
    }
1870
0
    if (!strcmp(name, "BindBufferMemory")) {
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->BindBufferMemory;
1873
0
    }
1874
0
    if (!strcmp(name, "BindImageMemory")) {
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->BindImageMemory;
1877
0
    }
1878
0
    if (!strcmp(name, "GetBufferMemoryRequirements")) {
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->GetBufferMemoryRequirements;
1881
0
    }
1882
0
    if (!strcmp(name, "GetImageMemoryRequirements")) {
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->GetImageMemoryRequirements;
1885
0
    }
1886
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements")) {
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->GetImageSparseMemoryRequirements;
1889
0
    }
1890
0
    if (!strcmp(name, "QueueBindSparse")) {
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->QueueBindSparse;
1893
0
    }
1894
0
    if (!strcmp(name, "CreateFence")) {
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->CreateFence;
1897
0
    }
1898
0
    if (!strcmp(name, "DestroyFence")) {
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->DestroyFence;
1901
0
    }
1902
0
    if (!strcmp(name, "ResetFences")) {
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->ResetFences;
1905
0
    }
1906
0
    if (!strcmp(name, "GetFenceStatus")) {
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->GetFenceStatus;
1909
0
    }
1910
0
    if (!strcmp(name, "WaitForFences")) {
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->WaitForFences;
1913
0
    }
1914
0
    if (!strcmp(name, "CreateSemaphore")) {
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->CreateSemaphore;
1917
0
    }
1918
0
    if (!strcmp(name, "DestroySemaphore")) {
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->DestroySemaphore;
1921
0
    }
1922
0
    if (!strcmp(name, "CreateQueryPool")) {
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->CreateQueryPool;
1925
0
    }
1926
0
    if (!strcmp(name, "DestroyQueryPool")) {
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->DestroyQueryPool;
1929
0
    }
1930
0
    if (!strcmp(name, "GetQueryPoolResults")) {
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->GetQueryPoolResults;
1933
0
    }
1934
0
    if (!strcmp(name, "CreateBuffer")) {
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->CreateBuffer;
1937
0
    }
1938
0
    if (!strcmp(name, "DestroyBuffer")) {
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->DestroyBuffer;
1941
0
    }
1942
0
    if (!strcmp(name, "CreateImage")) {
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->CreateImage;
1945
0
    }
1946
0
    if (!strcmp(name, "DestroyImage")) {
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->DestroyImage;
1949
0
    }
1950
0
    if (!strcmp(name, "GetImageSubresourceLayout")) {
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->GetImageSubresourceLayout;
1953
0
    }
1954
0
    if (!strcmp(name, "CreateImageView")) {
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->CreateImageView;
1957
0
    }
1958
0
    if (!strcmp(name, "DestroyImageView")) {
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->DestroyImageView;
1961
0
    }
1962
0
    if (!strcmp(name, "CreateCommandPool")) {
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->CreateCommandPool;
1965
0
    }
1966
0
    if (!strcmp(name, "DestroyCommandPool")) {
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->DestroyCommandPool;
1969
0
    }
1970
0
    if (!strcmp(name, "ResetCommandPool")) {
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->ResetCommandPool;
1973
0
    }
1974
0
    if (!strcmp(name, "AllocateCommandBuffers")) {
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->AllocateCommandBuffers;
1977
0
    }
1978
0
    if (!strcmp(name, "FreeCommandBuffers")) {
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->FreeCommandBuffers;
1981
0
    }
1982
0
    if (!strcmp(name, "BeginCommandBuffer")) {
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->BeginCommandBuffer;
1985
0
    }
1986
0
    if (!strcmp(name, "EndCommandBuffer")) {
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->EndCommandBuffer;
1989
0
    }
1990
0
    if (!strcmp(name, "ResetCommandBuffer")) {
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->ResetCommandBuffer;
1993
0
    }
1994
0
    if (!strcmp(name, "CmdCopyBuffer")) {
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->CmdCopyBuffer;
1997
0
    }
1998
0
    if (!strcmp(name, "CmdCopyImage")) {
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->CmdCopyImage;
2001
0
    }
2002
0
    if (!strcmp(name, "CmdCopyBufferToImage")) {
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->CmdCopyBufferToImage;
2005
0
    }
2006
0
    if (!strcmp(name, "CmdCopyImageToBuffer")) {
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->CmdCopyImageToBuffer;
2009
0
    }
2010
0
    if (!strcmp(name, "CmdUpdateBuffer")) {
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->CmdUpdateBuffer;
2013
0
    }
2014
0
    if (!strcmp(name, "CmdFillBuffer")) {
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->CmdFillBuffer;
2017
0
    }
2018
0
    if (!strcmp(name, "CmdPipelineBarrier")) {
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->CmdPipelineBarrier;
2021
0
    }
2022
0
    if (!strcmp(name, "CmdBeginQuery")) {
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->CmdBeginQuery;
2025
0
    }
2026
0
    if (!strcmp(name, "CmdEndQuery")) {
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->CmdEndQuery;
2029
0
    }
2030
0
    if (!strcmp(name, "CmdResetQueryPool")) {
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->CmdResetQueryPool;
2033
0
    }
2034
0
    if (!strcmp(name, "CmdWriteTimestamp")) {
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->CmdWriteTimestamp;
2037
0
    }
2038
0
    if (!strcmp(name, "CmdCopyQueryPoolResults")) {
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->CmdCopyQueryPoolResults;
2041
0
    }
2042
0
    if (!strcmp(name, "CmdExecuteCommands")) {
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->CmdExecuteCommands;
2045
0
    }
2046
0
    if (!strcmp(name, "CreateEvent")) {
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->CreateEvent;
2049
0
    }
2050
0
    if (!strcmp(name, "DestroyEvent")) {
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->DestroyEvent;
2053
0
    }
2054
0
    if (!strcmp(name, "GetEventStatus")) {
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->GetEventStatus;
2057
0
    }
2058
0
    if (!strcmp(name, "SetEvent")) {
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->SetEvent;
2061
0
    }
2062
0
    if (!strcmp(name, "ResetEvent")) {
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->ResetEvent;
2065
0
    }
2066
0
    if (!strcmp(name, "CreateBufferView")) {
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->CreateBufferView;
2069
0
    }
2070
0
    if (!strcmp(name, "DestroyBufferView")) {
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->DestroyBufferView;
2073
0
    }
2074
0
    if (!strcmp(name, "CreateShaderModule")) {
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->CreateShaderModule;
2077
0
    }
2078
0
    if (!strcmp(name, "DestroyShaderModule")) {
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->DestroyShaderModule;
2081
0
    }
2082
0
    if (!strcmp(name, "CreatePipelineCache")) {
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->CreatePipelineCache;
2085
0
    }
2086
0
    if (!strcmp(name, "DestroyPipelineCache")) {
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->DestroyPipelineCache;
2089
0
    }
2090
0
    if (!strcmp(name, "GetPipelineCacheData")) {
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->GetPipelineCacheData;
2093
0
    }
2094
0
    if (!strcmp(name, "MergePipelineCaches")) {
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->MergePipelineCaches;
2097
0
    }
2098
0
    if (!strcmp(name, "CreateComputePipelines")) {
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->CreateComputePipelines;
2101
0
    }
2102
0
    if (!strcmp(name, "DestroyPipeline")) {
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->DestroyPipeline;
2105
0
    }
2106
0
    if (!strcmp(name, "CreatePipelineLayout")) {
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->CreatePipelineLayout;
2109
0
    }
2110
0
    if (!strcmp(name, "DestroyPipelineLayout")) {
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->DestroyPipelineLayout;
2113
0
    }
2114
0
    if (!strcmp(name, "CreateSampler")) {
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->CreateSampler;
2117
0
    }
2118
0
    if (!strcmp(name, "DestroySampler")) {
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->DestroySampler;
2121
0
    }
2122
0
    if (!strcmp(name, "CreateDescriptorSetLayout")) {
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->CreateDescriptorSetLayout;
2125
0
    }
2126
0
    if (!strcmp(name, "DestroyDescriptorSetLayout")) {
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->DestroyDescriptorSetLayout;
2129
0
    }
2130
0
    if (!strcmp(name, "CreateDescriptorPool")) {
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->CreateDescriptorPool;
2133
0
    }
2134
0
    if (!strcmp(name, "DestroyDescriptorPool")) {
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->DestroyDescriptorPool;
2137
0
    }
2138
0
    if (!strcmp(name, "ResetDescriptorPool")) {
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->ResetDescriptorPool;
2141
0
    }
2142
0
    if (!strcmp(name, "AllocateDescriptorSets")) {
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->AllocateDescriptorSets;
2145
0
    }
2146
0
    if (!strcmp(name, "FreeDescriptorSets")) {
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->FreeDescriptorSets;
2149
0
    }
2150
0
    if (!strcmp(name, "UpdateDescriptorSets")) {
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->UpdateDescriptorSets;
2153
0
    }
2154
0
    if (!strcmp(name, "CmdBindPipeline")) {
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->CmdBindPipeline;
2157
0
    }
2158
0
    if (!strcmp(name, "CmdBindDescriptorSets")) {
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->CmdBindDescriptorSets;
2161
0
    }
2162
0
    if (!strcmp(name, "CmdClearColorImage")) {
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->CmdClearColorImage;
2165
0
    }
2166
0
    if (!strcmp(name, "CmdDispatch")) {
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->CmdDispatch;
2169
0
    }
2170
0
    if (!strcmp(name, "CmdDispatchIndirect")) {
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->CmdDispatchIndirect;
2173
0
    }
2174
0
    if (!strcmp(name, "CmdSetEvent")) {
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->CmdSetEvent;
2177
0
    }
2178
0
    if (!strcmp(name, "CmdResetEvent")) {
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->CmdResetEvent;
2181
0
    }
2182
0
    if (!strcmp(name, "CmdWaitEvents")) {
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->CmdWaitEvents;
2185
0
    }
2186
0
    if (!strcmp(name, "CmdPushConstants")) {
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->CmdPushConstants;
2189
0
    }
2190
0
    if (!strcmp(name, "CreateGraphicsPipelines")) {
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->CreateGraphicsPipelines;
2193
0
    }
2194
0
    if (!strcmp(name, "CreateFramebuffer")) {
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->CreateFramebuffer;
2197
0
    }
2198
0
    if (!strcmp(name, "DestroyFramebuffer")) {
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->DestroyFramebuffer;
2201
0
    }
2202
0
    if (!strcmp(name, "CreateRenderPass")) {
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->CreateRenderPass;
2205
0
    }
2206
0
    if (!strcmp(name, "DestroyRenderPass")) {
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->DestroyRenderPass;
2209
0
    }
2210
0
    if (!strcmp(name, "GetRenderAreaGranularity")) {
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->GetRenderAreaGranularity;
2213
0
    }
2214
0
    if (!strcmp(name, "CmdSetViewport")) {
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->CmdSetViewport;
2217
0
    }
2218
0
    if (!strcmp(name, "CmdSetScissor")) {
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->CmdSetScissor;
2221
0
    }
2222
0
    if (!strcmp(name, "CmdSetLineWidth")) {
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->CmdSetLineWidth;
2225
0
    }
2226
0
    if (!strcmp(name, "CmdSetDepthBias")) {
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->CmdSetDepthBias;
2229
0
    }
2230
0
    if (!strcmp(name, "CmdSetBlendConstants")) {
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->CmdSetBlendConstants;
2233
0
    }
2234
0
    if (!strcmp(name, "CmdSetDepthBounds")) {
2235
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2236
0
        return (void *)table->CmdSetDepthBounds;
2237
0
    }
2238
0
    if (!strcmp(name, "CmdSetStencilCompareMask")) {
2239
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2240
0
        return (void *)table->CmdSetStencilCompareMask;
2241
0
    }
2242
0
    if (!strcmp(name, "CmdSetStencilWriteMask")) {
2243
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2244
0
        return (void *)table->CmdSetStencilWriteMask;
2245
0
    }
2246
0
    if (!strcmp(name, "CmdSetStencilReference")) {
2247
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2248
0
        return (void *)table->CmdSetStencilReference;
2249
0
    }
2250
0
    if (!strcmp(name, "CmdBindIndexBuffer")) {
2251
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2252
0
        return (void *)table->CmdBindIndexBuffer;
2253
0
    }
2254
0
    if (!strcmp(name, "CmdBindVertexBuffers")) {
2255
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2256
0
        return (void *)table->CmdBindVertexBuffers;
2257
0
    }
2258
0
    if (!strcmp(name, "CmdDraw")) {
2259
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2260
0
        return (void *)table->CmdDraw;
2261
0
    }
2262
0
    if (!strcmp(name, "CmdDrawIndexed")) {
2263
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2264
0
        return (void *)table->CmdDrawIndexed;
2265
0
    }
2266
0
    if (!strcmp(name, "CmdDrawIndirect")) {
2267
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2268
0
        return (void *)table->CmdDrawIndirect;
2269
0
    }
2270
0
    if (!strcmp(name, "CmdDrawIndexedIndirect")) {
2271
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2272
0
        return (void *)table->CmdDrawIndexedIndirect;
2273
0
    }
2274
0
    if (!strcmp(name, "CmdBlitImage")) {
2275
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2276
0
        return (void *)table->CmdBlitImage;
2277
0
    }
2278
0
    if (!strcmp(name, "CmdClearDepthStencilImage")) {
2279
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2280
0
        return (void *)table->CmdClearDepthStencilImage;
2281
0
    }
2282
0
    if (!strcmp(name, "CmdClearAttachments")) {
2283
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2284
0
        return (void *)table->CmdClearAttachments;
2285
0
    }
2286
0
    if (!strcmp(name, "CmdResolveImage")) {
2287
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2288
0
        return (void *)table->CmdResolveImage;
2289
0
    }
2290
0
    if (!strcmp(name, "CmdBeginRenderPass")) {
2291
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2292
0
        return (void *)table->CmdBeginRenderPass;
2293
0
    }
2294
0
    if (!strcmp(name, "CmdNextSubpass")) {
2295
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2296
0
        return (void *)table->CmdNextSubpass;
2297
0
    }
2298
0
    if (!strcmp(name, "CmdEndRenderPass")) {
2299
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2300
0
        return (void *)table->CmdEndRenderPass;
2301
0
    }
2302
2303
    // ---- Core Vulkan 1.1 commands
2304
0
    if (!strcmp(name, "BindBufferMemory2")) {
2305
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2306
0
        return (void *)table->BindBufferMemory2;
2307
0
    }
2308
0
    if (!strcmp(name, "BindImageMemory2")) {
2309
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2310
0
        return (void *)table->BindImageMemory2;
2311
0
    }
2312
0
    if (!strcmp(name, "GetDeviceGroupPeerMemoryFeatures")) {
2313
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2314
0
        return (void *)table->GetDeviceGroupPeerMemoryFeatures;
2315
0
    }
2316
0
    if (!strcmp(name, "CmdSetDeviceMask")) {
2317
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2318
0
        return (void *)table->CmdSetDeviceMask;
2319
0
    }
2320
0
    if (!strcmp(name, "GetImageMemoryRequirements2")) {
2321
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2322
0
        return (void *)table->GetImageMemoryRequirements2;
2323
0
    }
2324
0
    if (!strcmp(name, "GetBufferMemoryRequirements2")) {
2325
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2326
0
        return (void *)table->GetBufferMemoryRequirements2;
2327
0
    }
2328
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements2")) {
2329
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2330
0
        return (void *)table->GetImageSparseMemoryRequirements2;
2331
0
    }
2332
0
    if (!strcmp(name, "TrimCommandPool")) {
2333
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2334
0
        return (void *)table->TrimCommandPool;
2335
0
    }
2336
0
    if (!strcmp(name, "GetDeviceQueue2")) {
2337
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2338
0
        return (void *)table->GetDeviceQueue2;
2339
0
    }
2340
0
    if (!strcmp(name, "CmdDispatchBase")) {
2341
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2342
0
        return (void *)table->CmdDispatchBase;
2343
0
    }
2344
0
    if (!strcmp(name, "CreateDescriptorUpdateTemplate")) {
2345
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2346
0
        return (void *)table->CreateDescriptorUpdateTemplate;
2347
0
    }
2348
0
    if (!strcmp(name, "DestroyDescriptorUpdateTemplate")) {
2349
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2350
0
        return (void *)table->DestroyDescriptorUpdateTemplate;
2351
0
    }
2352
0
    if (!strcmp(name, "UpdateDescriptorSetWithTemplate")) {
2353
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2354
0
        return (void *)table->UpdateDescriptorSetWithTemplate;
2355
0
    }
2356
0
    if (!strcmp(name, "GetDescriptorSetLayoutSupport")) {
2357
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2358
0
        return (void *)table->GetDescriptorSetLayoutSupport;
2359
0
    }
2360
0
    if (!strcmp(name, "CreateSamplerYcbcrConversion")) {
2361
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2362
0
        return (void *)table->CreateSamplerYcbcrConversion;
2363
0
    }
2364
0
    if (!strcmp(name, "DestroySamplerYcbcrConversion")) {
2365
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2366
0
        return (void *)table->DestroySamplerYcbcrConversion;
2367
0
    }
2368
2369
    // ---- Core Vulkan 1.2 commands
2370
0
    if (!strcmp(name, "ResetQueryPool")) {
2371
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2372
0
        return (void *)table->ResetQueryPool;
2373
0
    }
2374
0
    if (!strcmp(name, "GetSemaphoreCounterValue")) {
2375
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2376
0
        return (void *)table->GetSemaphoreCounterValue;
2377
0
    }
2378
0
    if (!strcmp(name, "WaitSemaphores")) {
2379
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2380
0
        return (void *)table->WaitSemaphores;
2381
0
    }
2382
0
    if (!strcmp(name, "SignalSemaphore")) {
2383
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2384
0
        return (void *)table->SignalSemaphore;
2385
0
    }
2386
0
    if (!strcmp(name, "GetBufferDeviceAddress")) {
2387
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2388
0
        return (void *)table->GetBufferDeviceAddress;
2389
0
    }
2390
0
    if (!strcmp(name, "GetBufferOpaqueCaptureAddress")) {
2391
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2392
0
        return (void *)table->GetBufferOpaqueCaptureAddress;
2393
0
    }
2394
0
    if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddress")) {
2395
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2396
0
        return (void *)table->GetDeviceMemoryOpaqueCaptureAddress;
2397
0
    }
2398
0
    if (!strcmp(name, "CmdDrawIndirectCount")) {
2399
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2400
0
        return (void *)table->CmdDrawIndirectCount;
2401
0
    }
2402
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCount")) {
2403
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2404
0
        return (void *)table->CmdDrawIndexedIndirectCount;
2405
0
    }
2406
0
    if (!strcmp(name, "CreateRenderPass2")) {
2407
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2408
0
        return (void *)table->CreateRenderPass2;
2409
0
    }
2410
0
    if (!strcmp(name, "CmdBeginRenderPass2")) {
2411
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2412
0
        return (void *)table->CmdBeginRenderPass2;
2413
0
    }
2414
0
    if (!strcmp(name, "CmdNextSubpass2")) {
2415
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2416
0
        return (void *)table->CmdNextSubpass2;
2417
0
    }
2418
0
    if (!strcmp(name, "CmdEndRenderPass2")) {
2419
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2420
0
        return (void *)table->CmdEndRenderPass2;
2421
0
    }
2422
2423
    // ---- Core Vulkan 1.3 commands
2424
0
    if (!strcmp(name, "CreatePrivateDataSlot")) {
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->CreatePrivateDataSlot;
2427
0
    }
2428
0
    if (!strcmp(name, "DestroyPrivateDataSlot")) {
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->DestroyPrivateDataSlot;
2431
0
    }
2432
0
    if (!strcmp(name, "SetPrivateData")) {
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->SetPrivateData;
2435
0
    }
2436
0
    if (!strcmp(name, "GetPrivateData")) {
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->GetPrivateData;
2439
0
    }
2440
0
    if (!strcmp(name, "CmdPipelineBarrier2")) {
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->CmdPipelineBarrier2;
2443
0
    }
2444
0
    if (!strcmp(name, "CmdWriteTimestamp2")) {
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->CmdWriteTimestamp2;
2447
0
    }
2448
0
    if (!strcmp(name, "QueueSubmit2")) {
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->QueueSubmit2;
2451
0
    }
2452
0
    if (!strcmp(name, "CmdCopyBuffer2")) {
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->CmdCopyBuffer2;
2455
0
    }
2456
0
    if (!strcmp(name, "CmdCopyImage2")) {
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->CmdCopyImage2;
2459
0
    }
2460
0
    if (!strcmp(name, "CmdCopyBufferToImage2")) {
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->CmdCopyBufferToImage2;
2463
0
    }
2464
0
    if (!strcmp(name, "CmdCopyImageToBuffer2")) {
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->CmdCopyImageToBuffer2;
2467
0
    }
2468
0
    if (!strcmp(name, "GetDeviceBufferMemoryRequirements")) {
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->GetDeviceBufferMemoryRequirements;
2471
0
    }
2472
0
    if (!strcmp(name, "GetDeviceImageMemoryRequirements")) {
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->GetDeviceImageMemoryRequirements;
2475
0
    }
2476
0
    if (!strcmp(name, "GetDeviceImageSparseMemoryRequirements")) {
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->GetDeviceImageSparseMemoryRequirements;
2479
0
    }
2480
0
    if (!strcmp(name, "CmdSetEvent2")) {
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->CmdSetEvent2;
2483
0
    }
2484
0
    if (!strcmp(name, "CmdResetEvent2")) {
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->CmdResetEvent2;
2487
0
    }
2488
0
    if (!strcmp(name, "CmdWaitEvents2")) {
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->CmdWaitEvents2;
2491
0
    }
2492
0
    if (!strcmp(name, "CmdBlitImage2")) {
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->CmdBlitImage2;
2495
0
    }
2496
0
    if (!strcmp(name, "CmdResolveImage2")) {
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->CmdResolveImage2;
2499
0
    }
2500
0
    if (!strcmp(name, "CmdBeginRendering")) {
2501
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2502
0
        return (void *)table->CmdBeginRendering;
2503
0
    }
2504
0
    if (!strcmp(name, "CmdEndRendering")) {
2505
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2506
0
        return (void *)table->CmdEndRendering;
2507
0
    }
2508
0
    if (!strcmp(name, "CmdSetCullMode")) {
2509
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2510
0
        return (void *)table->CmdSetCullMode;
2511
0
    }
2512
0
    if (!strcmp(name, "CmdSetFrontFace")) {
2513
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2514
0
        return (void *)table->CmdSetFrontFace;
2515
0
    }
2516
0
    if (!strcmp(name, "CmdSetPrimitiveTopology")) {
2517
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2518
0
        return (void *)table->CmdSetPrimitiveTopology;
2519
0
    }
2520
0
    if (!strcmp(name, "CmdSetViewportWithCount")) {
2521
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2522
0
        return (void *)table->CmdSetViewportWithCount;
2523
0
    }
2524
0
    if (!strcmp(name, "CmdSetScissorWithCount")) {
2525
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2526
0
        return (void *)table->CmdSetScissorWithCount;
2527
0
    }
2528
0
    if (!strcmp(name, "CmdBindVertexBuffers2")) {
2529
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2530
0
        return (void *)table->CmdBindVertexBuffers2;
2531
0
    }
2532
0
    if (!strcmp(name, "CmdSetDepthTestEnable")) {
2533
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2534
0
        return (void *)table->CmdSetDepthTestEnable;
2535
0
    }
2536
0
    if (!strcmp(name, "CmdSetDepthWriteEnable")) {
2537
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2538
0
        return (void *)table->CmdSetDepthWriteEnable;
2539
0
    }
2540
0
    if (!strcmp(name, "CmdSetDepthCompareOp")) {
2541
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2542
0
        return (void *)table->CmdSetDepthCompareOp;
2543
0
    }
2544
0
    if (!strcmp(name, "CmdSetDepthBoundsTestEnable")) {
2545
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2546
0
        return (void *)table->CmdSetDepthBoundsTestEnable;
2547
0
    }
2548
0
    if (!strcmp(name, "CmdSetStencilTestEnable")) {
2549
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2550
0
        return (void *)table->CmdSetStencilTestEnable;
2551
0
    }
2552
0
    if (!strcmp(name, "CmdSetStencilOp")) {
2553
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2554
0
        return (void *)table->CmdSetStencilOp;
2555
0
    }
2556
0
    if (!strcmp(name, "CmdSetRasterizerDiscardEnable")) {
2557
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2558
0
        return (void *)table->CmdSetRasterizerDiscardEnable;
2559
0
    }
2560
0
    if (!strcmp(name, "CmdSetDepthBiasEnable")) {
2561
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2562
0
        return (void *)table->CmdSetDepthBiasEnable;
2563
0
    }
2564
0
    if (!strcmp(name, "CmdSetPrimitiveRestartEnable")) {
2565
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2566
0
        return (void *)table->CmdSetPrimitiveRestartEnable;
2567
0
    }
2568
2569
    // ---- Core Vulkan 1.4 commands
2570
0
    if (!strcmp(name, "MapMemory2")) {
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->MapMemory2;
2573
0
    }
2574
0
    if (!strcmp(name, "UnmapMemory2")) {
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->UnmapMemory2;
2577
0
    }
2578
0
    if (!strcmp(name, "GetDeviceImageSubresourceLayout")) {
2579
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2580
0
        return (void *)table->GetDeviceImageSubresourceLayout;
2581
0
    }
2582
0
    if (!strcmp(name, "GetImageSubresourceLayout2")) {
2583
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2584
0
        return (void *)table->GetImageSubresourceLayout2;
2585
0
    }
2586
0
    if (!strcmp(name, "CopyMemoryToImage")) {
2587
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2588
0
        return (void *)table->CopyMemoryToImage;
2589
0
    }
2590
0
    if (!strcmp(name, "CopyImageToMemory")) {
2591
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2592
0
        return (void *)table->CopyImageToMemory;
2593
0
    }
2594
0
    if (!strcmp(name, "CopyImageToImage")) {
2595
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2596
0
        return (void *)table->CopyImageToImage;
2597
0
    }
2598
0
    if (!strcmp(name, "TransitionImageLayout")) {
2599
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2600
0
        return (void *)table->TransitionImageLayout;
2601
0
    }
2602
0
    if (!strcmp(name, "CmdPushDescriptorSet")) {
2603
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2604
0
        return (void *)table->CmdPushDescriptorSet;
2605
0
    }
2606
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate")) {
2607
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2608
0
        return (void *)table->CmdPushDescriptorSetWithTemplate;
2609
0
    }
2610
0
    if (!strcmp(name, "CmdBindDescriptorSets2")) {
2611
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2612
0
        return (void *)table->CmdBindDescriptorSets2;
2613
0
    }
2614
0
    if (!strcmp(name, "CmdPushConstants2")) {
2615
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2616
0
        return (void *)table->CmdPushConstants2;
2617
0
    }
2618
0
    if (!strcmp(name, "CmdPushDescriptorSet2")) {
2619
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2620
0
        return (void *)table->CmdPushDescriptorSet2;
2621
0
    }
2622
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2")) {
2623
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2624
0
        return (void *)table->CmdPushDescriptorSetWithTemplate2;
2625
0
    }
2626
0
    if (!strcmp(name, "CmdSetLineStipple")) {
2627
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2628
0
        return (void *)table->CmdSetLineStipple;
2629
0
    }
2630
0
    if (!strcmp(name, "CmdBindIndexBuffer2")) {
2631
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2632
0
        return (void *)table->CmdBindIndexBuffer2;
2633
0
    }
2634
0
    if (!strcmp(name, "GetRenderingAreaGranularity")) {
2635
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2636
0
        return (void *)table->GetRenderingAreaGranularity;
2637
0
    }
2638
0
    if (!strcmp(name, "CmdSetRenderingAttachmentLocations")) {
2639
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2640
0
        return (void *)table->CmdSetRenderingAttachmentLocations;
2641
0
    }
2642
0
    if (!strcmp(name, "CmdSetRenderingInputAttachmentIndices")) {
2643
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2644
0
        return (void *)table->CmdSetRenderingInputAttachmentIndices;
2645
0
    }
2646
2647
    // ---- VK_KHR_swapchain extension commands
2648
0
    if (!strcmp(name, "CreateSwapchainKHR")) return (void *)table->CreateSwapchainKHR;
2649
0
    if (!strcmp(name, "DestroySwapchainKHR")) return (void *)table->DestroySwapchainKHR;
2650
0
    if (!strcmp(name, "GetSwapchainImagesKHR")) return (void *)table->GetSwapchainImagesKHR;
2651
0
    if (!strcmp(name, "AcquireNextImageKHR")) return (void *)table->AcquireNextImageKHR;
2652
0
    if (!strcmp(name, "QueuePresentKHR")) return (void *)table->QueuePresentKHR;
2653
0
    if (!strcmp(name, "GetDeviceGroupPresentCapabilitiesKHR")) return (void *)table->GetDeviceGroupPresentCapabilitiesKHR;
2654
0
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) return (void *)table->GetDeviceGroupSurfacePresentModesKHR;
2655
0
    if (!strcmp(name, "AcquireNextImage2KHR")) return (void *)table->AcquireNextImage2KHR;
2656
2657
    // ---- VK_KHR_display_swapchain extension commands
2658
0
    if (!strcmp(name, "CreateSharedSwapchainsKHR")) return (void *)table->CreateSharedSwapchainsKHR;
2659
2660
    // ---- VK_KHR_video_queue extension commands
2661
0
    if (!strcmp(name, "CreateVideoSessionKHR")) return (void *)table->CreateVideoSessionKHR;
2662
0
    if (!strcmp(name, "DestroyVideoSessionKHR")) return (void *)table->DestroyVideoSessionKHR;
2663
0
    if (!strcmp(name, "GetVideoSessionMemoryRequirementsKHR")) return (void *)table->GetVideoSessionMemoryRequirementsKHR;
2664
0
    if (!strcmp(name, "BindVideoSessionMemoryKHR")) return (void *)table->BindVideoSessionMemoryKHR;
2665
0
    if (!strcmp(name, "CreateVideoSessionParametersKHR")) return (void *)table->CreateVideoSessionParametersKHR;
2666
0
    if (!strcmp(name, "UpdateVideoSessionParametersKHR")) return (void *)table->UpdateVideoSessionParametersKHR;
2667
0
    if (!strcmp(name, "DestroyVideoSessionParametersKHR")) return (void *)table->DestroyVideoSessionParametersKHR;
2668
0
    if (!strcmp(name, "CmdBeginVideoCodingKHR")) return (void *)table->CmdBeginVideoCodingKHR;
2669
0
    if (!strcmp(name, "CmdEndVideoCodingKHR")) return (void *)table->CmdEndVideoCodingKHR;
2670
0
    if (!strcmp(name, "CmdControlVideoCodingKHR")) return (void *)table->CmdControlVideoCodingKHR;
2671
2672
    // ---- VK_KHR_video_decode_queue extension commands
2673
0
    if (!strcmp(name, "CmdDecodeVideoKHR")) return (void *)table->CmdDecodeVideoKHR;
2674
2675
    // ---- VK_KHR_dynamic_rendering extension commands
2676
0
    if (!strcmp(name, "CmdBeginRenderingKHR")) return (void *)table->CmdBeginRenderingKHR;
2677
0
    if (!strcmp(name, "CmdEndRenderingKHR")) return (void *)table->CmdEndRenderingKHR;
2678
2679
    // ---- VK_KHR_device_group extension commands
2680
0
    if (!strcmp(name, "GetDeviceGroupPeerMemoryFeaturesKHR")) return (void *)table->GetDeviceGroupPeerMemoryFeaturesKHR;
2681
0
    if (!strcmp(name, "CmdSetDeviceMaskKHR")) return (void *)table->CmdSetDeviceMaskKHR;
2682
0
    if (!strcmp(name, "CmdDispatchBaseKHR")) return (void *)table->CmdDispatchBaseKHR;
2683
2684
    // ---- VK_KHR_maintenance1 extension commands
2685
0
    if (!strcmp(name, "TrimCommandPoolKHR")) return (void *)table->TrimCommandPoolKHR;
2686
2687
    // ---- VK_KHR_external_memory_win32 extension commands
2688
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2689
    if (!strcmp(name, "GetMemoryWin32HandleKHR")) return (void *)table->GetMemoryWin32HandleKHR;
2690
#endif // VK_USE_PLATFORM_WIN32_KHR
2691
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2692
    if (!strcmp(name, "GetMemoryWin32HandlePropertiesKHR")) return (void *)table->GetMemoryWin32HandlePropertiesKHR;
2693
#endif // VK_USE_PLATFORM_WIN32_KHR
2694
2695
    // ---- VK_KHR_external_memory_fd extension commands
2696
0
    if (!strcmp(name, "GetMemoryFdKHR")) return (void *)table->GetMemoryFdKHR;
2697
0
    if (!strcmp(name, "GetMemoryFdPropertiesKHR")) return (void *)table->GetMemoryFdPropertiesKHR;
2698
2699
    // ---- VK_KHR_external_semaphore_win32 extension commands
2700
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2701
    if (!strcmp(name, "ImportSemaphoreWin32HandleKHR")) return (void *)table->ImportSemaphoreWin32HandleKHR;
2702
#endif // VK_USE_PLATFORM_WIN32_KHR
2703
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2704
    if (!strcmp(name, "GetSemaphoreWin32HandleKHR")) return (void *)table->GetSemaphoreWin32HandleKHR;
2705
#endif // VK_USE_PLATFORM_WIN32_KHR
2706
2707
    // ---- VK_KHR_external_semaphore_fd extension commands
2708
0
    if (!strcmp(name, "ImportSemaphoreFdKHR")) return (void *)table->ImportSemaphoreFdKHR;
2709
0
    if (!strcmp(name, "GetSemaphoreFdKHR")) return (void *)table->GetSemaphoreFdKHR;
2710
2711
    // ---- VK_KHR_push_descriptor extension commands
2712
0
    if (!strcmp(name, "CmdPushDescriptorSetKHR")) return (void *)table->CmdPushDescriptorSetKHR;
2713
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplateKHR")) return (void *)table->CmdPushDescriptorSetWithTemplateKHR;
2714
2715
    // ---- VK_KHR_descriptor_update_template extension commands
2716
0
    if (!strcmp(name, "CreateDescriptorUpdateTemplateKHR")) return (void *)table->CreateDescriptorUpdateTemplateKHR;
2717
0
    if (!strcmp(name, "DestroyDescriptorUpdateTemplateKHR")) return (void *)table->DestroyDescriptorUpdateTemplateKHR;
2718
0
    if (!strcmp(name, "UpdateDescriptorSetWithTemplateKHR")) return (void *)table->UpdateDescriptorSetWithTemplateKHR;
2719
2720
    // ---- VK_KHR_create_renderpass2 extension commands
2721
0
    if (!strcmp(name, "CreateRenderPass2KHR")) return (void *)table->CreateRenderPass2KHR;
2722
0
    if (!strcmp(name, "CmdBeginRenderPass2KHR")) return (void *)table->CmdBeginRenderPass2KHR;
2723
0
    if (!strcmp(name, "CmdNextSubpass2KHR")) return (void *)table->CmdNextSubpass2KHR;
2724
0
    if (!strcmp(name, "CmdEndRenderPass2KHR")) return (void *)table->CmdEndRenderPass2KHR;
2725
2726
    // ---- VK_KHR_shared_presentable_image extension commands
2727
0
    if (!strcmp(name, "GetSwapchainStatusKHR")) return (void *)table->GetSwapchainStatusKHR;
2728
2729
    // ---- VK_KHR_external_fence_win32 extension commands
2730
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2731
    if (!strcmp(name, "ImportFenceWin32HandleKHR")) return (void *)table->ImportFenceWin32HandleKHR;
2732
#endif // VK_USE_PLATFORM_WIN32_KHR
2733
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2734
    if (!strcmp(name, "GetFenceWin32HandleKHR")) return (void *)table->GetFenceWin32HandleKHR;
2735
#endif // VK_USE_PLATFORM_WIN32_KHR
2736
2737
    // ---- VK_KHR_external_fence_fd extension commands
2738
0
    if (!strcmp(name, "ImportFenceFdKHR")) return (void *)table->ImportFenceFdKHR;
2739
0
    if (!strcmp(name, "GetFenceFdKHR")) return (void *)table->GetFenceFdKHR;
2740
2741
    // ---- VK_KHR_performance_query extension commands
2742
0
    if (!strcmp(name, "AcquireProfilingLockKHR")) return (void *)table->AcquireProfilingLockKHR;
2743
0
    if (!strcmp(name, "ReleaseProfilingLockKHR")) return (void *)table->ReleaseProfilingLockKHR;
2744
2745
    // ---- VK_KHR_get_memory_requirements2 extension commands
2746
0
    if (!strcmp(name, "GetImageMemoryRequirements2KHR")) return (void *)table->GetImageMemoryRequirements2KHR;
2747
0
    if (!strcmp(name, "GetBufferMemoryRequirements2KHR")) return (void *)table->GetBufferMemoryRequirements2KHR;
2748
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements2KHR")) return (void *)table->GetImageSparseMemoryRequirements2KHR;
2749
2750
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
2751
0
    if (!strcmp(name, "CreateSamplerYcbcrConversionKHR")) return (void *)table->CreateSamplerYcbcrConversionKHR;
2752
0
    if (!strcmp(name, "DestroySamplerYcbcrConversionKHR")) return (void *)table->DestroySamplerYcbcrConversionKHR;
2753
2754
    // ---- VK_KHR_bind_memory2 extension commands
2755
0
    if (!strcmp(name, "BindBufferMemory2KHR")) return (void *)table->BindBufferMemory2KHR;
2756
0
    if (!strcmp(name, "BindImageMemory2KHR")) return (void *)table->BindImageMemory2KHR;
2757
2758
    // ---- VK_KHR_maintenance3 extension commands
2759
0
    if (!strcmp(name, "GetDescriptorSetLayoutSupportKHR")) return (void *)table->GetDescriptorSetLayoutSupportKHR;
2760
2761
    // ---- VK_KHR_draw_indirect_count extension commands
2762
0
    if (!strcmp(name, "CmdDrawIndirectCountKHR")) return (void *)table->CmdDrawIndirectCountKHR;
2763
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCountKHR")) return (void *)table->CmdDrawIndexedIndirectCountKHR;
2764
2765
    // ---- VK_KHR_timeline_semaphore extension commands
2766
0
    if (!strcmp(name, "GetSemaphoreCounterValueKHR")) return (void *)table->GetSemaphoreCounterValueKHR;
2767
0
    if (!strcmp(name, "WaitSemaphoresKHR")) return (void *)table->WaitSemaphoresKHR;
2768
0
    if (!strcmp(name, "SignalSemaphoreKHR")) return (void *)table->SignalSemaphoreKHR;
2769
2770
    // ---- VK_KHR_fragment_shading_rate extension commands
2771
0
    if (!strcmp(name, "CmdSetFragmentShadingRateKHR")) return (void *)table->CmdSetFragmentShadingRateKHR;
2772
2773
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
2774
0
    if (!strcmp(name, "CmdSetRenderingAttachmentLocationsKHR")) return (void *)table->CmdSetRenderingAttachmentLocationsKHR;
2775
0
    if (!strcmp(name, "CmdSetRenderingInputAttachmentIndicesKHR")) return (void *)table->CmdSetRenderingInputAttachmentIndicesKHR;
2776
2777
    // ---- VK_KHR_present_wait extension commands
2778
0
    if (!strcmp(name, "WaitForPresentKHR")) return (void *)table->WaitForPresentKHR;
2779
2780
    // ---- VK_KHR_buffer_device_address extension commands
2781
0
    if (!strcmp(name, "GetBufferDeviceAddressKHR")) return (void *)table->GetBufferDeviceAddressKHR;
2782
0
    if (!strcmp(name, "GetBufferOpaqueCaptureAddressKHR")) return (void *)table->GetBufferOpaqueCaptureAddressKHR;
2783
0
    if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddressKHR")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddressKHR;
2784
2785
    // ---- VK_KHR_deferred_host_operations extension commands
2786
0
    if (!strcmp(name, "CreateDeferredOperationKHR")) return (void *)table->CreateDeferredOperationKHR;
2787
0
    if (!strcmp(name, "DestroyDeferredOperationKHR")) return (void *)table->DestroyDeferredOperationKHR;
2788
0
    if (!strcmp(name, "GetDeferredOperationMaxConcurrencyKHR")) return (void *)table->GetDeferredOperationMaxConcurrencyKHR;
2789
0
    if (!strcmp(name, "GetDeferredOperationResultKHR")) return (void *)table->GetDeferredOperationResultKHR;
2790
0
    if (!strcmp(name, "DeferredOperationJoinKHR")) return (void *)table->DeferredOperationJoinKHR;
2791
2792
    // ---- VK_KHR_pipeline_executable_properties extension commands
2793
0
    if (!strcmp(name, "GetPipelineExecutablePropertiesKHR")) return (void *)table->GetPipelineExecutablePropertiesKHR;
2794
0
    if (!strcmp(name, "GetPipelineExecutableStatisticsKHR")) return (void *)table->GetPipelineExecutableStatisticsKHR;
2795
0
    if (!strcmp(name, "GetPipelineExecutableInternalRepresentationsKHR")) return (void *)table->GetPipelineExecutableInternalRepresentationsKHR;
2796
2797
    // ---- VK_KHR_map_memory2 extension commands
2798
0
    if (!strcmp(name, "MapMemory2KHR")) return (void *)table->MapMemory2KHR;
2799
0
    if (!strcmp(name, "UnmapMemory2KHR")) return (void *)table->UnmapMemory2KHR;
2800
2801
    // ---- VK_KHR_video_encode_queue extension commands
2802
0
    if (!strcmp(name, "GetEncodedVideoSessionParametersKHR")) return (void *)table->GetEncodedVideoSessionParametersKHR;
2803
0
    if (!strcmp(name, "CmdEncodeVideoKHR")) return (void *)table->CmdEncodeVideoKHR;
2804
2805
    // ---- VK_KHR_synchronization2 extension commands
2806
0
    if (!strcmp(name, "CmdSetEvent2KHR")) return (void *)table->CmdSetEvent2KHR;
2807
0
    if (!strcmp(name, "CmdResetEvent2KHR")) return (void *)table->CmdResetEvent2KHR;
2808
0
    if (!strcmp(name, "CmdWaitEvents2KHR")) return (void *)table->CmdWaitEvents2KHR;
2809
0
    if (!strcmp(name, "CmdPipelineBarrier2KHR")) return (void *)table->CmdPipelineBarrier2KHR;
2810
0
    if (!strcmp(name, "CmdWriteTimestamp2KHR")) return (void *)table->CmdWriteTimestamp2KHR;
2811
0
    if (!strcmp(name, "QueueSubmit2KHR")) return (void *)table->QueueSubmit2KHR;
2812
2813
    // ---- VK_KHR_device_address_commands extension commands
2814
0
    if (!strcmp(name, "CmdBindIndexBuffer3KHR")) return (void *)table->CmdBindIndexBuffer3KHR;
2815
0
    if (!strcmp(name, "CmdBindVertexBuffers3KHR")) return (void *)table->CmdBindVertexBuffers3KHR;
2816
0
    if (!strcmp(name, "CmdDrawIndirect2KHR")) return (void *)table->CmdDrawIndirect2KHR;
2817
0
    if (!strcmp(name, "CmdDrawIndexedIndirect2KHR")) return (void *)table->CmdDrawIndexedIndirect2KHR;
2818
0
    if (!strcmp(name, "CmdDispatchIndirect2KHR")) return (void *)table->CmdDispatchIndirect2KHR;
2819
0
    if (!strcmp(name, "CmdCopyMemoryKHR")) return (void *)table->CmdCopyMemoryKHR;
2820
0
    if (!strcmp(name, "CmdCopyMemoryToImageKHR")) return (void *)table->CmdCopyMemoryToImageKHR;
2821
0
    if (!strcmp(name, "CmdCopyImageToMemoryKHR")) return (void *)table->CmdCopyImageToMemoryKHR;
2822
0
    if (!strcmp(name, "CmdUpdateMemoryKHR")) return (void *)table->CmdUpdateMemoryKHR;
2823
0
    if (!strcmp(name, "CmdFillMemoryKHR")) return (void *)table->CmdFillMemoryKHR;
2824
0
    if (!strcmp(name, "CmdCopyQueryPoolResultsToMemoryKHR")) return (void *)table->CmdCopyQueryPoolResultsToMemoryKHR;
2825
0
    if (!strcmp(name, "CmdDrawIndirectCount2KHR")) return (void *)table->CmdDrawIndirectCount2KHR;
2826
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCount2KHR")) return (void *)table->CmdDrawIndexedIndirectCount2KHR;
2827
0
    if (!strcmp(name, "CmdBeginConditionalRendering2EXT")) return (void *)table->CmdBeginConditionalRendering2EXT;
2828
0
    if (!strcmp(name, "CmdBindTransformFeedbackBuffers2EXT")) return (void *)table->CmdBindTransformFeedbackBuffers2EXT;
2829
0
    if (!strcmp(name, "CmdBeginTransformFeedback2EXT")) return (void *)table->CmdBeginTransformFeedback2EXT;
2830
0
    if (!strcmp(name, "CmdEndTransformFeedback2EXT")) return (void *)table->CmdEndTransformFeedback2EXT;
2831
0
    if (!strcmp(name, "CmdDrawIndirectByteCount2EXT")) return (void *)table->CmdDrawIndirectByteCount2EXT;
2832
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirect2EXT")) return (void *)table->CmdDrawMeshTasksIndirect2EXT;
2833
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectCount2EXT")) return (void *)table->CmdDrawMeshTasksIndirectCount2EXT;
2834
0
    if (!strcmp(name, "CmdWriteMarkerToMemoryAMD")) return (void *)table->CmdWriteMarkerToMemoryAMD;
2835
0
    if (!strcmp(name, "CreateAccelerationStructure2KHR")) return (void *)table->CreateAccelerationStructure2KHR;
2836
2837
    // ---- VK_KHR_copy_commands2 extension commands
2838
0
    if (!strcmp(name, "CmdCopyBuffer2KHR")) return (void *)table->CmdCopyBuffer2KHR;
2839
0
    if (!strcmp(name, "CmdCopyImage2KHR")) return (void *)table->CmdCopyImage2KHR;
2840
0
    if (!strcmp(name, "CmdCopyBufferToImage2KHR")) return (void *)table->CmdCopyBufferToImage2KHR;
2841
0
    if (!strcmp(name, "CmdCopyImageToBuffer2KHR")) return (void *)table->CmdCopyImageToBuffer2KHR;
2842
0
    if (!strcmp(name, "CmdBlitImage2KHR")) return (void *)table->CmdBlitImage2KHR;
2843
0
    if (!strcmp(name, "CmdResolveImage2KHR")) return (void *)table->CmdResolveImage2KHR;
2844
2845
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
2846
0
    if (!strcmp(name, "CmdTraceRaysIndirect2KHR")) return (void *)table->CmdTraceRaysIndirect2KHR;
2847
2848
    // ---- VK_KHR_maintenance4 extension commands
2849
0
    if (!strcmp(name, "GetDeviceBufferMemoryRequirementsKHR")) return (void *)table->GetDeviceBufferMemoryRequirementsKHR;
2850
0
    if (!strcmp(name, "GetDeviceImageMemoryRequirementsKHR")) return (void *)table->GetDeviceImageMemoryRequirementsKHR;
2851
0
    if (!strcmp(name, "GetDeviceImageSparseMemoryRequirementsKHR")) return (void *)table->GetDeviceImageSparseMemoryRequirementsKHR;
2852
2853
    // ---- VK_KHR_maintenance5 extension commands
2854
0
    if (!strcmp(name, "CmdBindIndexBuffer2KHR")) return (void *)table->CmdBindIndexBuffer2KHR;
2855
0
    if (!strcmp(name, "GetRenderingAreaGranularityKHR")) return (void *)table->GetRenderingAreaGranularityKHR;
2856
0
    if (!strcmp(name, "GetDeviceImageSubresourceLayoutKHR")) return (void *)table->GetDeviceImageSubresourceLayoutKHR;
2857
0
    if (!strcmp(name, "GetImageSubresourceLayout2KHR")) return (void *)table->GetImageSubresourceLayout2KHR;
2858
2859
    // ---- VK_KHR_present_wait2 extension commands
2860
0
    if (!strcmp(name, "WaitForPresent2KHR")) return (void *)table->WaitForPresent2KHR;
2861
2862
    // ---- VK_KHR_pipeline_binary extension commands
2863
0
    if (!strcmp(name, "CreatePipelineBinariesKHR")) return (void *)table->CreatePipelineBinariesKHR;
2864
0
    if (!strcmp(name, "DestroyPipelineBinaryKHR")) return (void *)table->DestroyPipelineBinaryKHR;
2865
0
    if (!strcmp(name, "GetPipelineKeyKHR")) return (void *)table->GetPipelineKeyKHR;
2866
0
    if (!strcmp(name, "GetPipelineBinaryDataKHR")) return (void *)table->GetPipelineBinaryDataKHR;
2867
0
    if (!strcmp(name, "ReleaseCapturedPipelineDataKHR")) return (void *)table->ReleaseCapturedPipelineDataKHR;
2868
2869
    // ---- VK_KHR_swapchain_maintenance1 extension commands
2870
0
    if (!strcmp(name, "ReleaseSwapchainImagesKHR")) return (void *)table->ReleaseSwapchainImagesKHR;
2871
2872
    // ---- VK_KHR_line_rasterization extension commands
2873
0
    if (!strcmp(name, "CmdSetLineStippleKHR")) return (void *)table->CmdSetLineStippleKHR;
2874
2875
    // ---- VK_KHR_calibrated_timestamps extension commands
2876
0
    if (!strcmp(name, "GetCalibratedTimestampsKHR")) return (void *)table->GetCalibratedTimestampsKHR;
2877
2878
    // ---- VK_KHR_maintenance6 extension commands
2879
0
    if (!strcmp(name, "CmdBindDescriptorSets2KHR")) return (void *)table->CmdBindDescriptorSets2KHR;
2880
0
    if (!strcmp(name, "CmdPushConstants2KHR")) return (void *)table->CmdPushConstants2KHR;
2881
0
    if (!strcmp(name, "CmdPushDescriptorSet2KHR")) return (void *)table->CmdPushDescriptorSet2KHR;
2882
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2KHR")) return (void *)table->CmdPushDescriptorSetWithTemplate2KHR;
2883
0
    if (!strcmp(name, "CmdSetDescriptorBufferOffsets2EXT")) return (void *)table->CmdSetDescriptorBufferOffsets2EXT;
2884
0
    if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplers2EXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplers2EXT;
2885
2886
    // ---- VK_KHR_copy_memory_indirect extension commands
2887
0
    if (!strcmp(name, "CmdCopyMemoryIndirectKHR")) return (void *)table->CmdCopyMemoryIndirectKHR;
2888
0
    if (!strcmp(name, "CmdCopyMemoryToImageIndirectKHR")) return (void *)table->CmdCopyMemoryToImageIndirectKHR;
2889
2890
    // ---- VK_KHR_device_fault extension commands
2891
0
    if (!strcmp(name, "GetDeviceFaultReportsKHR")) return (void *)table->GetDeviceFaultReportsKHR;
2892
0
    if (!strcmp(name, "GetDeviceFaultDebugInfoKHR")) return (void *)table->GetDeviceFaultDebugInfoKHR;
2893
2894
    // ---- VK_KHR_maintenance10 extension commands
2895
0
    if (!strcmp(name, "CmdEndRendering2KHR")) return (void *)table->CmdEndRendering2KHR;
2896
2897
    // ---- VK_EXT_debug_marker extension commands
2898
0
    if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectTagEXT : NULL;
2899
0
    if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectNameEXT : NULL;
2900
0
    if (!strcmp(name, "CmdDebugMarkerBeginEXT")) return (void *)table->CmdDebugMarkerBeginEXT;
2901
0
    if (!strcmp(name, "CmdDebugMarkerEndEXT")) return (void *)table->CmdDebugMarkerEndEXT;
2902
0
    if (!strcmp(name, "CmdDebugMarkerInsertEXT")) return (void *)table->CmdDebugMarkerInsertEXT;
2903
2904
    // ---- VK_EXT_transform_feedback extension commands
2905
0
    if (!strcmp(name, "CmdBindTransformFeedbackBuffersEXT")) return (void *)table->CmdBindTransformFeedbackBuffersEXT;
2906
0
    if (!strcmp(name, "CmdBeginTransformFeedbackEXT")) return (void *)table->CmdBeginTransformFeedbackEXT;
2907
0
    if (!strcmp(name, "CmdEndTransformFeedbackEXT")) return (void *)table->CmdEndTransformFeedbackEXT;
2908
0
    if (!strcmp(name, "CmdBeginQueryIndexedEXT")) return (void *)table->CmdBeginQueryIndexedEXT;
2909
0
    if (!strcmp(name, "CmdEndQueryIndexedEXT")) return (void *)table->CmdEndQueryIndexedEXT;
2910
0
    if (!strcmp(name, "CmdDrawIndirectByteCountEXT")) return (void *)table->CmdDrawIndirectByteCountEXT;
2911
2912
    // ---- VK_NVX_binary_import extension commands
2913
0
    if (!strcmp(name, "CreateCuModuleNVX")) return (void *)table->CreateCuModuleNVX;
2914
0
    if (!strcmp(name, "CreateCuFunctionNVX")) return (void *)table->CreateCuFunctionNVX;
2915
0
    if (!strcmp(name, "DestroyCuModuleNVX")) return (void *)table->DestroyCuModuleNVX;
2916
0
    if (!strcmp(name, "DestroyCuFunctionNVX")) return (void *)table->DestroyCuFunctionNVX;
2917
0
    if (!strcmp(name, "CmdCuLaunchKernelNVX")) return (void *)table->CmdCuLaunchKernelNVX;
2918
2919
    // ---- VK_NVX_image_view_handle extension commands
2920
0
    if (!strcmp(name, "GetImageViewHandleNVX")) return (void *)table->GetImageViewHandleNVX;
2921
0
    if (!strcmp(name, "GetImageViewHandle64NVX")) return (void *)table->GetImageViewHandle64NVX;
2922
0
    if (!strcmp(name, "GetImageViewAddressNVX")) return (void *)table->GetImageViewAddressNVX;
2923
0
    if (!strcmp(name, "GetDeviceCombinedImageSamplerIndexNVX")) return (void *)table->GetDeviceCombinedImageSamplerIndexNVX;
2924
2925
    // ---- VK_AMD_draw_indirect_count extension commands
2926
0
    if (!strcmp(name, "CmdDrawIndirectCountAMD")) return (void *)table->CmdDrawIndirectCountAMD;
2927
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCountAMD")) return (void *)table->CmdDrawIndexedIndirectCountAMD;
2928
2929
    // ---- VK_AMD_shader_info extension commands
2930
0
    if (!strcmp(name, "GetShaderInfoAMD")) return (void *)table->GetShaderInfoAMD;
2931
2932
    // ---- VK_NV_external_memory_win32 extension commands
2933
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2934
    if (!strcmp(name, "GetMemoryWin32HandleNV")) return (void *)table->GetMemoryWin32HandleNV;
2935
#endif // VK_USE_PLATFORM_WIN32_KHR
2936
2937
    // ---- VK_EXT_conditional_rendering extension commands
2938
0
    if (!strcmp(name, "CmdBeginConditionalRenderingEXT")) return (void *)table->CmdBeginConditionalRenderingEXT;
2939
0
    if (!strcmp(name, "CmdEndConditionalRenderingEXT")) return (void *)table->CmdEndConditionalRenderingEXT;
2940
2941
    // ---- VK_NV_clip_space_w_scaling extension commands
2942
0
    if (!strcmp(name, "CmdSetViewportWScalingNV")) return (void *)table->CmdSetViewportWScalingNV;
2943
2944
    // ---- VK_EXT_display_control extension commands
2945
0
    if (!strcmp(name, "DisplayPowerControlEXT")) return (void *)table->DisplayPowerControlEXT;
2946
0
    if (!strcmp(name, "RegisterDeviceEventEXT")) return (void *)table->RegisterDeviceEventEXT;
2947
0
    if (!strcmp(name, "RegisterDisplayEventEXT")) return (void *)table->RegisterDisplayEventEXT;
2948
0
    if (!strcmp(name, "GetSwapchainCounterEXT")) return (void *)table->GetSwapchainCounterEXT;
2949
2950
    // ---- VK_GOOGLE_display_timing extension commands
2951
0
    if (!strcmp(name, "GetRefreshCycleDurationGOOGLE")) return (void *)table->GetRefreshCycleDurationGOOGLE;
2952
0
    if (!strcmp(name, "GetPastPresentationTimingGOOGLE")) return (void *)table->GetPastPresentationTimingGOOGLE;
2953
2954
    // ---- VK_EXT_discard_rectangles extension commands
2955
0
    if (!strcmp(name, "CmdSetDiscardRectangleEXT")) return (void *)table->CmdSetDiscardRectangleEXT;
2956
0
    if (!strcmp(name, "CmdSetDiscardRectangleEnableEXT")) return (void *)table->CmdSetDiscardRectangleEnableEXT;
2957
0
    if (!strcmp(name, "CmdSetDiscardRectangleModeEXT")) return (void *)table->CmdSetDiscardRectangleModeEXT;
2958
2959
    // ---- VK_EXT_hdr_metadata extension commands
2960
0
    if (!strcmp(name, "SetHdrMetadataEXT")) return (void *)table->SetHdrMetadataEXT;
2961
2962
    // ---- VK_EXT_debug_utils extension commands
2963
0
    if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectNameEXT : NULL;
2964
0
    if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectTagEXT : NULL;
2965
0
    if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) return (void *)table->QueueBeginDebugUtilsLabelEXT;
2966
0
    if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) return (void *)table->QueueEndDebugUtilsLabelEXT;
2967
0
    if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) return (void *)table->QueueInsertDebugUtilsLabelEXT;
2968
0
    if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) return (void *)table->CmdBeginDebugUtilsLabelEXT;
2969
0
    if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) return (void *)table->CmdEndDebugUtilsLabelEXT;
2970
0
    if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) return (void *)table->CmdInsertDebugUtilsLabelEXT;
2971
2972
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
2973
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
2974
    if (!strcmp(name, "GetAndroidHardwareBufferPropertiesANDROID")) return (void *)table->GetAndroidHardwareBufferPropertiesANDROID;
2975
#endif // VK_USE_PLATFORM_ANDROID_KHR
2976
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
2977
    if (!strcmp(name, "GetMemoryAndroidHardwareBufferANDROID")) return (void *)table->GetMemoryAndroidHardwareBufferANDROID;
2978
#endif // VK_USE_PLATFORM_ANDROID_KHR
2979
2980
    // ---- VK_AMDX_shader_enqueue extension commands
2981
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2982
0
    if (!strcmp(name, "CreateExecutionGraphPipelinesAMDX")) return (void *)table->CreateExecutionGraphPipelinesAMDX;
2983
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2984
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2985
0
    if (!strcmp(name, "GetExecutionGraphPipelineScratchSizeAMDX")) return (void *)table->GetExecutionGraphPipelineScratchSizeAMDX;
2986
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2987
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2988
0
    if (!strcmp(name, "GetExecutionGraphPipelineNodeIndexAMDX")) return (void *)table->GetExecutionGraphPipelineNodeIndexAMDX;
2989
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2990
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2991
0
    if (!strcmp(name, "CmdInitializeGraphScratchMemoryAMDX")) return (void *)table->CmdInitializeGraphScratchMemoryAMDX;
2992
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2993
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2994
0
    if (!strcmp(name, "CmdDispatchGraphAMDX")) return (void *)table->CmdDispatchGraphAMDX;
2995
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2996
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2997
0
    if (!strcmp(name, "CmdDispatchGraphIndirectAMDX")) return (void *)table->CmdDispatchGraphIndirectAMDX;
2998
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2999
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3000
0
    if (!strcmp(name, "CmdDispatchGraphIndirectCountAMDX")) return (void *)table->CmdDispatchGraphIndirectCountAMDX;
3001
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3002
3003
    // ---- VK_EXT_descriptor_heap extension commands
3004
0
    if (!strcmp(name, "WriteSamplerDescriptorsEXT")) return (void *)table->WriteSamplerDescriptorsEXT;
3005
0
    if (!strcmp(name, "WriteResourceDescriptorsEXT")) return (void *)table->WriteResourceDescriptorsEXT;
3006
0
    if (!strcmp(name, "CmdBindSamplerHeapEXT")) return (void *)table->CmdBindSamplerHeapEXT;
3007
0
    if (!strcmp(name, "CmdBindResourceHeapEXT")) return (void *)table->CmdBindResourceHeapEXT;
3008
0
    if (!strcmp(name, "CmdPushDataEXT")) return (void *)table->CmdPushDataEXT;
3009
0
    if (!strcmp(name, "GetImageOpaqueCaptureDataEXT")) return (void *)table->GetImageOpaqueCaptureDataEXT;
3010
0
    if (!strcmp(name, "RegisterCustomBorderColorEXT")) return (void *)table->RegisterCustomBorderColorEXT;
3011
0
    if (!strcmp(name, "UnregisterCustomBorderColorEXT")) return (void *)table->UnregisterCustomBorderColorEXT;
3012
0
    if (!strcmp(name, "GetTensorOpaqueCaptureDataARM")) return (void *)table->GetTensorOpaqueCaptureDataARM;
3013
3014
    // ---- VK_EXT_sample_locations extension commands
3015
0
    if (!strcmp(name, "CmdSetSampleLocationsEXT")) return (void *)table->CmdSetSampleLocationsEXT;
3016
3017
    // ---- VK_EXT_image_drm_format_modifier extension commands
3018
0
    if (!strcmp(name, "GetImageDrmFormatModifierPropertiesEXT")) return (void *)table->GetImageDrmFormatModifierPropertiesEXT;
3019
3020
    // ---- VK_EXT_validation_cache extension commands
3021
0
    if (!strcmp(name, "CreateValidationCacheEXT")) return (void *)table->CreateValidationCacheEXT;
3022
0
    if (!strcmp(name, "DestroyValidationCacheEXT")) return (void *)table->DestroyValidationCacheEXT;
3023
0
    if (!strcmp(name, "MergeValidationCachesEXT")) return (void *)table->MergeValidationCachesEXT;
3024
0
    if (!strcmp(name, "GetValidationCacheDataEXT")) return (void *)table->GetValidationCacheDataEXT;
3025
3026
    // ---- VK_NV_shading_rate_image extension commands
3027
0
    if (!strcmp(name, "CmdBindShadingRateImageNV")) return (void *)table->CmdBindShadingRateImageNV;
3028
0
    if (!strcmp(name, "CmdSetViewportShadingRatePaletteNV")) return (void *)table->CmdSetViewportShadingRatePaletteNV;
3029
0
    if (!strcmp(name, "CmdSetCoarseSampleOrderNV")) return (void *)table->CmdSetCoarseSampleOrderNV;
3030
3031
    // ---- VK_NV_ray_tracing extension commands
3032
0
    if (!strcmp(name, "CreateAccelerationStructureNV")) return (void *)table->CreateAccelerationStructureNV;
3033
0
    if (!strcmp(name, "DestroyAccelerationStructureNV")) return (void *)table->DestroyAccelerationStructureNV;
3034
0
    if (!strcmp(name, "GetAccelerationStructureMemoryRequirementsNV")) return (void *)table->GetAccelerationStructureMemoryRequirementsNV;
3035
0
    if (!strcmp(name, "BindAccelerationStructureMemoryNV")) return (void *)table->BindAccelerationStructureMemoryNV;
3036
0
    if (!strcmp(name, "CmdBuildAccelerationStructureNV")) return (void *)table->CmdBuildAccelerationStructureNV;
3037
0
    if (!strcmp(name, "CmdCopyAccelerationStructureNV")) return (void *)table->CmdCopyAccelerationStructureNV;
3038
0
    if (!strcmp(name, "CmdTraceRaysNV")) return (void *)table->CmdTraceRaysNV;
3039
0
    if (!strcmp(name, "CreateRayTracingPipelinesNV")) return (void *)table->CreateRayTracingPipelinesNV;
3040
3041
    // ---- VK_KHR_ray_tracing_pipeline extension commands
3042
0
    if (!strcmp(name, "GetRayTracingShaderGroupHandlesKHR")) return (void *)table->GetRayTracingShaderGroupHandlesKHR;
3043
3044
    // ---- VK_NV_ray_tracing extension commands
3045
0
    if (!strcmp(name, "GetRayTracingShaderGroupHandlesNV")) return (void *)table->GetRayTracingShaderGroupHandlesNV;
3046
0
    if (!strcmp(name, "GetAccelerationStructureHandleNV")) return (void *)table->GetAccelerationStructureHandleNV;
3047
0
    if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesNV")) return (void *)table->CmdWriteAccelerationStructuresPropertiesNV;
3048
0
    if (!strcmp(name, "CompileDeferredNV")) return (void *)table->CompileDeferredNV;
3049
3050
    // ---- VK_EXT_external_memory_host extension commands
3051
0
    if (!strcmp(name, "GetMemoryHostPointerPropertiesEXT")) return (void *)table->GetMemoryHostPointerPropertiesEXT;
3052
3053
    // ---- VK_AMD_buffer_marker extension commands
3054
0
    if (!strcmp(name, "CmdWriteBufferMarkerAMD")) return (void *)table->CmdWriteBufferMarkerAMD;
3055
0
    if (!strcmp(name, "CmdWriteBufferMarker2AMD")) return (void *)table->CmdWriteBufferMarker2AMD;
3056
3057
    // ---- VK_EXT_calibrated_timestamps extension commands
3058
0
    if (!strcmp(name, "GetCalibratedTimestampsEXT")) return (void *)table->GetCalibratedTimestampsEXT;
3059
3060
    // ---- VK_NV_mesh_shader extension commands
3061
0
    if (!strcmp(name, "CmdDrawMeshTasksNV")) return (void *)table->CmdDrawMeshTasksNV;
3062
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectNV")) return (void *)table->CmdDrawMeshTasksIndirectNV;
3063
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectCountNV")) return (void *)table->CmdDrawMeshTasksIndirectCountNV;
3064
3065
    // ---- VK_NV_scissor_exclusive extension commands
3066
0
    if (!strcmp(name, "CmdSetExclusiveScissorEnableNV")) return (void *)table->CmdSetExclusiveScissorEnableNV;
3067
0
    if (!strcmp(name, "CmdSetExclusiveScissorNV")) return (void *)table->CmdSetExclusiveScissorNV;
3068
3069
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
3070
0
    if (!strcmp(name, "CmdSetCheckpointNV")) return (void *)table->CmdSetCheckpointNV;
3071
0
    if (!strcmp(name, "GetQueueCheckpointDataNV")) return (void *)table->GetQueueCheckpointDataNV;
3072
0
    if (!strcmp(name, "GetQueueCheckpointData2NV")) return (void *)table->GetQueueCheckpointData2NV;
3073
3074
    // ---- VK_EXT_present_timing extension commands
3075
0
    if (!strcmp(name, "SetSwapchainPresentTimingQueueSizeEXT")) return (void *)table->SetSwapchainPresentTimingQueueSizeEXT;
3076
0
    if (!strcmp(name, "GetSwapchainTimingPropertiesEXT")) return (void *)table->GetSwapchainTimingPropertiesEXT;
3077
0
    if (!strcmp(name, "GetSwapchainTimeDomainPropertiesEXT")) return (void *)table->GetSwapchainTimeDomainPropertiesEXT;
3078
0
    if (!strcmp(name, "GetPastPresentationTimingEXT")) return (void *)table->GetPastPresentationTimingEXT;
3079
3080
    // ---- VK_INTEL_performance_query extension commands
3081
0
    if (!strcmp(name, "InitializePerformanceApiINTEL")) return (void *)table->InitializePerformanceApiINTEL;
3082
0
    if (!strcmp(name, "UninitializePerformanceApiINTEL")) return (void *)table->UninitializePerformanceApiINTEL;
3083
0
    if (!strcmp(name, "CmdSetPerformanceMarkerINTEL")) return (void *)table->CmdSetPerformanceMarkerINTEL;
3084
0
    if (!strcmp(name, "CmdSetPerformanceStreamMarkerINTEL")) return (void *)table->CmdSetPerformanceStreamMarkerINTEL;
3085
0
    if (!strcmp(name, "CmdSetPerformanceOverrideINTEL")) return (void *)table->CmdSetPerformanceOverrideINTEL;
3086
0
    if (!strcmp(name, "AcquirePerformanceConfigurationINTEL")) return (void *)table->AcquirePerformanceConfigurationINTEL;
3087
0
    if (!strcmp(name, "ReleasePerformanceConfigurationINTEL")) return (void *)table->ReleasePerformanceConfigurationINTEL;
3088
0
    if (!strcmp(name, "QueueSetPerformanceConfigurationINTEL")) return (void *)table->QueueSetPerformanceConfigurationINTEL;
3089
0
    if (!strcmp(name, "GetPerformanceParameterINTEL")) return (void *)table->GetPerformanceParameterINTEL;
3090
3091
    // ---- VK_AMD_display_native_hdr extension commands
3092
0
    if (!strcmp(name, "SetLocalDimmingAMD")) return (void *)table->SetLocalDimmingAMD;
3093
3094
    // ---- VK_EXT_buffer_device_address extension commands
3095
0
    if (!strcmp(name, "GetBufferDeviceAddressEXT")) return (void *)table->GetBufferDeviceAddressEXT;
3096
3097
    // ---- VK_EXT_full_screen_exclusive extension commands
3098
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3099
    if (!strcmp(name, "AcquireFullScreenExclusiveModeEXT")) return (void *)table->AcquireFullScreenExclusiveModeEXT;
3100
#endif // VK_USE_PLATFORM_WIN32_KHR
3101
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3102
    if (!strcmp(name, "ReleaseFullScreenExclusiveModeEXT")) return (void *)table->ReleaseFullScreenExclusiveModeEXT;
3103
#endif // VK_USE_PLATFORM_WIN32_KHR
3104
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3105
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) return (void *)table->GetDeviceGroupSurfacePresentModes2EXT;
3106
#endif // VK_USE_PLATFORM_WIN32_KHR
3107
3108
    // ---- VK_EXT_line_rasterization extension commands
3109
0
    if (!strcmp(name, "CmdSetLineStippleEXT")) return (void *)table->CmdSetLineStippleEXT;
3110
3111
    // ---- VK_EXT_host_query_reset extension commands
3112
0
    if (!strcmp(name, "ResetQueryPoolEXT")) return (void *)table->ResetQueryPoolEXT;
3113
3114
    // ---- VK_EXT_extended_dynamic_state extension commands
3115
0
    if (!strcmp(name, "CmdSetCullModeEXT")) return (void *)table->CmdSetCullModeEXT;
3116
0
    if (!strcmp(name, "CmdSetFrontFaceEXT")) return (void *)table->CmdSetFrontFaceEXT;
3117
0
    if (!strcmp(name, "CmdSetPrimitiveTopologyEXT")) return (void *)table->CmdSetPrimitiveTopologyEXT;
3118
0
    if (!strcmp(name, "CmdSetViewportWithCountEXT")) return (void *)table->CmdSetViewportWithCountEXT;
3119
0
    if (!strcmp(name, "CmdSetScissorWithCountEXT")) return (void *)table->CmdSetScissorWithCountEXT;
3120
0
    if (!strcmp(name, "CmdBindVertexBuffers2EXT")) return (void *)table->CmdBindVertexBuffers2EXT;
3121
0
    if (!strcmp(name, "CmdSetDepthTestEnableEXT")) return (void *)table->CmdSetDepthTestEnableEXT;
3122
0
    if (!strcmp(name, "CmdSetDepthWriteEnableEXT")) return (void *)table->CmdSetDepthWriteEnableEXT;
3123
0
    if (!strcmp(name, "CmdSetDepthCompareOpEXT")) return (void *)table->CmdSetDepthCompareOpEXT;
3124
0
    if (!strcmp(name, "CmdSetDepthBoundsTestEnableEXT")) return (void *)table->CmdSetDepthBoundsTestEnableEXT;
3125
0
    if (!strcmp(name, "CmdSetStencilTestEnableEXT")) return (void *)table->CmdSetStencilTestEnableEXT;
3126
0
    if (!strcmp(name, "CmdSetStencilOpEXT")) return (void *)table->CmdSetStencilOpEXT;
3127
3128
    // ---- VK_EXT_host_image_copy extension commands
3129
0
    if (!strcmp(name, "CopyMemoryToImageEXT")) return (void *)table->CopyMemoryToImageEXT;
3130
0
    if (!strcmp(name, "CopyImageToMemoryEXT")) return (void *)table->CopyImageToMemoryEXT;
3131
0
    if (!strcmp(name, "CopyImageToImageEXT")) return (void *)table->CopyImageToImageEXT;
3132
0
    if (!strcmp(name, "TransitionImageLayoutEXT")) return (void *)table->TransitionImageLayoutEXT;
3133
0
    if (!strcmp(name, "GetImageSubresourceLayout2EXT")) return (void *)table->GetImageSubresourceLayout2EXT;
3134
3135
    // ---- VK_EXT_swapchain_maintenance1 extension commands
3136
0
    if (!strcmp(name, "ReleaseSwapchainImagesEXT")) return (void *)table->ReleaseSwapchainImagesEXT;
3137
3138
    // ---- VK_NV_device_generated_commands extension commands
3139
0
    if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsNV")) return (void *)table->GetGeneratedCommandsMemoryRequirementsNV;
3140
0
    if (!strcmp(name, "CmdPreprocessGeneratedCommandsNV")) return (void *)table->CmdPreprocessGeneratedCommandsNV;
3141
0
    if (!strcmp(name, "CmdExecuteGeneratedCommandsNV")) return (void *)table->CmdExecuteGeneratedCommandsNV;
3142
0
    if (!strcmp(name, "CmdBindPipelineShaderGroupNV")) return (void *)table->CmdBindPipelineShaderGroupNV;
3143
0
    if (!strcmp(name, "CreateIndirectCommandsLayoutNV")) return (void *)table->CreateIndirectCommandsLayoutNV;
3144
0
    if (!strcmp(name, "DestroyIndirectCommandsLayoutNV")) return (void *)table->DestroyIndirectCommandsLayoutNV;
3145
3146
    // ---- VK_EXT_depth_bias_control extension commands
3147
0
    if (!strcmp(name, "CmdSetDepthBias2EXT")) return (void *)table->CmdSetDepthBias2EXT;
3148
3149
    // ---- VK_EXT_private_data extension commands
3150
0
    if (!strcmp(name, "CreatePrivateDataSlotEXT")) return (void *)table->CreatePrivateDataSlotEXT;
3151
0
    if (!strcmp(name, "DestroyPrivateDataSlotEXT")) return (void *)table->DestroyPrivateDataSlotEXT;
3152
0
    if (!strcmp(name, "SetPrivateDataEXT")) return (void *)table->SetPrivateDataEXT;
3153
0
    if (!strcmp(name, "GetPrivateDataEXT")) return (void *)table->GetPrivateDataEXT;
3154
3155
    // ---- VK_NV_cuda_kernel_launch extension commands
3156
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3157
0
    if (!strcmp(name, "CreateCudaModuleNV")) return (void *)table->CreateCudaModuleNV;
3158
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3159
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3160
0
    if (!strcmp(name, "GetCudaModuleCacheNV")) return (void *)table->GetCudaModuleCacheNV;
3161
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3162
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3163
0
    if (!strcmp(name, "CreateCudaFunctionNV")) return (void *)table->CreateCudaFunctionNV;
3164
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3165
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3166
0
    if (!strcmp(name, "DestroyCudaModuleNV")) return (void *)table->DestroyCudaModuleNV;
3167
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3168
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3169
0
    if (!strcmp(name, "DestroyCudaFunctionNV")) return (void *)table->DestroyCudaFunctionNV;
3170
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3171
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3172
0
    if (!strcmp(name, "CmdCudaLaunchKernelNV")) return (void *)table->CmdCudaLaunchKernelNV;
3173
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3174
3175
    // ---- VK_QCOM_tile_shading extension commands
3176
0
    if (!strcmp(name, "CmdDispatchTileQCOM")) return (void *)table->CmdDispatchTileQCOM;
3177
0
    if (!strcmp(name, "CmdBeginPerTileExecutionQCOM")) return (void *)table->CmdBeginPerTileExecutionQCOM;
3178
0
    if (!strcmp(name, "CmdEndPerTileExecutionQCOM")) return (void *)table->CmdEndPerTileExecutionQCOM;
3179
3180
    // ---- VK_EXT_metal_objects extension commands
3181
#if defined(VK_USE_PLATFORM_METAL_EXT)
3182
    if (!strcmp(name, "ExportMetalObjectsEXT")) return (void *)table->ExportMetalObjectsEXT;
3183
#endif // VK_USE_PLATFORM_METAL_EXT
3184
3185
    // ---- VK_EXT_descriptor_buffer extension commands
3186
0
    if (!strcmp(name, "GetDescriptorSetLayoutSizeEXT")) return (void *)table->GetDescriptorSetLayoutSizeEXT;
3187
0
    if (!strcmp(name, "GetDescriptorSetLayoutBindingOffsetEXT")) return (void *)table->GetDescriptorSetLayoutBindingOffsetEXT;
3188
0
    if (!strcmp(name, "GetDescriptorEXT")) return (void *)table->GetDescriptorEXT;
3189
0
    if (!strcmp(name, "CmdBindDescriptorBuffersEXT")) return (void *)table->CmdBindDescriptorBuffersEXT;
3190
0
    if (!strcmp(name, "CmdSetDescriptorBufferOffsetsEXT")) return (void *)table->CmdSetDescriptorBufferOffsetsEXT;
3191
0
    if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplersEXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplersEXT;
3192
0
    if (!strcmp(name, "GetBufferOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetBufferOpaqueCaptureDescriptorDataEXT;
3193
0
    if (!strcmp(name, "GetImageOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageOpaqueCaptureDescriptorDataEXT;
3194
0
    if (!strcmp(name, "GetImageViewOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageViewOpaqueCaptureDescriptorDataEXT;
3195
0
    if (!strcmp(name, "GetSamplerOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetSamplerOpaqueCaptureDescriptorDataEXT;
3196
0
    if (!strcmp(name, "GetAccelerationStructureOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
3197
3198
    // ---- VK_NV_fragment_shading_rate_enums extension commands
3199
0
    if (!strcmp(name, "CmdSetFragmentShadingRateEnumNV")) return (void *)table->CmdSetFragmentShadingRateEnumNV;
3200
3201
    // ---- VK_EXT_device_fault extension commands
3202
0
    if (!strcmp(name, "GetDeviceFaultInfoEXT")) return (void *)table->GetDeviceFaultInfoEXT;
3203
3204
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
3205
0
    if (!strcmp(name, "CmdSetVertexInputEXT")) return (void *)table->CmdSetVertexInputEXT;
3206
3207
    // ---- VK_FUCHSIA_external_memory extension commands
3208
#if defined(VK_USE_PLATFORM_FUCHSIA)
3209
    if (!strcmp(name, "GetMemoryZirconHandleFUCHSIA")) return (void *)table->GetMemoryZirconHandleFUCHSIA;
3210
#endif // VK_USE_PLATFORM_FUCHSIA
3211
#if defined(VK_USE_PLATFORM_FUCHSIA)
3212
    if (!strcmp(name, "GetMemoryZirconHandlePropertiesFUCHSIA")) return (void *)table->GetMemoryZirconHandlePropertiesFUCHSIA;
3213
#endif // VK_USE_PLATFORM_FUCHSIA
3214
3215
    // ---- VK_FUCHSIA_external_semaphore extension commands
3216
#if defined(VK_USE_PLATFORM_FUCHSIA)
3217
    if (!strcmp(name, "ImportSemaphoreZirconHandleFUCHSIA")) return (void *)table->ImportSemaphoreZirconHandleFUCHSIA;
3218
#endif // VK_USE_PLATFORM_FUCHSIA
3219
#if defined(VK_USE_PLATFORM_FUCHSIA)
3220
    if (!strcmp(name, "GetSemaphoreZirconHandleFUCHSIA")) return (void *)table->GetSemaphoreZirconHandleFUCHSIA;
3221
#endif // VK_USE_PLATFORM_FUCHSIA
3222
3223
    // ---- VK_FUCHSIA_buffer_collection extension commands
3224
#if defined(VK_USE_PLATFORM_FUCHSIA)
3225
    if (!strcmp(name, "CreateBufferCollectionFUCHSIA")) return (void *)table->CreateBufferCollectionFUCHSIA;
3226
#endif // VK_USE_PLATFORM_FUCHSIA
3227
#if defined(VK_USE_PLATFORM_FUCHSIA)
3228
    if (!strcmp(name, "SetBufferCollectionImageConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionImageConstraintsFUCHSIA;
3229
#endif // VK_USE_PLATFORM_FUCHSIA
3230
#if defined(VK_USE_PLATFORM_FUCHSIA)
3231
    if (!strcmp(name, "SetBufferCollectionBufferConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionBufferConstraintsFUCHSIA;
3232
#endif // VK_USE_PLATFORM_FUCHSIA
3233
#if defined(VK_USE_PLATFORM_FUCHSIA)
3234
    if (!strcmp(name, "DestroyBufferCollectionFUCHSIA")) return (void *)table->DestroyBufferCollectionFUCHSIA;
3235
#endif // VK_USE_PLATFORM_FUCHSIA
3236
#if defined(VK_USE_PLATFORM_FUCHSIA)
3237
    if (!strcmp(name, "GetBufferCollectionPropertiesFUCHSIA")) return (void *)table->GetBufferCollectionPropertiesFUCHSIA;
3238
#endif // VK_USE_PLATFORM_FUCHSIA
3239
3240
    // ---- VK_HUAWEI_subpass_shading extension commands
3241
0
    if (!strcmp(name, "GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) return (void *)table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
3242
0
    if (!strcmp(name, "CmdSubpassShadingHUAWEI")) return (void *)table->CmdSubpassShadingHUAWEI;
3243
3244
    // ---- VK_HUAWEI_invocation_mask extension commands
3245
0
    if (!strcmp(name, "CmdBindInvocationMaskHUAWEI")) return (void *)table->CmdBindInvocationMaskHUAWEI;
3246
3247
    // ---- VK_NV_external_memory_rdma extension commands
3248
0
    if (!strcmp(name, "GetMemoryRemoteAddressNV")) return (void *)table->GetMemoryRemoteAddressNV;
3249
3250
    // ---- VK_EXT_pipeline_properties extension commands
3251
0
    if (!strcmp(name, "GetPipelinePropertiesEXT")) return (void *)table->GetPipelinePropertiesEXT;
3252
3253
    // ---- VK_EXT_extended_dynamic_state2 extension commands
3254
0
    if (!strcmp(name, "CmdSetPatchControlPointsEXT")) return (void *)table->CmdSetPatchControlPointsEXT;
3255
0
    if (!strcmp(name, "CmdSetRasterizerDiscardEnableEXT")) return (void *)table->CmdSetRasterizerDiscardEnableEXT;
3256
0
    if (!strcmp(name, "CmdSetDepthBiasEnableEXT")) return (void *)table->CmdSetDepthBiasEnableEXT;
3257
0
    if (!strcmp(name, "CmdSetLogicOpEXT")) return (void *)table->CmdSetLogicOpEXT;
3258
0
    if (!strcmp(name, "CmdSetPrimitiveRestartEnableEXT")) return (void *)table->CmdSetPrimitiveRestartEnableEXT;
3259
3260
    // ---- VK_EXT_color_write_enable extension commands
3261
0
    if (!strcmp(name, "CmdSetColorWriteEnableEXT")) return (void *)table->CmdSetColorWriteEnableEXT;
3262
3263
    // ---- VK_EXT_multi_draw extension commands
3264
0
    if (!strcmp(name, "CmdDrawMultiEXT")) return (void *)table->CmdDrawMultiEXT;
3265
0
    if (!strcmp(name, "CmdDrawMultiIndexedEXT")) return (void *)table->CmdDrawMultiIndexedEXT;
3266
3267
    // ---- VK_EXT_opacity_micromap extension commands
3268
0
    if (!strcmp(name, "CreateMicromapEXT")) return (void *)table->CreateMicromapEXT;
3269
0
    if (!strcmp(name, "DestroyMicromapEXT")) return (void *)table->DestroyMicromapEXT;
3270
0
    if (!strcmp(name, "CmdBuildMicromapsEXT")) return (void *)table->CmdBuildMicromapsEXT;
3271
0
    if (!strcmp(name, "BuildMicromapsEXT")) return (void *)table->BuildMicromapsEXT;
3272
0
    if (!strcmp(name, "CopyMicromapEXT")) return (void *)table->CopyMicromapEXT;
3273
0
    if (!strcmp(name, "CopyMicromapToMemoryEXT")) return (void *)table->CopyMicromapToMemoryEXT;
3274
0
    if (!strcmp(name, "CopyMemoryToMicromapEXT")) return (void *)table->CopyMemoryToMicromapEXT;
3275
0
    if (!strcmp(name, "WriteMicromapsPropertiesEXT")) return (void *)table->WriteMicromapsPropertiesEXT;
3276
0
    if (!strcmp(name, "CmdCopyMicromapEXT")) return (void *)table->CmdCopyMicromapEXT;
3277
0
    if (!strcmp(name, "CmdCopyMicromapToMemoryEXT")) return (void *)table->CmdCopyMicromapToMemoryEXT;
3278
0
    if (!strcmp(name, "CmdCopyMemoryToMicromapEXT")) return (void *)table->CmdCopyMemoryToMicromapEXT;
3279
0
    if (!strcmp(name, "CmdWriteMicromapsPropertiesEXT")) return (void *)table->CmdWriteMicromapsPropertiesEXT;
3280
0
    if (!strcmp(name, "GetDeviceMicromapCompatibilityEXT")) return (void *)table->GetDeviceMicromapCompatibilityEXT;
3281
0
    if (!strcmp(name, "GetMicromapBuildSizesEXT")) return (void *)table->GetMicromapBuildSizesEXT;
3282
3283
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
3284
0
    if (!strcmp(name, "CmdDrawClusterHUAWEI")) return (void *)table->CmdDrawClusterHUAWEI;
3285
0
    if (!strcmp(name, "CmdDrawClusterIndirectHUAWEI")) return (void *)table->CmdDrawClusterIndirectHUAWEI;
3286
3287
    // ---- VK_EXT_pageable_device_local_memory extension commands
3288
0
    if (!strcmp(name, "SetDeviceMemoryPriorityEXT")) return (void *)table->SetDeviceMemoryPriorityEXT;
3289
3290
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
3291
0
    if (!strcmp(name, "GetDescriptorSetLayoutHostMappingInfoVALVE")) return (void *)table->GetDescriptorSetLayoutHostMappingInfoVALVE;
3292
0
    if (!strcmp(name, "GetDescriptorSetHostMappingVALVE")) return (void *)table->GetDescriptorSetHostMappingVALVE;
3293
3294
    // ---- VK_NV_copy_memory_indirect extension commands
3295
0
    if (!strcmp(name, "CmdCopyMemoryIndirectNV")) return (void *)table->CmdCopyMemoryIndirectNV;
3296
0
    if (!strcmp(name, "CmdCopyMemoryToImageIndirectNV")) return (void *)table->CmdCopyMemoryToImageIndirectNV;
3297
3298
    // ---- VK_NV_memory_decompression extension commands
3299
0
    if (!strcmp(name, "CmdDecompressMemoryNV")) return (void *)table->CmdDecompressMemoryNV;
3300
0
    if (!strcmp(name, "CmdDecompressMemoryIndirectCountNV")) return (void *)table->CmdDecompressMemoryIndirectCountNV;
3301
3302
    // ---- VK_NV_device_generated_commands_compute extension commands
3303
0
    if (!strcmp(name, "GetPipelineIndirectMemoryRequirementsNV")) return (void *)table->GetPipelineIndirectMemoryRequirementsNV;
3304
0
    if (!strcmp(name, "CmdUpdatePipelineIndirectBufferNV")) return (void *)table->CmdUpdatePipelineIndirectBufferNV;
3305
0
    if (!strcmp(name, "GetPipelineIndirectDeviceAddressNV")) return (void *)table->GetPipelineIndirectDeviceAddressNV;
3306
3307
    // ---- VK_OHOS_external_memory extension commands
3308
#if defined(VK_USE_PLATFORM_OHOS)
3309
    if (!strcmp(name, "GetNativeBufferPropertiesOHOS")) return (void *)table->GetNativeBufferPropertiesOHOS;
3310
#endif // VK_USE_PLATFORM_OHOS
3311
#if defined(VK_USE_PLATFORM_OHOS)
3312
    if (!strcmp(name, "GetMemoryNativeBufferOHOS")) return (void *)table->GetMemoryNativeBufferOHOS;
3313
#endif // VK_USE_PLATFORM_OHOS
3314
3315
    // ---- VK_EXT_extended_dynamic_state3 extension commands
3316
0
    if (!strcmp(name, "CmdSetDepthClampEnableEXT")) return (void *)table->CmdSetDepthClampEnableEXT;
3317
0
    if (!strcmp(name, "CmdSetPolygonModeEXT")) return (void *)table->CmdSetPolygonModeEXT;
3318
0
    if (!strcmp(name, "CmdSetRasterizationSamplesEXT")) return (void *)table->CmdSetRasterizationSamplesEXT;
3319
0
    if (!strcmp(name, "CmdSetSampleMaskEXT")) return (void *)table->CmdSetSampleMaskEXT;
3320
0
    if (!strcmp(name, "CmdSetAlphaToCoverageEnableEXT")) return (void *)table->CmdSetAlphaToCoverageEnableEXT;
3321
0
    if (!strcmp(name, "CmdSetAlphaToOneEnableEXT")) return (void *)table->CmdSetAlphaToOneEnableEXT;
3322
0
    if (!strcmp(name, "CmdSetLogicOpEnableEXT")) return (void *)table->CmdSetLogicOpEnableEXT;
3323
0
    if (!strcmp(name, "CmdSetColorBlendEnableEXT")) return (void *)table->CmdSetColorBlendEnableEXT;
3324
0
    if (!strcmp(name, "CmdSetColorBlendEquationEXT")) return (void *)table->CmdSetColorBlendEquationEXT;
3325
0
    if (!strcmp(name, "CmdSetColorWriteMaskEXT")) return (void *)table->CmdSetColorWriteMaskEXT;
3326
0
    if (!strcmp(name, "CmdSetTessellationDomainOriginEXT")) return (void *)table->CmdSetTessellationDomainOriginEXT;
3327
0
    if (!strcmp(name, "CmdSetRasterizationStreamEXT")) return (void *)table->CmdSetRasterizationStreamEXT;
3328
0
    if (!strcmp(name, "CmdSetConservativeRasterizationModeEXT")) return (void *)table->CmdSetConservativeRasterizationModeEXT;
3329
0
    if (!strcmp(name, "CmdSetExtraPrimitiveOverestimationSizeEXT")) return (void *)table->CmdSetExtraPrimitiveOverestimationSizeEXT;
3330
0
    if (!strcmp(name, "CmdSetDepthClipEnableEXT")) return (void *)table->CmdSetDepthClipEnableEXT;
3331
0
    if (!strcmp(name, "CmdSetSampleLocationsEnableEXT")) return (void *)table->CmdSetSampleLocationsEnableEXT;
3332
0
    if (!strcmp(name, "CmdSetColorBlendAdvancedEXT")) return (void *)table->CmdSetColorBlendAdvancedEXT;
3333
0
    if (!strcmp(name, "CmdSetProvokingVertexModeEXT")) return (void *)table->CmdSetProvokingVertexModeEXT;
3334
0
    if (!strcmp(name, "CmdSetLineRasterizationModeEXT")) return (void *)table->CmdSetLineRasterizationModeEXT;
3335
0
    if (!strcmp(name, "CmdSetLineStippleEnableEXT")) return (void *)table->CmdSetLineStippleEnableEXT;
3336
0
    if (!strcmp(name, "CmdSetDepthClipNegativeOneToOneEXT")) return (void *)table->CmdSetDepthClipNegativeOneToOneEXT;
3337
0
    if (!strcmp(name, "CmdSetViewportWScalingEnableNV")) return (void *)table->CmdSetViewportWScalingEnableNV;
3338
0
    if (!strcmp(name, "CmdSetViewportSwizzleNV")) return (void *)table->CmdSetViewportSwizzleNV;
3339
0
    if (!strcmp(name, "CmdSetCoverageToColorEnableNV")) return (void *)table->CmdSetCoverageToColorEnableNV;
3340
0
    if (!strcmp(name, "CmdSetCoverageToColorLocationNV")) return (void *)table->CmdSetCoverageToColorLocationNV;
3341
0
    if (!strcmp(name, "CmdSetCoverageModulationModeNV")) return (void *)table->CmdSetCoverageModulationModeNV;
3342
0
    if (!strcmp(name, "CmdSetCoverageModulationTableEnableNV")) return (void *)table->CmdSetCoverageModulationTableEnableNV;
3343
0
    if (!strcmp(name, "CmdSetCoverageModulationTableNV")) return (void *)table->CmdSetCoverageModulationTableNV;
3344
0
    if (!strcmp(name, "CmdSetShadingRateImageEnableNV")) return (void *)table->CmdSetShadingRateImageEnableNV;
3345
0
    if (!strcmp(name, "CmdSetRepresentativeFragmentTestEnableNV")) return (void *)table->CmdSetRepresentativeFragmentTestEnableNV;
3346
0
    if (!strcmp(name, "CmdSetCoverageReductionModeNV")) return (void *)table->CmdSetCoverageReductionModeNV;
3347
3348
    // ---- VK_ARM_tensors extension commands
3349
0
    if (!strcmp(name, "CreateTensorARM")) return (void *)table->CreateTensorARM;
3350
0
    if (!strcmp(name, "DestroyTensorARM")) return (void *)table->DestroyTensorARM;
3351
0
    if (!strcmp(name, "CreateTensorViewARM")) return (void *)table->CreateTensorViewARM;
3352
0
    if (!strcmp(name, "DestroyTensorViewARM")) return (void *)table->DestroyTensorViewARM;
3353
0
    if (!strcmp(name, "GetTensorMemoryRequirementsARM")) return (void *)table->GetTensorMemoryRequirementsARM;
3354
0
    if (!strcmp(name, "BindTensorMemoryARM")) return (void *)table->BindTensorMemoryARM;
3355
0
    if (!strcmp(name, "GetDeviceTensorMemoryRequirementsARM")) return (void *)table->GetDeviceTensorMemoryRequirementsARM;
3356
0
    if (!strcmp(name, "CmdCopyTensorARM")) return (void *)table->CmdCopyTensorARM;
3357
0
    if (!strcmp(name, "GetTensorOpaqueCaptureDescriptorDataARM")) return (void *)table->GetTensorOpaqueCaptureDescriptorDataARM;
3358
0
    if (!strcmp(name, "GetTensorViewOpaqueCaptureDescriptorDataARM")) return (void *)table->GetTensorViewOpaqueCaptureDescriptorDataARM;
3359
3360
    // ---- VK_EXT_shader_module_identifier extension commands
3361
0
    if (!strcmp(name, "GetShaderModuleIdentifierEXT")) return (void *)table->GetShaderModuleIdentifierEXT;
3362
0
    if (!strcmp(name, "GetShaderModuleCreateInfoIdentifierEXT")) return (void *)table->GetShaderModuleCreateInfoIdentifierEXT;
3363
3364
    // ---- VK_NV_optical_flow extension commands
3365
0
    if (!strcmp(name, "CreateOpticalFlowSessionNV")) return (void *)table->CreateOpticalFlowSessionNV;
3366
0
    if (!strcmp(name, "DestroyOpticalFlowSessionNV")) return (void *)table->DestroyOpticalFlowSessionNV;
3367
0
    if (!strcmp(name, "BindOpticalFlowSessionImageNV")) return (void *)table->BindOpticalFlowSessionImageNV;
3368
0
    if (!strcmp(name, "CmdOpticalFlowExecuteNV")) return (void *)table->CmdOpticalFlowExecuteNV;
3369
3370
    // ---- VK_AMD_anti_lag extension commands
3371
0
    if (!strcmp(name, "AntiLagUpdateAMD")) return (void *)table->AntiLagUpdateAMD;
3372
3373
    // ---- VK_EXT_shader_object extension commands
3374
0
    if (!strcmp(name, "CreateShadersEXT")) return (void *)table->CreateShadersEXT;
3375
0
    if (!strcmp(name, "DestroyShaderEXT")) return (void *)table->DestroyShaderEXT;
3376
0
    if (!strcmp(name, "GetShaderBinaryDataEXT")) return (void *)table->GetShaderBinaryDataEXT;
3377
0
    if (!strcmp(name, "CmdBindShadersEXT")) return (void *)table->CmdBindShadersEXT;
3378
0
    if (!strcmp(name, "CmdSetDepthClampRangeEXT")) return (void *)table->CmdSetDepthClampRangeEXT;
3379
3380
    // ---- VK_QCOM_tile_properties extension commands
3381
0
    if (!strcmp(name, "GetFramebufferTilePropertiesQCOM")) return (void *)table->GetFramebufferTilePropertiesQCOM;
3382
0
    if (!strcmp(name, "GetDynamicRenderingTilePropertiesQCOM")) return (void *)table->GetDynamicRenderingTilePropertiesQCOM;
3383
3384
    // ---- VK_NV_cooperative_vector extension commands
3385
0
    if (!strcmp(name, "ConvertCooperativeVectorMatrixNV")) return (void *)table->ConvertCooperativeVectorMatrixNV;
3386
0
    if (!strcmp(name, "CmdConvertCooperativeVectorMatrixNV")) return (void *)table->CmdConvertCooperativeVectorMatrixNV;
3387
3388
    // ---- VK_NV_low_latency2 extension commands
3389
0
    if (!strcmp(name, "SetLatencySleepModeNV")) return (void *)table->SetLatencySleepModeNV;
3390
0
    if (!strcmp(name, "LatencySleepNV")) return (void *)table->LatencySleepNV;
3391
0
    if (!strcmp(name, "SetLatencyMarkerNV")) return (void *)table->SetLatencyMarkerNV;
3392
0
    if (!strcmp(name, "GetLatencyTimingsNV")) return (void *)table->GetLatencyTimingsNV;
3393
0
    if (!strcmp(name, "QueueNotifyOutOfBandNV")) return (void *)table->QueueNotifyOutOfBandNV;
3394
3395
    // ---- VK_ARM_data_graph extension commands
3396
0
    if (!strcmp(name, "CreateDataGraphPipelinesARM")) return (void *)table->CreateDataGraphPipelinesARM;
3397
0
    if (!strcmp(name, "CreateDataGraphPipelineSessionARM")) return (void *)table->CreateDataGraphPipelineSessionARM;
3398
0
    if (!strcmp(name, "GetDataGraphPipelineSessionBindPointRequirementsARM")) return (void *)table->GetDataGraphPipelineSessionBindPointRequirementsARM;
3399
0
    if (!strcmp(name, "GetDataGraphPipelineSessionMemoryRequirementsARM")) return (void *)table->GetDataGraphPipelineSessionMemoryRequirementsARM;
3400
0
    if (!strcmp(name, "BindDataGraphPipelineSessionMemoryARM")) return (void *)table->BindDataGraphPipelineSessionMemoryARM;
3401
0
    if (!strcmp(name, "DestroyDataGraphPipelineSessionARM")) return (void *)table->DestroyDataGraphPipelineSessionARM;
3402
0
    if (!strcmp(name, "CmdDispatchDataGraphARM")) return (void *)table->CmdDispatchDataGraphARM;
3403
0
    if (!strcmp(name, "GetDataGraphPipelineAvailablePropertiesARM")) return (void *)table->GetDataGraphPipelineAvailablePropertiesARM;
3404
0
    if (!strcmp(name, "GetDataGraphPipelinePropertiesARM")) return (void *)table->GetDataGraphPipelinePropertiesARM;
3405
3406
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
3407
0
    if (!strcmp(name, "CmdSetAttachmentFeedbackLoopEnableEXT")) return (void *)table->CmdSetAttachmentFeedbackLoopEnableEXT;
3408
3409
    // ---- VK_QNX_external_memory_screen_buffer extension commands
3410
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3411
    if (!strcmp(name, "GetScreenBufferPropertiesQNX")) return (void *)table->GetScreenBufferPropertiesQNX;
3412
#endif // VK_USE_PLATFORM_SCREEN_QNX
3413
3414
    // ---- VK_QCOM_tile_memory_heap extension commands
3415
0
    if (!strcmp(name, "CmdBindTileMemoryQCOM")) return (void *)table->CmdBindTileMemoryQCOM;
3416
3417
    // ---- VK_EXT_memory_decompression extension commands
3418
0
    if (!strcmp(name, "CmdDecompressMemoryEXT")) return (void *)table->CmdDecompressMemoryEXT;
3419
0
    if (!strcmp(name, "CmdDecompressMemoryIndirectCountEXT")) return (void *)table->CmdDecompressMemoryIndirectCountEXT;
3420
3421
    // ---- VK_NV_external_compute_queue extension commands
3422
0
    if (!strcmp(name, "CreateExternalComputeQueueNV")) return (void *)table->CreateExternalComputeQueueNV;
3423
0
    if (!strcmp(name, "DestroyExternalComputeQueueNV")) return (void *)table->DestroyExternalComputeQueueNV;
3424
0
    if (!strcmp(name, "GetExternalComputeQueueDataNV")) return (void *)table->GetExternalComputeQueueDataNV;
3425
3426
    // ---- VK_NV_cluster_acceleration_structure extension commands
3427
0
    if (!strcmp(name, "GetClusterAccelerationStructureBuildSizesNV")) return (void *)table->GetClusterAccelerationStructureBuildSizesNV;
3428
0
    if (!strcmp(name, "CmdBuildClusterAccelerationStructureIndirectNV")) return (void *)table->CmdBuildClusterAccelerationStructureIndirectNV;
3429
3430
    // ---- VK_NV_partitioned_acceleration_structure extension commands
3431
0
    if (!strcmp(name, "GetPartitionedAccelerationStructuresBuildSizesNV")) return (void *)table->GetPartitionedAccelerationStructuresBuildSizesNV;
3432
0
    if (!strcmp(name, "CmdBuildPartitionedAccelerationStructuresNV")) return (void *)table->CmdBuildPartitionedAccelerationStructuresNV;
3433
3434
    // ---- VK_EXT_device_generated_commands extension commands
3435
0
    if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsEXT")) return (void *)table->GetGeneratedCommandsMemoryRequirementsEXT;
3436
0
    if (!strcmp(name, "CmdPreprocessGeneratedCommandsEXT")) return (void *)table->CmdPreprocessGeneratedCommandsEXT;
3437
0
    if (!strcmp(name, "CmdExecuteGeneratedCommandsEXT")) return (void *)table->CmdExecuteGeneratedCommandsEXT;
3438
0
    if (!strcmp(name, "CreateIndirectCommandsLayoutEXT")) return (void *)table->CreateIndirectCommandsLayoutEXT;
3439
0
    if (!strcmp(name, "DestroyIndirectCommandsLayoutEXT")) return (void *)table->DestroyIndirectCommandsLayoutEXT;
3440
0
    if (!strcmp(name, "CreateIndirectExecutionSetEXT")) return (void *)table->CreateIndirectExecutionSetEXT;
3441
0
    if (!strcmp(name, "DestroyIndirectExecutionSetEXT")) return (void *)table->DestroyIndirectExecutionSetEXT;
3442
0
    if (!strcmp(name, "UpdateIndirectExecutionSetPipelineEXT")) return (void *)table->UpdateIndirectExecutionSetPipelineEXT;
3443
0
    if (!strcmp(name, "UpdateIndirectExecutionSetShaderEXT")) return (void *)table->UpdateIndirectExecutionSetShaderEXT;
3444
3445
    // ---- VK_EXT_external_memory_metal extension commands
3446
#if defined(VK_USE_PLATFORM_METAL_EXT)
3447
    if (!strcmp(name, "GetMemoryMetalHandleEXT")) return (void *)table->GetMemoryMetalHandleEXT;
3448
#endif // VK_USE_PLATFORM_METAL_EXT
3449
#if defined(VK_USE_PLATFORM_METAL_EXT)
3450
    if (!strcmp(name, "GetMemoryMetalHandlePropertiesEXT")) return (void *)table->GetMemoryMetalHandlePropertiesEXT;
3451
#endif // VK_USE_PLATFORM_METAL_EXT
3452
3453
    // ---- VK_ARM_shader_instrumentation extension commands
3454
0
    if (!strcmp(name, "CreateShaderInstrumentationARM")) return (void *)table->CreateShaderInstrumentationARM;
3455
0
    if (!strcmp(name, "DestroyShaderInstrumentationARM")) return (void *)table->DestroyShaderInstrumentationARM;
3456
0
    if (!strcmp(name, "CmdBeginShaderInstrumentationARM")) return (void *)table->CmdBeginShaderInstrumentationARM;
3457
0
    if (!strcmp(name, "CmdEndShaderInstrumentationARM")) return (void *)table->CmdEndShaderInstrumentationARM;
3458
0
    if (!strcmp(name, "GetShaderInstrumentationValuesARM")) return (void *)table->GetShaderInstrumentationValuesARM;
3459
0
    if (!strcmp(name, "ClearShaderInstrumentationMetricsARM")) return (void *)table->ClearShaderInstrumentationMetricsARM;
3460
3461
    // ---- VK_EXT_fragment_density_map_offset extension commands
3462
0
    if (!strcmp(name, "CmdEndRendering2EXT")) return (void *)table->CmdEndRendering2EXT;
3463
3464
    // ---- VK_EXT_custom_resolve extension commands
3465
0
    if (!strcmp(name, "CmdBeginCustomResolveEXT")) return (void *)table->CmdBeginCustomResolveEXT;
3466
3467
    // ---- VK_NV_compute_occupancy_priority extension commands
3468
0
    if (!strcmp(name, "CmdSetComputeOccupancyPriorityNV")) return (void *)table->CmdSetComputeOccupancyPriorityNV;
3469
3470
    // ---- VK_KHR_acceleration_structure extension commands
3471
0
    if (!strcmp(name, "CreateAccelerationStructureKHR")) return (void *)table->CreateAccelerationStructureKHR;
3472
0
    if (!strcmp(name, "DestroyAccelerationStructureKHR")) return (void *)table->DestroyAccelerationStructureKHR;
3473
0
    if (!strcmp(name, "CmdBuildAccelerationStructuresKHR")) return (void *)table->CmdBuildAccelerationStructuresKHR;
3474
0
    if (!strcmp(name, "CmdBuildAccelerationStructuresIndirectKHR")) return (void *)table->CmdBuildAccelerationStructuresIndirectKHR;
3475
0
    if (!strcmp(name, "BuildAccelerationStructuresKHR")) return (void *)table->BuildAccelerationStructuresKHR;
3476
0
    if (!strcmp(name, "CopyAccelerationStructureKHR")) return (void *)table->CopyAccelerationStructureKHR;
3477
0
    if (!strcmp(name, "CopyAccelerationStructureToMemoryKHR")) return (void *)table->CopyAccelerationStructureToMemoryKHR;
3478
0
    if (!strcmp(name, "CopyMemoryToAccelerationStructureKHR")) return (void *)table->CopyMemoryToAccelerationStructureKHR;
3479
0
    if (!strcmp(name, "WriteAccelerationStructuresPropertiesKHR")) return (void *)table->WriteAccelerationStructuresPropertiesKHR;
3480
0
    if (!strcmp(name, "CmdCopyAccelerationStructureKHR")) return (void *)table->CmdCopyAccelerationStructureKHR;
3481
0
    if (!strcmp(name, "CmdCopyAccelerationStructureToMemoryKHR")) return (void *)table->CmdCopyAccelerationStructureToMemoryKHR;
3482
0
    if (!strcmp(name, "CmdCopyMemoryToAccelerationStructureKHR")) return (void *)table->CmdCopyMemoryToAccelerationStructureKHR;
3483
0
    if (!strcmp(name, "GetAccelerationStructureDeviceAddressKHR")) return (void *)table->GetAccelerationStructureDeviceAddressKHR;
3484
0
    if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesKHR")) return (void *)table->CmdWriteAccelerationStructuresPropertiesKHR;
3485
0
    if (!strcmp(name, "GetDeviceAccelerationStructureCompatibilityKHR")) return (void *)table->GetDeviceAccelerationStructureCompatibilityKHR;
3486
0
    if (!strcmp(name, "GetAccelerationStructureBuildSizesKHR")) return (void *)table->GetAccelerationStructureBuildSizesKHR;
3487
3488
    // ---- VK_KHR_ray_tracing_pipeline extension commands
3489
0
    if (!strcmp(name, "CmdTraceRaysKHR")) return (void *)table->CmdTraceRaysKHR;
3490
0
    if (!strcmp(name, "CreateRayTracingPipelinesKHR")) return (void *)table->CreateRayTracingPipelinesKHR;
3491
0
    if (!strcmp(name, "GetRayTracingCaptureReplayShaderGroupHandlesKHR")) return (void *)table->GetRayTracingCaptureReplayShaderGroupHandlesKHR;
3492
0
    if (!strcmp(name, "CmdTraceRaysIndirectKHR")) return (void *)table->CmdTraceRaysIndirectKHR;
3493
0
    if (!strcmp(name, "GetRayTracingShaderGroupStackSizeKHR")) return (void *)table->GetRayTracingShaderGroupStackSizeKHR;
3494
0
    if (!strcmp(name, "CmdSetRayTracingPipelineStackSizeKHR")) return (void *)table->CmdSetRayTracingPipelineStackSizeKHR;
3495
3496
    // ---- VK_EXT_mesh_shader extension commands
3497
0
    if (!strcmp(name, "CmdDrawMeshTasksEXT")) return (void *)table->CmdDrawMeshTasksEXT;
3498
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectEXT")) return (void *)table->CmdDrawMeshTasksIndirectEXT;
3499
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectCountEXT")) return (void *)table->CmdDrawMeshTasksIndirectCountEXT;
3500
3501
0
    *found_name = false;
3502
0
    return NULL;
3503
0
}
3504
3505
// Instance command lookup function
3506
VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable *table, const char *name,
3507
0
                                                                 bool *found_name) {
3508
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
3509
0
        *found_name = false;
3510
0
        return NULL;
3511
0
    }
3512
3513
0
    *found_name = true;
3514
0
    name += 2;
3515
3516
    // ---- Core Vulkan 1.0 commands
3517
0
    if (!strcmp(name, "DestroyInstance")) return (void *)table->DestroyInstance;
3518
0
    if (!strcmp(name, "EnumeratePhysicalDevices")) return (void *)table->EnumeratePhysicalDevices;
3519
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures")) return (void *)table->GetPhysicalDeviceFeatures;
3520
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties")) return (void *)table->GetPhysicalDeviceFormatProperties;
3521
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties")) return (void *)table->GetPhysicalDeviceImageFormatProperties;
3522
0
    if (!strcmp(name, "GetPhysicalDeviceProperties")) return (void *)table->GetPhysicalDeviceProperties;
3523
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties;
3524
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties")) return (void *)table->GetPhysicalDeviceMemoryProperties;
3525
0
    if (!strcmp(name, "GetInstanceProcAddr")) return (void *)table->GetInstanceProcAddr;
3526
0
    if (!strcmp(name, "EnumerateDeviceExtensionProperties")) return (void *)table->EnumerateDeviceExtensionProperties;
3527
0
    if (!strcmp(name, "EnumerateDeviceLayerProperties")) return (void *)table->EnumerateDeviceLayerProperties;
3528
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties;
3529
3530
    // ---- Core Vulkan 1.1 commands
3531
0
    if (!strcmp(name, "EnumeratePhysicalDeviceGroups")) return (void *)table->EnumeratePhysicalDeviceGroups;
3532
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures2")) return (void *)table->GetPhysicalDeviceFeatures2;
3533
0
    if (!strcmp(name, "GetPhysicalDeviceProperties2")) return (void *)table->GetPhysicalDeviceProperties2;
3534
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties2")) return (void *)table->GetPhysicalDeviceFormatProperties2;
3535
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2")) return (void *)table->GetPhysicalDeviceImageFormatProperties2;
3536
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2;
3537
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2")) return (void *)table->GetPhysicalDeviceMemoryProperties2;
3538
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2;
3539
0
    if (!strcmp(name, "GetPhysicalDeviceExternalBufferProperties")) return (void *)table->GetPhysicalDeviceExternalBufferProperties;
3540
0
    if (!strcmp(name, "GetPhysicalDeviceExternalFenceProperties")) return (void *)table->GetPhysicalDeviceExternalFenceProperties;
3541
0
    if (!strcmp(name, "GetPhysicalDeviceExternalSemaphoreProperties")) return (void *)table->GetPhysicalDeviceExternalSemaphoreProperties;
3542
3543
    // ---- Core Vulkan 1.3 commands
3544
0
    if (!strcmp(name, "GetPhysicalDeviceToolProperties")) return (void *)table->GetPhysicalDeviceToolProperties;
3545
3546
    // ---- VK_KHR_surface extension commands
3547
0
    if (!strcmp(name, "DestroySurfaceKHR")) return (void *)table->DestroySurfaceKHR;
3548
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceSupportKHR")) return (void *)table->GetPhysicalDeviceSurfaceSupportKHR;
3549
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilitiesKHR;
3550
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceFormatsKHR")) return (void *)table->GetPhysicalDeviceSurfaceFormatsKHR;
3551
0
    if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModesKHR")) return (void *)table->GetPhysicalDeviceSurfacePresentModesKHR;
3552
3553
    // ---- VK_KHR_swapchain extension commands
3554
0
    if (!strcmp(name, "GetPhysicalDevicePresentRectanglesKHR")) return (void *)table->GetPhysicalDevicePresentRectanglesKHR;
3555
3556
    // ---- VK_KHR_display extension commands
3557
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPropertiesKHR;
3558
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPlanePropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPlanePropertiesKHR;
3559
0
    if (!strcmp(name, "GetDisplayPlaneSupportedDisplaysKHR")) return (void *)table->GetDisplayPlaneSupportedDisplaysKHR;
3560
0
    if (!strcmp(name, "GetDisplayModePropertiesKHR")) return (void *)table->GetDisplayModePropertiesKHR;
3561
0
    if (!strcmp(name, "CreateDisplayModeKHR")) return (void *)table->CreateDisplayModeKHR;
3562
0
    if (!strcmp(name, "GetDisplayPlaneCapabilitiesKHR")) return (void *)table->GetDisplayPlaneCapabilitiesKHR;
3563
0
    if (!strcmp(name, "CreateDisplayPlaneSurfaceKHR")) return (void *)table->CreateDisplayPlaneSurfaceKHR;
3564
3565
    // ---- VK_KHR_xlib_surface extension commands
3566
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
3567
0
    if (!strcmp(name, "CreateXlibSurfaceKHR")) return (void *)table->CreateXlibSurfaceKHR;
3568
0
#endif // VK_USE_PLATFORM_XLIB_KHR
3569
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
3570
0
    if (!strcmp(name, "GetPhysicalDeviceXlibPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXlibPresentationSupportKHR;
3571
0
#endif // VK_USE_PLATFORM_XLIB_KHR
3572
3573
    // ---- VK_KHR_xcb_surface extension commands
3574
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
3575
0
    if (!strcmp(name, "CreateXcbSurfaceKHR")) return (void *)table->CreateXcbSurfaceKHR;
3576
0
#endif // VK_USE_PLATFORM_XCB_KHR
3577
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
3578
0
    if (!strcmp(name, "GetPhysicalDeviceXcbPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXcbPresentationSupportKHR;
3579
0
#endif // VK_USE_PLATFORM_XCB_KHR
3580
3581
    // ---- VK_KHR_wayland_surface extension commands
3582
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3583
0
    if (!strcmp(name, "CreateWaylandSurfaceKHR")) return (void *)table->CreateWaylandSurfaceKHR;
3584
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
3585
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3586
0
    if (!strcmp(name, "GetPhysicalDeviceWaylandPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWaylandPresentationSupportKHR;
3587
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
3588
3589
    // ---- VK_KHR_android_surface extension commands
3590
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
3591
    if (!strcmp(name, "CreateAndroidSurfaceKHR")) return (void *)table->CreateAndroidSurfaceKHR;
3592
#endif // VK_USE_PLATFORM_ANDROID_KHR
3593
3594
    // ---- VK_KHR_win32_surface extension commands
3595
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3596
    if (!strcmp(name, "CreateWin32SurfaceKHR")) return (void *)table->CreateWin32SurfaceKHR;
3597
#endif // VK_USE_PLATFORM_WIN32_KHR
3598
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3599
    if (!strcmp(name, "GetPhysicalDeviceWin32PresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWin32PresentationSupportKHR;
3600
#endif // VK_USE_PLATFORM_WIN32_KHR
3601
3602
    // ---- VK_KHR_video_queue extension commands
3603
0
    if (!strcmp(name, "GetPhysicalDeviceVideoCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceVideoCapabilitiesKHR;
3604
0
    if (!strcmp(name, "GetPhysicalDeviceVideoFormatPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoFormatPropertiesKHR;
3605
3606
    // ---- VK_KHR_get_physical_device_properties2 extension commands
3607
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures2KHR")) return (void *)table->GetPhysicalDeviceFeatures2KHR;
3608
0
    if (!strcmp(name, "GetPhysicalDeviceProperties2KHR")) return (void *)table->GetPhysicalDeviceProperties2KHR;
3609
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceFormatProperties2KHR;
3610
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceImageFormatProperties2KHR;
3611
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2KHR")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2KHR;
3612
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2KHR")) return (void *)table->GetPhysicalDeviceMemoryProperties2KHR;
3613
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2KHR;
3614
3615
    // ---- VK_KHR_device_group_creation extension commands
3616
0
    if (!strcmp(name, "EnumeratePhysicalDeviceGroupsKHR")) return (void *)table->EnumeratePhysicalDeviceGroupsKHR;
3617
3618
    // ---- VK_KHR_external_memory_capabilities extension commands
3619
0
    if (!strcmp(name, "GetPhysicalDeviceExternalBufferPropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalBufferPropertiesKHR;
3620
3621
    // ---- VK_KHR_external_semaphore_capabilities extension commands
3622
0
    if (!strcmp(name, "GetPhysicalDeviceExternalSemaphorePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalSemaphorePropertiesKHR;
3623
3624
    // ---- VK_KHR_external_fence_capabilities extension commands
3625
0
    if (!strcmp(name, "GetPhysicalDeviceExternalFencePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalFencePropertiesKHR;
3626
3627
    // ---- VK_KHR_performance_query extension commands
3628
0
    if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
3629
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) return (void *)table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
3630
3631
    // ---- VK_KHR_get_surface_capabilities2 extension commands
3632
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2KHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2KHR;
3633
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceFormats2KHR")) return (void *)table->GetPhysicalDeviceSurfaceFormats2KHR;
3634
3635
    // ---- VK_KHR_get_display_properties2 extension commands
3636
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayProperties2KHR;
3637
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPlaneProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayPlaneProperties2KHR;
3638
0
    if (!strcmp(name, "GetDisplayModeProperties2KHR")) return (void *)table->GetDisplayModeProperties2KHR;
3639
0
    if (!strcmp(name, "GetDisplayPlaneCapabilities2KHR")) return (void *)table->GetDisplayPlaneCapabilities2KHR;
3640
3641
    // ---- VK_KHR_fragment_shading_rate extension commands
3642
0
    if (!strcmp(name, "GetPhysicalDeviceFragmentShadingRatesKHR")) return (void *)table->GetPhysicalDeviceFragmentShadingRatesKHR;
3643
3644
    // ---- VK_KHR_video_encode_queue extension commands
3645
0
    if (!strcmp(name, "GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
3646
3647
    // ---- VK_KHR_cooperative_matrix extension commands
3648
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesKHR")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
3649
3650
    // ---- VK_KHR_calibrated_timestamps extension commands
3651
0
    if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsKHR")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsKHR;
3652
3653
    // ---- VK_EXT_debug_report extension commands
3654
0
    if (!strcmp(name, "CreateDebugReportCallbackEXT")) return (void *)table->CreateDebugReportCallbackEXT;
3655
0
    if (!strcmp(name, "DestroyDebugReportCallbackEXT")) return (void *)table->DestroyDebugReportCallbackEXT;
3656
0
    if (!strcmp(name, "DebugReportMessageEXT")) return (void *)table->DebugReportMessageEXT;
3657
3658
    // ---- VK_GGP_stream_descriptor_surface extension commands
3659
#if defined(VK_USE_PLATFORM_GGP)
3660
    if (!strcmp(name, "CreateStreamDescriptorSurfaceGGP")) return (void *)table->CreateStreamDescriptorSurfaceGGP;
3661
#endif // VK_USE_PLATFORM_GGP
3662
3663
    // ---- VK_NV_external_memory_capabilities extension commands
3664
0
    if (!strcmp(name, "GetPhysicalDeviceExternalImageFormatPropertiesNV")) return (void *)table->GetPhysicalDeviceExternalImageFormatPropertiesNV;
3665
3666
    // ---- VK_NN_vi_surface extension commands
3667
#if defined(VK_USE_PLATFORM_VI_NN)
3668
    if (!strcmp(name, "CreateViSurfaceNN")) return (void *)table->CreateViSurfaceNN;
3669
#endif // VK_USE_PLATFORM_VI_NN
3670
3671
    // ---- VK_EXT_direct_mode_display extension commands
3672
0
    if (!strcmp(name, "ReleaseDisplayEXT")) return (void *)table->ReleaseDisplayEXT;
3673
3674
    // ---- VK_EXT_acquire_xlib_display extension commands
3675
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3676
0
    if (!strcmp(name, "AcquireXlibDisplayEXT")) return (void *)table->AcquireXlibDisplayEXT;
3677
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3678
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3679
0
    if (!strcmp(name, "GetRandROutputDisplayEXT")) return (void *)table->GetRandROutputDisplayEXT;
3680
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3681
3682
    // ---- VK_EXT_display_surface_counter extension commands
3683
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2EXT")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2EXT;
3684
3685
    // ---- VK_MVK_ios_surface extension commands
3686
#if defined(VK_USE_PLATFORM_IOS_MVK)
3687
    if (!strcmp(name, "CreateIOSSurfaceMVK")) return (void *)table->CreateIOSSurfaceMVK;
3688
#endif // VK_USE_PLATFORM_IOS_MVK
3689
3690
    // ---- VK_MVK_macos_surface extension commands
3691
#if defined(VK_USE_PLATFORM_MACOS_MVK)
3692
    if (!strcmp(name, "CreateMacOSSurfaceMVK")) return (void *)table->CreateMacOSSurfaceMVK;
3693
#endif // VK_USE_PLATFORM_MACOS_MVK
3694
3695
    // ---- VK_EXT_debug_utils extension commands
3696
0
    if (!strcmp(name, "CreateDebugUtilsMessengerEXT")) return (void *)table->CreateDebugUtilsMessengerEXT;
3697
0
    if (!strcmp(name, "DestroyDebugUtilsMessengerEXT")) return (void *)table->DestroyDebugUtilsMessengerEXT;
3698
0
    if (!strcmp(name, "SubmitDebugUtilsMessageEXT")) return (void *)table->SubmitDebugUtilsMessageEXT;
3699
3700
    // ---- VK_EXT_descriptor_heap extension commands
3701
0
    if (!strcmp(name, "GetPhysicalDeviceDescriptorSizeEXT")) return (void *)table->GetPhysicalDeviceDescriptorSizeEXT;
3702
3703
    // ---- VK_EXT_sample_locations extension commands
3704
0
    if (!strcmp(name, "GetPhysicalDeviceMultisamplePropertiesEXT")) return (void *)table->GetPhysicalDeviceMultisamplePropertiesEXT;
3705
3706
    // ---- VK_EXT_calibrated_timestamps extension commands
3707
0
    if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsEXT")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsEXT;
3708
3709
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
3710
#if defined(VK_USE_PLATFORM_FUCHSIA)
3711
    if (!strcmp(name, "CreateImagePipeSurfaceFUCHSIA")) return (void *)table->CreateImagePipeSurfaceFUCHSIA;
3712
#endif // VK_USE_PLATFORM_FUCHSIA
3713
3714
    // ---- VK_EXT_metal_surface extension commands
3715
#if defined(VK_USE_PLATFORM_METAL_EXT)
3716
    if (!strcmp(name, "CreateMetalSurfaceEXT")) return (void *)table->CreateMetalSurfaceEXT;
3717
#endif // VK_USE_PLATFORM_METAL_EXT
3718
3719
    // ---- VK_EXT_tooling_info extension commands
3720
0
    if (!strcmp(name, "GetPhysicalDeviceToolPropertiesEXT")) return (void *)table->GetPhysicalDeviceToolPropertiesEXT;
3721
3722
    // ---- VK_NV_cooperative_matrix extension commands
3723
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesNV;
3724
3725
    // ---- VK_NV_coverage_reduction_mode extension commands
3726
0
    if (!strcmp(name, "GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) return (void *)table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
3727
3728
    // ---- VK_EXT_full_screen_exclusive extension commands
3729
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3730
    if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModes2EXT")) return (void *)table->GetPhysicalDeviceSurfacePresentModes2EXT;
3731
#endif // VK_USE_PLATFORM_WIN32_KHR
3732
3733
    // ---- VK_EXT_headless_surface extension commands
3734
0
    if (!strcmp(name, "CreateHeadlessSurfaceEXT")) return (void *)table->CreateHeadlessSurfaceEXT;
3735
3736
    // ---- VK_EXT_acquire_drm_display extension commands
3737
0
    if (!strcmp(name, "AcquireDrmDisplayEXT")) return (void *)table->AcquireDrmDisplayEXT;
3738
0
    if (!strcmp(name, "GetDrmDisplayEXT")) return (void *)table->GetDrmDisplayEXT;
3739
3740
    // ---- VK_NV_acquire_winrt_display extension commands
3741
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3742
    if (!strcmp(name, "AcquireWinrtDisplayNV")) return (void *)table->AcquireWinrtDisplayNV;
3743
#endif // VK_USE_PLATFORM_WIN32_KHR
3744
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3745
    if (!strcmp(name, "GetWinrtDisplayNV")) return (void *)table->GetWinrtDisplayNV;
3746
#endif // VK_USE_PLATFORM_WIN32_KHR
3747
3748
    // ---- VK_EXT_directfb_surface extension commands
3749
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3750
    if (!strcmp(name, "CreateDirectFBSurfaceEXT")) return (void *)table->CreateDirectFBSurfaceEXT;
3751
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
3752
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3753
    if (!strcmp(name, "GetPhysicalDeviceDirectFBPresentationSupportEXT")) return (void *)table->GetPhysicalDeviceDirectFBPresentationSupportEXT;
3754
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
3755
3756
    // ---- VK_QNX_screen_surface extension commands
3757
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3758
    if (!strcmp(name, "CreateScreenSurfaceQNX")) return (void *)table->CreateScreenSurfaceQNX;
3759
#endif // VK_USE_PLATFORM_SCREEN_QNX
3760
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3761
    if (!strcmp(name, "GetPhysicalDeviceScreenPresentationSupportQNX")) return (void *)table->GetPhysicalDeviceScreenPresentationSupportQNX;
3762
#endif // VK_USE_PLATFORM_SCREEN_QNX
3763
3764
    // ---- VK_ARM_tensors extension commands
3765
0
    if (!strcmp(name, "GetPhysicalDeviceExternalTensorPropertiesARM")) return (void *)table->GetPhysicalDeviceExternalTensorPropertiesARM;
3766
3767
    // ---- VK_NV_optical_flow extension commands
3768
0
    if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV;
3769
3770
    // ---- VK_NV_cooperative_vector extension commands
3771
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeVectorPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeVectorPropertiesNV;
3772
3773
    // ---- VK_ARM_data_graph extension commands
3774
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM")) return (void *)table->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM;
3775
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM")) return (void *)table->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM;
3776
3777
    // ---- VK_OHOS_surface extension commands
3778
#if defined(VK_USE_PLATFORM_OHOS)
3779
    if (!strcmp(name, "CreateSurfaceOHOS")) return (void *)table->CreateSurfaceOHOS;
3780
#endif // VK_USE_PLATFORM_OHOS
3781
3782
    // ---- VK_NV_cooperative_matrix2 extension commands
3783
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
3784
3785
    // ---- VK_ARM_performance_counters_by_region extension commands
3786
0
    if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;
3787
3788
    // ---- VK_ARM_shader_instrumentation extension commands
3789
0
    if (!strcmp(name, "EnumeratePhysicalDeviceShaderInstrumentationMetricsARM")) return (void *)table->EnumeratePhysicalDeviceShaderInstrumentationMetricsARM;
3790
3791
    // ---- VK_SEC_ubm_surface extension commands
3792
#if defined(VK_USE_PLATFORM_UBM_SEC)
3793
    if (!strcmp(name, "CreateUbmSurfaceSEC")) return (void *)table->CreateUbmSurfaceSEC;
3794
#endif // VK_USE_PLATFORM_UBM_SEC
3795
#if defined(VK_USE_PLATFORM_UBM_SEC)
3796
    if (!strcmp(name, "GetPhysicalDeviceUbmPresentationSupportSEC")) return (void *)table->GetPhysicalDeviceUbmPresentationSupportSEC;
3797
#endif // VK_USE_PLATFORM_UBM_SEC
3798
3799
0
    *found_name = false;
3800
0
    return NULL;
3801
0
}
3802
3803
3804
// ---- VK_KHR_video_queue extension trampoline/terminators
3805
3806
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR(
3807
    VkPhysicalDevice                            physicalDevice,
3808
    const VkVideoProfileInfoKHR*                pVideoProfile,
3809
0
    VkVideoCapabilitiesKHR*                     pCapabilities) {
3810
0
    const VkLayerInstanceDispatchTable *disp;
3811
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3812
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3813
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3814
0
                   "vkGetPhysicalDeviceVideoCapabilitiesKHR: Invalid physicalDevice "
3815
0
                   "[VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter]");
3816
0
        abort(); /* Intentionally fail so user can correct issue. */
3817
0
    }
3818
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
3819
0
    return disp->GetPhysicalDeviceVideoCapabilitiesKHR(unwrapped_phys_dev, pVideoProfile, pCapabilities);
3820
0
}
3821
3822
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoCapabilitiesKHR(
3823
    VkPhysicalDevice                            physicalDevice,
3824
    const VkVideoProfileInfoKHR*                pVideoProfile,
3825
0
    VkVideoCapabilitiesKHR*                     pCapabilities) {
3826
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3827
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3828
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR) {
3829
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3830
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoCapabilitiesKHR");
3831
0
        abort(); /* Intentionally fail so user can correct issue. */
3832
0
    }
3833
0
    return icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR(phys_dev_term->phys_dev, pVideoProfile, pCapabilities);
3834
0
}
3835
3836
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR(
3837
    VkPhysicalDevice                            physicalDevice,
3838
    const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
3839
    uint32_t*                                   pVideoFormatPropertyCount,
3840
0
    VkVideoFormatPropertiesKHR*                 pVideoFormatProperties) {
3841
0
    const VkLayerInstanceDispatchTable *disp;
3842
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3843
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3844
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3845
0
                   "vkGetPhysicalDeviceVideoFormatPropertiesKHR: Invalid physicalDevice "
3846
0
                   "[VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter]");
3847
0
        abort(); /* Intentionally fail so user can correct issue. */
3848
0
    }
3849
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
3850
0
    return disp->GetPhysicalDeviceVideoFormatPropertiesKHR(unwrapped_phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3851
0
}
3852
3853
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(
3854
    VkPhysicalDevice                            physicalDevice,
3855
    const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
3856
    uint32_t*                                   pVideoFormatPropertyCount,
3857
0
    VkVideoFormatPropertiesKHR*                 pVideoFormatProperties) {
3858
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3859
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3860
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR) {
3861
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3862
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoFormatPropertiesKHR");
3863
0
        abort(); /* Intentionally fail so user can correct issue. */
3864
0
    }
3865
0
    return icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR(phys_dev_term->phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3866
0
}
3867
3868
VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR(
3869
    VkDevice                                    device,
3870
    const VkVideoSessionCreateInfoKHR*          pCreateInfo,
3871
    const VkAllocationCallbacks*                pAllocator,
3872
0
    VkVideoSessionKHR*                          pVideoSession) {
3873
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3874
0
    if (NULL == disp) {
3875
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3876
0
                   "vkCreateVideoSessionKHR: Invalid device "
3877
0
                   "[VUID-vkCreateVideoSessionKHR-device-parameter]");
3878
0
        abort(); /* Intentionally fail so user can correct issue. */
3879
0
    }
3880
0
    return disp->CreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession);
3881
0
}
3882
3883
VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionKHR(
3884
    VkDevice                                    device,
3885
    VkVideoSessionKHR                           videoSession,
3886
0
    const VkAllocationCallbacks*                pAllocator) {
3887
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3888
0
    if (NULL == disp) {
3889
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3890
0
                   "vkDestroyVideoSessionKHR: Invalid device "
3891
0
                   "[VUID-vkDestroyVideoSessionKHR-device-parameter]");
3892
0
        abort(); /* Intentionally fail so user can correct issue. */
3893
0
    }
3894
0
    disp->DestroyVideoSessionKHR(device, videoSession, pAllocator);
3895
0
}
3896
3897
VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR(
3898
    VkDevice                                    device,
3899
    VkVideoSessionKHR                           videoSession,
3900
    uint32_t*                                   pMemoryRequirementsCount,
3901
0
    VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements) {
3902
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3903
0
    if (NULL == disp) {
3904
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3905
0
                   "vkGetVideoSessionMemoryRequirementsKHR: Invalid device "
3906
0
                   "[VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter]");
3907
0
        abort(); /* Intentionally fail so user can correct issue. */
3908
0
    }
3909
0
    return disp->GetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements);
3910
0
}
3911
3912
VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR(
3913
    VkDevice                                    device,
3914
    VkVideoSessionKHR                           videoSession,
3915
    uint32_t                                    bindSessionMemoryInfoCount,
3916
0
    const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos) {
3917
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3918
0
    if (NULL == disp) {
3919
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3920
0
                   "vkBindVideoSessionMemoryKHR: Invalid device "
3921
0
                   "[VUID-vkBindVideoSessionMemoryKHR-device-parameter]");
3922
0
        abort(); /* Intentionally fail so user can correct issue. */
3923
0
    }
3924
0
    return disp->BindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos);
3925
0
}
3926
3927
VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR(
3928
    VkDevice                                    device,
3929
    const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
3930
    const VkAllocationCallbacks*                pAllocator,
3931
0
    VkVideoSessionParametersKHR*                pVideoSessionParameters) {
3932
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3933
0
    if (NULL == disp) {
3934
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3935
0
                   "vkCreateVideoSessionParametersKHR: Invalid device "
3936
0
                   "[VUID-vkCreateVideoSessionParametersKHR-device-parameter]");
3937
0
        abort(); /* Intentionally fail so user can correct issue. */
3938
0
    }
3939
0
    return disp->CreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters);
3940
0
}
3941
3942
VKAPI_ATTR VkResult VKAPI_CALL UpdateVideoSessionParametersKHR(
3943
    VkDevice                                    device,
3944
    VkVideoSessionParametersKHR                 videoSessionParameters,
3945
0
    const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) {
3946
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3947
0
    if (NULL == disp) {
3948
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3949
0
                   "vkUpdateVideoSessionParametersKHR: Invalid device "
3950
0
                   "[VUID-vkUpdateVideoSessionParametersKHR-device-parameter]");
3951
0
        abort(); /* Intentionally fail so user can correct issue. */
3952
0
    }
3953
0
    return disp->UpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo);
3954
0
}
3955
3956
VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionParametersKHR(
3957
    VkDevice                                    device,
3958
    VkVideoSessionParametersKHR                 videoSessionParameters,
3959
0
    const VkAllocationCallbacks*                pAllocator) {
3960
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3961
0
    if (NULL == disp) {
3962
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3963
0
                   "vkDestroyVideoSessionParametersKHR: Invalid device "
3964
0
                   "[VUID-vkDestroyVideoSessionParametersKHR-device-parameter]");
3965
0
        abort(); /* Intentionally fail so user can correct issue. */
3966
0
    }
3967
0
    disp->DestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator);
3968
0
}
3969
3970
VKAPI_ATTR void VKAPI_CALL CmdBeginVideoCodingKHR(
3971
    VkCommandBuffer                             commandBuffer,
3972
0
    const VkVideoBeginCodingInfoKHR*            pBeginInfo) {
3973
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3974
0
    if (NULL == disp) {
3975
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3976
0
                   "vkCmdBeginVideoCodingKHR: Invalid commandBuffer "
3977
0
                   "[VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter]");
3978
0
        abort(); /* Intentionally fail so user can correct issue. */
3979
0
    }
3980
0
    disp->CmdBeginVideoCodingKHR(commandBuffer, pBeginInfo);
3981
0
}
3982
3983
VKAPI_ATTR void VKAPI_CALL CmdEndVideoCodingKHR(
3984
    VkCommandBuffer                             commandBuffer,
3985
0
    const VkVideoEndCodingInfoKHR*              pEndCodingInfo) {
3986
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3987
0
    if (NULL == disp) {
3988
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3989
0
                   "vkCmdEndVideoCodingKHR: Invalid commandBuffer "
3990
0
                   "[VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter]");
3991
0
        abort(); /* Intentionally fail so user can correct issue. */
3992
0
    }
3993
0
    disp->CmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo);
3994
0
}
3995
3996
VKAPI_ATTR void VKAPI_CALL CmdControlVideoCodingKHR(
3997
    VkCommandBuffer                             commandBuffer,
3998
0
    const VkVideoCodingControlInfoKHR*          pCodingControlInfo) {
3999
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4000
0
    if (NULL == disp) {
4001
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4002
0
                   "vkCmdControlVideoCodingKHR: Invalid commandBuffer "
4003
0
                   "[VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter]");
4004
0
        abort(); /* Intentionally fail so user can correct issue. */
4005
0
    }
4006
0
    disp->CmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo);
4007
0
}
4008
4009
4010
// ---- VK_KHR_video_decode_queue extension trampoline/terminators
4011
4012
VKAPI_ATTR void VKAPI_CALL CmdDecodeVideoKHR(
4013
    VkCommandBuffer                             commandBuffer,
4014
0
    const VkVideoDecodeInfoKHR*                 pDecodeInfo) {
4015
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4016
0
    if (NULL == disp) {
4017
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4018
0
                   "vkCmdDecodeVideoKHR: Invalid commandBuffer "
4019
0
                   "[VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter]");
4020
0
        abort(); /* Intentionally fail so user can correct issue. */
4021
0
    }
4022
0
    disp->CmdDecodeVideoKHR(commandBuffer, pDecodeInfo);
4023
0
}
4024
4025
4026
// ---- VK_KHR_dynamic_rendering extension trampoline/terminators
4027
4028
VKAPI_ATTR void VKAPI_CALL CmdBeginRenderingKHR(
4029
    VkCommandBuffer                             commandBuffer,
4030
0
    const VkRenderingInfo*                      pRenderingInfo) {
4031
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4032
0
    if (NULL == disp) {
4033
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4034
0
                   "vkCmdBeginRenderingKHR: Invalid commandBuffer "
4035
0
                   "[VUID-vkCmdBeginRenderingKHR-commandBuffer-parameter]");
4036
0
        abort(); /* Intentionally fail so user can correct issue. */
4037
0
    }
4038
0
    disp->CmdBeginRenderingKHR(commandBuffer, pRenderingInfo);
4039
0
}
4040
4041
VKAPI_ATTR void VKAPI_CALL CmdEndRenderingKHR(
4042
0
    VkCommandBuffer                             commandBuffer) {
4043
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4044
0
    if (NULL == disp) {
4045
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4046
0
                   "vkCmdEndRenderingKHR: Invalid commandBuffer "
4047
0
                   "[VUID-vkCmdEndRenderingKHR-commandBuffer-parameter]");
4048
0
        abort(); /* Intentionally fail so user can correct issue. */
4049
0
    }
4050
0
    disp->CmdEndRenderingKHR(commandBuffer);
4051
0
}
4052
4053
4054
// ---- VK_KHR_device_group extension trampoline/terminators
4055
4056
VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR(
4057
    VkDevice                                    device,
4058
    uint32_t                                    heapIndex,
4059
    uint32_t                                    localDeviceIndex,
4060
    uint32_t                                    remoteDeviceIndex,
4061
0
    VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures) {
4062
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4063
0
    if (NULL == disp) {
4064
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4065
0
                   "vkGetDeviceGroupPeerMemoryFeaturesKHR: Invalid device "
4066
0
                   "[VUID-vkGetDeviceGroupPeerMemoryFeaturesKHR-device-parameter]");
4067
0
        abort(); /* Intentionally fail so user can correct issue. */
4068
0
    }
4069
0
    disp->GetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
4070
0
}
4071
4072
VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHR(
4073
    VkCommandBuffer                             commandBuffer,
4074
0
    uint32_t                                    deviceMask) {
4075
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4076
0
    if (NULL == disp) {
4077
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4078
0
                   "vkCmdSetDeviceMaskKHR: Invalid commandBuffer "
4079
0
                   "[VUID-vkCmdSetDeviceMaskKHR-commandBuffer-parameter]");
4080
0
        abort(); /* Intentionally fail so user can correct issue. */
4081
0
    }
4082
0
    disp->CmdSetDeviceMaskKHR(commandBuffer, deviceMask);
4083
0
}
4084
4085
VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR(
4086
    VkCommandBuffer                             commandBuffer,
4087
    uint32_t                                    baseGroupX,
4088
    uint32_t                                    baseGroupY,
4089
    uint32_t                                    baseGroupZ,
4090
    uint32_t                                    groupCountX,
4091
    uint32_t                                    groupCountY,
4092
0
    uint32_t                                    groupCountZ) {
4093
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4094
0
    if (NULL == disp) {
4095
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4096
0
                   "vkCmdDispatchBaseKHR: Invalid commandBuffer "
4097
0
                   "[VUID-vkCmdDispatchBaseKHR-commandBuffer-parameter]");
4098
0
        abort(); /* Intentionally fail so user can correct issue. */
4099
0
    }
4100
0
    disp->CmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
4101
0
}
4102
4103
4104
// ---- VK_KHR_maintenance1 extension trampoline/terminators
4105
4106
VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR(
4107
    VkDevice                                    device,
4108
    VkCommandPool                               commandPool,
4109
0
    VkCommandPoolTrimFlags                      flags) {
4110
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4111
0
    if (NULL == disp) {
4112
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4113
0
                   "vkTrimCommandPoolKHR: Invalid device "
4114
0
                   "[VUID-vkTrimCommandPoolKHR-device-parameter]");
4115
0
        abort(); /* Intentionally fail so user can correct issue. */
4116
0
    }
4117
0
    disp->TrimCommandPoolKHR(device, commandPool, flags);
4118
0
}
4119
4120
4121
// ---- VK_KHR_external_memory_win32 extension trampoline/terminators
4122
4123
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4124
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR(
4125
    VkDevice                                    device,
4126
    const VkMemoryGetWin32HandleInfoKHR*        pGetWin32HandleInfo,
4127
    HANDLE*                                     pHandle) {
4128
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4129
    if (NULL == disp) {
4130
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4131
                   "vkGetMemoryWin32HandleKHR: Invalid device "
4132
                   "[VUID-vkGetMemoryWin32HandleKHR-device-parameter]");
4133
        abort(); /* Intentionally fail so user can correct issue. */
4134
    }
4135
    return disp->GetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4136
}
4137
4138
#endif // VK_USE_PLATFORM_WIN32_KHR
4139
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4140
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR(
4141
    VkDevice                                    device,
4142
    VkExternalMemoryHandleTypeFlagBits          handleType,
4143
    HANDLE                                      handle,
4144
    VkMemoryWin32HandlePropertiesKHR*           pMemoryWin32HandleProperties) {
4145
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4146
    if (NULL == disp) {
4147
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4148
                   "vkGetMemoryWin32HandlePropertiesKHR: Invalid device "
4149
                   "[VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter]");
4150
        abort(); /* Intentionally fail so user can correct issue. */
4151
    }
4152
    return disp->GetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
4153
}
4154
4155
#endif // VK_USE_PLATFORM_WIN32_KHR
4156
4157
// ---- VK_KHR_external_memory_fd extension trampoline/terminators
4158
4159
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR(
4160
    VkDevice                                    device,
4161
    const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
4162
0
    int*                                        pFd) {
4163
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4164
0
    if (NULL == disp) {
4165
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4166
0
                   "vkGetMemoryFdKHR: Invalid device "
4167
0
                   "[VUID-vkGetMemoryFdKHR-device-parameter]");
4168
0
        abort(); /* Intentionally fail so user can correct issue. */
4169
0
    }
4170
0
    return disp->GetMemoryFdKHR(device, pGetFdInfo, pFd);
4171
0
}
4172
4173
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR(
4174
    VkDevice                                    device,
4175
    VkExternalMemoryHandleTypeFlagBits          handleType,
4176
    int                                         fd,
4177
0
    VkMemoryFdPropertiesKHR*                    pMemoryFdProperties) {
4178
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4179
0
    if (NULL == disp) {
4180
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4181
0
                   "vkGetMemoryFdPropertiesKHR: Invalid device "
4182
0
                   "[VUID-vkGetMemoryFdPropertiesKHR-device-parameter]");
4183
0
        abort(); /* Intentionally fail so user can correct issue. */
4184
0
    }
4185
0
    return disp->GetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
4186
0
}
4187
4188
4189
// ---- VK_KHR_external_semaphore_win32 extension trampoline/terminators
4190
4191
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4192
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreWin32HandleKHR(
4193
    VkDevice                                    device,
4194
    const VkImportSemaphoreWin32HandleInfoKHR*  pImportSemaphoreWin32HandleInfo) {
4195
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4196
    if (NULL == disp) {
4197
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4198
                   "vkImportSemaphoreWin32HandleKHR: Invalid device "
4199
                   "[VUID-vkImportSemaphoreWin32HandleKHR-device-parameter]");
4200
        abort(); /* Intentionally fail so user can correct issue. */
4201
    }
4202
    return disp->ImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
4203
}
4204
4205
#endif // VK_USE_PLATFORM_WIN32_KHR
4206
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4207
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR(
4208
    VkDevice                                    device,
4209
    const VkSemaphoreGetWin32HandleInfoKHR*     pGetWin32HandleInfo,
4210
    HANDLE*                                     pHandle) {
4211
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4212
    if (NULL == disp) {
4213
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4214
                   "vkGetSemaphoreWin32HandleKHR: Invalid device "
4215
                   "[VUID-vkGetSemaphoreWin32HandleKHR-device-parameter]");
4216
        abort(); /* Intentionally fail so user can correct issue. */
4217
    }
4218
    return disp->GetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4219
}
4220
4221
#endif // VK_USE_PLATFORM_WIN32_KHR
4222
4223
// ---- VK_KHR_external_semaphore_fd extension trampoline/terminators
4224
4225
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR(
4226
    VkDevice                                    device,
4227
0
    const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo) {
4228
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4229
0
    if (NULL == disp) {
4230
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4231
0
                   "vkImportSemaphoreFdKHR: Invalid device "
4232
0
                   "[VUID-vkImportSemaphoreFdKHR-device-parameter]");
4233
0
        abort(); /* Intentionally fail so user can correct issue. */
4234
0
    }
4235
0
    return disp->ImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
4236
0
}
4237
4238
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR(
4239
    VkDevice                                    device,
4240
    const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
4241
0
    int*                                        pFd) {
4242
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4243
0
    if (NULL == disp) {
4244
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4245
0
                   "vkGetSemaphoreFdKHR: Invalid device "
4246
0
                   "[VUID-vkGetSemaphoreFdKHR-device-parameter]");
4247
0
        abort(); /* Intentionally fail so user can correct issue. */
4248
0
    }
4249
0
    return disp->GetSemaphoreFdKHR(device, pGetFdInfo, pFd);
4250
0
}
4251
4252
4253
// ---- VK_KHR_push_descriptor extension trampoline/terminators
4254
4255
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR(
4256
    VkCommandBuffer                             commandBuffer,
4257
    VkPipelineBindPoint                         pipelineBindPoint,
4258
    VkPipelineLayout                            layout,
4259
    uint32_t                                    set,
4260
    uint32_t                                    descriptorWriteCount,
4261
0
    const VkWriteDescriptorSet*                 pDescriptorWrites) {
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
                   "vkCmdPushDescriptorSetKHR: Invalid commandBuffer "
4266
0
                   "[VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter]");
4267
0
        abort(); /* Intentionally fail so user can correct issue. */
4268
0
    }
4269
0
    disp->CmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
4270
0
}
4271
4272
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplateKHR(
4273
    VkCommandBuffer                             commandBuffer,
4274
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4275
    VkPipelineLayout                            layout,
4276
    uint32_t                                    set,
4277
0
    const void*                                 pData) {
4278
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdPushDescriptorSetWithTemplateKHR: Invalid commandBuffer "
4282
0
                   "[VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter]");
4283
0
        abort(); /* Intentionally fail so user can correct issue. */
4284
0
    }
4285
0
    disp->CmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
4286
0
}
4287
4288
4289
// ---- VK_KHR_descriptor_update_template extension trampoline/terminators
4290
4291
VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR(
4292
    VkDevice                                    device,
4293
    const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
4294
    const VkAllocationCallbacks*                pAllocator,
4295
0
    VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate) {
4296
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4297
0
    if (NULL == disp) {
4298
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4299
0
                   "vkCreateDescriptorUpdateTemplateKHR: Invalid device "
4300
0
                   "[VUID-vkCreateDescriptorUpdateTemplateKHR-device-parameter]");
4301
0
        abort(); /* Intentionally fail so user can correct issue. */
4302
0
    }
4303
0
    return disp->CreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
4304
0
}
4305
4306
VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR(
4307
    VkDevice                                    device,
4308
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4309
0
    const VkAllocationCallbacks*                pAllocator) {
4310
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4311
0
    if (NULL == disp) {
4312
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4313
0
                   "vkDestroyDescriptorUpdateTemplateKHR: Invalid device "
4314
0
                   "[VUID-vkDestroyDescriptorUpdateTemplateKHR-device-parameter]");
4315
0
        abort(); /* Intentionally fail so user can correct issue. */
4316
0
    }
4317
0
    disp->DestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
4318
0
}
4319
4320
VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSetWithTemplateKHR(
4321
    VkDevice                                    device,
4322
    VkDescriptorSet                             descriptorSet,
4323
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4324
0
    const void*                                 pData) {
4325
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4326
0
    if (NULL == disp) {
4327
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4328
0
                   "vkUpdateDescriptorSetWithTemplateKHR: Invalid device "
4329
0
                   "[VUID-vkUpdateDescriptorSetWithTemplateKHR-device-parameter]");
4330
0
        abort(); /* Intentionally fail so user can correct issue. */
4331
0
    }
4332
0
    disp->UpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
4333
0
}
4334
4335
4336
// ---- VK_KHR_create_renderpass2 extension trampoline/terminators
4337
4338
VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR(
4339
    VkDevice                                    device,
4340
    const VkRenderPassCreateInfo2*              pCreateInfo,
4341
    const VkAllocationCallbacks*                pAllocator,
4342
0
    VkRenderPass*                               pRenderPass) {
4343
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4344
0
    if (NULL == disp) {
4345
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4346
0
                   "vkCreateRenderPass2KHR: Invalid device "
4347
0
                   "[VUID-vkCreateRenderPass2KHR-device-parameter]");
4348
0
        abort(); /* Intentionally fail so user can correct issue. */
4349
0
    }
4350
0
    return disp->CreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
4351
0
}
4352
4353
VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR(
4354
    VkCommandBuffer                             commandBuffer,
4355
    const VkRenderPassBeginInfo*                pRenderPassBegin,
4356
0
    const VkSubpassBeginInfo*                   pSubpassBeginInfo) {
4357
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4358
0
    if (NULL == disp) {
4359
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4360
0
                   "vkCmdBeginRenderPass2KHR: Invalid commandBuffer "
4361
0
                   "[VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter]");
4362
0
        abort(); /* Intentionally fail so user can correct issue. */
4363
0
    }
4364
0
    disp->CmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
4365
0
}
4366
4367
VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR(
4368
    VkCommandBuffer                             commandBuffer,
4369
    const VkSubpassBeginInfo*                   pSubpassBeginInfo,
4370
0
    const VkSubpassEndInfo*                     pSubpassEndInfo) {
4371
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4372
0
    if (NULL == disp) {
4373
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4374
0
                   "vkCmdNextSubpass2KHR: Invalid commandBuffer "
4375
0
                   "[VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter]");
4376
0
        abort(); /* Intentionally fail so user can correct issue. */
4377
0
    }
4378
0
    disp->CmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
4379
0
}
4380
4381
VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR(
4382
    VkCommandBuffer                             commandBuffer,
4383
0
    const VkSubpassEndInfo*                     pSubpassEndInfo) {
4384
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4385
0
    if (NULL == disp) {
4386
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4387
0
                   "vkCmdEndRenderPass2KHR: Invalid commandBuffer "
4388
0
                   "[VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter]");
4389
0
        abort(); /* Intentionally fail so user can correct issue. */
4390
0
    }
4391
0
    disp->CmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
4392
0
}
4393
4394
4395
// ---- VK_KHR_shared_presentable_image extension trampoline/terminators
4396
4397
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR(
4398
    VkDevice                                    device,
4399
0
    VkSwapchainKHR                              swapchain) {
4400
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4401
0
    if (NULL == disp) {
4402
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4403
0
                   "vkGetSwapchainStatusKHR: Invalid device "
4404
0
                   "[VUID-vkGetSwapchainStatusKHR-device-parameter]");
4405
0
        abort(); /* Intentionally fail so user can correct issue. */
4406
0
    }
4407
0
    return disp->GetSwapchainStatusKHR(device, swapchain);
4408
0
}
4409
4410
4411
// ---- VK_KHR_external_fence_win32 extension trampoline/terminators
4412
4413
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4414
VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR(
4415
    VkDevice                                    device,
4416
    const VkImportFenceWin32HandleInfoKHR*      pImportFenceWin32HandleInfo) {
4417
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4418
    if (NULL == disp) {
4419
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4420
                   "vkImportFenceWin32HandleKHR: Invalid device "
4421
                   "[VUID-vkImportFenceWin32HandleKHR-device-parameter]");
4422
        abort(); /* Intentionally fail so user can correct issue. */
4423
    }
4424
    return disp->ImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
4425
}
4426
4427
#endif // VK_USE_PLATFORM_WIN32_KHR
4428
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4429
VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR(
4430
    VkDevice                                    device,
4431
    const VkFenceGetWin32HandleInfoKHR*         pGetWin32HandleInfo,
4432
    HANDLE*                                     pHandle) {
4433
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4434
    if (NULL == disp) {
4435
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4436
                   "vkGetFenceWin32HandleKHR: Invalid device "
4437
                   "[VUID-vkGetFenceWin32HandleKHR-device-parameter]");
4438
        abort(); /* Intentionally fail so user can correct issue. */
4439
    }
4440
    return disp->GetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4441
}
4442
4443
#endif // VK_USE_PLATFORM_WIN32_KHR
4444
4445
// ---- VK_KHR_external_fence_fd extension trampoline/terminators
4446
4447
VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR(
4448
    VkDevice                                    device,
4449
0
    const VkImportFenceFdInfoKHR*               pImportFenceFdInfo) {
4450
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4451
0
    if (NULL == disp) {
4452
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4453
0
                   "vkImportFenceFdKHR: Invalid device "
4454
0
                   "[VUID-vkImportFenceFdKHR-device-parameter]");
4455
0
        abort(); /* Intentionally fail so user can correct issue. */
4456
0
    }
4457
0
    return disp->ImportFenceFdKHR(device, pImportFenceFdInfo);
4458
0
}
4459
4460
VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR(
4461
    VkDevice                                    device,
4462
    const VkFenceGetFdInfoKHR*                  pGetFdInfo,
4463
0
    int*                                        pFd) {
4464
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4465
0
    if (NULL == disp) {
4466
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4467
0
                   "vkGetFenceFdKHR: Invalid device "
4468
0
                   "[VUID-vkGetFenceFdKHR-device-parameter]");
4469
0
        abort(); /* Intentionally fail so user can correct issue. */
4470
0
    }
4471
0
    return disp->GetFenceFdKHR(device, pGetFdInfo, pFd);
4472
0
}
4473
4474
4475
// ---- VK_KHR_performance_query extension trampoline/terminators
4476
4477
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
4478
    VkPhysicalDevice                            physicalDevice,
4479
    uint32_t                                    queueFamilyIndex,
4480
    uint32_t*                                   pCounterCount,
4481
    VkPerformanceCounterKHR*                    pCounters,
4482
0
    VkPerformanceCounterDescriptionKHR*         pCounterDescriptions) {
4483
0
    const VkLayerInstanceDispatchTable *disp;
4484
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4485
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4486
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4487
0
                   "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR: Invalid physicalDevice "
4488
0
                   "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter]");
4489
0
        abort(); /* Intentionally fail so user can correct issue. */
4490
0
    }
4491
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4492
0
    return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
4493
0
}
4494
4495
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
4496
    VkPhysicalDevice                            physicalDevice,
4497
    uint32_t                                    queueFamilyIndex,
4498
    uint32_t*                                   pCounterCount,
4499
    VkPerformanceCounterKHR*                    pCounters,
4500
0
    VkPerformanceCounterDescriptionKHR*         pCounterDescriptions) {
4501
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4502
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4503
0
    if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) {
4504
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4505
0
                   "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
4506
0
        abort(); /* Intentionally fail so user can correct issue. */
4507
0
    }
4508
0
    return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
4509
0
}
4510
4511
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
4512
    VkPhysicalDevice                            physicalDevice,
4513
    const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
4514
0
    uint32_t*                                   pNumPasses) {
4515
0
    const VkLayerInstanceDispatchTable *disp;
4516
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4517
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4518
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4519
0
                   "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR: Invalid physicalDevice "
4520
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter]");
4521
0
        abort(); /* Intentionally fail so user can correct issue. */
4522
0
    }
4523
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4524
0
    disp->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(unwrapped_phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4525
0
}
4526
4527
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
4528
    VkPhysicalDevice                            physicalDevice,
4529
    const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
4530
0
    uint32_t*                                   pNumPasses) {
4531
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4532
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4533
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) {
4534
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4535
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
4536
0
        abort(); /* Intentionally fail so user can correct issue. */
4537
0
    }
4538
0
    icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(phys_dev_term->phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4539
0
}
4540
4541
VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR(
4542
    VkDevice                                    device,
4543
0
    const VkAcquireProfilingLockInfoKHR*        pInfo) {
4544
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4545
0
    if (NULL == disp) {
4546
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4547
0
                   "vkAcquireProfilingLockKHR: Invalid device "
4548
0
                   "[VUID-vkAcquireProfilingLockKHR-device-parameter]");
4549
0
        abort(); /* Intentionally fail so user can correct issue. */
4550
0
    }
4551
0
    return disp->AcquireProfilingLockKHR(device, pInfo);
4552
0
}
4553
4554
VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR(
4555
0
    VkDevice                                    device) {
4556
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4557
0
    if (NULL == disp) {
4558
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4559
0
                   "vkReleaseProfilingLockKHR: Invalid device "
4560
0
                   "[VUID-vkReleaseProfilingLockKHR-device-parameter]");
4561
0
        abort(); /* Intentionally fail so user can correct issue. */
4562
0
    }
4563
0
    disp->ReleaseProfilingLockKHR(device);
4564
0
}
4565
4566
4567
// ---- VK_KHR_get_memory_requirements2 extension trampoline/terminators
4568
4569
VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR(
4570
    VkDevice                                    device,
4571
    const VkImageMemoryRequirementsInfo2*       pInfo,
4572
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
4573
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4574
0
    if (NULL == disp) {
4575
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4576
0
                   "vkGetImageMemoryRequirements2KHR: Invalid device "
4577
0
                   "[VUID-vkGetImageMemoryRequirements2KHR-device-parameter]");
4578
0
        abort(); /* Intentionally fail so user can correct issue. */
4579
0
    }
4580
0
    disp->GetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4581
0
}
4582
4583
VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR(
4584
    VkDevice                                    device,
4585
    const VkBufferMemoryRequirementsInfo2*      pInfo,
4586
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
4587
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4588
0
    if (NULL == disp) {
4589
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4590
0
                   "vkGetBufferMemoryRequirements2KHR: Invalid device "
4591
0
                   "[VUID-vkGetBufferMemoryRequirements2KHR-device-parameter]");
4592
0
        abort(); /* Intentionally fail so user can correct issue. */
4593
0
    }
4594
0
    disp->GetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4595
0
}
4596
4597
VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR(
4598
    VkDevice                                    device,
4599
    const VkImageSparseMemoryRequirementsInfo2* pInfo,
4600
    uint32_t*                                   pSparseMemoryRequirementCount,
4601
0
    VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements) {
4602
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4603
0
    if (NULL == disp) {
4604
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4605
0
                   "vkGetImageSparseMemoryRequirements2KHR: Invalid device "
4606
0
                   "[VUID-vkGetImageSparseMemoryRequirements2KHR-device-parameter]");
4607
0
        abort(); /* Intentionally fail so user can correct issue. */
4608
0
    }
4609
0
    disp->GetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
4610
0
}
4611
4612
4613
// ---- VK_KHR_sampler_ycbcr_conversion extension trampoline/terminators
4614
4615
VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR(
4616
    VkDevice                                    device,
4617
    const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
4618
    const VkAllocationCallbacks*                pAllocator,
4619
0
    VkSamplerYcbcrConversion*                   pYcbcrConversion) {
4620
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4621
0
    if (NULL == disp) {
4622
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4623
0
                   "vkCreateSamplerYcbcrConversionKHR: Invalid device "
4624
0
                   "[VUID-vkCreateSamplerYcbcrConversionKHR-device-parameter]");
4625
0
        abort(); /* Intentionally fail so user can correct issue. */
4626
0
    }
4627
0
    return disp->CreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
4628
0
}
4629
4630
VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversionKHR(
4631
    VkDevice                                    device,
4632
    VkSamplerYcbcrConversion                    ycbcrConversion,
4633
0
    const VkAllocationCallbacks*                pAllocator) {
4634
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4635
0
    if (NULL == disp) {
4636
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4637
0
                   "vkDestroySamplerYcbcrConversionKHR: Invalid device "
4638
0
                   "[VUID-vkDestroySamplerYcbcrConversionKHR-device-parameter]");
4639
0
        abort(); /* Intentionally fail so user can correct issue. */
4640
0
    }
4641
0
    disp->DestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
4642
0
}
4643
4644
4645
// ---- VK_KHR_bind_memory2 extension trampoline/terminators
4646
4647
VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHR(
4648
    VkDevice                                    device,
4649
    uint32_t                                    bindInfoCount,
4650
0
    const VkBindBufferMemoryInfo*               pBindInfos) {
4651
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4652
0
    if (NULL == disp) {
4653
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4654
0
                   "vkBindBufferMemory2KHR: Invalid device "
4655
0
                   "[VUID-vkBindBufferMemory2KHR-device-parameter]");
4656
0
        abort(); /* Intentionally fail so user can correct issue. */
4657
0
    }
4658
0
    return disp->BindBufferMemory2KHR(device, bindInfoCount, pBindInfos);
4659
0
}
4660
4661
VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHR(
4662
    VkDevice                                    device,
4663
    uint32_t                                    bindInfoCount,
4664
0
    const VkBindImageMemoryInfo*                pBindInfos) {
4665
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4666
0
    if (NULL == disp) {
4667
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4668
0
                   "vkBindImageMemory2KHR: Invalid device "
4669
0
                   "[VUID-vkBindImageMemory2KHR-device-parameter]");
4670
0
        abort(); /* Intentionally fail so user can correct issue. */
4671
0
    }
4672
0
    return disp->BindImageMemory2KHR(device, bindInfoCount, pBindInfos);
4673
0
}
4674
4675
4676
// ---- VK_KHR_maintenance3 extension trampoline/terminators
4677
4678
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupportKHR(
4679
    VkDevice                                    device,
4680
    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4681
0
    VkDescriptorSetLayoutSupport*               pSupport) {
4682
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4683
0
    if (NULL == disp) {
4684
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4685
0
                   "vkGetDescriptorSetLayoutSupportKHR: Invalid device "
4686
0
                   "[VUID-vkGetDescriptorSetLayoutSupportKHR-device-parameter]");
4687
0
        abort(); /* Intentionally fail so user can correct issue. */
4688
0
    }
4689
0
    disp->GetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
4690
0
}
4691
4692
4693
// ---- VK_KHR_draw_indirect_count extension trampoline/terminators
4694
4695
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR(
4696
    VkCommandBuffer                             commandBuffer,
4697
    VkBuffer                                    buffer,
4698
    VkDeviceSize                                offset,
4699
    VkBuffer                                    countBuffer,
4700
    VkDeviceSize                                countBufferOffset,
4701
    uint32_t                                    maxDrawCount,
4702
0
    uint32_t                                    stride) {
4703
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4704
0
    if (NULL == disp) {
4705
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4706
0
                   "vkCmdDrawIndirectCountKHR: Invalid commandBuffer "
4707
0
                   "[VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter]");
4708
0
        abort(); /* Intentionally fail so user can correct issue. */
4709
0
    }
4710
0
    disp->CmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4711
0
}
4712
4713
VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR(
4714
    VkCommandBuffer                             commandBuffer,
4715
    VkBuffer                                    buffer,
4716
    VkDeviceSize                                offset,
4717
    VkBuffer                                    countBuffer,
4718
    VkDeviceSize                                countBufferOffset,
4719
    uint32_t                                    maxDrawCount,
4720
0
    uint32_t                                    stride) {
4721
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4722
0
    if (NULL == disp) {
4723
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4724
0
                   "vkCmdDrawIndexedIndirectCountKHR: Invalid commandBuffer "
4725
0
                   "[VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter]");
4726
0
        abort(); /* Intentionally fail so user can correct issue. */
4727
0
    }
4728
0
    disp->CmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4729
0
}
4730
4731
4732
// ---- VK_KHR_timeline_semaphore extension trampoline/terminators
4733
4734
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR(
4735
    VkDevice                                    device,
4736
    VkSemaphore                                 semaphore,
4737
0
    uint64_t*                                   pValue) {
4738
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4739
0
    if (NULL == disp) {
4740
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4741
0
                   "vkGetSemaphoreCounterValueKHR: Invalid device "
4742
0
                   "[VUID-vkGetSemaphoreCounterValueKHR-device-parameter]");
4743
0
        abort(); /* Intentionally fail so user can correct issue. */
4744
0
    }
4745
0
    return disp->GetSemaphoreCounterValueKHR(device, semaphore, pValue);
4746
0
}
4747
4748
VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR(
4749
    VkDevice                                    device,
4750
    const VkSemaphoreWaitInfo*                  pWaitInfo,
4751
0
    uint64_t                                    timeout) {
4752
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4753
0
    if (NULL == disp) {
4754
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4755
0
                   "vkWaitSemaphoresKHR: Invalid device "
4756
0
                   "[VUID-vkWaitSemaphoresKHR-device-parameter]");
4757
0
        abort(); /* Intentionally fail so user can correct issue. */
4758
0
    }
4759
0
    return disp->WaitSemaphoresKHR(device, pWaitInfo, timeout);
4760
0
}
4761
4762
VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR(
4763
    VkDevice                                    device,
4764
0
    const VkSemaphoreSignalInfo*                pSignalInfo) {
4765
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4766
0
    if (NULL == disp) {
4767
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4768
0
                   "vkSignalSemaphoreKHR: Invalid device "
4769
0
                   "[VUID-vkSignalSemaphoreKHR-device-parameter]");
4770
0
        abort(); /* Intentionally fail so user can correct issue. */
4771
0
    }
4772
0
    return disp->SignalSemaphoreKHR(device, pSignalInfo);
4773
0
}
4774
4775
4776
// ---- VK_KHR_fragment_shading_rate extension trampoline/terminators
4777
4778
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR(
4779
    VkPhysicalDevice                            physicalDevice,
4780
    uint32_t*                                   pFragmentShadingRateCount,
4781
0
    VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates) {
4782
0
    const VkLayerInstanceDispatchTable *disp;
4783
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4784
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4785
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4786
0
                   "vkGetPhysicalDeviceFragmentShadingRatesKHR: Invalid physicalDevice "
4787
0
                   "[VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter]");
4788
0
        abort(); /* Intentionally fail so user can correct issue. */
4789
0
    }
4790
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4791
0
    return disp->GetPhysicalDeviceFragmentShadingRatesKHR(unwrapped_phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4792
0
}
4793
4794
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceFragmentShadingRatesKHR(
4795
    VkPhysicalDevice                            physicalDevice,
4796
    uint32_t*                                   pFragmentShadingRateCount,
4797
0
    VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates) {
4798
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4799
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4800
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR) {
4801
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4802
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceFragmentShadingRatesKHR");
4803
0
        abort(); /* Intentionally fail so user can correct issue. */
4804
0
    }
4805
0
    return icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR(phys_dev_term->phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4806
0
}
4807
4808
VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateKHR(
4809
    VkCommandBuffer                             commandBuffer,
4810
    const VkExtent2D*                           pFragmentSize,
4811
0
    const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]) {
4812
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4813
0
    if (NULL == disp) {
4814
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4815
0
                   "vkCmdSetFragmentShadingRateKHR: Invalid commandBuffer "
4816
0
                   "[VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter]");
4817
0
        abort(); /* Intentionally fail so user can correct issue. */
4818
0
    }
4819
0
    disp->CmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
4820
0
}
4821
4822
4823
// ---- VK_KHR_dynamic_rendering_local_read extension trampoline/terminators
4824
4825
VKAPI_ATTR void VKAPI_CALL CmdSetRenderingAttachmentLocationsKHR(
4826
    VkCommandBuffer                             commandBuffer,
4827
0
    const VkRenderingAttachmentLocationInfo*    pLocationInfo) {
4828
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4829
0
    if (NULL == disp) {
4830
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4831
0
                   "vkCmdSetRenderingAttachmentLocationsKHR: Invalid commandBuffer "
4832
0
                   "[VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-parameter]");
4833
0
        abort(); /* Intentionally fail so user can correct issue. */
4834
0
    }
4835
0
    disp->CmdSetRenderingAttachmentLocationsKHR(commandBuffer, pLocationInfo);
4836
0
}
4837
4838
VKAPI_ATTR void VKAPI_CALL CmdSetRenderingInputAttachmentIndicesKHR(
4839
    VkCommandBuffer                             commandBuffer,
4840
0
    const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo) {
4841
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4842
0
    if (NULL == disp) {
4843
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4844
0
                   "vkCmdSetRenderingInputAttachmentIndicesKHR: Invalid commandBuffer "
4845
0
                   "[VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-parameter]");
4846
0
        abort(); /* Intentionally fail so user can correct issue. */
4847
0
    }
4848
0
    disp->CmdSetRenderingInputAttachmentIndicesKHR(commandBuffer, pInputAttachmentIndexInfo);
4849
0
}
4850
4851
4852
// ---- VK_KHR_present_wait extension trampoline/terminators
4853
4854
VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR(
4855
    VkDevice                                    device,
4856
    VkSwapchainKHR                              swapchain,
4857
    uint64_t                                    presentId,
4858
0
    uint64_t                                    timeout) {
4859
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4860
0
    if (NULL == disp) {
4861
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4862
0
                   "vkWaitForPresentKHR: Invalid device "
4863
0
                   "[VUID-vkWaitForPresentKHR-device-parameter]");
4864
0
        abort(); /* Intentionally fail so user can correct issue. */
4865
0
    }
4866
0
    return disp->WaitForPresentKHR(device, swapchain, presentId, timeout);
4867
0
}
4868
4869
4870
// ---- VK_KHR_buffer_device_address extension trampoline/terminators
4871
4872
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR(
4873
    VkDevice                                    device,
4874
0
    const VkBufferDeviceAddressInfo*            pInfo) {
4875
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4876
0
    if (NULL == disp) {
4877
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4878
0
                   "vkGetBufferDeviceAddressKHR: Invalid device "
4879
0
                   "[VUID-vkGetBufferDeviceAddressKHR-device-parameter]");
4880
0
        abort(); /* Intentionally fail so user can correct issue. */
4881
0
    }
4882
0
    return disp->GetBufferDeviceAddressKHR(device, pInfo);
4883
0
}
4884
4885
VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR(
4886
    VkDevice                                    device,
4887
0
    const VkBufferDeviceAddressInfo*            pInfo) {
4888
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4889
0
    if (NULL == disp) {
4890
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4891
0
                   "vkGetBufferOpaqueCaptureAddressKHR: Invalid device "
4892
0
                   "[VUID-vkGetBufferOpaqueCaptureAddressKHR-device-parameter]");
4893
0
        abort(); /* Intentionally fail so user can correct issue. */
4894
0
    }
4895
0
    return disp->GetBufferOpaqueCaptureAddressKHR(device, pInfo);
4896
0
}
4897
4898
VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR(
4899
    VkDevice                                    device,
4900
0
    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
4901
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4902
0
    if (NULL == disp) {
4903
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4904
0
                   "vkGetDeviceMemoryOpaqueCaptureAddressKHR: Invalid device "
4905
0
                   "[VUID-vkGetDeviceMemoryOpaqueCaptureAddressKHR-device-parameter]");
4906
0
        abort(); /* Intentionally fail so user can correct issue. */
4907
0
    }
4908
0
    return disp->GetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo);
4909
0
}
4910
4911
4912
// ---- VK_KHR_deferred_host_operations extension trampoline/terminators
4913
4914
VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR(
4915
    VkDevice                                    device,
4916
    const VkAllocationCallbacks*                pAllocator,
4917
0
    VkDeferredOperationKHR*                     pDeferredOperation) {
4918
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4919
0
    if (NULL == disp) {
4920
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4921
0
                   "vkCreateDeferredOperationKHR: Invalid device "
4922
0
                   "[VUID-vkCreateDeferredOperationKHR-device-parameter]");
4923
0
        abort(); /* Intentionally fail so user can correct issue. */
4924
0
    }
4925
0
    return disp->CreateDeferredOperationKHR(device, pAllocator, pDeferredOperation);
4926
0
}
4927
4928
VKAPI_ATTR void VKAPI_CALL DestroyDeferredOperationKHR(
4929
    VkDevice                                    device,
4930
    VkDeferredOperationKHR                      operation,
4931
0
    const VkAllocationCallbacks*                pAllocator) {
4932
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4933
0
    if (NULL == disp) {
4934
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4935
0
                   "vkDestroyDeferredOperationKHR: Invalid device "
4936
0
                   "[VUID-vkDestroyDeferredOperationKHR-device-parameter]");
4937
0
        abort(); /* Intentionally fail so user can correct issue. */
4938
0
    }
4939
0
    disp->DestroyDeferredOperationKHR(device, operation, pAllocator);
4940
0
}
4941
4942
VKAPI_ATTR uint32_t VKAPI_CALL GetDeferredOperationMaxConcurrencyKHR(
4943
    VkDevice                                    device,
4944
0
    VkDeferredOperationKHR                      operation) {
4945
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4946
0
    if (NULL == disp) {
4947
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4948
0
                   "vkGetDeferredOperationMaxConcurrencyKHR: Invalid device "
4949
0
                   "[VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter]");
4950
0
        abort(); /* Intentionally fail so user can correct issue. */
4951
0
    }
4952
0
    return disp->GetDeferredOperationMaxConcurrencyKHR(device, operation);
4953
0
}
4954
4955
VKAPI_ATTR VkResult VKAPI_CALL GetDeferredOperationResultKHR(
4956
    VkDevice                                    device,
4957
0
    VkDeferredOperationKHR                      operation) {
4958
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4959
0
    if (NULL == disp) {
4960
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4961
0
                   "vkGetDeferredOperationResultKHR: Invalid device "
4962
0
                   "[VUID-vkGetDeferredOperationResultKHR-device-parameter]");
4963
0
        abort(); /* Intentionally fail so user can correct issue. */
4964
0
    }
4965
0
    return disp->GetDeferredOperationResultKHR(device, operation);
4966
0
}
4967
4968
VKAPI_ATTR VkResult VKAPI_CALL DeferredOperationJoinKHR(
4969
    VkDevice                                    device,
4970
0
    VkDeferredOperationKHR                      operation) {
4971
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4972
0
    if (NULL == disp) {
4973
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4974
0
                   "vkDeferredOperationJoinKHR: Invalid device "
4975
0
                   "[VUID-vkDeferredOperationJoinKHR-device-parameter]");
4976
0
        abort(); /* Intentionally fail so user can correct issue. */
4977
0
    }
4978
0
    return disp->DeferredOperationJoinKHR(device, operation);
4979
0
}
4980
4981
4982
// ---- VK_KHR_pipeline_executable_properties extension trampoline/terminators
4983
4984
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR(
4985
    VkDevice                                    device,
4986
    const VkPipelineInfoKHR*                    pPipelineInfo,
4987
    uint32_t*                                   pExecutableCount,
4988
0
    VkPipelineExecutablePropertiesKHR*          pProperties) {
4989
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkGetPipelineExecutablePropertiesKHR: Invalid device "
4993
0
                   "[VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter]");
4994
0
        abort(); /* Intentionally fail so user can correct issue. */
4995
0
    }
4996
0
    return disp->GetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties);
4997
0
}
4998
4999
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR(
5000
    VkDevice                                    device,
5001
    const VkPipelineExecutableInfoKHR*          pExecutableInfo,
5002
    uint32_t*                                   pStatisticCount,
5003
0
    VkPipelineExecutableStatisticKHR*           pStatistics) {
5004
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5005
0
    if (NULL == disp) {
5006
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5007
0
                   "vkGetPipelineExecutableStatisticsKHR: Invalid device "
5008
0
                   "[VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter]");
5009
0
        abort(); /* Intentionally fail so user can correct issue. */
5010
0
    }
5011
0
    return disp->GetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics);
5012
0
}
5013
5014
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR(
5015
    VkDevice                                    device,
5016
    const VkPipelineExecutableInfoKHR*          pExecutableInfo,
5017
    uint32_t*                                   pInternalRepresentationCount,
5018
0
    VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
5019
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5020
0
    if (NULL == disp) {
5021
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5022
0
                   "vkGetPipelineExecutableInternalRepresentationsKHR: Invalid device "
5023
0
                   "[VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter]");
5024
0
        abort(); /* Intentionally fail so user can correct issue. */
5025
0
    }
5026
0
    return disp->GetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations);
5027
0
}
5028
5029
5030
// ---- VK_KHR_map_memory2 extension trampoline/terminators
5031
5032
VKAPI_ATTR VkResult VKAPI_CALL MapMemory2KHR(
5033
    VkDevice                                    device,
5034
    const VkMemoryMapInfo*                      pMemoryMapInfo,
5035
0
    void**                                      ppData) {
5036
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5037
0
    if (NULL == disp) {
5038
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5039
0
                   "vkMapMemory2KHR: Invalid device "
5040
0
                   "[VUID-vkMapMemory2KHR-device-parameter]");
5041
0
        abort(); /* Intentionally fail so user can correct issue. */
5042
0
    }
5043
0
    return disp->MapMemory2KHR(device, pMemoryMapInfo, ppData);
5044
0
}
5045
5046
VKAPI_ATTR VkResult VKAPI_CALL UnmapMemory2KHR(
5047
    VkDevice                                    device,
5048
0
    const VkMemoryUnmapInfo*                    pMemoryUnmapInfo) {
5049
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5050
0
    if (NULL == disp) {
5051
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5052
0
                   "vkUnmapMemory2KHR: Invalid device "
5053
0
                   "[VUID-vkUnmapMemory2KHR-device-parameter]");
5054
0
        abort(); /* Intentionally fail so user can correct issue. */
5055
0
    }
5056
0
    return disp->UnmapMemory2KHR(device, pMemoryUnmapInfo);
5057
0
}
5058
5059
5060
// ---- VK_KHR_video_encode_queue extension trampoline/terminators
5061
5062
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
5063
    VkPhysicalDevice                            physicalDevice,
5064
    const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
5065
0
    VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties) {
5066
0
    const VkLayerInstanceDispatchTable *disp;
5067
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5068
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5069
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5070
0
                   "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR: Invalid physicalDevice "
5071
0
                   "[VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameter]");
5072
0
        abort(); /* Intentionally fail so user can correct issue. */
5073
0
    }
5074
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
5075
0
    return disp->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(unwrapped_phys_dev, pQualityLevelInfo, pQualityLevelProperties);
5076
0
}
5077
5078
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
5079
    VkPhysicalDevice                            physicalDevice,
5080
    const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
5081
0
    VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties) {
5082
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5083
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5084
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) {
5085
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5086
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
5087
0
        abort(); /* Intentionally fail so user can correct issue. */
5088
0
    }
5089
0
    return icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(phys_dev_term->phys_dev, pQualityLevelInfo, pQualityLevelProperties);
5090
0
}
5091
5092
VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR(
5093
    VkDevice                                    device,
5094
    const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
5095
    VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
5096
    size_t*                                     pDataSize,
5097
0
    void*                                       pData) {
5098
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5099
0
    if (NULL == disp) {
5100
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5101
0
                   "vkGetEncodedVideoSessionParametersKHR: Invalid device "
5102
0
                   "[VUID-vkGetEncodedVideoSessionParametersKHR-device-parameter]");
5103
0
        abort(); /* Intentionally fail so user can correct issue. */
5104
0
    }
5105
0
    return disp->GetEncodedVideoSessionParametersKHR(device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData);
5106
0
}
5107
5108
VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR(
5109
    VkCommandBuffer                             commandBuffer,
5110
0
    const VkVideoEncodeInfoKHR*                 pEncodeInfo) {
5111
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5112
0
    if (NULL == disp) {
5113
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5114
0
                   "vkCmdEncodeVideoKHR: Invalid commandBuffer "
5115
0
                   "[VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter]");
5116
0
        abort(); /* Intentionally fail so user can correct issue. */
5117
0
    }
5118
0
    disp->CmdEncodeVideoKHR(commandBuffer, pEncodeInfo);
5119
0
}
5120
5121
5122
// ---- VK_KHR_synchronization2 extension trampoline/terminators
5123
5124
VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR(
5125
    VkCommandBuffer                             commandBuffer,
5126
    VkEvent                                     event,
5127
0
    const VkDependencyInfo*                     pDependencyInfo) {
5128
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5129
0
    if (NULL == disp) {
5130
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5131
0
                   "vkCmdSetEvent2KHR: Invalid commandBuffer "
5132
0
                   "[VUID-vkCmdSetEvent2KHR-commandBuffer-parameter]");
5133
0
        abort(); /* Intentionally fail so user can correct issue. */
5134
0
    }
5135
0
    disp->CmdSetEvent2KHR(commandBuffer, event, pDependencyInfo);
5136
0
}
5137
5138
VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR(
5139
    VkCommandBuffer                             commandBuffer,
5140
    VkEvent                                     event,
5141
0
    VkPipelineStageFlags2                       stageMask) {
5142
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5143
0
    if (NULL == disp) {
5144
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5145
0
                   "vkCmdResetEvent2KHR: Invalid commandBuffer "
5146
0
                   "[VUID-vkCmdResetEvent2KHR-commandBuffer-parameter]");
5147
0
        abort(); /* Intentionally fail so user can correct issue. */
5148
0
    }
5149
0
    disp->CmdResetEvent2KHR(commandBuffer, event, stageMask);
5150
0
}
5151
5152
VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR(
5153
    VkCommandBuffer                             commandBuffer,
5154
    uint32_t                                    eventCount,
5155
    const VkEvent*                              pEvents,
5156
0
    const VkDependencyInfo*                     pDependencyInfos) {
5157
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5158
0
    if (NULL == disp) {
5159
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5160
0
                   "vkCmdWaitEvents2KHR: Invalid commandBuffer "
5161
0
                   "[VUID-vkCmdWaitEvents2KHR-commandBuffer-parameter]");
5162
0
        abort(); /* Intentionally fail so user can correct issue. */
5163
0
    }
5164
0
    disp->CmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos);
5165
0
}
5166
5167
VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2KHR(
5168
    VkCommandBuffer                             commandBuffer,
5169
0
    const VkDependencyInfo*                     pDependencyInfo) {
5170
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5171
0
    if (NULL == disp) {
5172
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5173
0
                   "vkCmdPipelineBarrier2KHR: Invalid commandBuffer "
5174
0
                   "[VUID-vkCmdPipelineBarrier2KHR-commandBuffer-parameter]");
5175
0
        abort(); /* Intentionally fail so user can correct issue. */
5176
0
    }
5177
0
    disp->CmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo);
5178
0
}
5179
5180
VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR(
5181
    VkCommandBuffer                             commandBuffer,
5182
    VkPipelineStageFlags2                       stage,
5183
    VkQueryPool                                 queryPool,
5184
0
    uint32_t                                    query) {
5185
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5186
0
    if (NULL == disp) {
5187
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5188
0
                   "vkCmdWriteTimestamp2KHR: Invalid commandBuffer "
5189
0
                   "[VUID-vkCmdWriteTimestamp2KHR-commandBuffer-parameter]");
5190
0
        abort(); /* Intentionally fail so user can correct issue. */
5191
0
    }
5192
0
    disp->CmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query);
5193
0
}
5194
5195
VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR(
5196
    VkQueue                                     queue,
5197
    uint32_t                                    submitCount,
5198
    const VkSubmitInfo2*                        pSubmits,
5199
0
    VkFence                                     fence) {
5200
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
5201
0
    if (NULL == disp) {
5202
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5203
0
                   "vkQueueSubmit2KHR: Invalid queue "
5204
0
                   "[VUID-vkQueueSubmit2KHR-queue-parameter]");
5205
0
        abort(); /* Intentionally fail so user can correct issue. */
5206
0
    }
5207
0
    return disp->QueueSubmit2KHR(queue, submitCount, pSubmits, fence);
5208
0
}
5209
5210
5211
// ---- VK_KHR_device_address_commands extension trampoline/terminators
5212
5213
VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer3KHR(
5214
    VkCommandBuffer                             commandBuffer,
5215
0
    const VkBindIndexBuffer3InfoKHR*            pInfo) {
5216
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5217
0
    if (NULL == disp) {
5218
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5219
0
                   "vkCmdBindIndexBuffer3KHR: Invalid commandBuffer "
5220
0
                   "[VUID-vkCmdBindIndexBuffer3KHR-commandBuffer-parameter]");
5221
0
        abort(); /* Intentionally fail so user can correct issue. */
5222
0
    }
5223
0
    disp->CmdBindIndexBuffer3KHR(commandBuffer, pInfo);
5224
0
}
5225
5226
VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers3KHR(
5227
    VkCommandBuffer                             commandBuffer,
5228
    uint32_t                                    firstBinding,
5229
    uint32_t                                    bindingCount,
5230
0
    const VkBindVertexBuffer3InfoKHR*           pBindingInfos) {
5231
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5232
0
    if (NULL == disp) {
5233
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5234
0
                   "vkCmdBindVertexBuffers3KHR: Invalid commandBuffer "
5235
0
                   "[VUID-vkCmdBindVertexBuffers3KHR-commandBuffer-parameter]");
5236
0
        abort(); /* Intentionally fail so user can correct issue. */
5237
0
    }
5238
0
    disp->CmdBindVertexBuffers3KHR(commandBuffer, firstBinding, bindingCount, pBindingInfos);
5239
0
}
5240
5241
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirect2KHR(
5242
    VkCommandBuffer                             commandBuffer,
5243
0
    const VkDrawIndirect2InfoKHR*               pInfo) {
5244
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5245
0
    if (NULL == disp) {
5246
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5247
0
                   "vkCmdDrawIndirect2KHR: Invalid commandBuffer "
5248
0
                   "[VUID-vkCmdDrawIndirect2KHR-commandBuffer-parameter]");
5249
0
        abort(); /* Intentionally fail so user can correct issue. */
5250
0
    }
5251
0
    disp->CmdDrawIndirect2KHR(commandBuffer, pInfo);
5252
0
}
5253
5254
VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirect2KHR(
5255
    VkCommandBuffer                             commandBuffer,
5256
0
    const VkDrawIndirect2InfoKHR*               pInfo) {
5257
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5258
0
    if (NULL == disp) {
5259
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5260
0
                   "vkCmdDrawIndexedIndirect2KHR: Invalid commandBuffer "
5261
0
                   "[VUID-vkCmdDrawIndexedIndirect2KHR-commandBuffer-parameter]");
5262
0
        abort(); /* Intentionally fail so user can correct issue. */
5263
0
    }
5264
0
    disp->CmdDrawIndexedIndirect2KHR(commandBuffer, pInfo);
5265
0
}
5266
5267
VKAPI_ATTR void VKAPI_CALL CmdDispatchIndirect2KHR(
5268
    VkCommandBuffer                             commandBuffer,
5269
0
    const VkDispatchIndirect2InfoKHR*           pInfo) {
5270
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5271
0
    if (NULL == disp) {
5272
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5273
0
                   "vkCmdDispatchIndirect2KHR: Invalid commandBuffer "
5274
0
                   "[VUID-vkCmdDispatchIndirect2KHR-commandBuffer-parameter]");
5275
0
        abort(); /* Intentionally fail so user can correct issue. */
5276
0
    }
5277
0
    disp->CmdDispatchIndirect2KHR(commandBuffer, pInfo);
5278
0
}
5279
5280
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryKHR(
5281
    VkCommandBuffer                             commandBuffer,
5282
0
    const VkCopyDeviceMemoryInfoKHR*            pCopyMemoryInfo) {
5283
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdCopyMemoryKHR: Invalid commandBuffer "
5287
0
                   "[VUID-vkCmdCopyMemoryKHR-commandBuffer-parameter]");
5288
0
        abort(); /* Intentionally fail so user can correct issue. */
5289
0
    }
5290
0
    disp->CmdCopyMemoryKHR(commandBuffer, pCopyMemoryInfo);
5291
0
}
5292
5293
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageKHR(
5294
    VkCommandBuffer                             commandBuffer,
5295
0
    const VkCopyDeviceMemoryImageInfoKHR*       pCopyMemoryInfo) {
5296
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5297
0
    if (NULL == disp) {
5298
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5299
0
                   "vkCmdCopyMemoryToImageKHR: Invalid commandBuffer "
5300
0
                   "[VUID-vkCmdCopyMemoryToImageKHR-commandBuffer-parameter]");
5301
0
        abort(); /* Intentionally fail so user can correct issue. */
5302
0
    }
5303
0
    disp->CmdCopyMemoryToImageKHR(commandBuffer, pCopyMemoryInfo);
5304
0
}
5305
5306
VKAPI_ATTR void VKAPI_CALL CmdCopyImageToMemoryKHR(
5307
    VkCommandBuffer                             commandBuffer,
5308
0
    const VkCopyDeviceMemoryImageInfoKHR*       pCopyMemoryInfo) {
5309
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5310
0
    if (NULL == disp) {
5311
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5312
0
                   "vkCmdCopyImageToMemoryKHR: Invalid commandBuffer "
5313
0
                   "[VUID-vkCmdCopyImageToMemoryKHR-commandBuffer-parameter]");
5314
0
        abort(); /* Intentionally fail so user can correct issue. */
5315
0
    }
5316
0
    disp->CmdCopyImageToMemoryKHR(commandBuffer, pCopyMemoryInfo);
5317
0
}
5318
5319
VKAPI_ATTR void VKAPI_CALL CmdUpdateMemoryKHR(
5320
    VkCommandBuffer                             commandBuffer,
5321
    const VkDeviceAddressRangeKHR*              pDstRange,
5322
    VkAddressCommandFlagsKHR                    dstFlags,
5323
    VkDeviceSize                                dataSize,
5324
0
    const void*                                 pData) {
5325
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5326
0
    if (NULL == disp) {
5327
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5328
0
                   "vkCmdUpdateMemoryKHR: Invalid commandBuffer "
5329
0
                   "[VUID-vkCmdUpdateMemoryKHR-commandBuffer-parameter]");
5330
0
        abort(); /* Intentionally fail so user can correct issue. */
5331
0
    }
5332
0
    disp->CmdUpdateMemoryKHR(commandBuffer, pDstRange, dstFlags, dataSize, pData);
5333
0
}
5334
5335
VKAPI_ATTR void VKAPI_CALL CmdFillMemoryKHR(
5336
    VkCommandBuffer                             commandBuffer,
5337
    const VkDeviceAddressRangeKHR*              pDstRange,
5338
    VkAddressCommandFlagsKHR                    dstFlags,
5339
0
    uint32_t                                    data) {
5340
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5341
0
    if (NULL == disp) {
5342
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5343
0
                   "vkCmdFillMemoryKHR: Invalid commandBuffer "
5344
0
                   "[VUID-vkCmdFillMemoryKHR-commandBuffer-parameter]");
5345
0
        abort(); /* Intentionally fail so user can correct issue. */
5346
0
    }
5347
0
    disp->CmdFillMemoryKHR(commandBuffer, pDstRange, dstFlags, data);
5348
0
}
5349
5350
VKAPI_ATTR void VKAPI_CALL CmdCopyQueryPoolResultsToMemoryKHR(
5351
    VkCommandBuffer                             commandBuffer,
5352
    VkQueryPool                                 queryPool,
5353
    uint32_t                                    firstQuery,
5354
    uint32_t                                    queryCount,
5355
    const VkStridedDeviceAddressRangeKHR*       pDstRange,
5356
    VkAddressCommandFlagsKHR                    dstFlags,
5357
0
    VkQueryResultFlags                          queryResultFlags) {
5358
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5359
0
    if (NULL == disp) {
5360
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5361
0
                   "vkCmdCopyQueryPoolResultsToMemoryKHR: Invalid commandBuffer "
5362
0
                   "[VUID-vkCmdCopyQueryPoolResultsToMemoryKHR-commandBuffer-parameter]");
5363
0
        abort(); /* Intentionally fail so user can correct issue. */
5364
0
    }
5365
0
    disp->CmdCopyQueryPoolResultsToMemoryKHR(commandBuffer, queryPool, firstQuery, queryCount, pDstRange, dstFlags, queryResultFlags);
5366
0
}
5367
5368
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCount2KHR(
5369
    VkCommandBuffer                             commandBuffer,
5370
0
    const VkDrawIndirectCount2InfoKHR*          pInfo) {
5371
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5372
0
    if (NULL == disp) {
5373
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5374
0
                   "vkCmdDrawIndirectCount2KHR: Invalid commandBuffer "
5375
0
                   "[VUID-vkCmdDrawIndirectCount2KHR-commandBuffer-parameter]");
5376
0
        abort(); /* Intentionally fail so user can correct issue. */
5377
0
    }
5378
0
    disp->CmdDrawIndirectCount2KHR(commandBuffer, pInfo);
5379
0
}
5380
5381
VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCount2KHR(
5382
    VkCommandBuffer                             commandBuffer,
5383
0
    const VkDrawIndirectCount2InfoKHR*          pInfo) {
5384
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5385
0
    if (NULL == disp) {
5386
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5387
0
                   "vkCmdDrawIndexedIndirectCount2KHR: Invalid commandBuffer "
5388
0
                   "[VUID-vkCmdDrawIndexedIndirectCount2KHR-commandBuffer-parameter]");
5389
0
        abort(); /* Intentionally fail so user can correct issue. */
5390
0
    }
5391
0
    disp->CmdDrawIndexedIndirectCount2KHR(commandBuffer, pInfo);
5392
0
}
5393
5394
VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRendering2EXT(
5395
    VkCommandBuffer                             commandBuffer,
5396
0
    const VkConditionalRenderingBeginInfo2EXT*  pConditionalRenderingBegin) {
5397
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5398
0
    if (NULL == disp) {
5399
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5400
0
                   "vkCmdBeginConditionalRendering2EXT: Invalid commandBuffer "
5401
0
                   "[VUID-vkCmdBeginConditionalRendering2EXT-commandBuffer-parameter]");
5402
0
        abort(); /* Intentionally fail so user can correct issue. */
5403
0
    }
5404
0
    disp->CmdBeginConditionalRendering2EXT(commandBuffer, pConditionalRenderingBegin);
5405
0
}
5406
5407
VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffers2EXT(
5408
    VkCommandBuffer                             commandBuffer,
5409
    uint32_t                                    firstBinding,
5410
    uint32_t                                    bindingCount,
5411
0
    const VkBindTransformFeedbackBuffer2InfoEXT* pBindingInfos) {
5412
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5413
0
    if (NULL == disp) {
5414
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5415
0
                   "vkCmdBindTransformFeedbackBuffers2EXT: Invalid commandBuffer "
5416
0
                   "[VUID-vkCmdBindTransformFeedbackBuffers2EXT-commandBuffer-parameter]");
5417
0
        abort(); /* Intentionally fail so user can correct issue. */
5418
0
    }
5419
0
    disp->CmdBindTransformFeedbackBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBindingInfos);
5420
0
}
5421
5422
VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedback2EXT(
5423
    VkCommandBuffer                             commandBuffer,
5424
    uint32_t                                    firstCounterRange,
5425
    uint32_t                                    counterRangeCount,
5426
0
    const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos) {
5427
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5428
0
    if (NULL == disp) {
5429
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5430
0
                   "vkCmdBeginTransformFeedback2EXT: Invalid commandBuffer "
5431
0
                   "[VUID-vkCmdBeginTransformFeedback2EXT-commandBuffer-parameter]");
5432
0
        abort(); /* Intentionally fail so user can correct issue. */
5433
0
    }
5434
0
    disp->CmdBeginTransformFeedback2EXT(commandBuffer, firstCounterRange, counterRangeCount, pCounterInfos);
5435
0
}
5436
5437
VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedback2EXT(
5438
    VkCommandBuffer                             commandBuffer,
5439
    uint32_t                                    firstCounterRange,
5440
    uint32_t                                    counterRangeCount,
5441
0
    const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos) {
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
                   "vkCmdEndTransformFeedback2EXT: Invalid commandBuffer "
5446
0
                   "[VUID-vkCmdEndTransformFeedback2EXT-commandBuffer-parameter]");
5447
0
        abort(); /* Intentionally fail so user can correct issue. */
5448
0
    }
5449
0
    disp->CmdEndTransformFeedback2EXT(commandBuffer, firstCounterRange, counterRangeCount, pCounterInfos);
5450
0
}
5451
5452
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCount2EXT(
5453
    VkCommandBuffer                             commandBuffer,
5454
    uint32_t                                    instanceCount,
5455
    uint32_t                                    firstInstance,
5456
    const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfo,
5457
    uint32_t                                    counterOffset,
5458
0
    uint32_t                                    vertexStride) {
5459
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5460
0
    if (NULL == disp) {
5461
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5462
0
                   "vkCmdDrawIndirectByteCount2EXT: Invalid commandBuffer "
5463
0
                   "[VUID-vkCmdDrawIndirectByteCount2EXT-commandBuffer-parameter]");
5464
0
        abort(); /* Intentionally fail so user can correct issue. */
5465
0
    }
5466
0
    disp->CmdDrawIndirectByteCount2EXT(commandBuffer, instanceCount, firstInstance, pCounterInfo, counterOffset, vertexStride);
5467
0
}
5468
5469
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirect2EXT(
5470
    VkCommandBuffer                             commandBuffer,
5471
0
    const VkDrawIndirect2InfoKHR*               pInfo) {
5472
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5473
0
    if (NULL == disp) {
5474
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5475
0
                   "vkCmdDrawMeshTasksIndirect2EXT: Invalid commandBuffer "
5476
0
                   "[VUID-vkCmdDrawMeshTasksIndirect2EXT-commandBuffer-parameter]");
5477
0
        abort(); /* Intentionally fail so user can correct issue. */
5478
0
    }
5479
0
    disp->CmdDrawMeshTasksIndirect2EXT(commandBuffer, pInfo);
5480
0
}
5481
5482
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCount2EXT(
5483
    VkCommandBuffer                             commandBuffer,
5484
0
    const VkDrawIndirectCount2InfoKHR*          pInfo) {
5485
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5486
0
    if (NULL == disp) {
5487
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5488
0
                   "vkCmdDrawMeshTasksIndirectCount2EXT: Invalid commandBuffer "
5489
0
                   "[VUID-vkCmdDrawMeshTasksIndirectCount2EXT-commandBuffer-parameter]");
5490
0
        abort(); /* Intentionally fail so user can correct issue. */
5491
0
    }
5492
0
    disp->CmdDrawMeshTasksIndirectCount2EXT(commandBuffer, pInfo);
5493
0
}
5494
5495
VKAPI_ATTR void VKAPI_CALL CmdWriteMarkerToMemoryAMD(
5496
    VkCommandBuffer                             commandBuffer,
5497
0
    const VkMemoryMarkerInfoAMD*                pInfo) {
5498
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5499
0
    if (NULL == disp) {
5500
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5501
0
                   "vkCmdWriteMarkerToMemoryAMD: Invalid commandBuffer "
5502
0
                   "[VUID-vkCmdWriteMarkerToMemoryAMD-commandBuffer-parameter]");
5503
0
        abort(); /* Intentionally fail so user can correct issue. */
5504
0
    }
5505
0
    disp->CmdWriteMarkerToMemoryAMD(commandBuffer, pInfo);
5506
0
}
5507
5508
VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructure2KHR(
5509
    VkDevice                                    device,
5510
    const VkAccelerationStructureCreateInfo2KHR* pCreateInfo,
5511
    const VkAllocationCallbacks*                pAllocator,
5512
0
    VkAccelerationStructureKHR*                 pAccelerationStructure) {
5513
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5514
0
    if (NULL == disp) {
5515
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5516
0
                   "vkCreateAccelerationStructure2KHR: Invalid device "
5517
0
                   "[VUID-vkCreateAccelerationStructure2KHR-device-parameter]");
5518
0
        abort(); /* Intentionally fail so user can correct issue. */
5519
0
    }
5520
0
    return disp->CreateAccelerationStructure2KHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
5521
0
}
5522
5523
5524
// ---- VK_KHR_copy_commands2 extension trampoline/terminators
5525
5526
VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR(
5527
    VkCommandBuffer                             commandBuffer,
5528
0
    const VkCopyBufferInfo2*                    pCopyBufferInfo) {
5529
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5530
0
    if (NULL == disp) {
5531
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5532
0
                   "vkCmdCopyBuffer2KHR: Invalid commandBuffer "
5533
0
                   "[VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter]");
5534
0
        abort(); /* Intentionally fail so user can correct issue. */
5535
0
    }
5536
0
    disp->CmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo);
5537
0
}
5538
5539
VKAPI_ATTR void VKAPI_CALL CmdCopyImage2KHR(
5540
    VkCommandBuffer                             commandBuffer,
5541
0
    const VkCopyImageInfo2*                     pCopyImageInfo) {
5542
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5543
0
    if (NULL == disp) {
5544
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5545
0
                   "vkCmdCopyImage2KHR: Invalid commandBuffer "
5546
0
                   "[VUID-vkCmdCopyImage2KHR-commandBuffer-parameter]");
5547
0
        abort(); /* Intentionally fail so user can correct issue. */
5548
0
    }
5549
0
    disp->CmdCopyImage2KHR(commandBuffer, pCopyImageInfo);
5550
0
}
5551
5552
VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2KHR(
5553
    VkCommandBuffer                             commandBuffer,
5554
0
    const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo) {
5555
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5556
0
    if (NULL == disp) {
5557
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5558
0
                   "vkCmdCopyBufferToImage2KHR: Invalid commandBuffer "
5559
0
                   "[VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter]");
5560
0
        abort(); /* Intentionally fail so user can correct issue. */
5561
0
    }
5562
0
    disp->CmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo);
5563
0
}
5564
5565
VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2KHR(
5566
    VkCommandBuffer                             commandBuffer,
5567
0
    const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo) {
5568
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5569
0
    if (NULL == disp) {
5570
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5571
0
                   "vkCmdCopyImageToBuffer2KHR: Invalid commandBuffer "
5572
0
                   "[VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter]");
5573
0
        abort(); /* Intentionally fail so user can correct issue. */
5574
0
    }
5575
0
    disp->CmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo);
5576
0
}
5577
5578
VKAPI_ATTR void VKAPI_CALL CmdBlitImage2KHR(
5579
    VkCommandBuffer                             commandBuffer,
5580
0
    const VkBlitImageInfo2*                     pBlitImageInfo) {
5581
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5582
0
    if (NULL == disp) {
5583
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5584
0
                   "vkCmdBlitImage2KHR: Invalid commandBuffer "
5585
0
                   "[VUID-vkCmdBlitImage2KHR-commandBuffer-parameter]");
5586
0
        abort(); /* Intentionally fail so user can correct issue. */
5587
0
    }
5588
0
    disp->CmdBlitImage2KHR(commandBuffer, pBlitImageInfo);
5589
0
}
5590
5591
VKAPI_ATTR void VKAPI_CALL CmdResolveImage2KHR(
5592
    VkCommandBuffer                             commandBuffer,
5593
0
    const VkResolveImageInfo2*                  pResolveImageInfo) {
5594
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5595
0
    if (NULL == disp) {
5596
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5597
0
                   "vkCmdResolveImage2KHR: Invalid commandBuffer "
5598
0
                   "[VUID-vkCmdResolveImage2KHR-commandBuffer-parameter]");
5599
0
        abort(); /* Intentionally fail so user can correct issue. */
5600
0
    }
5601
0
    disp->CmdResolveImage2KHR(commandBuffer, pResolveImageInfo);
5602
0
}
5603
5604
5605
// ---- VK_KHR_ray_tracing_maintenance1 extension trampoline/terminators
5606
5607
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirect2KHR(
5608
    VkCommandBuffer                             commandBuffer,
5609
0
    VkDeviceAddress                             indirectDeviceAddress) {
5610
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5611
0
    if (NULL == disp) {
5612
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5613
0
                   "vkCmdTraceRaysIndirect2KHR: Invalid commandBuffer "
5614
0
                   "[VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter]");
5615
0
        abort(); /* Intentionally fail so user can correct issue. */
5616
0
    }
5617
0
    disp->CmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress);
5618
0
}
5619
5620
5621
// ---- VK_KHR_maintenance4 extension trampoline/terminators
5622
5623
VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR(
5624
    VkDevice                                    device,
5625
    const VkDeviceBufferMemoryRequirements*     pInfo,
5626
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
5627
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5628
0
    if (NULL == disp) {
5629
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5630
0
                   "vkGetDeviceBufferMemoryRequirementsKHR: Invalid device "
5631
0
                   "[VUID-vkGetDeviceBufferMemoryRequirementsKHR-device-parameter]");
5632
0
        abort(); /* Intentionally fail so user can correct issue. */
5633
0
    }
5634
0
    disp->GetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
5635
0
}
5636
5637
VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR(
5638
    VkDevice                                    device,
5639
    const VkDeviceImageMemoryRequirements*      pInfo,
5640
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
5641
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5642
0
    if (NULL == disp) {
5643
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5644
0
                   "vkGetDeviceImageMemoryRequirementsKHR: Invalid device "
5645
0
                   "[VUID-vkGetDeviceImageMemoryRequirementsKHR-device-parameter]");
5646
0
        abort(); /* Intentionally fail so user can correct issue. */
5647
0
    }
5648
0
    disp->GetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
5649
0
}
5650
5651
VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR(
5652
    VkDevice                                    device,
5653
    const VkDeviceImageMemoryRequirements*      pInfo,
5654
    uint32_t*                                   pSparseMemoryRequirementCount,
5655
0
    VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements) {
5656
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5657
0
    if (NULL == disp) {
5658
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5659
0
                   "vkGetDeviceImageSparseMemoryRequirementsKHR: Invalid device "
5660
0
                   "[VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-device-parameter]");
5661
0
        abort(); /* Intentionally fail so user can correct issue. */
5662
0
    }
5663
0
    disp->GetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
5664
0
}
5665
5666
5667
// ---- VK_KHR_maintenance5 extension trampoline/terminators
5668
5669
VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR(
5670
    VkCommandBuffer                             commandBuffer,
5671
    VkBuffer                                    buffer,
5672
    VkDeviceSize                                offset,
5673
    VkDeviceSize                                size,
5674
0
    VkIndexType                                 indexType) {
5675
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5676
0
    if (NULL == disp) {
5677
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5678
0
                   "vkCmdBindIndexBuffer2KHR: Invalid commandBuffer "
5679
0
                   "[VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter]");
5680
0
        abort(); /* Intentionally fail so user can correct issue. */
5681
0
    }
5682
0
    disp->CmdBindIndexBuffer2KHR(commandBuffer, buffer, offset, size, indexType);
5683
0
}
5684
5685
VKAPI_ATTR void VKAPI_CALL GetRenderingAreaGranularityKHR(
5686
    VkDevice                                    device,
5687
    const VkRenderingAreaInfo*                  pRenderingAreaInfo,
5688
0
    VkExtent2D*                                 pGranularity) {
5689
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5690
0
    if (NULL == disp) {
5691
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5692
0
                   "vkGetRenderingAreaGranularityKHR: Invalid device "
5693
0
                   "[VUID-vkGetRenderingAreaGranularityKHR-device-parameter]");
5694
0
        abort(); /* Intentionally fail so user can correct issue. */
5695
0
    }
5696
0
    disp->GetRenderingAreaGranularityKHR(device, pRenderingAreaInfo, pGranularity);
5697
0
}
5698
5699
VKAPI_ATTR void VKAPI_CALL GetDeviceImageSubresourceLayoutKHR(
5700
    VkDevice                                    device,
5701
    const VkDeviceImageSubresourceInfo*         pInfo,
5702
0
    VkSubresourceLayout2*                       pLayout) {
5703
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5704
0
    if (NULL == disp) {
5705
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5706
0
                   "vkGetDeviceImageSubresourceLayoutKHR: Invalid device "
5707
0
                   "[VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter]");
5708
0
        abort(); /* Intentionally fail so user can correct issue. */
5709
0
    }
5710
0
    disp->GetDeviceImageSubresourceLayoutKHR(device, pInfo, pLayout);
5711
0
}
5712
5713
VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR(
5714
    VkDevice                                    device,
5715
    VkImage                                     image,
5716
    const VkImageSubresource2*                  pSubresource,
5717
0
    VkSubresourceLayout2*                       pLayout) {
5718
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5719
0
    if (NULL == disp) {
5720
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5721
0
                   "vkGetImageSubresourceLayout2KHR: Invalid device "
5722
0
                   "[VUID-vkGetImageSubresourceLayout2KHR-device-parameter]");
5723
0
        abort(); /* Intentionally fail so user can correct issue. */
5724
0
    }
5725
0
    disp->GetImageSubresourceLayout2KHR(device, image, pSubresource, pLayout);
5726
0
}
5727
5728
5729
// ---- VK_KHR_present_wait2 extension trampoline/terminators
5730
5731
VKAPI_ATTR VkResult VKAPI_CALL WaitForPresent2KHR(
5732
    VkDevice                                    device,
5733
    VkSwapchainKHR                              swapchain,
5734
0
    const VkPresentWait2InfoKHR*                pPresentWait2Info) {
5735
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5736
0
    if (NULL == disp) {
5737
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5738
0
                   "vkWaitForPresent2KHR: Invalid device "
5739
0
                   "[VUID-vkWaitForPresent2KHR-device-parameter]");
5740
0
        abort(); /* Intentionally fail so user can correct issue. */
5741
0
    }
5742
0
    return disp->WaitForPresent2KHR(device, swapchain, pPresentWait2Info);
5743
0
}
5744
5745
5746
// ---- VK_KHR_pipeline_binary extension trampoline/terminators
5747
5748
VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineBinariesKHR(
5749
    VkDevice                                    device,
5750
    const VkPipelineBinaryCreateInfoKHR*        pCreateInfo,
5751
    const VkAllocationCallbacks*                pAllocator,
5752
0
    VkPipelineBinaryHandlesInfoKHR*             pBinaries) {
5753
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5754
0
    if (NULL == disp) {
5755
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5756
0
                   "vkCreatePipelineBinariesKHR: Invalid device "
5757
0
                   "[VUID-vkCreatePipelineBinariesKHR-device-parameter]");
5758
0
        abort(); /* Intentionally fail so user can correct issue. */
5759
0
    }
5760
0
    return disp->CreatePipelineBinariesKHR(device, pCreateInfo, pAllocator, pBinaries);
5761
0
}
5762
5763
VKAPI_ATTR void VKAPI_CALL DestroyPipelineBinaryKHR(
5764
    VkDevice                                    device,
5765
    VkPipelineBinaryKHR                         pipelineBinary,
5766
0
    const VkAllocationCallbacks*                pAllocator) {
5767
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5768
0
    if (NULL == disp) {
5769
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5770
0
                   "vkDestroyPipelineBinaryKHR: Invalid device "
5771
0
                   "[VUID-vkDestroyPipelineBinaryKHR-device-parameter]");
5772
0
        abort(); /* Intentionally fail so user can correct issue. */
5773
0
    }
5774
0
    disp->DestroyPipelineBinaryKHR(device, pipelineBinary, pAllocator);
5775
0
}
5776
5777
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineKeyKHR(
5778
    VkDevice                                    device,
5779
    const VkPipelineCreateInfoKHR*              pPipelineCreateInfo,
5780
0
    VkPipelineBinaryKeyKHR*                     pPipelineKey) {
5781
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5782
0
    if (NULL == disp) {
5783
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5784
0
                   "vkGetPipelineKeyKHR: Invalid device "
5785
0
                   "[VUID-vkGetPipelineKeyKHR-device-parameter]");
5786
0
        abort(); /* Intentionally fail so user can correct issue. */
5787
0
    }
5788
0
    return disp->GetPipelineKeyKHR(device, pPipelineCreateInfo, pPipelineKey);
5789
0
}
5790
5791
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineBinaryDataKHR(
5792
    VkDevice                                    device,
5793
    const VkPipelineBinaryDataInfoKHR*          pInfo,
5794
    VkPipelineBinaryKeyKHR*                     pPipelineBinaryKey,
5795
    size_t*                                     pPipelineBinaryDataSize,
5796
0
    void*                                       pPipelineBinaryData) {
5797
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5798
0
    if (NULL == disp) {
5799
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5800
0
                   "vkGetPipelineBinaryDataKHR: Invalid device "
5801
0
                   "[VUID-vkGetPipelineBinaryDataKHR-device-parameter]");
5802
0
        abort(); /* Intentionally fail so user can correct issue. */
5803
0
    }
5804
0
    return disp->GetPipelineBinaryDataKHR(device, pInfo, pPipelineBinaryKey, pPipelineBinaryDataSize, pPipelineBinaryData);
5805
0
}
5806
5807
VKAPI_ATTR VkResult VKAPI_CALL ReleaseCapturedPipelineDataKHR(
5808
    VkDevice                                    device,
5809
    const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
5810
0
    const VkAllocationCallbacks*                pAllocator) {
5811
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5812
0
    if (NULL == disp) {
5813
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5814
0
                   "vkReleaseCapturedPipelineDataKHR: Invalid device "
5815
0
                   "[VUID-vkReleaseCapturedPipelineDataKHR-device-parameter]");
5816
0
        abort(); /* Intentionally fail so user can correct issue. */
5817
0
    }
5818
0
    return disp->ReleaseCapturedPipelineDataKHR(device, pInfo, pAllocator);
5819
0
}
5820
5821
5822
// ---- VK_KHR_swapchain_maintenance1 extension trampoline/terminators
5823
5824
VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesKHR(
5825
    VkDevice                                    device,
5826
0
    const VkReleaseSwapchainImagesInfoKHR*      pReleaseInfo) {
5827
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5828
0
    if (NULL == disp) {
5829
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5830
0
                   "vkReleaseSwapchainImagesKHR: Invalid device "
5831
0
                   "[VUID-vkReleaseSwapchainImagesKHR-device-parameter]");
5832
0
        abort(); /* Intentionally fail so user can correct issue. */
5833
0
    }
5834
0
    return disp->ReleaseSwapchainImagesKHR(device, pReleaseInfo);
5835
0
}
5836
5837
5838
// ---- VK_KHR_cooperative_matrix extension trampoline/terminators
5839
5840
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
5841
    VkPhysicalDevice                            physicalDevice,
5842
    uint32_t*                                   pPropertyCount,
5843
0
    VkCooperativeMatrixPropertiesKHR*           pProperties) {
5844
0
    const VkLayerInstanceDispatchTable *disp;
5845
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5846
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5847
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5848
0
                   "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR: Invalid physicalDevice "
5849
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter]");
5850
0
        abort(); /* Intentionally fail so user can correct issue. */
5851
0
    }
5852
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
5853
0
    return disp->GetPhysicalDeviceCooperativeMatrixPropertiesKHR(unwrapped_phys_dev, pPropertyCount, pProperties);
5854
0
}
5855
5856
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
5857
    VkPhysicalDevice                            physicalDevice,
5858
    uint32_t*                                   pPropertyCount,
5859
0
    VkCooperativeMatrixPropertiesKHR*           pProperties) {
5860
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5861
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5862
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR) {
5863
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5864
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesKHR");
5865
0
        abort(); /* Intentionally fail so user can correct issue. */
5866
0
    }
5867
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR(phys_dev_term->phys_dev, pPropertyCount, pProperties);
5868
0
}
5869
5870
5871
// ---- VK_KHR_line_rasterization extension trampoline/terminators
5872
5873
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleKHR(
5874
    VkCommandBuffer                             commandBuffer,
5875
    uint32_t                                    lineStippleFactor,
5876
0
    uint16_t                                    lineStipplePattern) {
5877
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5878
0
    if (NULL == disp) {
5879
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5880
0
                   "vkCmdSetLineStippleKHR: Invalid commandBuffer "
5881
0
                   "[VUID-vkCmdSetLineStippleKHR-commandBuffer-parameter]");
5882
0
        abort(); /* Intentionally fail so user can correct issue. */
5883
0
    }
5884
0
    disp->CmdSetLineStippleKHR(commandBuffer, lineStippleFactor, lineStipplePattern);
5885
0
}
5886
5887
5888
// ---- VK_KHR_calibrated_timestamps extension trampoline/terminators
5889
5890
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsKHR(
5891
    VkPhysicalDevice                            physicalDevice,
5892
    uint32_t*                                   pTimeDomainCount,
5893
0
    VkTimeDomainKHR*                            pTimeDomains) {
5894
0
    const VkLayerInstanceDispatchTable *disp;
5895
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5896
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5897
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5898
0
                   "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR: Invalid physicalDevice "
5899
0
                   "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter]");
5900
0
        abort(); /* Intentionally fail so user can correct issue. */
5901
0
    }
5902
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
5903
0
    return disp->GetPhysicalDeviceCalibrateableTimeDomainsKHR(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
5904
0
}
5905
5906
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR(
5907
    VkPhysicalDevice                            physicalDevice,
5908
    uint32_t*                                   pTimeDomainCount,
5909
0
    VkTimeDomainKHR*                            pTimeDomains) {
5910
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5911
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5912
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR) {
5913
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5914
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsKHR");
5915
0
        abort(); /* Intentionally fail so user can correct issue. */
5916
0
    }
5917
0
    return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
5918
0
}
5919
5920
VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsKHR(
5921
    VkDevice                                    device,
5922
    uint32_t                                    timestampCount,
5923
    const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
5924
    uint64_t*                                   pTimestamps,
5925
0
    uint64_t*                                   pMaxDeviation) {
5926
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5927
0
    if (NULL == disp) {
5928
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5929
0
                   "vkGetCalibratedTimestampsKHR: Invalid device "
5930
0
                   "[VUID-vkGetCalibratedTimestampsKHR-device-parameter]");
5931
0
        abort(); /* Intentionally fail so user can correct issue. */
5932
0
    }
5933
0
    return disp->GetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
5934
0
}
5935
5936
5937
// ---- VK_KHR_maintenance6 extension trampoline/terminators
5938
5939
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets2KHR(
5940
    VkCommandBuffer                             commandBuffer,
5941
0
    const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo) {
5942
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5943
0
    if (NULL == disp) {
5944
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5945
0
                   "vkCmdBindDescriptorSets2KHR: Invalid commandBuffer "
5946
0
                   "[VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-parameter]");
5947
0
        abort(); /* Intentionally fail so user can correct issue. */
5948
0
    }
5949
0
    disp->CmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo);
5950
0
}
5951
5952
VKAPI_ATTR void VKAPI_CALL CmdPushConstants2KHR(
5953
    VkCommandBuffer                             commandBuffer,
5954
0
    const VkPushConstantsInfo*                  pPushConstantsInfo) {
5955
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5956
0
    if (NULL == disp) {
5957
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5958
0
                   "vkCmdPushConstants2KHR: Invalid commandBuffer "
5959
0
                   "[VUID-vkCmdPushConstants2KHR-commandBuffer-parameter]");
5960
0
        abort(); /* Intentionally fail so user can correct issue. */
5961
0
    }
5962
0
    disp->CmdPushConstants2KHR(commandBuffer, pPushConstantsInfo);
5963
0
}
5964
5965
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSet2KHR(
5966
    VkCommandBuffer                             commandBuffer,
5967
0
    const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo) {
5968
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5969
0
    if (NULL == disp) {
5970
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5971
0
                   "vkCmdPushDescriptorSet2KHR: Invalid commandBuffer "
5972
0
                   "[VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-parameter]");
5973
0
        abort(); /* Intentionally fail so user can correct issue. */
5974
0
    }
5975
0
    disp->CmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo);
5976
0
}
5977
5978
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplate2KHR(
5979
    VkCommandBuffer                             commandBuffer,
5980
0
    const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo) {
5981
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5982
0
    if (NULL == disp) {
5983
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5984
0
                   "vkCmdPushDescriptorSetWithTemplate2KHR: Invalid commandBuffer "
5985
0
                   "[VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-parameter]");
5986
0
        abort(); /* Intentionally fail so user can correct issue. */
5987
0
    }
5988
0
    disp->CmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo);
5989
0
}
5990
5991
VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsets2EXT(
5992
    VkCommandBuffer                             commandBuffer,
5993
0
    const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo) {
5994
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5995
0
    if (NULL == disp) {
5996
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5997
0
                   "vkCmdSetDescriptorBufferOffsets2EXT: Invalid commandBuffer "
5998
0
                   "[VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-parameter]");
5999
0
        abort(); /* Intentionally fail so user can correct issue. */
6000
0
    }
6001
0
    disp->CmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo);
6002
0
}
6003
6004
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplers2EXT(
6005
    VkCommandBuffer                             commandBuffer,
6006
0
    const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo) {
6007
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6008
0
    if (NULL == disp) {
6009
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6010
0
                   "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT: Invalid commandBuffer "
6011
0
                   "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-parameter]");
6012
0
        abort(); /* Intentionally fail so user can correct issue. */
6013
0
    }
6014
0
    disp->CmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo);
6015
0
}
6016
6017
6018
// ---- VK_KHR_copy_memory_indirect extension trampoline/terminators
6019
6020
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectKHR(
6021
    VkCommandBuffer                             commandBuffer,
6022
0
    const VkCopyMemoryIndirectInfoKHR*          pCopyMemoryIndirectInfo) {
6023
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6024
0
    if (NULL == disp) {
6025
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6026
0
                   "vkCmdCopyMemoryIndirectKHR: Invalid commandBuffer "
6027
0
                   "[VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-parameter]");
6028
0
        abort(); /* Intentionally fail so user can correct issue. */
6029
0
    }
6030
0
    disp->CmdCopyMemoryIndirectKHR(commandBuffer, pCopyMemoryIndirectInfo);
6031
0
}
6032
6033
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectKHR(
6034
    VkCommandBuffer                             commandBuffer,
6035
0
    const VkCopyMemoryToImageIndirectInfoKHR*   pCopyMemoryToImageIndirectInfo) {
6036
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6037
0
    if (NULL == disp) {
6038
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6039
0
                   "vkCmdCopyMemoryToImageIndirectKHR: Invalid commandBuffer "
6040
0
                   "[VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-parameter]");
6041
0
        abort(); /* Intentionally fail so user can correct issue. */
6042
0
    }
6043
0
    disp->CmdCopyMemoryToImageIndirectKHR(commandBuffer, pCopyMemoryToImageIndirectInfo);
6044
0
}
6045
6046
6047
// ---- VK_KHR_device_fault extension trampoline/terminators
6048
6049
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultReportsKHR(
6050
    VkDevice                                    device,
6051
    uint64_t                                    timeout,
6052
    uint32_t*                                   pFaultCounts,
6053
0
    VkDeviceFaultInfoKHR*                       pFaultInfo) {
6054
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6055
0
    if (NULL == disp) {
6056
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6057
0
                   "vkGetDeviceFaultReportsKHR: Invalid device "
6058
0
                   "[VUID-vkGetDeviceFaultReportsKHR-device-parameter]");
6059
0
        abort(); /* Intentionally fail so user can correct issue. */
6060
0
    }
6061
0
    return disp->GetDeviceFaultReportsKHR(device, timeout, pFaultCounts, pFaultInfo);
6062
0
}
6063
6064
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultDebugInfoKHR(
6065
    VkDevice                                    device,
6066
0
    VkDeviceFaultDebugInfoKHR*                  pDebugInfo) {
6067
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6068
0
    if (NULL == disp) {
6069
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6070
0
                   "vkGetDeviceFaultDebugInfoKHR: Invalid device "
6071
0
                   "[VUID-vkGetDeviceFaultDebugInfoKHR-device-parameter]");
6072
0
        abort(); /* Intentionally fail so user can correct issue. */
6073
0
    }
6074
0
    return disp->GetDeviceFaultDebugInfoKHR(device, pDebugInfo);
6075
0
}
6076
6077
6078
// ---- VK_KHR_maintenance10 extension trampoline/terminators
6079
6080
VKAPI_ATTR void VKAPI_CALL CmdEndRendering2KHR(
6081
    VkCommandBuffer                             commandBuffer,
6082
0
    const VkRenderingEndInfoKHR*                pRenderingEndInfo) {
6083
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6084
0
    if (NULL == disp) {
6085
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6086
0
                   "vkCmdEndRendering2KHR: Invalid commandBuffer "
6087
0
                   "[VUID-vkCmdEndRendering2KHR-commandBuffer-parameter]");
6088
0
        abort(); /* Intentionally fail so user can correct issue. */
6089
0
    }
6090
0
    disp->CmdEndRendering2KHR(commandBuffer, pRenderingEndInfo);
6091
0
}
6092
6093
6094
// ---- VK_EXT_debug_marker extension trampoline/terminators
6095
6096
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
6097
    VkDevice                                    device,
6098
0
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo) {
6099
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkDebugMarkerSetObjectTagEXT: Invalid device "
6103
0
                   "[VUID-vkDebugMarkerSetObjectTagEXT-device-parameter]");
6104
0
        abort(); /* Intentionally fail so user can correct issue. */
6105
0
    }
6106
0
    VkDebugMarkerObjectTagInfoEXT local_tag_info;
6107
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
6108
    // If this is a physical device, we have to replace it with the proper one for the next call.
6109
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
6110
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->object;
6111
0
        local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6112
0
    }
6113
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
6114
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->object;
6115
0
        local_tag_info.object = (uint64_t)(uintptr_t)instance->instance;
6116
0
    }
6117
0
    return disp->DebugMarkerSetObjectTagEXT(device, &local_tag_info);
6118
0
}
6119
6120
VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectTagEXT(
6121
    VkDevice                                    device,
6122
0
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo) {
6123
0
    struct loader_device *dev;
6124
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6125
0
    if (NULL == icd_term || NULL == dev) {
6126
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectTagEXT: Invalid device handle");
6127
0
        abort(); /* Intentionally fail so user can correct issue. */
6128
0
    }
6129
0
    VkDebugMarkerObjectTagInfoEXT local_tag_info;
6130
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
6131
    // If this is a physical device, we have to replace it with the proper one for the next call.
6132
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
6133
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->object;
6134
0
        local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6135
    // 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.
6136
0
    } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
6137
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6138
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pTagInfo->object;
6139
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
6140
0
                local_tag_info.object = (uint64_t)surface;
6141
0
            }
6142
0
        }
6143
    // If this is an instance we have to replace it with the proper one for the next call.
6144
0
    } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
6145
0
        local_tag_info.object = (uint64_t)(uintptr_t)icd_term->instance;
6146
0
    }
6147
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6148
    // debug utils but the driver does not.
6149
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT)
6150
0
        return VK_SUCCESS;
6151
0
    return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT(device, &local_tag_info);
6152
0
}
6153
6154
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
6155
    VkDevice                                    device,
6156
0
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo) {
6157
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6158
0
    if (NULL == disp) {
6159
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6160
0
                   "vkDebugMarkerSetObjectNameEXT: Invalid device "
6161
0
                   "[VUID-vkDebugMarkerSetObjectNameEXT-device-parameter]");
6162
0
        abort(); /* Intentionally fail so user can correct issue. */
6163
0
    }
6164
0
    VkDebugMarkerObjectNameInfoEXT local_name_info;
6165
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
6166
    // If this is a physical device, we have to replace it with the proper one for the next call.
6167
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
6168
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->object;
6169
0
        local_name_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6170
0
    }
6171
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
6172
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->object;
6173
0
        local_name_info.object = (uint64_t)(uintptr_t)instance->instance;
6174
0
    }
6175
0
    return disp->DebugMarkerSetObjectNameEXT(device, &local_name_info);
6176
0
}
6177
6178
VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectNameEXT(
6179
    VkDevice                                    device,
6180
0
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo) {
6181
0
    struct loader_device *dev;
6182
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6183
0
    if (NULL == icd_term || NULL == dev) {
6184
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectNameEXT: Invalid device handle");
6185
0
        abort(); /* Intentionally fail so user can correct issue. */
6186
0
    }
6187
0
    VkDebugMarkerObjectNameInfoEXT local_name_info;
6188
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
6189
    // If this is a physical device, we have to replace it with the proper one for the next call.
6190
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
6191
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->object;
6192
0
        local_name_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6193
    // 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.
6194
0
    } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
6195
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6196
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pNameInfo->object;
6197
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
6198
0
                local_name_info.object = (uint64_t)surface;
6199
0
            }
6200
0
        }
6201
    // If this is an instance we have to replace it with the proper one for the next call.
6202
0
    } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
6203
0
        local_name_info.object = (uint64_t)(uintptr_t)icd_term->instance;
6204
0
    }
6205
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6206
    // debug utils but the driver does not.
6207
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT)
6208
0
        return VK_SUCCESS;
6209
0
    return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT(device, &local_name_info);
6210
0
}
6211
6212
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(
6213
    VkCommandBuffer                             commandBuffer,
6214
0
    const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo) {
6215
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6216
0
    if (NULL == disp) {
6217
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6218
0
                   "vkCmdDebugMarkerBeginEXT: Invalid commandBuffer "
6219
0
                   "[VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter]");
6220
0
        abort(); /* Intentionally fail so user can correct issue. */
6221
0
    }
6222
0
    disp->CmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
6223
0
}
6224
6225
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT(
6226
0
    VkCommandBuffer                             commandBuffer) {
6227
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6228
0
    if (NULL == disp) {
6229
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6230
0
                   "vkCmdDebugMarkerEndEXT: Invalid commandBuffer "
6231
0
                   "[VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter]");
6232
0
        abort(); /* Intentionally fail so user can correct issue. */
6233
0
    }
6234
0
    disp->CmdDebugMarkerEndEXT(commandBuffer);
6235
0
}
6236
6237
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(
6238
    VkCommandBuffer                             commandBuffer,
6239
0
    const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo) {
6240
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6241
0
    if (NULL == disp) {
6242
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6243
0
                   "vkCmdDebugMarkerInsertEXT: Invalid commandBuffer "
6244
0
                   "[VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter]");
6245
0
        abort(); /* Intentionally fail so user can correct issue. */
6246
0
    }
6247
0
    disp->CmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
6248
0
}
6249
6250
6251
// ---- VK_EXT_transform_feedback extension trampoline/terminators
6252
6253
VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT(
6254
    VkCommandBuffer                             commandBuffer,
6255
    uint32_t                                    firstBinding,
6256
    uint32_t                                    bindingCount,
6257
    const VkBuffer*                             pBuffers,
6258
    const VkDeviceSize*                         pOffsets,
6259
0
    const VkDeviceSize*                         pSizes) {
6260
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6261
0
    if (NULL == disp) {
6262
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6263
0
                   "vkCmdBindTransformFeedbackBuffersEXT: Invalid commandBuffer "
6264
0
                   "[VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter]");
6265
0
        abort(); /* Intentionally fail so user can correct issue. */
6266
0
    }
6267
0
    disp->CmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes);
6268
0
}
6269
6270
VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT(
6271
    VkCommandBuffer                             commandBuffer,
6272
    uint32_t                                    firstCounterBuffer,
6273
    uint32_t                                    counterBufferCount,
6274
    const VkBuffer*                             pCounterBuffers,
6275
0
    const VkDeviceSize*                         pCounterBufferOffsets) {
6276
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6277
0
    if (NULL == disp) {
6278
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6279
0
                   "vkCmdBeginTransformFeedbackEXT: Invalid commandBuffer "
6280
0
                   "[VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter]");
6281
0
        abort(); /* Intentionally fail so user can correct issue. */
6282
0
    }
6283
0
    disp->CmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
6284
0
}
6285
6286
VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT(
6287
    VkCommandBuffer                             commandBuffer,
6288
    uint32_t                                    firstCounterBuffer,
6289
    uint32_t                                    counterBufferCount,
6290
    const VkBuffer*                             pCounterBuffers,
6291
0
    const VkDeviceSize*                         pCounterBufferOffsets) {
6292
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6293
0
    if (NULL == disp) {
6294
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6295
0
                   "vkCmdEndTransformFeedbackEXT: Invalid commandBuffer "
6296
0
                   "[VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter]");
6297
0
        abort(); /* Intentionally fail so user can correct issue. */
6298
0
    }
6299
0
    disp->CmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
6300
0
}
6301
6302
VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT(
6303
    VkCommandBuffer                             commandBuffer,
6304
    VkQueryPool                                 queryPool,
6305
    uint32_t                                    query,
6306
    VkQueryControlFlags                         flags,
6307
0
    uint32_t                                    index) {
6308
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6309
0
    if (NULL == disp) {
6310
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6311
0
                   "vkCmdBeginQueryIndexedEXT: Invalid commandBuffer "
6312
0
                   "[VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter]");
6313
0
        abort(); /* Intentionally fail so user can correct issue. */
6314
0
    }
6315
0
    disp->CmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index);
6316
0
}
6317
6318
VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT(
6319
    VkCommandBuffer                             commandBuffer,
6320
    VkQueryPool                                 queryPool,
6321
    uint32_t                                    query,
6322
0
    uint32_t                                    index) {
6323
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6324
0
    if (NULL == disp) {
6325
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6326
0
                   "vkCmdEndQueryIndexedEXT: Invalid commandBuffer "
6327
0
                   "[VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter]");
6328
0
        abort(); /* Intentionally fail so user can correct issue. */
6329
0
    }
6330
0
    disp->CmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index);
6331
0
}
6332
6333
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT(
6334
    VkCommandBuffer                             commandBuffer,
6335
    uint32_t                                    instanceCount,
6336
    uint32_t                                    firstInstance,
6337
    VkBuffer                                    counterBuffer,
6338
    VkDeviceSize                                counterBufferOffset,
6339
    uint32_t                                    counterOffset,
6340
0
    uint32_t                                    vertexStride) {
6341
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6342
0
    if (NULL == disp) {
6343
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6344
0
                   "vkCmdDrawIndirectByteCountEXT: Invalid commandBuffer "
6345
0
                   "[VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter]");
6346
0
        abort(); /* Intentionally fail so user can correct issue. */
6347
0
    }
6348
0
    disp->CmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride);
6349
0
}
6350
6351
6352
// ---- VK_NVX_binary_import extension trampoline/terminators
6353
6354
VKAPI_ATTR VkResult VKAPI_CALL CreateCuModuleNVX(
6355
    VkDevice                                    device,
6356
    const VkCuModuleCreateInfoNVX*              pCreateInfo,
6357
    const VkAllocationCallbacks*                pAllocator,
6358
0
    VkCuModuleNVX*                              pModule) {
6359
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6360
0
    if (NULL == disp) {
6361
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6362
0
                   "vkCreateCuModuleNVX: Invalid device "
6363
0
                   "[VUID-vkCreateCuModuleNVX-device-parameter]");
6364
0
        abort(); /* Intentionally fail so user can correct issue. */
6365
0
    }
6366
0
    return disp->CreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule);
6367
0
}
6368
6369
VKAPI_ATTR VkResult VKAPI_CALL CreateCuFunctionNVX(
6370
    VkDevice                                    device,
6371
    const VkCuFunctionCreateInfoNVX*            pCreateInfo,
6372
    const VkAllocationCallbacks*                pAllocator,
6373
0
    VkCuFunctionNVX*                            pFunction) {
6374
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6375
0
    if (NULL == disp) {
6376
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6377
0
                   "vkCreateCuFunctionNVX: Invalid device "
6378
0
                   "[VUID-vkCreateCuFunctionNVX-device-parameter]");
6379
0
        abort(); /* Intentionally fail so user can correct issue. */
6380
0
    }
6381
0
    return disp->CreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction);
6382
0
}
6383
6384
VKAPI_ATTR void VKAPI_CALL DestroyCuModuleNVX(
6385
    VkDevice                                    device,
6386
    VkCuModuleNVX                               module,
6387
0
    const VkAllocationCallbacks*                pAllocator) {
6388
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6389
0
    if (NULL == disp) {
6390
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6391
0
                   "vkDestroyCuModuleNVX: Invalid device "
6392
0
                   "[VUID-vkDestroyCuModuleNVX-device-parameter]");
6393
0
        abort(); /* Intentionally fail so user can correct issue. */
6394
0
    }
6395
0
    disp->DestroyCuModuleNVX(device, module, pAllocator);
6396
0
}
6397
6398
VKAPI_ATTR void VKAPI_CALL DestroyCuFunctionNVX(
6399
    VkDevice                                    device,
6400
    VkCuFunctionNVX                             function,
6401
0
    const VkAllocationCallbacks*                pAllocator) {
6402
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6403
0
    if (NULL == disp) {
6404
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6405
0
                   "vkDestroyCuFunctionNVX: Invalid device "
6406
0
                   "[VUID-vkDestroyCuFunctionNVX-device-parameter]");
6407
0
        abort(); /* Intentionally fail so user can correct issue. */
6408
0
    }
6409
0
    disp->DestroyCuFunctionNVX(device, function, pAllocator);
6410
0
}
6411
6412
VKAPI_ATTR void VKAPI_CALL CmdCuLaunchKernelNVX(
6413
    VkCommandBuffer                             commandBuffer,
6414
0
    const VkCuLaunchInfoNVX*                    pLaunchInfo) {
6415
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6416
0
    if (NULL == disp) {
6417
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6418
0
                   "vkCmdCuLaunchKernelNVX: Invalid commandBuffer "
6419
0
                   "[VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter]");
6420
0
        abort(); /* Intentionally fail so user can correct issue. */
6421
0
    }
6422
0
    disp->CmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo);
6423
0
}
6424
6425
6426
// ---- VK_NVX_image_view_handle extension trampoline/terminators
6427
6428
VKAPI_ATTR uint32_t VKAPI_CALL GetImageViewHandleNVX(
6429
    VkDevice                                    device,
6430
0
    const VkImageViewHandleInfoNVX*             pInfo) {
6431
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6432
0
    if (NULL == disp) {
6433
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6434
0
                   "vkGetImageViewHandleNVX: Invalid device "
6435
0
                   "[VUID-vkGetImageViewHandleNVX-device-parameter]");
6436
0
        abort(); /* Intentionally fail so user can correct issue. */
6437
0
    }
6438
0
    return disp->GetImageViewHandleNVX(device, pInfo);
6439
0
}
6440
6441
VKAPI_ATTR uint64_t VKAPI_CALL GetImageViewHandle64NVX(
6442
    VkDevice                                    device,
6443
0
    const VkImageViewHandleInfoNVX*             pInfo) {
6444
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6445
0
    if (NULL == disp) {
6446
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6447
0
                   "vkGetImageViewHandle64NVX: Invalid device "
6448
0
                   "[VUID-vkGetImageViewHandle64NVX-device-parameter]");
6449
0
        abort(); /* Intentionally fail so user can correct issue. */
6450
0
    }
6451
0
    return disp->GetImageViewHandle64NVX(device, pInfo);
6452
0
}
6453
6454
VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX(
6455
    VkDevice                                    device,
6456
    VkImageView                                 imageView,
6457
0
    VkImageViewAddressPropertiesNVX*            pProperties) {
6458
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6459
0
    if (NULL == disp) {
6460
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6461
0
                   "vkGetImageViewAddressNVX: Invalid device "
6462
0
                   "[VUID-vkGetImageViewAddressNVX-device-parameter]");
6463
0
        abort(); /* Intentionally fail so user can correct issue. */
6464
0
    }
6465
0
    return disp->GetImageViewAddressNVX(device, imageView, pProperties);
6466
0
}
6467
6468
VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceCombinedImageSamplerIndexNVX(
6469
    VkDevice                                    device,
6470
    uint64_t                                    imageViewIndex,
6471
0
    uint64_t                                    samplerIndex) {
6472
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6473
0
    if (NULL == disp) {
6474
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6475
0
                   "vkGetDeviceCombinedImageSamplerIndexNVX: Invalid device "
6476
0
                   "[VUID-vkGetDeviceCombinedImageSamplerIndexNVX-device-parameter]");
6477
0
        abort(); /* Intentionally fail so user can correct issue. */
6478
0
    }
6479
0
    return disp->GetDeviceCombinedImageSamplerIndexNVX(device, imageViewIndex, samplerIndex);
6480
0
}
6481
6482
6483
// ---- VK_AMD_draw_indirect_count extension trampoline/terminators
6484
6485
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD(
6486
    VkCommandBuffer                             commandBuffer,
6487
    VkBuffer                                    buffer,
6488
    VkDeviceSize                                offset,
6489
    VkBuffer                                    countBuffer,
6490
    VkDeviceSize                                countBufferOffset,
6491
    uint32_t                                    maxDrawCount,
6492
0
    uint32_t                                    stride) {
6493
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6494
0
    if (NULL == disp) {
6495
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6496
0
                   "vkCmdDrawIndirectCountAMD: Invalid commandBuffer "
6497
0
                   "[VUID-vkCmdDrawIndirectCountAMD-commandBuffer-parameter]");
6498
0
        abort(); /* Intentionally fail so user can correct issue. */
6499
0
    }
6500
0
    disp->CmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
6501
0
}
6502
6503
VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD(
6504
    VkCommandBuffer                             commandBuffer,
6505
    VkBuffer                                    buffer,
6506
    VkDeviceSize                                offset,
6507
    VkBuffer                                    countBuffer,
6508
    VkDeviceSize                                countBufferOffset,
6509
    uint32_t                                    maxDrawCount,
6510
0
    uint32_t                                    stride) {
6511
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6512
0
    if (NULL == disp) {
6513
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6514
0
                   "vkCmdDrawIndexedIndirectCountAMD: Invalid commandBuffer "
6515
0
                   "[VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-parameter]");
6516
0
        abort(); /* Intentionally fail so user can correct issue. */
6517
0
    }
6518
0
    disp->CmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
6519
0
}
6520
6521
6522
// ---- VK_AMD_shader_info extension trampoline/terminators
6523
6524
VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD(
6525
    VkDevice                                    device,
6526
    VkPipeline                                  pipeline,
6527
    VkShaderStageFlagBits                       shaderStage,
6528
    VkShaderInfoTypeAMD                         infoType,
6529
    size_t*                                     pInfoSize,
6530
0
    void*                                       pInfo) {
6531
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6532
0
    if (NULL == disp) {
6533
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6534
0
                   "vkGetShaderInfoAMD: Invalid device "
6535
0
                   "[VUID-vkGetShaderInfoAMD-device-parameter]");
6536
0
        abort(); /* Intentionally fail so user can correct issue. */
6537
0
    }
6538
0
    return disp->GetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
6539
0
}
6540
6541
6542
// ---- VK_NV_external_memory_win32 extension trampoline/terminators
6543
6544
#if defined(VK_USE_PLATFORM_WIN32_KHR)
6545
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV(
6546
    VkDevice                                    device,
6547
    VkDeviceMemory                              memory,
6548
    VkExternalMemoryHandleTypeFlagsNV           handleType,
6549
    HANDLE*                                     pHandle) {
6550
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6551
    if (NULL == disp) {
6552
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6553
                   "vkGetMemoryWin32HandleNV: Invalid device "
6554
                   "[VUID-vkGetMemoryWin32HandleNV-device-parameter]");
6555
        abort(); /* Intentionally fail so user can correct issue. */
6556
    }
6557
    return disp->GetMemoryWin32HandleNV(device, memory, handleType, pHandle);
6558
}
6559
6560
#endif // VK_USE_PLATFORM_WIN32_KHR
6561
6562
// ---- VK_EXT_conditional_rendering extension trampoline/terminators
6563
6564
VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRenderingEXT(
6565
    VkCommandBuffer                             commandBuffer,
6566
0
    const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin) {
6567
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6568
0
    if (NULL == disp) {
6569
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6570
0
                   "vkCmdBeginConditionalRenderingEXT: Invalid commandBuffer "
6571
0
                   "[VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter]");
6572
0
        abort(); /* Intentionally fail so user can correct issue. */
6573
0
    }
6574
0
    disp->CmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
6575
0
}
6576
6577
VKAPI_ATTR void VKAPI_CALL CmdEndConditionalRenderingEXT(
6578
0
    VkCommandBuffer                             commandBuffer) {
6579
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6580
0
    if (NULL == disp) {
6581
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6582
0
                   "vkCmdEndConditionalRenderingEXT: Invalid commandBuffer "
6583
0
                   "[VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter]");
6584
0
        abort(); /* Intentionally fail so user can correct issue. */
6585
0
    }
6586
0
    disp->CmdEndConditionalRenderingEXT(commandBuffer);
6587
0
}
6588
6589
6590
// ---- VK_NV_clip_space_w_scaling extension trampoline/terminators
6591
6592
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV(
6593
    VkCommandBuffer                             commandBuffer,
6594
    uint32_t                                    firstViewport,
6595
    uint32_t                                    viewportCount,
6596
0
    const VkViewportWScalingNV*                 pViewportWScalings) {
6597
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6598
0
    if (NULL == disp) {
6599
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6600
0
                   "vkCmdSetViewportWScalingNV: Invalid commandBuffer "
6601
0
                   "[VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter]");
6602
0
        abort(); /* Intentionally fail so user can correct issue. */
6603
0
    }
6604
0
    disp->CmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
6605
0
}
6606
6607
6608
// ---- VK_EXT_display_control extension trampoline/terminators
6609
6610
VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT(
6611
    VkDevice                                    device,
6612
    VkDisplayKHR                                display,
6613
0
    const VkDisplayPowerInfoEXT*                pDisplayPowerInfo) {
6614
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6615
0
    if (NULL == disp) {
6616
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6617
0
                   "vkDisplayPowerControlEXT: Invalid device "
6618
0
                   "[VUID-vkDisplayPowerControlEXT-device-parameter]");
6619
0
        abort(); /* Intentionally fail so user can correct issue. */
6620
0
    }
6621
0
    return disp->DisplayPowerControlEXT(device, display, pDisplayPowerInfo);
6622
0
}
6623
6624
VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT(
6625
    VkDevice                                    device,
6626
    const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
6627
    const VkAllocationCallbacks*                pAllocator,
6628
0
    VkFence*                                    pFence) {
6629
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6630
0
    if (NULL == disp) {
6631
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6632
0
                   "vkRegisterDeviceEventEXT: Invalid device "
6633
0
                   "[VUID-vkRegisterDeviceEventEXT-device-parameter]");
6634
0
        abort(); /* Intentionally fail so user can correct issue. */
6635
0
    }
6636
0
    return disp->RegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
6637
0
}
6638
6639
VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT(
6640
    VkDevice                                    device,
6641
    VkDisplayKHR                                display,
6642
    const VkDisplayEventInfoEXT*                pDisplayEventInfo,
6643
    const VkAllocationCallbacks*                pAllocator,
6644
0
    VkFence*                                    pFence) {
6645
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6646
0
    if (NULL == disp) {
6647
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6648
0
                   "vkRegisterDisplayEventEXT: Invalid device "
6649
0
                   "[VUID-vkRegisterDisplayEventEXT-device-parameter]");
6650
0
        abort(); /* Intentionally fail so user can correct issue. */
6651
0
    }
6652
0
    return disp->RegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
6653
0
}
6654
6655
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT(
6656
    VkDevice                                    device,
6657
    VkSwapchainKHR                              swapchain,
6658
    VkSurfaceCounterFlagBitsEXT                 counter,
6659
0
    uint64_t*                                   pCounterValue) {
6660
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6661
0
    if (NULL == disp) {
6662
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6663
0
                   "vkGetSwapchainCounterEXT: Invalid device "
6664
0
                   "[VUID-vkGetSwapchainCounterEXT-device-parameter]");
6665
0
        abort(); /* Intentionally fail so user can correct issue. */
6666
0
    }
6667
0
    return disp->GetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
6668
0
}
6669
6670
6671
// ---- VK_GOOGLE_display_timing extension trampoline/terminators
6672
6673
VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE(
6674
    VkDevice                                    device,
6675
    VkSwapchainKHR                              swapchain,
6676
0
    VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties) {
6677
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6678
0
    if (NULL == disp) {
6679
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6680
0
                   "vkGetRefreshCycleDurationGOOGLE: Invalid device "
6681
0
                   "[VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter]");
6682
0
        abort(); /* Intentionally fail so user can correct issue. */
6683
0
    }
6684
0
    return disp->GetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
6685
0
}
6686
6687
VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE(
6688
    VkDevice                                    device,
6689
    VkSwapchainKHR                              swapchain,
6690
    uint32_t*                                   pPresentationTimingCount,
6691
0
    VkPastPresentationTimingGOOGLE*             pPresentationTimings) {
6692
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6693
0
    if (NULL == disp) {
6694
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6695
0
                   "vkGetPastPresentationTimingGOOGLE: Invalid device "
6696
0
                   "[VUID-vkGetPastPresentationTimingGOOGLE-device-parameter]");
6697
0
        abort(); /* Intentionally fail so user can correct issue. */
6698
0
    }
6699
0
    return disp->GetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
6700
0
}
6701
6702
6703
// ---- VK_EXT_discard_rectangles extension trampoline/terminators
6704
6705
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT(
6706
    VkCommandBuffer                             commandBuffer,
6707
    uint32_t                                    firstDiscardRectangle,
6708
    uint32_t                                    discardRectangleCount,
6709
0
    const VkRect2D*                             pDiscardRectangles) {
6710
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6711
0
    if (NULL == disp) {
6712
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6713
0
                   "vkCmdSetDiscardRectangleEXT: Invalid commandBuffer "
6714
0
                   "[VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter]");
6715
0
        abort(); /* Intentionally fail so user can correct issue. */
6716
0
    }
6717
0
    disp->CmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
6718
0
}
6719
6720
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEnableEXT(
6721
    VkCommandBuffer                             commandBuffer,
6722
0
    VkBool32                                    discardRectangleEnable) {
6723
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6724
0
    if (NULL == disp) {
6725
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6726
0
                   "vkCmdSetDiscardRectangleEnableEXT: Invalid commandBuffer "
6727
0
                   "[VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameter]");
6728
0
        abort(); /* Intentionally fail so user can correct issue. */
6729
0
    }
6730
0
    disp->CmdSetDiscardRectangleEnableEXT(commandBuffer, discardRectangleEnable);
6731
0
}
6732
6733
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleModeEXT(
6734
    VkCommandBuffer                             commandBuffer,
6735
0
    VkDiscardRectangleModeEXT                   discardRectangleMode) {
6736
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6737
0
    if (NULL == disp) {
6738
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6739
0
                   "vkCmdSetDiscardRectangleModeEXT: Invalid commandBuffer "
6740
0
                   "[VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameter]");
6741
0
        abort(); /* Intentionally fail so user can correct issue. */
6742
0
    }
6743
0
    disp->CmdSetDiscardRectangleModeEXT(commandBuffer, discardRectangleMode);
6744
0
}
6745
6746
6747
// ---- VK_EXT_hdr_metadata extension trampoline/terminators
6748
6749
VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT(
6750
    VkDevice                                    device,
6751
    uint32_t                                    swapchainCount,
6752
    const VkSwapchainKHR*                       pSwapchains,
6753
0
    const VkHdrMetadataEXT*                     pMetadata) {
6754
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6755
0
    if (NULL == disp) {
6756
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6757
0
                   "vkSetHdrMetadataEXT: Invalid device "
6758
0
                   "[VUID-vkSetHdrMetadataEXT-device-parameter]");
6759
0
        abort(); /* Intentionally fail so user can correct issue. */
6760
0
    }
6761
0
    disp->SetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
6762
0
}
6763
6764
6765
// ---- VK_EXT_debug_utils extension trampoline/terminators
6766
6767
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
6768
    VkDevice                                    device,
6769
0
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo) {
6770
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6771
0
    if (NULL == disp) {
6772
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6773
0
                   "vkSetDebugUtilsObjectNameEXT: Invalid device "
6774
0
                   "[VUID-vkSetDebugUtilsObjectNameEXT-device-parameter]");
6775
0
        abort(); /* Intentionally fail so user can correct issue. */
6776
0
    }
6777
0
    VkDebugUtilsObjectNameInfoEXT local_name_info;
6778
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
6779
    // If this is a physical device, we have to replace it with the proper one for the next call.
6780
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6781
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->objectHandle;
6782
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6783
0
    }
6784
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6785
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->objectHandle;
6786
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
6787
0
    }
6788
0
    if (disp->SetDebugUtilsObjectNameEXT != NULL) {
6789
0
        return disp->SetDebugUtilsObjectNameEXT(device, &local_name_info);
6790
0
    } else {
6791
0
        return VK_SUCCESS;
6792
0
    }
6793
0
}
6794
6795
VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectNameEXT(
6796
    VkDevice                                    device,
6797
0
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo) {
6798
0
    struct loader_device *dev;
6799
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6800
0
    if (NULL == icd_term || NULL == dev) {
6801
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectNameEXT: Invalid device handle");
6802
0
        abort(); /* Intentionally fail so user can correct issue. */
6803
0
    }
6804
0
    VkDebugUtilsObjectNameInfoEXT local_name_info;
6805
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
6806
    // If this is a physical device, we have to replace it with the proper one for the next call.
6807
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6808
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->objectHandle;
6809
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6810
    // 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.
6811
0
    } else if (pNameInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
6812
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6813
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pNameInfo->objectHandle;
6814
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
6815
0
                local_name_info.objectHandle = (uint64_t)surface;
6816
0
            }
6817
0
        }
6818
    // If this is an instance we have to replace it with the proper one for the next call.
6819
0
    } else if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6820
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
6821
0
    }
6822
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6823
    // debug utils but the driver does not.
6824
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT)
6825
0
        return VK_SUCCESS;
6826
0
    return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT(device, &local_name_info);
6827
0
}
6828
6829
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
6830
    VkDevice                                    device,
6831
0
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo) {
6832
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6833
0
    if (NULL == disp) {
6834
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6835
0
                   "vkSetDebugUtilsObjectTagEXT: Invalid device "
6836
0
                   "[VUID-vkSetDebugUtilsObjectTagEXT-device-parameter]");
6837
0
        abort(); /* Intentionally fail so user can correct issue. */
6838
0
    }
6839
0
    VkDebugUtilsObjectTagInfoEXT local_tag_info;
6840
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
6841
    // If this is a physical device, we have to replace it with the proper one for the next call.
6842
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6843
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->objectHandle;
6844
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6845
0
    }
6846
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6847
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->objectHandle;
6848
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
6849
0
    }
6850
0
    if (disp->SetDebugUtilsObjectTagEXT != NULL) {
6851
0
        return disp->SetDebugUtilsObjectTagEXT(device, &local_tag_info);
6852
0
    } else {
6853
0
        return VK_SUCCESS;
6854
0
    }
6855
0
}
6856
6857
VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectTagEXT(
6858
    VkDevice                                    device,
6859
0
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo) {
6860
0
    struct loader_device *dev;
6861
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6862
0
    if (NULL == icd_term || NULL == dev) {
6863
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectTagEXT: Invalid device handle");
6864
0
        abort(); /* Intentionally fail so user can correct issue. */
6865
0
    }
6866
0
    VkDebugUtilsObjectTagInfoEXT local_tag_info;
6867
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
6868
    // If this is a physical device, we have to replace it with the proper one for the next call.
6869
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6870
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->objectHandle;
6871
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6872
    // 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.
6873
0
    } else if (pTagInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
6874
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6875
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pTagInfo->objectHandle;
6876
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
6877
0
                local_tag_info.objectHandle = (uint64_t)surface;
6878
0
            }
6879
0
        }
6880
    // If this is an instance we have to replace it with the proper one for the next call.
6881
0
    } else if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6882
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
6883
0
    }
6884
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6885
    // debug utils but the driver does not.
6886
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT)
6887
0
        return VK_SUCCESS;
6888
0
    return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT(device, &local_tag_info);
6889
0
}
6890
6891
VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT(
6892
    VkQueue                                     queue,
6893
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6894
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6895
0
    if (NULL == disp) {
6896
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6897
0
                   "vkQueueBeginDebugUtilsLabelEXT: Invalid queue "
6898
0
                   "[VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter]");
6899
0
        abort(); /* Intentionally fail so user can correct issue. */
6900
0
    }
6901
0
    if (disp->QueueBeginDebugUtilsLabelEXT != NULL) {
6902
0
        disp->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
6903
0
    }
6904
0
}
6905
6906
VKAPI_ATTR void VKAPI_CALL terminator_QueueBeginDebugUtilsLabelEXT(
6907
    VkQueue                                     queue,
6908
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6909
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6910
0
    if (NULL == dispatch_table) {
6911
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");
6912
0
        abort(); /* Intentionally fail so user can correct issue. */
6913
0
    }
6914
    // Only call down if the device supports the function
6915
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT)
6916
0
        dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
6917
0
}
6918
6919
VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT(
6920
0
    VkQueue                                     queue) {
6921
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6922
0
    if (NULL == disp) {
6923
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6924
0
                   "vkQueueEndDebugUtilsLabelEXT: Invalid queue "
6925
0
                   "[VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter]");
6926
0
        abort(); /* Intentionally fail so user can correct issue. */
6927
0
    }
6928
0
    if (disp->QueueEndDebugUtilsLabelEXT != NULL) {
6929
0
        disp->QueueEndDebugUtilsLabelEXT(queue);
6930
0
    }
6931
0
}
6932
6933
VKAPI_ATTR void VKAPI_CALL terminator_QueueEndDebugUtilsLabelEXT(
6934
0
    VkQueue                                     queue) {
6935
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6936
0
    if (NULL == dispatch_table) {
6937
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");
6938
0
        abort(); /* Intentionally fail so user can correct issue. */
6939
0
    }
6940
    // Only call down if the device supports the function
6941
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT)
6942
0
        dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT(queue);
6943
0
}
6944
6945
VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT(
6946
    VkQueue                                     queue,
6947
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6948
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6949
0
    if (NULL == disp) {
6950
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6951
0
                   "vkQueueInsertDebugUtilsLabelEXT: Invalid queue "
6952
0
                   "[VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter]");
6953
0
        abort(); /* Intentionally fail so user can correct issue. */
6954
0
    }
6955
0
    if (disp->QueueInsertDebugUtilsLabelEXT != NULL) {
6956
0
        disp->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
6957
0
    }
6958
0
}
6959
6960
VKAPI_ATTR void VKAPI_CALL terminator_QueueInsertDebugUtilsLabelEXT(
6961
    VkQueue                                     queue,
6962
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6963
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6964
0
    if (NULL == dispatch_table) {
6965
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");
6966
0
        abort(); /* Intentionally fail so user can correct issue. */
6967
0
    }
6968
    // Only call down if the device supports the function
6969
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT)
6970
0
        dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
6971
0
}
6972
6973
VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT(
6974
    VkCommandBuffer                             commandBuffer,
6975
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6976
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6977
0
    if (NULL == disp) {
6978
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6979
0
                   "vkCmdBeginDebugUtilsLabelEXT: Invalid commandBuffer "
6980
0
                   "[VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter]");
6981
0
        abort(); /* Intentionally fail so user can correct issue. */
6982
0
    }
6983
0
    if (disp->CmdBeginDebugUtilsLabelEXT != NULL) {
6984
0
        disp->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6985
0
    }
6986
0
}
6987
6988
VKAPI_ATTR void VKAPI_CALL terminator_CmdBeginDebugUtilsLabelEXT(
6989
    VkCommandBuffer                             commandBuffer,
6990
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6991
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6992
0
    if (NULL == dispatch_table) {
6993
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");
6994
0
        abort(); /* Intentionally fail so user can correct issue. */
6995
0
    }
6996
    // Only call down if the device supports the function
6997
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT)
6998
0
        dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6999
0
}
7000
7001
VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT(
7002
0
    VkCommandBuffer                             commandBuffer) {
7003
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7004
0
    if (NULL == disp) {
7005
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7006
0
                   "vkCmdEndDebugUtilsLabelEXT: Invalid commandBuffer "
7007
0
                   "[VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter]");
7008
0
        abort(); /* Intentionally fail so user can correct issue. */
7009
0
    }
7010
0
    if (disp->CmdEndDebugUtilsLabelEXT != NULL) {
7011
0
        disp->CmdEndDebugUtilsLabelEXT(commandBuffer);
7012
0
    }
7013
0
}
7014
7015
VKAPI_ATTR void VKAPI_CALL terminator_CmdEndDebugUtilsLabelEXT(
7016
0
    VkCommandBuffer                             commandBuffer) {
7017
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
7018
0
    if (NULL == dispatch_table) {
7019
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");
7020
0
        abort(); /* Intentionally fail so user can correct issue. */
7021
0
    }
7022
    // Only call down if the device supports the function
7023
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT)
7024
0
        dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT(commandBuffer);
7025
0
}
7026
7027
VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT(
7028
    VkCommandBuffer                             commandBuffer,
7029
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
7030
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7031
0
    if (NULL == disp) {
7032
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7033
0
                   "vkCmdInsertDebugUtilsLabelEXT: Invalid commandBuffer "
7034
0
                   "[VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter]");
7035
0
        abort(); /* Intentionally fail so user can correct issue. */
7036
0
    }
7037
0
    if (disp->CmdInsertDebugUtilsLabelEXT != NULL) {
7038
0
        disp->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
7039
0
    }
7040
0
}
7041
7042
VKAPI_ATTR void VKAPI_CALL terminator_CmdInsertDebugUtilsLabelEXT(
7043
    VkCommandBuffer                             commandBuffer,
7044
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
7045
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
7046
0
    if (NULL == dispatch_table) {
7047
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");
7048
0
        abort(); /* Intentionally fail so user can correct issue. */
7049
0
    }
7050
    // Only call down if the device supports the function
7051
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT)
7052
0
        dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
7053
0
}
7054
7055
7056
// ---- VK_ANDROID_external_memory_android_hardware_buffer extension trampoline/terminators
7057
7058
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
7059
VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID(
7060
    VkDevice                                    device,
7061
    const struct AHardwareBuffer*               buffer,
7062
    VkAndroidHardwareBufferPropertiesANDROID*   pProperties) {
7063
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7064
    if (NULL == disp) {
7065
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7066
                   "vkGetAndroidHardwareBufferPropertiesANDROID: Invalid device "
7067
                   "[VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter]");
7068
        abort(); /* Intentionally fail so user can correct issue. */
7069
    }
7070
    return disp->GetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
7071
}
7072
7073
#endif // VK_USE_PLATFORM_ANDROID_KHR
7074
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
7075
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID(
7076
    VkDevice                                    device,
7077
    const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
7078
    struct AHardwareBuffer**                    pBuffer) {
7079
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7080
    if (NULL == disp) {
7081
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7082
                   "vkGetMemoryAndroidHardwareBufferANDROID: Invalid device "
7083
                   "[VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter]");
7084
        abort(); /* Intentionally fail so user can correct issue. */
7085
    }
7086
    return disp->GetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
7087
}
7088
7089
#endif // VK_USE_PLATFORM_ANDROID_KHR
7090
7091
// ---- VK_AMDX_shader_enqueue extension trampoline/terminators
7092
7093
#if defined(VK_ENABLE_BETA_EXTENSIONS)
7094
VKAPI_ATTR VkResult VKAPI_CALL CreateExecutionGraphPipelinesAMDX(
7095
    VkDevice                                    device,
7096
    VkPipelineCache                             pipelineCache,
7097
    uint32_t                                    createInfoCount,
7098
    const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
7099
    const VkAllocationCallbacks*                pAllocator,
7100
0
    VkPipeline*                                 pPipelines) {
7101
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7102
0
    if (NULL == disp) {
7103
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7104
0
                   "vkCreateExecutionGraphPipelinesAMDX: Invalid device "
7105
0
                   "[VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter]");
7106
0
        abort(); /* Intentionally fail so user can correct issue. */
7107
0
    }
7108
0
    return disp->CreateExecutionGraphPipelinesAMDX(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
7109
0
}
7110
7111
#endif // VK_ENABLE_BETA_EXTENSIONS
7112
#if defined(VK_ENABLE_BETA_EXTENSIONS)
7113
VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineScratchSizeAMDX(
7114
    VkDevice                                    device,
7115
    VkPipeline                                  executionGraph,
7116
0
    VkExecutionGraphPipelineScratchSizeAMDX*    pSizeInfo) {
7117
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7118
0
    if (NULL == disp) {
7119
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7120
0
                   "vkGetExecutionGraphPipelineScratchSizeAMDX: Invalid device "
7121
0
                   "[VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter]");
7122
0
        abort(); /* Intentionally fail so user can correct issue. */
7123
0
    }
7124
0
    return disp->GetExecutionGraphPipelineScratchSizeAMDX(device, executionGraph, pSizeInfo);
7125
0
}
7126
7127
#endif // VK_ENABLE_BETA_EXTENSIONS
7128
#if defined(VK_ENABLE_BETA_EXTENSIONS)
7129
VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineNodeIndexAMDX(
7130
    VkDevice                                    device,
7131
    VkPipeline                                  executionGraph,
7132
    const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo,
7133
0
    uint32_t*                                   pNodeIndex) {
7134
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7135
0
    if (NULL == disp) {
7136
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7137
0
                   "vkGetExecutionGraphPipelineNodeIndexAMDX: Invalid device "
7138
0
                   "[VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter]");
7139
0
        abort(); /* Intentionally fail so user can correct issue. */
7140
0
    }
7141
0
    return disp->GetExecutionGraphPipelineNodeIndexAMDX(device, executionGraph, pNodeInfo, pNodeIndex);
7142
0
}
7143
7144
#endif // VK_ENABLE_BETA_EXTENSIONS
7145
#if defined(VK_ENABLE_BETA_EXTENSIONS)
7146
VKAPI_ATTR void VKAPI_CALL CmdInitializeGraphScratchMemoryAMDX(
7147
    VkCommandBuffer                             commandBuffer,
7148
    VkPipeline                                  executionGraph,
7149
    VkDeviceAddress                             scratch,
7150
0
    VkDeviceSize                                scratchSize) {
7151
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7152
0
    if (NULL == disp) {
7153
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7154
0
                   "vkCmdInitializeGraphScratchMemoryAMDX: Invalid commandBuffer "
7155
0
                   "[VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter]");
7156
0
        abort(); /* Intentionally fail so user can correct issue. */
7157
0
    }
7158
0
    disp->CmdInitializeGraphScratchMemoryAMDX(commandBuffer, executionGraph, scratch, scratchSize);
7159
0
}
7160
7161
#endif // VK_ENABLE_BETA_EXTENSIONS
7162
#if defined(VK_ENABLE_BETA_EXTENSIONS)
7163
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphAMDX(
7164
    VkCommandBuffer                             commandBuffer,
7165
    VkDeviceAddress                             scratch,
7166
    VkDeviceSize                                scratchSize,
7167
0
    const VkDispatchGraphCountInfoAMDX*         pCountInfo) {
7168
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7169
0
    if (NULL == disp) {
7170
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7171
0
                   "vkCmdDispatchGraphAMDX: Invalid commandBuffer "
7172
0
                   "[VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter]");
7173
0
        abort(); /* Intentionally fail so user can correct issue. */
7174
0
    }
7175
0
    disp->CmdDispatchGraphAMDX(commandBuffer, scratch, scratchSize, pCountInfo);
7176
0
}
7177
7178
#endif // VK_ENABLE_BETA_EXTENSIONS
7179
#if defined(VK_ENABLE_BETA_EXTENSIONS)
7180
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectAMDX(
7181
    VkCommandBuffer                             commandBuffer,
7182
    VkDeviceAddress                             scratch,
7183
    VkDeviceSize                                scratchSize,
7184
0
    const VkDispatchGraphCountInfoAMDX*         pCountInfo) {
7185
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7186
0
    if (NULL == disp) {
7187
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7188
0
                   "vkCmdDispatchGraphIndirectAMDX: Invalid commandBuffer "
7189
0
                   "[VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter]");
7190
0
        abort(); /* Intentionally fail so user can correct issue. */
7191
0
    }
7192
0
    disp->CmdDispatchGraphIndirectAMDX(commandBuffer, scratch, scratchSize, pCountInfo);
7193
0
}
7194
7195
#endif // VK_ENABLE_BETA_EXTENSIONS
7196
#if defined(VK_ENABLE_BETA_EXTENSIONS)
7197
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectCountAMDX(
7198
    VkCommandBuffer                             commandBuffer,
7199
    VkDeviceAddress                             scratch,
7200
    VkDeviceSize                                scratchSize,
7201
0
    VkDeviceAddress                             countInfo) {
7202
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7203
0
    if (NULL == disp) {
7204
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7205
0
                   "vkCmdDispatchGraphIndirectCountAMDX: Invalid commandBuffer "
7206
0
                   "[VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter]");
7207
0
        abort(); /* Intentionally fail so user can correct issue. */
7208
0
    }
7209
0
    disp->CmdDispatchGraphIndirectCountAMDX(commandBuffer, scratch, scratchSize, countInfo);
7210
0
}
7211
7212
#endif // VK_ENABLE_BETA_EXTENSIONS
7213
7214
// ---- VK_EXT_descriptor_heap extension trampoline/terminators
7215
7216
VKAPI_ATTR VkResult VKAPI_CALL WriteSamplerDescriptorsEXT(
7217
    VkDevice                                    device,
7218
    uint32_t                                    samplerCount,
7219
    const VkSamplerCreateInfo*                  pSamplers,
7220
0
    const VkHostAddressRangeEXT*                pDescriptors) {
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
                   "vkWriteSamplerDescriptorsEXT: Invalid device "
7225
0
                   "[VUID-vkWriteSamplerDescriptorsEXT-device-parameter]");
7226
0
        abort(); /* Intentionally fail so user can correct issue. */
7227
0
    }
7228
0
    return disp->WriteSamplerDescriptorsEXT(device, samplerCount, pSamplers, pDescriptors);
7229
0
}
7230
7231
VKAPI_ATTR VkResult VKAPI_CALL WriteResourceDescriptorsEXT(
7232
    VkDevice                                    device,
7233
    uint32_t                                    resourceCount,
7234
    const VkResourceDescriptorInfoEXT*          pResources,
7235
0
    const VkHostAddressRangeEXT*                pDescriptors) {
7236
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7237
0
    if (NULL == disp) {
7238
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7239
0
                   "vkWriteResourceDescriptorsEXT: Invalid device "
7240
0
                   "[VUID-vkWriteResourceDescriptorsEXT-device-parameter]");
7241
0
        abort(); /* Intentionally fail so user can correct issue. */
7242
0
    }
7243
0
    return disp->WriteResourceDescriptorsEXT(device, resourceCount, pResources, pDescriptors);
7244
0
}
7245
7246
VKAPI_ATTR void VKAPI_CALL CmdBindSamplerHeapEXT(
7247
    VkCommandBuffer                             commandBuffer,
7248
0
    const VkBindHeapInfoEXT*                    pBindInfo) {
7249
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7250
0
    if (NULL == disp) {
7251
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7252
0
                   "vkCmdBindSamplerHeapEXT: Invalid commandBuffer "
7253
0
                   "[VUID-vkCmdBindSamplerHeapEXT-commandBuffer-parameter]");
7254
0
        abort(); /* Intentionally fail so user can correct issue. */
7255
0
    }
7256
0
    disp->CmdBindSamplerHeapEXT(commandBuffer, pBindInfo);
7257
0
}
7258
7259
VKAPI_ATTR void VKAPI_CALL CmdBindResourceHeapEXT(
7260
    VkCommandBuffer                             commandBuffer,
7261
0
    const VkBindHeapInfoEXT*                    pBindInfo) {
7262
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7263
0
    if (NULL == disp) {
7264
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7265
0
                   "vkCmdBindResourceHeapEXT: Invalid commandBuffer "
7266
0
                   "[VUID-vkCmdBindResourceHeapEXT-commandBuffer-parameter]");
7267
0
        abort(); /* Intentionally fail so user can correct issue. */
7268
0
    }
7269
0
    disp->CmdBindResourceHeapEXT(commandBuffer, pBindInfo);
7270
0
}
7271
7272
VKAPI_ATTR void VKAPI_CALL CmdPushDataEXT(
7273
    VkCommandBuffer                             commandBuffer,
7274
0
    const VkPushDataInfoEXT*                    pPushDataInfo) {
7275
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7276
0
    if (NULL == disp) {
7277
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7278
0
                   "vkCmdPushDataEXT: Invalid commandBuffer "
7279
0
                   "[VUID-vkCmdPushDataEXT-commandBuffer-parameter]");
7280
0
        abort(); /* Intentionally fail so user can correct issue. */
7281
0
    }
7282
0
    disp->CmdPushDataEXT(commandBuffer, pPushDataInfo);
7283
0
}
7284
7285
VKAPI_ATTR VkResult VKAPI_CALL GetImageOpaqueCaptureDataEXT(
7286
    VkDevice                                    device,
7287
    uint32_t                                    imageCount,
7288
    const VkImage*                              pImages,
7289
0
    VkHostAddressRangeEXT*                      pDatas) {
7290
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkGetImageOpaqueCaptureDataEXT: Invalid device "
7294
0
                   "[VUID-vkGetImageOpaqueCaptureDataEXT-device-parameter]");
7295
0
        abort(); /* Intentionally fail so user can correct issue. */
7296
0
    }
7297
0
    return disp->GetImageOpaqueCaptureDataEXT(device, imageCount, pImages, pDatas);
7298
0
}
7299
7300
VKAPI_ATTR VkDeviceSize VKAPI_CALL GetPhysicalDeviceDescriptorSizeEXT(
7301
    VkPhysicalDevice                            physicalDevice,
7302
0
    VkDescriptorType                            descriptorType) {
7303
0
    const VkLayerInstanceDispatchTable *disp;
7304
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7305
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7306
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7307
0
                   "vkGetPhysicalDeviceDescriptorSizeEXT: Invalid physicalDevice "
7308
0
                   "[VUID-vkGetPhysicalDeviceDescriptorSizeEXT-physicalDevice-parameter]");
7309
0
        abort(); /* Intentionally fail so user can correct issue. */
7310
0
    }
7311
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7312
0
    return disp->GetPhysicalDeviceDescriptorSizeEXT(unwrapped_phys_dev, descriptorType);
7313
0
}
7314
7315
VKAPI_ATTR VkDeviceSize VKAPI_CALL terminator_GetPhysicalDeviceDescriptorSizeEXT(
7316
    VkPhysicalDevice                            physicalDevice,
7317
0
    VkDescriptorType                            descriptorType) {
7318
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7319
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7320
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceDescriptorSizeEXT) {
7321
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7322
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceDescriptorSizeEXT");
7323
0
        abort(); /* Intentionally fail so user can correct issue. */
7324
0
    }
7325
0
    return icd_term->dispatch.GetPhysicalDeviceDescriptorSizeEXT(phys_dev_term->phys_dev, descriptorType);
7326
0
}
7327
7328
VKAPI_ATTR VkResult VKAPI_CALL RegisterCustomBorderColorEXT(
7329
    VkDevice                                    device,
7330
    const VkSamplerCustomBorderColorCreateInfoEXT* pBorderColor,
7331
    VkBool32                                    requestIndex,
7332
0
    uint32_t*                                   pIndex) {
7333
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7334
0
    if (NULL == disp) {
7335
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7336
0
                   "vkRegisterCustomBorderColorEXT: Invalid device "
7337
0
                   "[VUID-vkRegisterCustomBorderColorEXT-device-parameter]");
7338
0
        abort(); /* Intentionally fail so user can correct issue. */
7339
0
    }
7340
0
    return disp->RegisterCustomBorderColorEXT(device, pBorderColor, requestIndex, pIndex);
7341
0
}
7342
7343
VKAPI_ATTR void VKAPI_CALL UnregisterCustomBorderColorEXT(
7344
    VkDevice                                    device,
7345
0
    uint32_t                                    index) {
7346
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7347
0
    if (NULL == disp) {
7348
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7349
0
                   "vkUnregisterCustomBorderColorEXT: Invalid device "
7350
0
                   "[VUID-vkUnregisterCustomBorderColorEXT-device-parameter]");
7351
0
        abort(); /* Intentionally fail so user can correct issue. */
7352
0
    }
7353
0
    disp->UnregisterCustomBorderColorEXT(device, index);
7354
0
}
7355
7356
VKAPI_ATTR VkResult VKAPI_CALL GetTensorOpaqueCaptureDataARM(
7357
    VkDevice                                    device,
7358
    uint32_t                                    tensorCount,
7359
    const VkTensorARM*                          pTensors,
7360
0
    VkHostAddressRangeEXT*                      pDatas) {
7361
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7362
0
    if (NULL == disp) {
7363
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7364
0
                   "vkGetTensorOpaqueCaptureDataARM: Invalid device "
7365
0
                   "[VUID-vkGetTensorOpaqueCaptureDataARM-device-parameter]");
7366
0
        abort(); /* Intentionally fail so user can correct issue. */
7367
0
    }
7368
0
    return disp->GetTensorOpaqueCaptureDataARM(device, tensorCount, pTensors, pDatas);
7369
0
}
7370
7371
7372
// ---- VK_EXT_sample_locations extension trampoline/terminators
7373
7374
VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEXT(
7375
    VkCommandBuffer                             commandBuffer,
7376
0
    const VkSampleLocationsInfoEXT*             pSampleLocationsInfo) {
7377
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7378
0
    if (NULL == disp) {
7379
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7380
0
                   "vkCmdSetSampleLocationsEXT: Invalid commandBuffer "
7381
0
                   "[VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter]");
7382
0
        abort(); /* Intentionally fail so user can correct issue. */
7383
0
    }
7384
0
    disp->CmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
7385
0
}
7386
7387
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT(
7388
    VkPhysicalDevice                            physicalDevice,
7389
    VkSampleCountFlagBits                       samples,
7390
0
    VkMultisamplePropertiesEXT*                 pMultisampleProperties) {
7391
0
    const VkLayerInstanceDispatchTable *disp;
7392
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7393
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7394
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7395
0
                   "vkGetPhysicalDeviceMultisamplePropertiesEXT: Invalid physicalDevice "
7396
0
                   "[VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter]");
7397
0
        abort(); /* Intentionally fail so user can correct issue. */
7398
0
    }
7399
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7400
0
    disp->GetPhysicalDeviceMultisamplePropertiesEXT(unwrapped_phys_dev, samples, pMultisampleProperties);
7401
0
}
7402
7403
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMultisamplePropertiesEXT(
7404
    VkPhysicalDevice                            physicalDevice,
7405
    VkSampleCountFlagBits                       samples,
7406
0
    VkMultisamplePropertiesEXT*                 pMultisampleProperties) {
7407
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7408
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7409
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT) {
7410
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7411
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceMultisamplePropertiesEXT");
7412
0
        abort(); /* Intentionally fail so user can correct issue. */
7413
0
    }
7414
0
    icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT(phys_dev_term->phys_dev, samples, pMultisampleProperties);
7415
0
}
7416
7417
7418
// ---- VK_EXT_image_drm_format_modifier extension trampoline/terminators
7419
7420
VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT(
7421
    VkDevice                                    device,
7422
    VkImage                                     image,
7423
0
    VkImageDrmFormatModifierPropertiesEXT*      pProperties) {
7424
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7425
0
    if (NULL == disp) {
7426
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7427
0
                   "vkGetImageDrmFormatModifierPropertiesEXT: Invalid device "
7428
0
                   "[VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter]");
7429
0
        abort(); /* Intentionally fail so user can correct issue. */
7430
0
    }
7431
0
    return disp->GetImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
7432
0
}
7433
7434
7435
// ---- VK_EXT_validation_cache extension trampoline/terminators
7436
7437
VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT(
7438
    VkDevice                                    device,
7439
    const VkValidationCacheCreateInfoEXT*       pCreateInfo,
7440
    const VkAllocationCallbacks*                pAllocator,
7441
0
    VkValidationCacheEXT*                       pValidationCache) {
7442
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7443
0
    if (NULL == disp) {
7444
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7445
0
                   "vkCreateValidationCacheEXT: Invalid device "
7446
0
                   "[VUID-vkCreateValidationCacheEXT-device-parameter]");
7447
0
        abort(); /* Intentionally fail so user can correct issue. */
7448
0
    }
7449
0
    return disp->CreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
7450
0
}
7451
7452
VKAPI_ATTR void VKAPI_CALL DestroyValidationCacheEXT(
7453
    VkDevice                                    device,
7454
    VkValidationCacheEXT                        validationCache,
7455
0
    const VkAllocationCallbacks*                pAllocator) {
7456
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7457
0
    if (NULL == disp) {
7458
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7459
0
                   "vkDestroyValidationCacheEXT: Invalid device "
7460
0
                   "[VUID-vkDestroyValidationCacheEXT-device-parameter]");
7461
0
        abort(); /* Intentionally fail so user can correct issue. */
7462
0
    }
7463
0
    disp->DestroyValidationCacheEXT(device, validationCache, pAllocator);
7464
0
}
7465
7466
VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT(
7467
    VkDevice                                    device,
7468
    VkValidationCacheEXT                        dstCache,
7469
    uint32_t                                    srcCacheCount,
7470
0
    const VkValidationCacheEXT*                 pSrcCaches) {
7471
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7472
0
    if (NULL == disp) {
7473
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7474
0
                   "vkMergeValidationCachesEXT: Invalid device "
7475
0
                   "[VUID-vkMergeValidationCachesEXT-device-parameter]");
7476
0
        abort(); /* Intentionally fail so user can correct issue. */
7477
0
    }
7478
0
    return disp->MergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
7479
0
}
7480
7481
VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT(
7482
    VkDevice                                    device,
7483
    VkValidationCacheEXT                        validationCache,
7484
    size_t*                                     pDataSize,
7485
0
    void*                                       pData) {
7486
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7487
0
    if (NULL == disp) {
7488
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7489
0
                   "vkGetValidationCacheDataEXT: Invalid device "
7490
0
                   "[VUID-vkGetValidationCacheDataEXT-device-parameter]");
7491
0
        abort(); /* Intentionally fail so user can correct issue. */
7492
0
    }
7493
0
    return disp->GetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
7494
0
}
7495
7496
7497
// ---- VK_NV_shading_rate_image extension trampoline/terminators
7498
7499
VKAPI_ATTR void VKAPI_CALL CmdBindShadingRateImageNV(
7500
    VkCommandBuffer                             commandBuffer,
7501
    VkImageView                                 imageView,
7502
0
    VkImageLayout                               imageLayout) {
7503
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7504
0
    if (NULL == disp) {
7505
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7506
0
                   "vkCmdBindShadingRateImageNV: Invalid commandBuffer "
7507
0
                   "[VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter]");
7508
0
        abort(); /* Intentionally fail so user can correct issue. */
7509
0
    }
7510
0
    disp->CmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout);
7511
0
}
7512
7513
VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV(
7514
    VkCommandBuffer                             commandBuffer,
7515
    uint32_t                                    firstViewport,
7516
    uint32_t                                    viewportCount,
7517
0
    const VkShadingRatePaletteNV*               pShadingRatePalettes) {
7518
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7519
0
    if (NULL == disp) {
7520
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7521
0
                   "vkCmdSetViewportShadingRatePaletteNV: Invalid commandBuffer "
7522
0
                   "[VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter]");
7523
0
        abort(); /* Intentionally fail so user can correct issue. */
7524
0
    }
7525
0
    disp->CmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes);
7526
0
}
7527
7528
VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV(
7529
    VkCommandBuffer                             commandBuffer,
7530
    VkCoarseSampleOrderTypeNV                   sampleOrderType,
7531
    uint32_t                                    customSampleOrderCount,
7532
0
    const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders) {
7533
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7534
0
    if (NULL == disp) {
7535
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7536
0
                   "vkCmdSetCoarseSampleOrderNV: Invalid commandBuffer "
7537
0
                   "[VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter]");
7538
0
        abort(); /* Intentionally fail so user can correct issue. */
7539
0
    }
7540
0
    disp->CmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders);
7541
0
}
7542
7543
7544
// ---- VK_NV_ray_tracing extension trampoline/terminators
7545
7546
VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV(
7547
    VkDevice                                    device,
7548
    const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
7549
    const VkAllocationCallbacks*                pAllocator,
7550
0
    VkAccelerationStructureNV*                  pAccelerationStructure) {
7551
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7552
0
    if (NULL == disp) {
7553
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7554
0
                   "vkCreateAccelerationStructureNV: Invalid device "
7555
0
                   "[VUID-vkCreateAccelerationStructureNV-device-parameter]");
7556
0
        abort(); /* Intentionally fail so user can correct issue. */
7557
0
    }
7558
0
    return disp->CreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
7559
0
}
7560
7561
VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureNV(
7562
    VkDevice                                    device,
7563
    VkAccelerationStructureNV                   accelerationStructure,
7564
0
    const VkAllocationCallbacks*                pAllocator) {
7565
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7566
0
    if (NULL == disp) {
7567
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7568
0
                   "vkDestroyAccelerationStructureNV: Invalid device "
7569
0
                   "[VUID-vkDestroyAccelerationStructureNV-device-parameter]");
7570
0
        abort(); /* Intentionally fail so user can correct issue. */
7571
0
    }
7572
0
    disp->DestroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
7573
0
}
7574
7575
VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureMemoryRequirementsNV(
7576
    VkDevice                                    device,
7577
    const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
7578
0
    VkMemoryRequirements2KHR*                   pMemoryRequirements) {
7579
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7580
0
    if (NULL == disp) {
7581
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7582
0
                   "vkGetAccelerationStructureMemoryRequirementsNV: Invalid device "
7583
0
                   "[VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter]");
7584
0
        abort(); /* Intentionally fail so user can correct issue. */
7585
0
    }
7586
0
    disp->GetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
7587
0
}
7588
7589
VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV(
7590
    VkDevice                                    device,
7591
    uint32_t                                    bindInfoCount,
7592
0
    const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
7593
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7594
0
    if (NULL == disp) {
7595
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7596
0
                   "vkBindAccelerationStructureMemoryNV: Invalid device "
7597
0
                   "[VUID-vkBindAccelerationStructureMemoryNV-device-parameter]");
7598
0
        abort(); /* Intentionally fail so user can correct issue. */
7599
0
    }
7600
0
    return disp->BindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
7601
0
}
7602
7603
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV(
7604
    VkCommandBuffer                             commandBuffer,
7605
    const VkAccelerationStructureInfoNV*        pInfo,
7606
    VkBuffer                                    instanceData,
7607
    VkDeviceSize                                instanceOffset,
7608
    VkBool32                                    update,
7609
    VkAccelerationStructureNV                   dst,
7610
    VkAccelerationStructureNV                   src,
7611
    VkBuffer                                    scratch,
7612
0
    VkDeviceSize                                scratchOffset) {
7613
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7614
0
    if (NULL == disp) {
7615
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7616
0
                   "vkCmdBuildAccelerationStructureNV: Invalid commandBuffer "
7617
0
                   "[VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter]");
7618
0
        abort(); /* Intentionally fail so user can correct issue. */
7619
0
    }
7620
0
    disp->CmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
7621
0
}
7622
7623
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV(
7624
    VkCommandBuffer                             commandBuffer,
7625
    VkAccelerationStructureNV                   dst,
7626
    VkAccelerationStructureNV                   src,
7627
0
    VkCopyAccelerationStructureModeKHR          mode) {
7628
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7629
0
    if (NULL == disp) {
7630
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7631
0
                   "vkCmdCopyAccelerationStructureNV: Invalid commandBuffer "
7632
0
                   "[VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter]");
7633
0
        abort(); /* Intentionally fail so user can correct issue. */
7634
0
    }
7635
0
    disp->CmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
7636
0
}
7637
7638
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV(
7639
    VkCommandBuffer                             commandBuffer,
7640
    VkBuffer                                    raygenShaderBindingTableBuffer,
7641
    VkDeviceSize                                raygenShaderBindingOffset,
7642
    VkBuffer                                    missShaderBindingTableBuffer,
7643
    VkDeviceSize                                missShaderBindingOffset,
7644
    VkDeviceSize                                missShaderBindingStride,
7645
    VkBuffer                                    hitShaderBindingTableBuffer,
7646
    VkDeviceSize                                hitShaderBindingOffset,
7647
    VkDeviceSize                                hitShaderBindingStride,
7648
    VkBuffer                                    callableShaderBindingTableBuffer,
7649
    VkDeviceSize                                callableShaderBindingOffset,
7650
    VkDeviceSize                                callableShaderBindingStride,
7651
    uint32_t                                    width,
7652
    uint32_t                                    height,
7653
0
    uint32_t                                    depth) {
7654
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7655
0
    if (NULL == disp) {
7656
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7657
0
                   "vkCmdTraceRaysNV: Invalid commandBuffer "
7658
0
                   "[VUID-vkCmdTraceRaysNV-commandBuffer-parameter]");
7659
0
        abort(); /* Intentionally fail so user can correct issue. */
7660
0
    }
7661
0
    disp->CmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth);
7662
0
}
7663
7664
VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesNV(
7665
    VkDevice                                    device,
7666
    VkPipelineCache                             pipelineCache,
7667
    uint32_t                                    createInfoCount,
7668
    const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
7669
    const VkAllocationCallbacks*                pAllocator,
7670
0
    VkPipeline*                                 pPipelines) {
7671
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7672
0
    if (NULL == disp) {
7673
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7674
0
                   "vkCreateRayTracingPipelinesNV: Invalid device "
7675
0
                   "[VUID-vkCreateRayTracingPipelinesNV-device-parameter]");
7676
0
        abort(); /* Intentionally fail so user can correct issue. */
7677
0
    }
7678
0
    return disp->CreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
7679
0
}
7680
7681
7682
// ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
7683
7684
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR(
7685
    VkDevice                                    device,
7686
    VkPipeline                                  pipeline,
7687
    uint32_t                                    firstGroup,
7688
    uint32_t                                    groupCount,
7689
    size_t                                      dataSize,
7690
0
    void*                                       pData) {
7691
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7692
0
    if (NULL == disp) {
7693
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7694
0
                   "vkGetRayTracingShaderGroupHandlesKHR: Invalid device "
7695
0
                   "[VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter]");
7696
0
        abort(); /* Intentionally fail so user can correct issue. */
7697
0
    }
7698
0
    return disp->GetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
7699
0
}
7700
7701
7702
// ---- VK_NV_ray_tracing extension trampoline/terminators
7703
7704
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV(
7705
    VkDevice                                    device,
7706
    VkPipeline                                  pipeline,
7707
    uint32_t                                    firstGroup,
7708
    uint32_t                                    groupCount,
7709
    size_t                                      dataSize,
7710
0
    void*                                       pData) {
7711
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7712
0
    if (NULL == disp) {
7713
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7714
0
                   "vkGetRayTracingShaderGroupHandlesNV: Invalid device "
7715
0
                   "[VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter]");
7716
0
        abort(); /* Intentionally fail so user can correct issue. */
7717
0
    }
7718
0
    return disp->GetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData);
7719
0
}
7720
7721
VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV(
7722
    VkDevice                                    device,
7723
    VkAccelerationStructureNV                   accelerationStructure,
7724
    size_t                                      dataSize,
7725
0
    void*                                       pData) {
7726
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7727
0
    if (NULL == disp) {
7728
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7729
0
                   "vkGetAccelerationStructureHandleNV: Invalid device "
7730
0
                   "[VUID-vkGetAccelerationStructureHandleNV-device-parameter]");
7731
0
        abort(); /* Intentionally fail so user can correct issue. */
7732
0
    }
7733
0
    return disp->GetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
7734
0
}
7735
7736
VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV(
7737
    VkCommandBuffer                             commandBuffer,
7738
    uint32_t                                    accelerationStructureCount,
7739
    const VkAccelerationStructureNV*            pAccelerationStructures,
7740
    VkQueryType                                 queryType,
7741
    VkQueryPool                                 queryPool,
7742
0
    uint32_t                                    firstQuery) {
7743
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7744
0
    if (NULL == disp) {
7745
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7746
0
                   "vkCmdWriteAccelerationStructuresPropertiesNV: Invalid commandBuffer "
7747
0
                   "[VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter]");
7748
0
        abort(); /* Intentionally fail so user can correct issue. */
7749
0
    }
7750
0
    disp->CmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
7751
0
}
7752
7753
VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV(
7754
    VkDevice                                    device,
7755
    VkPipeline                                  pipeline,
7756
0
    uint32_t                                    shader) {
7757
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7758
0
    if (NULL == disp) {
7759
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7760
0
                   "vkCompileDeferredNV: Invalid device "
7761
0
                   "[VUID-vkCompileDeferredNV-device-parameter]");
7762
0
        abort(); /* Intentionally fail so user can correct issue. */
7763
0
    }
7764
0
    return disp->CompileDeferredNV(device, pipeline, shader);
7765
0
}
7766
7767
7768
// ---- VK_EXT_external_memory_host extension trampoline/terminators
7769
7770
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT(
7771
    VkDevice                                    device,
7772
    VkExternalMemoryHandleTypeFlagBits          handleType,
7773
    const void*                                 pHostPointer,
7774
0
    VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties) {
7775
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7776
0
    if (NULL == disp) {
7777
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7778
0
                   "vkGetMemoryHostPointerPropertiesEXT: Invalid device "
7779
0
                   "[VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter]");
7780
0
        abort(); /* Intentionally fail so user can correct issue. */
7781
0
    }
7782
0
    return disp->GetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
7783
0
}
7784
7785
7786
// ---- VK_AMD_buffer_marker extension trampoline/terminators
7787
7788
VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD(
7789
    VkCommandBuffer                             commandBuffer,
7790
    VkPipelineStageFlagBits                     pipelineStage,
7791
    VkBuffer                                    dstBuffer,
7792
    VkDeviceSize                                dstOffset,
7793
0
    uint32_t                                    marker) {
7794
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7795
0
    if (NULL == disp) {
7796
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7797
0
                   "vkCmdWriteBufferMarkerAMD: Invalid commandBuffer "
7798
0
                   "[VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter]");
7799
0
        abort(); /* Intentionally fail so user can correct issue. */
7800
0
    }
7801
0
    disp->CmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
7802
0
}
7803
7804
VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD(
7805
    VkCommandBuffer                             commandBuffer,
7806
    VkPipelineStageFlags2                       stage,
7807
    VkBuffer                                    dstBuffer,
7808
    VkDeviceSize                                dstOffset,
7809
0
    uint32_t                                    marker) {
7810
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7811
0
    if (NULL == disp) {
7812
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7813
0
                   "vkCmdWriteBufferMarker2AMD: Invalid commandBuffer "
7814
0
                   "[VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter]");
7815
0
        abort(); /* Intentionally fail so user can correct issue. */
7816
0
    }
7817
0
    disp->CmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker);
7818
0
}
7819
7820
7821
// ---- VK_EXT_calibrated_timestamps extension trampoline/terminators
7822
7823
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(
7824
    VkPhysicalDevice                            physicalDevice,
7825
    uint32_t*                                   pTimeDomainCount,
7826
0
    VkTimeDomainKHR*                            pTimeDomains) {
7827
0
    const VkLayerInstanceDispatchTable *disp;
7828
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7829
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7830
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7831
0
                   "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: Invalid physicalDevice "
7832
0
                   "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter]");
7833
0
        abort(); /* Intentionally fail so user can correct issue. */
7834
0
    }
7835
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7836
0
    return disp->GetPhysicalDeviceCalibrateableTimeDomainsEXT(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
7837
0
}
7838
7839
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(
7840
    VkPhysicalDevice                            physicalDevice,
7841
    uint32_t*                                   pTimeDomainCount,
7842
0
    VkTimeDomainKHR*                            pTimeDomains) {
7843
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7844
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7845
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT) {
7846
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7847
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsEXT");
7848
0
        abort(); /* Intentionally fail so user can correct issue. */
7849
0
    }
7850
0
    return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
7851
0
}
7852
7853
VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT(
7854
    VkDevice                                    device,
7855
    uint32_t                                    timestampCount,
7856
    const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
7857
    uint64_t*                                   pTimestamps,
7858
0
    uint64_t*                                   pMaxDeviation) {
7859
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7860
0
    if (NULL == disp) {
7861
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7862
0
                   "vkGetCalibratedTimestampsEXT: Invalid device "
7863
0
                   "[VUID-vkGetCalibratedTimestampsEXT-device-parameter]");
7864
0
        abort(); /* Intentionally fail so user can correct issue. */
7865
0
    }
7866
0
    return disp->GetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
7867
0
}
7868
7869
7870
// ---- VK_NV_mesh_shader extension trampoline/terminators
7871
7872
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV(
7873
    VkCommandBuffer                             commandBuffer,
7874
    uint32_t                                    taskCount,
7875
0
    uint32_t                                    firstTask) {
7876
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7877
0
    if (NULL == disp) {
7878
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7879
0
                   "vkCmdDrawMeshTasksNV: Invalid commandBuffer "
7880
0
                   "[VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter]");
7881
0
        abort(); /* Intentionally fail so user can correct issue. */
7882
0
    }
7883
0
    disp->CmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask);
7884
0
}
7885
7886
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV(
7887
    VkCommandBuffer                             commandBuffer,
7888
    VkBuffer                                    buffer,
7889
    VkDeviceSize                                offset,
7890
    uint32_t                                    drawCount,
7891
0
    uint32_t                                    stride) {
7892
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7893
0
    if (NULL == disp) {
7894
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7895
0
                   "vkCmdDrawMeshTasksIndirectNV: Invalid commandBuffer "
7896
0
                   "[VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter]");
7897
0
        abort(); /* Intentionally fail so user can correct issue. */
7898
0
    }
7899
0
    disp->CmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride);
7900
0
}
7901
7902
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV(
7903
    VkCommandBuffer                             commandBuffer,
7904
    VkBuffer                                    buffer,
7905
    VkDeviceSize                                offset,
7906
    VkBuffer                                    countBuffer,
7907
    VkDeviceSize                                countBufferOffset,
7908
    uint32_t                                    maxDrawCount,
7909
0
    uint32_t                                    stride) {
7910
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdDrawMeshTasksIndirectCountNV: Invalid commandBuffer "
7914
0
                   "[VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter]");
7915
0
        abort(); /* Intentionally fail so user can correct issue. */
7916
0
    }
7917
0
    disp->CmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
7918
0
}
7919
7920
7921
// ---- VK_NV_scissor_exclusive extension trampoline/terminators
7922
7923
VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorEnableNV(
7924
    VkCommandBuffer                             commandBuffer,
7925
    uint32_t                                    firstExclusiveScissor,
7926
    uint32_t                                    exclusiveScissorCount,
7927
0
    const VkBool32*                             pExclusiveScissorEnables) {
7928
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7929
0
    if (NULL == disp) {
7930
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7931
0
                   "vkCmdSetExclusiveScissorEnableNV: Invalid commandBuffer "
7932
0
                   "[VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameter]");
7933
0
        abort(); /* Intentionally fail so user can correct issue. */
7934
0
    }
7935
0
    disp->CmdSetExclusiveScissorEnableNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables);
7936
0
}
7937
7938
VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV(
7939
    VkCommandBuffer                             commandBuffer,
7940
    uint32_t                                    firstExclusiveScissor,
7941
    uint32_t                                    exclusiveScissorCount,
7942
0
    const VkRect2D*                             pExclusiveScissors) {
7943
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7944
0
    if (NULL == disp) {
7945
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7946
0
                   "vkCmdSetExclusiveScissorNV: Invalid commandBuffer "
7947
0
                   "[VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter]");
7948
0
        abort(); /* Intentionally fail so user can correct issue. */
7949
0
    }
7950
0
    disp->CmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors);
7951
0
}
7952
7953
7954
// ---- VK_NV_device_diagnostic_checkpoints extension trampoline/terminators
7955
7956
VKAPI_ATTR void VKAPI_CALL CmdSetCheckpointNV(
7957
    VkCommandBuffer                             commandBuffer,
7958
0
    const void*                                 pCheckpointMarker) {
7959
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7960
0
    if (NULL == disp) {
7961
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7962
0
                   "vkCmdSetCheckpointNV: Invalid commandBuffer "
7963
0
                   "[VUID-vkCmdSetCheckpointNV-commandBuffer-parameter]");
7964
0
        abort(); /* Intentionally fail so user can correct issue. */
7965
0
    }
7966
0
    disp->CmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
7967
0
}
7968
7969
VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV(
7970
    VkQueue                                     queue,
7971
    uint32_t*                                   pCheckpointDataCount,
7972
0
    VkCheckpointDataNV*                         pCheckpointData) {
7973
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7974
0
    if (NULL == disp) {
7975
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7976
0
                   "vkGetQueueCheckpointDataNV: Invalid queue "
7977
0
                   "[VUID-vkGetQueueCheckpointDataNV-queue-parameter]");
7978
0
        abort(); /* Intentionally fail so user can correct issue. */
7979
0
    }
7980
0
    disp->GetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
7981
0
}
7982
7983
VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV(
7984
    VkQueue                                     queue,
7985
    uint32_t*                                   pCheckpointDataCount,
7986
0
    VkCheckpointData2NV*                        pCheckpointData) {
7987
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7988
0
    if (NULL == disp) {
7989
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7990
0
                   "vkGetQueueCheckpointData2NV: Invalid queue "
7991
0
                   "[VUID-vkGetQueueCheckpointData2NV-queue-parameter]");
7992
0
        abort(); /* Intentionally fail so user can correct issue. */
7993
0
    }
7994
0
    disp->GetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
7995
0
}
7996
7997
7998
// ---- VK_EXT_present_timing extension trampoline/terminators
7999
8000
VKAPI_ATTR VkResult VKAPI_CALL SetSwapchainPresentTimingQueueSizeEXT(
8001
    VkDevice                                    device,
8002
    VkSwapchainKHR                              swapchain,
8003
0
    uint32_t                                    size) {
8004
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8005
0
    if (NULL == disp) {
8006
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8007
0
                   "vkSetSwapchainPresentTimingQueueSizeEXT: Invalid device "
8008
0
                   "[VUID-vkSetSwapchainPresentTimingQueueSizeEXT-device-parameter]");
8009
0
        abort(); /* Intentionally fail so user can correct issue. */
8010
0
    }
8011
0
    return disp->SetSwapchainPresentTimingQueueSizeEXT(device, swapchain, size);
8012
0
}
8013
8014
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimingPropertiesEXT(
8015
    VkDevice                                    device,
8016
    VkSwapchainKHR                              swapchain,
8017
    VkSwapchainTimingPropertiesEXT*             pSwapchainTimingProperties,
8018
0
    uint64_t*                                   pSwapchainTimingPropertiesCounter) {
8019
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8020
0
    if (NULL == disp) {
8021
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8022
0
                   "vkGetSwapchainTimingPropertiesEXT: Invalid device "
8023
0
                   "[VUID-vkGetSwapchainTimingPropertiesEXT-device-parameter]");
8024
0
        abort(); /* Intentionally fail so user can correct issue. */
8025
0
    }
8026
0
    return disp->GetSwapchainTimingPropertiesEXT(device, swapchain, pSwapchainTimingProperties, pSwapchainTimingPropertiesCounter);
8027
0
}
8028
8029
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimeDomainPropertiesEXT(
8030
    VkDevice                                    device,
8031
    VkSwapchainKHR                              swapchain,
8032
    VkSwapchainTimeDomainPropertiesEXT*         pSwapchainTimeDomainProperties,
8033
0
    uint64_t*                                   pTimeDomainsCounter) {
8034
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8035
0
    if (NULL == disp) {
8036
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8037
0
                   "vkGetSwapchainTimeDomainPropertiesEXT: Invalid device "
8038
0
                   "[VUID-vkGetSwapchainTimeDomainPropertiesEXT-device-parameter]");
8039
0
        abort(); /* Intentionally fail so user can correct issue. */
8040
0
    }
8041
0
    return disp->GetSwapchainTimeDomainPropertiesEXT(device, swapchain, pSwapchainTimeDomainProperties, pTimeDomainsCounter);
8042
0
}
8043
8044
VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingEXT(
8045
    VkDevice                                    device,
8046
    const VkPastPresentationTimingInfoEXT*      pPastPresentationTimingInfo,
8047
0
    VkPastPresentationTimingPropertiesEXT*      pPastPresentationTimingProperties) {
8048
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8049
0
    if (NULL == disp) {
8050
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8051
0
                   "vkGetPastPresentationTimingEXT: Invalid device "
8052
0
                   "[VUID-vkGetPastPresentationTimingEXT-device-parameter]");
8053
0
        abort(); /* Intentionally fail so user can correct issue. */
8054
0
    }
8055
0
    return disp->GetPastPresentationTimingEXT(device, pPastPresentationTimingInfo, pPastPresentationTimingProperties);
8056
0
}
8057
8058
8059
// ---- VK_INTEL_performance_query extension trampoline/terminators
8060
8061
VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL(
8062
    VkDevice                                    device,
8063
0
    const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo) {
8064
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8065
0
    if (NULL == disp) {
8066
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8067
0
                   "vkInitializePerformanceApiINTEL: Invalid device "
8068
0
                   "[VUID-vkInitializePerformanceApiINTEL-device-parameter]");
8069
0
        abort(); /* Intentionally fail so user can correct issue. */
8070
0
    }
8071
0
    return disp->InitializePerformanceApiINTEL(device, pInitializeInfo);
8072
0
}
8073
8074
VKAPI_ATTR void VKAPI_CALL UninitializePerformanceApiINTEL(
8075
0
    VkDevice                                    device) {
8076
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8077
0
    if (NULL == disp) {
8078
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8079
0
                   "vkUninitializePerformanceApiINTEL: Invalid device "
8080
0
                   "[VUID-vkUninitializePerformanceApiINTEL-device-parameter]");
8081
0
        abort(); /* Intentionally fail so user can correct issue. */
8082
0
    }
8083
0
    disp->UninitializePerformanceApiINTEL(device);
8084
0
}
8085
8086
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceMarkerINTEL(
8087
    VkCommandBuffer                             commandBuffer,
8088
0
    const VkPerformanceMarkerInfoINTEL*         pMarkerInfo) {
8089
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8090
0
    if (NULL == disp) {
8091
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8092
0
                   "vkCmdSetPerformanceMarkerINTEL: Invalid commandBuffer "
8093
0
                   "[VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter]");
8094
0
        abort(); /* Intentionally fail so user can correct issue. */
8095
0
    }
8096
0
    return disp->CmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo);
8097
0
}
8098
8099
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceStreamMarkerINTEL(
8100
    VkCommandBuffer                             commandBuffer,
8101
0
    const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo) {
8102
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8103
0
    if (NULL == disp) {
8104
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8105
0
                   "vkCmdSetPerformanceStreamMarkerINTEL: Invalid commandBuffer "
8106
0
                   "[VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter]");
8107
0
        abort(); /* Intentionally fail so user can correct issue. */
8108
0
    }
8109
0
    return disp->CmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo);
8110
0
}
8111
8112
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceOverrideINTEL(
8113
    VkCommandBuffer                             commandBuffer,
8114
0
    const VkPerformanceOverrideInfoINTEL*       pOverrideInfo) {
8115
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8116
0
    if (NULL == disp) {
8117
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8118
0
                   "vkCmdSetPerformanceOverrideINTEL: Invalid commandBuffer "
8119
0
                   "[VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter]");
8120
0
        abort(); /* Intentionally fail so user can correct issue. */
8121
0
    }
8122
0
    return disp->CmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo);
8123
0
}
8124
8125
VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL(
8126
    VkDevice                                    device,
8127
    const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
8128
0
    VkPerformanceConfigurationINTEL*            pConfiguration) {
8129
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8130
0
    if (NULL == disp) {
8131
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8132
0
                   "vkAcquirePerformanceConfigurationINTEL: Invalid device "
8133
0
                   "[VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter]");
8134
0
        abort(); /* Intentionally fail so user can correct issue. */
8135
0
    }
8136
0
    return disp->AcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration);
8137
0
}
8138
8139
VKAPI_ATTR VkResult VKAPI_CALL ReleasePerformanceConfigurationINTEL(
8140
    VkDevice                                    device,
8141
0
    VkPerformanceConfigurationINTEL             configuration) {
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
                   "vkReleasePerformanceConfigurationINTEL: Invalid device "
8146
0
                   "[VUID-vkReleasePerformanceConfigurationINTEL-device-parameter]");
8147
0
        abort(); /* Intentionally fail so user can correct issue. */
8148
0
    }
8149
0
    return disp->ReleasePerformanceConfigurationINTEL(device, configuration);
8150
0
}
8151
8152
VKAPI_ATTR VkResult VKAPI_CALL QueueSetPerformanceConfigurationINTEL(
8153
    VkQueue                                     queue,
8154
0
    VkPerformanceConfigurationINTEL             configuration) {
8155
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
8156
0
    if (NULL == disp) {
8157
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8158
0
                   "vkQueueSetPerformanceConfigurationINTEL: Invalid queue "
8159
0
                   "[VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter]");
8160
0
        abort(); /* Intentionally fail so user can correct issue. */
8161
0
    }
8162
0
    return disp->QueueSetPerformanceConfigurationINTEL(queue, configuration);
8163
0
}
8164
8165
VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL(
8166
    VkDevice                                    device,
8167
    VkPerformanceParameterTypeINTEL             parameter,
8168
0
    VkPerformanceValueINTEL*                    pValue) {
8169
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8170
0
    if (NULL == disp) {
8171
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8172
0
                   "vkGetPerformanceParameterINTEL: Invalid device "
8173
0
                   "[VUID-vkGetPerformanceParameterINTEL-device-parameter]");
8174
0
        abort(); /* Intentionally fail so user can correct issue. */
8175
0
    }
8176
0
    return disp->GetPerformanceParameterINTEL(device, parameter, pValue);
8177
0
}
8178
8179
8180
// ---- VK_AMD_display_native_hdr extension trampoline/terminators
8181
8182
VKAPI_ATTR void VKAPI_CALL SetLocalDimmingAMD(
8183
    VkDevice                                    device,
8184
    VkSwapchainKHR                              swapChain,
8185
0
    VkBool32                                    localDimmingEnable) {
8186
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8187
0
    if (NULL == disp) {
8188
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8189
0
                   "vkSetLocalDimmingAMD: Invalid device "
8190
0
                   "[VUID-vkSetLocalDimmingAMD-device-parameter]");
8191
0
        abort(); /* Intentionally fail so user can correct issue. */
8192
0
    }
8193
0
    disp->SetLocalDimmingAMD(device, swapChain, localDimmingEnable);
8194
0
}
8195
8196
8197
// ---- VK_EXT_buffer_device_address extension trampoline/terminators
8198
8199
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT(
8200
    VkDevice                                    device,
8201
0
    const VkBufferDeviceAddressInfo*            pInfo) {
8202
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8203
0
    if (NULL == disp) {
8204
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8205
0
                   "vkGetBufferDeviceAddressEXT: Invalid device "
8206
0
                   "[VUID-vkGetBufferDeviceAddressEXT-device-parameter]");
8207
0
        abort(); /* Intentionally fail so user can correct issue. */
8208
0
    }
8209
0
    return disp->GetBufferDeviceAddressEXT(device, pInfo);
8210
0
}
8211
8212
8213
// ---- VK_NV_cooperative_matrix extension trampoline/terminators
8214
8215
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV(
8216
    VkPhysicalDevice                            physicalDevice,
8217
    uint32_t*                                   pPropertyCount,
8218
0
    VkCooperativeMatrixPropertiesNV*            pProperties) {
8219
0
    const VkLayerInstanceDispatchTable *disp;
8220
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8221
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8222
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8223
0
                   "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV: Invalid physicalDevice "
8224
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter]");
8225
0
        abort(); /* Intentionally fail so user can correct issue. */
8226
0
    }
8227
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8228
0
    return disp->GetPhysicalDeviceCooperativeMatrixPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
8229
0
}
8230
8231
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(
8232
    VkPhysicalDevice                            physicalDevice,
8233
    uint32_t*                                   pPropertyCount,
8234
0
    VkCooperativeMatrixPropertiesNV*            pProperties) {
8235
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8236
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8237
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV) {
8238
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
8239
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesNV");
8240
0
        abort(); /* Intentionally fail so user can correct issue. */
8241
0
    }
8242
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
8243
0
}
8244
8245
8246
// ---- VK_NV_coverage_reduction_mode extension trampoline/terminators
8247
8248
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
8249
    VkPhysicalDevice                            physicalDevice,
8250
    uint32_t*                                   pCombinationCount,
8251
0
    VkFramebufferMixedSamplesCombinationNV*     pCombinations) {
8252
0
    const VkLayerInstanceDispatchTable *disp;
8253
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8254
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8255
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8256
0
                   "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: Invalid physicalDevice "
8257
0
                   "[VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter]");
8258
0
        abort(); /* Intentionally fail so user can correct issue. */
8259
0
    }
8260
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8261
0
    return disp->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(unwrapped_phys_dev, pCombinationCount, pCombinations);
8262
0
}
8263
8264
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
8265
    VkPhysicalDevice                            physicalDevice,
8266
    uint32_t*                                   pCombinationCount,
8267
0
    VkFramebufferMixedSamplesCombinationNV*     pCombinations) {
8268
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8269
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8270
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) {
8271
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
8272
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
8273
0
        abort(); /* Intentionally fail so user can correct issue. */
8274
0
    }
8275
0
    return icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(phys_dev_term->phys_dev, pCombinationCount, pCombinations);
8276
0
}
8277
8278
8279
// ---- VK_EXT_full_screen_exclusive extension trampoline/terminators
8280
8281
#if defined(VK_USE_PLATFORM_WIN32_KHR)
8282
VKAPI_ATTR VkResult VKAPI_CALL AcquireFullScreenExclusiveModeEXT(
8283
    VkDevice                                    device,
8284
    VkSwapchainKHR                              swapchain) {
8285
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8286
    if (NULL == disp) {
8287
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8288
                   "vkAcquireFullScreenExclusiveModeEXT: Invalid device "
8289
                   "[VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter]");
8290
        abort(); /* Intentionally fail so user can correct issue. */
8291
    }
8292
    return disp->AcquireFullScreenExclusiveModeEXT(device, swapchain);
8293
}
8294
8295
#endif // VK_USE_PLATFORM_WIN32_KHR
8296
#if defined(VK_USE_PLATFORM_WIN32_KHR)
8297
VKAPI_ATTR VkResult VKAPI_CALL ReleaseFullScreenExclusiveModeEXT(
8298
    VkDevice                                    device,
8299
    VkSwapchainKHR                              swapchain) {
8300
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8301
    if (NULL == disp) {
8302
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8303
                   "vkReleaseFullScreenExclusiveModeEXT: Invalid device "
8304
                   "[VUID-vkReleaseFullScreenExclusiveModeEXT-device-parameter]");
8305
        abort(); /* Intentionally fail so user can correct issue. */
8306
    }
8307
    return disp->ReleaseFullScreenExclusiveModeEXT(device, swapchain);
8308
}
8309
8310
#endif // VK_USE_PLATFORM_WIN32_KHR
8311
8312
// ---- VK_EXT_line_rasterization extension trampoline/terminators
8313
8314
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEXT(
8315
    VkCommandBuffer                             commandBuffer,
8316
    uint32_t                                    lineStippleFactor,
8317
0
    uint16_t                                    lineStipplePattern) {
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
                   "vkCmdSetLineStippleEXT: Invalid commandBuffer "
8322
0
                   "[VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter]");
8323
0
        abort(); /* Intentionally fail so user can correct issue. */
8324
0
    }
8325
0
    disp->CmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
8326
0
}
8327
8328
8329
// ---- VK_EXT_host_query_reset extension trampoline/terminators
8330
8331
VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT(
8332
    VkDevice                                    device,
8333
    VkQueryPool                                 queryPool,
8334
    uint32_t                                    firstQuery,
8335
0
    uint32_t                                    queryCount) {
8336
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8337
0
    if (NULL == disp) {
8338
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8339
0
                   "vkResetQueryPoolEXT: Invalid device "
8340
0
                   "[VUID-vkResetQueryPoolEXT-device-parameter]");
8341
0
        abort(); /* Intentionally fail so user can correct issue. */
8342
0
    }
8343
0
    disp->ResetQueryPoolEXT(device, queryPool, firstQuery, queryCount);
8344
0
}
8345
8346
8347
// ---- VK_EXT_extended_dynamic_state extension trampoline/terminators
8348
8349
VKAPI_ATTR void VKAPI_CALL CmdSetCullModeEXT(
8350
    VkCommandBuffer                             commandBuffer,
8351
0
    VkCullModeFlags                             cullMode) {
8352
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8353
0
    if (NULL == disp) {
8354
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8355
0
                   "vkCmdSetCullModeEXT: Invalid commandBuffer "
8356
0
                   "[VUID-vkCmdSetCullModeEXT-commandBuffer-parameter]");
8357
0
        abort(); /* Intentionally fail so user can correct issue. */
8358
0
    }
8359
0
    disp->CmdSetCullModeEXT(commandBuffer, cullMode);
8360
0
}
8361
8362
VKAPI_ATTR void VKAPI_CALL CmdSetFrontFaceEXT(
8363
    VkCommandBuffer                             commandBuffer,
8364
0
    VkFrontFace                                 frontFace) {
8365
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8366
0
    if (NULL == disp) {
8367
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8368
0
                   "vkCmdSetFrontFaceEXT: Invalid commandBuffer "
8369
0
                   "[VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter]");
8370
0
        abort(); /* Intentionally fail so user can correct issue. */
8371
0
    }
8372
0
    disp->CmdSetFrontFaceEXT(commandBuffer, frontFace);
8373
0
}
8374
8375
VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopologyEXT(
8376
    VkCommandBuffer                             commandBuffer,
8377
0
    VkPrimitiveTopology                         primitiveTopology) {
8378
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8379
0
    if (NULL == disp) {
8380
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8381
0
                   "vkCmdSetPrimitiveTopologyEXT: Invalid commandBuffer "
8382
0
                   "[VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter]");
8383
0
        abort(); /* Intentionally fail so user can correct issue. */
8384
0
    }
8385
0
    disp->CmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology);
8386
0
}
8387
8388
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT(
8389
    VkCommandBuffer                             commandBuffer,
8390
    uint32_t                                    viewportCount,
8391
0
    const VkViewport*                           pViewports) {
8392
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8393
0
    if (NULL == disp) {
8394
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8395
0
                   "vkCmdSetViewportWithCountEXT: Invalid commandBuffer "
8396
0
                   "[VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter]");
8397
0
        abort(); /* Intentionally fail so user can correct issue. */
8398
0
    }
8399
0
    disp->CmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports);
8400
0
}
8401
8402
VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT(
8403
    VkCommandBuffer                             commandBuffer,
8404
    uint32_t                                    scissorCount,
8405
0
    const VkRect2D*                             pScissors) {
8406
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8407
0
    if (NULL == disp) {
8408
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8409
0
                   "vkCmdSetScissorWithCountEXT: Invalid commandBuffer "
8410
0
                   "[VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter]");
8411
0
        abort(); /* Intentionally fail so user can correct issue. */
8412
0
    }
8413
0
    disp->CmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors);
8414
0
}
8415
8416
VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT(
8417
    VkCommandBuffer                             commandBuffer,
8418
    uint32_t                                    firstBinding,
8419
    uint32_t                                    bindingCount,
8420
    const VkBuffer*                             pBuffers,
8421
    const VkDeviceSize*                         pOffsets,
8422
    const VkDeviceSize*                         pSizes,
8423
0
    const VkDeviceSize*                         pStrides) {
8424
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8425
0
    if (NULL == disp) {
8426
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8427
0
                   "vkCmdBindVertexBuffers2EXT: Invalid commandBuffer "
8428
0
                   "[VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter]");
8429
0
        abort(); /* Intentionally fail so user can correct issue. */
8430
0
    }
8431
0
    disp->CmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
8432
0
}
8433
8434
VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnableEXT(
8435
    VkCommandBuffer                             commandBuffer,
8436
0
    VkBool32                                    depthTestEnable) {
8437
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8438
0
    if (NULL == disp) {
8439
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8440
0
                   "vkCmdSetDepthTestEnableEXT: Invalid commandBuffer "
8441
0
                   "[VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter]");
8442
0
        abort(); /* Intentionally fail so user can correct issue. */
8443
0
    }
8444
0
    disp->CmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable);
8445
0
}
8446
8447
VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnableEXT(
8448
    VkCommandBuffer                             commandBuffer,
8449
0
    VkBool32                                    depthWriteEnable) {
8450
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8451
0
    if (NULL == disp) {
8452
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8453
0
                   "vkCmdSetDepthWriteEnableEXT: Invalid commandBuffer "
8454
0
                   "[VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter]");
8455
0
        abort(); /* Intentionally fail so user can correct issue. */
8456
0
    }
8457
0
    disp->CmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable);
8458
0
}
8459
8460
VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOpEXT(
8461
    VkCommandBuffer                             commandBuffer,
8462
0
    VkCompareOp                                 depthCompareOp) {
8463
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8464
0
    if (NULL == disp) {
8465
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8466
0
                   "vkCmdSetDepthCompareOpEXT: Invalid commandBuffer "
8467
0
                   "[VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter]");
8468
0
        abort(); /* Intentionally fail so user can correct issue. */
8469
0
    }
8470
0
    disp->CmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp);
8471
0
}
8472
8473
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnableEXT(
8474
    VkCommandBuffer                             commandBuffer,
8475
0
    VkBool32                                    depthBoundsTestEnable) {
8476
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8477
0
    if (NULL == disp) {
8478
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8479
0
                   "vkCmdSetDepthBoundsTestEnableEXT: Invalid commandBuffer "
8480
0
                   "[VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter]");
8481
0
        abort(); /* Intentionally fail so user can correct issue. */
8482
0
    }
8483
0
    disp->CmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable);
8484
0
}
8485
8486
VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnableEXT(
8487
    VkCommandBuffer                             commandBuffer,
8488
0
    VkBool32                                    stencilTestEnable) {
8489
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8490
0
    if (NULL == disp) {
8491
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8492
0
                   "vkCmdSetStencilTestEnableEXT: Invalid commandBuffer "
8493
0
                   "[VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter]");
8494
0
        abort(); /* Intentionally fail so user can correct issue. */
8495
0
    }
8496
0
    disp->CmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable);
8497
0
}
8498
8499
VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT(
8500
    VkCommandBuffer                             commandBuffer,
8501
    VkStencilFaceFlags                          faceMask,
8502
    VkStencilOp                                 failOp,
8503
    VkStencilOp                                 passOp,
8504
    VkStencilOp                                 depthFailOp,
8505
0
    VkCompareOp                                 compareOp) {
8506
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8507
0
    if (NULL == disp) {
8508
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8509
0
                   "vkCmdSetStencilOpEXT: Invalid commandBuffer "
8510
0
                   "[VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter]");
8511
0
        abort(); /* Intentionally fail so user can correct issue. */
8512
0
    }
8513
0
    disp->CmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
8514
0
}
8515
8516
8517
// ---- VK_EXT_host_image_copy extension trampoline/terminators
8518
8519
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT(
8520
    VkDevice                                    device,
8521
0
    const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo) {
8522
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8523
0
    if (NULL == disp) {
8524
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8525
0
                   "vkCopyMemoryToImageEXT: Invalid device "
8526
0
                   "[VUID-vkCopyMemoryToImageEXT-device-parameter]");
8527
0
        abort(); /* Intentionally fail so user can correct issue. */
8528
0
    }
8529
0
    return disp->CopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
8530
0
}
8531
8532
VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT(
8533
    VkDevice                                    device,
8534
0
    const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo) {
8535
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8536
0
    if (NULL == disp) {
8537
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8538
0
                   "vkCopyImageToMemoryEXT: Invalid device "
8539
0
                   "[VUID-vkCopyImageToMemoryEXT-device-parameter]");
8540
0
        abort(); /* Intentionally fail so user can correct issue. */
8541
0
    }
8542
0
    return disp->CopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
8543
0
}
8544
8545
VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT(
8546
    VkDevice                                    device,
8547
0
    const VkCopyImageToImageInfo*               pCopyImageToImageInfo) {
8548
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8549
0
    if (NULL == disp) {
8550
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8551
0
                   "vkCopyImageToImageEXT: Invalid device "
8552
0
                   "[VUID-vkCopyImageToImageEXT-device-parameter]");
8553
0
        abort(); /* Intentionally fail so user can correct issue. */
8554
0
    }
8555
0
    return disp->CopyImageToImageEXT(device, pCopyImageToImageInfo);
8556
0
}
8557
8558
VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT(
8559
    VkDevice                                    device,
8560
    uint32_t                                    transitionCount,
8561
0
    const VkHostImageLayoutTransitionInfo*      pTransitions) {
8562
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8563
0
    if (NULL == disp) {
8564
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8565
0
                   "vkTransitionImageLayoutEXT: Invalid device "
8566
0
                   "[VUID-vkTransitionImageLayoutEXT-device-parameter]");
8567
0
        abort(); /* Intentionally fail so user can correct issue. */
8568
0
    }
8569
0
    return disp->TransitionImageLayoutEXT(device, transitionCount, pTransitions);
8570
0
}
8571
8572
VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
8573
    VkDevice                                    device,
8574
    VkImage                                     image,
8575
    const VkImageSubresource2*                  pSubresource,
8576
0
    VkSubresourceLayout2*                       pLayout) {
8577
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8578
0
    if (NULL == disp) {
8579
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8580
0
                   "vkGetImageSubresourceLayout2EXT: Invalid device "
8581
0
                   "[VUID-vkGetImageSubresourceLayout2EXT-device-parameter]");
8582
0
        abort(); /* Intentionally fail so user can correct issue. */
8583
0
    }
8584
0
    disp->GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
8585
0
}
8586
8587
8588
// ---- VK_EXT_swapchain_maintenance1 extension trampoline/terminators
8589
8590
VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT(
8591
    VkDevice                                    device,
8592
0
    const VkReleaseSwapchainImagesInfoKHR*      pReleaseInfo) {
8593
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8594
0
    if (NULL == disp) {
8595
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8596
0
                   "vkReleaseSwapchainImagesEXT: Invalid device "
8597
0
                   "[VUID-vkReleaseSwapchainImagesEXT-device-parameter]");
8598
0
        abort(); /* Intentionally fail so user can correct issue. */
8599
0
    }
8600
0
    return disp->ReleaseSwapchainImagesEXT(device, pReleaseInfo);
8601
0
}
8602
8603
8604
// ---- VK_NV_device_generated_commands extension trampoline/terminators
8605
8606
VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsNV(
8607
    VkDevice                                    device,
8608
    const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
8609
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
8610
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8611
0
    if (NULL == disp) {
8612
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8613
0
                   "vkGetGeneratedCommandsMemoryRequirementsNV: Invalid device "
8614
0
                   "[VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter]");
8615
0
        abort(); /* Intentionally fail so user can correct issue. */
8616
0
    }
8617
0
    disp->GetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
8618
0
}
8619
8620
VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsNV(
8621
    VkCommandBuffer                             commandBuffer,
8622
0
    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo) {
8623
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8624
0
    if (NULL == disp) {
8625
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8626
0
                   "vkCmdPreprocessGeneratedCommandsNV: Invalid commandBuffer "
8627
0
                   "[VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter]");
8628
0
        abort(); /* Intentionally fail so user can correct issue. */
8629
0
    }
8630
0
    disp->CmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
8631
0
}
8632
8633
VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV(
8634
    VkCommandBuffer                             commandBuffer,
8635
    VkBool32                                    isPreprocessed,
8636
0
    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo) {
8637
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8638
0
    if (NULL == disp) {
8639
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8640
0
                   "vkCmdExecuteGeneratedCommandsNV: Invalid commandBuffer "
8641
0
                   "[VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter]");
8642
0
        abort(); /* Intentionally fail so user can correct issue. */
8643
0
    }
8644
0
    disp->CmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
8645
0
}
8646
8647
VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV(
8648
    VkCommandBuffer                             commandBuffer,
8649
    VkPipelineBindPoint                         pipelineBindPoint,
8650
    VkPipeline                                  pipeline,
8651
0
    uint32_t                                    groupIndex) {
8652
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8653
0
    if (NULL == disp) {
8654
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8655
0
                   "vkCmdBindPipelineShaderGroupNV: Invalid commandBuffer "
8656
0
                   "[VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter]");
8657
0
        abort(); /* Intentionally fail so user can correct issue. */
8658
0
    }
8659
0
    disp->CmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
8660
0
}
8661
8662
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV(
8663
    VkDevice                                    device,
8664
    const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
8665
    const VkAllocationCallbacks*                pAllocator,
8666
0
    VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout) {
8667
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8668
0
    if (NULL == disp) {
8669
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8670
0
                   "vkCreateIndirectCommandsLayoutNV: Invalid device "
8671
0
                   "[VUID-vkCreateIndirectCommandsLayoutNV-device-parameter]");
8672
0
        abort(); /* Intentionally fail so user can correct issue. */
8673
0
    }
8674
0
    return disp->CreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
8675
0
}
8676
8677
VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNV(
8678
    VkDevice                                    device,
8679
    VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
8680
0
    const VkAllocationCallbacks*                pAllocator) {
8681
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8682
0
    if (NULL == disp) {
8683
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8684
0
                   "vkDestroyIndirectCommandsLayoutNV: Invalid device "
8685
0
                   "[VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter]");
8686
0
        abort(); /* Intentionally fail so user can correct issue. */
8687
0
    }
8688
0
    disp->DestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
8689
0
}
8690
8691
8692
// ---- VK_EXT_depth_bias_control extension trampoline/terminators
8693
8694
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias2EXT(
8695
    VkCommandBuffer                             commandBuffer,
8696
0
    const VkDepthBiasInfoEXT*                   pDepthBiasInfo) {
8697
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8698
0
    if (NULL == disp) {
8699
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8700
0
                   "vkCmdSetDepthBias2EXT: Invalid commandBuffer "
8701
0
                   "[VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter]");
8702
0
        abort(); /* Intentionally fail so user can correct issue. */
8703
0
    }
8704
0
    disp->CmdSetDepthBias2EXT(commandBuffer, pDepthBiasInfo);
8705
0
}
8706
8707
8708
// ---- VK_EXT_acquire_drm_display extension trampoline/terminators
8709
8710
VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT(
8711
    VkPhysicalDevice                            physicalDevice,
8712
    int32_t                                     drmFd,
8713
0
    VkDisplayKHR                                display) {
8714
0
    const VkLayerInstanceDispatchTable *disp;
8715
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8716
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8717
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8718
0
                   "vkAcquireDrmDisplayEXT: Invalid physicalDevice "
8719
0
                   "[VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter]");
8720
0
        abort(); /* Intentionally fail so user can correct issue. */
8721
0
    }
8722
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8723
0
    return disp->AcquireDrmDisplayEXT(unwrapped_phys_dev, drmFd, display);
8724
0
}
8725
8726
VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireDrmDisplayEXT(
8727
    VkPhysicalDevice                            physicalDevice,
8728
    int32_t                                     drmFd,
8729
0
    VkDisplayKHR                                display) {
8730
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8731
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8732
0
    if (NULL == icd_term->dispatch.AcquireDrmDisplayEXT) {
8733
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
8734
0
                   "ICD associated with VkPhysicalDevice does not support AcquireDrmDisplayEXT");
8735
0
        return VK_ERROR_EXTENSION_NOT_PRESENT;
8736
0
    }
8737
0
    return icd_term->dispatch.AcquireDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, display);
8738
0
}
8739
8740
VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT(
8741
    VkPhysicalDevice                            physicalDevice,
8742
    int32_t                                     drmFd,
8743
    uint32_t                                    connectorId,
8744
0
    VkDisplayKHR*                               display) {
8745
0
    const VkLayerInstanceDispatchTable *disp;
8746
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8747
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8748
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8749
0
                   "vkGetDrmDisplayEXT: Invalid physicalDevice "
8750
0
                   "[VUID-vkGetDrmDisplayEXT-physicalDevice-parameter]");
8751
0
        abort(); /* Intentionally fail so user can correct issue. */
8752
0
    }
8753
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8754
0
    return disp->GetDrmDisplayEXT(unwrapped_phys_dev, drmFd, connectorId, display);
8755
0
}
8756
8757
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDrmDisplayEXT(
8758
    VkPhysicalDevice                            physicalDevice,
8759
    int32_t                                     drmFd,
8760
    uint32_t                                    connectorId,
8761
0
    VkDisplayKHR*                               display) {
8762
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8763
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8764
0
    if (NULL == icd_term->dispatch.GetDrmDisplayEXT) {
8765
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
8766
0
                   "ICD associated with VkPhysicalDevice does not support GetDrmDisplayEXT");
8767
0
        return VK_ERROR_EXTENSION_NOT_PRESENT;
8768
0
    }
8769
0
    return icd_term->dispatch.GetDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, connectorId, display);
8770
0
}
8771
8772
8773
// ---- VK_EXT_private_data extension trampoline/terminators
8774
8775
VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT(
8776
    VkDevice                                    device,
8777
    const VkPrivateDataSlotCreateInfo*          pCreateInfo,
8778
    const VkAllocationCallbacks*                pAllocator,
8779
0
    VkPrivateDataSlot*                          pPrivateDataSlot) {
8780
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8781
0
    if (NULL == disp) {
8782
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8783
0
                   "vkCreatePrivateDataSlotEXT: Invalid device "
8784
0
                   "[VUID-vkCreatePrivateDataSlotEXT-device-parameter]");
8785
0
        abort(); /* Intentionally fail so user can correct issue. */
8786
0
    }
8787
0
    return disp->CreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot);
8788
0
}
8789
8790
VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlotEXT(
8791
    VkDevice                                    device,
8792
    VkPrivateDataSlot                           privateDataSlot,
8793
0
    const VkAllocationCallbacks*                pAllocator) {
8794
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8795
0
    if (NULL == disp) {
8796
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8797
0
                   "vkDestroyPrivateDataSlotEXT: Invalid device "
8798
0
                   "[VUID-vkDestroyPrivateDataSlotEXT-device-parameter]");
8799
0
        abort(); /* Intentionally fail so user can correct issue. */
8800
0
    }
8801
0
    disp->DestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator);
8802
0
}
8803
8804
VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT(
8805
    VkDevice                                    device,
8806
    VkObjectType                                objectType,
8807
    uint64_t                                    objectHandle,
8808
    VkPrivateDataSlot                           privateDataSlot,
8809
0
    uint64_t                                    data) {
8810
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8811
0
    if (NULL == disp) {
8812
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8813
0
                   "vkSetPrivateDataEXT: Invalid device "
8814
0
                   "[VUID-vkSetPrivateDataEXT-device-parameter]");
8815
0
        abort(); /* Intentionally fail so user can correct issue. */
8816
0
    }
8817
0
    return disp->SetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data);
8818
0
}
8819
8820
VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT(
8821
    VkDevice                                    device,
8822
    VkObjectType                                objectType,
8823
    uint64_t                                    objectHandle,
8824
    VkPrivateDataSlot                           privateDataSlot,
8825
0
    uint64_t*                                   pData) {
8826
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8827
0
    if (NULL == disp) {
8828
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8829
0
                   "vkGetPrivateDataEXT: Invalid device "
8830
0
                   "[VUID-vkGetPrivateDataEXT-device-parameter]");
8831
0
        abort(); /* Intentionally fail so user can correct issue. */
8832
0
    }
8833
0
    disp->GetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData);
8834
0
}
8835
8836
8837
// ---- VK_NV_cuda_kernel_launch extension trampoline/terminators
8838
8839
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8840
VKAPI_ATTR VkResult VKAPI_CALL CreateCudaModuleNV(
8841
    VkDevice                                    device,
8842
    const VkCudaModuleCreateInfoNV*             pCreateInfo,
8843
    const VkAllocationCallbacks*                pAllocator,
8844
0
    VkCudaModuleNV*                             pModule) {
8845
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8846
0
    if (NULL == disp) {
8847
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8848
0
                   "vkCreateCudaModuleNV: Invalid device "
8849
0
                   "[VUID-vkCreateCudaModuleNV-device-parameter]");
8850
0
        abort(); /* Intentionally fail so user can correct issue. */
8851
0
    }
8852
0
    return disp->CreateCudaModuleNV(device, pCreateInfo, pAllocator, pModule);
8853
0
}
8854
8855
#endif // VK_ENABLE_BETA_EXTENSIONS
8856
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8857
VKAPI_ATTR VkResult VKAPI_CALL GetCudaModuleCacheNV(
8858
    VkDevice                                    device,
8859
    VkCudaModuleNV                              module,
8860
    size_t*                                     pCacheSize,
8861
0
    void*                                       pCacheData) {
8862
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8863
0
    if (NULL == disp) {
8864
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8865
0
                   "vkGetCudaModuleCacheNV: Invalid device "
8866
0
                   "[VUID-vkGetCudaModuleCacheNV-device-parameter]");
8867
0
        abort(); /* Intentionally fail so user can correct issue. */
8868
0
    }
8869
0
    return disp->GetCudaModuleCacheNV(device, module, pCacheSize, pCacheData);
8870
0
}
8871
8872
#endif // VK_ENABLE_BETA_EXTENSIONS
8873
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8874
VKAPI_ATTR VkResult VKAPI_CALL CreateCudaFunctionNV(
8875
    VkDevice                                    device,
8876
    const VkCudaFunctionCreateInfoNV*           pCreateInfo,
8877
    const VkAllocationCallbacks*                pAllocator,
8878
0
    VkCudaFunctionNV*                           pFunction) {
8879
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8880
0
    if (NULL == disp) {
8881
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8882
0
                   "vkCreateCudaFunctionNV: Invalid device "
8883
0
                   "[VUID-vkCreateCudaFunctionNV-device-parameter]");
8884
0
        abort(); /* Intentionally fail so user can correct issue. */
8885
0
    }
8886
0
    return disp->CreateCudaFunctionNV(device, pCreateInfo, pAllocator, pFunction);
8887
0
}
8888
8889
#endif // VK_ENABLE_BETA_EXTENSIONS
8890
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8891
VKAPI_ATTR void VKAPI_CALL DestroyCudaModuleNV(
8892
    VkDevice                                    device,
8893
    VkCudaModuleNV                              module,
8894
0
    const VkAllocationCallbacks*                pAllocator) {
8895
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8896
0
    if (NULL == disp) {
8897
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8898
0
                   "vkDestroyCudaModuleNV: Invalid device "
8899
0
                   "[VUID-vkDestroyCudaModuleNV-device-parameter]");
8900
0
        abort(); /* Intentionally fail so user can correct issue. */
8901
0
    }
8902
0
    disp->DestroyCudaModuleNV(device, module, pAllocator);
8903
0
}
8904
8905
#endif // VK_ENABLE_BETA_EXTENSIONS
8906
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8907
VKAPI_ATTR void VKAPI_CALL DestroyCudaFunctionNV(
8908
    VkDevice                                    device,
8909
    VkCudaFunctionNV                            function,
8910
0
    const VkAllocationCallbacks*                pAllocator) {
8911
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8912
0
    if (NULL == disp) {
8913
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8914
0
                   "vkDestroyCudaFunctionNV: Invalid device "
8915
0
                   "[VUID-vkDestroyCudaFunctionNV-device-parameter]");
8916
0
        abort(); /* Intentionally fail so user can correct issue. */
8917
0
    }
8918
0
    disp->DestroyCudaFunctionNV(device, function, pAllocator);
8919
0
}
8920
8921
#endif // VK_ENABLE_BETA_EXTENSIONS
8922
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8923
VKAPI_ATTR void VKAPI_CALL CmdCudaLaunchKernelNV(
8924
    VkCommandBuffer                             commandBuffer,
8925
0
    const VkCudaLaunchInfoNV*                   pLaunchInfo) {
8926
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8927
0
    if (NULL == disp) {
8928
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8929
0
                   "vkCmdCudaLaunchKernelNV: Invalid commandBuffer "
8930
0
                   "[VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameter]");
8931
0
        abort(); /* Intentionally fail so user can correct issue. */
8932
0
    }
8933
0
    disp->CmdCudaLaunchKernelNV(commandBuffer, pLaunchInfo);
8934
0
}
8935
8936
#endif // VK_ENABLE_BETA_EXTENSIONS
8937
8938
// ---- VK_QCOM_tile_shading extension trampoline/terminators
8939
8940
VKAPI_ATTR void VKAPI_CALL CmdDispatchTileQCOM(
8941
    VkCommandBuffer                             commandBuffer,
8942
0
    const VkDispatchTileInfoQCOM*               pDispatchTileInfo) {
8943
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8944
0
    if (NULL == disp) {
8945
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8946
0
                   "vkCmdDispatchTileQCOM: Invalid commandBuffer "
8947
0
                   "[VUID-vkCmdDispatchTileQCOM-commandBuffer-parameter]");
8948
0
        abort(); /* Intentionally fail so user can correct issue. */
8949
0
    }
8950
0
    disp->CmdDispatchTileQCOM(commandBuffer, pDispatchTileInfo);
8951
0
}
8952
8953
VKAPI_ATTR void VKAPI_CALL CmdBeginPerTileExecutionQCOM(
8954
    VkCommandBuffer                             commandBuffer,
8955
0
    const VkPerTileBeginInfoQCOM*               pPerTileBeginInfo) {
8956
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8957
0
    if (NULL == disp) {
8958
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8959
0
                   "vkCmdBeginPerTileExecutionQCOM: Invalid commandBuffer "
8960
0
                   "[VUID-vkCmdBeginPerTileExecutionQCOM-commandBuffer-parameter]");
8961
0
        abort(); /* Intentionally fail so user can correct issue. */
8962
0
    }
8963
0
    disp->CmdBeginPerTileExecutionQCOM(commandBuffer, pPerTileBeginInfo);
8964
0
}
8965
8966
VKAPI_ATTR void VKAPI_CALL CmdEndPerTileExecutionQCOM(
8967
    VkCommandBuffer                             commandBuffer,
8968
0
    const VkPerTileEndInfoQCOM*                 pPerTileEndInfo) {
8969
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8970
0
    if (NULL == disp) {
8971
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8972
0
                   "vkCmdEndPerTileExecutionQCOM: Invalid commandBuffer "
8973
0
                   "[VUID-vkCmdEndPerTileExecutionQCOM-commandBuffer-parameter]");
8974
0
        abort(); /* Intentionally fail so user can correct issue. */
8975
0
    }
8976
0
    disp->CmdEndPerTileExecutionQCOM(commandBuffer, pPerTileEndInfo);
8977
0
}
8978
8979
8980
// ---- VK_EXT_metal_objects extension trampoline/terminators
8981
8982
#if defined(VK_USE_PLATFORM_METAL_EXT)
8983
VKAPI_ATTR void VKAPI_CALL ExportMetalObjectsEXT(
8984
    VkDevice                                    device,
8985
    VkExportMetalObjectsInfoEXT*                pMetalObjectsInfo) {
8986
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8987
    if (NULL == disp) {
8988
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8989
                   "vkExportMetalObjectsEXT: Invalid device "
8990
                   "[VUID-vkExportMetalObjectsEXT-device-parameter]");
8991
        abort(); /* Intentionally fail so user can correct issue. */
8992
    }
8993
    disp->ExportMetalObjectsEXT(device, pMetalObjectsInfo);
8994
}
8995
8996
#endif // VK_USE_PLATFORM_METAL_EXT
8997
8998
// ---- VK_EXT_descriptor_buffer extension trampoline/terminators
8999
9000
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSizeEXT(
9001
    VkDevice                                    device,
9002
    VkDescriptorSetLayout                       layout,
9003
0
    VkDeviceSize*                               pLayoutSizeInBytes) {
9004
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9005
0
    if (NULL == disp) {
9006
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9007
0
                   "vkGetDescriptorSetLayoutSizeEXT: Invalid device "
9008
0
                   "[VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameter]");
9009
0
        abort(); /* Intentionally fail so user can correct issue. */
9010
0
    }
9011
0
    disp->GetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes);
9012
0
}
9013
9014
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutBindingOffsetEXT(
9015
    VkDevice                                    device,
9016
    VkDescriptorSetLayout                       layout,
9017
    uint32_t                                    binding,
9018
0
    VkDeviceSize*                               pOffset) {
9019
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9020
0
    if (NULL == disp) {
9021
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9022
0
                   "vkGetDescriptorSetLayoutBindingOffsetEXT: Invalid device "
9023
0
                   "[VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter]");
9024
0
        abort(); /* Intentionally fail so user can correct issue. */
9025
0
    }
9026
0
    disp->GetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset);
9027
0
}
9028
9029
VKAPI_ATTR void VKAPI_CALL GetDescriptorEXT(
9030
    VkDevice                                    device,
9031
    const VkDescriptorGetInfoEXT*               pDescriptorInfo,
9032
    size_t                                      dataSize,
9033
0
    void*                                       pDescriptor) {
9034
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkGetDescriptorEXT: Invalid device "
9038
0
                   "[VUID-vkGetDescriptorEXT-device-parameter]");
9039
0
        abort(); /* Intentionally fail so user can correct issue. */
9040
0
    }
9041
0
    disp->GetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor);
9042
0
}
9043
9044
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBuffersEXT(
9045
    VkCommandBuffer                             commandBuffer,
9046
    uint32_t                                    bufferCount,
9047
0
    const VkDescriptorBufferBindingInfoEXT*     pBindingInfos) {
9048
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9049
0
    if (NULL == disp) {
9050
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9051
0
                   "vkCmdBindDescriptorBuffersEXT: Invalid commandBuffer "
9052
0
                   "[VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter]");
9053
0
        abort(); /* Intentionally fail so user can correct issue. */
9054
0
    }
9055
0
    disp->CmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos);
9056
0
}
9057
9058
VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsetsEXT(
9059
    VkCommandBuffer                             commandBuffer,
9060
    VkPipelineBindPoint                         pipelineBindPoint,
9061
    VkPipelineLayout                            layout,
9062
    uint32_t                                    firstSet,
9063
    uint32_t                                    setCount,
9064
    const uint32_t*                             pBufferIndices,
9065
0
    const VkDeviceSize*                         pOffsets) {
9066
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9067
0
    if (NULL == disp) {
9068
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9069
0
                   "vkCmdSetDescriptorBufferOffsetsEXT: Invalid commandBuffer "
9070
0
                   "[VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter]");
9071
0
        abort(); /* Intentionally fail so user can correct issue. */
9072
0
    }
9073
0
    disp->CmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets);
9074
0
}
9075
9076
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplersEXT(
9077
    VkCommandBuffer                             commandBuffer,
9078
    VkPipelineBindPoint                         pipelineBindPoint,
9079
    VkPipelineLayout                            layout,
9080
0
    uint32_t                                    set) {
9081
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9082
0
    if (NULL == disp) {
9083
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9084
0
                   "vkCmdBindDescriptorBufferEmbeddedSamplersEXT: Invalid commandBuffer "
9085
0
                   "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameter]");
9086
0
        abort(); /* Intentionally fail so user can correct issue. */
9087
0
    }
9088
0
    disp->CmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set);
9089
0
}
9090
9091
VKAPI_ATTR VkResult VKAPI_CALL GetBufferOpaqueCaptureDescriptorDataEXT(
9092
    VkDevice                                    device,
9093
    const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
9094
0
    void*                                       pData) {
9095
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9096
0
    if (NULL == disp) {
9097
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9098
0
                   "vkGetBufferOpaqueCaptureDescriptorDataEXT: Invalid device "
9099
0
                   "[VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter]");
9100
0
        abort(); /* Intentionally fail so user can correct issue. */
9101
0
    }
9102
0
    return disp->GetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
9103
0
}
9104
9105
VKAPI_ATTR VkResult VKAPI_CALL GetImageOpaqueCaptureDescriptorDataEXT(
9106
    VkDevice                                    device,
9107
    const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
9108
0
    void*                                       pData) {
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
                   "vkGetImageOpaqueCaptureDescriptorDataEXT: Invalid device "
9113
0
                   "[VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter]");
9114
0
        abort(); /* Intentionally fail so user can correct issue. */
9115
0
    }
9116
0
    return disp->GetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
9117
0
}
9118
9119
VKAPI_ATTR VkResult VKAPI_CALL GetImageViewOpaqueCaptureDescriptorDataEXT(
9120
    VkDevice                                    device,
9121
    const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
9122
0
    void*                                       pData) {
9123
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9124
0
    if (NULL == disp) {
9125
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9126
0
                   "vkGetImageViewOpaqueCaptureDescriptorDataEXT: Invalid device "
9127
0
                   "[VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter]");
9128
0
        abort(); /* Intentionally fail so user can correct issue. */
9129
0
    }
9130
0
    return disp->GetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
9131
0
}
9132
9133
VKAPI_ATTR VkResult VKAPI_CALL GetSamplerOpaqueCaptureDescriptorDataEXT(
9134
    VkDevice                                    device,
9135
    const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
9136
0
    void*                                       pData) {
9137
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9138
0
    if (NULL == disp) {
9139
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9140
0
                   "vkGetSamplerOpaqueCaptureDescriptorDataEXT: Invalid device "
9141
0
                   "[VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameter]");
9142
0
        abort(); /* Intentionally fail so user can correct issue. */
9143
0
    }
9144
0
    return disp->GetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
9145
0
}
9146
9147
VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
9148
    VkDevice                                    device,
9149
    const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
9150
0
    void*                                       pData) {
9151
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9152
0
    if (NULL == disp) {
9153
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9154
0
                   "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT: Invalid device "
9155
0
                   "[VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameter]");
9156
0
        abort(); /* Intentionally fail so user can correct issue. */
9157
0
    }
9158
0
    return disp->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
9159
0
}
9160
9161
9162
// ---- VK_NV_fragment_shading_rate_enums extension trampoline/terminators
9163
9164
VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV(
9165
    VkCommandBuffer                             commandBuffer,
9166
    VkFragmentShadingRateNV                     shadingRate,
9167
0
    const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]) {
9168
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9169
0
    if (NULL == disp) {
9170
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9171
0
                   "vkCmdSetFragmentShadingRateEnumNV: Invalid commandBuffer "
9172
0
                   "[VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter]");
9173
0
        abort(); /* Intentionally fail so user can correct issue. */
9174
0
    }
9175
0
    disp->CmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps);
9176
0
}
9177
9178
9179
// ---- VK_EXT_device_fault extension trampoline/terminators
9180
9181
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT(
9182
    VkDevice                                    device,
9183
    VkDeviceFaultCountsEXT*                     pFaultCounts,
9184
0
    VkDeviceFaultInfoEXT*                       pFaultInfo) {
9185
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9186
0
    if (NULL == disp) {
9187
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9188
0
                   "vkGetDeviceFaultInfoEXT: Invalid device "
9189
0
                   "[VUID-vkGetDeviceFaultInfoEXT-device-parameter]");
9190
0
        abort(); /* Intentionally fail so user can correct issue. */
9191
0
    }
9192
0
    return disp->GetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo);
9193
0
}
9194
9195
9196
// ---- VK_NV_acquire_winrt_display extension trampoline/terminators
9197
9198
#if defined(VK_USE_PLATFORM_WIN32_KHR)
9199
VKAPI_ATTR VkResult VKAPI_CALL AcquireWinrtDisplayNV(
9200
    VkPhysicalDevice                            physicalDevice,
9201
    VkDisplayKHR                                display) {
9202
    const VkLayerInstanceDispatchTable *disp;
9203
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
9204
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
9205
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9206
                   "vkAcquireWinrtDisplayNV: Invalid physicalDevice "
9207
                   "[VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter]");
9208
        abort(); /* Intentionally fail so user can correct issue. */
9209
    }
9210
    disp = loader_get_instance_layer_dispatch(physicalDevice);
9211
    return disp->AcquireWinrtDisplayNV(unwrapped_phys_dev, display);
9212
}
9213
9214
VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireWinrtDisplayNV(
9215
    VkPhysicalDevice                            physicalDevice,
9216
    VkDisplayKHR                                display) {
9217
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
9218
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
9219
    if (NULL == icd_term->dispatch.AcquireWinrtDisplayNV) {
9220
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
9221
                   "ICD associated with VkPhysicalDevice does not support AcquireWinrtDisplayNV");
9222
        abort(); /* Intentionally fail so user can correct issue. */
9223
    }
9224
    return icd_term->dispatch.AcquireWinrtDisplayNV(phys_dev_term->phys_dev, display);
9225
}
9226
9227
#endif // VK_USE_PLATFORM_WIN32_KHR
9228
#if defined(VK_USE_PLATFORM_WIN32_KHR)
9229
VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV(
9230
    VkPhysicalDevice                            physicalDevice,
9231
    uint32_t                                    deviceRelativeId,
9232
    VkDisplayKHR*                               pDisplay) {
9233
    const VkLayerInstanceDispatchTable *disp;
9234
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
9235
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
9236
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9237
                   "vkGetWinrtDisplayNV: Invalid physicalDevice "
9238
                   "[VUID-vkGetWinrtDisplayNV-physicalDevice-parameter]");
9239
        abort(); /* Intentionally fail so user can correct issue. */
9240
    }
9241
    disp = loader_get_instance_layer_dispatch(physicalDevice);
9242
    return disp->GetWinrtDisplayNV(unwrapped_phys_dev, deviceRelativeId, pDisplay);
9243
}
9244
9245
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetWinrtDisplayNV(
9246
    VkPhysicalDevice                            physicalDevice,
9247
    uint32_t                                    deviceRelativeId,
9248
    VkDisplayKHR*                               pDisplay) {
9249
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
9250
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
9251
    if (NULL == icd_term->dispatch.GetWinrtDisplayNV) {
9252
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
9253
                   "ICD associated with VkPhysicalDevice does not support GetWinrtDisplayNV");
9254
        abort(); /* Intentionally fail so user can correct issue. */
9255
    }
9256
    return icd_term->dispatch.GetWinrtDisplayNV(phys_dev_term->phys_dev, deviceRelativeId, pDisplay);
9257
}
9258
9259
#endif // VK_USE_PLATFORM_WIN32_KHR
9260
9261
// ---- VK_EXT_vertex_input_dynamic_state extension trampoline/terminators
9262
9263
VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT(
9264
    VkCommandBuffer                             commandBuffer,
9265
    uint32_t                                    vertexBindingDescriptionCount,
9266
    const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
9267
    uint32_t                                    vertexAttributeDescriptionCount,
9268
0
    const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) {
9269
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9270
0
    if (NULL == disp) {
9271
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9272
0
                   "vkCmdSetVertexInputEXT: Invalid commandBuffer "
9273
0
                   "[VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter]");
9274
0
        abort(); /* Intentionally fail so user can correct issue. */
9275
0
    }
9276
0
    disp->CmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
9277
0
}
9278
9279
9280
// ---- VK_FUCHSIA_external_memory extension trampoline/terminators
9281
9282
#if defined(VK_USE_PLATFORM_FUCHSIA)
9283
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA(
9284
    VkDevice                                    device,
9285
    const VkMemoryGetZirconHandleInfoFUCHSIA*   pGetZirconHandleInfo,
9286
    zx_handle_t*                                pZirconHandle) {
9287
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9288
    if (NULL == disp) {
9289
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9290
                   "vkGetMemoryZirconHandleFUCHSIA: Invalid device "
9291
                   "[VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter]");
9292
        abort(); /* Intentionally fail so user can correct issue. */
9293
    }
9294
    return disp->GetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
9295
}
9296
9297
#endif // VK_USE_PLATFORM_FUCHSIA
9298
#if defined(VK_USE_PLATFORM_FUCHSIA)
9299
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA(
9300
    VkDevice                                    device,
9301
    VkExternalMemoryHandleTypeFlagBits          handleType,
9302
    zx_handle_t                                 zirconHandle,
9303
    VkMemoryZirconHandlePropertiesFUCHSIA*      pMemoryZirconHandleProperties) {
9304
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9305
    if (NULL == disp) {
9306
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9307
                   "vkGetMemoryZirconHandlePropertiesFUCHSIA: Invalid device "
9308
                   "[VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter]");
9309
        abort(); /* Intentionally fail so user can correct issue. */
9310
    }
9311
    return disp->GetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties);
9312
}
9313
9314
#endif // VK_USE_PLATFORM_FUCHSIA
9315
9316
// ---- VK_FUCHSIA_external_semaphore extension trampoline/terminators
9317
9318
#if defined(VK_USE_PLATFORM_FUCHSIA)
9319
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreZirconHandleFUCHSIA(
9320
    VkDevice                                    device,
9321
    const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) {
9322
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9323
    if (NULL == disp) {
9324
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9325
                   "vkImportSemaphoreZirconHandleFUCHSIA: Invalid device "
9326
                   "[VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter]");
9327
        abort(); /* Intentionally fail so user can correct issue. */
9328
    }
9329
    return disp->ImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo);
9330
}
9331
9332
#endif // VK_USE_PLATFORM_FUCHSIA
9333
#if defined(VK_USE_PLATFORM_FUCHSIA)
9334
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA(
9335
    VkDevice                                    device,
9336
    const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
9337
    zx_handle_t*                                pZirconHandle) {
9338
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9339
    if (NULL == disp) {
9340
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9341
                   "vkGetSemaphoreZirconHandleFUCHSIA: Invalid device "
9342
                   "[VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter]");
9343
        abort(); /* Intentionally fail so user can correct issue. */
9344
    }
9345
    return disp->GetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
9346
}
9347
9348
#endif // VK_USE_PLATFORM_FUCHSIA
9349
9350
// ---- VK_FUCHSIA_buffer_collection extension trampoline/terminators
9351
9352
#if defined(VK_USE_PLATFORM_FUCHSIA)
9353
VKAPI_ATTR VkResult VKAPI_CALL CreateBufferCollectionFUCHSIA(
9354
    VkDevice                                    device,
9355
    const VkBufferCollectionCreateInfoFUCHSIA*  pCreateInfo,
9356
    const VkAllocationCallbacks*                pAllocator,
9357
    VkBufferCollectionFUCHSIA*                  pCollection) {
9358
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9359
    if (NULL == disp) {
9360
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9361
                   "vkCreateBufferCollectionFUCHSIA: Invalid device "
9362
                   "[VUID-vkCreateBufferCollectionFUCHSIA-device-parameter]");
9363
        abort(); /* Intentionally fail so user can correct issue. */
9364
    }
9365
    return disp->CreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection);
9366
}
9367
9368
#endif // VK_USE_PLATFORM_FUCHSIA
9369
#if defined(VK_USE_PLATFORM_FUCHSIA)
9370
VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionImageConstraintsFUCHSIA(
9371
    VkDevice                                    device,
9372
    VkBufferCollectionFUCHSIA                   collection,
9373
    const VkImageConstraintsInfoFUCHSIA*        pImageConstraintsInfo) {
9374
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9375
    if (NULL == disp) {
9376
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9377
                   "vkSetBufferCollectionImageConstraintsFUCHSIA: Invalid device "
9378
                   "[VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter]");
9379
        abort(); /* Intentionally fail so user can correct issue. */
9380
    }
9381
    return disp->SetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo);
9382
}
9383
9384
#endif // VK_USE_PLATFORM_FUCHSIA
9385
#if defined(VK_USE_PLATFORM_FUCHSIA)
9386
VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionBufferConstraintsFUCHSIA(
9387
    VkDevice                                    device,
9388
    VkBufferCollectionFUCHSIA                   collection,
9389
    const VkBufferConstraintsInfoFUCHSIA*       pBufferConstraintsInfo) {
9390
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9391
    if (NULL == disp) {
9392
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9393
                   "vkSetBufferCollectionBufferConstraintsFUCHSIA: Invalid device "
9394
                   "[VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter]");
9395
        abort(); /* Intentionally fail so user can correct issue. */
9396
    }
9397
    return disp->SetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo);
9398
}
9399
9400
#endif // VK_USE_PLATFORM_FUCHSIA
9401
#if defined(VK_USE_PLATFORM_FUCHSIA)
9402
VKAPI_ATTR void VKAPI_CALL DestroyBufferCollectionFUCHSIA(
9403
    VkDevice                                    device,
9404
    VkBufferCollectionFUCHSIA                   collection,
9405
    const VkAllocationCallbacks*                pAllocator) {
9406
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9407
    if (NULL == disp) {
9408
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9409
                   "vkDestroyBufferCollectionFUCHSIA: Invalid device "
9410
                   "[VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter]");
9411
        abort(); /* Intentionally fail so user can correct issue. */
9412
    }
9413
    disp->DestroyBufferCollectionFUCHSIA(device, collection, pAllocator);
9414
}
9415
9416
#endif // VK_USE_PLATFORM_FUCHSIA
9417
#if defined(VK_USE_PLATFORM_FUCHSIA)
9418
VKAPI_ATTR VkResult VKAPI_CALL GetBufferCollectionPropertiesFUCHSIA(
9419
    VkDevice                                    device,
9420
    VkBufferCollectionFUCHSIA                   collection,
9421
    VkBufferCollectionPropertiesFUCHSIA*        pProperties) {
9422
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9423
    if (NULL == disp) {
9424
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9425
                   "vkGetBufferCollectionPropertiesFUCHSIA: Invalid device "
9426
                   "[VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter]");
9427
        abort(); /* Intentionally fail so user can correct issue. */
9428
    }
9429
    return disp->GetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties);
9430
}
9431
9432
#endif // VK_USE_PLATFORM_FUCHSIA
9433
9434
// ---- VK_HUAWEI_subpass_shading extension trampoline/terminators
9435
9436
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
9437
    VkDevice                                    device,
9438
    VkRenderPass                                renderpass,
9439
0
    VkExtent2D*                                 pMaxWorkgroupSize) {
9440
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9441
0
    if (NULL == disp) {
9442
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9443
0
                   "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: Invalid device "
9444
0
                   "[VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter]");
9445
0
        abort(); /* Intentionally fail so user can correct issue. */
9446
0
    }
9447
0
    return disp->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
9448
0
}
9449
9450
VKAPI_ATTR void VKAPI_CALL CmdSubpassShadingHUAWEI(
9451
0
    VkCommandBuffer                             commandBuffer) {
9452
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9453
0
    if (NULL == disp) {
9454
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9455
0
                   "vkCmdSubpassShadingHUAWEI: Invalid commandBuffer "
9456
0
                   "[VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter]");
9457
0
        abort(); /* Intentionally fail so user can correct issue. */
9458
0
    }
9459
0
    disp->CmdSubpassShadingHUAWEI(commandBuffer);
9460
0
}
9461
9462
9463
// ---- VK_HUAWEI_invocation_mask extension trampoline/terminators
9464
9465
VKAPI_ATTR void VKAPI_CALL CmdBindInvocationMaskHUAWEI(
9466
    VkCommandBuffer                             commandBuffer,
9467
    VkImageView                                 imageView,
9468
0
    VkImageLayout                               imageLayout) {
9469
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9470
0
    if (NULL == disp) {
9471
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9472
0
                   "vkCmdBindInvocationMaskHUAWEI: Invalid commandBuffer "
9473
0
                   "[VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter]");
9474
0
        abort(); /* Intentionally fail so user can correct issue. */
9475
0
    }
9476
0
    disp->CmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout);
9477
0
}
9478
9479
9480
// ---- VK_NV_external_memory_rdma extension trampoline/terminators
9481
9482
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV(
9483
    VkDevice                                    device,
9484
    const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
9485
0
    VkRemoteAddressNV*                          pAddress) {
9486
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9487
0
    if (NULL == disp) {
9488
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9489
0
                   "vkGetMemoryRemoteAddressNV: Invalid device "
9490
0
                   "[VUID-vkGetMemoryRemoteAddressNV-device-parameter]");
9491
0
        abort(); /* Intentionally fail so user can correct issue. */
9492
0
    }
9493
0
    return disp->GetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress);
9494
0
}
9495
9496
9497
// ---- VK_EXT_pipeline_properties extension trampoline/terminators
9498
9499
VKAPI_ATTR VkResult VKAPI_CALL GetPipelinePropertiesEXT(
9500
    VkDevice                                    device,
9501
    const VkPipelineInfoEXT*                    pPipelineInfo,
9502
0
    VkBaseOutStructure*                         pPipelineProperties) {
9503
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkGetPipelinePropertiesEXT: Invalid device "
9507
0
                   "[VUID-vkGetPipelinePropertiesEXT-device-parameter]");
9508
0
        abort(); /* Intentionally fail so user can correct issue. */
9509
0
    }
9510
0
    return disp->GetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties);
9511
0
}
9512
9513
9514
// ---- VK_EXT_extended_dynamic_state2 extension trampoline/terminators
9515
9516
VKAPI_ATTR void VKAPI_CALL CmdSetPatchControlPointsEXT(
9517
    VkCommandBuffer                             commandBuffer,
9518
0
    uint32_t                                    patchControlPoints) {
9519
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9520
0
    if (NULL == disp) {
9521
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9522
0
                   "vkCmdSetPatchControlPointsEXT: Invalid commandBuffer "
9523
0
                   "[VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter]");
9524
0
        abort(); /* Intentionally fail so user can correct issue. */
9525
0
    }
9526
0
    disp->CmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
9527
0
}
9528
9529
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnableEXT(
9530
    VkCommandBuffer                             commandBuffer,
9531
0
    VkBool32                                    rasterizerDiscardEnable) {
9532
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9533
0
    if (NULL == disp) {
9534
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9535
0
                   "vkCmdSetRasterizerDiscardEnableEXT: Invalid commandBuffer "
9536
0
                   "[VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter]");
9537
0
        abort(); /* Intentionally fail so user can correct issue. */
9538
0
    }
9539
0
    disp->CmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable);
9540
0
}
9541
9542
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnableEXT(
9543
    VkCommandBuffer                             commandBuffer,
9544
0
    VkBool32                                    depthBiasEnable) {
9545
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9546
0
    if (NULL == disp) {
9547
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9548
0
                   "vkCmdSetDepthBiasEnableEXT: Invalid commandBuffer "
9549
0
                   "[VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter]");
9550
0
        abort(); /* Intentionally fail so user can correct issue. */
9551
0
    }
9552
0
    disp->CmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable);
9553
0
}
9554
9555
VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEXT(
9556
    VkCommandBuffer                             commandBuffer,
9557
0
    VkLogicOp                                   logicOp) {
9558
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9559
0
    if (NULL == disp) {
9560
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9561
0
                   "vkCmdSetLogicOpEXT: Invalid commandBuffer "
9562
0
                   "[VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter]");
9563
0
        abort(); /* Intentionally fail so user can correct issue. */
9564
0
    }
9565
0
    disp->CmdSetLogicOpEXT(commandBuffer, logicOp);
9566
0
}
9567
9568
VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnableEXT(
9569
    VkCommandBuffer                             commandBuffer,
9570
0
    VkBool32                                    primitiveRestartEnable) {
9571
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9572
0
    if (NULL == disp) {
9573
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9574
0
                   "vkCmdSetPrimitiveRestartEnableEXT: Invalid commandBuffer "
9575
0
                   "[VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter]");
9576
0
        abort(); /* Intentionally fail so user can correct issue. */
9577
0
    }
9578
0
    disp->CmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable);
9579
0
}
9580
9581
9582
// ---- VK_EXT_color_write_enable extension trampoline/terminators
9583
9584
VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteEnableEXT(
9585
    VkCommandBuffer                             commandBuffer,
9586
    uint32_t                                    attachmentCount,
9587
0
    const VkBool32*                             pColorWriteEnables) {
9588
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9589
0
    if (NULL == disp) {
9590
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9591
0
                   "vkCmdSetColorWriteEnableEXT: Invalid commandBuffer "
9592
0
                   "[VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter]");
9593
0
        abort(); /* Intentionally fail so user can correct issue. */
9594
0
    }
9595
0
    disp->CmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
9596
0
}
9597
9598
9599
// ---- VK_EXT_multi_draw extension trampoline/terminators
9600
9601
VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT(
9602
    VkCommandBuffer                             commandBuffer,
9603
    uint32_t                                    drawCount,
9604
    const VkMultiDrawInfoEXT*                   pVertexInfo,
9605
    uint32_t                                    instanceCount,
9606
    uint32_t                                    firstInstance,
9607
0
    uint32_t                                    stride) {
9608
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9609
0
    if (NULL == disp) {
9610
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9611
0
                   "vkCmdDrawMultiEXT: Invalid commandBuffer "
9612
0
                   "[VUID-vkCmdDrawMultiEXT-commandBuffer-parameter]");
9613
0
        abort(); /* Intentionally fail so user can correct issue. */
9614
0
    }
9615
0
    disp->CmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride);
9616
0
}
9617
9618
VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT(
9619
    VkCommandBuffer                             commandBuffer,
9620
    uint32_t                                    drawCount,
9621
    const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
9622
    uint32_t                                    instanceCount,
9623
    uint32_t                                    firstInstance,
9624
    uint32_t                                    stride,
9625
0
    const int32_t*                              pVertexOffset) {
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
                   "vkCmdDrawMultiIndexedEXT: Invalid commandBuffer "
9630
0
                   "[VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter]");
9631
0
        abort(); /* Intentionally fail so user can correct issue. */
9632
0
    }
9633
0
    disp->CmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset);
9634
0
}
9635
9636
9637
// ---- VK_EXT_opacity_micromap extension trampoline/terminators
9638
9639
VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT(
9640
    VkDevice                                    device,
9641
    const VkMicromapCreateInfoEXT*              pCreateInfo,
9642
    const VkAllocationCallbacks*                pAllocator,
9643
0
    VkMicromapEXT*                              pMicromap) {
9644
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9645
0
    if (NULL == disp) {
9646
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9647
0
                   "vkCreateMicromapEXT: Invalid device "
9648
0
                   "[VUID-vkCreateMicromapEXT-device-parameter]");
9649
0
        abort(); /* Intentionally fail so user can correct issue. */
9650
0
    }
9651
0
    return disp->CreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap);
9652
0
}
9653
9654
VKAPI_ATTR void VKAPI_CALL DestroyMicromapEXT(
9655
    VkDevice                                    device,
9656
    VkMicromapEXT                               micromap,
9657
0
    const VkAllocationCallbacks*                pAllocator) {
9658
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9659
0
    if (NULL == disp) {
9660
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9661
0
                   "vkDestroyMicromapEXT: Invalid device "
9662
0
                   "[VUID-vkDestroyMicromapEXT-device-parameter]");
9663
0
        abort(); /* Intentionally fail so user can correct issue. */
9664
0
    }
9665
0
    disp->DestroyMicromapEXT(device, micromap, pAllocator);
9666
0
}
9667
9668
VKAPI_ATTR void VKAPI_CALL CmdBuildMicromapsEXT(
9669
    VkCommandBuffer                             commandBuffer,
9670
    uint32_t                                    infoCount,
9671
0
    const VkMicromapBuildInfoEXT*               pInfos) {
9672
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9673
0
    if (NULL == disp) {
9674
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9675
0
                   "vkCmdBuildMicromapsEXT: Invalid commandBuffer "
9676
0
                   "[VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter]");
9677
0
        abort(); /* Intentionally fail so user can correct issue. */
9678
0
    }
9679
0
    disp->CmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos);
9680
0
}
9681
9682
VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT(
9683
    VkDevice                                    device,
9684
    VkDeferredOperationKHR                      deferredOperation,
9685
    uint32_t                                    infoCount,
9686
0
    const VkMicromapBuildInfoEXT*               pInfos) {
9687
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9688
0
    if (NULL == disp) {
9689
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9690
0
                   "vkBuildMicromapsEXT: Invalid device "
9691
0
                   "[VUID-vkBuildMicromapsEXT-device-parameter]");
9692
0
        abort(); /* Intentionally fail so user can correct issue. */
9693
0
    }
9694
0
    return disp->BuildMicromapsEXT(device, deferredOperation, infoCount, pInfos);
9695
0
}
9696
9697
VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapEXT(
9698
    VkDevice                                    device,
9699
    VkDeferredOperationKHR                      deferredOperation,
9700
0
    const VkCopyMicromapInfoEXT*                pInfo) {
9701
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9702
0
    if (NULL == disp) {
9703
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9704
0
                   "vkCopyMicromapEXT: Invalid device "
9705
0
                   "[VUID-vkCopyMicromapEXT-device-parameter]");
9706
0
        abort(); /* Intentionally fail so user can correct issue. */
9707
0
    }
9708
0
    return disp->CopyMicromapEXT(device, deferredOperation, pInfo);
9709
0
}
9710
9711
VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapToMemoryEXT(
9712
    VkDevice                                    device,
9713
    VkDeferredOperationKHR                      deferredOperation,
9714
0
    const VkCopyMicromapToMemoryInfoEXT*        pInfo) {
9715
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9716
0
    if (NULL == disp) {
9717
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9718
0
                   "vkCopyMicromapToMemoryEXT: Invalid device "
9719
0
                   "[VUID-vkCopyMicromapToMemoryEXT-device-parameter]");
9720
0
        abort(); /* Intentionally fail so user can correct issue. */
9721
0
    }
9722
0
    return disp->CopyMicromapToMemoryEXT(device, deferredOperation, pInfo);
9723
0
}
9724
9725
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToMicromapEXT(
9726
    VkDevice                                    device,
9727
    VkDeferredOperationKHR                      deferredOperation,
9728
0
    const VkCopyMemoryToMicromapInfoEXT*        pInfo) {
9729
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9730
0
    if (NULL == disp) {
9731
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9732
0
                   "vkCopyMemoryToMicromapEXT: Invalid device "
9733
0
                   "[VUID-vkCopyMemoryToMicromapEXT-device-parameter]");
9734
0
        abort(); /* Intentionally fail so user can correct issue. */
9735
0
    }
9736
0
    return disp->CopyMemoryToMicromapEXT(device, deferredOperation, pInfo);
9737
0
}
9738
9739
VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT(
9740
    VkDevice                                    device,
9741
    uint32_t                                    micromapCount,
9742
    const VkMicromapEXT*                        pMicromaps,
9743
    VkQueryType                                 queryType,
9744
    size_t                                      dataSize,
9745
    void*                                       pData,
9746
0
    size_t                                      stride) {
9747
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkWriteMicromapsPropertiesEXT: Invalid device "
9751
0
                   "[VUID-vkWriteMicromapsPropertiesEXT-device-parameter]");
9752
0
        abort(); /* Intentionally fail so user can correct issue. */
9753
0
    }
9754
0
    return disp->WriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride);
9755
0
}
9756
9757
VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapEXT(
9758
    VkCommandBuffer                             commandBuffer,
9759
0
    const VkCopyMicromapInfoEXT*                pInfo) {
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
                   "vkCmdCopyMicromapEXT: Invalid commandBuffer "
9764
0
                   "[VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter]");
9765
0
        abort(); /* Intentionally fail so user can correct issue. */
9766
0
    }
9767
0
    disp->CmdCopyMicromapEXT(commandBuffer, pInfo);
9768
0
}
9769
9770
VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapToMemoryEXT(
9771
    VkCommandBuffer                             commandBuffer,
9772
0
    const VkCopyMicromapToMemoryInfoEXT*        pInfo) {
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
                   "vkCmdCopyMicromapToMemoryEXT: Invalid commandBuffer "
9777
0
                   "[VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter]");
9778
0
        abort(); /* Intentionally fail so user can correct issue. */
9779
0
    }
9780
0
    disp->CmdCopyMicromapToMemoryEXT(commandBuffer, pInfo);
9781
0
}
9782
9783
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToMicromapEXT(
9784
    VkCommandBuffer                             commandBuffer,
9785
0
    const VkCopyMemoryToMicromapInfoEXT*        pInfo) {
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
                   "vkCmdCopyMemoryToMicromapEXT: Invalid commandBuffer "
9790
0
                   "[VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter]");
9791
0
        abort(); /* Intentionally fail so user can correct issue. */
9792
0
    }
9793
0
    disp->CmdCopyMemoryToMicromapEXT(commandBuffer, pInfo);
9794
0
}
9795
9796
VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT(
9797
    VkCommandBuffer                             commandBuffer,
9798
    uint32_t                                    micromapCount,
9799
    const VkMicromapEXT*                        pMicromaps,
9800
    VkQueryType                                 queryType,
9801
    VkQueryPool                                 queryPool,
9802
0
    uint32_t                                    firstQuery) {
9803
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9804
0
    if (NULL == disp) {
9805
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9806
0
                   "vkCmdWriteMicromapsPropertiesEXT: Invalid commandBuffer "
9807
0
                   "[VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter]");
9808
0
        abort(); /* Intentionally fail so user can correct issue. */
9809
0
    }
9810
0
    disp->CmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery);
9811
0
}
9812
9813
VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT(
9814
    VkDevice                                    device,
9815
    const VkMicromapVersionInfoEXT*             pVersionInfo,
9816
0
    VkAccelerationStructureCompatibilityKHR*    pCompatibility) {
9817
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9818
0
    if (NULL == disp) {
9819
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9820
0
                   "vkGetDeviceMicromapCompatibilityEXT: Invalid device "
9821
0
                   "[VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter]");
9822
0
        abort(); /* Intentionally fail so user can correct issue. */
9823
0
    }
9824
0
    disp->GetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility);
9825
0
}
9826
9827
VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT(
9828
    VkDevice                                    device,
9829
    VkAccelerationStructureBuildTypeKHR         buildType,
9830
    const VkMicromapBuildInfoEXT*               pBuildInfo,
9831
0
    VkMicromapBuildSizesInfoEXT*                pSizeInfo) {
9832
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9833
0
    if (NULL == disp) {
9834
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9835
0
                   "vkGetMicromapBuildSizesEXT: Invalid device "
9836
0
                   "[VUID-vkGetMicromapBuildSizesEXT-device-parameter]");
9837
0
        abort(); /* Intentionally fail so user can correct issue. */
9838
0
    }
9839
0
    disp->GetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo);
9840
0
}
9841
9842
9843
// ---- VK_HUAWEI_cluster_culling_shader extension trampoline/terminators
9844
9845
VKAPI_ATTR void VKAPI_CALL CmdDrawClusterHUAWEI(
9846
    VkCommandBuffer                             commandBuffer,
9847
    uint32_t                                    groupCountX,
9848
    uint32_t                                    groupCountY,
9849
0
    uint32_t                                    groupCountZ) {
9850
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9851
0
    if (NULL == disp) {
9852
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9853
0
                   "vkCmdDrawClusterHUAWEI: Invalid commandBuffer "
9854
0
                   "[VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter]");
9855
0
        abort(); /* Intentionally fail so user can correct issue. */
9856
0
    }
9857
0
    disp->CmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ);
9858
0
}
9859
9860
VKAPI_ATTR void VKAPI_CALL CmdDrawClusterIndirectHUAWEI(
9861
    VkCommandBuffer                             commandBuffer,
9862
    VkBuffer                                    buffer,
9863
0
    VkDeviceSize                                offset) {
9864
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9865
0
    if (NULL == disp) {
9866
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9867
0
                   "vkCmdDrawClusterIndirectHUAWEI: Invalid commandBuffer "
9868
0
                   "[VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter]");
9869
0
        abort(); /* Intentionally fail so user can correct issue. */
9870
0
    }
9871
0
    disp->CmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset);
9872
0
}
9873
9874
9875
// ---- VK_EXT_pageable_device_local_memory extension trampoline/terminators
9876
9877
VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT(
9878
    VkDevice                                    device,
9879
    VkDeviceMemory                              memory,
9880
0
    float                                       priority) {
9881
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9882
0
    if (NULL == disp) {
9883
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9884
0
                   "vkSetDeviceMemoryPriorityEXT: Invalid device "
9885
0
                   "[VUID-vkSetDeviceMemoryPriorityEXT-device-parameter]");
9886
0
        abort(); /* Intentionally fail so user can correct issue. */
9887
0
    }
9888
0
    disp->SetDeviceMemoryPriorityEXT(device, memory, priority);
9889
0
}
9890
9891
9892
// ---- VK_VALVE_descriptor_set_host_mapping extension trampoline/terminators
9893
9894
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE(
9895
    VkDevice                                    device,
9896
    const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
9897
0
    VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping) {
9898
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9899
0
    if (NULL == disp) {
9900
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9901
0
                   "vkGetDescriptorSetLayoutHostMappingInfoVALVE: Invalid device "
9902
0
                   "[VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter]");
9903
0
        abort(); /* Intentionally fail so user can correct issue. */
9904
0
    }
9905
0
    disp->GetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping);
9906
0
}
9907
9908
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE(
9909
    VkDevice                                    device,
9910
    VkDescriptorSet                             descriptorSet,
9911
0
    void**                                      ppData) {
9912
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9913
0
    if (NULL == disp) {
9914
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9915
0
                   "vkGetDescriptorSetHostMappingVALVE: Invalid device "
9916
0
                   "[VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter]");
9917
0
        abort(); /* Intentionally fail so user can correct issue. */
9918
0
    }
9919
0
    disp->GetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData);
9920
0
}
9921
9922
9923
// ---- VK_NV_copy_memory_indirect extension trampoline/terminators
9924
9925
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectNV(
9926
    VkCommandBuffer                             commandBuffer,
9927
    VkDeviceAddress                             copyBufferAddress,
9928
    uint32_t                                    copyCount,
9929
0
    uint32_t                                    stride) {
9930
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9931
0
    if (NULL == disp) {
9932
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9933
0
                   "vkCmdCopyMemoryIndirectNV: Invalid commandBuffer "
9934
0
                   "[VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameter]");
9935
0
        abort(); /* Intentionally fail so user can correct issue. */
9936
0
    }
9937
0
    disp->CmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride);
9938
0
}
9939
9940
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectNV(
9941
    VkCommandBuffer                             commandBuffer,
9942
    VkDeviceAddress                             copyBufferAddress,
9943
    uint32_t                                    copyCount,
9944
    uint32_t                                    stride,
9945
    VkImage                                     dstImage,
9946
    VkImageLayout                               dstImageLayout,
9947
0
    const VkImageSubresourceLayers*             pImageSubresources) {
9948
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9949
0
    if (NULL == disp) {
9950
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9951
0
                   "vkCmdCopyMemoryToImageIndirectNV: Invalid commandBuffer "
9952
0
                   "[VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameter]");
9953
0
        abort(); /* Intentionally fail so user can correct issue. */
9954
0
    }
9955
0
    disp->CmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources);
9956
0
}
9957
9958
9959
// ---- VK_NV_memory_decompression extension trampoline/terminators
9960
9961
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryNV(
9962
    VkCommandBuffer                             commandBuffer,
9963
    uint32_t                                    decompressRegionCount,
9964
0
    const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions) {
9965
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9966
0
    if (NULL == disp) {
9967
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9968
0
                   "vkCmdDecompressMemoryNV: Invalid commandBuffer "
9969
0
                   "[VUID-vkCmdDecompressMemoryNV-commandBuffer-parameter]");
9970
0
        abort(); /* Intentionally fail so user can correct issue. */
9971
0
    }
9972
0
    disp->CmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions);
9973
0
}
9974
9975
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountNV(
9976
    VkCommandBuffer                             commandBuffer,
9977
    VkDeviceAddress                             indirectCommandsAddress,
9978
    VkDeviceAddress                             indirectCommandsCountAddress,
9979
0
    uint32_t                                    stride) {
9980
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9981
0
    if (NULL == disp) {
9982
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9983
0
                   "vkCmdDecompressMemoryIndirectCountNV: Invalid commandBuffer "
9984
0
                   "[VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameter]");
9985
0
        abort(); /* Intentionally fail so user can correct issue. */
9986
0
    }
9987
0
    disp->CmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride);
9988
0
}
9989
9990
9991
// ---- VK_NV_device_generated_commands_compute extension trampoline/terminators
9992
9993
VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV(
9994
    VkDevice                                    device,
9995
    const VkComputePipelineCreateInfo*          pCreateInfo,
9996
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
9997
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9998
0
    if (NULL == disp) {
9999
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10000
0
                   "vkGetPipelineIndirectMemoryRequirementsNV: Invalid device "
10001
0
                   "[VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter]");
10002
0
        abort(); /* Intentionally fail so user can correct issue. */
10003
0
    }
10004
0
    disp->GetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
10005
0
}
10006
10007
VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBufferNV(
10008
    VkCommandBuffer                             commandBuffer,
10009
    VkPipelineBindPoint                         pipelineBindPoint,
10010
0
    VkPipeline                                  pipeline) {
10011
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10012
0
    if (NULL == disp) {
10013
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10014
0
                   "vkCmdUpdatePipelineIndirectBufferNV: Invalid commandBuffer "
10015
0
                   "[VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter]");
10016
0
        abort(); /* Intentionally fail so user can correct issue. */
10017
0
    }
10018
0
    disp->CmdUpdatePipelineIndirectBufferNV(commandBuffer, pipelineBindPoint, pipeline);
10019
0
}
10020
10021
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV(
10022
    VkDevice                                    device,
10023
0
    const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {
10024
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10025
0
    if (NULL == disp) {
10026
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10027
0
                   "vkGetPipelineIndirectDeviceAddressNV: Invalid device "
10028
0
                   "[VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter]");
10029
0
        abort(); /* Intentionally fail so user can correct issue. */
10030
0
    }
10031
0
    return disp->GetPipelineIndirectDeviceAddressNV(device, pInfo);
10032
0
}
10033
10034
10035
// ---- VK_OHOS_external_memory extension trampoline/terminators
10036
10037
#if defined(VK_USE_PLATFORM_OHOS)
10038
VKAPI_ATTR VkResult VKAPI_CALL GetNativeBufferPropertiesOHOS(
10039
    VkDevice                                    device,
10040
    const struct OH_NativeBuffer*               buffer,
10041
    VkNativeBufferPropertiesOHOS*               pProperties) {
10042
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10043
    if (NULL == disp) {
10044
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10045
                   "vkGetNativeBufferPropertiesOHOS: Invalid device "
10046
                   "[VUID-vkGetNativeBufferPropertiesOHOS-device-parameter]");
10047
        abort(); /* Intentionally fail so user can correct issue. */
10048
    }
10049
    return disp->GetNativeBufferPropertiesOHOS(device, buffer, pProperties);
10050
}
10051
10052
#endif // VK_USE_PLATFORM_OHOS
10053
#if defined(VK_USE_PLATFORM_OHOS)
10054
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryNativeBufferOHOS(
10055
    VkDevice                                    device,
10056
    const VkMemoryGetNativeBufferInfoOHOS*      pInfo,
10057
    struct OH_NativeBuffer**                    pBuffer) {
10058
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10059
    if (NULL == disp) {
10060
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10061
                   "vkGetMemoryNativeBufferOHOS: Invalid device "
10062
                   "[VUID-vkGetMemoryNativeBufferOHOS-device-parameter]");
10063
        abort(); /* Intentionally fail so user can correct issue. */
10064
    }
10065
    return disp->GetMemoryNativeBufferOHOS(device, pInfo, pBuffer);
10066
}
10067
10068
#endif // VK_USE_PLATFORM_OHOS
10069
10070
// ---- VK_EXT_extended_dynamic_state3 extension trampoline/terminators
10071
10072
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampEnableEXT(
10073
    VkCommandBuffer                             commandBuffer,
10074
0
    VkBool32                                    depthClampEnable) {
10075
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10076
0
    if (NULL == disp) {
10077
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10078
0
                   "vkCmdSetDepthClampEnableEXT: Invalid commandBuffer "
10079
0
                   "[VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter]");
10080
0
        abort(); /* Intentionally fail so user can correct issue. */
10081
0
    }
10082
0
    disp->CmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable);
10083
0
}
10084
10085
VKAPI_ATTR void VKAPI_CALL CmdSetPolygonModeEXT(
10086
    VkCommandBuffer                             commandBuffer,
10087
0
    VkPolygonMode                               polygonMode) {
10088
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10089
0
    if (NULL == disp) {
10090
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10091
0
                   "vkCmdSetPolygonModeEXT: Invalid commandBuffer "
10092
0
                   "[VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter]");
10093
0
        abort(); /* Intentionally fail so user can correct issue. */
10094
0
    }
10095
0
    disp->CmdSetPolygonModeEXT(commandBuffer, polygonMode);
10096
0
}
10097
10098
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationSamplesEXT(
10099
    VkCommandBuffer                             commandBuffer,
10100
0
    VkSampleCountFlagBits                       rasterizationSamples) {
10101
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10102
0
    if (NULL == disp) {
10103
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10104
0
                   "vkCmdSetRasterizationSamplesEXT: Invalid commandBuffer "
10105
0
                   "[VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter]");
10106
0
        abort(); /* Intentionally fail so user can correct issue. */
10107
0
    }
10108
0
    disp->CmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples);
10109
0
}
10110
10111
VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT(
10112
    VkCommandBuffer                             commandBuffer,
10113
    VkSampleCountFlagBits                       samples,
10114
0
    const VkSampleMask*                         pSampleMask) {
10115
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10116
0
    if (NULL == disp) {
10117
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10118
0
                   "vkCmdSetSampleMaskEXT: Invalid commandBuffer "
10119
0
                   "[VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter]");
10120
0
        abort(); /* Intentionally fail so user can correct issue. */
10121
0
    }
10122
0
    disp->CmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask);
10123
0
}
10124
10125
VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToCoverageEnableEXT(
10126
    VkCommandBuffer                             commandBuffer,
10127
0
    VkBool32                                    alphaToCoverageEnable) {
10128
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10129
0
    if (NULL == disp) {
10130
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10131
0
                   "vkCmdSetAlphaToCoverageEnableEXT: Invalid commandBuffer "
10132
0
                   "[VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter]");
10133
0
        abort(); /* Intentionally fail so user can correct issue. */
10134
0
    }
10135
0
    disp->CmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable);
10136
0
}
10137
10138
VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToOneEnableEXT(
10139
    VkCommandBuffer                             commandBuffer,
10140
0
    VkBool32                                    alphaToOneEnable) {
10141
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10142
0
    if (NULL == disp) {
10143
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10144
0
                   "vkCmdSetAlphaToOneEnableEXT: Invalid commandBuffer "
10145
0
                   "[VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter]");
10146
0
        abort(); /* Intentionally fail so user can correct issue. */
10147
0
    }
10148
0
    disp->CmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable);
10149
0
}
10150
10151
VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEnableEXT(
10152
    VkCommandBuffer                             commandBuffer,
10153
0
    VkBool32                                    logicOpEnable) {
10154
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdSetLogicOpEnableEXT: Invalid commandBuffer "
10158
0
                   "[VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter]");
10159
0
        abort(); /* Intentionally fail so user can correct issue. */
10160
0
    }
10161
0
    disp->CmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable);
10162
0
}
10163
10164
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT(
10165
    VkCommandBuffer                             commandBuffer,
10166
    uint32_t                                    firstAttachment,
10167
    uint32_t                                    attachmentCount,
10168
0
    const VkBool32*                             pColorBlendEnables) {
10169
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10170
0
    if (NULL == disp) {
10171
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10172
0
                   "vkCmdSetColorBlendEnableEXT: Invalid commandBuffer "
10173
0
                   "[VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter]");
10174
0
        abort(); /* Intentionally fail so user can correct issue. */
10175
0
    }
10176
0
    disp->CmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables);
10177
0
}
10178
10179
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT(
10180
    VkCommandBuffer                             commandBuffer,
10181
    uint32_t                                    firstAttachment,
10182
    uint32_t                                    attachmentCount,
10183
0
    const VkColorBlendEquationEXT*              pColorBlendEquations) {
10184
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10185
0
    if (NULL == disp) {
10186
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10187
0
                   "vkCmdSetColorBlendEquationEXT: Invalid commandBuffer "
10188
0
                   "[VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter]");
10189
0
        abort(); /* Intentionally fail so user can correct issue. */
10190
0
    }
10191
0
    disp->CmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations);
10192
0
}
10193
10194
VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT(
10195
    VkCommandBuffer                             commandBuffer,
10196
    uint32_t                                    firstAttachment,
10197
    uint32_t                                    attachmentCount,
10198
0
    const VkColorComponentFlags*                pColorWriteMasks) {
10199
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10200
0
    if (NULL == disp) {
10201
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10202
0
                   "vkCmdSetColorWriteMaskEXT: Invalid commandBuffer "
10203
0
                   "[VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter]");
10204
0
        abort(); /* Intentionally fail so user can correct issue. */
10205
0
    }
10206
0
    disp->CmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks);
10207
0
}
10208
10209
VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT(
10210
    VkCommandBuffer                             commandBuffer,
10211
0
    VkTessellationDomainOrigin                  domainOrigin) {
10212
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10213
0
    if (NULL == disp) {
10214
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10215
0
                   "vkCmdSetTessellationDomainOriginEXT: Invalid commandBuffer "
10216
0
                   "[VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter]");
10217
0
        abort(); /* Intentionally fail so user can correct issue. */
10218
0
    }
10219
0
    disp->CmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin);
10220
0
}
10221
10222
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationStreamEXT(
10223
    VkCommandBuffer                             commandBuffer,
10224
0
    uint32_t                                    rasterizationStream) {
10225
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10226
0
    if (NULL == disp) {
10227
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10228
0
                   "vkCmdSetRasterizationStreamEXT: Invalid commandBuffer "
10229
0
                   "[VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter]");
10230
0
        abort(); /* Intentionally fail so user can correct issue. */
10231
0
    }
10232
0
    disp->CmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream);
10233
0
}
10234
10235
VKAPI_ATTR void VKAPI_CALL CmdSetConservativeRasterizationModeEXT(
10236
    VkCommandBuffer                             commandBuffer,
10237
0
    VkConservativeRasterizationModeEXT          conservativeRasterizationMode) {
10238
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10239
0
    if (NULL == disp) {
10240
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10241
0
                   "vkCmdSetConservativeRasterizationModeEXT: Invalid commandBuffer "
10242
0
                   "[VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter]");
10243
0
        abort(); /* Intentionally fail so user can correct issue. */
10244
0
    }
10245
0
    disp->CmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode);
10246
0
}
10247
10248
VKAPI_ATTR void VKAPI_CALL CmdSetExtraPrimitiveOverestimationSizeEXT(
10249
    VkCommandBuffer                             commandBuffer,
10250
0
    float                                       extraPrimitiveOverestimationSize) {
10251
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10252
0
    if (NULL == disp) {
10253
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10254
0
                   "vkCmdSetExtraPrimitiveOverestimationSizeEXT: Invalid commandBuffer "
10255
0
                   "[VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter]");
10256
0
        abort(); /* Intentionally fail so user can correct issue. */
10257
0
    }
10258
0
    disp->CmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize);
10259
0
}
10260
10261
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipEnableEXT(
10262
    VkCommandBuffer                             commandBuffer,
10263
0
    VkBool32                                    depthClipEnable) {
10264
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10265
0
    if (NULL == disp) {
10266
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10267
0
                   "vkCmdSetDepthClipEnableEXT: Invalid commandBuffer "
10268
0
                   "[VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter]");
10269
0
        abort(); /* Intentionally fail so user can correct issue. */
10270
0
    }
10271
0
    disp->CmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable);
10272
0
}
10273
10274
VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEnableEXT(
10275
    VkCommandBuffer                             commandBuffer,
10276
0
    VkBool32                                    sampleLocationsEnable) {
10277
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10278
0
    if (NULL == disp) {
10279
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10280
0
                   "vkCmdSetSampleLocationsEnableEXT: Invalid commandBuffer "
10281
0
                   "[VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter]");
10282
0
        abort(); /* Intentionally fail so user can correct issue. */
10283
0
    }
10284
0
    disp->CmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable);
10285
0
}
10286
10287
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT(
10288
    VkCommandBuffer                             commandBuffer,
10289
    uint32_t                                    firstAttachment,
10290
    uint32_t                                    attachmentCount,
10291
0
    const VkColorBlendAdvancedEXT*              pColorBlendAdvanced) {
10292
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10293
0
    if (NULL == disp) {
10294
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10295
0
                   "vkCmdSetColorBlendAdvancedEXT: Invalid commandBuffer "
10296
0
                   "[VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter]");
10297
0
        abort(); /* Intentionally fail so user can correct issue. */
10298
0
    }
10299
0
    disp->CmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced);
10300
0
}
10301
10302
VKAPI_ATTR void VKAPI_CALL CmdSetProvokingVertexModeEXT(
10303
    VkCommandBuffer                             commandBuffer,
10304
0
    VkProvokingVertexModeEXT                    provokingVertexMode) {
10305
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10306
0
    if (NULL == disp) {
10307
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10308
0
                   "vkCmdSetProvokingVertexModeEXT: Invalid commandBuffer "
10309
0
                   "[VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter]");
10310
0
        abort(); /* Intentionally fail so user can correct issue. */
10311
0
    }
10312
0
    disp->CmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode);
10313
0
}
10314
10315
VKAPI_ATTR void VKAPI_CALL CmdSetLineRasterizationModeEXT(
10316
    VkCommandBuffer                             commandBuffer,
10317
0
    VkLineRasterizationModeEXT                  lineRasterizationMode) {
10318
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10319
0
    if (NULL == disp) {
10320
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10321
0
                   "vkCmdSetLineRasterizationModeEXT: Invalid commandBuffer "
10322
0
                   "[VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter]");
10323
0
        abort(); /* Intentionally fail so user can correct issue. */
10324
0
    }
10325
0
    disp->CmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode);
10326
0
}
10327
10328
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEnableEXT(
10329
    VkCommandBuffer                             commandBuffer,
10330
0
    VkBool32                                    stippledLineEnable) {
10331
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10332
0
    if (NULL == disp) {
10333
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10334
0
                   "vkCmdSetLineStippleEnableEXT: Invalid commandBuffer "
10335
0
                   "[VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter]");
10336
0
        abort(); /* Intentionally fail so user can correct issue. */
10337
0
    }
10338
0
    disp->CmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable);
10339
0
}
10340
10341
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipNegativeOneToOneEXT(
10342
    VkCommandBuffer                             commandBuffer,
10343
0
    VkBool32                                    negativeOneToOne) {
10344
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10345
0
    if (NULL == disp) {
10346
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10347
0
                   "vkCmdSetDepthClipNegativeOneToOneEXT: Invalid commandBuffer "
10348
0
                   "[VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter]");
10349
0
        abort(); /* Intentionally fail so user can correct issue. */
10350
0
    }
10351
0
    disp->CmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne);
10352
0
}
10353
10354
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingEnableNV(
10355
    VkCommandBuffer                             commandBuffer,
10356
0
    VkBool32                                    viewportWScalingEnable) {
10357
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10358
0
    if (NULL == disp) {
10359
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10360
0
                   "vkCmdSetViewportWScalingEnableNV: Invalid commandBuffer "
10361
0
                   "[VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter]");
10362
0
        abort(); /* Intentionally fail so user can correct issue. */
10363
0
    }
10364
0
    disp->CmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable);
10365
0
}
10366
10367
VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV(
10368
    VkCommandBuffer                             commandBuffer,
10369
    uint32_t                                    firstViewport,
10370
    uint32_t                                    viewportCount,
10371
0
    const VkViewportSwizzleNV*                  pViewportSwizzles) {
10372
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10373
0
    if (NULL == disp) {
10374
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10375
0
                   "vkCmdSetViewportSwizzleNV: Invalid commandBuffer "
10376
0
                   "[VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter]");
10377
0
        abort(); /* Intentionally fail so user can correct issue. */
10378
0
    }
10379
0
    disp->CmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles);
10380
0
}
10381
10382
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorEnableNV(
10383
    VkCommandBuffer                             commandBuffer,
10384
0
    VkBool32                                    coverageToColorEnable) {
10385
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10386
0
    if (NULL == disp) {
10387
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10388
0
                   "vkCmdSetCoverageToColorEnableNV: Invalid commandBuffer "
10389
0
                   "[VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter]");
10390
0
        abort(); /* Intentionally fail so user can correct issue. */
10391
0
    }
10392
0
    disp->CmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable);
10393
0
}
10394
10395
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorLocationNV(
10396
    VkCommandBuffer                             commandBuffer,
10397
0
    uint32_t                                    coverageToColorLocation) {
10398
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10399
0
    if (NULL == disp) {
10400
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10401
0
                   "vkCmdSetCoverageToColorLocationNV: Invalid commandBuffer "
10402
0
                   "[VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter]");
10403
0
        abort(); /* Intentionally fail so user can correct issue. */
10404
0
    }
10405
0
    disp->CmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation);
10406
0
}
10407
10408
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationModeNV(
10409
    VkCommandBuffer                             commandBuffer,
10410
0
    VkCoverageModulationModeNV                  coverageModulationMode) {
10411
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10412
0
    if (NULL == disp) {
10413
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10414
0
                   "vkCmdSetCoverageModulationModeNV: Invalid commandBuffer "
10415
0
                   "[VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter]");
10416
0
        abort(); /* Intentionally fail so user can correct issue. */
10417
0
    }
10418
0
    disp->CmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode);
10419
0
}
10420
10421
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableEnableNV(
10422
    VkCommandBuffer                             commandBuffer,
10423
0
    VkBool32                                    coverageModulationTableEnable) {
10424
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10425
0
    if (NULL == disp) {
10426
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10427
0
                   "vkCmdSetCoverageModulationTableEnableNV: Invalid commandBuffer "
10428
0
                   "[VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter]");
10429
0
        abort(); /* Intentionally fail so user can correct issue. */
10430
0
    }
10431
0
    disp->CmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable);
10432
0
}
10433
10434
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV(
10435
    VkCommandBuffer                             commandBuffer,
10436
    uint32_t                                    coverageModulationTableCount,
10437
0
    const float*                                pCoverageModulationTable) {
10438
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10439
0
    if (NULL == disp) {
10440
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10441
0
                   "vkCmdSetCoverageModulationTableNV: Invalid commandBuffer "
10442
0
                   "[VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter]");
10443
0
        abort(); /* Intentionally fail so user can correct issue. */
10444
0
    }
10445
0
    disp->CmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable);
10446
0
}
10447
10448
VKAPI_ATTR void VKAPI_CALL CmdSetShadingRateImageEnableNV(
10449
    VkCommandBuffer                             commandBuffer,
10450
0
    VkBool32                                    shadingRateImageEnable) {
10451
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10452
0
    if (NULL == disp) {
10453
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10454
0
                   "vkCmdSetShadingRateImageEnableNV: Invalid commandBuffer "
10455
0
                   "[VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter]");
10456
0
        abort(); /* Intentionally fail so user can correct issue. */
10457
0
    }
10458
0
    disp->CmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable);
10459
0
}
10460
10461
VKAPI_ATTR void VKAPI_CALL CmdSetRepresentativeFragmentTestEnableNV(
10462
    VkCommandBuffer                             commandBuffer,
10463
0
    VkBool32                                    representativeFragmentTestEnable) {
10464
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10465
0
    if (NULL == disp) {
10466
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10467
0
                   "vkCmdSetRepresentativeFragmentTestEnableNV: Invalid commandBuffer "
10468
0
                   "[VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter]");
10469
0
        abort(); /* Intentionally fail so user can correct issue. */
10470
0
    }
10471
0
    disp->CmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable);
10472
0
}
10473
10474
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV(
10475
    VkCommandBuffer                             commandBuffer,
10476
0
    VkCoverageReductionModeNV                   coverageReductionMode) {
10477
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10478
0
    if (NULL == disp) {
10479
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10480
0
                   "vkCmdSetCoverageReductionModeNV: Invalid commandBuffer "
10481
0
                   "[VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter]");
10482
0
        abort(); /* Intentionally fail so user can correct issue. */
10483
0
    }
10484
0
    disp->CmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode);
10485
0
}
10486
10487
10488
// ---- VK_ARM_tensors extension trampoline/terminators
10489
10490
VKAPI_ATTR VkResult VKAPI_CALL CreateTensorARM(
10491
    VkDevice                                    device,
10492
    const VkTensorCreateInfoARM*                pCreateInfo,
10493
    const VkAllocationCallbacks*                pAllocator,
10494
0
    VkTensorARM*                                pTensor) {
10495
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10496
0
    if (NULL == disp) {
10497
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10498
0
                   "vkCreateTensorARM: Invalid device "
10499
0
                   "[VUID-vkCreateTensorARM-device-parameter]");
10500
0
        abort(); /* Intentionally fail so user can correct issue. */
10501
0
    }
10502
0
    return disp->CreateTensorARM(device, pCreateInfo, pAllocator, pTensor);
10503
0
}
10504
10505
VKAPI_ATTR void VKAPI_CALL DestroyTensorARM(
10506
    VkDevice                                    device,
10507
    VkTensorARM                                 tensor,
10508
0
    const VkAllocationCallbacks*                pAllocator) {
10509
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10510
0
    if (NULL == disp) {
10511
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10512
0
                   "vkDestroyTensorARM: Invalid device "
10513
0
                   "[VUID-vkDestroyTensorARM-device-parameter]");
10514
0
        abort(); /* Intentionally fail so user can correct issue. */
10515
0
    }
10516
0
    disp->DestroyTensorARM(device, tensor, pAllocator);
10517
0
}
10518
10519
VKAPI_ATTR VkResult VKAPI_CALL CreateTensorViewARM(
10520
    VkDevice                                    device,
10521
    const VkTensorViewCreateInfoARM*            pCreateInfo,
10522
    const VkAllocationCallbacks*                pAllocator,
10523
0
    VkTensorViewARM*                            pView) {
10524
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10525
0
    if (NULL == disp) {
10526
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10527
0
                   "vkCreateTensorViewARM: Invalid device "
10528
0
                   "[VUID-vkCreateTensorViewARM-device-parameter]");
10529
0
        abort(); /* Intentionally fail so user can correct issue. */
10530
0
    }
10531
0
    return disp->CreateTensorViewARM(device, pCreateInfo, pAllocator, pView);
10532
0
}
10533
10534
VKAPI_ATTR void VKAPI_CALL DestroyTensorViewARM(
10535
    VkDevice                                    device,
10536
    VkTensorViewARM                             tensorView,
10537
0
    const VkAllocationCallbacks*                pAllocator) {
10538
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10539
0
    if (NULL == disp) {
10540
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10541
0
                   "vkDestroyTensorViewARM: Invalid device "
10542
0
                   "[VUID-vkDestroyTensorViewARM-device-parameter]");
10543
0
        abort(); /* Intentionally fail so user can correct issue. */
10544
0
    }
10545
0
    disp->DestroyTensorViewARM(device, tensorView, pAllocator);
10546
0
}
10547
10548
VKAPI_ATTR void VKAPI_CALL GetTensorMemoryRequirementsARM(
10549
    VkDevice                                    device,
10550
    const VkTensorMemoryRequirementsInfoARM*    pInfo,
10551
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
10552
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10553
0
    if (NULL == disp) {
10554
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10555
0
                   "vkGetTensorMemoryRequirementsARM: Invalid device "
10556
0
                   "[VUID-vkGetTensorMemoryRequirementsARM-device-parameter]");
10557
0
        abort(); /* Intentionally fail so user can correct issue. */
10558
0
    }
10559
0
    disp->GetTensorMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
10560
0
}
10561
10562
VKAPI_ATTR VkResult VKAPI_CALL BindTensorMemoryARM(
10563
    VkDevice                                    device,
10564
    uint32_t                                    bindInfoCount,
10565
0
    const VkBindTensorMemoryInfoARM*            pBindInfos) {
10566
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10567
0
    if (NULL == disp) {
10568
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10569
0
                   "vkBindTensorMemoryARM: Invalid device "
10570
0
                   "[VUID-vkBindTensorMemoryARM-device-parameter]");
10571
0
        abort(); /* Intentionally fail so user can correct issue. */
10572
0
    }
10573
0
    return disp->BindTensorMemoryARM(device, bindInfoCount, pBindInfos);
10574
0
}
10575
10576
VKAPI_ATTR void VKAPI_CALL GetDeviceTensorMemoryRequirementsARM(
10577
    VkDevice                                    device,
10578
    const VkDeviceTensorMemoryRequirementsARM*  pInfo,
10579
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
10580
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10581
0
    if (NULL == disp) {
10582
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10583
0
                   "vkGetDeviceTensorMemoryRequirementsARM: Invalid device "
10584
0
                   "[VUID-vkGetDeviceTensorMemoryRequirementsARM-device-parameter]");
10585
0
        abort(); /* Intentionally fail so user can correct issue. */
10586
0
    }
10587
0
    disp->GetDeviceTensorMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
10588
0
}
10589
10590
VKAPI_ATTR void VKAPI_CALL CmdCopyTensorARM(
10591
    VkCommandBuffer                             commandBuffer,
10592
0
    const VkCopyTensorInfoARM*                  pCopyTensorInfo) {
10593
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10594
0
    if (NULL == disp) {
10595
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10596
0
                   "vkCmdCopyTensorARM: Invalid commandBuffer "
10597
0
                   "[VUID-vkCmdCopyTensorARM-commandBuffer-parameter]");
10598
0
        abort(); /* Intentionally fail so user can correct issue. */
10599
0
    }
10600
0
    disp->CmdCopyTensorARM(commandBuffer, pCopyTensorInfo);
10601
0
}
10602
10603
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalTensorPropertiesARM(
10604
    VkPhysicalDevice                            physicalDevice,
10605
    const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
10606
0
    VkExternalTensorPropertiesARM*              pExternalTensorProperties) {
10607
0
    const VkLayerInstanceDispatchTable *disp;
10608
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10609
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10610
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10611
0
                   "vkGetPhysicalDeviceExternalTensorPropertiesARM: Invalid physicalDevice "
10612
0
                   "[VUID-vkGetPhysicalDeviceExternalTensorPropertiesARM-physicalDevice-parameter]");
10613
0
        abort(); /* Intentionally fail so user can correct issue. */
10614
0
    }
10615
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10616
0
    disp->GetPhysicalDeviceExternalTensorPropertiesARM(unwrapped_phys_dev, pExternalTensorInfo, pExternalTensorProperties);
10617
0
}
10618
10619
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalTensorPropertiesARM(
10620
    VkPhysicalDevice                            physicalDevice,
10621
    const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
10622
0
    VkExternalTensorPropertiesARM*              pExternalTensorProperties) {
10623
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10624
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10625
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceExternalTensorPropertiesARM) {
10626
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10627
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceExternalTensorPropertiesARM");
10628
0
        abort(); /* Intentionally fail so user can correct issue. */
10629
0
    }
10630
0
    icd_term->dispatch.GetPhysicalDeviceExternalTensorPropertiesARM(phys_dev_term->phys_dev, pExternalTensorInfo, pExternalTensorProperties);
10631
0
}
10632
10633
VKAPI_ATTR VkResult VKAPI_CALL GetTensorOpaqueCaptureDescriptorDataARM(
10634
    VkDevice                                    device,
10635
    const VkTensorCaptureDescriptorDataInfoARM* pInfo,
10636
0
    void*                                       pData) {
10637
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10638
0
    if (NULL == disp) {
10639
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10640
0
                   "vkGetTensorOpaqueCaptureDescriptorDataARM: Invalid device "
10641
0
                   "[VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-device-parameter]");
10642
0
        abort(); /* Intentionally fail so user can correct issue. */
10643
0
    }
10644
0
    return disp->GetTensorOpaqueCaptureDescriptorDataARM(device, pInfo, pData);
10645
0
}
10646
10647
VKAPI_ATTR VkResult VKAPI_CALL GetTensorViewOpaqueCaptureDescriptorDataARM(
10648
    VkDevice                                    device,
10649
    const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
10650
0
    void*                                       pData) {
10651
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10652
0
    if (NULL == disp) {
10653
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10654
0
                   "vkGetTensorViewOpaqueCaptureDescriptorDataARM: Invalid device "
10655
0
                   "[VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-device-parameter]");
10656
0
        abort(); /* Intentionally fail so user can correct issue. */
10657
0
    }
10658
0
    return disp->GetTensorViewOpaqueCaptureDescriptorDataARM(device, pInfo, pData);
10659
0
}
10660
10661
10662
// ---- VK_EXT_shader_module_identifier extension trampoline/terminators
10663
10664
VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT(
10665
    VkDevice                                    device,
10666
    VkShaderModule                              shaderModule,
10667
0
    VkShaderModuleIdentifierEXT*                pIdentifier) {
10668
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10669
0
    if (NULL == disp) {
10670
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10671
0
                   "vkGetShaderModuleIdentifierEXT: Invalid device "
10672
0
                   "[VUID-vkGetShaderModuleIdentifierEXT-device-parameter]");
10673
0
        abort(); /* Intentionally fail so user can correct issue. */
10674
0
    }
10675
0
    disp->GetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier);
10676
0
}
10677
10678
VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT(
10679
    VkDevice                                    device,
10680
    const VkShaderModuleCreateInfo*             pCreateInfo,
10681
0
    VkShaderModuleIdentifierEXT*                pIdentifier) {
10682
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10683
0
    if (NULL == disp) {
10684
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10685
0
                   "vkGetShaderModuleCreateInfoIdentifierEXT: Invalid device "
10686
0
                   "[VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter]");
10687
0
        abort(); /* Intentionally fail so user can correct issue. */
10688
0
    }
10689
0
    disp->GetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier);
10690
0
}
10691
10692
10693
// ---- VK_NV_optical_flow extension trampoline/terminators
10694
10695
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV(
10696
    VkPhysicalDevice                            physicalDevice,
10697
    const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
10698
    uint32_t*                                   pFormatCount,
10699
0
    VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties) {
10700
0
    const VkLayerInstanceDispatchTable *disp;
10701
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10702
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10703
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10704
0
                   "vkGetPhysicalDeviceOpticalFlowImageFormatsNV: Invalid physicalDevice "
10705
0
                   "[VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter]");
10706
0
        abort(); /* Intentionally fail so user can correct issue. */
10707
0
    }
10708
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10709
0
    return disp->GetPhysicalDeviceOpticalFlowImageFormatsNV(unwrapped_phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
10710
0
}
10711
10712
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(
10713
    VkPhysicalDevice                            physicalDevice,
10714
    const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
10715
    uint32_t*                                   pFormatCount,
10716
0
    VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties) {
10717
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10718
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10719
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV) {
10720
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10721
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceOpticalFlowImageFormatsNV");
10722
0
        abort(); /* Intentionally fail so user can correct issue. */
10723
0
    }
10724
0
    return icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV(phys_dev_term->phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
10725
0
}
10726
10727
VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV(
10728
    VkDevice                                    device,
10729
    const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
10730
    const VkAllocationCallbacks*                pAllocator,
10731
0
    VkOpticalFlowSessionNV*                     pSession) {
10732
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10733
0
    if (NULL == disp) {
10734
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10735
0
                   "vkCreateOpticalFlowSessionNV: Invalid device "
10736
0
                   "[VUID-vkCreateOpticalFlowSessionNV-device-parameter]");
10737
0
        abort(); /* Intentionally fail so user can correct issue. */
10738
0
    }
10739
0
    return disp->CreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession);
10740
0
}
10741
10742
VKAPI_ATTR void VKAPI_CALL DestroyOpticalFlowSessionNV(
10743
    VkDevice                                    device,
10744
    VkOpticalFlowSessionNV                      session,
10745
0
    const VkAllocationCallbacks*                pAllocator) {
10746
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10747
0
    if (NULL == disp) {
10748
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10749
0
                   "vkDestroyOpticalFlowSessionNV: Invalid device "
10750
0
                   "[VUID-vkDestroyOpticalFlowSessionNV-device-parameter]");
10751
0
        abort(); /* Intentionally fail so user can correct issue. */
10752
0
    }
10753
0
    disp->DestroyOpticalFlowSessionNV(device, session, pAllocator);
10754
0
}
10755
10756
VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV(
10757
    VkDevice                                    device,
10758
    VkOpticalFlowSessionNV                      session,
10759
    VkOpticalFlowSessionBindingPointNV          bindingPoint,
10760
    VkImageView                                 view,
10761
0
    VkImageLayout                               layout) {
10762
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10763
0
    if (NULL == disp) {
10764
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10765
0
                   "vkBindOpticalFlowSessionImageNV: Invalid device "
10766
0
                   "[VUID-vkBindOpticalFlowSessionImageNV-device-parameter]");
10767
0
        abort(); /* Intentionally fail so user can correct issue. */
10768
0
    }
10769
0
    return disp->BindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout);
10770
0
}
10771
10772
VKAPI_ATTR void VKAPI_CALL CmdOpticalFlowExecuteNV(
10773
    VkCommandBuffer                             commandBuffer,
10774
    VkOpticalFlowSessionNV                      session,
10775
0
    const VkOpticalFlowExecuteInfoNV*           pExecuteInfo) {
10776
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10777
0
    if (NULL == disp) {
10778
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10779
0
                   "vkCmdOpticalFlowExecuteNV: Invalid commandBuffer "
10780
0
                   "[VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter]");
10781
0
        abort(); /* Intentionally fail so user can correct issue. */
10782
0
    }
10783
0
    disp->CmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo);
10784
0
}
10785
10786
10787
// ---- VK_AMD_anti_lag extension trampoline/terminators
10788
10789
VKAPI_ATTR void VKAPI_CALL AntiLagUpdateAMD(
10790
    VkDevice                                    device,
10791
0
    const VkAntiLagDataAMD*                     pData) {
10792
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10793
0
    if (NULL == disp) {
10794
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10795
0
                   "vkAntiLagUpdateAMD: Invalid device "
10796
0
                   "[VUID-vkAntiLagUpdateAMD-device-parameter]");
10797
0
        abort(); /* Intentionally fail so user can correct issue. */
10798
0
    }
10799
0
    disp->AntiLagUpdateAMD(device, pData);
10800
0
}
10801
10802
10803
// ---- VK_EXT_shader_object extension trampoline/terminators
10804
10805
VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT(
10806
    VkDevice                                    device,
10807
    uint32_t                                    createInfoCount,
10808
    const VkShaderCreateInfoEXT*                pCreateInfos,
10809
    const VkAllocationCallbacks*                pAllocator,
10810
0
    VkShaderEXT*                                pShaders) {
10811
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10812
0
    if (NULL == disp) {
10813
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10814
0
                   "vkCreateShadersEXT: Invalid device "
10815
0
                   "[VUID-vkCreateShadersEXT-device-parameter]");
10816
0
        abort(); /* Intentionally fail so user can correct issue. */
10817
0
    }
10818
0
    return disp->CreateShadersEXT(device, createInfoCount, pCreateInfos, pAllocator, pShaders);
10819
0
}
10820
10821
VKAPI_ATTR void VKAPI_CALL DestroyShaderEXT(
10822
    VkDevice                                    device,
10823
    VkShaderEXT                                 shader,
10824
0
    const VkAllocationCallbacks*                pAllocator) {
10825
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10826
0
    if (NULL == disp) {
10827
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10828
0
                   "vkDestroyShaderEXT: Invalid device "
10829
0
                   "[VUID-vkDestroyShaderEXT-device-parameter]");
10830
0
        abort(); /* Intentionally fail so user can correct issue. */
10831
0
    }
10832
0
    disp->DestroyShaderEXT(device, shader, pAllocator);
10833
0
}
10834
10835
VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT(
10836
    VkDevice                                    device,
10837
    VkShaderEXT                                 shader,
10838
    size_t*                                     pDataSize,
10839
0
    void*                                       pData) {
10840
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10841
0
    if (NULL == disp) {
10842
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10843
0
                   "vkGetShaderBinaryDataEXT: Invalid device "
10844
0
                   "[VUID-vkGetShaderBinaryDataEXT-device-parameter]");
10845
0
        abort(); /* Intentionally fail so user can correct issue. */
10846
0
    }
10847
0
    return disp->GetShaderBinaryDataEXT(device, shader, pDataSize, pData);
10848
0
}
10849
10850
VKAPI_ATTR void VKAPI_CALL CmdBindShadersEXT(
10851
    VkCommandBuffer                             commandBuffer,
10852
    uint32_t                                    stageCount,
10853
    const VkShaderStageFlagBits*                pStages,
10854
0
    const VkShaderEXT*                          pShaders) {
10855
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10856
0
    if (NULL == disp) {
10857
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10858
0
                   "vkCmdBindShadersEXT: Invalid commandBuffer "
10859
0
                   "[VUID-vkCmdBindShadersEXT-commandBuffer-parameter]");
10860
0
        abort(); /* Intentionally fail so user can correct issue. */
10861
0
    }
10862
0
    disp->CmdBindShadersEXT(commandBuffer, stageCount, pStages, pShaders);
10863
0
}
10864
10865
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampRangeEXT(
10866
    VkCommandBuffer                             commandBuffer,
10867
    VkDepthClampModeEXT                         depthClampMode,
10868
0
    const VkDepthClampRangeEXT*                 pDepthClampRange) {
10869
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10870
0
    if (NULL == disp) {
10871
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10872
0
                   "vkCmdSetDepthClampRangeEXT: Invalid commandBuffer "
10873
0
                   "[VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameter]");
10874
0
        abort(); /* Intentionally fail so user can correct issue. */
10875
0
    }
10876
0
    disp->CmdSetDepthClampRangeEXT(commandBuffer, depthClampMode, pDepthClampRange);
10877
0
}
10878
10879
10880
// ---- VK_QCOM_tile_properties extension trampoline/terminators
10881
10882
VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM(
10883
    VkDevice                                    device,
10884
    VkFramebuffer                               framebuffer,
10885
    uint32_t*                                   pPropertiesCount,
10886
0
    VkTilePropertiesQCOM*                       pProperties) {
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
                   "vkGetFramebufferTilePropertiesQCOM: Invalid device "
10891
0
                   "[VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter]");
10892
0
        abort(); /* Intentionally fail so user can correct issue. */
10893
0
    }
10894
0
    return disp->GetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties);
10895
0
}
10896
10897
VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(
10898
    VkDevice                                    device,
10899
    const VkRenderingInfo*                      pRenderingInfo,
10900
0
    VkTilePropertiesQCOM*                       pProperties) {
10901
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10902
0
    if (NULL == disp) {
10903
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10904
0
                   "vkGetDynamicRenderingTilePropertiesQCOM: Invalid device "
10905
0
                   "[VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter]");
10906
0
        abort(); /* Intentionally fail so user can correct issue. */
10907
0
    }
10908
0
    return disp->GetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties);
10909
0
}
10910
10911
10912
// ---- VK_NV_cooperative_vector extension trampoline/terminators
10913
10914
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeVectorPropertiesNV(
10915
    VkPhysicalDevice                            physicalDevice,
10916
    uint32_t*                                   pPropertyCount,
10917
0
    VkCooperativeVectorPropertiesNV*            pProperties) {
10918
0
    const VkLayerInstanceDispatchTable *disp;
10919
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10920
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10921
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10922
0
                   "vkGetPhysicalDeviceCooperativeVectorPropertiesNV: Invalid physicalDevice "
10923
0
                   "[VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-physicalDevice-parameter]");
10924
0
        abort(); /* Intentionally fail so user can correct issue. */
10925
0
    }
10926
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10927
0
    return disp->GetPhysicalDeviceCooperativeVectorPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
10928
0
}
10929
10930
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV(
10931
    VkPhysicalDevice                            physicalDevice,
10932
    uint32_t*                                   pPropertyCount,
10933
0
    VkCooperativeVectorPropertiesNV*            pProperties) {
10934
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10935
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10936
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV) {
10937
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10938
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeVectorPropertiesNV");
10939
0
        abort(); /* Intentionally fail so user can correct issue. */
10940
0
    }
10941
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
10942
0
}
10943
10944
VKAPI_ATTR VkResult VKAPI_CALL ConvertCooperativeVectorMatrixNV(
10945
    VkDevice                                    device,
10946
0
    const VkConvertCooperativeVectorMatrixInfoNV* pInfo) {
10947
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10948
0
    if (NULL == disp) {
10949
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10950
0
                   "vkConvertCooperativeVectorMatrixNV: Invalid device "
10951
0
                   "[VUID-vkConvertCooperativeVectorMatrixNV-device-parameter]");
10952
0
        abort(); /* Intentionally fail so user can correct issue. */
10953
0
    }
10954
0
    return disp->ConvertCooperativeVectorMatrixNV(device, pInfo);
10955
0
}
10956
10957
VKAPI_ATTR void VKAPI_CALL CmdConvertCooperativeVectorMatrixNV(
10958
    VkCommandBuffer                             commandBuffer,
10959
    uint32_t                                    infoCount,
10960
0
    const VkConvertCooperativeVectorMatrixInfoNV* pInfos) {
10961
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10962
0
    if (NULL == disp) {
10963
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10964
0
                   "vkCmdConvertCooperativeVectorMatrixNV: Invalid commandBuffer "
10965
0
                   "[VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-parameter]");
10966
0
        abort(); /* Intentionally fail so user can correct issue. */
10967
0
    }
10968
0
    disp->CmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos);
10969
0
}
10970
10971
10972
// ---- VK_NV_low_latency2 extension trampoline/terminators
10973
10974
VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(
10975
    VkDevice                                    device,
10976
    VkSwapchainKHR                              swapchain,
10977
0
    const VkLatencySleepModeInfoNV*             pSleepModeInfo) {
10978
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10979
0
    if (NULL == disp) {
10980
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10981
0
                   "vkSetLatencySleepModeNV: Invalid device "
10982
0
                   "[VUID-vkSetLatencySleepModeNV-device-parameter]");
10983
0
        abort(); /* Intentionally fail so user can correct issue. */
10984
0
    }
10985
0
    return disp->SetLatencySleepModeNV(device, swapchain, pSleepModeInfo);
10986
0
}
10987
10988
VKAPI_ATTR VkResult VKAPI_CALL LatencySleepNV(
10989
    VkDevice                                    device,
10990
    VkSwapchainKHR                              swapchain,
10991
0
    const VkLatencySleepInfoNV*                 pSleepInfo) {
10992
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10993
0
    if (NULL == disp) {
10994
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10995
0
                   "vkLatencySleepNV: Invalid device "
10996
0
                   "[VUID-vkLatencySleepNV-device-parameter]");
10997
0
        abort(); /* Intentionally fail so user can correct issue. */
10998
0
    }
10999
0
    return disp->LatencySleepNV(device, swapchain, pSleepInfo);
11000
0
}
11001
11002
VKAPI_ATTR void VKAPI_CALL SetLatencyMarkerNV(
11003
    VkDevice                                    device,
11004
    VkSwapchainKHR                              swapchain,
11005
0
    const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo) {
11006
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11007
0
    if (NULL == disp) {
11008
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11009
0
                   "vkSetLatencyMarkerNV: Invalid device "
11010
0
                   "[VUID-vkSetLatencyMarkerNV-device-parameter]");
11011
0
        abort(); /* Intentionally fail so user can correct issue. */
11012
0
    }
11013
0
    disp->SetLatencyMarkerNV(device, swapchain, pLatencyMarkerInfo);
11014
0
}
11015
11016
VKAPI_ATTR void VKAPI_CALL GetLatencyTimingsNV(
11017
    VkDevice                                    device,
11018
    VkSwapchainKHR                              swapchain,
11019
0
    VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo) {
11020
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11021
0
    if (NULL == disp) {
11022
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11023
0
                   "vkGetLatencyTimingsNV: Invalid device "
11024
0
                   "[VUID-vkGetLatencyTimingsNV-device-parameter]");
11025
0
        abort(); /* Intentionally fail so user can correct issue. */
11026
0
    }
11027
0
    disp->GetLatencyTimingsNV(device, swapchain, pLatencyMarkerInfo);
11028
0
}
11029
11030
VKAPI_ATTR void VKAPI_CALL QueueNotifyOutOfBandNV(
11031
    VkQueue                                     queue,
11032
0
    const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo) {
11033
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
11034
0
    if (NULL == disp) {
11035
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11036
0
                   "vkQueueNotifyOutOfBandNV: Invalid queue "
11037
0
                   "[VUID-vkQueueNotifyOutOfBandNV-queue-parameter]");
11038
0
        abort(); /* Intentionally fail so user can correct issue. */
11039
0
    }
11040
0
    disp->QueueNotifyOutOfBandNV(queue, pQueueTypeInfo);
11041
0
}
11042
11043
11044
// ---- VK_ARM_data_graph extension trampoline/terminators
11045
11046
VKAPI_ATTR VkResult VKAPI_CALL CreateDataGraphPipelinesARM(
11047
    VkDevice                                    device,
11048
    VkDeferredOperationKHR                      deferredOperation,
11049
    VkPipelineCache                             pipelineCache,
11050
    uint32_t                                    createInfoCount,
11051
    const VkDataGraphPipelineCreateInfoARM*     pCreateInfos,
11052
    const VkAllocationCallbacks*                pAllocator,
11053
0
    VkPipeline*                                 pPipelines) {
11054
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11055
0
    if (NULL == disp) {
11056
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11057
0
                   "vkCreateDataGraphPipelinesARM: Invalid device "
11058
0
                   "[VUID-vkCreateDataGraphPipelinesARM-device-parameter]");
11059
0
        abort(); /* Intentionally fail so user can correct issue. */
11060
0
    }
11061
0
    return disp->CreateDataGraphPipelinesARM(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
11062
0
}
11063
11064
VKAPI_ATTR VkResult VKAPI_CALL CreateDataGraphPipelineSessionARM(
11065
    VkDevice                                    device,
11066
    const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
11067
    const VkAllocationCallbacks*                pAllocator,
11068
0
    VkDataGraphPipelineSessionARM*              pSession) {
11069
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11070
0
    if (NULL == disp) {
11071
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11072
0
                   "vkCreateDataGraphPipelineSessionARM: Invalid device "
11073
0
                   "[VUID-vkCreateDataGraphPipelineSessionARM-device-parameter]");
11074
0
        abort(); /* Intentionally fail so user can correct issue. */
11075
0
    }
11076
0
    return disp->CreateDataGraphPipelineSessionARM(device, pCreateInfo, pAllocator, pSession);
11077
0
}
11078
11079
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelineSessionBindPointRequirementsARM(
11080
    VkDevice                                    device,
11081
    const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
11082
    uint32_t*                                   pBindPointRequirementCount,
11083
0
    VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements) {
11084
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11085
0
    if (NULL == disp) {
11086
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11087
0
                   "vkGetDataGraphPipelineSessionBindPointRequirementsARM: Invalid device "
11088
0
                   "[VUID-vkGetDataGraphPipelineSessionBindPointRequirementsARM-device-parameter]");
11089
0
        abort(); /* Intentionally fail so user can correct issue. */
11090
0
    }
11091
0
    return disp->GetDataGraphPipelineSessionBindPointRequirementsARM(device, pInfo, pBindPointRequirementCount, pBindPointRequirements);
11092
0
}
11093
11094
VKAPI_ATTR void VKAPI_CALL GetDataGraphPipelineSessionMemoryRequirementsARM(
11095
    VkDevice                                    device,
11096
    const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
11097
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
11098
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11099
0
    if (NULL == disp) {
11100
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11101
0
                   "vkGetDataGraphPipelineSessionMemoryRequirementsARM: Invalid device "
11102
0
                   "[VUID-vkGetDataGraphPipelineSessionMemoryRequirementsARM-device-parameter]");
11103
0
        abort(); /* Intentionally fail so user can correct issue. */
11104
0
    }
11105
0
    disp->GetDataGraphPipelineSessionMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
11106
0
}
11107
11108
VKAPI_ATTR VkResult VKAPI_CALL BindDataGraphPipelineSessionMemoryARM(
11109
    VkDevice                                    device,
11110
    uint32_t                                    bindInfoCount,
11111
0
    const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos) {
11112
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11113
0
    if (NULL == disp) {
11114
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11115
0
                   "vkBindDataGraphPipelineSessionMemoryARM: Invalid device "
11116
0
                   "[VUID-vkBindDataGraphPipelineSessionMemoryARM-device-parameter]");
11117
0
        abort(); /* Intentionally fail so user can correct issue. */
11118
0
    }
11119
0
    return disp->BindDataGraphPipelineSessionMemoryARM(device, bindInfoCount, pBindInfos);
11120
0
}
11121
11122
VKAPI_ATTR void VKAPI_CALL DestroyDataGraphPipelineSessionARM(
11123
    VkDevice                                    device,
11124
    VkDataGraphPipelineSessionARM               session,
11125
0
    const VkAllocationCallbacks*                pAllocator) {
11126
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11127
0
    if (NULL == disp) {
11128
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11129
0
                   "vkDestroyDataGraphPipelineSessionARM: Invalid device "
11130
0
                   "[VUID-vkDestroyDataGraphPipelineSessionARM-device-parameter]");
11131
0
        abort(); /* Intentionally fail so user can correct issue. */
11132
0
    }
11133
0
    disp->DestroyDataGraphPipelineSessionARM(device, session, pAllocator);
11134
0
}
11135
11136
VKAPI_ATTR void VKAPI_CALL CmdDispatchDataGraphARM(
11137
    VkCommandBuffer                             commandBuffer,
11138
    VkDataGraphPipelineSessionARM               session,
11139
0
    const VkDataGraphPipelineDispatchInfoARM*   pInfo) {
11140
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11141
0
    if (NULL == disp) {
11142
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11143
0
                   "vkCmdDispatchDataGraphARM: Invalid commandBuffer "
11144
0
                   "[VUID-vkCmdDispatchDataGraphARM-commandBuffer-parameter]");
11145
0
        abort(); /* Intentionally fail so user can correct issue. */
11146
0
    }
11147
0
    disp->CmdDispatchDataGraphARM(commandBuffer, session, pInfo);
11148
0
}
11149
11150
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelineAvailablePropertiesARM(
11151
    VkDevice                                    device,
11152
    const VkDataGraphPipelineInfoARM*           pPipelineInfo,
11153
    uint32_t*                                   pPropertiesCount,
11154
0
    VkDataGraphPipelinePropertyARM*             pProperties) {
11155
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11156
0
    if (NULL == disp) {
11157
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11158
0
                   "vkGetDataGraphPipelineAvailablePropertiesARM: Invalid device "
11159
0
                   "[VUID-vkGetDataGraphPipelineAvailablePropertiesARM-device-parameter]");
11160
0
        abort(); /* Intentionally fail so user can correct issue. */
11161
0
    }
11162
0
    return disp->GetDataGraphPipelineAvailablePropertiesARM(device, pPipelineInfo, pPropertiesCount, pProperties);
11163
0
}
11164
11165
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelinePropertiesARM(
11166
    VkDevice                                    device,
11167
    const VkDataGraphPipelineInfoARM*           pPipelineInfo,
11168
    uint32_t                                    propertiesCount,
11169
0
    VkDataGraphPipelinePropertyQueryResultARM*  pProperties) {
11170
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11171
0
    if (NULL == disp) {
11172
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11173
0
                   "vkGetDataGraphPipelinePropertiesARM: Invalid device "
11174
0
                   "[VUID-vkGetDataGraphPipelinePropertiesARM-device-parameter]");
11175
0
        abort(); /* Intentionally fail so user can correct issue. */
11176
0
    }
11177
0
    return disp->GetDataGraphPipelinePropertiesARM(device, pPipelineInfo, propertiesCount, pProperties);
11178
0
}
11179
11180
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
11181
    VkPhysicalDevice                            physicalDevice,
11182
    uint32_t                                    queueFamilyIndex,
11183
    uint32_t*                                   pQueueFamilyDataGraphPropertyCount,
11184
0
    VkQueueFamilyDataGraphPropertiesARM*        pQueueFamilyDataGraphProperties) {
11185
0
    const VkLayerInstanceDispatchTable *disp;
11186
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11187
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11188
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11189
0
                   "vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM: Invalid physicalDevice "
11190
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM-physicalDevice-parameter]");
11191
0
        abort(); /* Intentionally fail so user can correct issue. */
11192
0
    }
11193
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11194
0
    return disp->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(unwrapped_phys_dev, queueFamilyIndex, pQueueFamilyDataGraphPropertyCount, pQueueFamilyDataGraphProperties);
11195
0
}
11196
11197
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
11198
    VkPhysicalDevice                            physicalDevice,
11199
    uint32_t                                    queueFamilyIndex,
11200
    uint32_t*                                   pQueueFamilyDataGraphPropertyCount,
11201
0
    VkQueueFamilyDataGraphPropertiesARM*        pQueueFamilyDataGraphProperties) {
11202
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11203
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11204
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM) {
11205
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11206
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM");
11207
0
        abort(); /* Intentionally fail so user can correct issue. */
11208
0
    }
11209
0
    return icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(phys_dev_term->phys_dev, queueFamilyIndex, pQueueFamilyDataGraphPropertyCount, pQueueFamilyDataGraphProperties);
11210
0
}
11211
11212
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
11213
    VkPhysicalDevice                            physicalDevice,
11214
    const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
11215
0
    VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties) {
11216
0
    const VkLayerInstanceDispatchTable *disp;
11217
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11218
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11219
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11220
0
                   "vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM: Invalid physicalDevice "
11221
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM-physicalDevice-parameter]");
11222
0
        abort(); /* Intentionally fail so user can correct issue. */
11223
0
    }
11224
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11225
0
    disp->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(unwrapped_phys_dev, pQueueFamilyDataGraphProcessingEngineInfo, pQueueFamilyDataGraphProcessingEngineProperties);
11226
0
}
11227
11228
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
11229
    VkPhysicalDevice                            physicalDevice,
11230
    const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
11231
0
    VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties) {
11232
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11233
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11234
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM) {
11235
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11236
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM");
11237
0
        abort(); /* Intentionally fail so user can correct issue. */
11238
0
    }
11239
0
    icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(phys_dev_term->phys_dev, pQueueFamilyDataGraphProcessingEngineInfo, pQueueFamilyDataGraphProcessingEngineProperties);
11240
0
}
11241
11242
11243
// ---- VK_EXT_attachment_feedback_loop_dynamic_state extension trampoline/terminators
11244
11245
VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT(
11246
    VkCommandBuffer                             commandBuffer,
11247
0
    VkImageAspectFlags                          aspectMask) {
11248
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11249
0
    if (NULL == disp) {
11250
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11251
0
                   "vkCmdSetAttachmentFeedbackLoopEnableEXT: Invalid commandBuffer "
11252
0
                   "[VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter]");
11253
0
        abort(); /* Intentionally fail so user can correct issue. */
11254
0
    }
11255
0
    disp->CmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
11256
0
}
11257
11258
11259
// ---- VK_QNX_external_memory_screen_buffer extension trampoline/terminators
11260
11261
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
11262
VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(
11263
    VkDevice                                    device,
11264
    const struct _screen_buffer*                buffer,
11265
    VkScreenBufferPropertiesQNX*                pProperties) {
11266
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11267
    if (NULL == disp) {
11268
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11269
                   "vkGetScreenBufferPropertiesQNX: Invalid device "
11270
                   "[VUID-vkGetScreenBufferPropertiesQNX-device-parameter]");
11271
        abort(); /* Intentionally fail so user can correct issue. */
11272
    }
11273
    return disp->GetScreenBufferPropertiesQNX(device, buffer, pProperties);
11274
}
11275
11276
#endif // VK_USE_PLATFORM_SCREEN_QNX
11277
11278
// ---- VK_QCOM_tile_memory_heap extension trampoline/terminators
11279
11280
VKAPI_ATTR void VKAPI_CALL CmdBindTileMemoryQCOM(
11281
    VkCommandBuffer                             commandBuffer,
11282
0
    const VkTileMemoryBindInfoQCOM*             pTileMemoryBindInfo) {
11283
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11284
0
    if (NULL == disp) {
11285
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11286
0
                   "vkCmdBindTileMemoryQCOM: Invalid commandBuffer "
11287
0
                   "[VUID-vkCmdBindTileMemoryQCOM-commandBuffer-parameter]");
11288
0
        abort(); /* Intentionally fail so user can correct issue. */
11289
0
    }
11290
0
    disp->CmdBindTileMemoryQCOM(commandBuffer, pTileMemoryBindInfo);
11291
0
}
11292
11293
11294
// ---- VK_EXT_memory_decompression extension trampoline/terminators
11295
11296
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryEXT(
11297
    VkCommandBuffer                             commandBuffer,
11298
0
    const VkDecompressMemoryInfoEXT*            pDecompressMemoryInfoEXT) {
11299
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11300
0
    if (NULL == disp) {
11301
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11302
0
                   "vkCmdDecompressMemoryEXT: Invalid commandBuffer "
11303
0
                   "[VUID-vkCmdDecompressMemoryEXT-commandBuffer-parameter]");
11304
0
        abort(); /* Intentionally fail so user can correct issue. */
11305
0
    }
11306
0
    disp->CmdDecompressMemoryEXT(commandBuffer, pDecompressMemoryInfoEXT);
11307
0
}
11308
11309
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountEXT(
11310
    VkCommandBuffer                             commandBuffer,
11311
    VkMemoryDecompressionMethodFlagsEXT         decompressionMethod,
11312
    VkDeviceAddress                             indirectCommandsAddress,
11313
    VkDeviceAddress                             indirectCommandsCountAddress,
11314
    uint32_t                                    maxDecompressionCount,
11315
0
    uint32_t                                    stride) {
11316
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11317
0
    if (NULL == disp) {
11318
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11319
0
                   "vkCmdDecompressMemoryIndirectCountEXT: Invalid commandBuffer "
11320
0
                   "[VUID-vkCmdDecompressMemoryIndirectCountEXT-commandBuffer-parameter]");
11321
0
        abort(); /* Intentionally fail so user can correct issue. */
11322
0
    }
11323
0
    disp->CmdDecompressMemoryIndirectCountEXT(commandBuffer, decompressionMethod, indirectCommandsAddress, indirectCommandsCountAddress, maxDecompressionCount, stride);
11324
0
}
11325
11326
11327
// ---- VK_NV_external_compute_queue extension trampoline/terminators
11328
11329
VKAPI_ATTR VkResult VKAPI_CALL CreateExternalComputeQueueNV(
11330
    VkDevice                                    device,
11331
    const VkExternalComputeQueueCreateInfoNV*   pCreateInfo,
11332
    const VkAllocationCallbacks*                pAllocator,
11333
0
    VkExternalComputeQueueNV*                   pExternalQueue) {
11334
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11335
0
    if (NULL == disp) {
11336
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11337
0
                   "vkCreateExternalComputeQueueNV: Invalid device "
11338
0
                   "[VUID-vkCreateExternalComputeQueueNV-device-parameter]");
11339
0
        abort(); /* Intentionally fail so user can correct issue. */
11340
0
    }
11341
0
    return disp->CreateExternalComputeQueueNV(device, pCreateInfo, pAllocator, pExternalQueue);
11342
0
}
11343
11344
VKAPI_ATTR void VKAPI_CALL DestroyExternalComputeQueueNV(
11345
    VkDevice                                    device,
11346
    VkExternalComputeQueueNV                    externalQueue,
11347
0
    const VkAllocationCallbacks*                pAllocator) {
11348
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11349
0
    if (NULL == disp) {
11350
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11351
0
                   "vkDestroyExternalComputeQueueNV: Invalid device "
11352
0
                   "[VUID-vkDestroyExternalComputeQueueNV-device-parameter]");
11353
0
        abort(); /* Intentionally fail so user can correct issue. */
11354
0
    }
11355
0
    disp->DestroyExternalComputeQueueNV(device, externalQueue, pAllocator);
11356
0
}
11357
11358
VKAPI_ATTR void VKAPI_CALL GetExternalComputeQueueDataNV(
11359
    VkExternalComputeQueueNV                    externalQueue,
11360
    VkExternalComputeQueueDataParamsNV*         params,
11361
0
    void*                                       pData) {
11362
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(externalQueue);
11363
0
    if (NULL == disp) {
11364
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11365
0
                   "vkGetExternalComputeQueueDataNV: Invalid externalQueue "
11366
0
                   "[VUID-vkGetExternalComputeQueueDataNV-externalQueue-parameter]");
11367
0
        abort(); /* Intentionally fail so user can correct issue. */
11368
0
    }
11369
0
    disp->GetExternalComputeQueueDataNV(externalQueue, params, pData);
11370
0
}
11371
11372
11373
// ---- VK_NV_cluster_acceleration_structure extension trampoline/terminators
11374
11375
VKAPI_ATTR void VKAPI_CALL GetClusterAccelerationStructureBuildSizesNV(
11376
    VkDevice                                    device,
11377
    const VkClusterAccelerationStructureInputInfoNV* pInfo,
11378
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
11379
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11380
0
    if (NULL == disp) {
11381
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11382
0
                   "vkGetClusterAccelerationStructureBuildSizesNV: Invalid device "
11383
0
                   "[VUID-vkGetClusterAccelerationStructureBuildSizesNV-device-parameter]");
11384
0
        abort(); /* Intentionally fail so user can correct issue. */
11385
0
    }
11386
0
    disp->GetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo);
11387
0
}
11388
11389
VKAPI_ATTR void VKAPI_CALL CmdBuildClusterAccelerationStructureIndirectNV(
11390
    VkCommandBuffer                             commandBuffer,
11391
0
    const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) {
11392
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11393
0
    if (NULL == disp) {
11394
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11395
0
                   "vkCmdBuildClusterAccelerationStructureIndirectNV: Invalid commandBuffer "
11396
0
                   "[VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter]");
11397
0
        abort(); /* Intentionally fail so user can correct issue. */
11398
0
    }
11399
0
    disp->CmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos);
11400
0
}
11401
11402
11403
// ---- VK_NV_partitioned_acceleration_structure extension trampoline/terminators
11404
11405
VKAPI_ATTR void VKAPI_CALL GetPartitionedAccelerationStructuresBuildSizesNV(
11406
    VkDevice                                    device,
11407
    const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
11408
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
11409
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11410
0
    if (NULL == disp) {
11411
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11412
0
                   "vkGetPartitionedAccelerationStructuresBuildSizesNV: Invalid device "
11413
0
                   "[VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-device-parameter]");
11414
0
        abort(); /* Intentionally fail so user can correct issue. */
11415
0
    }
11416
0
    disp->GetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo);
11417
0
}
11418
11419
VKAPI_ATTR void VKAPI_CALL CmdBuildPartitionedAccelerationStructuresNV(
11420
    VkCommandBuffer                             commandBuffer,
11421
0
    const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) {
11422
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11423
0
    if (NULL == disp) {
11424
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11425
0
                   "vkCmdBuildPartitionedAccelerationStructuresNV: Invalid commandBuffer "
11426
0
                   "[VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-parameter]");
11427
0
        abort(); /* Intentionally fail so user can correct issue. */
11428
0
    }
11429
0
    disp->CmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo);
11430
0
}
11431
11432
11433
// ---- VK_EXT_device_generated_commands extension trampoline/terminators
11434
11435
VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT(
11436
    VkDevice                                    device,
11437
    const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
11438
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
11439
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11440
0
    if (NULL == disp) {
11441
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11442
0
                   "vkGetGeneratedCommandsMemoryRequirementsEXT: Invalid device "
11443
0
                   "[VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-device-parameter]");
11444
0
        abort(); /* Intentionally fail so user can correct issue. */
11445
0
    }
11446
0
    disp->GetGeneratedCommandsMemoryRequirementsEXT(device, pInfo, pMemoryRequirements);
11447
0
}
11448
11449
VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsEXT(
11450
    VkCommandBuffer                             commandBuffer,
11451
    const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo,
11452
0
    VkCommandBuffer                             stateCommandBuffer) {
11453
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11454
0
    if (NULL == disp) {
11455
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11456
0
                   "vkCmdPreprocessGeneratedCommandsEXT: Invalid commandBuffer "
11457
0
                   "[VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameter]");
11458
0
        abort(); /* Intentionally fail so user can correct issue. */
11459
0
    }
11460
0
    disp->CmdPreprocessGeneratedCommandsEXT(commandBuffer, pGeneratedCommandsInfo, stateCommandBuffer);
11461
0
}
11462
11463
VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsEXT(
11464
    VkCommandBuffer                             commandBuffer,
11465
    VkBool32                                    isPreprocessed,
11466
0
    const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo) {
11467
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11468
0
    if (NULL == disp) {
11469
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11470
0
                   "vkCmdExecuteGeneratedCommandsEXT: Invalid commandBuffer "
11471
0
                   "[VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-parameter]");
11472
0
        abort(); /* Intentionally fail so user can correct issue. */
11473
0
    }
11474
0
    disp->CmdExecuteGeneratedCommandsEXT(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
11475
0
}
11476
11477
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutEXT(
11478
    VkDevice                                    device,
11479
    const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
11480
    const VkAllocationCallbacks*                pAllocator,
11481
0
    VkIndirectCommandsLayoutEXT*                pIndirectCommandsLayout) {
11482
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11483
0
    if (NULL == disp) {
11484
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11485
0
                   "vkCreateIndirectCommandsLayoutEXT: Invalid device "
11486
0
                   "[VUID-vkCreateIndirectCommandsLayoutEXT-device-parameter]");
11487
0
        abort(); /* Intentionally fail so user can correct issue. */
11488
0
    }
11489
0
    return disp->CreateIndirectCommandsLayoutEXT(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
11490
0
}
11491
11492
VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutEXT(
11493
    VkDevice                                    device,
11494
    VkIndirectCommandsLayoutEXT                 indirectCommandsLayout,
11495
0
    const VkAllocationCallbacks*                pAllocator) {
11496
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11497
0
    if (NULL == disp) {
11498
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11499
0
                   "vkDestroyIndirectCommandsLayoutEXT: Invalid device "
11500
0
                   "[VUID-vkDestroyIndirectCommandsLayoutEXT-device-parameter]");
11501
0
        abort(); /* Intentionally fail so user can correct issue. */
11502
0
    }
11503
0
    disp->DestroyIndirectCommandsLayoutEXT(device, indirectCommandsLayout, pAllocator);
11504
0
}
11505
11506
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectExecutionSetEXT(
11507
    VkDevice                                    device,
11508
    const VkIndirectExecutionSetCreateInfoEXT*  pCreateInfo,
11509
    const VkAllocationCallbacks*                pAllocator,
11510
0
    VkIndirectExecutionSetEXT*                  pIndirectExecutionSet) {
11511
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11512
0
    if (NULL == disp) {
11513
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11514
0
                   "vkCreateIndirectExecutionSetEXT: Invalid device "
11515
0
                   "[VUID-vkCreateIndirectExecutionSetEXT-device-parameter]");
11516
0
        abort(); /* Intentionally fail so user can correct issue. */
11517
0
    }
11518
0
    return disp->CreateIndirectExecutionSetEXT(device, pCreateInfo, pAllocator, pIndirectExecutionSet);
11519
0
}
11520
11521
VKAPI_ATTR void VKAPI_CALL DestroyIndirectExecutionSetEXT(
11522
    VkDevice                                    device,
11523
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
11524
0
    const VkAllocationCallbacks*                pAllocator) {
11525
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11526
0
    if (NULL == disp) {
11527
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11528
0
                   "vkDestroyIndirectExecutionSetEXT: Invalid device "
11529
0
                   "[VUID-vkDestroyIndirectExecutionSetEXT-device-parameter]");
11530
0
        abort(); /* Intentionally fail so user can correct issue. */
11531
0
    }
11532
0
    disp->DestroyIndirectExecutionSetEXT(device, indirectExecutionSet, pAllocator);
11533
0
}
11534
11535
VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetPipelineEXT(
11536
    VkDevice                                    device,
11537
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
11538
    uint32_t                                    executionSetWriteCount,
11539
0
    const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites) {
11540
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkUpdateIndirectExecutionSetPipelineEXT: Invalid device "
11544
0
                   "[VUID-vkUpdateIndirectExecutionSetPipelineEXT-device-parameter]");
11545
0
        abort(); /* Intentionally fail so user can correct issue. */
11546
0
    }
11547
0
    disp->UpdateIndirectExecutionSetPipelineEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
11548
0
}
11549
11550
VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetShaderEXT(
11551
    VkDevice                                    device,
11552
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
11553
    uint32_t                                    executionSetWriteCount,
11554
0
    const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites) {
11555
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11556
0
    if (NULL == disp) {
11557
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11558
0
                   "vkUpdateIndirectExecutionSetShaderEXT: Invalid device "
11559
0
                   "[VUID-vkUpdateIndirectExecutionSetShaderEXT-device-parameter]");
11560
0
        abort(); /* Intentionally fail so user can correct issue. */
11561
0
    }
11562
0
    disp->UpdateIndirectExecutionSetShaderEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
11563
0
}
11564
11565
11566
// ---- VK_OHOS_surface extension trampoline/terminators
11567
11568
#if defined(VK_USE_PLATFORM_OHOS)
11569
VKAPI_ATTR VkResult VKAPI_CALL CreateSurfaceOHOS(
11570
    VkInstance                                  instance,
11571
    const VkSurfaceCreateInfoOHOS*              pCreateInfo,
11572
    const VkAllocationCallbacks*                pAllocator,
11573
    VkSurfaceKHR*                               pSurface) {
11574
    struct loader_instance *inst = loader_get_instance(instance);
11575
    if (NULL == inst) {
11576
        loader_log(
11577
            NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11578
            "vkCreateSurfaceOHOS: Invalid instance [VUID-vkCreateSurfaceOHOS-instance-parameter]");
11579
        abort(); /* Intentionally fail so user can correct issue. */
11580
    }
11581
#error("Not implemented. Likely needs to be manually generated!");
11582
    return inst->disp->CreateSurfaceOHOS(instance, pCreateInfo, pAllocator, pSurface);
11583
}
11584
11585
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSurfaceOHOS(
11586
    VkInstance                                  instance,
11587
    const VkSurfaceCreateInfoOHOS*              pCreateInfo,
11588
    const VkAllocationCallbacks*                pAllocator,
11589
    VkSurfaceKHR*                               pSurface) {
11590
    struct loader_instance *inst = loader_get_instance(instance);
11591
    if (NULL == inst) {
11592
        loader_log(
11593
            NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11594
            "vkCreateSurfaceOHOS: Invalid instance [VUID-vkCreateSurfaceOHOS-instance-parameter]");
11595
        abort(); /* Intentionally fail so user can correct issue. */
11596
    }
11597
#error("Not implemented. Likely needs to be manually generated!");
11598
}
11599
11600
#endif // VK_USE_PLATFORM_OHOS
11601
11602
// ---- VK_NV_cooperative_matrix2 extension trampoline/terminators
11603
11604
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
11605
    VkPhysicalDevice                            physicalDevice,
11606
    uint32_t*                                   pPropertyCount,
11607
0
    VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) {
11608
0
    const VkLayerInstanceDispatchTable *disp;
11609
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11610
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11611
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11612
0
                   "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV: Invalid physicalDevice "
11613
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV-physicalDevice-parameter]");
11614
0
        abort(); /* Intentionally fail so user can correct issue. */
11615
0
    }
11616
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11617
0
    return disp->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
11618
0
}
11619
11620
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
11621
    VkPhysicalDevice                            physicalDevice,
11622
    uint32_t*                                   pPropertyCount,
11623
0
    VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) {
11624
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11625
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11626
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV) {
11627
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11628
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
11629
0
        abort(); /* Intentionally fail so user can correct issue. */
11630
0
    }
11631
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
11632
0
}
11633
11634
11635
// ---- VK_EXT_external_memory_metal extension trampoline/terminators
11636
11637
#if defined(VK_USE_PLATFORM_METAL_EXT)
11638
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandleEXT(
11639
    VkDevice                                    device,
11640
    const VkMemoryGetMetalHandleInfoEXT*        pGetMetalHandleInfo,
11641
    void**                                      pHandle) {
11642
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11643
    if (NULL == disp) {
11644
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11645
                   "vkGetMemoryMetalHandleEXT: Invalid device "
11646
                   "[VUID-vkGetMemoryMetalHandleEXT-device-parameter]");
11647
        abort(); /* Intentionally fail so user can correct issue. */
11648
    }
11649
    return disp->GetMemoryMetalHandleEXT(device, pGetMetalHandleInfo, pHandle);
11650
}
11651
11652
#endif // VK_USE_PLATFORM_METAL_EXT
11653
#if defined(VK_USE_PLATFORM_METAL_EXT)
11654
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandlePropertiesEXT(
11655
    VkDevice                                    device,
11656
    VkExternalMemoryHandleTypeFlagBits          handleType,
11657
    const void*                                 pHandle,
11658
    VkMemoryMetalHandlePropertiesEXT*           pMemoryMetalHandleProperties) {
11659
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11660
    if (NULL == disp) {
11661
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11662
                   "vkGetMemoryMetalHandlePropertiesEXT: Invalid device "
11663
                   "[VUID-vkGetMemoryMetalHandlePropertiesEXT-device-parameter]");
11664
        abort(); /* Intentionally fail so user can correct issue. */
11665
    }
11666
    return disp->GetMemoryMetalHandlePropertiesEXT(device, handleType, pHandle, pMemoryMetalHandleProperties);
11667
}
11668
11669
#endif // VK_USE_PLATFORM_METAL_EXT
11670
11671
// ---- VK_ARM_performance_counters_by_region extension trampoline/terminators
11672
11673
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
11674
    VkPhysicalDevice                            physicalDevice,
11675
    uint32_t                                    queueFamilyIndex,
11676
    uint32_t*                                   pCounterCount,
11677
    VkPerformanceCounterARM*                    pCounters,
11678
0
    VkPerformanceCounterDescriptionARM*         pCounterDescriptions) {
11679
0
    const VkLayerInstanceDispatchTable *disp;
11680
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11681
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11682
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11683
0
                   "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM: Invalid physicalDevice "
11684
0
                   "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM-physicalDevice-parameter]");
11685
0
        abort(); /* Intentionally fail so user can correct issue. */
11686
0
    }
11687
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11688
0
    return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
11689
0
}
11690
11691
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
11692
    VkPhysicalDevice                            physicalDevice,
11693
    uint32_t                                    queueFamilyIndex,
11694
    uint32_t*                                   pCounterCount,
11695
    VkPerformanceCounterARM*                    pCounters,
11696
0
    VkPerformanceCounterDescriptionARM*         pCounterDescriptions) {
11697
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11698
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11699
0
    if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM) {
11700
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11701
0
                   "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM");
11702
0
        abort(); /* Intentionally fail so user can correct issue. */
11703
0
    }
11704
0
    return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
11705
0
}
11706
11707
11708
// ---- VK_ARM_shader_instrumentation extension trampoline/terminators
11709
11710
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceShaderInstrumentationMetricsARM(
11711
    VkPhysicalDevice                            physicalDevice,
11712
    uint32_t*                                   pDescriptionCount,
11713
0
    VkShaderInstrumentationMetricDescriptionARM* pDescriptions) {
11714
0
    const VkLayerInstanceDispatchTable *disp;
11715
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11716
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11717
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11718
0
                   "vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM: Invalid physicalDevice "
11719
0
                   "[VUID-vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM-physicalDevice-parameter]");
11720
0
        abort(); /* Intentionally fail so user can correct issue. */
11721
0
    }
11722
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11723
0
    return disp->EnumeratePhysicalDeviceShaderInstrumentationMetricsARM(unwrapped_phys_dev, pDescriptionCount, pDescriptions);
11724
0
}
11725
11726
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceShaderInstrumentationMetricsARM(
11727
    VkPhysicalDevice                            physicalDevice,
11728
    uint32_t*                                   pDescriptionCount,
11729
0
    VkShaderInstrumentationMetricDescriptionARM* pDescriptions) {
11730
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11731
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11732
0
    if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceShaderInstrumentationMetricsARM) {
11733
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11734
0
                   "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceShaderInstrumentationMetricsARM");
11735
0
        abort(); /* Intentionally fail so user can correct issue. */
11736
0
    }
11737
0
    return icd_term->dispatch.EnumeratePhysicalDeviceShaderInstrumentationMetricsARM(phys_dev_term->phys_dev, pDescriptionCount, pDescriptions);
11738
0
}
11739
11740
VKAPI_ATTR VkResult VKAPI_CALL CreateShaderInstrumentationARM(
11741
    VkDevice                                    device,
11742
    const VkShaderInstrumentationCreateInfoARM* pCreateInfo,
11743
    const VkAllocationCallbacks*                pAllocator,
11744
0
    VkShaderInstrumentationARM*                 pInstrumentation) {
11745
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11746
0
    if (NULL == disp) {
11747
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11748
0
                   "vkCreateShaderInstrumentationARM: Invalid device "
11749
0
                   "[VUID-vkCreateShaderInstrumentationARM-device-parameter]");
11750
0
        abort(); /* Intentionally fail so user can correct issue. */
11751
0
    }
11752
0
    return disp->CreateShaderInstrumentationARM(device, pCreateInfo, pAllocator, pInstrumentation);
11753
0
}
11754
11755
VKAPI_ATTR void VKAPI_CALL DestroyShaderInstrumentationARM(
11756
    VkDevice                                    device,
11757
    VkShaderInstrumentationARM                  instrumentation,
11758
0
    const VkAllocationCallbacks*                pAllocator) {
11759
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11760
0
    if (NULL == disp) {
11761
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11762
0
                   "vkDestroyShaderInstrumentationARM: Invalid device "
11763
0
                   "[VUID-vkDestroyShaderInstrumentationARM-device-parameter]");
11764
0
        abort(); /* Intentionally fail so user can correct issue. */
11765
0
    }
11766
0
    disp->DestroyShaderInstrumentationARM(device, instrumentation, pAllocator);
11767
0
}
11768
11769
VKAPI_ATTR void VKAPI_CALL CmdBeginShaderInstrumentationARM(
11770
    VkCommandBuffer                             commandBuffer,
11771
0
    VkShaderInstrumentationARM                  instrumentation) {
11772
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11773
0
    if (NULL == disp) {
11774
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11775
0
                   "vkCmdBeginShaderInstrumentationARM: Invalid commandBuffer "
11776
0
                   "[VUID-vkCmdBeginShaderInstrumentationARM-commandBuffer-parameter]");
11777
0
        abort(); /* Intentionally fail so user can correct issue. */
11778
0
    }
11779
0
    disp->CmdBeginShaderInstrumentationARM(commandBuffer, instrumentation);
11780
0
}
11781
11782
VKAPI_ATTR void VKAPI_CALL CmdEndShaderInstrumentationARM(
11783
0
    VkCommandBuffer                             commandBuffer) {
11784
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11785
0
    if (NULL == disp) {
11786
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11787
0
                   "vkCmdEndShaderInstrumentationARM: Invalid commandBuffer "
11788
0
                   "[VUID-vkCmdEndShaderInstrumentationARM-commandBuffer-parameter]");
11789
0
        abort(); /* Intentionally fail so user can correct issue. */
11790
0
    }
11791
0
    disp->CmdEndShaderInstrumentationARM(commandBuffer);
11792
0
}
11793
11794
VKAPI_ATTR VkResult VKAPI_CALL GetShaderInstrumentationValuesARM(
11795
    VkDevice                                    device,
11796
    VkShaderInstrumentationARM                  instrumentation,
11797
    uint32_t*                                   pMetricBlockCount,
11798
    void*                                       pMetricValues,
11799
0
    VkShaderInstrumentationValuesFlagsARM       flags) {
11800
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11801
0
    if (NULL == disp) {
11802
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11803
0
                   "vkGetShaderInstrumentationValuesARM: Invalid device "
11804
0
                   "[VUID-vkGetShaderInstrumentationValuesARM-device-parameter]");
11805
0
        abort(); /* Intentionally fail so user can correct issue. */
11806
0
    }
11807
0
    return disp->GetShaderInstrumentationValuesARM(device, instrumentation, pMetricBlockCount, pMetricValues, flags);
11808
0
}
11809
11810
VKAPI_ATTR void VKAPI_CALL ClearShaderInstrumentationMetricsARM(
11811
    VkDevice                                    device,
11812
0
    VkShaderInstrumentationARM                  instrumentation) {
11813
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11814
0
    if (NULL == disp) {
11815
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11816
0
                   "vkClearShaderInstrumentationMetricsARM: Invalid device "
11817
0
                   "[VUID-vkClearShaderInstrumentationMetricsARM-device-parameter]");
11818
0
        abort(); /* Intentionally fail so user can correct issue. */
11819
0
    }
11820
0
    disp->ClearShaderInstrumentationMetricsARM(device, instrumentation);
11821
0
}
11822
11823
11824
// ---- VK_EXT_fragment_density_map_offset extension trampoline/terminators
11825
11826
VKAPI_ATTR void VKAPI_CALL CmdEndRendering2EXT(
11827
    VkCommandBuffer                             commandBuffer,
11828
0
    const VkRenderingEndInfoKHR*                pRenderingEndInfo) {
11829
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11830
0
    if (NULL == disp) {
11831
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11832
0
                   "vkCmdEndRendering2EXT: Invalid commandBuffer "
11833
0
                   "[VUID-vkCmdEndRendering2EXT-commandBuffer-parameter]");
11834
0
        abort(); /* Intentionally fail so user can correct issue. */
11835
0
    }
11836
0
    disp->CmdEndRendering2EXT(commandBuffer, pRenderingEndInfo);
11837
0
}
11838
11839
11840
// ---- VK_EXT_custom_resolve extension trampoline/terminators
11841
11842
VKAPI_ATTR void VKAPI_CALL CmdBeginCustomResolveEXT(
11843
    VkCommandBuffer                             commandBuffer,
11844
0
    const VkBeginCustomResolveInfoEXT*          pBeginCustomResolveInfo) {
11845
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11846
0
    if (NULL == disp) {
11847
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11848
0
                   "vkCmdBeginCustomResolveEXT: Invalid commandBuffer "
11849
0
                   "[VUID-vkCmdBeginCustomResolveEXT-commandBuffer-parameter]");
11850
0
        abort(); /* Intentionally fail so user can correct issue. */
11851
0
    }
11852
0
    disp->CmdBeginCustomResolveEXT(commandBuffer, pBeginCustomResolveInfo);
11853
0
}
11854
11855
11856
// ---- VK_NV_compute_occupancy_priority extension trampoline/terminators
11857
11858
VKAPI_ATTR void VKAPI_CALL CmdSetComputeOccupancyPriorityNV(
11859
    VkCommandBuffer                             commandBuffer,
11860
0
    const VkComputeOccupancyPriorityParametersNV* pParameters) {
11861
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11862
0
    if (NULL == disp) {
11863
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11864
0
                   "vkCmdSetComputeOccupancyPriorityNV: Invalid commandBuffer "
11865
0
                   "[VUID-vkCmdSetComputeOccupancyPriorityNV-commandBuffer-parameter]");
11866
0
        abort(); /* Intentionally fail so user can correct issue. */
11867
0
    }
11868
0
    disp->CmdSetComputeOccupancyPriorityNV(commandBuffer, pParameters);
11869
0
}
11870
11871
11872
// ---- VK_SEC_ubm_surface extension trampoline/terminators
11873
11874
#if defined(VK_USE_PLATFORM_UBM_SEC)
11875
VKAPI_ATTR VkResult VKAPI_CALL CreateUbmSurfaceSEC(
11876
    VkInstance                                  instance,
11877
    const VkUbmSurfaceCreateInfoSEC*            pCreateInfo,
11878
    const VkAllocationCallbacks*                pAllocator,
11879
    VkSurfaceKHR*                               pSurface) {
11880
    struct loader_instance *inst = loader_get_instance(instance);
11881
    if (NULL == inst) {
11882
        loader_log(
11883
            NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11884
            "vkCreateUbmSurfaceSEC: Invalid instance [VUID-vkCreateUbmSurfaceSEC-instance-parameter]");
11885
        abort(); /* Intentionally fail so user can correct issue. */
11886
    }
11887
#error("Not implemented. Likely needs to be manually generated!");
11888
    return inst->disp->CreateUbmSurfaceSEC(instance, pCreateInfo, pAllocator, pSurface);
11889
}
11890
11891
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateUbmSurfaceSEC(
11892
    VkInstance                                  instance,
11893
    const VkUbmSurfaceCreateInfoSEC*            pCreateInfo,
11894
    const VkAllocationCallbacks*                pAllocator,
11895
    VkSurfaceKHR*                               pSurface) {
11896
    struct loader_instance *inst = loader_get_instance(instance);
11897
    if (NULL == inst) {
11898
        loader_log(
11899
            NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11900
            "vkCreateUbmSurfaceSEC: Invalid instance [VUID-vkCreateUbmSurfaceSEC-instance-parameter]");
11901
        abort(); /* Intentionally fail so user can correct issue. */
11902
    }
11903
#error("Not implemented. Likely needs to be manually generated!");
11904
}
11905
11906
#endif // VK_USE_PLATFORM_UBM_SEC
11907
#if defined(VK_USE_PLATFORM_UBM_SEC)
11908
VKAPI_ATTR VkBool32 VKAPI_CALL GetPhysicalDeviceUbmPresentationSupportSEC(
11909
    VkPhysicalDevice                            physicalDevice,
11910
    uint32_t                                    queueFamilyIndex,
11911
    struct ubm_device*                          device) {
11912
    const VkLayerInstanceDispatchTable *disp;
11913
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11914
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11915
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11916
                   "vkGetPhysicalDeviceUbmPresentationSupportSEC: Invalid physicalDevice "
11917
                   "[VUID-vkGetPhysicalDeviceUbmPresentationSupportSEC-physicalDevice-parameter]");
11918
        abort(); /* Intentionally fail so user can correct issue. */
11919
    }
11920
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11921
    return disp->GetPhysicalDeviceUbmPresentationSupportSEC(unwrapped_phys_dev, queueFamilyIndex, device);
11922
}
11923
11924
VKAPI_ATTR VkBool32 VKAPI_CALL terminator_GetPhysicalDeviceUbmPresentationSupportSEC(
11925
    VkPhysicalDevice                            physicalDevice,
11926
    uint32_t                                    queueFamilyIndex,
11927
    struct ubm_device*                          device) {
11928
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11929
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11930
    if (NULL == icd_term->dispatch.GetPhysicalDeviceUbmPresentationSupportSEC) {
11931
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
11932
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceUbmPresentationSupportSEC");
11933
        return VK_ERROR_EXTENSION_NOT_PRESENT;
11934
    }
11935
    return icd_term->dispatch.GetPhysicalDeviceUbmPresentationSupportSEC(phys_dev_term->phys_dev, queueFamilyIndex, device);
11936
}
11937
11938
#endif // VK_USE_PLATFORM_UBM_SEC
11939
11940
// ---- VK_KHR_acceleration_structure extension trampoline/terminators
11941
11942
VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
11943
    VkDevice                                    device,
11944
    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
11945
    const VkAllocationCallbacks*                pAllocator,
11946
0
    VkAccelerationStructureKHR*                 pAccelerationStructure) {
11947
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11948
0
    if (NULL == disp) {
11949
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11950
0
                   "vkCreateAccelerationStructureKHR: Invalid device "
11951
0
                   "[VUID-vkCreateAccelerationStructureKHR-device-parameter]");
11952
0
        abort(); /* Intentionally fail so user can correct issue. */
11953
0
    }
11954
0
    return disp->CreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
11955
0
}
11956
11957
VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureKHR(
11958
    VkDevice                                    device,
11959
    VkAccelerationStructureKHR                  accelerationStructure,
11960
0
    const VkAllocationCallbacks*                pAllocator) {
11961
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11962
0
    if (NULL == disp) {
11963
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11964
0
                   "vkDestroyAccelerationStructureKHR: Invalid device "
11965
0
                   "[VUID-vkDestroyAccelerationStructureKHR-device-parameter]");
11966
0
        abort(); /* Intentionally fail so user can correct issue. */
11967
0
    }
11968
0
    disp->DestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
11969
0
}
11970
11971
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresKHR(
11972
    VkCommandBuffer                             commandBuffer,
11973
    uint32_t                                    infoCount,
11974
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
11975
0
    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
11976
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11977
0
    if (NULL == disp) {
11978
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11979
0
                   "vkCmdBuildAccelerationStructuresKHR: Invalid commandBuffer "
11980
0
                   "[VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter]");
11981
0
        abort(); /* Intentionally fail so user can correct issue. */
11982
0
    }
11983
0
    disp->CmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos);
11984
0
}
11985
11986
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR(
11987
    VkCommandBuffer                             commandBuffer,
11988
    uint32_t                                    infoCount,
11989
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
11990
    const VkDeviceAddress*                      pIndirectDeviceAddresses,
11991
    const uint32_t*                             pIndirectStrides,
11992
0
    const uint32_t* const*                      ppMaxPrimitiveCounts) {
11993
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11994
0
    if (NULL == disp) {
11995
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11996
0
                   "vkCmdBuildAccelerationStructuresIndirectKHR: Invalid commandBuffer "
11997
0
                   "[VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter]");
11998
0
        abort(); /* Intentionally fail so user can correct issue. */
11999
0
    }
12000
0
    disp->CmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts);
12001
0
}
12002
12003
VKAPI_ATTR VkResult VKAPI_CALL BuildAccelerationStructuresKHR(
12004
    VkDevice                                    device,
12005
    VkDeferredOperationKHR                      deferredOperation,
12006
    uint32_t                                    infoCount,
12007
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
12008
0
    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
12009
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12010
0
    if (NULL == disp) {
12011
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12012
0
                   "vkBuildAccelerationStructuresKHR: Invalid device "
12013
0
                   "[VUID-vkBuildAccelerationStructuresKHR-device-parameter]");
12014
0
        abort(); /* Intentionally fail so user can correct issue. */
12015
0
    }
12016
0
    return disp->BuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos);
12017
0
}
12018
12019
VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureKHR(
12020
    VkDevice                                    device,
12021
    VkDeferredOperationKHR                      deferredOperation,
12022
0
    const VkCopyAccelerationStructureInfoKHR*   pInfo) {
12023
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12024
0
    if (NULL == disp) {
12025
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12026
0
                   "vkCopyAccelerationStructureKHR: Invalid device "
12027
0
                   "[VUID-vkCopyAccelerationStructureKHR-device-parameter]");
12028
0
        abort(); /* Intentionally fail so user can correct issue. */
12029
0
    }
12030
0
    return disp->CopyAccelerationStructureKHR(device, deferredOperation, pInfo);
12031
0
}
12032
12033
VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR(
12034
    VkDevice                                    device,
12035
    VkDeferredOperationKHR                      deferredOperation,
12036
0
    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
12037
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12038
0
    if (NULL == disp) {
12039
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12040
0
                   "vkCopyAccelerationStructureToMemoryKHR: Invalid device "
12041
0
                   "[VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter]");
12042
0
        abort(); /* Intentionally fail so user can correct issue. */
12043
0
    }
12044
0
    return disp->CopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo);
12045
0
}
12046
12047
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToAccelerationStructureKHR(
12048
    VkDevice                                    device,
12049
    VkDeferredOperationKHR                      deferredOperation,
12050
0
    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
12051
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12052
0
    if (NULL == disp) {
12053
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12054
0
                   "vkCopyMemoryToAccelerationStructureKHR: Invalid device "
12055
0
                   "[VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter]");
12056
0
        abort(); /* Intentionally fail so user can correct issue. */
12057
0
    }
12058
0
    return disp->CopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo);
12059
0
}
12060
12061
VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR(
12062
    VkDevice                                    device,
12063
    uint32_t                                    accelerationStructureCount,
12064
    const VkAccelerationStructureKHR*           pAccelerationStructures,
12065
    VkQueryType                                 queryType,
12066
    size_t                                      dataSize,
12067
    void*                                       pData,
12068
0
    size_t                                      stride) {
12069
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12070
0
    if (NULL == disp) {
12071
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12072
0
                   "vkWriteAccelerationStructuresPropertiesKHR: Invalid device "
12073
0
                   "[VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter]");
12074
0
        abort(); /* Intentionally fail so user can correct issue. */
12075
0
    }
12076
0
    return disp->WriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
12077
0
}
12078
12079
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureKHR(
12080
    VkCommandBuffer                             commandBuffer,
12081
0
    const VkCopyAccelerationStructureInfoKHR*   pInfo) {
12082
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12083
0
    if (NULL == disp) {
12084
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12085
0
                   "vkCmdCopyAccelerationStructureKHR: Invalid commandBuffer "
12086
0
                   "[VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter]");
12087
0
        abort(); /* Intentionally fail so user can correct issue. */
12088
0
    }
12089
0
    disp->CmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
12090
0
}
12091
12092
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureToMemoryKHR(
12093
    VkCommandBuffer                             commandBuffer,
12094
0
    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
12095
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12096
0
    if (NULL == disp) {
12097
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12098
0
                   "vkCmdCopyAccelerationStructureToMemoryKHR: Invalid commandBuffer "
12099
0
                   "[VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter]");
12100
0
        abort(); /* Intentionally fail so user can correct issue. */
12101
0
    }
12102
0
    disp->CmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
12103
0
}
12104
12105
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToAccelerationStructureKHR(
12106
    VkCommandBuffer                             commandBuffer,
12107
0
    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
12108
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12109
0
    if (NULL == disp) {
12110
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12111
0
                   "vkCmdCopyMemoryToAccelerationStructureKHR: Invalid commandBuffer "
12112
0
                   "[VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter]");
12113
0
        abort(); /* Intentionally fail so user can correct issue. */
12114
0
    }
12115
0
    disp->CmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
12116
0
}
12117
12118
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetAccelerationStructureDeviceAddressKHR(
12119
    VkDevice                                    device,
12120
0
    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) {
12121
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12122
0
    if (NULL == disp) {
12123
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12124
0
                   "vkGetAccelerationStructureDeviceAddressKHR: Invalid device "
12125
0
                   "[VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter]");
12126
0
        abort(); /* Intentionally fail so user can correct issue. */
12127
0
    }
12128
0
    return disp->GetAccelerationStructureDeviceAddressKHR(device, pInfo);
12129
0
}
12130
12131
VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR(
12132
    VkCommandBuffer                             commandBuffer,
12133
    uint32_t                                    accelerationStructureCount,
12134
    const VkAccelerationStructureKHR*           pAccelerationStructures,
12135
    VkQueryType                                 queryType,
12136
    VkQueryPool                                 queryPool,
12137
0
    uint32_t                                    firstQuery) {
12138
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12139
0
    if (NULL == disp) {
12140
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12141
0
                   "vkCmdWriteAccelerationStructuresPropertiesKHR: Invalid commandBuffer "
12142
0
                   "[VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter]");
12143
0
        abort(); /* Intentionally fail so user can correct issue. */
12144
0
    }
12145
0
    disp->CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
12146
0
}
12147
12148
VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR(
12149
    VkDevice                                    device,
12150
    const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
12151
0
    VkAccelerationStructureCompatibilityKHR*    pCompatibility) {
12152
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12153
0
    if (NULL == disp) {
12154
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12155
0
                   "vkGetDeviceAccelerationStructureCompatibilityKHR: Invalid device "
12156
0
                   "[VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter]");
12157
0
        abort(); /* Intentionally fail so user can correct issue. */
12158
0
    }
12159
0
    disp->GetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility);
12160
0
}
12161
12162
VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR(
12163
    VkDevice                                    device,
12164
    VkAccelerationStructureBuildTypeKHR         buildType,
12165
    const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
12166
    const uint32_t*                             pMaxPrimitiveCounts,
12167
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
12168
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12169
0
    if (NULL == disp) {
12170
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12171
0
                   "vkGetAccelerationStructureBuildSizesKHR: Invalid device "
12172
0
                   "[VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter]");
12173
0
        abort(); /* Intentionally fail so user can correct issue. */
12174
0
    }
12175
0
    disp->GetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo);
12176
0
}
12177
12178
12179
// ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
12180
12181
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR(
12182
    VkCommandBuffer                             commandBuffer,
12183
    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
12184
    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
12185
    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
12186
    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
12187
    uint32_t                                    width,
12188
    uint32_t                                    height,
12189
0
    uint32_t                                    depth) {
12190
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12191
0
    if (NULL == disp) {
12192
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12193
0
                   "vkCmdTraceRaysKHR: Invalid commandBuffer "
12194
0
                   "[VUID-vkCmdTraceRaysKHR-commandBuffer-parameter]");
12195
0
        abort(); /* Intentionally fail so user can correct issue. */
12196
0
    }
12197
0
    disp->CmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
12198
0
}
12199
12200
VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesKHR(
12201
    VkDevice                                    device,
12202
    VkDeferredOperationKHR                      deferredOperation,
12203
    VkPipelineCache                             pipelineCache,
12204
    uint32_t                                    createInfoCount,
12205
    const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
12206
    const VkAllocationCallbacks*                pAllocator,
12207
0
    VkPipeline*                                 pPipelines) {
12208
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12209
0
    if (NULL == disp) {
12210
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12211
0
                   "vkCreateRayTracingPipelinesKHR: Invalid device "
12212
0
                   "[VUID-vkCreateRayTracingPipelinesKHR-device-parameter]");
12213
0
        abort(); /* Intentionally fail so user can correct issue. */
12214
0
    }
12215
0
    return disp->CreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
12216
0
}
12217
12218
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR(
12219
    VkDevice                                    device,
12220
    VkPipeline                                  pipeline,
12221
    uint32_t                                    firstGroup,
12222
    uint32_t                                    groupCount,
12223
    size_t                                      dataSize,
12224
0
    void*                                       pData) {
12225
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12226
0
    if (NULL == disp) {
12227
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12228
0
                   "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR: Invalid device "
12229
0
                   "[VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter]");
12230
0
        abort(); /* Intentionally fail so user can correct issue. */
12231
0
    }
12232
0
    return disp->GetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
12233
0
}
12234
12235
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR(
12236
    VkCommandBuffer                             commandBuffer,
12237
    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
12238
    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
12239
    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
12240
    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
12241
0
    VkDeviceAddress                             indirectDeviceAddress) {
12242
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12243
0
    if (NULL == disp) {
12244
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12245
0
                   "vkCmdTraceRaysIndirectKHR: Invalid commandBuffer "
12246
0
                   "[VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter]");
12247
0
        abort(); /* Intentionally fail so user can correct issue. */
12248
0
    }
12249
0
    disp->CmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress);
12250
0
}
12251
12252
VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR(
12253
    VkDevice                                    device,
12254
    VkPipeline                                  pipeline,
12255
    uint32_t                                    group,
12256
0
    VkShaderGroupShaderKHR                      groupShader) {
12257
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
12258
0
    if (NULL == disp) {
12259
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12260
0
                   "vkGetRayTracingShaderGroupStackSizeKHR: Invalid device "
12261
0
                   "[VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter]");
12262
0
        abort(); /* Intentionally fail so user can correct issue. */
12263
0
    }
12264
0
    return disp->GetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader);
12265
0
}
12266
12267
VKAPI_ATTR void VKAPI_CALL CmdSetRayTracingPipelineStackSizeKHR(
12268
    VkCommandBuffer                             commandBuffer,
12269
0
    uint32_t                                    pipelineStackSize) {
12270
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12271
0
    if (NULL == disp) {
12272
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12273
0
                   "vkCmdSetRayTracingPipelineStackSizeKHR: Invalid commandBuffer "
12274
0
                   "[VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter]");
12275
0
        abort(); /* Intentionally fail so user can correct issue. */
12276
0
    }
12277
0
    disp->CmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize);
12278
0
}
12279
12280
12281
// ---- VK_EXT_mesh_shader extension trampoline/terminators
12282
12283
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT(
12284
    VkCommandBuffer                             commandBuffer,
12285
    uint32_t                                    groupCountX,
12286
    uint32_t                                    groupCountY,
12287
0
    uint32_t                                    groupCountZ) {
12288
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12289
0
    if (NULL == disp) {
12290
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12291
0
                   "vkCmdDrawMeshTasksEXT: Invalid commandBuffer "
12292
0
                   "[VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter]");
12293
0
        abort(); /* Intentionally fail so user can correct issue. */
12294
0
    }
12295
0
    disp->CmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ);
12296
0
}
12297
12298
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT(
12299
    VkCommandBuffer                             commandBuffer,
12300
    VkBuffer                                    buffer,
12301
    VkDeviceSize                                offset,
12302
    uint32_t                                    drawCount,
12303
0
    uint32_t                                    stride) {
12304
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12305
0
    if (NULL == disp) {
12306
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12307
0
                   "vkCmdDrawMeshTasksIndirectEXT: Invalid commandBuffer "
12308
0
                   "[VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter]");
12309
0
        abort(); /* Intentionally fail so user can correct issue. */
12310
0
    }
12311
0
    disp->CmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride);
12312
0
}
12313
12314
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT(
12315
    VkCommandBuffer                             commandBuffer,
12316
    VkBuffer                                    buffer,
12317
    VkDeviceSize                                offset,
12318
    VkBuffer                                    countBuffer,
12319
    VkDeviceSize                                countBufferOffset,
12320
    uint32_t                                    maxDrawCount,
12321
0
    uint32_t                                    stride) {
12322
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
12323
0
    if (NULL == disp) {
12324
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
12325
0
                   "vkCmdDrawMeshTasksIndirectCountEXT: Invalid commandBuffer "
12326
0
                   "[VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter]");
12327
0
        abort(); /* Intentionally fail so user can correct issue. */
12328
0
    }
12329
0
    disp->CmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
12330
0
}
12331
12332
// GPA helpers for extensions
12333
0
bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr) {
12334
0
    *addr = NULL;
12335
12336
12337
    // ---- VK_KHR_video_queue extension commands
12338
0
    if (!strcmp("vkGetPhysicalDeviceVideoCapabilitiesKHR", name)) {
12339
0
        *addr = (void *)GetPhysicalDeviceVideoCapabilitiesKHR;
12340
0
        return true;
12341
0
    }
12342
0
    if (!strcmp("vkGetPhysicalDeviceVideoFormatPropertiesKHR", name)) {
12343
0
        *addr = (void *)GetPhysicalDeviceVideoFormatPropertiesKHR;
12344
0
        return true;
12345
0
    }
12346
0
    if (!strcmp("vkCreateVideoSessionKHR", name)) {
12347
0
        *addr = (void *)CreateVideoSessionKHR;
12348
0
        return true;
12349
0
    }
12350
0
    if (!strcmp("vkDestroyVideoSessionKHR", name)) {
12351
0
        *addr = (void *)DestroyVideoSessionKHR;
12352
0
        return true;
12353
0
    }
12354
0
    if (!strcmp("vkGetVideoSessionMemoryRequirementsKHR", name)) {
12355
0
        *addr = (void *)GetVideoSessionMemoryRequirementsKHR;
12356
0
        return true;
12357
0
    }
12358
0
    if (!strcmp("vkBindVideoSessionMemoryKHR", name)) {
12359
0
        *addr = (void *)BindVideoSessionMemoryKHR;
12360
0
        return true;
12361
0
    }
12362
0
    if (!strcmp("vkCreateVideoSessionParametersKHR", name)) {
12363
0
        *addr = (void *)CreateVideoSessionParametersKHR;
12364
0
        return true;
12365
0
    }
12366
0
    if (!strcmp("vkUpdateVideoSessionParametersKHR", name)) {
12367
0
        *addr = (void *)UpdateVideoSessionParametersKHR;
12368
0
        return true;
12369
0
    }
12370
0
    if (!strcmp("vkDestroyVideoSessionParametersKHR", name)) {
12371
0
        *addr = (void *)DestroyVideoSessionParametersKHR;
12372
0
        return true;
12373
0
    }
12374
0
    if (!strcmp("vkCmdBeginVideoCodingKHR", name)) {
12375
0
        *addr = (void *)CmdBeginVideoCodingKHR;
12376
0
        return true;
12377
0
    }
12378
0
    if (!strcmp("vkCmdEndVideoCodingKHR", name)) {
12379
0
        *addr = (void *)CmdEndVideoCodingKHR;
12380
0
        return true;
12381
0
    }
12382
0
    if (!strcmp("vkCmdControlVideoCodingKHR", name)) {
12383
0
        *addr = (void *)CmdControlVideoCodingKHR;
12384
0
        return true;
12385
0
    }
12386
12387
    // ---- VK_KHR_video_decode_queue extension commands
12388
0
    if (!strcmp("vkCmdDecodeVideoKHR", name)) {
12389
0
        *addr = (void *)CmdDecodeVideoKHR;
12390
0
        return true;
12391
0
    }
12392
12393
    // ---- VK_KHR_dynamic_rendering extension commands
12394
0
    if (!strcmp("vkCmdBeginRenderingKHR", name)) {
12395
0
        *addr = (void *)CmdBeginRenderingKHR;
12396
0
        return true;
12397
0
    }
12398
0
    if (!strcmp("vkCmdEndRenderingKHR", name)) {
12399
0
        *addr = (void *)CmdEndRenderingKHR;
12400
0
        return true;
12401
0
    }
12402
12403
    // ---- VK_KHR_get_physical_device_properties2 extension commands
12404
0
    if (!strcmp("vkGetPhysicalDeviceFeatures2KHR", name)) {
12405
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
12406
0
                     ? (void *)vkGetPhysicalDeviceFeatures2
12407
0
                     : NULL;
12408
0
        return true;
12409
0
    }
12410
0
    if (!strcmp("vkGetPhysicalDeviceProperties2KHR", name)) {
12411
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
12412
0
                     ? (void *)vkGetPhysicalDeviceProperties2
12413
0
                     : NULL;
12414
0
        return true;
12415
0
    }
12416
0
    if (!strcmp("vkGetPhysicalDeviceFormatProperties2KHR", name)) {
12417
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
12418
0
                     ? (void *)vkGetPhysicalDeviceFormatProperties2
12419
0
                     : NULL;
12420
0
        return true;
12421
0
    }
12422
0
    if (!strcmp("vkGetPhysicalDeviceImageFormatProperties2KHR", name)) {
12423
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
12424
0
                     ? (void *)vkGetPhysicalDeviceImageFormatProperties2
12425
0
                     : NULL;
12426
0
        return true;
12427
0
    }
12428
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyProperties2KHR", name)) {
12429
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
12430
0
                     ? (void *)vkGetPhysicalDeviceQueueFamilyProperties2
12431
0
                     : NULL;
12432
0
        return true;
12433
0
    }
12434
0
    if (!strcmp("vkGetPhysicalDeviceMemoryProperties2KHR", name)) {
12435
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
12436
0
                     ? (void *)vkGetPhysicalDeviceMemoryProperties2
12437
0
                     : NULL;
12438
0
        return true;
12439
0
    }
12440
0
    if (!strcmp("vkGetPhysicalDeviceSparseImageFormatProperties2KHR", name)) {
12441
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
12442
0
                     ? (void *)vkGetPhysicalDeviceSparseImageFormatProperties2
12443
0
                     : NULL;
12444
0
        return true;
12445
0
    }
12446
12447
    // ---- VK_KHR_device_group extension commands
12448
0
    if (!strcmp("vkGetDeviceGroupPeerMemoryFeaturesKHR", name)) {
12449
0
        *addr = (void *)GetDeviceGroupPeerMemoryFeaturesKHR;
12450
0
        return true;
12451
0
    }
12452
0
    if (!strcmp("vkCmdSetDeviceMaskKHR", name)) {
12453
0
        *addr = (void *)CmdSetDeviceMaskKHR;
12454
0
        return true;
12455
0
    }
12456
0
    if (!strcmp("vkCmdDispatchBaseKHR", name)) {
12457
0
        *addr = (void *)CmdDispatchBaseKHR;
12458
0
        return true;
12459
0
    }
12460
12461
    // ---- VK_KHR_maintenance1 extension commands
12462
0
    if (!strcmp("vkTrimCommandPoolKHR", name)) {
12463
0
        *addr = (void *)TrimCommandPoolKHR;
12464
0
        return true;
12465
0
    }
12466
12467
    // ---- VK_KHR_device_group_creation extension commands
12468
0
    if (!strcmp("vkEnumeratePhysicalDeviceGroupsKHR", name)) {
12469
0
        *addr = (ptr_instance->enabled_extensions.khr_device_group_creation == 1)
12470
0
                     ? (void *)vkEnumeratePhysicalDeviceGroups
12471
0
                     : NULL;
12472
0
        return true;
12473
0
    }
12474
12475
    // ---- VK_KHR_external_memory_capabilities extension commands
12476
0
    if (!strcmp("vkGetPhysicalDeviceExternalBufferPropertiesKHR", name)) {
12477
0
        *addr = (ptr_instance->enabled_extensions.khr_external_memory_capabilities == 1)
12478
0
                     ? (void *)vkGetPhysicalDeviceExternalBufferProperties
12479
0
                     : NULL;
12480
0
        return true;
12481
0
    }
12482
12483
    // ---- VK_KHR_external_memory_win32 extension commands
12484
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12485
    if (!strcmp("vkGetMemoryWin32HandleKHR", name)) {
12486
        *addr = (void *)GetMemoryWin32HandleKHR;
12487
        return true;
12488
    }
12489
#endif // VK_USE_PLATFORM_WIN32_KHR
12490
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12491
    if (!strcmp("vkGetMemoryWin32HandlePropertiesKHR", name)) {
12492
        *addr = (void *)GetMemoryWin32HandlePropertiesKHR;
12493
        return true;
12494
    }
12495
#endif // VK_USE_PLATFORM_WIN32_KHR
12496
12497
    // ---- VK_KHR_external_memory_fd extension commands
12498
0
    if (!strcmp("vkGetMemoryFdKHR", name)) {
12499
0
        *addr = (void *)GetMemoryFdKHR;
12500
0
        return true;
12501
0
    }
12502
0
    if (!strcmp("vkGetMemoryFdPropertiesKHR", name)) {
12503
0
        *addr = (void *)GetMemoryFdPropertiesKHR;
12504
0
        return true;
12505
0
    }
12506
12507
    // ---- VK_KHR_external_semaphore_capabilities extension commands
12508
0
    if (!strcmp("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR", name)) {
12509
0
        *addr = (ptr_instance->enabled_extensions.khr_external_semaphore_capabilities == 1)
12510
0
                     ? (void *)vkGetPhysicalDeviceExternalSemaphoreProperties
12511
0
                     : NULL;
12512
0
        return true;
12513
0
    }
12514
12515
    // ---- VK_KHR_external_semaphore_win32 extension commands
12516
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12517
    if (!strcmp("vkImportSemaphoreWin32HandleKHR", name)) {
12518
        *addr = (void *)ImportSemaphoreWin32HandleKHR;
12519
        return true;
12520
    }
12521
#endif // VK_USE_PLATFORM_WIN32_KHR
12522
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12523
    if (!strcmp("vkGetSemaphoreWin32HandleKHR", name)) {
12524
        *addr = (void *)GetSemaphoreWin32HandleKHR;
12525
        return true;
12526
    }
12527
#endif // VK_USE_PLATFORM_WIN32_KHR
12528
12529
    // ---- VK_KHR_external_semaphore_fd extension commands
12530
0
    if (!strcmp("vkImportSemaphoreFdKHR", name)) {
12531
0
        *addr = (void *)ImportSemaphoreFdKHR;
12532
0
        return true;
12533
0
    }
12534
0
    if (!strcmp("vkGetSemaphoreFdKHR", name)) {
12535
0
        *addr = (void *)GetSemaphoreFdKHR;
12536
0
        return true;
12537
0
    }
12538
12539
    // ---- VK_KHR_push_descriptor extension commands
12540
0
    if (!strcmp("vkCmdPushDescriptorSetKHR", name)) {
12541
0
        *addr = (void *)CmdPushDescriptorSetKHR;
12542
0
        return true;
12543
0
    }
12544
0
    if (!strcmp("vkCmdPushDescriptorSetWithTemplateKHR", name)) {
12545
0
        *addr = (void *)CmdPushDescriptorSetWithTemplateKHR;
12546
0
        return true;
12547
0
    }
12548
12549
    // ---- VK_KHR_descriptor_update_template extension commands
12550
0
    if (!strcmp("vkCreateDescriptorUpdateTemplateKHR", name)) {
12551
0
        *addr = (void *)CreateDescriptorUpdateTemplateKHR;
12552
0
        return true;
12553
0
    }
12554
0
    if (!strcmp("vkDestroyDescriptorUpdateTemplateKHR", name)) {
12555
0
        *addr = (void *)DestroyDescriptorUpdateTemplateKHR;
12556
0
        return true;
12557
0
    }
12558
0
    if (!strcmp("vkUpdateDescriptorSetWithTemplateKHR", name)) {
12559
0
        *addr = (void *)UpdateDescriptorSetWithTemplateKHR;
12560
0
        return true;
12561
0
    }
12562
12563
    // ---- VK_KHR_create_renderpass2 extension commands
12564
0
    if (!strcmp("vkCreateRenderPass2KHR", name)) {
12565
0
        *addr = (void *)CreateRenderPass2KHR;
12566
0
        return true;
12567
0
    }
12568
0
    if (!strcmp("vkCmdBeginRenderPass2KHR", name)) {
12569
0
        *addr = (void *)CmdBeginRenderPass2KHR;
12570
0
        return true;
12571
0
    }
12572
0
    if (!strcmp("vkCmdNextSubpass2KHR", name)) {
12573
0
        *addr = (void *)CmdNextSubpass2KHR;
12574
0
        return true;
12575
0
    }
12576
0
    if (!strcmp("vkCmdEndRenderPass2KHR", name)) {
12577
0
        *addr = (void *)CmdEndRenderPass2KHR;
12578
0
        return true;
12579
0
    }
12580
12581
    // ---- VK_KHR_shared_presentable_image extension commands
12582
0
    if (!strcmp("vkGetSwapchainStatusKHR", name)) {
12583
0
        *addr = (void *)GetSwapchainStatusKHR;
12584
0
        return true;
12585
0
    }
12586
12587
    // ---- VK_KHR_external_fence_capabilities extension commands
12588
0
    if (!strcmp("vkGetPhysicalDeviceExternalFencePropertiesKHR", name)) {
12589
0
        *addr = (ptr_instance->enabled_extensions.khr_external_fence_capabilities == 1)
12590
0
                     ? (void *)vkGetPhysicalDeviceExternalFenceProperties
12591
0
                     : NULL;
12592
0
        return true;
12593
0
    }
12594
12595
    // ---- VK_KHR_external_fence_win32 extension commands
12596
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12597
    if (!strcmp("vkImportFenceWin32HandleKHR", name)) {
12598
        *addr = (void *)ImportFenceWin32HandleKHR;
12599
        return true;
12600
    }
12601
#endif // VK_USE_PLATFORM_WIN32_KHR
12602
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12603
    if (!strcmp("vkGetFenceWin32HandleKHR", name)) {
12604
        *addr = (void *)GetFenceWin32HandleKHR;
12605
        return true;
12606
    }
12607
#endif // VK_USE_PLATFORM_WIN32_KHR
12608
12609
    // ---- VK_KHR_external_fence_fd extension commands
12610
0
    if (!strcmp("vkImportFenceFdKHR", name)) {
12611
0
        *addr = (void *)ImportFenceFdKHR;
12612
0
        return true;
12613
0
    }
12614
0
    if (!strcmp("vkGetFenceFdKHR", name)) {
12615
0
        *addr = (void *)GetFenceFdKHR;
12616
0
        return true;
12617
0
    }
12618
12619
    // ---- VK_KHR_performance_query extension commands
12620
0
    if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR", name)) {
12621
0
        *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
12622
0
        return true;
12623
0
    }
12624
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", name)) {
12625
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
12626
0
        return true;
12627
0
    }
12628
0
    if (!strcmp("vkAcquireProfilingLockKHR", name)) {
12629
0
        *addr = (void *)AcquireProfilingLockKHR;
12630
0
        return true;
12631
0
    }
12632
0
    if (!strcmp("vkReleaseProfilingLockKHR", name)) {
12633
0
        *addr = (void *)ReleaseProfilingLockKHR;
12634
0
        return true;
12635
0
    }
12636
12637
    // ---- VK_KHR_get_memory_requirements2 extension commands
12638
0
    if (!strcmp("vkGetImageMemoryRequirements2KHR", name)) {
12639
0
        *addr = (void *)GetImageMemoryRequirements2KHR;
12640
0
        return true;
12641
0
    }
12642
0
    if (!strcmp("vkGetBufferMemoryRequirements2KHR", name)) {
12643
0
        *addr = (void *)GetBufferMemoryRequirements2KHR;
12644
0
        return true;
12645
0
    }
12646
0
    if (!strcmp("vkGetImageSparseMemoryRequirements2KHR", name)) {
12647
0
        *addr = (void *)GetImageSparseMemoryRequirements2KHR;
12648
0
        return true;
12649
0
    }
12650
12651
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
12652
0
    if (!strcmp("vkCreateSamplerYcbcrConversionKHR", name)) {
12653
0
        *addr = (void *)CreateSamplerYcbcrConversionKHR;
12654
0
        return true;
12655
0
    }
12656
0
    if (!strcmp("vkDestroySamplerYcbcrConversionKHR", name)) {
12657
0
        *addr = (void *)DestroySamplerYcbcrConversionKHR;
12658
0
        return true;
12659
0
    }
12660
12661
    // ---- VK_KHR_bind_memory2 extension commands
12662
0
    if (!strcmp("vkBindBufferMemory2KHR", name)) {
12663
0
        *addr = (void *)BindBufferMemory2KHR;
12664
0
        return true;
12665
0
    }
12666
0
    if (!strcmp("vkBindImageMemory2KHR", name)) {
12667
0
        *addr = (void *)BindImageMemory2KHR;
12668
0
        return true;
12669
0
    }
12670
12671
    // ---- VK_KHR_maintenance3 extension commands
12672
0
    if (!strcmp("vkGetDescriptorSetLayoutSupportKHR", name)) {
12673
0
        *addr = (void *)GetDescriptorSetLayoutSupportKHR;
12674
0
        return true;
12675
0
    }
12676
12677
    // ---- VK_KHR_draw_indirect_count extension commands
12678
0
    if (!strcmp("vkCmdDrawIndirectCountKHR", name)) {
12679
0
        *addr = (void *)CmdDrawIndirectCountKHR;
12680
0
        return true;
12681
0
    }
12682
0
    if (!strcmp("vkCmdDrawIndexedIndirectCountKHR", name)) {
12683
0
        *addr = (void *)CmdDrawIndexedIndirectCountKHR;
12684
0
        return true;
12685
0
    }
12686
12687
    // ---- VK_KHR_timeline_semaphore extension commands
12688
0
    if (!strcmp("vkGetSemaphoreCounterValueKHR", name)) {
12689
0
        *addr = (void *)GetSemaphoreCounterValueKHR;
12690
0
        return true;
12691
0
    }
12692
0
    if (!strcmp("vkWaitSemaphoresKHR", name)) {
12693
0
        *addr = (void *)WaitSemaphoresKHR;
12694
0
        return true;
12695
0
    }
12696
0
    if (!strcmp("vkSignalSemaphoreKHR", name)) {
12697
0
        *addr = (void *)SignalSemaphoreKHR;
12698
0
        return true;
12699
0
    }
12700
12701
    // ---- VK_KHR_fragment_shading_rate extension commands
12702
0
    if (!strcmp("vkGetPhysicalDeviceFragmentShadingRatesKHR", name)) {
12703
0
        *addr = (void *)GetPhysicalDeviceFragmentShadingRatesKHR;
12704
0
        return true;
12705
0
    }
12706
0
    if (!strcmp("vkCmdSetFragmentShadingRateKHR", name)) {
12707
0
        *addr = (void *)CmdSetFragmentShadingRateKHR;
12708
0
        return true;
12709
0
    }
12710
12711
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
12712
0
    if (!strcmp("vkCmdSetRenderingAttachmentLocationsKHR", name)) {
12713
0
        *addr = (void *)CmdSetRenderingAttachmentLocationsKHR;
12714
0
        return true;
12715
0
    }
12716
0
    if (!strcmp("vkCmdSetRenderingInputAttachmentIndicesKHR", name)) {
12717
0
        *addr = (void *)CmdSetRenderingInputAttachmentIndicesKHR;
12718
0
        return true;
12719
0
    }
12720
12721
    // ---- VK_KHR_present_wait extension commands
12722
0
    if (!strcmp("vkWaitForPresentKHR", name)) {
12723
0
        *addr = (void *)WaitForPresentKHR;
12724
0
        return true;
12725
0
    }
12726
12727
    // ---- VK_KHR_buffer_device_address extension commands
12728
0
    if (!strcmp("vkGetBufferDeviceAddressKHR", name)) {
12729
0
        *addr = (void *)GetBufferDeviceAddressKHR;
12730
0
        return true;
12731
0
    }
12732
0
    if (!strcmp("vkGetBufferOpaqueCaptureAddressKHR", name)) {
12733
0
        *addr = (void *)GetBufferOpaqueCaptureAddressKHR;
12734
0
        return true;
12735
0
    }
12736
0
    if (!strcmp("vkGetDeviceMemoryOpaqueCaptureAddressKHR", name)) {
12737
0
        *addr = (void *)GetDeviceMemoryOpaqueCaptureAddressKHR;
12738
0
        return true;
12739
0
    }
12740
12741
    // ---- VK_KHR_deferred_host_operations extension commands
12742
0
    if (!strcmp("vkCreateDeferredOperationKHR", name)) {
12743
0
        *addr = (void *)CreateDeferredOperationKHR;
12744
0
        return true;
12745
0
    }
12746
0
    if (!strcmp("vkDestroyDeferredOperationKHR", name)) {
12747
0
        *addr = (void *)DestroyDeferredOperationKHR;
12748
0
        return true;
12749
0
    }
12750
0
    if (!strcmp("vkGetDeferredOperationMaxConcurrencyKHR", name)) {
12751
0
        *addr = (void *)GetDeferredOperationMaxConcurrencyKHR;
12752
0
        return true;
12753
0
    }
12754
0
    if (!strcmp("vkGetDeferredOperationResultKHR", name)) {
12755
0
        *addr = (void *)GetDeferredOperationResultKHR;
12756
0
        return true;
12757
0
    }
12758
0
    if (!strcmp("vkDeferredOperationJoinKHR", name)) {
12759
0
        *addr = (void *)DeferredOperationJoinKHR;
12760
0
        return true;
12761
0
    }
12762
12763
    // ---- VK_KHR_pipeline_executable_properties extension commands
12764
0
    if (!strcmp("vkGetPipelineExecutablePropertiesKHR", name)) {
12765
0
        *addr = (void *)GetPipelineExecutablePropertiesKHR;
12766
0
        return true;
12767
0
    }
12768
0
    if (!strcmp("vkGetPipelineExecutableStatisticsKHR", name)) {
12769
0
        *addr = (void *)GetPipelineExecutableStatisticsKHR;
12770
0
        return true;
12771
0
    }
12772
0
    if (!strcmp("vkGetPipelineExecutableInternalRepresentationsKHR", name)) {
12773
0
        *addr = (void *)GetPipelineExecutableInternalRepresentationsKHR;
12774
0
        return true;
12775
0
    }
12776
12777
    // ---- VK_KHR_map_memory2 extension commands
12778
0
    if (!strcmp("vkMapMemory2KHR", name)) {
12779
0
        *addr = (void *)MapMemory2KHR;
12780
0
        return true;
12781
0
    }
12782
0
    if (!strcmp("vkUnmapMemory2KHR", name)) {
12783
0
        *addr = (void *)UnmapMemory2KHR;
12784
0
        return true;
12785
0
    }
12786
12787
    // ---- VK_KHR_video_encode_queue extension commands
12788
0
    if (!strcmp("vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR", name)) {
12789
0
        *addr = (void *)GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
12790
0
        return true;
12791
0
    }
12792
0
    if (!strcmp("vkGetEncodedVideoSessionParametersKHR", name)) {
12793
0
        *addr = (void *)GetEncodedVideoSessionParametersKHR;
12794
0
        return true;
12795
0
    }
12796
0
    if (!strcmp("vkCmdEncodeVideoKHR", name)) {
12797
0
        *addr = (void *)CmdEncodeVideoKHR;
12798
0
        return true;
12799
0
    }
12800
12801
    // ---- VK_KHR_synchronization2 extension commands
12802
0
    if (!strcmp("vkCmdSetEvent2KHR", name)) {
12803
0
        *addr = (void *)CmdSetEvent2KHR;
12804
0
        return true;
12805
0
    }
12806
0
    if (!strcmp("vkCmdResetEvent2KHR", name)) {
12807
0
        *addr = (void *)CmdResetEvent2KHR;
12808
0
        return true;
12809
0
    }
12810
0
    if (!strcmp("vkCmdWaitEvents2KHR", name)) {
12811
0
        *addr = (void *)CmdWaitEvents2KHR;
12812
0
        return true;
12813
0
    }
12814
0
    if (!strcmp("vkCmdPipelineBarrier2KHR", name)) {
12815
0
        *addr = (void *)CmdPipelineBarrier2KHR;
12816
0
        return true;
12817
0
    }
12818
0
    if (!strcmp("vkCmdWriteTimestamp2KHR", name)) {
12819
0
        *addr = (void *)CmdWriteTimestamp2KHR;
12820
0
        return true;
12821
0
    }
12822
0
    if (!strcmp("vkQueueSubmit2KHR", name)) {
12823
0
        *addr = (void *)QueueSubmit2KHR;
12824
0
        return true;
12825
0
    }
12826
12827
    // ---- VK_KHR_device_address_commands extension commands
12828
0
    if (!strcmp("vkCmdBindIndexBuffer3KHR", name)) {
12829
0
        *addr = (void *)CmdBindIndexBuffer3KHR;
12830
0
        return true;
12831
0
    }
12832
0
    if (!strcmp("vkCmdBindVertexBuffers3KHR", name)) {
12833
0
        *addr = (void *)CmdBindVertexBuffers3KHR;
12834
0
        return true;
12835
0
    }
12836
0
    if (!strcmp("vkCmdDrawIndirect2KHR", name)) {
12837
0
        *addr = (void *)CmdDrawIndirect2KHR;
12838
0
        return true;
12839
0
    }
12840
0
    if (!strcmp("vkCmdDrawIndexedIndirect2KHR", name)) {
12841
0
        *addr = (void *)CmdDrawIndexedIndirect2KHR;
12842
0
        return true;
12843
0
    }
12844
0
    if (!strcmp("vkCmdDispatchIndirect2KHR", name)) {
12845
0
        *addr = (void *)CmdDispatchIndirect2KHR;
12846
0
        return true;
12847
0
    }
12848
0
    if (!strcmp("vkCmdCopyMemoryKHR", name)) {
12849
0
        *addr = (void *)CmdCopyMemoryKHR;
12850
0
        return true;
12851
0
    }
12852
0
    if (!strcmp("vkCmdCopyMemoryToImageKHR", name)) {
12853
0
        *addr = (void *)CmdCopyMemoryToImageKHR;
12854
0
        return true;
12855
0
    }
12856
0
    if (!strcmp("vkCmdCopyImageToMemoryKHR", name)) {
12857
0
        *addr = (void *)CmdCopyImageToMemoryKHR;
12858
0
        return true;
12859
0
    }
12860
0
    if (!strcmp("vkCmdUpdateMemoryKHR", name)) {
12861
0
        *addr = (void *)CmdUpdateMemoryKHR;
12862
0
        return true;
12863
0
    }
12864
0
    if (!strcmp("vkCmdFillMemoryKHR", name)) {
12865
0
        *addr = (void *)CmdFillMemoryKHR;
12866
0
        return true;
12867
0
    }
12868
0
    if (!strcmp("vkCmdCopyQueryPoolResultsToMemoryKHR", name)) {
12869
0
        *addr = (void *)CmdCopyQueryPoolResultsToMemoryKHR;
12870
0
        return true;
12871
0
    }
12872
0
    if (!strcmp("vkCmdDrawIndirectCount2KHR", name)) {
12873
0
        *addr = (void *)CmdDrawIndirectCount2KHR;
12874
0
        return true;
12875
0
    }
12876
0
    if (!strcmp("vkCmdDrawIndexedIndirectCount2KHR", name)) {
12877
0
        *addr = (void *)CmdDrawIndexedIndirectCount2KHR;
12878
0
        return true;
12879
0
    }
12880
0
    if (!strcmp("vkCmdBeginConditionalRendering2EXT", name)) {
12881
0
        *addr = (void *)CmdBeginConditionalRendering2EXT;
12882
0
        return true;
12883
0
    }
12884
0
    if (!strcmp("vkCmdBindTransformFeedbackBuffers2EXT", name)) {
12885
0
        *addr = (void *)CmdBindTransformFeedbackBuffers2EXT;
12886
0
        return true;
12887
0
    }
12888
0
    if (!strcmp("vkCmdBeginTransformFeedback2EXT", name)) {
12889
0
        *addr = (void *)CmdBeginTransformFeedback2EXT;
12890
0
        return true;
12891
0
    }
12892
0
    if (!strcmp("vkCmdEndTransformFeedback2EXT", name)) {
12893
0
        *addr = (void *)CmdEndTransformFeedback2EXT;
12894
0
        return true;
12895
0
    }
12896
0
    if (!strcmp("vkCmdDrawIndirectByteCount2EXT", name)) {
12897
0
        *addr = (void *)CmdDrawIndirectByteCount2EXT;
12898
0
        return true;
12899
0
    }
12900
0
    if (!strcmp("vkCmdDrawMeshTasksIndirect2EXT", name)) {
12901
0
        *addr = (void *)CmdDrawMeshTasksIndirect2EXT;
12902
0
        return true;
12903
0
    }
12904
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectCount2EXT", name)) {
12905
0
        *addr = (void *)CmdDrawMeshTasksIndirectCount2EXT;
12906
0
        return true;
12907
0
    }
12908
0
    if (!strcmp("vkCmdWriteMarkerToMemoryAMD", name)) {
12909
0
        *addr = (void *)CmdWriteMarkerToMemoryAMD;
12910
0
        return true;
12911
0
    }
12912
0
    if (!strcmp("vkCreateAccelerationStructure2KHR", name)) {
12913
0
        *addr = (void *)CreateAccelerationStructure2KHR;
12914
0
        return true;
12915
0
    }
12916
12917
    // ---- VK_KHR_copy_commands2 extension commands
12918
0
    if (!strcmp("vkCmdCopyBuffer2KHR", name)) {
12919
0
        *addr = (void *)CmdCopyBuffer2KHR;
12920
0
        return true;
12921
0
    }
12922
0
    if (!strcmp("vkCmdCopyImage2KHR", name)) {
12923
0
        *addr = (void *)CmdCopyImage2KHR;
12924
0
        return true;
12925
0
    }
12926
0
    if (!strcmp("vkCmdCopyBufferToImage2KHR", name)) {
12927
0
        *addr = (void *)CmdCopyBufferToImage2KHR;
12928
0
        return true;
12929
0
    }
12930
0
    if (!strcmp("vkCmdCopyImageToBuffer2KHR", name)) {
12931
0
        *addr = (void *)CmdCopyImageToBuffer2KHR;
12932
0
        return true;
12933
0
    }
12934
0
    if (!strcmp("vkCmdBlitImage2KHR", name)) {
12935
0
        *addr = (void *)CmdBlitImage2KHR;
12936
0
        return true;
12937
0
    }
12938
0
    if (!strcmp("vkCmdResolveImage2KHR", name)) {
12939
0
        *addr = (void *)CmdResolveImage2KHR;
12940
0
        return true;
12941
0
    }
12942
12943
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
12944
0
    if (!strcmp("vkCmdTraceRaysIndirect2KHR", name)) {
12945
0
        *addr = (void *)CmdTraceRaysIndirect2KHR;
12946
0
        return true;
12947
0
    }
12948
12949
    // ---- VK_KHR_maintenance4 extension commands
12950
0
    if (!strcmp("vkGetDeviceBufferMemoryRequirementsKHR", name)) {
12951
0
        *addr = (void *)GetDeviceBufferMemoryRequirementsKHR;
12952
0
        return true;
12953
0
    }
12954
0
    if (!strcmp("vkGetDeviceImageMemoryRequirementsKHR", name)) {
12955
0
        *addr = (void *)GetDeviceImageMemoryRequirementsKHR;
12956
0
        return true;
12957
0
    }
12958
0
    if (!strcmp("vkGetDeviceImageSparseMemoryRequirementsKHR", name)) {
12959
0
        *addr = (void *)GetDeviceImageSparseMemoryRequirementsKHR;
12960
0
        return true;
12961
0
    }
12962
12963
    // ---- VK_KHR_maintenance5 extension commands
12964
0
    if (!strcmp("vkCmdBindIndexBuffer2KHR", name)) {
12965
0
        *addr = (void *)CmdBindIndexBuffer2KHR;
12966
0
        return true;
12967
0
    }
12968
0
    if (!strcmp("vkGetRenderingAreaGranularityKHR", name)) {
12969
0
        *addr = (void *)GetRenderingAreaGranularityKHR;
12970
0
        return true;
12971
0
    }
12972
0
    if (!strcmp("vkGetDeviceImageSubresourceLayoutKHR", name)) {
12973
0
        *addr = (void *)GetDeviceImageSubresourceLayoutKHR;
12974
0
        return true;
12975
0
    }
12976
0
    if (!strcmp("vkGetImageSubresourceLayout2KHR", name)) {
12977
0
        *addr = (void *)GetImageSubresourceLayout2KHR;
12978
0
        return true;
12979
0
    }
12980
12981
    // ---- VK_KHR_present_wait2 extension commands
12982
0
    if (!strcmp("vkWaitForPresent2KHR", name)) {
12983
0
        *addr = (void *)WaitForPresent2KHR;
12984
0
        return true;
12985
0
    }
12986
12987
    // ---- VK_KHR_pipeline_binary extension commands
12988
0
    if (!strcmp("vkCreatePipelineBinariesKHR", name)) {
12989
0
        *addr = (void *)CreatePipelineBinariesKHR;
12990
0
        return true;
12991
0
    }
12992
0
    if (!strcmp("vkDestroyPipelineBinaryKHR", name)) {
12993
0
        *addr = (void *)DestroyPipelineBinaryKHR;
12994
0
        return true;
12995
0
    }
12996
0
    if (!strcmp("vkGetPipelineKeyKHR", name)) {
12997
0
        *addr = (void *)GetPipelineKeyKHR;
12998
0
        return true;
12999
0
    }
13000
0
    if (!strcmp("vkGetPipelineBinaryDataKHR", name)) {
13001
0
        *addr = (void *)GetPipelineBinaryDataKHR;
13002
0
        return true;
13003
0
    }
13004
0
    if (!strcmp("vkReleaseCapturedPipelineDataKHR", name)) {
13005
0
        *addr = (void *)ReleaseCapturedPipelineDataKHR;
13006
0
        return true;
13007
0
    }
13008
13009
    // ---- VK_KHR_swapchain_maintenance1 extension commands
13010
0
    if (!strcmp("vkReleaseSwapchainImagesKHR", name)) {
13011
0
        *addr = (void *)ReleaseSwapchainImagesKHR;
13012
0
        return true;
13013
0
    }
13014
13015
    // ---- VK_KHR_cooperative_matrix extension commands
13016
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", name)) {
13017
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
13018
0
        return true;
13019
0
    }
13020
13021
    // ---- VK_KHR_line_rasterization extension commands
13022
0
    if (!strcmp("vkCmdSetLineStippleKHR", name)) {
13023
0
        *addr = (void *)CmdSetLineStippleKHR;
13024
0
        return true;
13025
0
    }
13026
13027
    // ---- VK_KHR_calibrated_timestamps extension commands
13028
0
    if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", name)) {
13029
0
        *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsKHR;
13030
0
        return true;
13031
0
    }
13032
0
    if (!strcmp("vkGetCalibratedTimestampsKHR", name)) {
13033
0
        *addr = (void *)GetCalibratedTimestampsKHR;
13034
0
        return true;
13035
0
    }
13036
13037
    // ---- VK_KHR_maintenance6 extension commands
13038
0
    if (!strcmp("vkCmdBindDescriptorSets2KHR", name)) {
13039
0
        *addr = (void *)CmdBindDescriptorSets2KHR;
13040
0
        return true;
13041
0
    }
13042
0
    if (!strcmp("vkCmdPushConstants2KHR", name)) {
13043
0
        *addr = (void *)CmdPushConstants2KHR;
13044
0
        return true;
13045
0
    }
13046
0
    if (!strcmp("vkCmdPushDescriptorSet2KHR", name)) {
13047
0
        *addr = (void *)CmdPushDescriptorSet2KHR;
13048
0
        return true;
13049
0
    }
13050
0
    if (!strcmp("vkCmdPushDescriptorSetWithTemplate2KHR", name)) {
13051
0
        *addr = (void *)CmdPushDescriptorSetWithTemplate2KHR;
13052
0
        return true;
13053
0
    }
13054
0
    if (!strcmp("vkCmdSetDescriptorBufferOffsets2EXT", name)) {
13055
0
        *addr = (void *)CmdSetDescriptorBufferOffsets2EXT;
13056
0
        return true;
13057
0
    }
13058
0
    if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplers2EXT", name)) {
13059
0
        *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplers2EXT;
13060
0
        return true;
13061
0
    }
13062
13063
    // ---- VK_KHR_copy_memory_indirect extension commands
13064
0
    if (!strcmp("vkCmdCopyMemoryIndirectKHR", name)) {
13065
0
        *addr = (void *)CmdCopyMemoryIndirectKHR;
13066
0
        return true;
13067
0
    }
13068
0
    if (!strcmp("vkCmdCopyMemoryToImageIndirectKHR", name)) {
13069
0
        *addr = (void *)CmdCopyMemoryToImageIndirectKHR;
13070
0
        return true;
13071
0
    }
13072
13073
    // ---- VK_KHR_device_fault extension commands
13074
0
    if (!strcmp("vkGetDeviceFaultReportsKHR", name)) {
13075
0
        *addr = (void *)GetDeviceFaultReportsKHR;
13076
0
        return true;
13077
0
    }
13078
0
    if (!strcmp("vkGetDeviceFaultDebugInfoKHR", name)) {
13079
0
        *addr = (void *)GetDeviceFaultDebugInfoKHR;
13080
0
        return true;
13081
0
    }
13082
13083
    // ---- VK_KHR_maintenance10 extension commands
13084
0
    if (!strcmp("vkCmdEndRendering2KHR", name)) {
13085
0
        *addr = (void *)CmdEndRendering2KHR;
13086
0
        return true;
13087
0
    }
13088
13089
    // ---- VK_EXT_debug_marker extension commands
13090
0
    if (!strcmp("vkDebugMarkerSetObjectTagEXT", name)) {
13091
0
        *addr = (void *)DebugMarkerSetObjectTagEXT;
13092
0
        return true;
13093
0
    }
13094
0
    if (!strcmp("vkDebugMarkerSetObjectNameEXT", name)) {
13095
0
        *addr = (void *)DebugMarkerSetObjectNameEXT;
13096
0
        return true;
13097
0
    }
13098
0
    if (!strcmp("vkCmdDebugMarkerBeginEXT", name)) {
13099
0
        *addr = (void *)CmdDebugMarkerBeginEXT;
13100
0
        return true;
13101
0
    }
13102
0
    if (!strcmp("vkCmdDebugMarkerEndEXT", name)) {
13103
0
        *addr = (void *)CmdDebugMarkerEndEXT;
13104
0
        return true;
13105
0
    }
13106
0
    if (!strcmp("vkCmdDebugMarkerInsertEXT", name)) {
13107
0
        *addr = (void *)CmdDebugMarkerInsertEXT;
13108
0
        return true;
13109
0
    }
13110
13111
    // ---- VK_EXT_transform_feedback extension commands
13112
0
    if (!strcmp("vkCmdBindTransformFeedbackBuffersEXT", name)) {
13113
0
        *addr = (void *)CmdBindTransformFeedbackBuffersEXT;
13114
0
        return true;
13115
0
    }
13116
0
    if (!strcmp("vkCmdBeginTransformFeedbackEXT", name)) {
13117
0
        *addr = (void *)CmdBeginTransformFeedbackEXT;
13118
0
        return true;
13119
0
    }
13120
0
    if (!strcmp("vkCmdEndTransformFeedbackEXT", name)) {
13121
0
        *addr = (void *)CmdEndTransformFeedbackEXT;
13122
0
        return true;
13123
0
    }
13124
0
    if (!strcmp("vkCmdBeginQueryIndexedEXT", name)) {
13125
0
        *addr = (void *)CmdBeginQueryIndexedEXT;
13126
0
        return true;
13127
0
    }
13128
0
    if (!strcmp("vkCmdEndQueryIndexedEXT", name)) {
13129
0
        *addr = (void *)CmdEndQueryIndexedEXT;
13130
0
        return true;
13131
0
    }
13132
0
    if (!strcmp("vkCmdDrawIndirectByteCountEXT", name)) {
13133
0
        *addr = (void *)CmdDrawIndirectByteCountEXT;
13134
0
        return true;
13135
0
    }
13136
13137
    // ---- VK_NVX_binary_import extension commands
13138
0
    if (!strcmp("vkCreateCuModuleNVX", name)) {
13139
0
        *addr = (void *)CreateCuModuleNVX;
13140
0
        return true;
13141
0
    }
13142
0
    if (!strcmp("vkCreateCuFunctionNVX", name)) {
13143
0
        *addr = (void *)CreateCuFunctionNVX;
13144
0
        return true;
13145
0
    }
13146
0
    if (!strcmp("vkDestroyCuModuleNVX", name)) {
13147
0
        *addr = (void *)DestroyCuModuleNVX;
13148
0
        return true;
13149
0
    }
13150
0
    if (!strcmp("vkDestroyCuFunctionNVX", name)) {
13151
0
        *addr = (void *)DestroyCuFunctionNVX;
13152
0
        return true;
13153
0
    }
13154
0
    if (!strcmp("vkCmdCuLaunchKernelNVX", name)) {
13155
0
        *addr = (void *)CmdCuLaunchKernelNVX;
13156
0
        return true;
13157
0
    }
13158
13159
    // ---- VK_NVX_image_view_handle extension commands
13160
0
    if (!strcmp("vkGetImageViewHandleNVX", name)) {
13161
0
        *addr = (void *)GetImageViewHandleNVX;
13162
0
        return true;
13163
0
    }
13164
0
    if (!strcmp("vkGetImageViewHandle64NVX", name)) {
13165
0
        *addr = (void *)GetImageViewHandle64NVX;
13166
0
        return true;
13167
0
    }
13168
0
    if (!strcmp("vkGetImageViewAddressNVX", name)) {
13169
0
        *addr = (void *)GetImageViewAddressNVX;
13170
0
        return true;
13171
0
    }
13172
0
    if (!strcmp("vkGetDeviceCombinedImageSamplerIndexNVX", name)) {
13173
0
        *addr = (void *)GetDeviceCombinedImageSamplerIndexNVX;
13174
0
        return true;
13175
0
    }
13176
13177
    // ---- VK_AMD_draw_indirect_count extension commands
13178
0
    if (!strcmp("vkCmdDrawIndirectCountAMD", name)) {
13179
0
        *addr = (void *)CmdDrawIndirectCountAMD;
13180
0
        return true;
13181
0
    }
13182
0
    if (!strcmp("vkCmdDrawIndexedIndirectCountAMD", name)) {
13183
0
        *addr = (void *)CmdDrawIndexedIndirectCountAMD;
13184
0
        return true;
13185
0
    }
13186
13187
    // ---- VK_AMD_shader_info extension commands
13188
0
    if (!strcmp("vkGetShaderInfoAMD", name)) {
13189
0
        *addr = (void *)GetShaderInfoAMD;
13190
0
        return true;
13191
0
    }
13192
13193
    // ---- VK_NV_external_memory_capabilities extension commands
13194
0
    if (!strcmp("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", name)) {
13195
0
        *addr = (ptr_instance->enabled_extensions.nv_external_memory_capabilities == 1)
13196
0
                     ? (void *)GetPhysicalDeviceExternalImageFormatPropertiesNV
13197
0
                     : NULL;
13198
0
        return true;
13199
0
    }
13200
13201
    // ---- VK_NV_external_memory_win32 extension commands
13202
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13203
    if (!strcmp("vkGetMemoryWin32HandleNV", name)) {
13204
        *addr = (void *)GetMemoryWin32HandleNV;
13205
        return true;
13206
    }
13207
#endif // VK_USE_PLATFORM_WIN32_KHR
13208
13209
    // ---- VK_EXT_conditional_rendering extension commands
13210
0
    if (!strcmp("vkCmdBeginConditionalRenderingEXT", name)) {
13211
0
        *addr = (void *)CmdBeginConditionalRenderingEXT;
13212
0
        return true;
13213
0
    }
13214
0
    if (!strcmp("vkCmdEndConditionalRenderingEXT", name)) {
13215
0
        *addr = (void *)CmdEndConditionalRenderingEXT;
13216
0
        return true;
13217
0
    }
13218
13219
    // ---- VK_NV_clip_space_w_scaling extension commands
13220
0
    if (!strcmp("vkCmdSetViewportWScalingNV", name)) {
13221
0
        *addr = (void *)CmdSetViewportWScalingNV;
13222
0
        return true;
13223
0
    }
13224
13225
    // ---- VK_EXT_direct_mode_display extension commands
13226
0
    if (!strcmp("vkReleaseDisplayEXT", name)) {
13227
0
        *addr = (ptr_instance->enabled_extensions.ext_direct_mode_display == 1)
13228
0
                     ? (void *)ReleaseDisplayEXT
13229
0
                     : NULL;
13230
0
        return true;
13231
0
    }
13232
13233
    // ---- VK_EXT_acquire_xlib_display extension commands
13234
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
13235
0
    if (!strcmp("vkAcquireXlibDisplayEXT", name)) {
13236
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_xlib_display == 1)
13237
0
                     ? (void *)AcquireXlibDisplayEXT
13238
0
                     : NULL;
13239
0
        return true;
13240
0
    }
13241
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
13242
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
13243
0
    if (!strcmp("vkGetRandROutputDisplayEXT", name)) {
13244
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_xlib_display == 1)
13245
0
                     ? (void *)GetRandROutputDisplayEXT
13246
0
                     : NULL;
13247
0
        return true;
13248
0
    }
13249
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
13250
13251
    // ---- VK_EXT_display_surface_counter extension commands
13252
0
    if (!strcmp("vkGetPhysicalDeviceSurfaceCapabilities2EXT", name)) {
13253
0
        *addr = (ptr_instance->enabled_extensions.ext_display_surface_counter == 1)
13254
0
                     ? (void *)GetPhysicalDeviceSurfaceCapabilities2EXT
13255
0
                     : NULL;
13256
0
        return true;
13257
0
    }
13258
13259
    // ---- VK_EXT_display_control extension commands
13260
0
    if (!strcmp("vkDisplayPowerControlEXT", name)) {
13261
0
        *addr = (void *)DisplayPowerControlEXT;
13262
0
        return true;
13263
0
    }
13264
0
    if (!strcmp("vkRegisterDeviceEventEXT", name)) {
13265
0
        *addr = (void *)RegisterDeviceEventEXT;
13266
0
        return true;
13267
0
    }
13268
0
    if (!strcmp("vkRegisterDisplayEventEXT", name)) {
13269
0
        *addr = (void *)RegisterDisplayEventEXT;
13270
0
        return true;
13271
0
    }
13272
0
    if (!strcmp("vkGetSwapchainCounterEXT", name)) {
13273
0
        *addr = (void *)GetSwapchainCounterEXT;
13274
0
        return true;
13275
0
    }
13276
13277
    // ---- VK_GOOGLE_display_timing extension commands
13278
0
    if (!strcmp("vkGetRefreshCycleDurationGOOGLE", name)) {
13279
0
        *addr = (void *)GetRefreshCycleDurationGOOGLE;
13280
0
        return true;
13281
0
    }
13282
0
    if (!strcmp("vkGetPastPresentationTimingGOOGLE", name)) {
13283
0
        *addr = (void *)GetPastPresentationTimingGOOGLE;
13284
0
        return true;
13285
0
    }
13286
13287
    // ---- VK_EXT_discard_rectangles extension commands
13288
0
    if (!strcmp("vkCmdSetDiscardRectangleEXT", name)) {
13289
0
        *addr = (void *)CmdSetDiscardRectangleEXT;
13290
0
        return true;
13291
0
    }
13292
0
    if (!strcmp("vkCmdSetDiscardRectangleEnableEXT", name)) {
13293
0
        *addr = (void *)CmdSetDiscardRectangleEnableEXT;
13294
0
        return true;
13295
0
    }
13296
0
    if (!strcmp("vkCmdSetDiscardRectangleModeEXT", name)) {
13297
0
        *addr = (void *)CmdSetDiscardRectangleModeEXT;
13298
0
        return true;
13299
0
    }
13300
13301
    // ---- VK_EXT_hdr_metadata extension commands
13302
0
    if (!strcmp("vkSetHdrMetadataEXT", name)) {
13303
0
        *addr = (void *)SetHdrMetadataEXT;
13304
0
        return true;
13305
0
    }
13306
13307
    // ---- VK_EXT_debug_utils extension commands
13308
0
    if (!strcmp("vkSetDebugUtilsObjectNameEXT", name)) {
13309
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
13310
0
                     ? (void *)SetDebugUtilsObjectNameEXT
13311
0
                     : NULL;
13312
0
        return true;
13313
0
    }
13314
0
    if (!strcmp("vkSetDebugUtilsObjectTagEXT", name)) {
13315
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
13316
0
                     ? (void *)SetDebugUtilsObjectTagEXT
13317
0
                     : NULL;
13318
0
        return true;
13319
0
    }
13320
0
    if (!strcmp("vkQueueBeginDebugUtilsLabelEXT", name)) {
13321
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
13322
0
                     ? (void *)QueueBeginDebugUtilsLabelEXT
13323
0
                     : NULL;
13324
0
        return true;
13325
0
    }
13326
0
    if (!strcmp("vkQueueEndDebugUtilsLabelEXT", name)) {
13327
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
13328
0
                     ? (void *)QueueEndDebugUtilsLabelEXT
13329
0
                     : NULL;
13330
0
        return true;
13331
0
    }
13332
0
    if (!strcmp("vkQueueInsertDebugUtilsLabelEXT", name)) {
13333
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
13334
0
                     ? (void *)QueueInsertDebugUtilsLabelEXT
13335
0
                     : NULL;
13336
0
        return true;
13337
0
    }
13338
0
    if (!strcmp("vkCmdBeginDebugUtilsLabelEXT", name)) {
13339
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
13340
0
                     ? (void *)CmdBeginDebugUtilsLabelEXT
13341
0
                     : NULL;
13342
0
        return true;
13343
0
    }
13344
0
    if (!strcmp("vkCmdEndDebugUtilsLabelEXT", name)) {
13345
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
13346
0
                     ? (void *)CmdEndDebugUtilsLabelEXT
13347
0
                     : NULL;
13348
0
        return true;
13349
0
    }
13350
0
    if (!strcmp("vkCmdInsertDebugUtilsLabelEXT", name)) {
13351
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
13352
0
                     ? (void *)CmdInsertDebugUtilsLabelEXT
13353
0
                     : NULL;
13354
0
        return true;
13355
0
    }
13356
13357
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
13358
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
13359
    if (!strcmp("vkGetAndroidHardwareBufferPropertiesANDROID", name)) {
13360
        *addr = (void *)GetAndroidHardwareBufferPropertiesANDROID;
13361
        return true;
13362
    }
13363
#endif // VK_USE_PLATFORM_ANDROID_KHR
13364
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
13365
    if (!strcmp("vkGetMemoryAndroidHardwareBufferANDROID", name)) {
13366
        *addr = (void *)GetMemoryAndroidHardwareBufferANDROID;
13367
        return true;
13368
    }
13369
#endif // VK_USE_PLATFORM_ANDROID_KHR
13370
13371
    // ---- VK_AMDX_shader_enqueue extension commands
13372
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13373
0
    if (!strcmp("vkCreateExecutionGraphPipelinesAMDX", name)) {
13374
0
        *addr = (void *)CreateExecutionGraphPipelinesAMDX;
13375
0
        return true;
13376
0
    }
13377
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13378
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13379
0
    if (!strcmp("vkGetExecutionGraphPipelineScratchSizeAMDX", name)) {
13380
0
        *addr = (void *)GetExecutionGraphPipelineScratchSizeAMDX;
13381
0
        return true;
13382
0
    }
13383
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13384
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13385
0
    if (!strcmp("vkGetExecutionGraphPipelineNodeIndexAMDX", name)) {
13386
0
        *addr = (void *)GetExecutionGraphPipelineNodeIndexAMDX;
13387
0
        return true;
13388
0
    }
13389
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13390
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13391
0
    if (!strcmp("vkCmdInitializeGraphScratchMemoryAMDX", name)) {
13392
0
        *addr = (void *)CmdInitializeGraphScratchMemoryAMDX;
13393
0
        return true;
13394
0
    }
13395
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13396
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13397
0
    if (!strcmp("vkCmdDispatchGraphAMDX", name)) {
13398
0
        *addr = (void *)CmdDispatchGraphAMDX;
13399
0
        return true;
13400
0
    }
13401
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13402
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13403
0
    if (!strcmp("vkCmdDispatchGraphIndirectAMDX", name)) {
13404
0
        *addr = (void *)CmdDispatchGraphIndirectAMDX;
13405
0
        return true;
13406
0
    }
13407
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13408
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13409
0
    if (!strcmp("vkCmdDispatchGraphIndirectCountAMDX", name)) {
13410
0
        *addr = (void *)CmdDispatchGraphIndirectCountAMDX;
13411
0
        return true;
13412
0
    }
13413
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13414
13415
    // ---- VK_EXT_descriptor_heap extension commands
13416
0
    if (!strcmp("vkWriteSamplerDescriptorsEXT", name)) {
13417
0
        *addr = (void *)WriteSamplerDescriptorsEXT;
13418
0
        return true;
13419
0
    }
13420
0
    if (!strcmp("vkWriteResourceDescriptorsEXT", name)) {
13421
0
        *addr = (void *)WriteResourceDescriptorsEXT;
13422
0
        return true;
13423
0
    }
13424
0
    if (!strcmp("vkCmdBindSamplerHeapEXT", name)) {
13425
0
        *addr = (void *)CmdBindSamplerHeapEXT;
13426
0
        return true;
13427
0
    }
13428
0
    if (!strcmp("vkCmdBindResourceHeapEXT", name)) {
13429
0
        *addr = (void *)CmdBindResourceHeapEXT;
13430
0
        return true;
13431
0
    }
13432
0
    if (!strcmp("vkCmdPushDataEXT", name)) {
13433
0
        *addr = (void *)CmdPushDataEXT;
13434
0
        return true;
13435
0
    }
13436
0
    if (!strcmp("vkGetImageOpaqueCaptureDataEXT", name)) {
13437
0
        *addr = (void *)GetImageOpaqueCaptureDataEXT;
13438
0
        return true;
13439
0
    }
13440
0
    if (!strcmp("vkGetPhysicalDeviceDescriptorSizeEXT", name)) {
13441
0
        *addr = (void *)GetPhysicalDeviceDescriptorSizeEXT;
13442
0
        return true;
13443
0
    }
13444
0
    if (!strcmp("vkRegisterCustomBorderColorEXT", name)) {
13445
0
        *addr = (void *)RegisterCustomBorderColorEXT;
13446
0
        return true;
13447
0
    }
13448
0
    if (!strcmp("vkUnregisterCustomBorderColorEXT", name)) {
13449
0
        *addr = (void *)UnregisterCustomBorderColorEXT;
13450
0
        return true;
13451
0
    }
13452
0
    if (!strcmp("vkGetTensorOpaqueCaptureDataARM", name)) {
13453
0
        *addr = (void *)GetTensorOpaqueCaptureDataARM;
13454
0
        return true;
13455
0
    }
13456
13457
    // ---- VK_EXT_sample_locations extension commands
13458
0
    if (!strcmp("vkCmdSetSampleLocationsEXT", name)) {
13459
0
        *addr = (void *)CmdSetSampleLocationsEXT;
13460
0
        return true;
13461
0
    }
13462
0
    if (!strcmp("vkGetPhysicalDeviceMultisamplePropertiesEXT", name)) {
13463
0
        *addr = (void *)GetPhysicalDeviceMultisamplePropertiesEXT;
13464
0
        return true;
13465
0
    }
13466
13467
    // ---- VK_EXT_image_drm_format_modifier extension commands
13468
0
    if (!strcmp("vkGetImageDrmFormatModifierPropertiesEXT", name)) {
13469
0
        *addr = (void *)GetImageDrmFormatModifierPropertiesEXT;
13470
0
        return true;
13471
0
    }
13472
13473
    // ---- VK_EXT_validation_cache extension commands
13474
0
    if (!strcmp("vkCreateValidationCacheEXT", name)) {
13475
0
        *addr = (void *)CreateValidationCacheEXT;
13476
0
        return true;
13477
0
    }
13478
0
    if (!strcmp("vkDestroyValidationCacheEXT", name)) {
13479
0
        *addr = (void *)DestroyValidationCacheEXT;
13480
0
        return true;
13481
0
    }
13482
0
    if (!strcmp("vkMergeValidationCachesEXT", name)) {
13483
0
        *addr = (void *)MergeValidationCachesEXT;
13484
0
        return true;
13485
0
    }
13486
0
    if (!strcmp("vkGetValidationCacheDataEXT", name)) {
13487
0
        *addr = (void *)GetValidationCacheDataEXT;
13488
0
        return true;
13489
0
    }
13490
13491
    // ---- VK_NV_shading_rate_image extension commands
13492
0
    if (!strcmp("vkCmdBindShadingRateImageNV", name)) {
13493
0
        *addr = (void *)CmdBindShadingRateImageNV;
13494
0
        return true;
13495
0
    }
13496
0
    if (!strcmp("vkCmdSetViewportShadingRatePaletteNV", name)) {
13497
0
        *addr = (void *)CmdSetViewportShadingRatePaletteNV;
13498
0
        return true;
13499
0
    }
13500
0
    if (!strcmp("vkCmdSetCoarseSampleOrderNV", name)) {
13501
0
        *addr = (void *)CmdSetCoarseSampleOrderNV;
13502
0
        return true;
13503
0
    }
13504
13505
    // ---- VK_NV_ray_tracing extension commands
13506
0
    if (!strcmp("vkCreateAccelerationStructureNV", name)) {
13507
0
        *addr = (void *)CreateAccelerationStructureNV;
13508
0
        return true;
13509
0
    }
13510
0
    if (!strcmp("vkDestroyAccelerationStructureNV", name)) {
13511
0
        *addr = (void *)DestroyAccelerationStructureNV;
13512
0
        return true;
13513
0
    }
13514
0
    if (!strcmp("vkGetAccelerationStructureMemoryRequirementsNV", name)) {
13515
0
        *addr = (void *)GetAccelerationStructureMemoryRequirementsNV;
13516
0
        return true;
13517
0
    }
13518
0
    if (!strcmp("vkBindAccelerationStructureMemoryNV", name)) {
13519
0
        *addr = (void *)BindAccelerationStructureMemoryNV;
13520
0
        return true;
13521
0
    }
13522
0
    if (!strcmp("vkCmdBuildAccelerationStructureNV", name)) {
13523
0
        *addr = (void *)CmdBuildAccelerationStructureNV;
13524
0
        return true;
13525
0
    }
13526
0
    if (!strcmp("vkCmdCopyAccelerationStructureNV", name)) {
13527
0
        *addr = (void *)CmdCopyAccelerationStructureNV;
13528
0
        return true;
13529
0
    }
13530
0
    if (!strcmp("vkCmdTraceRaysNV", name)) {
13531
0
        *addr = (void *)CmdTraceRaysNV;
13532
0
        return true;
13533
0
    }
13534
0
    if (!strcmp("vkCreateRayTracingPipelinesNV", name)) {
13535
0
        *addr = (void *)CreateRayTracingPipelinesNV;
13536
0
        return true;
13537
0
    }
13538
13539
    // ---- VK_KHR_ray_tracing_pipeline extension commands
13540
0
    if (!strcmp("vkGetRayTracingShaderGroupHandlesKHR", name)) {
13541
0
        *addr = (void *)GetRayTracingShaderGroupHandlesKHR;
13542
0
        return true;
13543
0
    }
13544
13545
    // ---- VK_NV_ray_tracing extension commands
13546
0
    if (!strcmp("vkGetRayTracingShaderGroupHandlesNV", name)) {
13547
0
        *addr = (void *)GetRayTracingShaderGroupHandlesNV;
13548
0
        return true;
13549
0
    }
13550
0
    if (!strcmp("vkGetAccelerationStructureHandleNV", name)) {
13551
0
        *addr = (void *)GetAccelerationStructureHandleNV;
13552
0
        return true;
13553
0
    }
13554
0
    if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesNV", name)) {
13555
0
        *addr = (void *)CmdWriteAccelerationStructuresPropertiesNV;
13556
0
        return true;
13557
0
    }
13558
0
    if (!strcmp("vkCompileDeferredNV", name)) {
13559
0
        *addr = (void *)CompileDeferredNV;
13560
0
        return true;
13561
0
    }
13562
13563
    // ---- VK_EXT_external_memory_host extension commands
13564
0
    if (!strcmp("vkGetMemoryHostPointerPropertiesEXT", name)) {
13565
0
        *addr = (void *)GetMemoryHostPointerPropertiesEXT;
13566
0
        return true;
13567
0
    }
13568
13569
    // ---- VK_AMD_buffer_marker extension commands
13570
0
    if (!strcmp("vkCmdWriteBufferMarkerAMD", name)) {
13571
0
        *addr = (void *)CmdWriteBufferMarkerAMD;
13572
0
        return true;
13573
0
    }
13574
0
    if (!strcmp("vkCmdWriteBufferMarker2AMD", name)) {
13575
0
        *addr = (void *)CmdWriteBufferMarker2AMD;
13576
0
        return true;
13577
0
    }
13578
13579
    // ---- VK_EXT_calibrated_timestamps extension commands
13580
0
    if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", name)) {
13581
0
        *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsEXT;
13582
0
        return true;
13583
0
    }
13584
0
    if (!strcmp("vkGetCalibratedTimestampsEXT", name)) {
13585
0
        *addr = (void *)GetCalibratedTimestampsEXT;
13586
0
        return true;
13587
0
    }
13588
13589
    // ---- VK_NV_mesh_shader extension commands
13590
0
    if (!strcmp("vkCmdDrawMeshTasksNV", name)) {
13591
0
        *addr = (void *)CmdDrawMeshTasksNV;
13592
0
        return true;
13593
0
    }
13594
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectNV", name)) {
13595
0
        *addr = (void *)CmdDrawMeshTasksIndirectNV;
13596
0
        return true;
13597
0
    }
13598
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectCountNV", name)) {
13599
0
        *addr = (void *)CmdDrawMeshTasksIndirectCountNV;
13600
0
        return true;
13601
0
    }
13602
13603
    // ---- VK_NV_scissor_exclusive extension commands
13604
0
    if (!strcmp("vkCmdSetExclusiveScissorEnableNV", name)) {
13605
0
        *addr = (void *)CmdSetExclusiveScissorEnableNV;
13606
0
        return true;
13607
0
    }
13608
0
    if (!strcmp("vkCmdSetExclusiveScissorNV", name)) {
13609
0
        *addr = (void *)CmdSetExclusiveScissorNV;
13610
0
        return true;
13611
0
    }
13612
13613
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
13614
0
    if (!strcmp("vkCmdSetCheckpointNV", name)) {
13615
0
        *addr = (void *)CmdSetCheckpointNV;
13616
0
        return true;
13617
0
    }
13618
0
    if (!strcmp("vkGetQueueCheckpointDataNV", name)) {
13619
0
        *addr = (void *)GetQueueCheckpointDataNV;
13620
0
        return true;
13621
0
    }
13622
0
    if (!strcmp("vkGetQueueCheckpointData2NV", name)) {
13623
0
        *addr = (void *)GetQueueCheckpointData2NV;
13624
0
        return true;
13625
0
    }
13626
13627
    // ---- VK_EXT_present_timing extension commands
13628
0
    if (!strcmp("vkSetSwapchainPresentTimingQueueSizeEXT", name)) {
13629
0
        *addr = (void *)SetSwapchainPresentTimingQueueSizeEXT;
13630
0
        return true;
13631
0
    }
13632
0
    if (!strcmp("vkGetSwapchainTimingPropertiesEXT", name)) {
13633
0
        *addr = (void *)GetSwapchainTimingPropertiesEXT;
13634
0
        return true;
13635
0
    }
13636
0
    if (!strcmp("vkGetSwapchainTimeDomainPropertiesEXT", name)) {
13637
0
        *addr = (void *)GetSwapchainTimeDomainPropertiesEXT;
13638
0
        return true;
13639
0
    }
13640
0
    if (!strcmp("vkGetPastPresentationTimingEXT", name)) {
13641
0
        *addr = (void *)GetPastPresentationTimingEXT;
13642
0
        return true;
13643
0
    }
13644
13645
    // ---- VK_INTEL_performance_query extension commands
13646
0
    if (!strcmp("vkInitializePerformanceApiINTEL", name)) {
13647
0
        *addr = (void *)InitializePerformanceApiINTEL;
13648
0
        return true;
13649
0
    }
13650
0
    if (!strcmp("vkUninitializePerformanceApiINTEL", name)) {
13651
0
        *addr = (void *)UninitializePerformanceApiINTEL;
13652
0
        return true;
13653
0
    }
13654
0
    if (!strcmp("vkCmdSetPerformanceMarkerINTEL", name)) {
13655
0
        *addr = (void *)CmdSetPerformanceMarkerINTEL;
13656
0
        return true;
13657
0
    }
13658
0
    if (!strcmp("vkCmdSetPerformanceStreamMarkerINTEL", name)) {
13659
0
        *addr = (void *)CmdSetPerformanceStreamMarkerINTEL;
13660
0
        return true;
13661
0
    }
13662
0
    if (!strcmp("vkCmdSetPerformanceOverrideINTEL", name)) {
13663
0
        *addr = (void *)CmdSetPerformanceOverrideINTEL;
13664
0
        return true;
13665
0
    }
13666
0
    if (!strcmp("vkAcquirePerformanceConfigurationINTEL", name)) {
13667
0
        *addr = (void *)AcquirePerformanceConfigurationINTEL;
13668
0
        return true;
13669
0
    }
13670
0
    if (!strcmp("vkReleasePerformanceConfigurationINTEL", name)) {
13671
0
        *addr = (void *)ReleasePerformanceConfigurationINTEL;
13672
0
        return true;
13673
0
    }
13674
0
    if (!strcmp("vkQueueSetPerformanceConfigurationINTEL", name)) {
13675
0
        *addr = (void *)QueueSetPerformanceConfigurationINTEL;
13676
0
        return true;
13677
0
    }
13678
0
    if (!strcmp("vkGetPerformanceParameterINTEL", name)) {
13679
0
        *addr = (void *)GetPerformanceParameterINTEL;
13680
0
        return true;
13681
0
    }
13682
13683
    // ---- VK_AMD_display_native_hdr extension commands
13684
0
    if (!strcmp("vkSetLocalDimmingAMD", name)) {
13685
0
        *addr = (void *)SetLocalDimmingAMD;
13686
0
        return true;
13687
0
    }
13688
13689
    // ---- VK_EXT_buffer_device_address extension commands
13690
0
    if (!strcmp("vkGetBufferDeviceAddressEXT", name)) {
13691
0
        *addr = (void *)GetBufferDeviceAddressEXT;
13692
0
        return true;
13693
0
    }
13694
13695
    // ---- VK_EXT_tooling_info extension commands
13696
0
    if (!strcmp("vkGetPhysicalDeviceToolPropertiesEXT", name)) {
13697
0
        *addr = (void *)GetPhysicalDeviceToolPropertiesEXT;
13698
0
        return true;
13699
0
    }
13700
13701
    // ---- VK_NV_cooperative_matrix extension commands
13702
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", name)) {
13703
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesNV;
13704
0
        return true;
13705
0
    }
13706
13707
    // ---- VK_NV_coverage_reduction_mode extension commands
13708
0
    if (!strcmp("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", name)) {
13709
0
        *addr = (void *)GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
13710
0
        return true;
13711
0
    }
13712
13713
    // ---- VK_EXT_full_screen_exclusive extension commands
13714
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13715
    if (!strcmp("vkGetPhysicalDeviceSurfacePresentModes2EXT", name)) {
13716
        *addr = (void *)GetPhysicalDeviceSurfacePresentModes2EXT;
13717
        return true;
13718
    }
13719
#endif // VK_USE_PLATFORM_WIN32_KHR
13720
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13721
    if (!strcmp("vkAcquireFullScreenExclusiveModeEXT", name)) {
13722
        *addr = (void *)AcquireFullScreenExclusiveModeEXT;
13723
        return true;
13724
    }
13725
#endif // VK_USE_PLATFORM_WIN32_KHR
13726
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13727
    if (!strcmp("vkReleaseFullScreenExclusiveModeEXT", name)) {
13728
        *addr = (void *)ReleaseFullScreenExclusiveModeEXT;
13729
        return true;
13730
    }
13731
#endif // VK_USE_PLATFORM_WIN32_KHR
13732
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13733
    if (!strcmp("vkGetDeviceGroupSurfacePresentModes2EXT", name)) {
13734
        *addr = (void *)GetDeviceGroupSurfacePresentModes2EXT;
13735
        return true;
13736
    }
13737
#endif // VK_USE_PLATFORM_WIN32_KHR
13738
13739
    // ---- VK_EXT_line_rasterization extension commands
13740
0
    if (!strcmp("vkCmdSetLineStippleEXT", name)) {
13741
0
        *addr = (void *)CmdSetLineStippleEXT;
13742
0
        return true;
13743
0
    }
13744
13745
    // ---- VK_EXT_host_query_reset extension commands
13746
0
    if (!strcmp("vkResetQueryPoolEXT", name)) {
13747
0
        *addr = (void *)ResetQueryPoolEXT;
13748
0
        return true;
13749
0
    }
13750
13751
    // ---- VK_EXT_extended_dynamic_state extension commands
13752
0
    if (!strcmp("vkCmdSetCullModeEXT", name)) {
13753
0
        *addr = (void *)CmdSetCullModeEXT;
13754
0
        return true;
13755
0
    }
13756
0
    if (!strcmp("vkCmdSetFrontFaceEXT", name)) {
13757
0
        *addr = (void *)CmdSetFrontFaceEXT;
13758
0
        return true;
13759
0
    }
13760
0
    if (!strcmp("vkCmdSetPrimitiveTopologyEXT", name)) {
13761
0
        *addr = (void *)CmdSetPrimitiveTopologyEXT;
13762
0
        return true;
13763
0
    }
13764
0
    if (!strcmp("vkCmdSetViewportWithCountEXT", name)) {
13765
0
        *addr = (void *)CmdSetViewportWithCountEXT;
13766
0
        return true;
13767
0
    }
13768
0
    if (!strcmp("vkCmdSetScissorWithCountEXT", name)) {
13769
0
        *addr = (void *)CmdSetScissorWithCountEXT;
13770
0
        return true;
13771
0
    }
13772
0
    if (!strcmp("vkCmdBindVertexBuffers2EXT", name)) {
13773
0
        *addr = (void *)CmdBindVertexBuffers2EXT;
13774
0
        return true;
13775
0
    }
13776
0
    if (!strcmp("vkCmdSetDepthTestEnableEXT", name)) {
13777
0
        *addr = (void *)CmdSetDepthTestEnableEXT;
13778
0
        return true;
13779
0
    }
13780
0
    if (!strcmp("vkCmdSetDepthWriteEnableEXT", name)) {
13781
0
        *addr = (void *)CmdSetDepthWriteEnableEXT;
13782
0
        return true;
13783
0
    }
13784
0
    if (!strcmp("vkCmdSetDepthCompareOpEXT", name)) {
13785
0
        *addr = (void *)CmdSetDepthCompareOpEXT;
13786
0
        return true;
13787
0
    }
13788
0
    if (!strcmp("vkCmdSetDepthBoundsTestEnableEXT", name)) {
13789
0
        *addr = (void *)CmdSetDepthBoundsTestEnableEXT;
13790
0
        return true;
13791
0
    }
13792
0
    if (!strcmp("vkCmdSetStencilTestEnableEXT", name)) {
13793
0
        *addr = (void *)CmdSetStencilTestEnableEXT;
13794
0
        return true;
13795
0
    }
13796
0
    if (!strcmp("vkCmdSetStencilOpEXT", name)) {
13797
0
        *addr = (void *)CmdSetStencilOpEXT;
13798
0
        return true;
13799
0
    }
13800
13801
    // ---- VK_EXT_host_image_copy extension commands
13802
0
    if (!strcmp("vkCopyMemoryToImageEXT", name)) {
13803
0
        *addr = (void *)CopyMemoryToImageEXT;
13804
0
        return true;
13805
0
    }
13806
0
    if (!strcmp("vkCopyImageToMemoryEXT", name)) {
13807
0
        *addr = (void *)CopyImageToMemoryEXT;
13808
0
        return true;
13809
0
    }
13810
0
    if (!strcmp("vkCopyImageToImageEXT", name)) {
13811
0
        *addr = (void *)CopyImageToImageEXT;
13812
0
        return true;
13813
0
    }
13814
0
    if (!strcmp("vkTransitionImageLayoutEXT", name)) {
13815
0
        *addr = (void *)TransitionImageLayoutEXT;
13816
0
        return true;
13817
0
    }
13818
0
    if (!strcmp("vkGetImageSubresourceLayout2EXT", name)) {
13819
0
        *addr = (void *)GetImageSubresourceLayout2EXT;
13820
0
        return true;
13821
0
    }
13822
13823
    // ---- VK_EXT_swapchain_maintenance1 extension commands
13824
0
    if (!strcmp("vkReleaseSwapchainImagesEXT", name)) {
13825
0
        *addr = (void *)ReleaseSwapchainImagesEXT;
13826
0
        return true;
13827
0
    }
13828
13829
    // ---- VK_NV_device_generated_commands extension commands
13830
0
    if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsNV", name)) {
13831
0
        *addr = (void *)GetGeneratedCommandsMemoryRequirementsNV;
13832
0
        return true;
13833
0
    }
13834
0
    if (!strcmp("vkCmdPreprocessGeneratedCommandsNV", name)) {
13835
0
        *addr = (void *)CmdPreprocessGeneratedCommandsNV;
13836
0
        return true;
13837
0
    }
13838
0
    if (!strcmp("vkCmdExecuteGeneratedCommandsNV", name)) {
13839
0
        *addr = (void *)CmdExecuteGeneratedCommandsNV;
13840
0
        return true;
13841
0
    }
13842
0
    if (!strcmp("vkCmdBindPipelineShaderGroupNV", name)) {
13843
0
        *addr = (void *)CmdBindPipelineShaderGroupNV;
13844
0
        return true;
13845
0
    }
13846
0
    if (!strcmp("vkCreateIndirectCommandsLayoutNV", name)) {
13847
0
        *addr = (void *)CreateIndirectCommandsLayoutNV;
13848
0
        return true;
13849
0
    }
13850
0
    if (!strcmp("vkDestroyIndirectCommandsLayoutNV", name)) {
13851
0
        *addr = (void *)DestroyIndirectCommandsLayoutNV;
13852
0
        return true;
13853
0
    }
13854
13855
    // ---- VK_EXT_depth_bias_control extension commands
13856
0
    if (!strcmp("vkCmdSetDepthBias2EXT", name)) {
13857
0
        *addr = (void *)CmdSetDepthBias2EXT;
13858
0
        return true;
13859
0
    }
13860
13861
    // ---- VK_EXT_acquire_drm_display extension commands
13862
0
    if (!strcmp("vkAcquireDrmDisplayEXT", name)) {
13863
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_drm_display == 1)
13864
0
                     ? (void *)AcquireDrmDisplayEXT
13865
0
                     : NULL;
13866
0
        return true;
13867
0
    }
13868
0
    if (!strcmp("vkGetDrmDisplayEXT", name)) {
13869
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_drm_display == 1)
13870
0
                     ? (void *)GetDrmDisplayEXT
13871
0
                     : NULL;
13872
0
        return true;
13873
0
    }
13874
13875
    // ---- VK_EXT_private_data extension commands
13876
0
    if (!strcmp("vkCreatePrivateDataSlotEXT", name)) {
13877
0
        *addr = (void *)CreatePrivateDataSlotEXT;
13878
0
        return true;
13879
0
    }
13880
0
    if (!strcmp("vkDestroyPrivateDataSlotEXT", name)) {
13881
0
        *addr = (void *)DestroyPrivateDataSlotEXT;
13882
0
        return true;
13883
0
    }
13884
0
    if (!strcmp("vkSetPrivateDataEXT", name)) {
13885
0
        *addr = (void *)SetPrivateDataEXT;
13886
0
        return true;
13887
0
    }
13888
0
    if (!strcmp("vkGetPrivateDataEXT", name)) {
13889
0
        *addr = (void *)GetPrivateDataEXT;
13890
0
        return true;
13891
0
    }
13892
13893
    // ---- VK_NV_cuda_kernel_launch extension commands
13894
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13895
0
    if (!strcmp("vkCreateCudaModuleNV", name)) {
13896
0
        *addr = (void *)CreateCudaModuleNV;
13897
0
        return true;
13898
0
    }
13899
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13900
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13901
0
    if (!strcmp("vkGetCudaModuleCacheNV", name)) {
13902
0
        *addr = (void *)GetCudaModuleCacheNV;
13903
0
        return true;
13904
0
    }
13905
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13906
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13907
0
    if (!strcmp("vkCreateCudaFunctionNV", name)) {
13908
0
        *addr = (void *)CreateCudaFunctionNV;
13909
0
        return true;
13910
0
    }
13911
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13912
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13913
0
    if (!strcmp("vkDestroyCudaModuleNV", name)) {
13914
0
        *addr = (void *)DestroyCudaModuleNV;
13915
0
        return true;
13916
0
    }
13917
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13918
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13919
0
    if (!strcmp("vkDestroyCudaFunctionNV", name)) {
13920
0
        *addr = (void *)DestroyCudaFunctionNV;
13921
0
        return true;
13922
0
    }
13923
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13924
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13925
0
    if (!strcmp("vkCmdCudaLaunchKernelNV", name)) {
13926
0
        *addr = (void *)CmdCudaLaunchKernelNV;
13927
0
        return true;
13928
0
    }
13929
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13930
13931
    // ---- VK_QCOM_tile_shading extension commands
13932
0
    if (!strcmp("vkCmdDispatchTileQCOM", name)) {
13933
0
        *addr = (void *)CmdDispatchTileQCOM;
13934
0
        return true;
13935
0
    }
13936
0
    if (!strcmp("vkCmdBeginPerTileExecutionQCOM", name)) {
13937
0
        *addr = (void *)CmdBeginPerTileExecutionQCOM;
13938
0
        return true;
13939
0
    }
13940
0
    if (!strcmp("vkCmdEndPerTileExecutionQCOM", name)) {
13941
0
        *addr = (void *)CmdEndPerTileExecutionQCOM;
13942
0
        return true;
13943
0
    }
13944
13945
    // ---- VK_EXT_metal_objects extension commands
13946
#if defined(VK_USE_PLATFORM_METAL_EXT)
13947
    if (!strcmp("vkExportMetalObjectsEXT", name)) {
13948
        *addr = (void *)ExportMetalObjectsEXT;
13949
        return true;
13950
    }
13951
#endif // VK_USE_PLATFORM_METAL_EXT
13952
13953
    // ---- VK_EXT_descriptor_buffer extension commands
13954
0
    if (!strcmp("vkGetDescriptorSetLayoutSizeEXT", name)) {
13955
0
        *addr = (void *)GetDescriptorSetLayoutSizeEXT;
13956
0
        return true;
13957
0
    }
13958
0
    if (!strcmp("vkGetDescriptorSetLayoutBindingOffsetEXT", name)) {
13959
0
        *addr = (void *)GetDescriptorSetLayoutBindingOffsetEXT;
13960
0
        return true;
13961
0
    }
13962
0
    if (!strcmp("vkGetDescriptorEXT", name)) {
13963
0
        *addr = (void *)GetDescriptorEXT;
13964
0
        return true;
13965
0
    }
13966
0
    if (!strcmp("vkCmdBindDescriptorBuffersEXT", name)) {
13967
0
        *addr = (void *)CmdBindDescriptorBuffersEXT;
13968
0
        return true;
13969
0
    }
13970
0
    if (!strcmp("vkCmdSetDescriptorBufferOffsetsEXT", name)) {
13971
0
        *addr = (void *)CmdSetDescriptorBufferOffsetsEXT;
13972
0
        return true;
13973
0
    }
13974
0
    if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplersEXT", name)) {
13975
0
        *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplersEXT;
13976
0
        return true;
13977
0
    }
13978
0
    if (!strcmp("vkGetBufferOpaqueCaptureDescriptorDataEXT", name)) {
13979
0
        *addr = (void *)GetBufferOpaqueCaptureDescriptorDataEXT;
13980
0
        return true;
13981
0
    }
13982
0
    if (!strcmp("vkGetImageOpaqueCaptureDescriptorDataEXT", name)) {
13983
0
        *addr = (void *)GetImageOpaqueCaptureDescriptorDataEXT;
13984
0
        return true;
13985
0
    }
13986
0
    if (!strcmp("vkGetImageViewOpaqueCaptureDescriptorDataEXT", name)) {
13987
0
        *addr = (void *)GetImageViewOpaqueCaptureDescriptorDataEXT;
13988
0
        return true;
13989
0
    }
13990
0
    if (!strcmp("vkGetSamplerOpaqueCaptureDescriptorDataEXT", name)) {
13991
0
        *addr = (void *)GetSamplerOpaqueCaptureDescriptorDataEXT;
13992
0
        return true;
13993
0
    }
13994
0
    if (!strcmp("vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT", name)) {
13995
0
        *addr = (void *)GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
13996
0
        return true;
13997
0
    }
13998
13999
    // ---- VK_NV_fragment_shading_rate_enums extension commands
14000
0
    if (!strcmp("vkCmdSetFragmentShadingRateEnumNV", name)) {
14001
0
        *addr = (void *)CmdSetFragmentShadingRateEnumNV;
14002
0
        return true;
14003
0
    }
14004
14005
    // ---- VK_EXT_device_fault extension commands
14006
0
    if (!strcmp("vkGetDeviceFaultInfoEXT", name)) {
14007
0
        *addr = (void *)GetDeviceFaultInfoEXT;
14008
0
        return true;
14009
0
    }
14010
14011
    // ---- VK_NV_acquire_winrt_display extension commands
14012
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14013
    if (!strcmp("vkAcquireWinrtDisplayNV", name)) {
14014
        *addr = (void *)AcquireWinrtDisplayNV;
14015
        return true;
14016
    }
14017
#endif // VK_USE_PLATFORM_WIN32_KHR
14018
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14019
    if (!strcmp("vkGetWinrtDisplayNV", name)) {
14020
        *addr = (void *)GetWinrtDisplayNV;
14021
        return true;
14022
    }
14023
#endif // VK_USE_PLATFORM_WIN32_KHR
14024
14025
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
14026
0
    if (!strcmp("vkCmdSetVertexInputEXT", name)) {
14027
0
        *addr = (void *)CmdSetVertexInputEXT;
14028
0
        return true;
14029
0
    }
14030
14031
    // ---- VK_FUCHSIA_external_memory extension commands
14032
#if defined(VK_USE_PLATFORM_FUCHSIA)
14033
    if (!strcmp("vkGetMemoryZirconHandleFUCHSIA", name)) {
14034
        *addr = (void *)GetMemoryZirconHandleFUCHSIA;
14035
        return true;
14036
    }
14037
#endif // VK_USE_PLATFORM_FUCHSIA
14038
#if defined(VK_USE_PLATFORM_FUCHSIA)
14039
    if (!strcmp("vkGetMemoryZirconHandlePropertiesFUCHSIA", name)) {
14040
        *addr = (void *)GetMemoryZirconHandlePropertiesFUCHSIA;
14041
        return true;
14042
    }
14043
#endif // VK_USE_PLATFORM_FUCHSIA
14044
14045
    // ---- VK_FUCHSIA_external_semaphore extension commands
14046
#if defined(VK_USE_PLATFORM_FUCHSIA)
14047
    if (!strcmp("vkImportSemaphoreZirconHandleFUCHSIA", name)) {
14048
        *addr = (void *)ImportSemaphoreZirconHandleFUCHSIA;
14049
        return true;
14050
    }
14051
#endif // VK_USE_PLATFORM_FUCHSIA
14052
#if defined(VK_USE_PLATFORM_FUCHSIA)
14053
    if (!strcmp("vkGetSemaphoreZirconHandleFUCHSIA", name)) {
14054
        *addr = (void *)GetSemaphoreZirconHandleFUCHSIA;
14055
        return true;
14056
    }
14057
#endif // VK_USE_PLATFORM_FUCHSIA
14058
14059
    // ---- VK_FUCHSIA_buffer_collection extension commands
14060
#if defined(VK_USE_PLATFORM_FUCHSIA)
14061
    if (!strcmp("vkCreateBufferCollectionFUCHSIA", name)) {
14062
        *addr = (void *)CreateBufferCollectionFUCHSIA;
14063
        return true;
14064
    }
14065
#endif // VK_USE_PLATFORM_FUCHSIA
14066
#if defined(VK_USE_PLATFORM_FUCHSIA)
14067
    if (!strcmp("vkSetBufferCollectionImageConstraintsFUCHSIA", name)) {
14068
        *addr = (void *)SetBufferCollectionImageConstraintsFUCHSIA;
14069
        return true;
14070
    }
14071
#endif // VK_USE_PLATFORM_FUCHSIA
14072
#if defined(VK_USE_PLATFORM_FUCHSIA)
14073
    if (!strcmp("vkSetBufferCollectionBufferConstraintsFUCHSIA", name)) {
14074
        *addr = (void *)SetBufferCollectionBufferConstraintsFUCHSIA;
14075
        return true;
14076
    }
14077
#endif // VK_USE_PLATFORM_FUCHSIA
14078
#if defined(VK_USE_PLATFORM_FUCHSIA)
14079
    if (!strcmp("vkDestroyBufferCollectionFUCHSIA", name)) {
14080
        *addr = (void *)DestroyBufferCollectionFUCHSIA;
14081
        return true;
14082
    }
14083
#endif // VK_USE_PLATFORM_FUCHSIA
14084
#if defined(VK_USE_PLATFORM_FUCHSIA)
14085
    if (!strcmp("vkGetBufferCollectionPropertiesFUCHSIA", name)) {
14086
        *addr = (void *)GetBufferCollectionPropertiesFUCHSIA;
14087
        return true;
14088
    }
14089
#endif // VK_USE_PLATFORM_FUCHSIA
14090
14091
    // ---- VK_HUAWEI_subpass_shading extension commands
14092
0
    if (!strcmp("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", name)) {
14093
0
        *addr = (void *)GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
14094
0
        return true;
14095
0
    }
14096
0
    if (!strcmp("vkCmdSubpassShadingHUAWEI", name)) {
14097
0
        *addr = (void *)CmdSubpassShadingHUAWEI;
14098
0
        return true;
14099
0
    }
14100
14101
    // ---- VK_HUAWEI_invocation_mask extension commands
14102
0
    if (!strcmp("vkCmdBindInvocationMaskHUAWEI", name)) {
14103
0
        *addr = (void *)CmdBindInvocationMaskHUAWEI;
14104
0
        return true;
14105
0
    }
14106
14107
    // ---- VK_NV_external_memory_rdma extension commands
14108
0
    if (!strcmp("vkGetMemoryRemoteAddressNV", name)) {
14109
0
        *addr = (void *)GetMemoryRemoteAddressNV;
14110
0
        return true;
14111
0
    }
14112
14113
    // ---- VK_EXT_pipeline_properties extension commands
14114
0
    if (!strcmp("vkGetPipelinePropertiesEXT", name)) {
14115
0
        *addr = (void *)GetPipelinePropertiesEXT;
14116
0
        return true;
14117
0
    }
14118
14119
    // ---- VK_EXT_extended_dynamic_state2 extension commands
14120
0
    if (!strcmp("vkCmdSetPatchControlPointsEXT", name)) {
14121
0
        *addr = (void *)CmdSetPatchControlPointsEXT;
14122
0
        return true;
14123
0
    }
14124
0
    if (!strcmp("vkCmdSetRasterizerDiscardEnableEXT", name)) {
14125
0
        *addr = (void *)CmdSetRasterizerDiscardEnableEXT;
14126
0
        return true;
14127
0
    }
14128
0
    if (!strcmp("vkCmdSetDepthBiasEnableEXT", name)) {
14129
0
        *addr = (void *)CmdSetDepthBiasEnableEXT;
14130
0
        return true;
14131
0
    }
14132
0
    if (!strcmp("vkCmdSetLogicOpEXT", name)) {
14133
0
        *addr = (void *)CmdSetLogicOpEXT;
14134
0
        return true;
14135
0
    }
14136
0
    if (!strcmp("vkCmdSetPrimitiveRestartEnableEXT", name)) {
14137
0
        *addr = (void *)CmdSetPrimitiveRestartEnableEXT;
14138
0
        return true;
14139
0
    }
14140
14141
    // ---- VK_EXT_color_write_enable extension commands
14142
0
    if (!strcmp("vkCmdSetColorWriteEnableEXT", name)) {
14143
0
        *addr = (void *)CmdSetColorWriteEnableEXT;
14144
0
        return true;
14145
0
    }
14146
14147
    // ---- VK_EXT_multi_draw extension commands
14148
0
    if (!strcmp("vkCmdDrawMultiEXT", name)) {
14149
0
        *addr = (void *)CmdDrawMultiEXT;
14150
0
        return true;
14151
0
    }
14152
0
    if (!strcmp("vkCmdDrawMultiIndexedEXT", name)) {
14153
0
        *addr = (void *)CmdDrawMultiIndexedEXT;
14154
0
        return true;
14155
0
    }
14156
14157
    // ---- VK_EXT_opacity_micromap extension commands
14158
0
    if (!strcmp("vkCreateMicromapEXT", name)) {
14159
0
        *addr = (void *)CreateMicromapEXT;
14160
0
        return true;
14161
0
    }
14162
0
    if (!strcmp("vkDestroyMicromapEXT", name)) {
14163
0
        *addr = (void *)DestroyMicromapEXT;
14164
0
        return true;
14165
0
    }
14166
0
    if (!strcmp("vkCmdBuildMicromapsEXT", name)) {
14167
0
        *addr = (void *)CmdBuildMicromapsEXT;
14168
0
        return true;
14169
0
    }
14170
0
    if (!strcmp("vkBuildMicromapsEXT", name)) {
14171
0
        *addr = (void *)BuildMicromapsEXT;
14172
0
        return true;
14173
0
    }
14174
0
    if (!strcmp("vkCopyMicromapEXT", name)) {
14175
0
        *addr = (void *)CopyMicromapEXT;
14176
0
        return true;
14177
0
    }
14178
0
    if (!strcmp("vkCopyMicromapToMemoryEXT", name)) {
14179
0
        *addr = (void *)CopyMicromapToMemoryEXT;
14180
0
        return true;
14181
0
    }
14182
0
    if (!strcmp("vkCopyMemoryToMicromapEXT", name)) {
14183
0
        *addr = (void *)CopyMemoryToMicromapEXT;
14184
0
        return true;
14185
0
    }
14186
0
    if (!strcmp("vkWriteMicromapsPropertiesEXT", name)) {
14187
0
        *addr = (void *)WriteMicromapsPropertiesEXT;
14188
0
        return true;
14189
0
    }
14190
0
    if (!strcmp("vkCmdCopyMicromapEXT", name)) {
14191
0
        *addr = (void *)CmdCopyMicromapEXT;
14192
0
        return true;
14193
0
    }
14194
0
    if (!strcmp("vkCmdCopyMicromapToMemoryEXT", name)) {
14195
0
        *addr = (void *)CmdCopyMicromapToMemoryEXT;
14196
0
        return true;
14197
0
    }
14198
0
    if (!strcmp("vkCmdCopyMemoryToMicromapEXT", name)) {
14199
0
        *addr = (void *)CmdCopyMemoryToMicromapEXT;
14200
0
        return true;
14201
0
    }
14202
0
    if (!strcmp("vkCmdWriteMicromapsPropertiesEXT", name)) {
14203
0
        *addr = (void *)CmdWriteMicromapsPropertiesEXT;
14204
0
        return true;
14205
0
    }
14206
0
    if (!strcmp("vkGetDeviceMicromapCompatibilityEXT", name)) {
14207
0
        *addr = (void *)GetDeviceMicromapCompatibilityEXT;
14208
0
        return true;
14209
0
    }
14210
0
    if (!strcmp("vkGetMicromapBuildSizesEXT", name)) {
14211
0
        *addr = (void *)GetMicromapBuildSizesEXT;
14212
0
        return true;
14213
0
    }
14214
14215
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
14216
0
    if (!strcmp("vkCmdDrawClusterHUAWEI", name)) {
14217
0
        *addr = (void *)CmdDrawClusterHUAWEI;
14218
0
        return true;
14219
0
    }
14220
0
    if (!strcmp("vkCmdDrawClusterIndirectHUAWEI", name)) {
14221
0
        *addr = (void *)CmdDrawClusterIndirectHUAWEI;
14222
0
        return true;
14223
0
    }
14224
14225
    // ---- VK_EXT_pageable_device_local_memory extension commands
14226
0
    if (!strcmp("vkSetDeviceMemoryPriorityEXT", name)) {
14227
0
        *addr = (void *)SetDeviceMemoryPriorityEXT;
14228
0
        return true;
14229
0
    }
14230
14231
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
14232
0
    if (!strcmp("vkGetDescriptorSetLayoutHostMappingInfoVALVE", name)) {
14233
0
        *addr = (void *)GetDescriptorSetLayoutHostMappingInfoVALVE;
14234
0
        return true;
14235
0
    }
14236
0
    if (!strcmp("vkGetDescriptorSetHostMappingVALVE", name)) {
14237
0
        *addr = (void *)GetDescriptorSetHostMappingVALVE;
14238
0
        return true;
14239
0
    }
14240
14241
    // ---- VK_NV_copy_memory_indirect extension commands
14242
0
    if (!strcmp("vkCmdCopyMemoryIndirectNV", name)) {
14243
0
        *addr = (void *)CmdCopyMemoryIndirectNV;
14244
0
        return true;
14245
0
    }
14246
0
    if (!strcmp("vkCmdCopyMemoryToImageIndirectNV", name)) {
14247
0
        *addr = (void *)CmdCopyMemoryToImageIndirectNV;
14248
0
        return true;
14249
0
    }
14250
14251
    // ---- VK_NV_memory_decompression extension commands
14252
0
    if (!strcmp("vkCmdDecompressMemoryNV", name)) {
14253
0
        *addr = (void *)CmdDecompressMemoryNV;
14254
0
        return true;
14255
0
    }
14256
0
    if (!strcmp("vkCmdDecompressMemoryIndirectCountNV", name)) {
14257
0
        *addr = (void *)CmdDecompressMemoryIndirectCountNV;
14258
0
        return true;
14259
0
    }
14260
14261
    // ---- VK_NV_device_generated_commands_compute extension commands
14262
0
    if (!strcmp("vkGetPipelineIndirectMemoryRequirementsNV", name)) {
14263
0
        *addr = (void *)GetPipelineIndirectMemoryRequirementsNV;
14264
0
        return true;
14265
0
    }
14266
0
    if (!strcmp("vkCmdUpdatePipelineIndirectBufferNV", name)) {
14267
0
        *addr = (void *)CmdUpdatePipelineIndirectBufferNV;
14268
0
        return true;
14269
0
    }
14270
0
    if (!strcmp("vkGetPipelineIndirectDeviceAddressNV", name)) {
14271
0
        *addr = (void *)GetPipelineIndirectDeviceAddressNV;
14272
0
        return true;
14273
0
    }
14274
14275
    // ---- VK_OHOS_external_memory extension commands
14276
#if defined(VK_USE_PLATFORM_OHOS)
14277
    if (!strcmp("vkGetNativeBufferPropertiesOHOS", name)) {
14278
        *addr = (void *)GetNativeBufferPropertiesOHOS;
14279
        return true;
14280
    }
14281
#endif // VK_USE_PLATFORM_OHOS
14282
#if defined(VK_USE_PLATFORM_OHOS)
14283
    if (!strcmp("vkGetMemoryNativeBufferOHOS", name)) {
14284
        *addr = (void *)GetMemoryNativeBufferOHOS;
14285
        return true;
14286
    }
14287
#endif // VK_USE_PLATFORM_OHOS
14288
14289
    // ---- VK_EXT_extended_dynamic_state3 extension commands
14290
0
    if (!strcmp("vkCmdSetDepthClampEnableEXT", name)) {
14291
0
        *addr = (void *)CmdSetDepthClampEnableEXT;
14292
0
        return true;
14293
0
    }
14294
0
    if (!strcmp("vkCmdSetPolygonModeEXT", name)) {
14295
0
        *addr = (void *)CmdSetPolygonModeEXT;
14296
0
        return true;
14297
0
    }
14298
0
    if (!strcmp("vkCmdSetRasterizationSamplesEXT", name)) {
14299
0
        *addr = (void *)CmdSetRasterizationSamplesEXT;
14300
0
        return true;
14301
0
    }
14302
0
    if (!strcmp("vkCmdSetSampleMaskEXT", name)) {
14303
0
        *addr = (void *)CmdSetSampleMaskEXT;
14304
0
        return true;
14305
0
    }
14306
0
    if (!strcmp("vkCmdSetAlphaToCoverageEnableEXT", name)) {
14307
0
        *addr = (void *)CmdSetAlphaToCoverageEnableEXT;
14308
0
        return true;
14309
0
    }
14310
0
    if (!strcmp("vkCmdSetAlphaToOneEnableEXT", name)) {
14311
0
        *addr = (void *)CmdSetAlphaToOneEnableEXT;
14312
0
        return true;
14313
0
    }
14314
0
    if (!strcmp("vkCmdSetLogicOpEnableEXT", name)) {
14315
0
        *addr = (void *)CmdSetLogicOpEnableEXT;
14316
0
        return true;
14317
0
    }
14318
0
    if (!strcmp("vkCmdSetColorBlendEnableEXT", name)) {
14319
0
        *addr = (void *)CmdSetColorBlendEnableEXT;
14320
0
        return true;
14321
0
    }
14322
0
    if (!strcmp("vkCmdSetColorBlendEquationEXT", name)) {
14323
0
        *addr = (void *)CmdSetColorBlendEquationEXT;
14324
0
        return true;
14325
0
    }
14326
0
    if (!strcmp("vkCmdSetColorWriteMaskEXT", name)) {
14327
0
        *addr = (void *)CmdSetColorWriteMaskEXT;
14328
0
        return true;
14329
0
    }
14330
0
    if (!strcmp("vkCmdSetTessellationDomainOriginEXT", name)) {
14331
0
        *addr = (void *)CmdSetTessellationDomainOriginEXT;
14332
0
        return true;
14333
0
    }
14334
0
    if (!strcmp("vkCmdSetRasterizationStreamEXT", name)) {
14335
0
        *addr = (void *)CmdSetRasterizationStreamEXT;
14336
0
        return true;
14337
0
    }
14338
0
    if (!strcmp("vkCmdSetConservativeRasterizationModeEXT", name)) {
14339
0
        *addr = (void *)CmdSetConservativeRasterizationModeEXT;
14340
0
        return true;
14341
0
    }
14342
0
    if (!strcmp("vkCmdSetExtraPrimitiveOverestimationSizeEXT", name)) {
14343
0
        *addr = (void *)CmdSetExtraPrimitiveOverestimationSizeEXT;
14344
0
        return true;
14345
0
    }
14346
0
    if (!strcmp("vkCmdSetDepthClipEnableEXT", name)) {
14347
0
        *addr = (void *)CmdSetDepthClipEnableEXT;
14348
0
        return true;
14349
0
    }
14350
0
    if (!strcmp("vkCmdSetSampleLocationsEnableEXT", name)) {
14351
0
        *addr = (void *)CmdSetSampleLocationsEnableEXT;
14352
0
        return true;
14353
0
    }
14354
0
    if (!strcmp("vkCmdSetColorBlendAdvancedEXT", name)) {
14355
0
        *addr = (void *)CmdSetColorBlendAdvancedEXT;
14356
0
        return true;
14357
0
    }
14358
0
    if (!strcmp("vkCmdSetProvokingVertexModeEXT", name)) {
14359
0
        *addr = (void *)CmdSetProvokingVertexModeEXT;
14360
0
        return true;
14361
0
    }
14362
0
    if (!strcmp("vkCmdSetLineRasterizationModeEXT", name)) {
14363
0
        *addr = (void *)CmdSetLineRasterizationModeEXT;
14364
0
        return true;
14365
0
    }
14366
0
    if (!strcmp("vkCmdSetLineStippleEnableEXT", name)) {
14367
0
        *addr = (void *)CmdSetLineStippleEnableEXT;
14368
0
        return true;
14369
0
    }
14370
0
    if (!strcmp("vkCmdSetDepthClipNegativeOneToOneEXT", name)) {
14371
0
        *addr = (void *)CmdSetDepthClipNegativeOneToOneEXT;
14372
0
        return true;
14373
0
    }
14374
0
    if (!strcmp("vkCmdSetViewportWScalingEnableNV", name)) {
14375
0
        *addr = (void *)CmdSetViewportWScalingEnableNV;
14376
0
        return true;
14377
0
    }
14378
0
    if (!strcmp("vkCmdSetViewportSwizzleNV", name)) {
14379
0
        *addr = (void *)CmdSetViewportSwizzleNV;
14380
0
        return true;
14381
0
    }
14382
0
    if (!strcmp("vkCmdSetCoverageToColorEnableNV", name)) {
14383
0
        *addr = (void *)CmdSetCoverageToColorEnableNV;
14384
0
        return true;
14385
0
    }
14386
0
    if (!strcmp("vkCmdSetCoverageToColorLocationNV", name)) {
14387
0
        *addr = (void *)CmdSetCoverageToColorLocationNV;
14388
0
        return true;
14389
0
    }
14390
0
    if (!strcmp("vkCmdSetCoverageModulationModeNV", name)) {
14391
0
        *addr = (void *)CmdSetCoverageModulationModeNV;
14392
0
        return true;
14393
0
    }
14394
0
    if (!strcmp("vkCmdSetCoverageModulationTableEnableNV", name)) {
14395
0
        *addr = (void *)CmdSetCoverageModulationTableEnableNV;
14396
0
        return true;
14397
0
    }
14398
0
    if (!strcmp("vkCmdSetCoverageModulationTableNV", name)) {
14399
0
        *addr = (void *)CmdSetCoverageModulationTableNV;
14400
0
        return true;
14401
0
    }
14402
0
    if (!strcmp("vkCmdSetShadingRateImageEnableNV", name)) {
14403
0
        *addr = (void *)CmdSetShadingRateImageEnableNV;
14404
0
        return true;
14405
0
    }
14406
0
    if (!strcmp("vkCmdSetRepresentativeFragmentTestEnableNV", name)) {
14407
0
        *addr = (void *)CmdSetRepresentativeFragmentTestEnableNV;
14408
0
        return true;
14409
0
    }
14410
0
    if (!strcmp("vkCmdSetCoverageReductionModeNV", name)) {
14411
0
        *addr = (void *)CmdSetCoverageReductionModeNV;
14412
0
        return true;
14413
0
    }
14414
14415
    // ---- VK_ARM_tensors extension commands
14416
0
    if (!strcmp("vkCreateTensorARM", name)) {
14417
0
        *addr = (void *)CreateTensorARM;
14418
0
        return true;
14419
0
    }
14420
0
    if (!strcmp("vkDestroyTensorARM", name)) {
14421
0
        *addr = (void *)DestroyTensorARM;
14422
0
        return true;
14423
0
    }
14424
0
    if (!strcmp("vkCreateTensorViewARM", name)) {
14425
0
        *addr = (void *)CreateTensorViewARM;
14426
0
        return true;
14427
0
    }
14428
0
    if (!strcmp("vkDestroyTensorViewARM", name)) {
14429
0
        *addr = (void *)DestroyTensorViewARM;
14430
0
        return true;
14431
0
    }
14432
0
    if (!strcmp("vkGetTensorMemoryRequirementsARM", name)) {
14433
0
        *addr = (void *)GetTensorMemoryRequirementsARM;
14434
0
        return true;
14435
0
    }
14436
0
    if (!strcmp("vkBindTensorMemoryARM", name)) {
14437
0
        *addr = (void *)BindTensorMemoryARM;
14438
0
        return true;
14439
0
    }
14440
0
    if (!strcmp("vkGetDeviceTensorMemoryRequirementsARM", name)) {
14441
0
        *addr = (void *)GetDeviceTensorMemoryRequirementsARM;
14442
0
        return true;
14443
0
    }
14444
0
    if (!strcmp("vkCmdCopyTensorARM", name)) {
14445
0
        *addr = (void *)CmdCopyTensorARM;
14446
0
        return true;
14447
0
    }
14448
0
    if (!strcmp("vkGetPhysicalDeviceExternalTensorPropertiesARM", name)) {
14449
0
        *addr = (void *)GetPhysicalDeviceExternalTensorPropertiesARM;
14450
0
        return true;
14451
0
    }
14452
0
    if (!strcmp("vkGetTensorOpaqueCaptureDescriptorDataARM", name)) {
14453
0
        *addr = (void *)GetTensorOpaqueCaptureDescriptorDataARM;
14454
0
        return true;
14455
0
    }
14456
0
    if (!strcmp("vkGetTensorViewOpaqueCaptureDescriptorDataARM", name)) {
14457
0
        *addr = (void *)GetTensorViewOpaqueCaptureDescriptorDataARM;
14458
0
        return true;
14459
0
    }
14460
14461
    // ---- VK_EXT_shader_module_identifier extension commands
14462
0
    if (!strcmp("vkGetShaderModuleIdentifierEXT", name)) {
14463
0
        *addr = (void *)GetShaderModuleIdentifierEXT;
14464
0
        return true;
14465
0
    }
14466
0
    if (!strcmp("vkGetShaderModuleCreateInfoIdentifierEXT", name)) {
14467
0
        *addr = (void *)GetShaderModuleCreateInfoIdentifierEXT;
14468
0
        return true;
14469
0
    }
14470
14471
    // ---- VK_NV_optical_flow extension commands
14472
0
    if (!strcmp("vkGetPhysicalDeviceOpticalFlowImageFormatsNV", name)) {
14473
0
        *addr = (void *)GetPhysicalDeviceOpticalFlowImageFormatsNV;
14474
0
        return true;
14475
0
    }
14476
0
    if (!strcmp("vkCreateOpticalFlowSessionNV", name)) {
14477
0
        *addr = (void *)CreateOpticalFlowSessionNV;
14478
0
        return true;
14479
0
    }
14480
0
    if (!strcmp("vkDestroyOpticalFlowSessionNV", name)) {
14481
0
        *addr = (void *)DestroyOpticalFlowSessionNV;
14482
0
        return true;
14483
0
    }
14484
0
    if (!strcmp("vkBindOpticalFlowSessionImageNV", name)) {
14485
0
        *addr = (void *)BindOpticalFlowSessionImageNV;
14486
0
        return true;
14487
0
    }
14488
0
    if (!strcmp("vkCmdOpticalFlowExecuteNV", name)) {
14489
0
        *addr = (void *)CmdOpticalFlowExecuteNV;
14490
0
        return true;
14491
0
    }
14492
14493
    // ---- VK_AMD_anti_lag extension commands
14494
0
    if (!strcmp("vkAntiLagUpdateAMD", name)) {
14495
0
        *addr = (void *)AntiLagUpdateAMD;
14496
0
        return true;
14497
0
    }
14498
14499
    // ---- VK_EXT_shader_object extension commands
14500
0
    if (!strcmp("vkCreateShadersEXT", name)) {
14501
0
        *addr = (void *)CreateShadersEXT;
14502
0
        return true;
14503
0
    }
14504
0
    if (!strcmp("vkDestroyShaderEXT", name)) {
14505
0
        *addr = (void *)DestroyShaderEXT;
14506
0
        return true;
14507
0
    }
14508
0
    if (!strcmp("vkGetShaderBinaryDataEXT", name)) {
14509
0
        *addr = (void *)GetShaderBinaryDataEXT;
14510
0
        return true;
14511
0
    }
14512
0
    if (!strcmp("vkCmdBindShadersEXT", name)) {
14513
0
        *addr = (void *)CmdBindShadersEXT;
14514
0
        return true;
14515
0
    }
14516
0
    if (!strcmp("vkCmdSetDepthClampRangeEXT", name)) {
14517
0
        *addr = (void *)CmdSetDepthClampRangeEXT;
14518
0
        return true;
14519
0
    }
14520
14521
    // ---- VK_QCOM_tile_properties extension commands
14522
0
    if (!strcmp("vkGetFramebufferTilePropertiesQCOM", name)) {
14523
0
        *addr = (void *)GetFramebufferTilePropertiesQCOM;
14524
0
        return true;
14525
0
    }
14526
0
    if (!strcmp("vkGetDynamicRenderingTilePropertiesQCOM", name)) {
14527
0
        *addr = (void *)GetDynamicRenderingTilePropertiesQCOM;
14528
0
        return true;
14529
0
    }
14530
14531
    // ---- VK_NV_cooperative_vector extension commands
14532
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeVectorPropertiesNV", name)) {
14533
0
        *addr = (void *)GetPhysicalDeviceCooperativeVectorPropertiesNV;
14534
0
        return true;
14535
0
    }
14536
0
    if (!strcmp("vkConvertCooperativeVectorMatrixNV", name)) {
14537
0
        *addr = (void *)ConvertCooperativeVectorMatrixNV;
14538
0
        return true;
14539
0
    }
14540
0
    if (!strcmp("vkCmdConvertCooperativeVectorMatrixNV", name)) {
14541
0
        *addr = (void *)CmdConvertCooperativeVectorMatrixNV;
14542
0
        return true;
14543
0
    }
14544
14545
    // ---- VK_NV_low_latency2 extension commands
14546
0
    if (!strcmp("vkSetLatencySleepModeNV", name)) {
14547
0
        *addr = (void *)SetLatencySleepModeNV;
14548
0
        return true;
14549
0
    }
14550
0
    if (!strcmp("vkLatencySleepNV", name)) {
14551
0
        *addr = (void *)LatencySleepNV;
14552
0
        return true;
14553
0
    }
14554
0
    if (!strcmp("vkSetLatencyMarkerNV", name)) {
14555
0
        *addr = (void *)SetLatencyMarkerNV;
14556
0
        return true;
14557
0
    }
14558
0
    if (!strcmp("vkGetLatencyTimingsNV", name)) {
14559
0
        *addr = (void *)GetLatencyTimingsNV;
14560
0
        return true;
14561
0
    }
14562
0
    if (!strcmp("vkQueueNotifyOutOfBandNV", name)) {
14563
0
        *addr = (void *)QueueNotifyOutOfBandNV;
14564
0
        return true;
14565
0
    }
14566
14567
    // ---- VK_ARM_data_graph extension commands
14568
0
    if (!strcmp("vkCreateDataGraphPipelinesARM", name)) {
14569
0
        *addr = (void *)CreateDataGraphPipelinesARM;
14570
0
        return true;
14571
0
    }
14572
0
    if (!strcmp("vkCreateDataGraphPipelineSessionARM", name)) {
14573
0
        *addr = (void *)CreateDataGraphPipelineSessionARM;
14574
0
        return true;
14575
0
    }
14576
0
    if (!strcmp("vkGetDataGraphPipelineSessionBindPointRequirementsARM", name)) {
14577
0
        *addr = (void *)GetDataGraphPipelineSessionBindPointRequirementsARM;
14578
0
        return true;
14579
0
    }
14580
0
    if (!strcmp("vkGetDataGraphPipelineSessionMemoryRequirementsARM", name)) {
14581
0
        *addr = (void *)GetDataGraphPipelineSessionMemoryRequirementsARM;
14582
0
        return true;
14583
0
    }
14584
0
    if (!strcmp("vkBindDataGraphPipelineSessionMemoryARM", name)) {
14585
0
        *addr = (void *)BindDataGraphPipelineSessionMemoryARM;
14586
0
        return true;
14587
0
    }
14588
0
    if (!strcmp("vkDestroyDataGraphPipelineSessionARM", name)) {
14589
0
        *addr = (void *)DestroyDataGraphPipelineSessionARM;
14590
0
        return true;
14591
0
    }
14592
0
    if (!strcmp("vkCmdDispatchDataGraphARM", name)) {
14593
0
        *addr = (void *)CmdDispatchDataGraphARM;
14594
0
        return true;
14595
0
    }
14596
0
    if (!strcmp("vkGetDataGraphPipelineAvailablePropertiesARM", name)) {
14597
0
        *addr = (void *)GetDataGraphPipelineAvailablePropertiesARM;
14598
0
        return true;
14599
0
    }
14600
0
    if (!strcmp("vkGetDataGraphPipelinePropertiesARM", name)) {
14601
0
        *addr = (void *)GetDataGraphPipelinePropertiesARM;
14602
0
        return true;
14603
0
    }
14604
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM", name)) {
14605
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM;
14606
0
        return true;
14607
0
    }
14608
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM", name)) {
14609
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM;
14610
0
        return true;
14611
0
    }
14612
14613
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
14614
0
    if (!strcmp("vkCmdSetAttachmentFeedbackLoopEnableEXT", name)) {
14615
0
        *addr = (void *)CmdSetAttachmentFeedbackLoopEnableEXT;
14616
0
        return true;
14617
0
    }
14618
14619
    // ---- VK_QNX_external_memory_screen_buffer extension commands
14620
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14621
    if (!strcmp("vkGetScreenBufferPropertiesQNX", name)) {
14622
        *addr = (void *)GetScreenBufferPropertiesQNX;
14623
        return true;
14624
    }
14625
#endif // VK_USE_PLATFORM_SCREEN_QNX
14626
14627
    // ---- VK_QCOM_tile_memory_heap extension commands
14628
0
    if (!strcmp("vkCmdBindTileMemoryQCOM", name)) {
14629
0
        *addr = (void *)CmdBindTileMemoryQCOM;
14630
0
        return true;
14631
0
    }
14632
14633
    // ---- VK_EXT_memory_decompression extension commands
14634
0
    if (!strcmp("vkCmdDecompressMemoryEXT", name)) {
14635
0
        *addr = (void *)CmdDecompressMemoryEXT;
14636
0
        return true;
14637
0
    }
14638
0
    if (!strcmp("vkCmdDecompressMemoryIndirectCountEXT", name)) {
14639
0
        *addr = (void *)CmdDecompressMemoryIndirectCountEXT;
14640
0
        return true;
14641
0
    }
14642
14643
    // ---- VK_NV_external_compute_queue extension commands
14644
0
    if (!strcmp("vkCreateExternalComputeQueueNV", name)) {
14645
0
        *addr = (void *)CreateExternalComputeQueueNV;
14646
0
        return true;
14647
0
    }
14648
0
    if (!strcmp("vkDestroyExternalComputeQueueNV", name)) {
14649
0
        *addr = (void *)DestroyExternalComputeQueueNV;
14650
0
        return true;
14651
0
    }
14652
0
    if (!strcmp("vkGetExternalComputeQueueDataNV", name)) {
14653
0
        *addr = (void *)GetExternalComputeQueueDataNV;
14654
0
        return true;
14655
0
    }
14656
14657
    // ---- VK_NV_cluster_acceleration_structure extension commands
14658
0
    if (!strcmp("vkGetClusterAccelerationStructureBuildSizesNV", name)) {
14659
0
        *addr = (void *)GetClusterAccelerationStructureBuildSizesNV;
14660
0
        return true;
14661
0
    }
14662
0
    if (!strcmp("vkCmdBuildClusterAccelerationStructureIndirectNV", name)) {
14663
0
        *addr = (void *)CmdBuildClusterAccelerationStructureIndirectNV;
14664
0
        return true;
14665
0
    }
14666
14667
    // ---- VK_NV_partitioned_acceleration_structure extension commands
14668
0
    if (!strcmp("vkGetPartitionedAccelerationStructuresBuildSizesNV", name)) {
14669
0
        *addr = (void *)GetPartitionedAccelerationStructuresBuildSizesNV;
14670
0
        return true;
14671
0
    }
14672
0
    if (!strcmp("vkCmdBuildPartitionedAccelerationStructuresNV", name)) {
14673
0
        *addr = (void *)CmdBuildPartitionedAccelerationStructuresNV;
14674
0
        return true;
14675
0
    }
14676
14677
    // ---- VK_EXT_device_generated_commands extension commands
14678
0
    if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsEXT", name)) {
14679
0
        *addr = (void *)GetGeneratedCommandsMemoryRequirementsEXT;
14680
0
        return true;
14681
0
    }
14682
0
    if (!strcmp("vkCmdPreprocessGeneratedCommandsEXT", name)) {
14683
0
        *addr = (void *)CmdPreprocessGeneratedCommandsEXT;
14684
0
        return true;
14685
0
    }
14686
0
    if (!strcmp("vkCmdExecuteGeneratedCommandsEXT", name)) {
14687
0
        *addr = (void *)CmdExecuteGeneratedCommandsEXT;
14688
0
        return true;
14689
0
    }
14690
0
    if (!strcmp("vkCreateIndirectCommandsLayoutEXT", name)) {
14691
0
        *addr = (void *)CreateIndirectCommandsLayoutEXT;
14692
0
        return true;
14693
0
    }
14694
0
    if (!strcmp("vkDestroyIndirectCommandsLayoutEXT", name)) {
14695
0
        *addr = (void *)DestroyIndirectCommandsLayoutEXT;
14696
0
        return true;
14697
0
    }
14698
0
    if (!strcmp("vkCreateIndirectExecutionSetEXT", name)) {
14699
0
        *addr = (void *)CreateIndirectExecutionSetEXT;
14700
0
        return true;
14701
0
    }
14702
0
    if (!strcmp("vkDestroyIndirectExecutionSetEXT", name)) {
14703
0
        *addr = (void *)DestroyIndirectExecutionSetEXT;
14704
0
        return true;
14705
0
    }
14706
0
    if (!strcmp("vkUpdateIndirectExecutionSetPipelineEXT", name)) {
14707
0
        *addr = (void *)UpdateIndirectExecutionSetPipelineEXT;
14708
0
        return true;
14709
0
    }
14710
0
    if (!strcmp("vkUpdateIndirectExecutionSetShaderEXT", name)) {
14711
0
        *addr = (void *)UpdateIndirectExecutionSetShaderEXT;
14712
0
        return true;
14713
0
    }
14714
14715
    // ---- VK_OHOS_surface extension commands
14716
#if defined(VK_USE_PLATFORM_OHOS)
14717
    if (!strcmp("vkCreateSurfaceOHOS", name)) {
14718
        *addr = (ptr_instance->enabled_extensions.ohos_surface == 1)
14719
                     ? (void *)CreateSurfaceOHOS
14720
                     : NULL;
14721
        return true;
14722
    }
14723
#endif // VK_USE_PLATFORM_OHOS
14724
14725
    // ---- VK_NV_cooperative_matrix2 extension commands
14726
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV", name)) {
14727
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
14728
0
        return true;
14729
0
    }
14730
14731
    // ---- VK_EXT_external_memory_metal extension commands
14732
#if defined(VK_USE_PLATFORM_METAL_EXT)
14733
    if (!strcmp("vkGetMemoryMetalHandleEXT", name)) {
14734
        *addr = (void *)GetMemoryMetalHandleEXT;
14735
        return true;
14736
    }
14737
#endif // VK_USE_PLATFORM_METAL_EXT
14738
#if defined(VK_USE_PLATFORM_METAL_EXT)
14739
    if (!strcmp("vkGetMemoryMetalHandlePropertiesEXT", name)) {
14740
        *addr = (void *)GetMemoryMetalHandlePropertiesEXT;
14741
        return true;
14742
    }
14743
#endif // VK_USE_PLATFORM_METAL_EXT
14744
14745
    // ---- VK_ARM_performance_counters_by_region extension commands
14746
0
    if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM", name)) {
14747
0
        *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;
14748
0
        return true;
14749
0
    }
14750
14751
    // ---- VK_ARM_shader_instrumentation extension commands
14752
0
    if (!strcmp("vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM", name)) {
14753
0
        *addr = (void *)EnumeratePhysicalDeviceShaderInstrumentationMetricsARM;
14754
0
        return true;
14755
0
    }
14756
0
    if (!strcmp("vkCreateShaderInstrumentationARM", name)) {
14757
0
        *addr = (void *)CreateShaderInstrumentationARM;
14758
0
        return true;
14759
0
    }
14760
0
    if (!strcmp("vkDestroyShaderInstrumentationARM", name)) {
14761
0
        *addr = (void *)DestroyShaderInstrumentationARM;
14762
0
        return true;
14763
0
    }
14764
0
    if (!strcmp("vkCmdBeginShaderInstrumentationARM", name)) {
14765
0
        *addr = (void *)CmdBeginShaderInstrumentationARM;
14766
0
        return true;
14767
0
    }
14768
0
    if (!strcmp("vkCmdEndShaderInstrumentationARM", name)) {
14769
0
        *addr = (void *)CmdEndShaderInstrumentationARM;
14770
0
        return true;
14771
0
    }
14772
0
    if (!strcmp("vkGetShaderInstrumentationValuesARM", name)) {
14773
0
        *addr = (void *)GetShaderInstrumentationValuesARM;
14774
0
        return true;
14775
0
    }
14776
0
    if (!strcmp("vkClearShaderInstrumentationMetricsARM", name)) {
14777
0
        *addr = (void *)ClearShaderInstrumentationMetricsARM;
14778
0
        return true;
14779
0
    }
14780
14781
    // ---- VK_EXT_fragment_density_map_offset extension commands
14782
0
    if (!strcmp("vkCmdEndRendering2EXT", name)) {
14783
0
        *addr = (void *)CmdEndRendering2EXT;
14784
0
        return true;
14785
0
    }
14786
14787
    // ---- VK_EXT_custom_resolve extension commands
14788
0
    if (!strcmp("vkCmdBeginCustomResolveEXT", name)) {
14789
0
        *addr = (void *)CmdBeginCustomResolveEXT;
14790
0
        return true;
14791
0
    }
14792
14793
    // ---- VK_NV_compute_occupancy_priority extension commands
14794
0
    if (!strcmp("vkCmdSetComputeOccupancyPriorityNV", name)) {
14795
0
        *addr = (void *)CmdSetComputeOccupancyPriorityNV;
14796
0
        return true;
14797
0
    }
14798
14799
    // ---- VK_SEC_ubm_surface extension commands
14800
#if defined(VK_USE_PLATFORM_UBM_SEC)
14801
    if (!strcmp("vkCreateUbmSurfaceSEC", name)) {
14802
        *addr = (ptr_instance->enabled_extensions.sec_ubm_surface == 1)
14803
                     ? (void *)CreateUbmSurfaceSEC
14804
                     : NULL;
14805
        return true;
14806
    }
14807
#endif // VK_USE_PLATFORM_UBM_SEC
14808
#if defined(VK_USE_PLATFORM_UBM_SEC)
14809
    if (!strcmp("vkGetPhysicalDeviceUbmPresentationSupportSEC", name)) {
14810
        *addr = (ptr_instance->enabled_extensions.sec_ubm_surface == 1)
14811
                     ? (void *)GetPhysicalDeviceUbmPresentationSupportSEC
14812
                     : NULL;
14813
        return true;
14814
    }
14815
#endif // VK_USE_PLATFORM_UBM_SEC
14816
14817
    // ---- VK_KHR_acceleration_structure extension commands
14818
0
    if (!strcmp("vkCreateAccelerationStructureKHR", name)) {
14819
0
        *addr = (void *)CreateAccelerationStructureKHR;
14820
0
        return true;
14821
0
    }
14822
0
    if (!strcmp("vkDestroyAccelerationStructureKHR", name)) {
14823
0
        *addr = (void *)DestroyAccelerationStructureKHR;
14824
0
        return true;
14825
0
    }
14826
0
    if (!strcmp("vkCmdBuildAccelerationStructuresKHR", name)) {
14827
0
        *addr = (void *)CmdBuildAccelerationStructuresKHR;
14828
0
        return true;
14829
0
    }
14830
0
    if (!strcmp("vkCmdBuildAccelerationStructuresIndirectKHR", name)) {
14831
0
        *addr = (void *)CmdBuildAccelerationStructuresIndirectKHR;
14832
0
        return true;
14833
0
    }
14834
0
    if (!strcmp("vkBuildAccelerationStructuresKHR", name)) {
14835
0
        *addr = (void *)BuildAccelerationStructuresKHR;
14836
0
        return true;
14837
0
    }
14838
0
    if (!strcmp("vkCopyAccelerationStructureKHR", name)) {
14839
0
        *addr = (void *)CopyAccelerationStructureKHR;
14840
0
        return true;
14841
0
    }
14842
0
    if (!strcmp("vkCopyAccelerationStructureToMemoryKHR", name)) {
14843
0
        *addr = (void *)CopyAccelerationStructureToMemoryKHR;
14844
0
        return true;
14845
0
    }
14846
0
    if (!strcmp("vkCopyMemoryToAccelerationStructureKHR", name)) {
14847
0
        *addr = (void *)CopyMemoryToAccelerationStructureKHR;
14848
0
        return true;
14849
0
    }
14850
0
    if (!strcmp("vkWriteAccelerationStructuresPropertiesKHR", name)) {
14851
0
        *addr = (void *)WriteAccelerationStructuresPropertiesKHR;
14852
0
        return true;
14853
0
    }
14854
0
    if (!strcmp("vkCmdCopyAccelerationStructureKHR", name)) {
14855
0
        *addr = (void *)CmdCopyAccelerationStructureKHR;
14856
0
        return true;
14857
0
    }
14858
0
    if (!strcmp("vkCmdCopyAccelerationStructureToMemoryKHR", name)) {
14859
0
        *addr = (void *)CmdCopyAccelerationStructureToMemoryKHR;
14860
0
        return true;
14861
0
    }
14862
0
    if (!strcmp("vkCmdCopyMemoryToAccelerationStructureKHR", name)) {
14863
0
        *addr = (void *)CmdCopyMemoryToAccelerationStructureKHR;
14864
0
        return true;
14865
0
    }
14866
0
    if (!strcmp("vkGetAccelerationStructureDeviceAddressKHR", name)) {
14867
0
        *addr = (void *)GetAccelerationStructureDeviceAddressKHR;
14868
0
        return true;
14869
0
    }
14870
0
    if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesKHR", name)) {
14871
0
        *addr = (void *)CmdWriteAccelerationStructuresPropertiesKHR;
14872
0
        return true;
14873
0
    }
14874
0
    if (!strcmp("vkGetDeviceAccelerationStructureCompatibilityKHR", name)) {
14875
0
        *addr = (void *)GetDeviceAccelerationStructureCompatibilityKHR;
14876
0
        return true;
14877
0
    }
14878
0
    if (!strcmp("vkGetAccelerationStructureBuildSizesKHR", name)) {
14879
0
        *addr = (void *)GetAccelerationStructureBuildSizesKHR;
14880
0
        return true;
14881
0
    }
14882
14883
    // ---- VK_KHR_ray_tracing_pipeline extension commands
14884
0
    if (!strcmp("vkCmdTraceRaysKHR", name)) {
14885
0
        *addr = (void *)CmdTraceRaysKHR;
14886
0
        return true;
14887
0
    }
14888
0
    if (!strcmp("vkCreateRayTracingPipelinesKHR", name)) {
14889
0
        *addr = (void *)CreateRayTracingPipelinesKHR;
14890
0
        return true;
14891
0
    }
14892
0
    if (!strcmp("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", name)) {
14893
0
        *addr = (void *)GetRayTracingCaptureReplayShaderGroupHandlesKHR;
14894
0
        return true;
14895
0
    }
14896
0
    if (!strcmp("vkCmdTraceRaysIndirectKHR", name)) {
14897
0
        *addr = (void *)CmdTraceRaysIndirectKHR;
14898
0
        return true;
14899
0
    }
14900
0
    if (!strcmp("vkGetRayTracingShaderGroupStackSizeKHR", name)) {
14901
0
        *addr = (void *)GetRayTracingShaderGroupStackSizeKHR;
14902
0
        return true;
14903
0
    }
14904
0
    if (!strcmp("vkCmdSetRayTracingPipelineStackSizeKHR", name)) {
14905
0
        *addr = (void *)CmdSetRayTracingPipelineStackSizeKHR;
14906
0
        return true;
14907
0
    }
14908
14909
    // ---- VK_EXT_mesh_shader extension commands
14910
0
    if (!strcmp("vkCmdDrawMeshTasksEXT", name)) {
14911
0
        *addr = (void *)CmdDrawMeshTasksEXT;
14912
0
        return true;
14913
0
    }
14914
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectEXT", name)) {
14915
0
        *addr = (void *)CmdDrawMeshTasksIndirectEXT;
14916
0
        return true;
14917
0
    }
14918
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectCountEXT", name)) {
14919
0
        *addr = (void *)CmdDrawMeshTasksIndirectCountEXT;
14920
0
        return true;
14921
0
    }
14922
0
    return false;
14923
0
}
14924
14925
// Used to keep track of all enabled instance extensions
14926
0
void fill_out_enabled_instance_extensions(uint32_t extension_count, const char *const * extension_list, struct loader_instance_extension_enable_list* enables) {
14927
0
    for (uint32_t i = 0; i < extension_count; i++) {
14928
14929
    // ---- VK_KHR_surface extension commands
14930
0
        if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_EXTENSION_NAME)) { enables->khr_surface = 1; }
14931
14932
    // ---- VK_KHR_display extension commands
14933
0
        else if (0 == strcmp(extension_list[i], VK_KHR_DISPLAY_EXTENSION_NAME)) { enables->khr_display = 1; }
14934
14935
    // ---- VK_KHR_xlib_surface extension commands
14936
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
14937
0
        else if (0 == strcmp(extension_list[i], VK_KHR_XLIB_SURFACE_EXTENSION_NAME)) { enables->khr_xlib_surface = 1; }
14938
0
#endif // VK_USE_PLATFORM_XLIB_KHR
14939
14940
    // ---- VK_KHR_xcb_surface extension commands
14941
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
14942
0
        else if (0 == strcmp(extension_list[i], VK_KHR_XCB_SURFACE_EXTENSION_NAME)) { enables->khr_xcb_surface = 1; }
14943
0
#endif // VK_USE_PLATFORM_XCB_KHR
14944
14945
    // ---- VK_KHR_wayland_surface extension commands
14946
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
14947
0
        else if (0 == strcmp(extension_list[i], VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME)) { enables->khr_wayland_surface = 1; }
14948
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
14949
14950
    // ---- VK_KHR_android_surface extension commands
14951
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
14952
        else if (0 == strcmp(extension_list[i], VK_KHR_ANDROID_SURFACE_EXTENSION_NAME)) { enables->khr_android_surface = 1; }
14953
#endif // VK_USE_PLATFORM_ANDROID_KHR
14954
14955
    // ---- VK_KHR_win32_surface extension commands
14956
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14957
        else if (0 == strcmp(extension_list[i], VK_KHR_WIN32_SURFACE_EXTENSION_NAME)) { enables->khr_win32_surface = 1; }
14958
#endif // VK_USE_PLATFORM_WIN32_KHR
14959
14960
    // ---- VK_KHR_get_physical_device_properties2 extension commands
14961
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) { enables->khr_get_physical_device_properties2 = 1; }
14962
14963
    // ---- VK_KHR_device_group_creation extension commands
14964
0
        else if (0 == strcmp(extension_list[i], VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)) { enables->khr_device_group_creation = 1; }
14965
14966
    // ---- VK_KHR_external_memory_capabilities extension commands
14967
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_memory_capabilities = 1; }
14968
14969
    // ---- VK_KHR_external_semaphore_capabilities extension commands
14970
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_semaphore_capabilities = 1; }
14971
14972
    // ---- VK_KHR_external_fence_capabilities extension commands
14973
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_fence_capabilities = 1; }
14974
14975
    // ---- VK_KHR_get_surface_capabilities2 extension commands
14976
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME)) { enables->khr_get_surface_capabilities2 = 1; }
14977
14978
    // ---- VK_KHR_get_display_properties2 extension commands
14979
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME)) { enables->khr_get_display_properties2 = 1; }
14980
14981
    // ---- VK_KHR_surface_protected_capabilities extension commands
14982
0
        else if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME)) { enables->khr_surface_protected_capabilities = 1; }
14983
14984
    // ---- VK_KHR_portability_enumeration extension commands
14985
0
        else if (0 == strcmp(extension_list[i], VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME)) { enables->khr_portability_enumeration = 1; }
14986
14987
    // ---- VK_KHR_surface_maintenance1 extension commands
14988
0
        else if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME)) { enables->khr_surface_maintenance1 = 1; }
14989
14990
    // ---- VK_EXT_debug_report extension commands
14991
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DEBUG_REPORT_EXTENSION_NAME)) { enables->ext_debug_report = 1; }
14992
14993
    // ---- VK_GGP_stream_descriptor_surface extension commands
14994
#if defined(VK_USE_PLATFORM_GGP)
14995
        else if (0 == strcmp(extension_list[i], VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME)) { enables->ggp_stream_descriptor_surface = 1; }
14996
#endif // VK_USE_PLATFORM_GGP
14997
14998
    // ---- VK_NV_external_memory_capabilities extension commands
14999
0
        else if (0 == strcmp(extension_list[i], VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) { enables->nv_external_memory_capabilities = 1; }
15000
15001
    // ---- VK_EXT_validation_flags extension commands
15002
0
        else if (0 == strcmp(extension_list[i], VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME)) { enables->ext_validation_flags = 1; }
15003
15004
    // ---- VK_NN_vi_surface extension commands
15005
#if defined(VK_USE_PLATFORM_VI_NN)
15006
        else if (0 == strcmp(extension_list[i], VK_NN_VI_SURFACE_EXTENSION_NAME)) { enables->nn_vi_surface = 1; }
15007
#endif // VK_USE_PLATFORM_VI_NN
15008
15009
    // ---- VK_EXT_direct_mode_display extension commands
15010
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)) { enables->ext_direct_mode_display = 1; }
15011
15012
    // ---- VK_EXT_acquire_xlib_display extension commands
15013
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
15014
0
        else if (0 == strcmp(extension_list[i], VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME)) { enables->ext_acquire_xlib_display = 1; }
15015
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
15016
15017
    // ---- VK_EXT_display_surface_counter extension commands
15018
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)) { enables->ext_display_surface_counter = 1; }
15019
15020
    // ---- VK_EXT_swapchain_colorspace extension commands
15021
0
        else if (0 == strcmp(extension_list[i], VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME)) { enables->ext_swapchain_colorspace = 1; }
15022
15023
    // ---- VK_MVK_ios_surface extension commands
15024
#if defined(VK_USE_PLATFORM_IOS_MVK)
15025
        else if (0 == strcmp(extension_list[i], VK_MVK_IOS_SURFACE_EXTENSION_NAME)) { enables->mvk_ios_surface = 1; }
15026
#endif // VK_USE_PLATFORM_IOS_MVK
15027
15028
    // ---- VK_MVK_macos_surface extension commands
15029
#if defined(VK_USE_PLATFORM_MACOS_MVK)
15030
        else if (0 == strcmp(extension_list[i], VK_MVK_MACOS_SURFACE_EXTENSION_NAME)) { enables->mvk_macos_surface = 1; }
15031
#endif // VK_USE_PLATFORM_MACOS_MVK
15032
15033
    // ---- VK_EXT_debug_utils extension commands
15034
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) { enables->ext_debug_utils = 1; }
15035
15036
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
15037
#if defined(VK_USE_PLATFORM_FUCHSIA)
15038
        else if (0 == strcmp(extension_list[i], VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME)) { enables->fuchsia_imagepipe_surface = 1; }
15039
#endif // VK_USE_PLATFORM_FUCHSIA
15040
15041
    // ---- VK_EXT_metal_surface extension commands
15042
#if defined(VK_USE_PLATFORM_METAL_EXT)
15043
        else if (0 == strcmp(extension_list[i], VK_EXT_METAL_SURFACE_EXTENSION_NAME)) { enables->ext_metal_surface = 1; }
15044
#endif // VK_USE_PLATFORM_METAL_EXT
15045
15046
    // ---- VK_EXT_validation_features extension commands
15047
0
        else if (0 == strcmp(extension_list[i], VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME)) { enables->ext_validation_features = 1; }
15048
15049
    // ---- VK_EXT_headless_surface extension commands
15050
0
        else if (0 == strcmp(extension_list[i], VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME)) { enables->ext_headless_surface = 1; }
15051
15052
    // ---- VK_EXT_surface_maintenance1 extension commands
15053
0
        else if (0 == strcmp(extension_list[i], VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME)) { enables->ext_surface_maintenance1 = 1; }
15054
15055
    // ---- VK_EXT_acquire_drm_display extension commands
15056
0
        else if (0 == strcmp(extension_list[i], VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME)) { enables->ext_acquire_drm_display = 1; }
15057
15058
    // ---- VK_EXT_directfb_surface extension commands
15059
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
15060
        else if (0 == strcmp(extension_list[i], VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME)) { enables->ext_directfb_surface = 1; }
15061
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
15062
15063
    // ---- VK_QNX_screen_surface extension commands
15064
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
15065
        else if (0 == strcmp(extension_list[i], VK_QNX_SCREEN_SURFACE_EXTENSION_NAME)) { enables->qnx_screen_surface = 1; }
15066
#endif // VK_USE_PLATFORM_SCREEN_QNX
15067
15068
    // ---- VK_GOOGLE_surfaceless_query extension commands
15069
0
        else if (0 == strcmp(extension_list[i], VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME)) { enables->google_surfaceless_query = 1; }
15070
15071
    // ---- VK_LUNARG_direct_driver_loading extension commands
15072
0
        else if (0 == strcmp(extension_list[i], VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME)) { enables->lunarg_direct_driver_loading = 1; }
15073
15074
    // ---- VK_EXT_layer_settings extension commands
15075
0
        else if (0 == strcmp(extension_list[i], VK_EXT_LAYER_SETTINGS_EXTENSION_NAME)) { enables->ext_layer_settings = 1; }
15076
15077
    // ---- VK_NV_display_stereo extension commands
15078
0
        else if (0 == strcmp(extension_list[i], VK_NV_DISPLAY_STEREO_EXTENSION_NAME)) { enables->nv_display_stereo = 1; }
15079
15080
    // ---- VK_OHOS_surface extension commands
15081
#if defined(VK_USE_PLATFORM_OHOS)
15082
        else if (0 == strcmp(extension_list[i], VK_OHOS_SURFACE_EXTENSION_NAME)) { enables->ohos_surface = 1; }
15083
#endif // VK_USE_PLATFORM_OHOS
15084
15085
    // ---- VK_SEC_ubm_surface extension commands
15086
#if defined(VK_USE_PLATFORM_UBM_SEC)
15087
        else if (0 == strcmp(extension_list[i], VK_SEC_UBM_SURFACE_EXTENSION_NAME)) { enables->sec_ubm_surface = 1; }
15088
#endif // VK_USE_PLATFORM_UBM_SEC
15089
0
    }
15090
0
}
15091
15092
// Some device commands still need a terminator because the loader needs to unwrap something about them.
15093
// In many cases, the item needing unwrapping is a VkPhysicalDevice or VkSurfaceKHR object.  But there may be other items
15094
// in the future.
15095
0
PFN_vkVoidFunction get_extension_device_proc_terminator(struct loader_device *dev, const char *name, bool* found_name) {
15096
0
    *found_name = false;
15097
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
15098
0
        return NULL;
15099
0
    }
15100
0
    name += 2;
15101
    // ---- VK_KHR_swapchain extension commands
15102
0
    if (!strcmp(name, "CreateSwapchainKHR")) {
15103
0
        *found_name = true;
15104
0
        return dev->driver_extensions.khr_swapchain_enabled ?
15105
0
            (PFN_vkVoidFunction)terminator_CreateSwapchainKHR : NULL;
15106
0
    }
15107
0
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) {
15108
0
        *found_name = true;
15109
0
        return dev->driver_extensions.khr_swapchain_enabled || dev->driver_extensions.khr_device_group_enabled ?
15110
0
            (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModesKHR : NULL;
15111
0
    }
15112
    // ---- VK_KHR_display_swapchain extension commands
15113
0
    if (!strcmp(name, "CreateSharedSwapchainsKHR")) {
15114
0
        *found_name = true;
15115
0
        return dev->driver_extensions.khr_display_swapchain_enabled ?
15116
0
            (PFN_vkVoidFunction)terminator_CreateSharedSwapchainsKHR : NULL;
15117
0
    }
15118
    // ---- VK_EXT_debug_marker extension commands
15119
0
    if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) {
15120
0
        *found_name = true;
15121
0
        return dev->driver_extensions.ext_debug_marker_enabled ?
15122
0
            (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectTagEXT : NULL;
15123
0
    }
15124
0
    if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) {
15125
0
        *found_name = true;
15126
0
        return dev->driver_extensions.ext_debug_marker_enabled ?
15127
0
            (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectNameEXT : NULL;
15128
0
    }
15129
    // ---- VK_EXT_debug_utils extension commands
15130
0
    if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) {
15131
0
        *found_name = true;
15132
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
15133
0
            (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectNameEXT : NULL;
15134
0
    }
15135
0
    if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) {
15136
0
        *found_name = true;
15137
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
15138
0
            (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectTagEXT : NULL;
15139
0
    }
15140
0
    if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) {
15141
0
        *found_name = true;
15142
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
15143
0
            (PFN_vkVoidFunction)terminator_QueueBeginDebugUtilsLabelEXT : NULL;
15144
0
    }
15145
0
    if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) {
15146
0
        *found_name = true;
15147
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
15148
0
            (PFN_vkVoidFunction)terminator_QueueEndDebugUtilsLabelEXT : NULL;
15149
0
    }
15150
0
    if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) {
15151
0
        *found_name = true;
15152
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
15153
0
            (PFN_vkVoidFunction)terminator_QueueInsertDebugUtilsLabelEXT : NULL;
15154
0
    }
15155
0
    if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) {
15156
0
        *found_name = true;
15157
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
15158
0
            (PFN_vkVoidFunction)terminator_CmdBeginDebugUtilsLabelEXT : NULL;
15159
0
    }
15160
0
    if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) {
15161
0
        *found_name = true;
15162
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
15163
0
            (PFN_vkVoidFunction)terminator_CmdEndDebugUtilsLabelEXT : NULL;
15164
0
    }
15165
0
    if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) {
15166
0
        *found_name = true;
15167
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
15168
0
            (PFN_vkVoidFunction)terminator_CmdInsertDebugUtilsLabelEXT : NULL;
15169
0
    }
15170
#if defined(VK_USE_PLATFORM_WIN32_KHR)
15171
    // ---- VK_EXT_full_screen_exclusive extension commands
15172
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) {
15173
        *found_name = true;
15174
        return dev->driver_extensions.ext_full_screen_exclusive_enabled ?
15175
            (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModes2EXT : NULL;
15176
    }
15177
#endif // VK_USE_PLATFORM_WIN32_KHR
15178
0
    return NULL;
15179
0
}
15180
15181
// This table contains the loader's instance dispatch table, which contains
15182
// default functions if no instance layers are activated.  This contains
15183
// pointers to "terminator functions".
15184
const VkLayerInstanceDispatchTable instance_disp = {
15185
15186
    // ---- Core Vulkan 1.0 commands
15187
    .DestroyInstance = terminator_DestroyInstance,
15188
    .EnumeratePhysicalDevices = terminator_EnumeratePhysicalDevices,
15189
    .GetPhysicalDeviceFeatures = terminator_GetPhysicalDeviceFeatures,
15190
    .GetPhysicalDeviceFormatProperties = terminator_GetPhysicalDeviceFormatProperties,
15191
    .GetPhysicalDeviceImageFormatProperties = terminator_GetPhysicalDeviceImageFormatProperties,
15192
    .GetPhysicalDeviceProperties = terminator_GetPhysicalDeviceProperties,
15193
    .GetPhysicalDeviceQueueFamilyProperties = terminator_GetPhysicalDeviceQueueFamilyProperties,
15194
    .GetPhysicalDeviceMemoryProperties = terminator_GetPhysicalDeviceMemoryProperties,
15195
    .GetInstanceProcAddr = vkGetInstanceProcAddr,
15196
    .EnumerateDeviceExtensionProperties = terminator_EnumerateDeviceExtensionProperties,
15197
    .EnumerateDeviceLayerProperties = terminator_EnumerateDeviceLayerProperties,
15198
    .GetPhysicalDeviceSparseImageFormatProperties = terminator_GetPhysicalDeviceSparseImageFormatProperties,
15199
15200
    // ---- Core Vulkan 1.1 commands
15201
    .EnumeratePhysicalDeviceGroups = terminator_EnumeratePhysicalDeviceGroups,
15202
    .GetPhysicalDeviceFeatures2 = terminator_GetPhysicalDeviceFeatures2,
15203
    .GetPhysicalDeviceProperties2 = terminator_GetPhysicalDeviceProperties2,
15204
    .GetPhysicalDeviceFormatProperties2 = terminator_GetPhysicalDeviceFormatProperties2,
15205
    .GetPhysicalDeviceImageFormatProperties2 = terminator_GetPhysicalDeviceImageFormatProperties2,
15206
    .GetPhysicalDeviceQueueFamilyProperties2 = terminator_GetPhysicalDeviceQueueFamilyProperties2,
15207
    .GetPhysicalDeviceMemoryProperties2 = terminator_GetPhysicalDeviceMemoryProperties2,
15208
    .GetPhysicalDeviceSparseImageFormatProperties2 = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
15209
    .GetPhysicalDeviceExternalBufferProperties = terminator_GetPhysicalDeviceExternalBufferProperties,
15210
    .GetPhysicalDeviceExternalFenceProperties = terminator_GetPhysicalDeviceExternalFenceProperties,
15211
    .GetPhysicalDeviceExternalSemaphoreProperties = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
15212
15213
    // ---- Core Vulkan 1.3 commands
15214
    .GetPhysicalDeviceToolProperties = terminator_GetPhysicalDeviceToolProperties,
15215
15216
    // ---- VK_KHR_surface extension commands
15217
    .DestroySurfaceKHR = terminator_DestroySurfaceKHR,
15218
    .GetPhysicalDeviceSurfaceSupportKHR = terminator_GetPhysicalDeviceSurfaceSupportKHR,
15219
    .GetPhysicalDeviceSurfaceCapabilitiesKHR = terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR,
15220
    .GetPhysicalDeviceSurfaceFormatsKHR = terminator_GetPhysicalDeviceSurfaceFormatsKHR,
15221
    .GetPhysicalDeviceSurfacePresentModesKHR = terminator_GetPhysicalDeviceSurfacePresentModesKHR,
15222
15223
    // ---- VK_KHR_swapchain extension commands
15224
    .GetPhysicalDevicePresentRectanglesKHR = terminator_GetPhysicalDevicePresentRectanglesKHR,
15225
15226
    // ---- VK_KHR_display extension commands
15227
    .GetPhysicalDeviceDisplayPropertiesKHR = terminator_GetPhysicalDeviceDisplayPropertiesKHR,
15228
    .GetPhysicalDeviceDisplayPlanePropertiesKHR = terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR,
15229
    .GetDisplayPlaneSupportedDisplaysKHR = terminator_GetDisplayPlaneSupportedDisplaysKHR,
15230
    .GetDisplayModePropertiesKHR = terminator_GetDisplayModePropertiesKHR,
15231
    .CreateDisplayModeKHR = terminator_CreateDisplayModeKHR,
15232
    .GetDisplayPlaneCapabilitiesKHR = terminator_GetDisplayPlaneCapabilitiesKHR,
15233
    .CreateDisplayPlaneSurfaceKHR = terminator_CreateDisplayPlaneSurfaceKHR,
15234
15235
    // ---- VK_KHR_xlib_surface extension commands
15236
#if defined(VK_USE_PLATFORM_XLIB_KHR)
15237
    .CreateXlibSurfaceKHR = terminator_CreateXlibSurfaceKHR,
15238
#endif // VK_USE_PLATFORM_XLIB_KHR
15239
#if defined(VK_USE_PLATFORM_XLIB_KHR)
15240
    .GetPhysicalDeviceXlibPresentationSupportKHR = terminator_GetPhysicalDeviceXlibPresentationSupportKHR,
15241
#endif // VK_USE_PLATFORM_XLIB_KHR
15242
15243
    // ---- VK_KHR_xcb_surface extension commands
15244
#if defined(VK_USE_PLATFORM_XCB_KHR)
15245
    .CreateXcbSurfaceKHR = terminator_CreateXcbSurfaceKHR,
15246
#endif // VK_USE_PLATFORM_XCB_KHR
15247
#if defined(VK_USE_PLATFORM_XCB_KHR)
15248
    .GetPhysicalDeviceXcbPresentationSupportKHR = terminator_GetPhysicalDeviceXcbPresentationSupportKHR,
15249
#endif // VK_USE_PLATFORM_XCB_KHR
15250
15251
    // ---- VK_KHR_wayland_surface extension commands
15252
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
15253
    .CreateWaylandSurfaceKHR = terminator_CreateWaylandSurfaceKHR,
15254
#endif // VK_USE_PLATFORM_WAYLAND_KHR
15255
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
15256
    .GetPhysicalDeviceWaylandPresentationSupportKHR = terminator_GetPhysicalDeviceWaylandPresentationSupportKHR,
15257
#endif // VK_USE_PLATFORM_WAYLAND_KHR
15258
15259
    // ---- VK_KHR_android_surface extension commands
15260
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
15261
    .CreateAndroidSurfaceKHR = terminator_CreateAndroidSurfaceKHR,
15262
#endif // VK_USE_PLATFORM_ANDROID_KHR
15263
15264
    // ---- VK_KHR_win32_surface extension commands
15265
#if defined(VK_USE_PLATFORM_WIN32_KHR)
15266
    .CreateWin32SurfaceKHR = terminator_CreateWin32SurfaceKHR,
15267
#endif // VK_USE_PLATFORM_WIN32_KHR
15268
#if defined(VK_USE_PLATFORM_WIN32_KHR)
15269
    .GetPhysicalDeviceWin32PresentationSupportKHR = terminator_GetPhysicalDeviceWin32PresentationSupportKHR,
15270
#endif // VK_USE_PLATFORM_WIN32_KHR
15271
15272
    // ---- VK_KHR_video_queue extension commands
15273
    .GetPhysicalDeviceVideoCapabilitiesKHR = terminator_GetPhysicalDeviceVideoCapabilitiesKHR,
15274
    .GetPhysicalDeviceVideoFormatPropertiesKHR = terminator_GetPhysicalDeviceVideoFormatPropertiesKHR,
15275
15276
    // ---- VK_KHR_get_physical_device_properties2 extension commands
15277
    .GetPhysicalDeviceFeatures2KHR = terminator_GetPhysicalDeviceFeatures2,
15278
    .GetPhysicalDeviceProperties2KHR = terminator_GetPhysicalDeviceProperties2,
15279
    .GetPhysicalDeviceFormatProperties2KHR = terminator_GetPhysicalDeviceFormatProperties2,
15280
    .GetPhysicalDeviceImageFormatProperties2KHR = terminator_GetPhysicalDeviceImageFormatProperties2,
15281
    .GetPhysicalDeviceQueueFamilyProperties2KHR = terminator_GetPhysicalDeviceQueueFamilyProperties2,
15282
    .GetPhysicalDeviceMemoryProperties2KHR = terminator_GetPhysicalDeviceMemoryProperties2,
15283
    .GetPhysicalDeviceSparseImageFormatProperties2KHR = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
15284
15285
    // ---- VK_KHR_device_group_creation extension commands
15286
    .EnumeratePhysicalDeviceGroupsKHR = terminator_EnumeratePhysicalDeviceGroups,
15287
15288
    // ---- VK_KHR_external_memory_capabilities extension commands
15289
    .GetPhysicalDeviceExternalBufferPropertiesKHR = terminator_GetPhysicalDeviceExternalBufferProperties,
15290
15291
    // ---- VK_KHR_external_semaphore_capabilities extension commands
15292
    .GetPhysicalDeviceExternalSemaphorePropertiesKHR = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
15293
15294
    // ---- VK_KHR_external_fence_capabilities extension commands
15295
    .GetPhysicalDeviceExternalFencePropertiesKHR = terminator_GetPhysicalDeviceExternalFenceProperties,
15296
15297
    // ---- VK_KHR_performance_query extension commands
15298
    .EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
15299
    .GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
15300
15301
    // ---- VK_KHR_get_surface_capabilities2 extension commands
15302
    .GetPhysicalDeviceSurfaceCapabilities2KHR = terminator_GetPhysicalDeviceSurfaceCapabilities2KHR,
15303
    .GetPhysicalDeviceSurfaceFormats2KHR = terminator_GetPhysicalDeviceSurfaceFormats2KHR,
15304
15305
    // ---- VK_KHR_get_display_properties2 extension commands
15306
    .GetPhysicalDeviceDisplayProperties2KHR = terminator_GetPhysicalDeviceDisplayProperties2KHR,
15307
    .GetPhysicalDeviceDisplayPlaneProperties2KHR = terminator_GetPhysicalDeviceDisplayPlaneProperties2KHR,
15308
    .GetDisplayModeProperties2KHR = terminator_GetDisplayModeProperties2KHR,
15309
    .GetDisplayPlaneCapabilities2KHR = terminator_GetDisplayPlaneCapabilities2KHR,
15310
15311
    // ---- VK_KHR_fragment_shading_rate extension commands
15312
    .GetPhysicalDeviceFragmentShadingRatesKHR = terminator_GetPhysicalDeviceFragmentShadingRatesKHR,
15313
15314
    // ---- VK_KHR_video_encode_queue extension commands
15315
    .GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR,
15316
15317
    // ---- VK_KHR_cooperative_matrix extension commands
15318
    .GetPhysicalDeviceCooperativeMatrixPropertiesKHR = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR,
15319
15320
    // ---- VK_KHR_calibrated_timestamps extension commands
15321
    .GetPhysicalDeviceCalibrateableTimeDomainsKHR = terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR,
15322
15323
    // ---- VK_EXT_debug_report extension commands
15324
    .CreateDebugReportCallbackEXT = terminator_CreateDebugReportCallbackEXT,
15325
    .DestroyDebugReportCallbackEXT = terminator_DestroyDebugReportCallbackEXT,
15326
    .DebugReportMessageEXT = terminator_DebugReportMessageEXT,
15327
15328
    // ---- VK_GGP_stream_descriptor_surface extension commands
15329
#if defined(VK_USE_PLATFORM_GGP)
15330
    .CreateStreamDescriptorSurfaceGGP = terminator_CreateStreamDescriptorSurfaceGGP,
15331
#endif // VK_USE_PLATFORM_GGP
15332
15333
    // ---- VK_NV_external_memory_capabilities extension commands
15334
    .GetPhysicalDeviceExternalImageFormatPropertiesNV = terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV,
15335
15336
    // ---- VK_NN_vi_surface extension commands
15337
#if defined(VK_USE_PLATFORM_VI_NN)
15338
    .CreateViSurfaceNN = terminator_CreateViSurfaceNN,
15339
#endif // VK_USE_PLATFORM_VI_NN
15340
15341
    // ---- VK_EXT_direct_mode_display extension commands
15342
    .ReleaseDisplayEXT = terminator_ReleaseDisplayEXT,
15343
15344
    // ---- VK_EXT_acquire_xlib_display extension commands
15345
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
15346
    .AcquireXlibDisplayEXT = terminator_AcquireXlibDisplayEXT,
15347
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
15348
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
15349
    .GetRandROutputDisplayEXT = terminator_GetRandROutputDisplayEXT,
15350
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
15351
15352
    // ---- VK_EXT_display_surface_counter extension commands
15353
    .GetPhysicalDeviceSurfaceCapabilities2EXT = terminator_GetPhysicalDeviceSurfaceCapabilities2EXT,
15354
15355
    // ---- VK_MVK_ios_surface extension commands
15356
#if defined(VK_USE_PLATFORM_IOS_MVK)
15357
    .CreateIOSSurfaceMVK = terminator_CreateIOSSurfaceMVK,
15358
#endif // VK_USE_PLATFORM_IOS_MVK
15359
15360
    // ---- VK_MVK_macos_surface extension commands
15361
#if defined(VK_USE_PLATFORM_MACOS_MVK)
15362
    .CreateMacOSSurfaceMVK = terminator_CreateMacOSSurfaceMVK,
15363
#endif // VK_USE_PLATFORM_MACOS_MVK
15364
15365
    // ---- VK_EXT_debug_utils extension commands
15366
    .CreateDebugUtilsMessengerEXT = terminator_CreateDebugUtilsMessengerEXT,
15367
    .DestroyDebugUtilsMessengerEXT = terminator_DestroyDebugUtilsMessengerEXT,
15368
    .SubmitDebugUtilsMessageEXT = terminator_SubmitDebugUtilsMessageEXT,
15369
15370
    // ---- VK_EXT_descriptor_heap extension commands
15371
    .GetPhysicalDeviceDescriptorSizeEXT = terminator_GetPhysicalDeviceDescriptorSizeEXT,
15372
15373
    // ---- VK_EXT_sample_locations extension commands
15374
    .GetPhysicalDeviceMultisamplePropertiesEXT = terminator_GetPhysicalDeviceMultisamplePropertiesEXT,
15375
15376
    // ---- VK_EXT_calibrated_timestamps extension commands
15377
    .GetPhysicalDeviceCalibrateableTimeDomainsEXT = terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT,
15378
15379
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
15380
#if defined(VK_USE_PLATFORM_FUCHSIA)
15381
    .CreateImagePipeSurfaceFUCHSIA = terminator_CreateImagePipeSurfaceFUCHSIA,
15382
#endif // VK_USE_PLATFORM_FUCHSIA
15383
15384
    // ---- VK_EXT_metal_surface extension commands
15385
#if defined(VK_USE_PLATFORM_METAL_EXT)
15386
    .CreateMetalSurfaceEXT = terminator_CreateMetalSurfaceEXT,
15387
#endif // VK_USE_PLATFORM_METAL_EXT
15388
15389
    // ---- VK_EXT_tooling_info extension commands
15390
    .GetPhysicalDeviceToolPropertiesEXT = terminator_GetPhysicalDeviceToolPropertiesEXT,
15391
15392
    // ---- VK_NV_cooperative_matrix extension commands
15393
    .GetPhysicalDeviceCooperativeMatrixPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV,
15394
15395
    // ---- VK_NV_coverage_reduction_mode extension commands
15396
    .GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
15397
15398
    // ---- VK_EXT_full_screen_exclusive extension commands
15399
#if defined(VK_USE_PLATFORM_WIN32_KHR)
15400
    .GetPhysicalDeviceSurfacePresentModes2EXT = terminator_GetPhysicalDeviceSurfacePresentModes2EXT,
15401
#endif // VK_USE_PLATFORM_WIN32_KHR
15402
15403
    // ---- VK_EXT_headless_surface extension commands
15404
    .CreateHeadlessSurfaceEXT = terminator_CreateHeadlessSurfaceEXT,
15405
15406
    // ---- VK_EXT_acquire_drm_display extension commands
15407
    .AcquireDrmDisplayEXT = terminator_AcquireDrmDisplayEXT,
15408
    .GetDrmDisplayEXT = terminator_GetDrmDisplayEXT,
15409
15410
    // ---- VK_NV_acquire_winrt_display extension commands
15411
#if defined(VK_USE_PLATFORM_WIN32_KHR)
15412
    .AcquireWinrtDisplayNV = terminator_AcquireWinrtDisplayNV,
15413
#endif // VK_USE_PLATFORM_WIN32_KHR
15414
#if defined(VK_USE_PLATFORM_WIN32_KHR)
15415
    .GetWinrtDisplayNV = terminator_GetWinrtDisplayNV,
15416
#endif // VK_USE_PLATFORM_WIN32_KHR
15417
15418
    // ---- VK_EXT_directfb_surface extension commands
15419
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
15420
    .CreateDirectFBSurfaceEXT = terminator_CreateDirectFBSurfaceEXT,
15421
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
15422
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
15423
    .GetPhysicalDeviceDirectFBPresentationSupportEXT = terminator_GetPhysicalDeviceDirectFBPresentationSupportEXT,
15424
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
15425
15426
    // ---- VK_QNX_screen_surface extension commands
15427
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
15428
    .CreateScreenSurfaceQNX = terminator_CreateScreenSurfaceQNX,
15429
#endif // VK_USE_PLATFORM_SCREEN_QNX
15430
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
15431
    .GetPhysicalDeviceScreenPresentationSupportQNX = terminator_GetPhysicalDeviceScreenPresentationSupportQNX,
15432
#endif // VK_USE_PLATFORM_SCREEN_QNX
15433
15434
    // ---- VK_ARM_tensors extension commands
15435
    .GetPhysicalDeviceExternalTensorPropertiesARM = terminator_GetPhysicalDeviceExternalTensorPropertiesARM,
15436
15437
    // ---- VK_NV_optical_flow extension commands
15438
    .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV,
15439
15440
    // ---- VK_NV_cooperative_vector extension commands
15441
    .GetPhysicalDeviceCooperativeVectorPropertiesNV = terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV,
15442
15443
    // ---- VK_ARM_data_graph extension commands
15444
    .GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = terminator_GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM,
15445
    .GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = terminator_GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM,
15446
15447
    // ---- VK_OHOS_surface extension commands
15448
#if defined(VK_USE_PLATFORM_OHOS)
15449
    .CreateSurfaceOHOS = terminator_CreateSurfaceOHOS,
15450
#endif // VK_USE_PLATFORM_OHOS
15451
15452
    // ---- VK_NV_cooperative_matrix2 extension commands
15453
    .GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV,
15454
15455
    // ---- VK_ARM_performance_counters_by_region extension commands
15456
    .EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM,
15457
15458
    // ---- VK_ARM_shader_instrumentation extension commands
15459
    .EnumeratePhysicalDeviceShaderInstrumentationMetricsARM = terminator_EnumeratePhysicalDeviceShaderInstrumentationMetricsARM,
15460
15461
    // ---- VK_SEC_ubm_surface extension commands
15462
#if defined(VK_USE_PLATFORM_UBM_SEC)
15463
    .CreateUbmSurfaceSEC = terminator_CreateUbmSurfaceSEC,
15464
#endif // VK_USE_PLATFORM_UBM_SEC
15465
#if defined(VK_USE_PLATFORM_UBM_SEC)
15466
    .GetPhysicalDeviceUbmPresentationSupportSEC = terminator_GetPhysicalDeviceUbmPresentationSupportSEC,
15467
#endif // VK_USE_PLATFORM_UBM_SEC
15468
};
15469
15470
// A null-terminated list of all of the instance extensions supported by the loader.
15471
// If an instance extension name is not in this list, but it is exported by one or more of the
15472
// ICDs detected by the loader, then the extension name not in the list will be filtered out
15473
// before passing the list of extensions to the application.
15474
const char *const LOADER_INSTANCE_EXTENSIONS[] = {
15475
                                                  VK_KHR_SURFACE_EXTENSION_NAME,
15476
                                                  VK_KHR_DISPLAY_EXTENSION_NAME,
15477
#if defined(VK_USE_PLATFORM_XLIB_KHR)
15478
                                                  VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
15479
#endif // VK_USE_PLATFORM_XLIB_KHR
15480
#if defined(VK_USE_PLATFORM_XCB_KHR)
15481
                                                  VK_KHR_XCB_SURFACE_EXTENSION_NAME,
15482
#endif // VK_USE_PLATFORM_XCB_KHR
15483
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
15484
                                                  VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
15485
#endif // VK_USE_PLATFORM_WAYLAND_KHR
15486
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
15487
                                                  VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
15488
#endif // VK_USE_PLATFORM_ANDROID_KHR
15489
#if defined(VK_USE_PLATFORM_WIN32_KHR)
15490
                                                  VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
15491
#endif // VK_USE_PLATFORM_WIN32_KHR
15492
                                                  VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME,
15493
                                                  VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME,
15494
                                                  VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
15495
                                                  VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME,
15496
                                                  VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME,
15497
                                                  VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME,
15498
                                                  VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME,
15499
                                                  VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME,
15500
                                                  VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME,
15501
                                                  VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
15502
                                                  VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
15503
#if defined(VK_USE_PLATFORM_GGP)
15504
                                                  VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME,
15505
#endif // VK_USE_PLATFORM_GGP
15506
                                                  VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
15507
                                                  VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME,
15508
#if defined(VK_USE_PLATFORM_VI_NN)
15509
                                                  VK_NN_VI_SURFACE_EXTENSION_NAME,
15510
#endif // VK_USE_PLATFORM_VI_NN
15511
                                                  VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME,
15512
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
15513
                                                  VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME,
15514
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
15515
                                                  VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME,
15516
                                                  VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME,
15517
#if defined(VK_USE_PLATFORM_IOS_MVK)
15518
                                                  VK_MVK_IOS_SURFACE_EXTENSION_NAME,
15519
#endif // VK_USE_PLATFORM_IOS_MVK
15520
#if defined(VK_USE_PLATFORM_MACOS_MVK)
15521
                                                  VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
15522
#endif // VK_USE_PLATFORM_MACOS_MVK
15523
                                                  VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
15524
#if defined(VK_USE_PLATFORM_FUCHSIA)
15525
                                                  VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME,
15526
#endif // VK_USE_PLATFORM_FUCHSIA
15527
#if defined(VK_USE_PLATFORM_METAL_EXT)
15528
                                                  VK_EXT_METAL_SURFACE_EXTENSION_NAME,
15529
#endif // VK_USE_PLATFORM_METAL_EXT
15530
                                                  VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME,
15531
                                                  VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME,
15532
                                                  VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
15533
                                                  VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME,
15534
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
15535
                                                  VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME,
15536
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
15537
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
15538
                                                  VK_QNX_SCREEN_SURFACE_EXTENSION_NAME,
15539
#endif // VK_USE_PLATFORM_SCREEN_QNX
15540
                                                  VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME,
15541
                                                  VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME,
15542
                                                  VK_EXT_LAYER_SETTINGS_EXTENSION_NAME,
15543
                                                  VK_NV_DISPLAY_STEREO_EXTENSION_NAME,
15544
#if defined(VK_USE_PLATFORM_OHOS)
15545
                                                  VK_OHOS_SURFACE_EXTENSION_NAME,
15546
#endif // VK_USE_PLATFORM_OHOS
15547
#if defined(VK_USE_PLATFORM_UBM_SEC)
15548
                                                  VK_SEC_UBM_SURFACE_EXTENSION_NAME,
15549
#endif // VK_USE_PLATFORM_UBM_SEC
15550
                                                  NULL };
15551
// clang-format on