Coverage Report

Created: 2025-12-14 06:58

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/vulkan-loader/loader/generated/vk_loader_extensions.c
Line
Count
Source
1
// *** THIS FILE IS GENERATED - DO NOT EDIT ***
2
// See loader_extension_generator.py for modifications
3
4
/*
5
 * Copyright (c) 2015-2025 The Khronos Group Inc.
6
 * Copyright (c) 2015-2025 Valve Corporation
7
 * Copyright (c) 2015-2025 LunarG, Inc.
8
 * Copyright (c) 2021-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
9
 * Copyright (c) 2023-2023 RasterGrid Kft.
10
 *
11
 * Licensed under the Apache License, Version 2.0 (the "License");
12
 * you may not use this file except in compliance with the License.
13
 * You may obtain a copy of the License at
14
 *
15
 *     http://www.apache.org/licenses/LICENSE-2.0
16
 *
17
 * Unless required by applicable law or agreed to in writing, software
18
 * distributed under the License is distributed on an "AS IS" BASIS,
19
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
 * See the License for the specific language governing permissions and
21
 * limitations under the License.
22
 *
23
 * Author: Mark Lobodzinski <mark@lunarg.com>
24
 * Author: Mark Young <marky@lunarg.com>
25
 * Author: Charles Giessen <charles@lunarg.com>
26
 */
27
28
// clang-format off
29
#include <stdio.h>
30
#include <stdlib.h>
31
#include <string.h>
32
#include "loader.h"
33
#include "vk_loader_extensions.h"
34
#include <vulkan/vk_icd.h>
35
#include "wsi.h"
36
#include "debug_utils.h"
37
#include "extension_manual.h"
38
39
// Device extension error function
40
0
VKAPI_ATTR VkResult VKAPI_CALL vkDevExtError(VkDevice dev) {
41
0
    struct loader_device *found_dev;
42
    // The device going in is a trampoline device
43
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(dev, &found_dev);
44
45
0
    if (icd_term)
46
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
47
0
                   "Bad destination in loader trampoline dispatch,"
48
0
                   "Are layers and extensions that you are calling enabled?");
49
0
    return VK_ERROR_EXTENSION_NOT_PRESENT;
50
0
}
51
52
0
VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst, struct loader_icd_term *icd_term) {
53
0
    const PFN_vkGetInstanceProcAddr fp_gipa = icd_term->scanned_icd->GetInstanceProcAddr;
54
55
0
#define LOOKUP_GIPA(func) icd_term->dispatch.func = (PFN_vk##func)fp_gipa(icd_term->instance, "vk" #func);
56
57
0
#define LOOKUP_REQUIRED_GIPA(func)                                                      \
58
0
    do {                                                                                \
59
0
        LOOKUP_GIPA(func);                                                              \
60
0
        if (!icd_term->dispatch.func) {                                                 \
61
0
            loader_log(inst, VULKAN_LOADER_WARN_BIT, 0, "Unable to load %s from ICD %s",\
62
0
                       "vk"#func, icd_term->scanned_icd->lib_name);                     \
63
0
            return false;                                                               \
64
0
        }                                                                               \
65
0
    } while (0)
66
67
68
    // ---- Core Vulkan 1.0
69
0
    LOOKUP_REQUIRED_GIPA(DestroyInstance);
70
0
    LOOKUP_REQUIRED_GIPA(EnumeratePhysicalDevices);
71
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceFeatures);
72
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceFormatProperties);
73
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceImageFormatProperties);
74
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceProperties);
75
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceQueueFamilyProperties);
76
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceMemoryProperties);
77
0
    LOOKUP_REQUIRED_GIPA(GetDeviceProcAddr);
78
0
    LOOKUP_REQUIRED_GIPA(CreateDevice);
79
0
    LOOKUP_REQUIRED_GIPA(EnumerateDeviceExtensionProperties);
80
0
    LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceSparseImageFormatProperties);
81
82
    // ---- Core Vulkan 1.1
83
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceGroups);
84
0
    LOOKUP_GIPA(GetPhysicalDeviceFeatures2);
85
0
    LOOKUP_GIPA(GetPhysicalDeviceProperties2);
86
0
    LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2);
87
0
    LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2);
88
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2);
89
0
    LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2);
90
0
    LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2);
91
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalBufferProperties);
92
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalFenceProperties);
93
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphoreProperties);
94
95
    // ---- Core Vulkan 1.3
96
0
    LOOKUP_GIPA(GetPhysicalDeviceToolProperties);
97
98
    // ---- VK_KHR_surface extension commands
99
0
    LOOKUP_GIPA(DestroySurfaceKHR);
100
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceSupportKHR);
101
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilitiesKHR);
102
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormatsKHR);
103
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModesKHR);
104
105
    // ---- VK_KHR_swapchain extension commands
106
0
    LOOKUP_GIPA(GetPhysicalDevicePresentRectanglesKHR);
107
108
    // ---- VK_KHR_display extension commands
109
0
    LOOKUP_GIPA(GetPhysicalDeviceDisplayPropertiesKHR);
110
0
    LOOKUP_GIPA(GetPhysicalDeviceDisplayPlanePropertiesKHR);
111
0
    LOOKUP_GIPA(GetDisplayPlaneSupportedDisplaysKHR);
112
0
    LOOKUP_GIPA(GetDisplayModePropertiesKHR);
113
0
    LOOKUP_GIPA(CreateDisplayModeKHR);
114
0
    LOOKUP_GIPA(GetDisplayPlaneCapabilitiesKHR);
115
0
    LOOKUP_GIPA(CreateDisplayPlaneSurfaceKHR);
116
117
    // ---- VK_KHR_xlib_surface extension commands
118
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
119
0
    LOOKUP_GIPA(CreateXlibSurfaceKHR);
120
0
#endif // VK_USE_PLATFORM_XLIB_KHR
121
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
122
0
    LOOKUP_GIPA(GetPhysicalDeviceXlibPresentationSupportKHR);
123
0
#endif // VK_USE_PLATFORM_XLIB_KHR
124
125
    // ---- VK_KHR_xcb_surface extension commands
126
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
127
0
    LOOKUP_GIPA(CreateXcbSurfaceKHR);
128
0
#endif // VK_USE_PLATFORM_XCB_KHR
129
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
130
0
    LOOKUP_GIPA(GetPhysicalDeviceXcbPresentationSupportKHR);
131
0
#endif // VK_USE_PLATFORM_XCB_KHR
132
133
    // ---- VK_KHR_wayland_surface extension commands
134
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
135
0
    LOOKUP_GIPA(CreateWaylandSurfaceKHR);
136
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
137
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
138
0
    LOOKUP_GIPA(GetPhysicalDeviceWaylandPresentationSupportKHR);
139
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
140
141
    // ---- VK_KHR_android_surface extension commands
142
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
143
    LOOKUP_GIPA(CreateAndroidSurfaceKHR);
144
#endif // VK_USE_PLATFORM_ANDROID_KHR
145
146
    // ---- VK_KHR_win32_surface extension commands
147
#if defined(VK_USE_PLATFORM_WIN32_KHR)
148
    LOOKUP_GIPA(CreateWin32SurfaceKHR);
149
#endif // VK_USE_PLATFORM_WIN32_KHR
150
#if defined(VK_USE_PLATFORM_WIN32_KHR)
151
    LOOKUP_GIPA(GetPhysicalDeviceWin32PresentationSupportKHR);
152
#endif // VK_USE_PLATFORM_WIN32_KHR
153
154
    // ---- VK_KHR_video_queue extension commands
155
0
    LOOKUP_GIPA(GetPhysicalDeviceVideoCapabilitiesKHR);
156
0
    LOOKUP_GIPA(GetPhysicalDeviceVideoFormatPropertiesKHR);
157
158
    // ---- VK_KHR_get_physical_device_properties2 extension commands
159
0
    LOOKUP_GIPA(GetPhysicalDeviceFeatures2KHR);
160
0
    LOOKUP_GIPA(GetPhysicalDeviceProperties2KHR);
161
0
    LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2KHR);
162
0
    LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2KHR);
163
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2KHR);
164
0
    LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2KHR);
165
0
    LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2KHR);
166
167
    // ---- VK_KHR_device_group_creation extension commands
168
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceGroupsKHR);
169
170
    // ---- VK_KHR_external_memory_capabilities extension commands
171
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalBufferPropertiesKHR);
172
173
    // ---- VK_KHR_external_semaphore_capabilities extension commands
174
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphorePropertiesKHR);
175
176
    // ---- VK_KHR_external_fence_capabilities extension commands
177
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalFencePropertiesKHR);
178
179
    // ---- VK_KHR_performance_query extension commands
180
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
181
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
182
183
    // ---- VK_KHR_get_surface_capabilities2 extension commands
184
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2KHR);
185
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormats2KHR);
186
187
    // ---- VK_KHR_get_display_properties2 extension commands
188
0
    LOOKUP_GIPA(GetPhysicalDeviceDisplayProperties2KHR);
189
0
    LOOKUP_GIPA(GetPhysicalDeviceDisplayPlaneProperties2KHR);
190
0
    LOOKUP_GIPA(GetDisplayModeProperties2KHR);
191
0
    LOOKUP_GIPA(GetDisplayPlaneCapabilities2KHR);
192
193
    // ---- VK_KHR_fragment_shading_rate extension commands
194
0
    LOOKUP_GIPA(GetPhysicalDeviceFragmentShadingRatesKHR);
195
196
    // ---- VK_KHR_video_encode_queue extension commands
197
0
    LOOKUP_GIPA(GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR);
198
199
    // ---- VK_KHR_cooperative_matrix extension commands
200
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesKHR);
201
202
    // ---- VK_KHR_calibrated_timestamps extension commands
203
0
    LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsKHR);
204
205
    // ---- VK_EXT_debug_report extension commands
206
0
    LOOKUP_GIPA(CreateDebugReportCallbackEXT);
207
0
    LOOKUP_GIPA(DestroyDebugReportCallbackEXT);
208
0
    LOOKUP_GIPA(DebugReportMessageEXT);
209
210
    // ---- VK_GGP_stream_descriptor_surface extension commands
211
#if defined(VK_USE_PLATFORM_GGP)
212
    LOOKUP_GIPA(CreateStreamDescriptorSurfaceGGP);
213
#endif // VK_USE_PLATFORM_GGP
214
215
    // ---- VK_NV_external_memory_capabilities extension commands
216
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalImageFormatPropertiesNV);
217
218
    // ---- VK_NN_vi_surface extension commands
219
#if defined(VK_USE_PLATFORM_VI_NN)
220
    LOOKUP_GIPA(CreateViSurfaceNN);
221
#endif // VK_USE_PLATFORM_VI_NN
222
223
    // ---- VK_EXT_direct_mode_display extension commands
224
0
    LOOKUP_GIPA(ReleaseDisplayEXT);
225
226
    // ---- VK_EXT_acquire_xlib_display extension commands
227
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
228
0
    LOOKUP_GIPA(AcquireXlibDisplayEXT);
229
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
230
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
231
0
    LOOKUP_GIPA(GetRandROutputDisplayEXT);
232
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
233
234
    // ---- VK_EXT_display_surface_counter extension commands
235
0
    LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2EXT);
236
237
    // ---- VK_MVK_ios_surface extension commands
238
#if defined(VK_USE_PLATFORM_IOS_MVK)
239
    LOOKUP_GIPA(CreateIOSSurfaceMVK);
240
#endif // VK_USE_PLATFORM_IOS_MVK
241
242
    // ---- VK_MVK_macos_surface extension commands
243
#if defined(VK_USE_PLATFORM_MACOS_MVK)
244
    LOOKUP_GIPA(CreateMacOSSurfaceMVK);
245
#endif // VK_USE_PLATFORM_MACOS_MVK
246
247
    // ---- VK_EXT_debug_utils extension commands
248
0
    LOOKUP_GIPA(CreateDebugUtilsMessengerEXT);
249
0
    LOOKUP_GIPA(DestroyDebugUtilsMessengerEXT);
250
0
    LOOKUP_GIPA(SubmitDebugUtilsMessageEXT);
251
252
    // ---- VK_EXT_sample_locations extension commands
253
0
    LOOKUP_GIPA(GetPhysicalDeviceMultisamplePropertiesEXT);
254
255
    // ---- VK_EXT_calibrated_timestamps extension commands
256
0
    LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsEXT);
257
258
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
259
#if defined(VK_USE_PLATFORM_FUCHSIA)
260
    LOOKUP_GIPA(CreateImagePipeSurfaceFUCHSIA);
261
#endif // VK_USE_PLATFORM_FUCHSIA
262
263
    // ---- VK_EXT_metal_surface extension commands
264
#if defined(VK_USE_PLATFORM_METAL_EXT)
265
    LOOKUP_GIPA(CreateMetalSurfaceEXT);
266
#endif // VK_USE_PLATFORM_METAL_EXT
267
268
    // ---- VK_EXT_tooling_info extension commands
269
0
    LOOKUP_GIPA(GetPhysicalDeviceToolPropertiesEXT);
270
271
    // ---- VK_NV_cooperative_matrix extension commands
272
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesNV);
273
274
    // ---- VK_NV_coverage_reduction_mode extension commands
275
0
    LOOKUP_GIPA(GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
276
277
    // ---- VK_EXT_full_screen_exclusive extension commands
278
#if defined(VK_USE_PLATFORM_WIN32_KHR)
279
    LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModes2EXT);
280
#endif // VK_USE_PLATFORM_WIN32_KHR
281
282
    // ---- VK_EXT_headless_surface extension commands
283
0
    LOOKUP_GIPA(CreateHeadlessSurfaceEXT);
284
285
    // ---- VK_EXT_acquire_drm_display extension commands
286
0
    LOOKUP_GIPA(AcquireDrmDisplayEXT);
287
0
    LOOKUP_GIPA(GetDrmDisplayEXT);
288
289
    // ---- VK_NV_acquire_winrt_display extension commands
290
#if defined(VK_USE_PLATFORM_WIN32_KHR)
291
    LOOKUP_GIPA(AcquireWinrtDisplayNV);
292
#endif // VK_USE_PLATFORM_WIN32_KHR
293
#if defined(VK_USE_PLATFORM_WIN32_KHR)
294
    LOOKUP_GIPA(GetWinrtDisplayNV);
295
#endif // VK_USE_PLATFORM_WIN32_KHR
296
297
    // ---- VK_EXT_directfb_surface extension commands
298
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
299
    LOOKUP_GIPA(CreateDirectFBSurfaceEXT);
300
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
301
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
302
    LOOKUP_GIPA(GetPhysicalDeviceDirectFBPresentationSupportEXT);
303
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
304
305
    // ---- VK_QNX_screen_surface extension commands
306
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
307
    LOOKUP_GIPA(CreateScreenSurfaceQNX);
308
#endif // VK_USE_PLATFORM_SCREEN_QNX
309
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
310
    LOOKUP_GIPA(GetPhysicalDeviceScreenPresentationSupportQNX);
311
#endif // VK_USE_PLATFORM_SCREEN_QNX
312
313
    // ---- VK_ARM_tensors extension commands
314
0
    LOOKUP_GIPA(GetPhysicalDeviceExternalTensorPropertiesARM);
315
316
    // ---- VK_NV_optical_flow extension commands
317
0
    LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV);
318
319
    // ---- VK_NV_cooperative_vector extension commands
320
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeVectorPropertiesNV);
321
322
    // ---- VK_ARM_data_graph extension commands
323
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM);
324
0
    LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM);
325
326
    // ---- VK_OHOS_surface extension commands
327
#if defined(VK_USE_PLATFORM_OHOS)
328
    LOOKUP_GIPA(CreateSurfaceOHOS);
329
#endif // VK_USE_PLATFORM_OHOS
330
331
    // ---- VK_NV_cooperative_matrix2 extension commands
332
0
    LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV);
333
334
    // ---- VK_ARM_performance_counters_by_region extension commands
335
0
    LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM);
336
337
0
#undef LOOKUP_REQUIRED_GIPA
338
0
#undef LOOKUP_GIPA
339
340
0
    return true;
341
0
};
342
343
// Init Device function pointer dispatch table with core commands
344
VKAPI_ATTR void VKAPI_CALL loader_init_device_dispatch_table(struct loader_dev_dispatch_table *dev_table, PFN_vkGetDeviceProcAddr gpa,
345
0
                                                             VkDevice dev) {
346
0
    VkLayerDispatchTable *table = &dev_table->core_dispatch;
347
0
    if (table->magic != DEVICE_DISP_TABLE_MAGIC_NUMBER) { abort(); }
348
0
    for (uint32_t i = 0; i < MAX_NUM_UNKNOWN_EXTS; i++) dev_table->ext_dispatch[i] = (PFN_vkDevExt)vkDevExtError;
349
350
    // ---- Core Vulkan 1.0 commands
351
0
    table->GetDeviceProcAddr = gpa;
352
0
    table->DestroyDevice = (PFN_vkDestroyDevice)gpa(dev, "vkDestroyDevice");
353
0
    table->GetDeviceQueue = (PFN_vkGetDeviceQueue)gpa(dev, "vkGetDeviceQueue");
354
0
    table->QueueSubmit = (PFN_vkQueueSubmit)gpa(dev, "vkQueueSubmit");
355
0
    table->QueueWaitIdle = (PFN_vkQueueWaitIdle)gpa(dev, "vkQueueWaitIdle");
356
0
    table->DeviceWaitIdle = (PFN_vkDeviceWaitIdle)gpa(dev, "vkDeviceWaitIdle");
357
0
    table->AllocateMemory = (PFN_vkAllocateMemory)gpa(dev, "vkAllocateMemory");
358
0
    table->FreeMemory = (PFN_vkFreeMemory)gpa(dev, "vkFreeMemory");
359
0
    table->MapMemory = (PFN_vkMapMemory)gpa(dev, "vkMapMemory");
360
0
    table->UnmapMemory = (PFN_vkUnmapMemory)gpa(dev, "vkUnmapMemory");
361
0
    table->FlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)gpa(dev, "vkFlushMappedMemoryRanges");
362
0
    table->InvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)gpa(dev, "vkInvalidateMappedMemoryRanges");
363
0
    table->GetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)gpa(dev, "vkGetDeviceMemoryCommitment");
364
0
    table->BindBufferMemory = (PFN_vkBindBufferMemory)gpa(dev, "vkBindBufferMemory");
365
0
    table->BindImageMemory = (PFN_vkBindImageMemory)gpa(dev, "vkBindImageMemory");
366
0
    table->GetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)gpa(dev, "vkGetBufferMemoryRequirements");
367
0
    table->GetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)gpa(dev, "vkGetImageMemoryRequirements");
368
0
    table->GetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)gpa(dev, "vkGetImageSparseMemoryRequirements");
369
0
    table->QueueBindSparse = (PFN_vkQueueBindSparse)gpa(dev, "vkQueueBindSparse");
370
0
    table->CreateFence = (PFN_vkCreateFence)gpa(dev, "vkCreateFence");
371
0
    table->DestroyFence = (PFN_vkDestroyFence)gpa(dev, "vkDestroyFence");
372
0
    table->ResetFences = (PFN_vkResetFences)gpa(dev, "vkResetFences");
373
0
    table->GetFenceStatus = (PFN_vkGetFenceStatus)gpa(dev, "vkGetFenceStatus");
374
0
    table->WaitForFences = (PFN_vkWaitForFences)gpa(dev, "vkWaitForFences");
375
0
    table->CreateSemaphore = (PFN_vkCreateSemaphore)gpa(dev, "vkCreateSemaphore");
376
0
    table->DestroySemaphore = (PFN_vkDestroySemaphore)gpa(dev, "vkDestroySemaphore");
377
0
    table->CreateQueryPool = (PFN_vkCreateQueryPool)gpa(dev, "vkCreateQueryPool");
378
0
    table->DestroyQueryPool = (PFN_vkDestroyQueryPool)gpa(dev, "vkDestroyQueryPool");
379
0
    table->GetQueryPoolResults = (PFN_vkGetQueryPoolResults)gpa(dev, "vkGetQueryPoolResults");
380
0
    table->CreateBuffer = (PFN_vkCreateBuffer)gpa(dev, "vkCreateBuffer");
381
0
    table->DestroyBuffer = (PFN_vkDestroyBuffer)gpa(dev, "vkDestroyBuffer");
382
0
    table->CreateImage = (PFN_vkCreateImage)gpa(dev, "vkCreateImage");
383
0
    table->DestroyImage = (PFN_vkDestroyImage)gpa(dev, "vkDestroyImage");
384
0
    table->GetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)gpa(dev, "vkGetImageSubresourceLayout");
385
0
    table->CreateImageView = (PFN_vkCreateImageView)gpa(dev, "vkCreateImageView");
386
0
    table->DestroyImageView = (PFN_vkDestroyImageView)gpa(dev, "vkDestroyImageView");
387
0
    table->CreateCommandPool = (PFN_vkCreateCommandPool)gpa(dev, "vkCreateCommandPool");
388
0
    table->DestroyCommandPool = (PFN_vkDestroyCommandPool)gpa(dev, "vkDestroyCommandPool");
389
0
    table->ResetCommandPool = (PFN_vkResetCommandPool)gpa(dev, "vkResetCommandPool");
390
0
    table->AllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)gpa(dev, "vkAllocateCommandBuffers");
391
0
    table->FreeCommandBuffers = (PFN_vkFreeCommandBuffers)gpa(dev, "vkFreeCommandBuffers");
392
0
    table->BeginCommandBuffer = (PFN_vkBeginCommandBuffer)gpa(dev, "vkBeginCommandBuffer");
393
0
    table->EndCommandBuffer = (PFN_vkEndCommandBuffer)gpa(dev, "vkEndCommandBuffer");
394
0
    table->ResetCommandBuffer = (PFN_vkResetCommandBuffer)gpa(dev, "vkResetCommandBuffer");
395
0
    table->CmdCopyBuffer = (PFN_vkCmdCopyBuffer)gpa(dev, "vkCmdCopyBuffer");
396
0
    table->CmdCopyImage = (PFN_vkCmdCopyImage)gpa(dev, "vkCmdCopyImage");
397
0
    table->CmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)gpa(dev, "vkCmdCopyBufferToImage");
398
0
    table->CmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)gpa(dev, "vkCmdCopyImageToBuffer");
399
0
    table->CmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)gpa(dev, "vkCmdUpdateBuffer");
400
0
    table->CmdFillBuffer = (PFN_vkCmdFillBuffer)gpa(dev, "vkCmdFillBuffer");
401
0
    table->CmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)gpa(dev, "vkCmdPipelineBarrier");
402
0
    table->CmdBeginQuery = (PFN_vkCmdBeginQuery)gpa(dev, "vkCmdBeginQuery");
403
0
    table->CmdEndQuery = (PFN_vkCmdEndQuery)gpa(dev, "vkCmdEndQuery");
404
0
    table->CmdResetQueryPool = (PFN_vkCmdResetQueryPool)gpa(dev, "vkCmdResetQueryPool");
405
0
    table->CmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)gpa(dev, "vkCmdWriteTimestamp");
406
0
    table->CmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)gpa(dev, "vkCmdCopyQueryPoolResults");
407
0
    table->CmdExecuteCommands = (PFN_vkCmdExecuteCommands)gpa(dev, "vkCmdExecuteCommands");
408
0
    table->CreateEvent = (PFN_vkCreateEvent)gpa(dev, "vkCreateEvent");
409
0
    table->DestroyEvent = (PFN_vkDestroyEvent)gpa(dev, "vkDestroyEvent");
410
0
    table->GetEventStatus = (PFN_vkGetEventStatus)gpa(dev, "vkGetEventStatus");
411
0
    table->SetEvent = (PFN_vkSetEvent)gpa(dev, "vkSetEvent");
412
0
    table->ResetEvent = (PFN_vkResetEvent)gpa(dev, "vkResetEvent");
413
0
    table->CreateBufferView = (PFN_vkCreateBufferView)gpa(dev, "vkCreateBufferView");
414
0
    table->DestroyBufferView = (PFN_vkDestroyBufferView)gpa(dev, "vkDestroyBufferView");
415
0
    table->CreateShaderModule = (PFN_vkCreateShaderModule)gpa(dev, "vkCreateShaderModule");
416
0
    table->DestroyShaderModule = (PFN_vkDestroyShaderModule)gpa(dev, "vkDestroyShaderModule");
417
0
    table->CreatePipelineCache = (PFN_vkCreatePipelineCache)gpa(dev, "vkCreatePipelineCache");
418
0
    table->DestroyPipelineCache = (PFN_vkDestroyPipelineCache)gpa(dev, "vkDestroyPipelineCache");
419
0
    table->GetPipelineCacheData = (PFN_vkGetPipelineCacheData)gpa(dev, "vkGetPipelineCacheData");
420
0
    table->MergePipelineCaches = (PFN_vkMergePipelineCaches)gpa(dev, "vkMergePipelineCaches");
421
0
    table->CreateComputePipelines = (PFN_vkCreateComputePipelines)gpa(dev, "vkCreateComputePipelines");
422
0
    table->DestroyPipeline = (PFN_vkDestroyPipeline)gpa(dev, "vkDestroyPipeline");
423
0
    table->CreatePipelineLayout = (PFN_vkCreatePipelineLayout)gpa(dev, "vkCreatePipelineLayout");
424
0
    table->DestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)gpa(dev, "vkDestroyPipelineLayout");
425
0
    table->CreateSampler = (PFN_vkCreateSampler)gpa(dev, "vkCreateSampler");
426
0
    table->DestroySampler = (PFN_vkDestroySampler)gpa(dev, "vkDestroySampler");
427
0
    table->CreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)gpa(dev, "vkCreateDescriptorSetLayout");
428
0
    table->DestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)gpa(dev, "vkDestroyDescriptorSetLayout");
429
0
    table->CreateDescriptorPool = (PFN_vkCreateDescriptorPool)gpa(dev, "vkCreateDescriptorPool");
430
0
    table->DestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)gpa(dev, "vkDestroyDescriptorPool");
431
0
    table->ResetDescriptorPool = (PFN_vkResetDescriptorPool)gpa(dev, "vkResetDescriptorPool");
432
0
    table->AllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)gpa(dev, "vkAllocateDescriptorSets");
433
0
    table->FreeDescriptorSets = (PFN_vkFreeDescriptorSets)gpa(dev, "vkFreeDescriptorSets");
434
0
    table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)gpa(dev, "vkUpdateDescriptorSets");
435
0
    table->CmdBindPipeline = (PFN_vkCmdBindPipeline)gpa(dev, "vkCmdBindPipeline");
436
0
    table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)gpa(dev, "vkCmdBindDescriptorSets");
437
0
    table->CmdClearColorImage = (PFN_vkCmdClearColorImage)gpa(dev, "vkCmdClearColorImage");
438
0
    table->CmdDispatch = (PFN_vkCmdDispatch)gpa(dev, "vkCmdDispatch");
439
0
    table->CmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)gpa(dev, "vkCmdDispatchIndirect");
440
0
    table->CmdSetEvent = (PFN_vkCmdSetEvent)gpa(dev, "vkCmdSetEvent");
441
0
    table->CmdResetEvent = (PFN_vkCmdResetEvent)gpa(dev, "vkCmdResetEvent");
442
0
    table->CmdWaitEvents = (PFN_vkCmdWaitEvents)gpa(dev, "vkCmdWaitEvents");
443
0
    table->CmdPushConstants = (PFN_vkCmdPushConstants)gpa(dev, "vkCmdPushConstants");
444
0
    table->CreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)gpa(dev, "vkCreateGraphicsPipelines");
445
0
    table->CreateFramebuffer = (PFN_vkCreateFramebuffer)gpa(dev, "vkCreateFramebuffer");
446
0
    table->DestroyFramebuffer = (PFN_vkDestroyFramebuffer)gpa(dev, "vkDestroyFramebuffer");
447
0
    table->CreateRenderPass = (PFN_vkCreateRenderPass)gpa(dev, "vkCreateRenderPass");
448
0
    table->DestroyRenderPass = (PFN_vkDestroyRenderPass)gpa(dev, "vkDestroyRenderPass");
449
0
    table->GetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)gpa(dev, "vkGetRenderAreaGranularity");
450
0
    table->CmdSetViewport = (PFN_vkCmdSetViewport)gpa(dev, "vkCmdSetViewport");
451
0
    table->CmdSetScissor = (PFN_vkCmdSetScissor)gpa(dev, "vkCmdSetScissor");
452
0
    table->CmdSetLineWidth = (PFN_vkCmdSetLineWidth)gpa(dev, "vkCmdSetLineWidth");
453
0
    table->CmdSetDepthBias = (PFN_vkCmdSetDepthBias)gpa(dev, "vkCmdSetDepthBias");
454
0
    table->CmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)gpa(dev, "vkCmdSetBlendConstants");
455
0
    table->CmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)gpa(dev, "vkCmdSetDepthBounds");
456
0
    table->CmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)gpa(dev, "vkCmdSetStencilCompareMask");
457
0
    table->CmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)gpa(dev, "vkCmdSetStencilWriteMask");
458
0
    table->CmdSetStencilReference = (PFN_vkCmdSetStencilReference)gpa(dev, "vkCmdSetStencilReference");
459
0
    table->CmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)gpa(dev, "vkCmdBindIndexBuffer");
460
0
    table->CmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)gpa(dev, "vkCmdBindVertexBuffers");
461
0
    table->CmdDraw = (PFN_vkCmdDraw)gpa(dev, "vkCmdDraw");
462
0
    table->CmdDrawIndexed = (PFN_vkCmdDrawIndexed)gpa(dev, "vkCmdDrawIndexed");
463
0
    table->CmdDrawIndirect = (PFN_vkCmdDrawIndirect)gpa(dev, "vkCmdDrawIndirect");
464
0
    table->CmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)gpa(dev, "vkCmdDrawIndexedIndirect");
465
0
    table->CmdBlitImage = (PFN_vkCmdBlitImage)gpa(dev, "vkCmdBlitImage");
466
0
    table->CmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)gpa(dev, "vkCmdClearDepthStencilImage");
467
0
    table->CmdClearAttachments = (PFN_vkCmdClearAttachments)gpa(dev, "vkCmdClearAttachments");
468
0
    table->CmdResolveImage = (PFN_vkCmdResolveImage)gpa(dev, "vkCmdResolveImage");
469
0
    table->CmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)gpa(dev, "vkCmdBeginRenderPass");
470
0
    table->CmdNextSubpass = (PFN_vkCmdNextSubpass)gpa(dev, "vkCmdNextSubpass");
471
0
    table->CmdEndRenderPass = (PFN_vkCmdEndRenderPass)gpa(dev, "vkCmdEndRenderPass");
472
473
    // ---- Core Vulkan 1.1 commands
474
0
    table->BindBufferMemory2 = (PFN_vkBindBufferMemory2)gpa(dev, "vkBindBufferMemory2");
475
0
    table->BindImageMemory2 = (PFN_vkBindImageMemory2)gpa(dev, "vkBindImageMemory2");
476
0
    table->GetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)gpa(dev, "vkGetDeviceGroupPeerMemoryFeatures");
477
0
    table->CmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)gpa(dev, "vkCmdSetDeviceMask");
478
0
    table->GetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)gpa(dev, "vkGetImageMemoryRequirements2");
479
0
    table->GetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)gpa(dev, "vkGetBufferMemoryRequirements2");
480
0
    table->GetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)gpa(dev, "vkGetImageSparseMemoryRequirements2");
481
0
    table->TrimCommandPool = (PFN_vkTrimCommandPool)gpa(dev, "vkTrimCommandPool");
482
0
    table->GetDeviceQueue2 = (PFN_vkGetDeviceQueue2)gpa(dev, "vkGetDeviceQueue2");
483
0
    table->CmdDispatchBase = (PFN_vkCmdDispatchBase)gpa(dev, "vkCmdDispatchBase");
484
0
    table->CreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)gpa(dev, "vkCreateDescriptorUpdateTemplate");
485
0
    table->DestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)gpa(dev, "vkDestroyDescriptorUpdateTemplate");
486
0
    table->UpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)gpa(dev, "vkUpdateDescriptorSetWithTemplate");
487
0
    table->GetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)gpa(dev, "vkGetDescriptorSetLayoutSupport");
488
0
    table->CreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)gpa(dev, "vkCreateSamplerYcbcrConversion");
489
0
    table->DestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)gpa(dev, "vkDestroySamplerYcbcrConversion");
490
491
    // ---- Core Vulkan 1.2 commands
492
0
    table->ResetQueryPool = (PFN_vkResetQueryPool)gpa(dev, "vkResetQueryPool");
493
0
    table->GetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)gpa(dev, "vkGetSemaphoreCounterValue");
494
0
    table->WaitSemaphores = (PFN_vkWaitSemaphores)gpa(dev, "vkWaitSemaphores");
495
0
    table->SignalSemaphore = (PFN_vkSignalSemaphore)gpa(dev, "vkSignalSemaphore");
496
0
    table->GetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)gpa(dev, "vkGetBufferDeviceAddress");
497
0
    table->GetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)gpa(dev, "vkGetBufferOpaqueCaptureAddress");
498
0
    table->GetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)gpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddress");
499
0
    table->CmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)gpa(dev, "vkCmdDrawIndirectCount");
500
0
    table->CmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)gpa(dev, "vkCmdDrawIndexedIndirectCount");
501
0
    table->CreateRenderPass2 = (PFN_vkCreateRenderPass2)gpa(dev, "vkCreateRenderPass2");
502
0
    table->CmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)gpa(dev, "vkCmdBeginRenderPass2");
503
0
    table->CmdNextSubpass2 = (PFN_vkCmdNextSubpass2)gpa(dev, "vkCmdNextSubpass2");
504
0
    table->CmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)gpa(dev, "vkCmdEndRenderPass2");
505
506
    // ---- Core Vulkan 1.3 commands
507
0
    table->CreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)gpa(dev, "vkCreatePrivateDataSlot");
508
0
    table->DestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)gpa(dev, "vkDestroyPrivateDataSlot");
509
0
    table->SetPrivateData = (PFN_vkSetPrivateData)gpa(dev, "vkSetPrivateData");
510
0
    table->GetPrivateData = (PFN_vkGetPrivateData)gpa(dev, "vkGetPrivateData");
511
0
    table->CmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)gpa(dev, "vkCmdPipelineBarrier2");
512
0
    table->CmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)gpa(dev, "vkCmdWriteTimestamp2");
513
0
    table->QueueSubmit2 = (PFN_vkQueueSubmit2)gpa(dev, "vkQueueSubmit2");
514
0
    table->CmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)gpa(dev, "vkCmdCopyBuffer2");
515
0
    table->CmdCopyImage2 = (PFN_vkCmdCopyImage2)gpa(dev, "vkCmdCopyImage2");
516
0
    table->CmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)gpa(dev, "vkCmdCopyBufferToImage2");
517
0
    table->CmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)gpa(dev, "vkCmdCopyImageToBuffer2");
518
0
    table->GetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)gpa(dev, "vkGetDeviceBufferMemoryRequirements");
519
0
    table->GetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)gpa(dev, "vkGetDeviceImageMemoryRequirements");
520
0
    table->GetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)gpa(dev, "vkGetDeviceImageSparseMemoryRequirements");
521
0
    table->CmdSetEvent2 = (PFN_vkCmdSetEvent2)gpa(dev, "vkCmdSetEvent2");
522
0
    table->CmdResetEvent2 = (PFN_vkCmdResetEvent2)gpa(dev, "vkCmdResetEvent2");
523
0
    table->CmdWaitEvents2 = (PFN_vkCmdWaitEvents2)gpa(dev, "vkCmdWaitEvents2");
524
0
    table->CmdBlitImage2 = (PFN_vkCmdBlitImage2)gpa(dev, "vkCmdBlitImage2");
525
0
    table->CmdResolveImage2 = (PFN_vkCmdResolveImage2)gpa(dev, "vkCmdResolveImage2");
526
0
    table->CmdBeginRendering = (PFN_vkCmdBeginRendering)gpa(dev, "vkCmdBeginRendering");
527
0
    table->CmdEndRendering = (PFN_vkCmdEndRendering)gpa(dev, "vkCmdEndRendering");
528
0
    table->CmdSetCullMode = (PFN_vkCmdSetCullMode)gpa(dev, "vkCmdSetCullMode");
529
0
    table->CmdSetFrontFace = (PFN_vkCmdSetFrontFace)gpa(dev, "vkCmdSetFrontFace");
530
0
    table->CmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)gpa(dev, "vkCmdSetPrimitiveTopology");
531
0
    table->CmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)gpa(dev, "vkCmdSetViewportWithCount");
532
0
    table->CmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)gpa(dev, "vkCmdSetScissorWithCount");
533
0
    table->CmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)gpa(dev, "vkCmdBindVertexBuffers2");
534
0
    table->CmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)gpa(dev, "vkCmdSetDepthTestEnable");
535
0
    table->CmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)gpa(dev, "vkCmdSetDepthWriteEnable");
536
0
    table->CmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)gpa(dev, "vkCmdSetDepthCompareOp");
537
0
    table->CmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)gpa(dev, "vkCmdSetDepthBoundsTestEnable");
538
0
    table->CmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)gpa(dev, "vkCmdSetStencilTestEnable");
539
0
    table->CmdSetStencilOp = (PFN_vkCmdSetStencilOp)gpa(dev, "vkCmdSetStencilOp");
540
0
    table->CmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)gpa(dev, "vkCmdSetRasterizerDiscardEnable");
541
0
    table->CmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)gpa(dev, "vkCmdSetDepthBiasEnable");
542
0
    table->CmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)gpa(dev, "vkCmdSetPrimitiveRestartEnable");
543
544
    // ---- Core Vulkan 1.4 commands
545
0
    table->MapMemory2 = (PFN_vkMapMemory2)gpa(dev, "vkMapMemory2");
546
0
    table->UnmapMemory2 = (PFN_vkUnmapMemory2)gpa(dev, "vkUnmapMemory2");
547
0
    table->GetDeviceImageSubresourceLayout = (PFN_vkGetDeviceImageSubresourceLayout)gpa(dev, "vkGetDeviceImageSubresourceLayout");
548
0
    table->GetImageSubresourceLayout2 = (PFN_vkGetImageSubresourceLayout2)gpa(dev, "vkGetImageSubresourceLayout2");
549
0
    table->CopyMemoryToImage = (PFN_vkCopyMemoryToImage)gpa(dev, "vkCopyMemoryToImage");
550
0
    table->CopyImageToMemory = (PFN_vkCopyImageToMemory)gpa(dev, "vkCopyImageToMemory");
551
0
    table->CopyImageToImage = (PFN_vkCopyImageToImage)gpa(dev, "vkCopyImageToImage");
552
0
    table->TransitionImageLayout = (PFN_vkTransitionImageLayout)gpa(dev, "vkTransitionImageLayout");
553
0
    table->CmdPushDescriptorSet = (PFN_vkCmdPushDescriptorSet)gpa(dev, "vkCmdPushDescriptorSet");
554
0
    table->CmdPushDescriptorSetWithTemplate = (PFN_vkCmdPushDescriptorSetWithTemplate)gpa(dev, "vkCmdPushDescriptorSetWithTemplate");
555
0
    table->CmdBindDescriptorSets2 = (PFN_vkCmdBindDescriptorSets2)gpa(dev, "vkCmdBindDescriptorSets2");
556
0
    table->CmdPushConstants2 = (PFN_vkCmdPushConstants2)gpa(dev, "vkCmdPushConstants2");
557
0
    table->CmdPushDescriptorSet2 = (PFN_vkCmdPushDescriptorSet2)gpa(dev, "vkCmdPushDescriptorSet2");
558
0
    table->CmdPushDescriptorSetWithTemplate2 = (PFN_vkCmdPushDescriptorSetWithTemplate2)gpa(dev, "vkCmdPushDescriptorSetWithTemplate2");
559
0
    table->CmdSetLineStipple = (PFN_vkCmdSetLineStipple)gpa(dev, "vkCmdSetLineStipple");
560
0
    table->CmdBindIndexBuffer2 = (PFN_vkCmdBindIndexBuffer2)gpa(dev, "vkCmdBindIndexBuffer2");
561
0
    table->GetRenderingAreaGranularity = (PFN_vkGetRenderingAreaGranularity)gpa(dev, "vkGetRenderingAreaGranularity");
562
0
    table->CmdSetRenderingAttachmentLocations = (PFN_vkCmdSetRenderingAttachmentLocations)gpa(dev, "vkCmdSetRenderingAttachmentLocations");
563
0
    table->CmdSetRenderingInputAttachmentIndices = (PFN_vkCmdSetRenderingInputAttachmentIndices)gpa(dev, "vkCmdSetRenderingInputAttachmentIndices");
564
0
}
565
566
// Init Device function pointer dispatch table with extension commands
567
VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table *dev_table,
568
                                                                       PFN_vkGetInstanceProcAddr gipa,
569
                                                                       PFN_vkGetDeviceProcAddr gdpa,
570
                                                                       VkInstance inst,
571
0
                                                                       VkDevice dev) {
572
0
    VkLayerDispatchTable *table = &dev_table->core_dispatch;
573
0
    table->magic = DEVICE_DISP_TABLE_MAGIC_NUMBER;
574
575
    // ---- VK_KHR_swapchain extension commands
576
0
    table->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gdpa(dev, "vkCreateSwapchainKHR");
577
0
    table->DestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)gdpa(dev, "vkDestroySwapchainKHR");
578
0
    table->GetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)gdpa(dev, "vkGetSwapchainImagesKHR");
579
0
    table->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)gdpa(dev, "vkAcquireNextImageKHR");
580
0
    table->QueuePresentKHR = (PFN_vkQueuePresentKHR)gdpa(dev, "vkQueuePresentKHR");
581
0
    table->GetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)gdpa(dev, "vkGetDeviceGroupPresentCapabilitiesKHR");
582
0
    table->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gdpa(dev, "vkGetDeviceGroupSurfacePresentModesKHR");
583
0
    table->AcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)gdpa(dev, "vkAcquireNextImage2KHR");
584
585
    // ---- VK_KHR_display_swapchain extension commands
586
0
    table->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gdpa(dev, "vkCreateSharedSwapchainsKHR");
587
588
    // ---- VK_KHR_video_queue extension commands
589
0
    table->CreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)gdpa(dev, "vkCreateVideoSessionKHR");
590
0
    table->DestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)gdpa(dev, "vkDestroyVideoSessionKHR");
591
0
    table->GetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)gdpa(dev, "vkGetVideoSessionMemoryRequirementsKHR");
592
0
    table->BindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)gdpa(dev, "vkBindVideoSessionMemoryKHR");
593
0
    table->CreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)gdpa(dev, "vkCreateVideoSessionParametersKHR");
594
0
    table->UpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)gdpa(dev, "vkUpdateVideoSessionParametersKHR");
595
0
    table->DestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)gdpa(dev, "vkDestroyVideoSessionParametersKHR");
596
0
    table->CmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)gdpa(dev, "vkCmdBeginVideoCodingKHR");
597
0
    table->CmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)gdpa(dev, "vkCmdEndVideoCodingKHR");
598
0
    table->CmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)gdpa(dev, "vkCmdControlVideoCodingKHR");
599
600
    // ---- VK_KHR_video_decode_queue extension commands
601
0
    table->CmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)gdpa(dev, "vkCmdDecodeVideoKHR");
602
603
    // ---- VK_KHR_dynamic_rendering extension commands
604
0
    table->CmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)gdpa(dev, "vkCmdBeginRenderingKHR");
605
0
    table->CmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)gdpa(dev, "vkCmdEndRenderingKHR");
606
607
    // ---- VK_KHR_device_group extension commands
608
0
    table->GetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)gdpa(dev, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
609
0
    table->CmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)gdpa(dev, "vkCmdSetDeviceMaskKHR");
610
0
    table->CmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)gdpa(dev, "vkCmdDispatchBaseKHR");
611
612
    // ---- VK_KHR_maintenance1 extension commands
613
0
    table->TrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)gdpa(dev, "vkTrimCommandPoolKHR");
614
615
    // ---- VK_KHR_external_memory_win32 extension commands
616
#if defined(VK_USE_PLATFORM_WIN32_KHR)
617
    table->GetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)gdpa(dev, "vkGetMemoryWin32HandleKHR");
618
#endif // VK_USE_PLATFORM_WIN32_KHR
619
#if defined(VK_USE_PLATFORM_WIN32_KHR)
620
    table->GetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)gdpa(dev, "vkGetMemoryWin32HandlePropertiesKHR");
621
#endif // VK_USE_PLATFORM_WIN32_KHR
622
623
    // ---- VK_KHR_external_memory_fd extension commands
624
0
    table->GetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)gdpa(dev, "vkGetMemoryFdKHR");
625
0
    table->GetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)gdpa(dev, "vkGetMemoryFdPropertiesKHR");
626
627
    // ---- VK_KHR_external_semaphore_win32 extension commands
628
#if defined(VK_USE_PLATFORM_WIN32_KHR)
629
    table->ImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)gdpa(dev, "vkImportSemaphoreWin32HandleKHR");
630
#endif // VK_USE_PLATFORM_WIN32_KHR
631
#if defined(VK_USE_PLATFORM_WIN32_KHR)
632
    table->GetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)gdpa(dev, "vkGetSemaphoreWin32HandleKHR");
633
#endif // VK_USE_PLATFORM_WIN32_KHR
634
635
    // ---- VK_KHR_external_semaphore_fd extension commands
636
0
    table->ImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)gdpa(dev, "vkImportSemaphoreFdKHR");
637
0
    table->GetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)gdpa(dev, "vkGetSemaphoreFdKHR");
638
639
    // ---- VK_KHR_push_descriptor extension commands
640
0
    table->CmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)gdpa(dev, "vkCmdPushDescriptorSetKHR");
641
0
    table->CmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplateKHR");
642
643
    // ---- VK_KHR_descriptor_update_template extension commands
644
0
    table->CreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)gdpa(dev, "vkCreateDescriptorUpdateTemplateKHR");
645
0
    table->DestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)gdpa(dev, "vkDestroyDescriptorUpdateTemplateKHR");
646
0
    table->UpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)gdpa(dev, "vkUpdateDescriptorSetWithTemplateKHR");
647
648
    // ---- VK_KHR_create_renderpass2 extension commands
649
0
    table->CreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)gdpa(dev, "vkCreateRenderPass2KHR");
650
0
    table->CmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)gdpa(dev, "vkCmdBeginRenderPass2KHR");
651
0
    table->CmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)gdpa(dev, "vkCmdNextSubpass2KHR");
652
0
    table->CmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)gdpa(dev, "vkCmdEndRenderPass2KHR");
653
654
    // ---- VK_KHR_shared_presentable_image extension commands
655
0
    table->GetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)gdpa(dev, "vkGetSwapchainStatusKHR");
656
657
    // ---- VK_KHR_external_fence_win32 extension commands
658
#if defined(VK_USE_PLATFORM_WIN32_KHR)
659
    table->ImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)gdpa(dev, "vkImportFenceWin32HandleKHR");
660
#endif // VK_USE_PLATFORM_WIN32_KHR
661
#if defined(VK_USE_PLATFORM_WIN32_KHR)
662
    table->GetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)gdpa(dev, "vkGetFenceWin32HandleKHR");
663
#endif // VK_USE_PLATFORM_WIN32_KHR
664
665
    // ---- VK_KHR_external_fence_fd extension commands
666
0
    table->ImportFenceFdKHR = (PFN_vkImportFenceFdKHR)gdpa(dev, "vkImportFenceFdKHR");
667
0
    table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR)gdpa(dev, "vkGetFenceFdKHR");
668
669
    // ---- VK_KHR_performance_query extension commands
670
0
    table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)gdpa(dev, "vkAcquireProfilingLockKHR");
671
0
    table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)gdpa(dev, "vkReleaseProfilingLockKHR");
672
673
    // ---- VK_KHR_get_memory_requirements2 extension commands
674
0
    table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)gdpa(dev, "vkGetImageMemoryRequirements2KHR");
675
0
    table->GetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)gdpa(dev, "vkGetBufferMemoryRequirements2KHR");
676
0
    table->GetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)gdpa(dev, "vkGetImageSparseMemoryRequirements2KHR");
677
678
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
679
0
    table->CreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)gdpa(dev, "vkCreateSamplerYcbcrConversionKHR");
680
0
    table->DestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)gdpa(dev, "vkDestroySamplerYcbcrConversionKHR");
681
682
    // ---- VK_KHR_bind_memory2 extension commands
683
0
    table->BindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)gdpa(dev, "vkBindBufferMemory2KHR");
684
0
    table->BindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)gdpa(dev, "vkBindImageMemory2KHR");
685
686
    // ---- VK_KHR_maintenance3 extension commands
687
0
    table->GetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)gdpa(dev, "vkGetDescriptorSetLayoutSupportKHR");
688
689
    // ---- VK_KHR_draw_indirect_count extension commands
690
0
    table->CmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)gdpa(dev, "vkCmdDrawIndirectCountKHR");
691
0
    table->CmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)gdpa(dev, "vkCmdDrawIndexedIndirectCountKHR");
692
693
    // ---- VK_KHR_timeline_semaphore extension commands
694
0
    table->GetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)gdpa(dev, "vkGetSemaphoreCounterValueKHR");
695
0
    table->WaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)gdpa(dev, "vkWaitSemaphoresKHR");
696
0
    table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)gdpa(dev, "vkSignalSemaphoreKHR");
697
698
    // ---- VK_KHR_fragment_shading_rate extension commands
699
0
    table->CmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)gdpa(dev, "vkCmdSetFragmentShadingRateKHR");
700
701
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
702
0
    table->CmdSetRenderingAttachmentLocationsKHR = (PFN_vkCmdSetRenderingAttachmentLocationsKHR)gdpa(dev, "vkCmdSetRenderingAttachmentLocationsKHR");
703
0
    table->CmdSetRenderingInputAttachmentIndicesKHR = (PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)gdpa(dev, "vkCmdSetRenderingInputAttachmentIndicesKHR");
704
705
    // ---- VK_KHR_present_wait extension commands
706
0
    table->WaitForPresentKHR = (PFN_vkWaitForPresentKHR)gdpa(dev, "vkWaitForPresentKHR");
707
708
    // ---- VK_KHR_buffer_device_address extension commands
709
0
    table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)gdpa(dev, "vkGetBufferDeviceAddressKHR");
710
0
    table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)gdpa(dev, "vkGetBufferOpaqueCaptureAddressKHR");
711
0
    table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)gdpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
712
713
    // ---- VK_KHR_deferred_host_operations extension commands
714
0
    table->CreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)gdpa(dev, "vkCreateDeferredOperationKHR");
715
0
    table->DestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)gdpa(dev, "vkDestroyDeferredOperationKHR");
716
0
    table->GetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)gdpa(dev, "vkGetDeferredOperationMaxConcurrencyKHR");
717
0
    table->GetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)gdpa(dev, "vkGetDeferredOperationResultKHR");
718
0
    table->DeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)gdpa(dev, "vkDeferredOperationJoinKHR");
719
720
    // ---- VK_KHR_pipeline_executable_properties extension commands
721
0
    table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)gdpa(dev, "vkGetPipelineExecutablePropertiesKHR");
722
0
    table->GetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)gdpa(dev, "vkGetPipelineExecutableStatisticsKHR");
723
0
    table->GetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)gdpa(dev, "vkGetPipelineExecutableInternalRepresentationsKHR");
724
725
    // ---- VK_KHR_map_memory2 extension commands
726
0
    table->MapMemory2KHR = (PFN_vkMapMemory2KHR)gdpa(dev, "vkMapMemory2KHR");
727
0
    table->UnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)gdpa(dev, "vkUnmapMemory2KHR");
728
729
    // ---- VK_KHR_video_encode_queue extension commands
730
0
    table->GetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)gdpa(dev, "vkGetEncodedVideoSessionParametersKHR");
731
0
    table->CmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)gdpa(dev, "vkCmdEncodeVideoKHR");
732
733
    // ---- VK_KHR_synchronization2 extension commands
734
0
    table->CmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)gdpa(dev, "vkCmdSetEvent2KHR");
735
0
    table->CmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)gdpa(dev, "vkCmdResetEvent2KHR");
736
0
    table->CmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)gdpa(dev, "vkCmdWaitEvents2KHR");
737
0
    table->CmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)gdpa(dev, "vkCmdPipelineBarrier2KHR");
738
0
    table->CmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)gdpa(dev, "vkCmdWriteTimestamp2KHR");
739
0
    table->QueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)gdpa(dev, "vkQueueSubmit2KHR");
740
741
    // ---- VK_KHR_copy_commands2 extension commands
742
0
    table->CmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)gdpa(dev, "vkCmdCopyBuffer2KHR");
743
0
    table->CmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)gdpa(dev, "vkCmdCopyImage2KHR");
744
0
    table->CmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)gdpa(dev, "vkCmdCopyBufferToImage2KHR");
745
0
    table->CmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)gdpa(dev, "vkCmdCopyImageToBuffer2KHR");
746
0
    table->CmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)gdpa(dev, "vkCmdBlitImage2KHR");
747
0
    table->CmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)gdpa(dev, "vkCmdResolveImage2KHR");
748
749
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
750
0
    table->CmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)gdpa(dev, "vkCmdTraceRaysIndirect2KHR");
751
752
    // ---- VK_KHR_maintenance4 extension commands
753
0
    table->GetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceBufferMemoryRequirementsKHR");
754
0
    table->GetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageMemoryRequirementsKHR");
755
0
    table->GetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageSparseMemoryRequirementsKHR");
756
757
    // ---- VK_KHR_maintenance5 extension commands
758
0
    table->CmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)gdpa(dev, "vkCmdBindIndexBuffer2KHR");
759
0
    table->GetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)gdpa(dev, "vkGetRenderingAreaGranularityKHR");
760
0
    table->GetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)gdpa(dev, "vkGetDeviceImageSubresourceLayoutKHR");
761
0
    table->GetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)gdpa(dev, "vkGetImageSubresourceLayout2KHR");
762
763
    // ---- VK_KHR_present_wait2 extension commands
764
0
    table->WaitForPresent2KHR = (PFN_vkWaitForPresent2KHR)gdpa(dev, "vkWaitForPresent2KHR");
765
766
    // ---- VK_KHR_pipeline_binary extension commands
767
0
    table->CreatePipelineBinariesKHR = (PFN_vkCreatePipelineBinariesKHR)gdpa(dev, "vkCreatePipelineBinariesKHR");
768
0
    table->DestroyPipelineBinaryKHR = (PFN_vkDestroyPipelineBinaryKHR)gdpa(dev, "vkDestroyPipelineBinaryKHR");
769
0
    table->GetPipelineKeyKHR = (PFN_vkGetPipelineKeyKHR)gdpa(dev, "vkGetPipelineKeyKHR");
770
0
    table->GetPipelineBinaryDataKHR = (PFN_vkGetPipelineBinaryDataKHR)gdpa(dev, "vkGetPipelineBinaryDataKHR");
771
0
    table->ReleaseCapturedPipelineDataKHR = (PFN_vkReleaseCapturedPipelineDataKHR)gdpa(dev, "vkReleaseCapturedPipelineDataKHR");
772
773
    // ---- VK_KHR_swapchain_maintenance1 extension commands
774
0
    table->ReleaseSwapchainImagesKHR = (PFN_vkReleaseSwapchainImagesKHR)gdpa(dev, "vkReleaseSwapchainImagesKHR");
775
776
    // ---- VK_KHR_line_rasterization extension commands
777
0
    table->CmdSetLineStippleKHR = (PFN_vkCmdSetLineStippleKHR)gdpa(dev, "vkCmdSetLineStippleKHR");
778
779
    // ---- VK_KHR_calibrated_timestamps extension commands
780
0
    table->GetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)gdpa(dev, "vkGetCalibratedTimestampsKHR");
781
782
    // ---- VK_KHR_maintenance6 extension commands
783
0
    table->CmdBindDescriptorSets2KHR = (PFN_vkCmdBindDescriptorSets2KHR)gdpa(dev, "vkCmdBindDescriptorSets2KHR");
784
0
    table->CmdPushConstants2KHR = (PFN_vkCmdPushConstants2KHR)gdpa(dev, "vkCmdPushConstants2KHR");
785
0
    table->CmdPushDescriptorSet2KHR = (PFN_vkCmdPushDescriptorSet2KHR)gdpa(dev, "vkCmdPushDescriptorSet2KHR");
786
0
    table->CmdPushDescriptorSetWithTemplate2KHR = (PFN_vkCmdPushDescriptorSetWithTemplate2KHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplate2KHR");
787
0
    table->CmdSetDescriptorBufferOffsets2EXT = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsets2EXT");
788
0
    table->CmdBindDescriptorBufferEmbeddedSamplers2EXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT");
789
790
    // ---- VK_KHR_copy_memory_indirect extension commands
791
0
    table->CmdCopyMemoryIndirectKHR = (PFN_vkCmdCopyMemoryIndirectKHR)gdpa(dev, "vkCmdCopyMemoryIndirectKHR");
792
0
    table->CmdCopyMemoryToImageIndirectKHR = (PFN_vkCmdCopyMemoryToImageIndirectKHR)gdpa(dev, "vkCmdCopyMemoryToImageIndirectKHR");
793
794
    // ---- VK_KHR_maintenance10 extension commands
795
0
    table->CmdEndRendering2KHR = (PFN_vkCmdEndRendering2KHR)gdpa(dev, "vkCmdEndRendering2KHR");
796
797
    // ---- VK_EXT_debug_marker extension commands
798
0
    table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gdpa(dev, "vkDebugMarkerSetObjectTagEXT");
799
0
    table->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gdpa(dev, "vkDebugMarkerSetObjectNameEXT");
800
0
    table->CmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)gdpa(dev, "vkCmdDebugMarkerBeginEXT");
801
0
    table->CmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)gdpa(dev, "vkCmdDebugMarkerEndEXT");
802
0
    table->CmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)gdpa(dev, "vkCmdDebugMarkerInsertEXT");
803
804
    // ---- VK_EXT_transform_feedback extension commands
805
0
    table->CmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)gdpa(dev, "vkCmdBindTransformFeedbackBuffersEXT");
806
0
    table->CmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)gdpa(dev, "vkCmdBeginTransformFeedbackEXT");
807
0
    table->CmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)gdpa(dev, "vkCmdEndTransformFeedbackEXT");
808
0
    table->CmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)gdpa(dev, "vkCmdBeginQueryIndexedEXT");
809
0
    table->CmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)gdpa(dev, "vkCmdEndQueryIndexedEXT");
810
0
    table->CmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)gdpa(dev, "vkCmdDrawIndirectByteCountEXT");
811
812
    // ---- VK_NVX_binary_import extension commands
813
0
    table->CreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)gdpa(dev, "vkCreateCuModuleNVX");
814
0
    table->CreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)gdpa(dev, "vkCreateCuFunctionNVX");
815
0
    table->DestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)gdpa(dev, "vkDestroyCuModuleNVX");
816
0
    table->DestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)gdpa(dev, "vkDestroyCuFunctionNVX");
817
0
    table->CmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)gdpa(dev, "vkCmdCuLaunchKernelNVX");
818
819
    // ---- VK_NVX_image_view_handle extension commands
820
0
    table->GetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)gdpa(dev, "vkGetImageViewHandleNVX");
821
0
    table->GetImageViewHandle64NVX = (PFN_vkGetImageViewHandle64NVX)gdpa(dev, "vkGetImageViewHandle64NVX");
822
0
    table->GetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)gdpa(dev, "vkGetImageViewAddressNVX");
823
824
    // ---- VK_AMD_draw_indirect_count extension commands
825
0
    table->CmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)gdpa(dev, "vkCmdDrawIndirectCountAMD");
826
0
    table->CmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)gdpa(dev, "vkCmdDrawIndexedIndirectCountAMD");
827
828
    // ---- VK_AMD_shader_info extension commands
829
0
    table->GetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)gdpa(dev, "vkGetShaderInfoAMD");
830
831
    // ---- VK_NV_external_memory_win32 extension commands
832
#if defined(VK_USE_PLATFORM_WIN32_KHR)
833
    table->GetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)gdpa(dev, "vkGetMemoryWin32HandleNV");
834
#endif // VK_USE_PLATFORM_WIN32_KHR
835
836
    // ---- VK_EXT_conditional_rendering extension commands
837
0
    table->CmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)gdpa(dev, "vkCmdBeginConditionalRenderingEXT");
838
0
    table->CmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)gdpa(dev, "vkCmdEndConditionalRenderingEXT");
839
840
    // ---- VK_NV_clip_space_w_scaling extension commands
841
0
    table->CmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)gdpa(dev, "vkCmdSetViewportWScalingNV");
842
843
    // ---- VK_EXT_display_control extension commands
844
0
    table->DisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)gdpa(dev, "vkDisplayPowerControlEXT");
845
0
    table->RegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)gdpa(dev, "vkRegisterDeviceEventEXT");
846
0
    table->RegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)gdpa(dev, "vkRegisterDisplayEventEXT");
847
0
    table->GetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)gdpa(dev, "vkGetSwapchainCounterEXT");
848
849
    // ---- VK_GOOGLE_display_timing extension commands
850
0
    table->GetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)gdpa(dev, "vkGetRefreshCycleDurationGOOGLE");
851
0
    table->GetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)gdpa(dev, "vkGetPastPresentationTimingGOOGLE");
852
853
    // ---- VK_EXT_discard_rectangles extension commands
854
0
    table->CmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)gdpa(dev, "vkCmdSetDiscardRectangleEXT");
855
0
    table->CmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)gdpa(dev, "vkCmdSetDiscardRectangleEnableEXT");
856
0
    table->CmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)gdpa(dev, "vkCmdSetDiscardRectangleModeEXT");
857
858
    // ---- VK_EXT_hdr_metadata extension commands
859
0
    table->SetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)gdpa(dev, "vkSetHdrMetadataEXT");
860
861
    // ---- VK_EXT_debug_utils extension commands
862
0
    table->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gipa(inst, "vkSetDebugUtilsObjectNameEXT");
863
0
    table->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gipa(inst, "vkSetDebugUtilsObjectTagEXT");
864
0
    table->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gipa(inst, "vkQueueBeginDebugUtilsLabelEXT");
865
0
    table->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gipa(inst, "vkQueueEndDebugUtilsLabelEXT");
866
0
    table->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gipa(inst, "vkQueueInsertDebugUtilsLabelEXT");
867
0
    table->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gipa(inst, "vkCmdBeginDebugUtilsLabelEXT");
868
0
    table->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gipa(inst, "vkCmdEndDebugUtilsLabelEXT");
869
0
    table->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gipa(inst, "vkCmdInsertDebugUtilsLabelEXT");
870
871
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
872
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
873
    table->GetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)gdpa(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
874
#endif // VK_USE_PLATFORM_ANDROID_KHR
875
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
876
    table->GetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)gdpa(dev, "vkGetMemoryAndroidHardwareBufferANDROID");
877
#endif // VK_USE_PLATFORM_ANDROID_KHR
878
879
    // ---- VK_AMDX_shader_enqueue extension commands
880
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
881
0
    table->CreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)gdpa(dev, "vkCreateExecutionGraphPipelinesAMDX");
882
0
#endif // VK_ENABLE_BETA_EXTENSIONS
883
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
884
0
    table->GetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)gdpa(dev, "vkGetExecutionGraphPipelineScratchSizeAMDX");
885
0
#endif // VK_ENABLE_BETA_EXTENSIONS
886
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
887
0
    table->GetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)gdpa(dev, "vkGetExecutionGraphPipelineNodeIndexAMDX");
888
0
#endif // VK_ENABLE_BETA_EXTENSIONS
889
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
890
0
    table->CmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)gdpa(dev, "vkCmdInitializeGraphScratchMemoryAMDX");
891
0
#endif // VK_ENABLE_BETA_EXTENSIONS
892
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
893
0
    table->CmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)gdpa(dev, "vkCmdDispatchGraphAMDX");
894
0
#endif // VK_ENABLE_BETA_EXTENSIONS
895
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
896
0
    table->CmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectAMDX");
897
0
#endif // VK_ENABLE_BETA_EXTENSIONS
898
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
899
0
    table->CmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectCountAMDX");
900
0
#endif // VK_ENABLE_BETA_EXTENSIONS
901
902
    // ---- VK_EXT_sample_locations extension commands
903
0
    table->CmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)gdpa(dev, "vkCmdSetSampleLocationsEXT");
904
905
    // ---- VK_EXT_image_drm_format_modifier extension commands
906
0
    table->GetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)gdpa(dev, "vkGetImageDrmFormatModifierPropertiesEXT");
907
908
    // ---- VK_EXT_validation_cache extension commands
909
0
    table->CreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)gdpa(dev, "vkCreateValidationCacheEXT");
910
0
    table->DestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)gdpa(dev, "vkDestroyValidationCacheEXT");
911
0
    table->MergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)gdpa(dev, "vkMergeValidationCachesEXT");
912
0
    table->GetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)gdpa(dev, "vkGetValidationCacheDataEXT");
913
914
    // ---- VK_NV_shading_rate_image extension commands
915
0
    table->CmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)gdpa(dev, "vkCmdBindShadingRateImageNV");
916
0
    table->CmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)gdpa(dev, "vkCmdSetViewportShadingRatePaletteNV");
917
0
    table->CmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)gdpa(dev, "vkCmdSetCoarseSampleOrderNV");
918
919
    // ---- VK_NV_ray_tracing extension commands
920
0
    table->CreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)gdpa(dev, "vkCreateAccelerationStructureNV");
921
0
    table->DestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)gdpa(dev, "vkDestroyAccelerationStructureNV");
922
0
    table->GetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)gdpa(dev, "vkGetAccelerationStructureMemoryRequirementsNV");
923
0
    table->BindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)gdpa(dev, "vkBindAccelerationStructureMemoryNV");
924
0
    table->CmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)gdpa(dev, "vkCmdBuildAccelerationStructureNV");
925
0
    table->CmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)gdpa(dev, "vkCmdCopyAccelerationStructureNV");
926
0
    table->CmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)gdpa(dev, "vkCmdTraceRaysNV");
927
0
    table->CreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)gdpa(dev, "vkCreateRayTracingPipelinesNV");
928
929
    // ---- VK_KHR_ray_tracing_pipeline extension commands
930
0
    table->GetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingShaderGroupHandlesKHR");
931
932
    // ---- VK_NV_ray_tracing extension commands
933
0
    table->GetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)gdpa(dev, "vkGetRayTracingShaderGroupHandlesNV");
934
0
    table->GetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)gdpa(dev, "vkGetAccelerationStructureHandleNV");
935
0
    table->CmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesNV");
936
0
    table->CompileDeferredNV = (PFN_vkCompileDeferredNV)gdpa(dev, "vkCompileDeferredNV");
937
938
    // ---- VK_EXT_external_memory_host extension commands
939
0
    table->GetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)gdpa(dev, "vkGetMemoryHostPointerPropertiesEXT");
940
941
    // ---- VK_AMD_buffer_marker extension commands
942
0
    table->CmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)gdpa(dev, "vkCmdWriteBufferMarkerAMD");
943
0
    table->CmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)gdpa(dev, "vkCmdWriteBufferMarker2AMD");
944
945
    // ---- VK_EXT_calibrated_timestamps extension commands
946
0
    table->GetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)gdpa(dev, "vkGetCalibratedTimestampsEXT");
947
948
    // ---- VK_NV_mesh_shader extension commands
949
0
    table->CmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)gdpa(dev, "vkCmdDrawMeshTasksNV");
950
0
    table->CmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectNV");
951
0
    table->CmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountNV");
952
953
    // ---- VK_NV_scissor_exclusive extension commands
954
0
    table->CmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)gdpa(dev, "vkCmdSetExclusiveScissorEnableNV");
955
0
    table->CmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)gdpa(dev, "vkCmdSetExclusiveScissorNV");
956
957
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
958
0
    table->CmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)gdpa(dev, "vkCmdSetCheckpointNV");
959
0
    table->GetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)gdpa(dev, "vkGetQueueCheckpointDataNV");
960
0
    table->GetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)gdpa(dev, "vkGetQueueCheckpointData2NV");
961
962
    // ---- VK_EXT_present_timing extension commands
963
0
    table->SetSwapchainPresentTimingQueueSizeEXT = (PFN_vkSetSwapchainPresentTimingQueueSizeEXT)gdpa(dev, "vkSetSwapchainPresentTimingQueueSizeEXT");
964
0
    table->GetSwapchainTimingPropertiesEXT = (PFN_vkGetSwapchainTimingPropertiesEXT)gdpa(dev, "vkGetSwapchainTimingPropertiesEXT");
965
0
    table->GetSwapchainTimeDomainPropertiesEXT = (PFN_vkGetSwapchainTimeDomainPropertiesEXT)gdpa(dev, "vkGetSwapchainTimeDomainPropertiesEXT");
966
0
    table->GetPastPresentationTimingEXT = (PFN_vkGetPastPresentationTimingEXT)gdpa(dev, "vkGetPastPresentationTimingEXT");
967
968
    // ---- VK_INTEL_performance_query extension commands
969
0
    table->InitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)gdpa(dev, "vkInitializePerformanceApiINTEL");
970
0
    table->UninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)gdpa(dev, "vkUninitializePerformanceApiINTEL");
971
0
    table->CmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceMarkerINTEL");
972
0
    table->CmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceStreamMarkerINTEL");
973
0
    table->CmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)gdpa(dev, "vkCmdSetPerformanceOverrideINTEL");
974
0
    table->AcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)gdpa(dev, "vkAcquirePerformanceConfigurationINTEL");
975
0
    table->ReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)gdpa(dev, "vkReleasePerformanceConfigurationINTEL");
976
0
    table->QueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)gdpa(dev, "vkQueueSetPerformanceConfigurationINTEL");
977
0
    table->GetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)gdpa(dev, "vkGetPerformanceParameterINTEL");
978
979
    // ---- VK_AMD_display_native_hdr extension commands
980
0
    table->SetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)gdpa(dev, "vkSetLocalDimmingAMD");
981
982
    // ---- VK_EXT_buffer_device_address extension commands
983
0
    table->GetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)gdpa(dev, "vkGetBufferDeviceAddressEXT");
984
985
    // ---- VK_EXT_full_screen_exclusive extension commands
986
#if defined(VK_USE_PLATFORM_WIN32_KHR)
987
    table->AcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)gdpa(dev, "vkAcquireFullScreenExclusiveModeEXT");
988
#endif // VK_USE_PLATFORM_WIN32_KHR
989
#if defined(VK_USE_PLATFORM_WIN32_KHR)
990
    table->ReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)gdpa(dev, "vkReleaseFullScreenExclusiveModeEXT");
991
#endif // VK_USE_PLATFORM_WIN32_KHR
992
#if defined(VK_USE_PLATFORM_WIN32_KHR)
993
    table->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gdpa(dev, "vkGetDeviceGroupSurfacePresentModes2EXT");
994
#endif // VK_USE_PLATFORM_WIN32_KHR
995
996
    // ---- VK_EXT_line_rasterization extension commands
997
0
    table->CmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)gdpa(dev, "vkCmdSetLineStippleEXT");
998
999
    // ---- VK_EXT_host_query_reset extension commands
1000
0
    table->ResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)gdpa(dev, "vkResetQueryPoolEXT");
1001
1002
    // ---- VK_EXT_extended_dynamic_state extension commands
1003
0
    table->CmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)gdpa(dev, "vkCmdSetCullModeEXT");
1004
0
    table->CmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)gdpa(dev, "vkCmdSetFrontFaceEXT");
1005
0
    table->CmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)gdpa(dev, "vkCmdSetPrimitiveTopologyEXT");
1006
0
    table->CmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)gdpa(dev, "vkCmdSetViewportWithCountEXT");
1007
0
    table->CmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)gdpa(dev, "vkCmdSetScissorWithCountEXT");
1008
0
    table->CmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)gdpa(dev, "vkCmdBindVertexBuffers2EXT");
1009
0
    table->CmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)gdpa(dev, "vkCmdSetDepthTestEnableEXT");
1010
0
    table->CmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)gdpa(dev, "vkCmdSetDepthWriteEnableEXT");
1011
0
    table->CmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)gdpa(dev, "vkCmdSetDepthCompareOpEXT");
1012
0
    table->CmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)gdpa(dev, "vkCmdSetDepthBoundsTestEnableEXT");
1013
0
    table->CmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)gdpa(dev, "vkCmdSetStencilTestEnableEXT");
1014
0
    table->CmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)gdpa(dev, "vkCmdSetStencilOpEXT");
1015
1016
    // ---- VK_EXT_host_image_copy extension commands
1017
0
    table->CopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)gdpa(dev, "vkCopyMemoryToImageEXT");
1018
0
    table->CopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)gdpa(dev, "vkCopyImageToMemoryEXT");
1019
0
    table->CopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)gdpa(dev, "vkCopyImageToImageEXT");
1020
0
    table->TransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)gdpa(dev, "vkTransitionImageLayoutEXT");
1021
0
    table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)gdpa(dev, "vkGetImageSubresourceLayout2EXT");
1022
1023
    // ---- VK_EXT_swapchain_maintenance1 extension commands
1024
0
    table->ReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)gdpa(dev, "vkReleaseSwapchainImagesEXT");
1025
1026
    // ---- VK_NV_device_generated_commands extension commands
1027
0
    table->GetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsNV");
1028
0
    table->CmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)gdpa(dev, "vkCmdPreprocessGeneratedCommandsNV");
1029
0
    table->CmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)gdpa(dev, "vkCmdExecuteGeneratedCommandsNV");
1030
0
    table->CmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)gdpa(dev, "vkCmdBindPipelineShaderGroupNV");
1031
0
    table->CreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)gdpa(dev, "vkCreateIndirectCommandsLayoutNV");
1032
0
    table->DestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)gdpa(dev, "vkDestroyIndirectCommandsLayoutNV");
1033
1034
    // ---- VK_EXT_depth_bias_control extension commands
1035
0
    table->CmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)gdpa(dev, "vkCmdSetDepthBias2EXT");
1036
1037
    // ---- VK_EXT_private_data extension commands
1038
0
    table->CreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)gdpa(dev, "vkCreatePrivateDataSlotEXT");
1039
0
    table->DestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)gdpa(dev, "vkDestroyPrivateDataSlotEXT");
1040
0
    table->SetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)gdpa(dev, "vkSetPrivateDataEXT");
1041
0
    table->GetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)gdpa(dev, "vkGetPrivateDataEXT");
1042
1043
    // ---- VK_NV_cuda_kernel_launch extension commands
1044
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1045
0
    table->CreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)gdpa(dev, "vkCreateCudaModuleNV");
1046
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1047
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1048
0
    table->GetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)gdpa(dev, "vkGetCudaModuleCacheNV");
1049
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1050
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1051
0
    table->CreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)gdpa(dev, "vkCreateCudaFunctionNV");
1052
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1053
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1054
0
    table->DestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)gdpa(dev, "vkDestroyCudaModuleNV");
1055
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1056
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1057
0
    table->DestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)gdpa(dev, "vkDestroyCudaFunctionNV");
1058
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1059
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
1060
0
    table->CmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)gdpa(dev, "vkCmdCudaLaunchKernelNV");
1061
0
#endif // VK_ENABLE_BETA_EXTENSIONS
1062
1063
    // ---- VK_QCOM_tile_shading extension commands
1064
0
    table->CmdDispatchTileQCOM = (PFN_vkCmdDispatchTileQCOM)gdpa(dev, "vkCmdDispatchTileQCOM");
1065
0
    table->CmdBeginPerTileExecutionQCOM = (PFN_vkCmdBeginPerTileExecutionQCOM)gdpa(dev, "vkCmdBeginPerTileExecutionQCOM");
1066
0
    table->CmdEndPerTileExecutionQCOM = (PFN_vkCmdEndPerTileExecutionQCOM)gdpa(dev, "vkCmdEndPerTileExecutionQCOM");
1067
1068
    // ---- VK_EXT_metal_objects extension commands
1069
#if defined(VK_USE_PLATFORM_METAL_EXT)
1070
    table->ExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)gdpa(dev, "vkExportMetalObjectsEXT");
1071
#endif // VK_USE_PLATFORM_METAL_EXT
1072
1073
    // ---- VK_EXT_descriptor_buffer extension commands
1074
0
    table->GetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)gdpa(dev, "vkGetDescriptorSetLayoutSizeEXT");
1075
0
    table->GetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)gdpa(dev, "vkGetDescriptorSetLayoutBindingOffsetEXT");
1076
0
    table->GetDescriptorEXT = (PFN_vkGetDescriptorEXT)gdpa(dev, "vkGetDescriptorEXT");
1077
0
    table->CmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)gdpa(dev, "vkCmdBindDescriptorBuffersEXT");
1078
0
    table->CmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsetsEXT");
1079
0
    table->CmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT");
1080
0
    table->GetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetBufferOpaqueCaptureDescriptorDataEXT");
1081
0
    table->GetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageOpaqueCaptureDescriptorDataEXT");
1082
0
    table->GetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageViewOpaqueCaptureDescriptorDataEXT");
1083
0
    table->GetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetSamplerOpaqueCaptureDescriptorDataEXT");
1084
0
    table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT");
1085
1086
    // ---- VK_NV_fragment_shading_rate_enums extension commands
1087
0
    table->CmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)gdpa(dev, "vkCmdSetFragmentShadingRateEnumNV");
1088
1089
    // ---- VK_EXT_device_fault extension commands
1090
0
    table->GetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)gdpa(dev, "vkGetDeviceFaultInfoEXT");
1091
1092
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
1093
0
    table->CmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)gdpa(dev, "vkCmdSetVertexInputEXT");
1094
1095
    // ---- VK_FUCHSIA_external_memory extension commands
1096
#if defined(VK_USE_PLATFORM_FUCHSIA)
1097
    table->GetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandleFUCHSIA");
1098
#endif // VK_USE_PLATFORM_FUCHSIA
1099
#if defined(VK_USE_PLATFORM_FUCHSIA)
1100
    table->GetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
1101
#endif // VK_USE_PLATFORM_FUCHSIA
1102
1103
    // ---- VK_FUCHSIA_external_semaphore extension commands
1104
#if defined(VK_USE_PLATFORM_FUCHSIA)
1105
    table->ImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkImportSemaphoreZirconHandleFUCHSIA");
1106
#endif // VK_USE_PLATFORM_FUCHSIA
1107
#if defined(VK_USE_PLATFORM_FUCHSIA)
1108
    table->GetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkGetSemaphoreZirconHandleFUCHSIA");
1109
#endif // VK_USE_PLATFORM_FUCHSIA
1110
1111
    // ---- VK_FUCHSIA_buffer_collection extension commands
1112
#if defined(VK_USE_PLATFORM_FUCHSIA)
1113
    table->CreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)gdpa(dev, "vkCreateBufferCollectionFUCHSIA");
1114
#endif // VK_USE_PLATFORM_FUCHSIA
1115
#if defined(VK_USE_PLATFORM_FUCHSIA)
1116
    table->SetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionImageConstraintsFUCHSIA");
1117
#endif // VK_USE_PLATFORM_FUCHSIA
1118
#if defined(VK_USE_PLATFORM_FUCHSIA)
1119
    table->SetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
1120
#endif // VK_USE_PLATFORM_FUCHSIA
1121
#if defined(VK_USE_PLATFORM_FUCHSIA)
1122
    table->DestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)gdpa(dev, "vkDestroyBufferCollectionFUCHSIA");
1123
#endif // VK_USE_PLATFORM_FUCHSIA
1124
#if defined(VK_USE_PLATFORM_FUCHSIA)
1125
    table->GetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)gdpa(dev, "vkGetBufferCollectionPropertiesFUCHSIA");
1126
#endif // VK_USE_PLATFORM_FUCHSIA
1127
1128
    // ---- VK_HUAWEI_subpass_shading extension commands
1129
0
    table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)gdpa(dev, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
1130
0
    table->CmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)gdpa(dev, "vkCmdSubpassShadingHUAWEI");
1131
1132
    // ---- VK_HUAWEI_invocation_mask extension commands
1133
0
    table->CmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)gdpa(dev, "vkCmdBindInvocationMaskHUAWEI");
1134
1135
    // ---- VK_NV_external_memory_rdma extension commands
1136
0
    table->GetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)gdpa(dev, "vkGetMemoryRemoteAddressNV");
1137
1138
    // ---- VK_EXT_pipeline_properties extension commands
1139
0
    table->GetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)gdpa(dev, "vkGetPipelinePropertiesEXT");
1140
1141
    // ---- VK_EXT_extended_dynamic_state2 extension commands
1142
0
    table->CmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)gdpa(dev, "vkCmdSetPatchControlPointsEXT");
1143
0
    table->CmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)gdpa(dev, "vkCmdSetRasterizerDiscardEnableEXT");
1144
0
    table->CmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)gdpa(dev, "vkCmdSetDepthBiasEnableEXT");
1145
0
    table->CmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)gdpa(dev, "vkCmdSetLogicOpEXT");
1146
0
    table->CmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)gdpa(dev, "vkCmdSetPrimitiveRestartEnableEXT");
1147
1148
    // ---- VK_EXT_color_write_enable extension commands
1149
0
    table->CmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)gdpa(dev, "vkCmdSetColorWriteEnableEXT");
1150
1151
    // ---- VK_EXT_multi_draw extension commands
1152
0
    table->CmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)gdpa(dev, "vkCmdDrawMultiEXT");
1153
0
    table->CmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)gdpa(dev, "vkCmdDrawMultiIndexedEXT");
1154
1155
    // ---- VK_EXT_opacity_micromap extension commands
1156
0
    table->CreateMicromapEXT = (PFN_vkCreateMicromapEXT)gdpa(dev, "vkCreateMicromapEXT");
1157
0
    table->DestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)gdpa(dev, "vkDestroyMicromapEXT");
1158
0
    table->CmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)gdpa(dev, "vkCmdBuildMicromapsEXT");
1159
0
    table->BuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)gdpa(dev, "vkBuildMicromapsEXT");
1160
0
    table->CopyMicromapEXT = (PFN_vkCopyMicromapEXT)gdpa(dev, "vkCopyMicromapEXT");
1161
0
    table->CopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)gdpa(dev, "vkCopyMicromapToMemoryEXT");
1162
0
    table->CopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)gdpa(dev, "vkCopyMemoryToMicromapEXT");
1163
0
    table->WriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)gdpa(dev, "vkWriteMicromapsPropertiesEXT");
1164
0
    table->CmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)gdpa(dev, "vkCmdCopyMicromapEXT");
1165
0
    table->CmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)gdpa(dev, "vkCmdCopyMicromapToMemoryEXT");
1166
0
    table->CmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)gdpa(dev, "vkCmdCopyMemoryToMicromapEXT");
1167
0
    table->CmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)gdpa(dev, "vkCmdWriteMicromapsPropertiesEXT");
1168
0
    table->GetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)gdpa(dev, "vkGetDeviceMicromapCompatibilityEXT");
1169
0
    table->GetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)gdpa(dev, "vkGetMicromapBuildSizesEXT");
1170
1171
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
1172
0
    table->CmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)gdpa(dev, "vkCmdDrawClusterHUAWEI");
1173
0
    table->CmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)gdpa(dev, "vkCmdDrawClusterIndirectHUAWEI");
1174
1175
    // ---- VK_EXT_pageable_device_local_memory extension commands
1176
0
    table->SetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)gdpa(dev, "vkSetDeviceMemoryPriorityEXT");
1177
1178
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
1179
0
    table->GetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)gdpa(dev, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
1180
0
    table->GetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)gdpa(dev, "vkGetDescriptorSetHostMappingVALVE");
1181
1182
    // ---- VK_NV_copy_memory_indirect extension commands
1183
0
    table->CmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)gdpa(dev, "vkCmdCopyMemoryIndirectNV");
1184
0
    table->CmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)gdpa(dev, "vkCmdCopyMemoryToImageIndirectNV");
1185
1186
    // ---- VK_NV_memory_decompression extension commands
1187
0
    table->CmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)gdpa(dev, "vkCmdDecompressMemoryNV");
1188
0
    table->CmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)gdpa(dev, "vkCmdDecompressMemoryIndirectCountNV");
1189
1190
    // ---- VK_NV_device_generated_commands_compute extension commands
1191
0
    table->GetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)gdpa(dev, "vkGetPipelineIndirectMemoryRequirementsNV");
1192
0
    table->CmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)gdpa(dev, "vkCmdUpdatePipelineIndirectBufferNV");
1193
0
    table->GetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)gdpa(dev, "vkGetPipelineIndirectDeviceAddressNV");
1194
1195
    // ---- VK_OHOS_external_memory extension commands
1196
#if defined(VK_USE_PLATFORM_OHOS)
1197
    table->GetNativeBufferPropertiesOHOS = (PFN_vkGetNativeBufferPropertiesOHOS)gdpa(dev, "vkGetNativeBufferPropertiesOHOS");
1198
#endif // VK_USE_PLATFORM_OHOS
1199
#if defined(VK_USE_PLATFORM_OHOS)
1200
    table->GetMemoryNativeBufferOHOS = (PFN_vkGetMemoryNativeBufferOHOS)gdpa(dev, "vkGetMemoryNativeBufferOHOS");
1201
#endif // VK_USE_PLATFORM_OHOS
1202
1203
    // ---- VK_EXT_extended_dynamic_state3 extension commands
1204
0
    table->CmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)gdpa(dev, "vkCmdSetDepthClampEnableEXT");
1205
0
    table->CmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)gdpa(dev, "vkCmdSetPolygonModeEXT");
1206
0
    table->CmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)gdpa(dev, "vkCmdSetRasterizationSamplesEXT");
1207
0
    table->CmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)gdpa(dev, "vkCmdSetSampleMaskEXT");
1208
0
    table->CmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)gdpa(dev, "vkCmdSetAlphaToCoverageEnableEXT");
1209
0
    table->CmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)gdpa(dev, "vkCmdSetAlphaToOneEnableEXT");
1210
0
    table->CmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)gdpa(dev, "vkCmdSetLogicOpEnableEXT");
1211
0
    table->CmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)gdpa(dev, "vkCmdSetColorBlendEnableEXT");
1212
0
    table->CmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)gdpa(dev, "vkCmdSetColorBlendEquationEXT");
1213
0
    table->CmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)gdpa(dev, "vkCmdSetColorWriteMaskEXT");
1214
0
    table->CmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)gdpa(dev, "vkCmdSetTessellationDomainOriginEXT");
1215
0
    table->CmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)gdpa(dev, "vkCmdSetRasterizationStreamEXT");
1216
0
    table->CmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)gdpa(dev, "vkCmdSetConservativeRasterizationModeEXT");
1217
0
    table->CmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)gdpa(dev, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
1218
0
    table->CmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)gdpa(dev, "vkCmdSetDepthClipEnableEXT");
1219
0
    table->CmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)gdpa(dev, "vkCmdSetSampleLocationsEnableEXT");
1220
0
    table->CmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)gdpa(dev, "vkCmdSetColorBlendAdvancedEXT");
1221
0
    table->CmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)gdpa(dev, "vkCmdSetProvokingVertexModeEXT");
1222
0
    table->CmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)gdpa(dev, "vkCmdSetLineRasterizationModeEXT");
1223
0
    table->CmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)gdpa(dev, "vkCmdSetLineStippleEnableEXT");
1224
0
    table->CmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)gdpa(dev, "vkCmdSetDepthClipNegativeOneToOneEXT");
1225
0
    table->CmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)gdpa(dev, "vkCmdSetViewportWScalingEnableNV");
1226
0
    table->CmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)gdpa(dev, "vkCmdSetViewportSwizzleNV");
1227
0
    table->CmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)gdpa(dev, "vkCmdSetCoverageToColorEnableNV");
1228
0
    table->CmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)gdpa(dev, "vkCmdSetCoverageToColorLocationNV");
1229
0
    table->CmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)gdpa(dev, "vkCmdSetCoverageModulationModeNV");
1230
0
    table->CmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)gdpa(dev, "vkCmdSetCoverageModulationTableEnableNV");
1231
0
    table->CmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)gdpa(dev, "vkCmdSetCoverageModulationTableNV");
1232
0
    table->CmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)gdpa(dev, "vkCmdSetShadingRateImageEnableNV");
1233
0
    table->CmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)gdpa(dev, "vkCmdSetRepresentativeFragmentTestEnableNV");
1234
0
    table->CmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)gdpa(dev, "vkCmdSetCoverageReductionModeNV");
1235
1236
    // ---- VK_ARM_tensors extension commands
1237
0
    table->CreateTensorARM = (PFN_vkCreateTensorARM)gdpa(dev, "vkCreateTensorARM");
1238
0
    table->DestroyTensorARM = (PFN_vkDestroyTensorARM)gdpa(dev, "vkDestroyTensorARM");
1239
0
    table->CreateTensorViewARM = (PFN_vkCreateTensorViewARM)gdpa(dev, "vkCreateTensorViewARM");
1240
0
    table->DestroyTensorViewARM = (PFN_vkDestroyTensorViewARM)gdpa(dev, "vkDestroyTensorViewARM");
1241
0
    table->GetTensorMemoryRequirementsARM = (PFN_vkGetTensorMemoryRequirementsARM)gdpa(dev, "vkGetTensorMemoryRequirementsARM");
1242
0
    table->BindTensorMemoryARM = (PFN_vkBindTensorMemoryARM)gdpa(dev, "vkBindTensorMemoryARM");
1243
0
    table->GetDeviceTensorMemoryRequirementsARM = (PFN_vkGetDeviceTensorMemoryRequirementsARM)gdpa(dev, "vkGetDeviceTensorMemoryRequirementsARM");
1244
0
    table->CmdCopyTensorARM = (PFN_vkCmdCopyTensorARM)gdpa(dev, "vkCmdCopyTensorARM");
1245
0
    table->GetTensorOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)gdpa(dev, "vkGetTensorOpaqueCaptureDescriptorDataARM");
1246
0
    table->GetTensorViewOpaqueCaptureDescriptorDataARM = (PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)gdpa(dev, "vkGetTensorViewOpaqueCaptureDescriptorDataARM");
1247
1248
    // ---- VK_EXT_shader_module_identifier extension commands
1249
0
    table->GetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)gdpa(dev, "vkGetShaderModuleIdentifierEXT");
1250
0
    table->GetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)gdpa(dev, "vkGetShaderModuleCreateInfoIdentifierEXT");
1251
1252
    // ---- VK_NV_optical_flow extension commands
1253
0
    table->CreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)gdpa(dev, "vkCreateOpticalFlowSessionNV");
1254
0
    table->DestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)gdpa(dev, "vkDestroyOpticalFlowSessionNV");
1255
0
    table->BindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)gdpa(dev, "vkBindOpticalFlowSessionImageNV");
1256
0
    table->CmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)gdpa(dev, "vkCmdOpticalFlowExecuteNV");
1257
1258
    // ---- VK_AMD_anti_lag extension commands
1259
0
    table->AntiLagUpdateAMD = (PFN_vkAntiLagUpdateAMD)gdpa(dev, "vkAntiLagUpdateAMD");
1260
1261
    // ---- VK_EXT_shader_object extension commands
1262
0
    table->CreateShadersEXT = (PFN_vkCreateShadersEXT)gdpa(dev, "vkCreateShadersEXT");
1263
0
    table->DestroyShaderEXT = (PFN_vkDestroyShaderEXT)gdpa(dev, "vkDestroyShaderEXT");
1264
0
    table->GetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)gdpa(dev, "vkGetShaderBinaryDataEXT");
1265
0
    table->CmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)gdpa(dev, "vkCmdBindShadersEXT");
1266
0
    table->CmdSetDepthClampRangeEXT = (PFN_vkCmdSetDepthClampRangeEXT)gdpa(dev, "vkCmdSetDepthClampRangeEXT");
1267
1268
    // ---- VK_QCOM_tile_properties extension commands
1269
0
    table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)gdpa(dev, "vkGetFramebufferTilePropertiesQCOM");
1270
0
    table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)gdpa(dev, "vkGetDynamicRenderingTilePropertiesQCOM");
1271
1272
    // ---- VK_NV_cooperative_vector extension commands
1273
0
    table->ConvertCooperativeVectorMatrixNV = (PFN_vkConvertCooperativeVectorMatrixNV)gdpa(dev, "vkConvertCooperativeVectorMatrixNV");
1274
0
    table->CmdConvertCooperativeVectorMatrixNV = (PFN_vkCmdConvertCooperativeVectorMatrixNV)gdpa(dev, "vkCmdConvertCooperativeVectorMatrixNV");
1275
1276
    // ---- VK_NV_low_latency2 extension commands
1277
0
    table->SetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)gdpa(dev, "vkSetLatencySleepModeNV");
1278
0
    table->LatencySleepNV = (PFN_vkLatencySleepNV)gdpa(dev, "vkLatencySleepNV");
1279
0
    table->SetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)gdpa(dev, "vkSetLatencyMarkerNV");
1280
0
    table->GetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)gdpa(dev, "vkGetLatencyTimingsNV");
1281
0
    table->QueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)gdpa(dev, "vkQueueNotifyOutOfBandNV");
1282
1283
    // ---- VK_ARM_data_graph extension commands
1284
0
    table->CreateDataGraphPipelinesARM = (PFN_vkCreateDataGraphPipelinesARM)gdpa(dev, "vkCreateDataGraphPipelinesARM");
1285
0
    table->CreateDataGraphPipelineSessionARM = (PFN_vkCreateDataGraphPipelineSessionARM)gdpa(dev, "vkCreateDataGraphPipelineSessionARM");
1286
0
    table->GetDataGraphPipelineSessionBindPointRequirementsARM = (PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)gdpa(dev, "vkGetDataGraphPipelineSessionBindPointRequirementsARM");
1287
0
    table->GetDataGraphPipelineSessionMemoryRequirementsARM = (PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)gdpa(dev, "vkGetDataGraphPipelineSessionMemoryRequirementsARM");
1288
0
    table->BindDataGraphPipelineSessionMemoryARM = (PFN_vkBindDataGraphPipelineSessionMemoryARM)gdpa(dev, "vkBindDataGraphPipelineSessionMemoryARM");
1289
0
    table->DestroyDataGraphPipelineSessionARM = (PFN_vkDestroyDataGraphPipelineSessionARM)gdpa(dev, "vkDestroyDataGraphPipelineSessionARM");
1290
0
    table->CmdDispatchDataGraphARM = (PFN_vkCmdDispatchDataGraphARM)gdpa(dev, "vkCmdDispatchDataGraphARM");
1291
0
    table->GetDataGraphPipelineAvailablePropertiesARM = (PFN_vkGetDataGraphPipelineAvailablePropertiesARM)gdpa(dev, "vkGetDataGraphPipelineAvailablePropertiesARM");
1292
0
    table->GetDataGraphPipelinePropertiesARM = (PFN_vkGetDataGraphPipelinePropertiesARM)gdpa(dev, "vkGetDataGraphPipelinePropertiesARM");
1293
1294
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
1295
0
    table->CmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)gdpa(dev, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
1296
1297
    // ---- VK_QNX_external_memory_screen_buffer extension commands
1298
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1299
    table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gdpa(dev, "vkGetScreenBufferPropertiesQNX");
1300
#endif // VK_USE_PLATFORM_SCREEN_QNX
1301
1302
    // ---- VK_QCOM_tile_memory_heap extension commands
1303
0
    table->CmdBindTileMemoryQCOM = (PFN_vkCmdBindTileMemoryQCOM)gdpa(dev, "vkCmdBindTileMemoryQCOM");
1304
1305
    // ---- VK_EXT_memory_decompression extension commands
1306
0
    table->CmdDecompressMemoryEXT = (PFN_vkCmdDecompressMemoryEXT)gdpa(dev, "vkCmdDecompressMemoryEXT");
1307
0
    table->CmdDecompressMemoryIndirectCountEXT = (PFN_vkCmdDecompressMemoryIndirectCountEXT)gdpa(dev, "vkCmdDecompressMemoryIndirectCountEXT");
1308
1309
    // ---- VK_NV_external_compute_queue extension commands
1310
0
    table->CreateExternalComputeQueueNV = (PFN_vkCreateExternalComputeQueueNV)gdpa(dev, "vkCreateExternalComputeQueueNV");
1311
0
    table->DestroyExternalComputeQueueNV = (PFN_vkDestroyExternalComputeQueueNV)gdpa(dev, "vkDestroyExternalComputeQueueNV");
1312
0
    table->GetExternalComputeQueueDataNV = (PFN_vkGetExternalComputeQueueDataNV)gdpa(dev, "vkGetExternalComputeQueueDataNV");
1313
1314
    // ---- VK_NV_cluster_acceleration_structure extension commands
1315
0
    table->GetClusterAccelerationStructureBuildSizesNV = (PFN_vkGetClusterAccelerationStructureBuildSizesNV)gdpa(dev, "vkGetClusterAccelerationStructureBuildSizesNV");
1316
0
    table->CmdBuildClusterAccelerationStructureIndirectNV = (PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)gdpa(dev, "vkCmdBuildClusterAccelerationStructureIndirectNV");
1317
1318
    // ---- VK_NV_partitioned_acceleration_structure extension commands
1319
0
    table->GetPartitionedAccelerationStructuresBuildSizesNV = (PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)gdpa(dev, "vkGetPartitionedAccelerationStructuresBuildSizesNV");
1320
0
    table->CmdBuildPartitionedAccelerationStructuresNV = (PFN_vkCmdBuildPartitionedAccelerationStructuresNV)gdpa(dev, "vkCmdBuildPartitionedAccelerationStructuresNV");
1321
1322
    // ---- VK_EXT_device_generated_commands extension commands
1323
0
    table->GetGeneratedCommandsMemoryRequirementsEXT = (PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsEXT");
1324
0
    table->CmdPreprocessGeneratedCommandsEXT = (PFN_vkCmdPreprocessGeneratedCommandsEXT)gdpa(dev, "vkCmdPreprocessGeneratedCommandsEXT");
1325
0
    table->CmdExecuteGeneratedCommandsEXT = (PFN_vkCmdExecuteGeneratedCommandsEXT)gdpa(dev, "vkCmdExecuteGeneratedCommandsEXT");
1326
0
    table->CreateIndirectCommandsLayoutEXT = (PFN_vkCreateIndirectCommandsLayoutEXT)gdpa(dev, "vkCreateIndirectCommandsLayoutEXT");
1327
0
    table->DestroyIndirectCommandsLayoutEXT = (PFN_vkDestroyIndirectCommandsLayoutEXT)gdpa(dev, "vkDestroyIndirectCommandsLayoutEXT");
1328
0
    table->CreateIndirectExecutionSetEXT = (PFN_vkCreateIndirectExecutionSetEXT)gdpa(dev, "vkCreateIndirectExecutionSetEXT");
1329
0
    table->DestroyIndirectExecutionSetEXT = (PFN_vkDestroyIndirectExecutionSetEXT)gdpa(dev, "vkDestroyIndirectExecutionSetEXT");
1330
0
    table->UpdateIndirectExecutionSetPipelineEXT = (PFN_vkUpdateIndirectExecutionSetPipelineEXT)gdpa(dev, "vkUpdateIndirectExecutionSetPipelineEXT");
1331
0
    table->UpdateIndirectExecutionSetShaderEXT = (PFN_vkUpdateIndirectExecutionSetShaderEXT)gdpa(dev, "vkUpdateIndirectExecutionSetShaderEXT");
1332
1333
    // ---- VK_OHOS_native_buffer extension commands
1334
#if defined(VK_USE_PLATFORM_OHOS)
1335
    table->GetSwapchainGrallocUsageOHOS = (PFN_vkGetSwapchainGrallocUsageOHOS)gdpa(dev, "vkGetSwapchainGrallocUsageOHOS");
1336
#endif // VK_USE_PLATFORM_OHOS
1337
#if defined(VK_USE_PLATFORM_OHOS)
1338
    table->AcquireImageOHOS = (PFN_vkAcquireImageOHOS)gdpa(dev, "vkAcquireImageOHOS");
1339
#endif // VK_USE_PLATFORM_OHOS
1340
#if defined(VK_USE_PLATFORM_OHOS)
1341
    table->QueueSignalReleaseImageOHOS = (PFN_vkQueueSignalReleaseImageOHOS)gdpa(dev, "vkQueueSignalReleaseImageOHOS");
1342
#endif // VK_USE_PLATFORM_OHOS
1343
1344
    // ---- VK_EXT_external_memory_metal extension commands
1345
#if defined(VK_USE_PLATFORM_METAL_EXT)
1346
    table->GetMemoryMetalHandleEXT = (PFN_vkGetMemoryMetalHandleEXT)gdpa(dev, "vkGetMemoryMetalHandleEXT");
1347
#endif // VK_USE_PLATFORM_METAL_EXT
1348
#if defined(VK_USE_PLATFORM_METAL_EXT)
1349
    table->GetMemoryMetalHandlePropertiesEXT = (PFN_vkGetMemoryMetalHandlePropertiesEXT)gdpa(dev, "vkGetMemoryMetalHandlePropertiesEXT");
1350
#endif // VK_USE_PLATFORM_METAL_EXT
1351
1352
    // ---- VK_EXT_fragment_density_map_offset extension commands
1353
0
    table->CmdEndRendering2EXT = (PFN_vkCmdEndRendering2EXT)gdpa(dev, "vkCmdEndRendering2EXT");
1354
1355
    // ---- VK_EXT_custom_resolve extension commands
1356
0
    table->CmdBeginCustomResolveEXT = (PFN_vkCmdBeginCustomResolveEXT)gdpa(dev, "vkCmdBeginCustomResolveEXT");
1357
1358
    // ---- VK_NV_compute_occupancy_priority extension commands
1359
0
    table->CmdSetComputeOccupancyPriorityNV = (PFN_vkCmdSetComputeOccupancyPriorityNV)gdpa(dev, "vkCmdSetComputeOccupancyPriorityNV");
1360
1361
    // ---- VK_KHR_acceleration_structure extension commands
1362
0
    table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)gdpa(dev, "vkCreateAccelerationStructureKHR");
1363
0
    table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)gdpa(dev, "vkDestroyAccelerationStructureKHR");
1364
0
    table->CmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresKHR");
1365
0
    table->CmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresIndirectKHR");
1366
0
    table->BuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)gdpa(dev, "vkBuildAccelerationStructuresKHR");
1367
0
    table->CopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)gdpa(dev, "vkCopyAccelerationStructureKHR");
1368
0
    table->CopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCopyAccelerationStructureToMemoryKHR");
1369
0
    table->CopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCopyMemoryToAccelerationStructureKHR");
1370
0
    table->WriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkWriteAccelerationStructuresPropertiesKHR");
1371
0
    table->CmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)gdpa(dev, "vkCmdCopyAccelerationStructureKHR");
1372
0
    table->CmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCmdCopyAccelerationStructureToMemoryKHR");
1373
0
    table->CmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCmdCopyMemoryToAccelerationStructureKHR");
1374
0
    table->GetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)gdpa(dev, "vkGetAccelerationStructureDeviceAddressKHR");
1375
0
    table->CmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesKHR");
1376
0
    table->GetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)gdpa(dev, "vkGetDeviceAccelerationStructureCompatibilityKHR");
1377
0
    table->GetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)gdpa(dev, "vkGetAccelerationStructureBuildSizesKHR");
1378
1379
    // ---- VK_KHR_ray_tracing_pipeline extension commands
1380
0
    table->CmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)gdpa(dev, "vkCmdTraceRaysKHR");
1381
0
    table->CreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)gdpa(dev, "vkCreateRayTracingPipelinesKHR");
1382
0
    table->GetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
1383
0
    table->CmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)gdpa(dev, "vkCmdTraceRaysIndirectKHR");
1384
0
    table->GetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)gdpa(dev, "vkGetRayTracingShaderGroupStackSizeKHR");
1385
0
    table->CmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)gdpa(dev, "vkCmdSetRayTracingPipelineStackSizeKHR");
1386
1387
    // ---- VK_EXT_mesh_shader extension commands
1388
0
    table->CmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)gdpa(dev, "vkCmdDrawMeshTasksEXT");
1389
0
    table->CmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectEXT");
1390
0
    table->CmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountEXT");
1391
0
}
1392
1393
// Init Instance function pointer dispatch table with core commands
1394
VKAPI_ATTR void VKAPI_CALL loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1395
0
                                                                    VkInstance inst) {
1396
1397
    // ---- Core Vulkan 1.0 commands
1398
0
    table->DestroyInstance = (PFN_vkDestroyInstance)gpa(inst, "vkDestroyInstance");
1399
0
    table->EnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)gpa(inst, "vkEnumeratePhysicalDevices");
1400
0
    table->GetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)gpa(inst, "vkGetPhysicalDeviceFeatures");
1401
0
    table->GetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)gpa(inst, "vkGetPhysicalDeviceFormatProperties");
1402
0
    table->GetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties");
1403
0
    table->GetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)gpa(inst, "vkGetPhysicalDeviceProperties");
1404
0
    table->GetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties");
1405
0
    table->GetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)gpa(inst, "vkGetPhysicalDeviceMemoryProperties");
1406
0
    table->GetInstanceProcAddr = gpa;
1407
0
    table->EnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)gpa(inst, "vkEnumerateDeviceExtensionProperties");
1408
0
    table->EnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)gpa(inst, "vkEnumerateDeviceLayerProperties");
1409
0
    table->GetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties");
1410
1411
    // ---- Core Vulkan 1.1 commands
1412
0
    table->EnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)gpa(inst, "vkEnumeratePhysicalDeviceGroups");
1413
0
    table->GetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)gpa(inst, "vkGetPhysicalDeviceFeatures2");
1414
0
    table->GetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)gpa(inst, "vkGetPhysicalDeviceProperties2");
1415
0
    table->GetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)gpa(inst, "vkGetPhysicalDeviceFormatProperties2");
1416
0
    table->GetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2");
1417
0
    table->GetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2");
1418
0
    table->GetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2");
1419
0
    table->GetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2");
1420
0
    table->GetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)gpa(inst, "vkGetPhysicalDeviceExternalBufferProperties");
1421
0
    table->GetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)gpa(inst, "vkGetPhysicalDeviceExternalFenceProperties");
1422
0
    table->GetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)gpa(inst, "vkGetPhysicalDeviceExternalSemaphoreProperties");
1423
1424
    // ---- Core Vulkan 1.3 commands
1425
0
    table->GetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)gpa(inst, "vkGetPhysicalDeviceToolProperties");
1426
0
}
1427
1428
// Init Instance function pointer dispatch table with core commands
1429
VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1430
0
                                                                        VkInstance inst) {
1431
1432
    // ---- VK_KHR_surface extension commands
1433
0
    table->DestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)gpa(inst, "vkDestroySurfaceKHR");
1434
0
    table->GetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceSupportKHR");
1435
0
    table->GetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
1436
0
    table->GetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormatsKHR");
1437
0
    table->GetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModesKHR");
1438
1439
    // ---- VK_KHR_swapchain extension commands
1440
0
    table->GetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)gpa(inst, "vkGetPhysicalDevicePresentRectanglesKHR");
1441
1442
    // ---- VK_KHR_display extension commands
1443
0
    table->GetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPropertiesKHR");
1444
0
    table->GetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
1445
0
    table->GetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)gpa(inst, "vkGetDisplayPlaneSupportedDisplaysKHR");
1446
0
    table->GetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)gpa(inst, "vkGetDisplayModePropertiesKHR");
1447
0
    table->CreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)gpa(inst, "vkCreateDisplayModeKHR");
1448
0
    table->GetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)gpa(inst, "vkGetDisplayPlaneCapabilitiesKHR");
1449
0
    table->CreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)gpa(inst, "vkCreateDisplayPlaneSurfaceKHR");
1450
1451
    // ---- VK_KHR_xlib_surface extension commands
1452
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
1453
0
    table->CreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)gpa(inst, "vkCreateXlibSurfaceKHR");
1454
0
#endif // VK_USE_PLATFORM_XLIB_KHR
1455
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
1456
0
    table->GetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
1457
0
#endif // VK_USE_PLATFORM_XLIB_KHR
1458
1459
    // ---- VK_KHR_xcb_surface extension commands
1460
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
1461
0
    table->CreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)gpa(inst, "vkCreateXcbSurfaceKHR");
1462
0
#endif // VK_USE_PLATFORM_XCB_KHR
1463
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
1464
0
    table->GetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
1465
0
#endif // VK_USE_PLATFORM_XCB_KHR
1466
1467
    // ---- VK_KHR_wayland_surface extension commands
1468
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1469
0
    table->CreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)gpa(inst, "vkCreateWaylandSurfaceKHR");
1470
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
1471
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1472
0
    table->GetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
1473
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
1474
1475
    // ---- VK_KHR_android_surface extension commands
1476
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
1477
    table->CreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)gpa(inst, "vkCreateAndroidSurfaceKHR");
1478
#endif // VK_USE_PLATFORM_ANDROID_KHR
1479
1480
    // ---- VK_KHR_win32_surface extension commands
1481
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1482
    table->CreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)gpa(inst, "vkCreateWin32SurfaceKHR");
1483
#endif // VK_USE_PLATFORM_WIN32_KHR
1484
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1485
    table->GetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
1486
#endif // VK_USE_PLATFORM_WIN32_KHR
1487
1488
    // ---- VK_KHR_video_queue extension commands
1489
0
    table->GetPhysicalDeviceVideoCapabilitiesKHR = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
1490
0
    table->GetPhysicalDeviceVideoFormatPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
1491
1492
    // ---- VK_KHR_get_physical_device_properties2 extension commands
1493
0
    table->GetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)gpa(inst, "vkGetPhysicalDeviceFeatures2KHR");
1494
0
    table->GetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)gpa(inst, "vkGetPhysicalDeviceProperties2KHR");
1495
0
    table->GetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceFormatProperties2KHR");
1496
0
    table->GetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2KHR");
1497
0
    table->GetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
1498
0
    table->GetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2KHR");
1499
0
    table->GetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
1500
1501
    // ---- VK_KHR_device_group_creation extension commands
1502
0
    table->EnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)gpa(inst, "vkEnumeratePhysicalDeviceGroupsKHR");
1503
1504
    // ---- VK_KHR_external_memory_capabilities extension commands
1505
0
    table->GetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
1506
1507
    // ---- VK_KHR_external_semaphore_capabilities extension commands
1508
0
    table->GetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
1509
1510
    // ---- VK_KHR_external_fence_capabilities extension commands
1511
0
    table->GetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
1512
1513
    // ---- VK_KHR_performance_query extension commands
1514
0
    table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
1515
0
    table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
1516
1517
    // ---- VK_KHR_get_surface_capabilities2 extension commands
1518
0
    table->GetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
1519
0
    table->GetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormats2KHR");
1520
1521
    // ---- VK_KHR_get_display_properties2 extension commands
1522
0
    table->GetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayProperties2KHR");
1523
0
    table->GetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
1524
0
    table->GetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)gpa(inst, "vkGetDisplayModeProperties2KHR");
1525
0
    table->GetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)gpa(inst, "vkGetDisplayPlaneCapabilities2KHR");
1526
1527
    // ---- VK_KHR_fragment_shading_rate extension commands
1528
0
    table->GetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)gpa(inst, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
1529
1530
    // ---- VK_KHR_video_encode_queue extension commands
1531
0
    table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
1532
1533
    // ---- VK_KHR_cooperative_matrix extension commands
1534
0
    table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR");
1535
1536
    // ---- VK_KHR_calibrated_timestamps extension commands
1537
0
    table->GetPhysicalDeviceCalibrateableTimeDomainsKHR = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR");
1538
1539
    // ---- VK_EXT_debug_report extension commands
1540
0
    table->CreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)gpa(inst, "vkCreateDebugReportCallbackEXT");
1541
0
    table->DestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)gpa(inst, "vkDestroyDebugReportCallbackEXT");
1542
0
    table->DebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)gpa(inst, "vkDebugReportMessageEXT");
1543
1544
    // ---- VK_GGP_stream_descriptor_surface extension commands
1545
#if defined(VK_USE_PLATFORM_GGP)
1546
    table->CreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)gpa(inst, "vkCreateStreamDescriptorSurfaceGGP");
1547
#endif // VK_USE_PLATFORM_GGP
1548
1549
    // ---- VK_NV_external_memory_capabilities extension commands
1550
0
    table->GetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)gpa(inst, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
1551
1552
    // ---- VK_NN_vi_surface extension commands
1553
#if defined(VK_USE_PLATFORM_VI_NN)
1554
    table->CreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)gpa(inst, "vkCreateViSurfaceNN");
1555
#endif // VK_USE_PLATFORM_VI_NN
1556
1557
    // ---- VK_EXT_direct_mode_display extension commands
1558
0
    table->ReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)gpa(inst, "vkReleaseDisplayEXT");
1559
1560
    // ---- VK_EXT_acquire_xlib_display extension commands
1561
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1562
0
    table->AcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)gpa(inst, "vkAcquireXlibDisplayEXT");
1563
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1564
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1565
0
    table->GetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)gpa(inst, "vkGetRandROutputDisplayEXT");
1566
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1567
1568
    // ---- VK_EXT_display_surface_counter extension commands
1569
0
    table->GetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
1570
1571
    // ---- VK_MVK_ios_surface extension commands
1572
#if defined(VK_USE_PLATFORM_IOS_MVK)
1573
    table->CreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)gpa(inst, "vkCreateIOSSurfaceMVK");
1574
#endif // VK_USE_PLATFORM_IOS_MVK
1575
1576
    // ---- VK_MVK_macos_surface extension commands
1577
#if defined(VK_USE_PLATFORM_MACOS_MVK)
1578
    table->CreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)gpa(inst, "vkCreateMacOSSurfaceMVK");
1579
#endif // VK_USE_PLATFORM_MACOS_MVK
1580
1581
    // ---- VK_EXT_debug_utils extension commands
1582
0
    table->CreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)gpa(inst, "vkCreateDebugUtilsMessengerEXT");
1583
0
    table->DestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)gpa(inst, "vkDestroyDebugUtilsMessengerEXT");
1584
0
    table->SubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)gpa(inst, "vkSubmitDebugUtilsMessageEXT");
1585
1586
    // ---- VK_EXT_sample_locations extension commands
1587
0
    table->GetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)gpa(inst, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1588
1589
    // ---- VK_EXT_calibrated_timestamps extension commands
1590
0
    table->GetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1591
1592
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
1593
#if defined(VK_USE_PLATFORM_FUCHSIA)
1594
    table->CreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)gpa(inst, "vkCreateImagePipeSurfaceFUCHSIA");
1595
#endif // VK_USE_PLATFORM_FUCHSIA
1596
1597
    // ---- VK_EXT_metal_surface extension commands
1598
#if defined(VK_USE_PLATFORM_METAL_EXT)
1599
    table->CreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)gpa(inst, "vkCreateMetalSurfaceEXT");
1600
#endif // VK_USE_PLATFORM_METAL_EXT
1601
1602
    // ---- VK_EXT_tooling_info extension commands
1603
0
    table->GetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)gpa(inst, "vkGetPhysicalDeviceToolPropertiesEXT");
1604
1605
    // ---- VK_NV_cooperative_matrix extension commands
1606
0
    table->GetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1607
1608
    // ---- VK_NV_coverage_reduction_mode extension commands
1609
0
    table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)gpa(inst, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1610
1611
    // ---- VK_EXT_full_screen_exclusive extension commands
1612
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1613
    table->GetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1614
#endif // VK_USE_PLATFORM_WIN32_KHR
1615
1616
    // ---- VK_EXT_headless_surface extension commands
1617
0
    table->CreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)gpa(inst, "vkCreateHeadlessSurfaceEXT");
1618
1619
    // ---- VK_EXT_acquire_drm_display extension commands
1620
0
    table->AcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)gpa(inst, "vkAcquireDrmDisplayEXT");
1621
0
    table->GetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)gpa(inst, "vkGetDrmDisplayEXT");
1622
1623
    // ---- VK_NV_acquire_winrt_display extension commands
1624
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1625
    table->AcquireWinrtDisplayNV = (PFN_vkAcquireWinrtDisplayNV)gpa(inst, "vkAcquireWinrtDisplayNV");
1626
#endif // VK_USE_PLATFORM_WIN32_KHR
1627
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1628
    table->GetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)gpa(inst, "vkGetWinrtDisplayNV");
1629
#endif // VK_USE_PLATFORM_WIN32_KHR
1630
1631
    // ---- VK_EXT_directfb_surface extension commands
1632
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1633
    table->CreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)gpa(inst, "vkCreateDirectFBSurfaceEXT");
1634
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
1635
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1636
    table->GetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)gpa(inst, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1637
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
1638
1639
    // ---- VK_QNX_screen_surface extension commands
1640
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1641
    table->CreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)gpa(inst, "vkCreateScreenSurfaceQNX");
1642
#endif // VK_USE_PLATFORM_SCREEN_QNX
1643
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
1644
    table->GetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)gpa(inst, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
1645
#endif // VK_USE_PLATFORM_SCREEN_QNX
1646
1647
    // ---- VK_ARM_tensors extension commands
1648
0
    table->GetPhysicalDeviceExternalTensorPropertiesARM = (PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)gpa(inst, "vkGetPhysicalDeviceExternalTensorPropertiesARM");
1649
1650
    // ---- VK_NV_optical_flow extension commands
1651
0
    table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
1652
1653
    // ---- VK_NV_cooperative_vector extension commands
1654
0
    table->GetPhysicalDeviceCooperativeVectorPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV");
1655
1656
    // ---- VK_ARM_data_graph extension commands
1657
0
    table->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = (PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)gpa(inst, "vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM");
1658
0
    table->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = (PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)gpa(inst, "vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM");
1659
1660
    // ---- VK_OHOS_surface extension commands
1661
#if defined(VK_USE_PLATFORM_OHOS)
1662
    table->CreateSurfaceOHOS = (PFN_vkCreateSurfaceOHOS)gpa(inst, "vkCreateSurfaceOHOS");
1663
#endif // VK_USE_PLATFORM_OHOS
1664
1665
    // ---- VK_NV_cooperative_matrix2 extension commands
1666
0
    table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
1667
1668
    // ---- VK_ARM_performance_counters_by_region extension commands
1669
0
    table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM");
1670
0
}
1671
1672
// Functions that required a terminator need to have a separate dispatch table which contains their corresponding
1673
// device function. This is used in the terminators themselves.
1674
0
void init_extension_device_proc_terminator_dispatch(struct loader_device *dev) {
1675
0
    struct loader_device_terminator_dispatch* dispatch = &dev->loader_dispatch.extension_terminator_dispatch;
1676
0
    PFN_vkGetDeviceProcAddr gpda = (PFN_vkGetDeviceProcAddr)dev->phys_dev_term->this_icd_term->dispatch.GetDeviceProcAddr;
1677
1678
    // ---- VK_KHR_swapchain extension commands
1679
0
    if (dev->driver_extensions.khr_swapchain_enabled)
1680
0
       dispatch->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gpda(dev->icd_device, "vkCreateSwapchainKHR");
1681
0
    if (dev->driver_extensions.khr_swapchain_enabled || dev->driver_extensions.khr_device_group_enabled)
1682
0
       dispatch->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModesKHR");
1683
1684
    // ---- VK_KHR_display_swapchain extension commands
1685
0
    if (dev->driver_extensions.khr_display_swapchain_enabled)
1686
0
       dispatch->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gpda(dev->icd_device, "vkCreateSharedSwapchainsKHR");
1687
1688
    // ---- VK_EXT_debug_marker extension commands
1689
0
    if (dev->driver_extensions.ext_debug_marker_enabled)
1690
0
       dispatch->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectTagEXT");
1691
0
    if (dev->driver_extensions.ext_debug_marker_enabled)
1692
0
       dispatch->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectNameEXT");
1693
1694
    // ---- VK_EXT_debug_utils extension commands
1695
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1696
0
       dispatch->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectNameEXT");
1697
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1698
0
       dispatch->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectTagEXT");
1699
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1700
0
       dispatch->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueBeginDebugUtilsLabelEXT");
1701
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1702
0
       dispatch->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueEndDebugUtilsLabelEXT");
1703
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1704
0
       dispatch->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueInsertDebugUtilsLabelEXT");
1705
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1706
0
       dispatch->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdBeginDebugUtilsLabelEXT");
1707
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1708
0
       dispatch->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdEndDebugUtilsLabelEXT");
1709
0
    if (dev->driver_extensions.ext_debug_utils_enabled)
1710
0
       dispatch->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdInsertDebugUtilsLabelEXT");
1711
#if defined(VK_USE_PLATFORM_WIN32_KHR)
1712
1713
    // ---- VK_EXT_full_screen_exclusive extension commands
1714
    if (dev->driver_extensions.ext_full_screen_exclusive_enabled)
1715
       dispatch->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModes2EXT");
1716
#endif // VK_USE_PLATFORM_WIN32_KHR
1717
0
}
1718
1719
// These are prototypes for functions that need their trampoline called in all circumstances.
1720
// They are used in loader_lookup_device_dispatch_table but are defined afterwards.
1721
1722
    // ---- VK_EXT_debug_marker extension commands
1723
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
1724
    VkDevice                                    device,
1725
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo);
1726
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
1727
    VkDevice                                    device,
1728
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo);
1729
1730
    // ---- VK_EXT_debug_utils extension commands
1731
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
1732
    VkDevice                                    device,
1733
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo);
1734
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
1735
    VkDevice                                    device,
1736
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo);
1737
1738
// Device command lookup function
1739
0
VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDispatchTable *table, const char *name, bool* found_name) {
1740
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
1741
0
        *found_name = false;
1742
0
        return NULL;
1743
0
    }
1744
1745
0
    name += 2;
1746
0
    *found_name = true;
1747
0
    struct loader_device* dev = (struct loader_device *)table;
1748
0
    const struct loader_instance* inst = dev->phys_dev_term->this_icd_term->this_instance;
1749
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);
1750
1751
1752
    // ---- Core Vulkan 1.0 commands
1753
0
    if (!strcmp(name, "GetDeviceProcAddr")) {
1754
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1755
0
        return (void *)table->GetDeviceProcAddr;
1756
0
    }
1757
0
    if (!strcmp(name, "DestroyDevice")) {
1758
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1759
0
        return (void *)table->DestroyDevice;
1760
0
    }
1761
0
    if (!strcmp(name, "GetDeviceQueue")) {
1762
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1763
0
        return (void *)table->GetDeviceQueue;
1764
0
    }
1765
0
    if (!strcmp(name, "QueueSubmit")) {
1766
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1767
0
        return (void *)table->QueueSubmit;
1768
0
    }
1769
0
    if (!strcmp(name, "QueueWaitIdle")) {
1770
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1771
0
        return (void *)table->QueueWaitIdle;
1772
0
    }
1773
0
    if (!strcmp(name, "DeviceWaitIdle")) {
1774
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1775
0
        return (void *)table->DeviceWaitIdle;
1776
0
    }
1777
0
    if (!strcmp(name, "AllocateMemory")) {
1778
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1779
0
        return (void *)table->AllocateMemory;
1780
0
    }
1781
0
    if (!strcmp(name, "FreeMemory")) {
1782
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1783
0
        return (void *)table->FreeMemory;
1784
0
    }
1785
0
    if (!strcmp(name, "MapMemory")) {
1786
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1787
0
        return (void *)table->MapMemory;
1788
0
    }
1789
0
    if (!strcmp(name, "UnmapMemory")) {
1790
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1791
0
        return (void *)table->UnmapMemory;
1792
0
    }
1793
0
    if (!strcmp(name, "FlushMappedMemoryRanges")) {
1794
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1795
0
        return (void *)table->FlushMappedMemoryRanges;
1796
0
    }
1797
0
    if (!strcmp(name, "InvalidateMappedMemoryRanges")) {
1798
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1799
0
        return (void *)table->InvalidateMappedMemoryRanges;
1800
0
    }
1801
0
    if (!strcmp(name, "GetDeviceMemoryCommitment")) {
1802
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1803
0
        return (void *)table->GetDeviceMemoryCommitment;
1804
0
    }
1805
0
    if (!strcmp(name, "BindBufferMemory")) {
1806
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1807
0
        return (void *)table->BindBufferMemory;
1808
0
    }
1809
0
    if (!strcmp(name, "BindImageMemory")) {
1810
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1811
0
        return (void *)table->BindImageMemory;
1812
0
    }
1813
0
    if (!strcmp(name, "GetBufferMemoryRequirements")) {
1814
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1815
0
        return (void *)table->GetBufferMemoryRequirements;
1816
0
    }
1817
0
    if (!strcmp(name, "GetImageMemoryRequirements")) {
1818
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1819
0
        return (void *)table->GetImageMemoryRequirements;
1820
0
    }
1821
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements")) {
1822
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1823
0
        return (void *)table->GetImageSparseMemoryRequirements;
1824
0
    }
1825
0
    if (!strcmp(name, "QueueBindSparse")) {
1826
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1827
0
        return (void *)table->QueueBindSparse;
1828
0
    }
1829
0
    if (!strcmp(name, "CreateFence")) {
1830
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1831
0
        return (void *)table->CreateFence;
1832
0
    }
1833
0
    if (!strcmp(name, "DestroyFence")) {
1834
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1835
0
        return (void *)table->DestroyFence;
1836
0
    }
1837
0
    if (!strcmp(name, "ResetFences")) {
1838
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1839
0
        return (void *)table->ResetFences;
1840
0
    }
1841
0
    if (!strcmp(name, "GetFenceStatus")) {
1842
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1843
0
        return (void *)table->GetFenceStatus;
1844
0
    }
1845
0
    if (!strcmp(name, "WaitForFences")) {
1846
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1847
0
        return (void *)table->WaitForFences;
1848
0
    }
1849
0
    if (!strcmp(name, "CreateSemaphore")) {
1850
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1851
0
        return (void *)table->CreateSemaphore;
1852
0
    }
1853
0
    if (!strcmp(name, "DestroySemaphore")) {
1854
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1855
0
        return (void *)table->DestroySemaphore;
1856
0
    }
1857
0
    if (!strcmp(name, "CreateQueryPool")) {
1858
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1859
0
        return (void *)table->CreateQueryPool;
1860
0
    }
1861
0
    if (!strcmp(name, "DestroyQueryPool")) {
1862
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1863
0
        return (void *)table->DestroyQueryPool;
1864
0
    }
1865
0
    if (!strcmp(name, "GetQueryPoolResults")) {
1866
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1867
0
        return (void *)table->GetQueryPoolResults;
1868
0
    }
1869
0
    if (!strcmp(name, "CreateBuffer")) {
1870
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1871
0
        return (void *)table->CreateBuffer;
1872
0
    }
1873
0
    if (!strcmp(name, "DestroyBuffer")) {
1874
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1875
0
        return (void *)table->DestroyBuffer;
1876
0
    }
1877
0
    if (!strcmp(name, "CreateImage")) {
1878
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1879
0
        return (void *)table->CreateImage;
1880
0
    }
1881
0
    if (!strcmp(name, "DestroyImage")) {
1882
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1883
0
        return (void *)table->DestroyImage;
1884
0
    }
1885
0
    if (!strcmp(name, "GetImageSubresourceLayout")) {
1886
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1887
0
        return (void *)table->GetImageSubresourceLayout;
1888
0
    }
1889
0
    if (!strcmp(name, "CreateImageView")) {
1890
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1891
0
        return (void *)table->CreateImageView;
1892
0
    }
1893
0
    if (!strcmp(name, "DestroyImageView")) {
1894
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1895
0
        return (void *)table->DestroyImageView;
1896
0
    }
1897
0
    if (!strcmp(name, "CreateCommandPool")) {
1898
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1899
0
        return (void *)table->CreateCommandPool;
1900
0
    }
1901
0
    if (!strcmp(name, "DestroyCommandPool")) {
1902
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1903
0
        return (void *)table->DestroyCommandPool;
1904
0
    }
1905
0
    if (!strcmp(name, "ResetCommandPool")) {
1906
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1907
0
        return (void *)table->ResetCommandPool;
1908
0
    }
1909
0
    if (!strcmp(name, "AllocateCommandBuffers")) {
1910
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1911
0
        return (void *)table->AllocateCommandBuffers;
1912
0
    }
1913
0
    if (!strcmp(name, "FreeCommandBuffers")) {
1914
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1915
0
        return (void *)table->FreeCommandBuffers;
1916
0
    }
1917
0
    if (!strcmp(name, "BeginCommandBuffer")) {
1918
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1919
0
        return (void *)table->BeginCommandBuffer;
1920
0
    }
1921
0
    if (!strcmp(name, "EndCommandBuffer")) {
1922
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1923
0
        return (void *)table->EndCommandBuffer;
1924
0
    }
1925
0
    if (!strcmp(name, "ResetCommandBuffer")) {
1926
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1927
0
        return (void *)table->ResetCommandBuffer;
1928
0
    }
1929
0
    if (!strcmp(name, "CmdCopyBuffer")) {
1930
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1931
0
        return (void *)table->CmdCopyBuffer;
1932
0
    }
1933
0
    if (!strcmp(name, "CmdCopyImage")) {
1934
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1935
0
        return (void *)table->CmdCopyImage;
1936
0
    }
1937
0
    if (!strcmp(name, "CmdCopyBufferToImage")) {
1938
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1939
0
        return (void *)table->CmdCopyBufferToImage;
1940
0
    }
1941
0
    if (!strcmp(name, "CmdCopyImageToBuffer")) {
1942
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1943
0
        return (void *)table->CmdCopyImageToBuffer;
1944
0
    }
1945
0
    if (!strcmp(name, "CmdUpdateBuffer")) {
1946
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1947
0
        return (void *)table->CmdUpdateBuffer;
1948
0
    }
1949
0
    if (!strcmp(name, "CmdFillBuffer")) {
1950
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1951
0
        return (void *)table->CmdFillBuffer;
1952
0
    }
1953
0
    if (!strcmp(name, "CmdPipelineBarrier")) {
1954
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1955
0
        return (void *)table->CmdPipelineBarrier;
1956
0
    }
1957
0
    if (!strcmp(name, "CmdBeginQuery")) {
1958
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1959
0
        return (void *)table->CmdBeginQuery;
1960
0
    }
1961
0
    if (!strcmp(name, "CmdEndQuery")) {
1962
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1963
0
        return (void *)table->CmdEndQuery;
1964
0
    }
1965
0
    if (!strcmp(name, "CmdResetQueryPool")) {
1966
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1967
0
        return (void *)table->CmdResetQueryPool;
1968
0
    }
1969
0
    if (!strcmp(name, "CmdWriteTimestamp")) {
1970
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1971
0
        return (void *)table->CmdWriteTimestamp;
1972
0
    }
1973
0
    if (!strcmp(name, "CmdCopyQueryPoolResults")) {
1974
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1975
0
        return (void *)table->CmdCopyQueryPoolResults;
1976
0
    }
1977
0
    if (!strcmp(name, "CmdExecuteCommands")) {
1978
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1979
0
        return (void *)table->CmdExecuteCommands;
1980
0
    }
1981
0
    if (!strcmp(name, "CreateEvent")) {
1982
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1983
0
        return (void *)table->CreateEvent;
1984
0
    }
1985
0
    if (!strcmp(name, "DestroyEvent")) {
1986
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1987
0
        return (void *)table->DestroyEvent;
1988
0
    }
1989
0
    if (!strcmp(name, "GetEventStatus")) {
1990
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1991
0
        return (void *)table->GetEventStatus;
1992
0
    }
1993
0
    if (!strcmp(name, "SetEvent")) {
1994
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1995
0
        return (void *)table->SetEvent;
1996
0
    }
1997
0
    if (!strcmp(name, "ResetEvent")) {
1998
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1999
0
        return (void *)table->ResetEvent;
2000
0
    }
2001
0
    if (!strcmp(name, "CreateBufferView")) {
2002
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2003
0
        return (void *)table->CreateBufferView;
2004
0
    }
2005
0
    if (!strcmp(name, "DestroyBufferView")) {
2006
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2007
0
        return (void *)table->DestroyBufferView;
2008
0
    }
2009
0
    if (!strcmp(name, "CreateShaderModule")) {
2010
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2011
0
        return (void *)table->CreateShaderModule;
2012
0
    }
2013
0
    if (!strcmp(name, "DestroyShaderModule")) {
2014
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2015
0
        return (void *)table->DestroyShaderModule;
2016
0
    }
2017
0
    if (!strcmp(name, "CreatePipelineCache")) {
2018
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2019
0
        return (void *)table->CreatePipelineCache;
2020
0
    }
2021
0
    if (!strcmp(name, "DestroyPipelineCache")) {
2022
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2023
0
        return (void *)table->DestroyPipelineCache;
2024
0
    }
2025
0
    if (!strcmp(name, "GetPipelineCacheData")) {
2026
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2027
0
        return (void *)table->GetPipelineCacheData;
2028
0
    }
2029
0
    if (!strcmp(name, "MergePipelineCaches")) {
2030
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2031
0
        return (void *)table->MergePipelineCaches;
2032
0
    }
2033
0
    if (!strcmp(name, "CreateComputePipelines")) {
2034
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2035
0
        return (void *)table->CreateComputePipelines;
2036
0
    }
2037
0
    if (!strcmp(name, "DestroyPipeline")) {
2038
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2039
0
        return (void *)table->DestroyPipeline;
2040
0
    }
2041
0
    if (!strcmp(name, "CreatePipelineLayout")) {
2042
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2043
0
        return (void *)table->CreatePipelineLayout;
2044
0
    }
2045
0
    if (!strcmp(name, "DestroyPipelineLayout")) {
2046
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2047
0
        return (void *)table->DestroyPipelineLayout;
2048
0
    }
2049
0
    if (!strcmp(name, "CreateSampler")) {
2050
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2051
0
        return (void *)table->CreateSampler;
2052
0
    }
2053
0
    if (!strcmp(name, "DestroySampler")) {
2054
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2055
0
        return (void *)table->DestroySampler;
2056
0
    }
2057
0
    if (!strcmp(name, "CreateDescriptorSetLayout")) {
2058
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2059
0
        return (void *)table->CreateDescriptorSetLayout;
2060
0
    }
2061
0
    if (!strcmp(name, "DestroyDescriptorSetLayout")) {
2062
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2063
0
        return (void *)table->DestroyDescriptorSetLayout;
2064
0
    }
2065
0
    if (!strcmp(name, "CreateDescriptorPool")) {
2066
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2067
0
        return (void *)table->CreateDescriptorPool;
2068
0
    }
2069
0
    if (!strcmp(name, "DestroyDescriptorPool")) {
2070
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2071
0
        return (void *)table->DestroyDescriptorPool;
2072
0
    }
2073
0
    if (!strcmp(name, "ResetDescriptorPool")) {
2074
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2075
0
        return (void *)table->ResetDescriptorPool;
2076
0
    }
2077
0
    if (!strcmp(name, "AllocateDescriptorSets")) {
2078
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2079
0
        return (void *)table->AllocateDescriptorSets;
2080
0
    }
2081
0
    if (!strcmp(name, "FreeDescriptorSets")) {
2082
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2083
0
        return (void *)table->FreeDescriptorSets;
2084
0
    }
2085
0
    if (!strcmp(name, "UpdateDescriptorSets")) {
2086
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2087
0
        return (void *)table->UpdateDescriptorSets;
2088
0
    }
2089
0
    if (!strcmp(name, "CmdBindPipeline")) {
2090
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2091
0
        return (void *)table->CmdBindPipeline;
2092
0
    }
2093
0
    if (!strcmp(name, "CmdBindDescriptorSets")) {
2094
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2095
0
        return (void *)table->CmdBindDescriptorSets;
2096
0
    }
2097
0
    if (!strcmp(name, "CmdClearColorImage")) {
2098
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2099
0
        return (void *)table->CmdClearColorImage;
2100
0
    }
2101
0
    if (!strcmp(name, "CmdDispatch")) {
2102
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2103
0
        return (void *)table->CmdDispatch;
2104
0
    }
2105
0
    if (!strcmp(name, "CmdDispatchIndirect")) {
2106
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2107
0
        return (void *)table->CmdDispatchIndirect;
2108
0
    }
2109
0
    if (!strcmp(name, "CmdSetEvent")) {
2110
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2111
0
        return (void *)table->CmdSetEvent;
2112
0
    }
2113
0
    if (!strcmp(name, "CmdResetEvent")) {
2114
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2115
0
        return (void *)table->CmdResetEvent;
2116
0
    }
2117
0
    if (!strcmp(name, "CmdWaitEvents")) {
2118
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2119
0
        return (void *)table->CmdWaitEvents;
2120
0
    }
2121
0
    if (!strcmp(name, "CmdPushConstants")) {
2122
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2123
0
        return (void *)table->CmdPushConstants;
2124
0
    }
2125
0
    if (!strcmp(name, "CreateGraphicsPipelines")) {
2126
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2127
0
        return (void *)table->CreateGraphicsPipelines;
2128
0
    }
2129
0
    if (!strcmp(name, "CreateFramebuffer")) {
2130
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2131
0
        return (void *)table->CreateFramebuffer;
2132
0
    }
2133
0
    if (!strcmp(name, "DestroyFramebuffer")) {
2134
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2135
0
        return (void *)table->DestroyFramebuffer;
2136
0
    }
2137
0
    if (!strcmp(name, "CreateRenderPass")) {
2138
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2139
0
        return (void *)table->CreateRenderPass;
2140
0
    }
2141
0
    if (!strcmp(name, "DestroyRenderPass")) {
2142
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2143
0
        return (void *)table->DestroyRenderPass;
2144
0
    }
2145
0
    if (!strcmp(name, "GetRenderAreaGranularity")) {
2146
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2147
0
        return (void *)table->GetRenderAreaGranularity;
2148
0
    }
2149
0
    if (!strcmp(name, "CmdSetViewport")) {
2150
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2151
0
        return (void *)table->CmdSetViewport;
2152
0
    }
2153
0
    if (!strcmp(name, "CmdSetScissor")) {
2154
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2155
0
        return (void *)table->CmdSetScissor;
2156
0
    }
2157
0
    if (!strcmp(name, "CmdSetLineWidth")) {
2158
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2159
0
        return (void *)table->CmdSetLineWidth;
2160
0
    }
2161
0
    if (!strcmp(name, "CmdSetDepthBias")) {
2162
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2163
0
        return (void *)table->CmdSetDepthBias;
2164
0
    }
2165
0
    if (!strcmp(name, "CmdSetBlendConstants")) {
2166
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2167
0
        return (void *)table->CmdSetBlendConstants;
2168
0
    }
2169
0
    if (!strcmp(name, "CmdSetDepthBounds")) {
2170
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2171
0
        return (void *)table->CmdSetDepthBounds;
2172
0
    }
2173
0
    if (!strcmp(name, "CmdSetStencilCompareMask")) {
2174
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2175
0
        return (void *)table->CmdSetStencilCompareMask;
2176
0
    }
2177
0
    if (!strcmp(name, "CmdSetStencilWriteMask")) {
2178
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2179
0
        return (void *)table->CmdSetStencilWriteMask;
2180
0
    }
2181
0
    if (!strcmp(name, "CmdSetStencilReference")) {
2182
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2183
0
        return (void *)table->CmdSetStencilReference;
2184
0
    }
2185
0
    if (!strcmp(name, "CmdBindIndexBuffer")) {
2186
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2187
0
        return (void *)table->CmdBindIndexBuffer;
2188
0
    }
2189
0
    if (!strcmp(name, "CmdBindVertexBuffers")) {
2190
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2191
0
        return (void *)table->CmdBindVertexBuffers;
2192
0
    }
2193
0
    if (!strcmp(name, "CmdDraw")) {
2194
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2195
0
        return (void *)table->CmdDraw;
2196
0
    }
2197
0
    if (!strcmp(name, "CmdDrawIndexed")) {
2198
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2199
0
        return (void *)table->CmdDrawIndexed;
2200
0
    }
2201
0
    if (!strcmp(name, "CmdDrawIndirect")) {
2202
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2203
0
        return (void *)table->CmdDrawIndirect;
2204
0
    }
2205
0
    if (!strcmp(name, "CmdDrawIndexedIndirect")) {
2206
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2207
0
        return (void *)table->CmdDrawIndexedIndirect;
2208
0
    }
2209
0
    if (!strcmp(name, "CmdBlitImage")) {
2210
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2211
0
        return (void *)table->CmdBlitImage;
2212
0
    }
2213
0
    if (!strcmp(name, "CmdClearDepthStencilImage")) {
2214
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2215
0
        return (void *)table->CmdClearDepthStencilImage;
2216
0
    }
2217
0
    if (!strcmp(name, "CmdClearAttachments")) {
2218
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2219
0
        return (void *)table->CmdClearAttachments;
2220
0
    }
2221
0
    if (!strcmp(name, "CmdResolveImage")) {
2222
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2223
0
        return (void *)table->CmdResolveImage;
2224
0
    }
2225
0
    if (!strcmp(name, "CmdBeginRenderPass")) {
2226
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2227
0
        return (void *)table->CmdBeginRenderPass;
2228
0
    }
2229
0
    if (!strcmp(name, "CmdNextSubpass")) {
2230
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2231
0
        return (void *)table->CmdNextSubpass;
2232
0
    }
2233
0
    if (!strcmp(name, "CmdEndRenderPass")) {
2234
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2235
0
        return (void *)table->CmdEndRenderPass;
2236
0
    }
2237
2238
    // ---- Core Vulkan 1.1 commands
2239
0
    if (!strcmp(name, "BindBufferMemory2")) {
2240
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2241
0
        return (void *)table->BindBufferMemory2;
2242
0
    }
2243
0
    if (!strcmp(name, "BindImageMemory2")) {
2244
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2245
0
        return (void *)table->BindImageMemory2;
2246
0
    }
2247
0
    if (!strcmp(name, "GetDeviceGroupPeerMemoryFeatures")) {
2248
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2249
0
        return (void *)table->GetDeviceGroupPeerMemoryFeatures;
2250
0
    }
2251
0
    if (!strcmp(name, "CmdSetDeviceMask")) {
2252
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2253
0
        return (void *)table->CmdSetDeviceMask;
2254
0
    }
2255
0
    if (!strcmp(name, "GetImageMemoryRequirements2")) {
2256
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2257
0
        return (void *)table->GetImageMemoryRequirements2;
2258
0
    }
2259
0
    if (!strcmp(name, "GetBufferMemoryRequirements2")) {
2260
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2261
0
        return (void *)table->GetBufferMemoryRequirements2;
2262
0
    }
2263
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements2")) {
2264
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2265
0
        return (void *)table->GetImageSparseMemoryRequirements2;
2266
0
    }
2267
0
    if (!strcmp(name, "TrimCommandPool")) {
2268
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2269
0
        return (void *)table->TrimCommandPool;
2270
0
    }
2271
0
    if (!strcmp(name, "GetDeviceQueue2")) {
2272
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2273
0
        return (void *)table->GetDeviceQueue2;
2274
0
    }
2275
0
    if (!strcmp(name, "CmdDispatchBase")) {
2276
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2277
0
        return (void *)table->CmdDispatchBase;
2278
0
    }
2279
0
    if (!strcmp(name, "CreateDescriptorUpdateTemplate")) {
2280
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2281
0
        return (void *)table->CreateDescriptorUpdateTemplate;
2282
0
    }
2283
0
    if (!strcmp(name, "DestroyDescriptorUpdateTemplate")) {
2284
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2285
0
        return (void *)table->DestroyDescriptorUpdateTemplate;
2286
0
    }
2287
0
    if (!strcmp(name, "UpdateDescriptorSetWithTemplate")) {
2288
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2289
0
        return (void *)table->UpdateDescriptorSetWithTemplate;
2290
0
    }
2291
0
    if (!strcmp(name, "GetDescriptorSetLayoutSupport")) {
2292
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2293
0
        return (void *)table->GetDescriptorSetLayoutSupport;
2294
0
    }
2295
0
    if (!strcmp(name, "CreateSamplerYcbcrConversion")) {
2296
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2297
0
        return (void *)table->CreateSamplerYcbcrConversion;
2298
0
    }
2299
0
    if (!strcmp(name, "DestroySamplerYcbcrConversion")) {
2300
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2301
0
        return (void *)table->DestroySamplerYcbcrConversion;
2302
0
    }
2303
2304
    // ---- Core Vulkan 1.2 commands
2305
0
    if (!strcmp(name, "ResetQueryPool")) {
2306
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2307
0
        return (void *)table->ResetQueryPool;
2308
0
    }
2309
0
    if (!strcmp(name, "GetSemaphoreCounterValue")) {
2310
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2311
0
        return (void *)table->GetSemaphoreCounterValue;
2312
0
    }
2313
0
    if (!strcmp(name, "WaitSemaphores")) {
2314
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2315
0
        return (void *)table->WaitSemaphores;
2316
0
    }
2317
0
    if (!strcmp(name, "SignalSemaphore")) {
2318
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2319
0
        return (void *)table->SignalSemaphore;
2320
0
    }
2321
0
    if (!strcmp(name, "GetBufferDeviceAddress")) {
2322
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2323
0
        return (void *)table->GetBufferDeviceAddress;
2324
0
    }
2325
0
    if (!strcmp(name, "GetBufferOpaqueCaptureAddress")) {
2326
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2327
0
        return (void *)table->GetBufferOpaqueCaptureAddress;
2328
0
    }
2329
0
    if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddress")) {
2330
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2331
0
        return (void *)table->GetDeviceMemoryOpaqueCaptureAddress;
2332
0
    }
2333
0
    if (!strcmp(name, "CmdDrawIndirectCount")) {
2334
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2335
0
        return (void *)table->CmdDrawIndirectCount;
2336
0
    }
2337
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCount")) {
2338
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2339
0
        return (void *)table->CmdDrawIndexedIndirectCount;
2340
0
    }
2341
0
    if (!strcmp(name, "CreateRenderPass2")) {
2342
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2343
0
        return (void *)table->CreateRenderPass2;
2344
0
    }
2345
0
    if (!strcmp(name, "CmdBeginRenderPass2")) {
2346
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2347
0
        return (void *)table->CmdBeginRenderPass2;
2348
0
    }
2349
0
    if (!strcmp(name, "CmdNextSubpass2")) {
2350
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2351
0
        return (void *)table->CmdNextSubpass2;
2352
0
    }
2353
0
    if (!strcmp(name, "CmdEndRenderPass2")) {
2354
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2355
0
        return (void *)table->CmdEndRenderPass2;
2356
0
    }
2357
2358
    // ---- Core Vulkan 1.3 commands
2359
0
    if (!strcmp(name, "CreatePrivateDataSlot")) {
2360
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2361
0
        return (void *)table->CreatePrivateDataSlot;
2362
0
    }
2363
0
    if (!strcmp(name, "DestroyPrivateDataSlot")) {
2364
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2365
0
        return (void *)table->DestroyPrivateDataSlot;
2366
0
    }
2367
0
    if (!strcmp(name, "SetPrivateData")) {
2368
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2369
0
        return (void *)table->SetPrivateData;
2370
0
    }
2371
0
    if (!strcmp(name, "GetPrivateData")) {
2372
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2373
0
        return (void *)table->GetPrivateData;
2374
0
    }
2375
0
    if (!strcmp(name, "CmdPipelineBarrier2")) {
2376
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2377
0
        return (void *)table->CmdPipelineBarrier2;
2378
0
    }
2379
0
    if (!strcmp(name, "CmdWriteTimestamp2")) {
2380
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2381
0
        return (void *)table->CmdWriteTimestamp2;
2382
0
    }
2383
0
    if (!strcmp(name, "QueueSubmit2")) {
2384
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2385
0
        return (void *)table->QueueSubmit2;
2386
0
    }
2387
0
    if (!strcmp(name, "CmdCopyBuffer2")) {
2388
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2389
0
        return (void *)table->CmdCopyBuffer2;
2390
0
    }
2391
0
    if (!strcmp(name, "CmdCopyImage2")) {
2392
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2393
0
        return (void *)table->CmdCopyImage2;
2394
0
    }
2395
0
    if (!strcmp(name, "CmdCopyBufferToImage2")) {
2396
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2397
0
        return (void *)table->CmdCopyBufferToImage2;
2398
0
    }
2399
0
    if (!strcmp(name, "CmdCopyImageToBuffer2")) {
2400
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2401
0
        return (void *)table->CmdCopyImageToBuffer2;
2402
0
    }
2403
0
    if (!strcmp(name, "GetDeviceBufferMemoryRequirements")) {
2404
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2405
0
        return (void *)table->GetDeviceBufferMemoryRequirements;
2406
0
    }
2407
0
    if (!strcmp(name, "GetDeviceImageMemoryRequirements")) {
2408
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2409
0
        return (void *)table->GetDeviceImageMemoryRequirements;
2410
0
    }
2411
0
    if (!strcmp(name, "GetDeviceImageSparseMemoryRequirements")) {
2412
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2413
0
        return (void *)table->GetDeviceImageSparseMemoryRequirements;
2414
0
    }
2415
0
    if (!strcmp(name, "CmdSetEvent2")) {
2416
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2417
0
        return (void *)table->CmdSetEvent2;
2418
0
    }
2419
0
    if (!strcmp(name, "CmdResetEvent2")) {
2420
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2421
0
        return (void *)table->CmdResetEvent2;
2422
0
    }
2423
0
    if (!strcmp(name, "CmdWaitEvents2")) {
2424
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2425
0
        return (void *)table->CmdWaitEvents2;
2426
0
    }
2427
0
    if (!strcmp(name, "CmdBlitImage2")) {
2428
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2429
0
        return (void *)table->CmdBlitImage2;
2430
0
    }
2431
0
    if (!strcmp(name, "CmdResolveImage2")) {
2432
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2433
0
        return (void *)table->CmdResolveImage2;
2434
0
    }
2435
0
    if (!strcmp(name, "CmdBeginRendering")) {
2436
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2437
0
        return (void *)table->CmdBeginRendering;
2438
0
    }
2439
0
    if (!strcmp(name, "CmdEndRendering")) {
2440
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2441
0
        return (void *)table->CmdEndRendering;
2442
0
    }
2443
0
    if (!strcmp(name, "CmdSetCullMode")) {
2444
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2445
0
        return (void *)table->CmdSetCullMode;
2446
0
    }
2447
0
    if (!strcmp(name, "CmdSetFrontFace")) {
2448
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2449
0
        return (void *)table->CmdSetFrontFace;
2450
0
    }
2451
0
    if (!strcmp(name, "CmdSetPrimitiveTopology")) {
2452
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2453
0
        return (void *)table->CmdSetPrimitiveTopology;
2454
0
    }
2455
0
    if (!strcmp(name, "CmdSetViewportWithCount")) {
2456
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2457
0
        return (void *)table->CmdSetViewportWithCount;
2458
0
    }
2459
0
    if (!strcmp(name, "CmdSetScissorWithCount")) {
2460
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2461
0
        return (void *)table->CmdSetScissorWithCount;
2462
0
    }
2463
0
    if (!strcmp(name, "CmdBindVertexBuffers2")) {
2464
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2465
0
        return (void *)table->CmdBindVertexBuffers2;
2466
0
    }
2467
0
    if (!strcmp(name, "CmdSetDepthTestEnable")) {
2468
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2469
0
        return (void *)table->CmdSetDepthTestEnable;
2470
0
    }
2471
0
    if (!strcmp(name, "CmdSetDepthWriteEnable")) {
2472
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2473
0
        return (void *)table->CmdSetDepthWriteEnable;
2474
0
    }
2475
0
    if (!strcmp(name, "CmdSetDepthCompareOp")) {
2476
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2477
0
        return (void *)table->CmdSetDepthCompareOp;
2478
0
    }
2479
0
    if (!strcmp(name, "CmdSetDepthBoundsTestEnable")) {
2480
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2481
0
        return (void *)table->CmdSetDepthBoundsTestEnable;
2482
0
    }
2483
0
    if (!strcmp(name, "CmdSetStencilTestEnable")) {
2484
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2485
0
        return (void *)table->CmdSetStencilTestEnable;
2486
0
    }
2487
0
    if (!strcmp(name, "CmdSetStencilOp")) {
2488
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2489
0
        return (void *)table->CmdSetStencilOp;
2490
0
    }
2491
0
    if (!strcmp(name, "CmdSetRasterizerDiscardEnable")) {
2492
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2493
0
        return (void *)table->CmdSetRasterizerDiscardEnable;
2494
0
    }
2495
0
    if (!strcmp(name, "CmdSetDepthBiasEnable")) {
2496
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2497
0
        return (void *)table->CmdSetDepthBiasEnable;
2498
0
    }
2499
0
    if (!strcmp(name, "CmdSetPrimitiveRestartEnable")) {
2500
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2501
0
        return (void *)table->CmdSetPrimitiveRestartEnable;
2502
0
    }
2503
2504
    // ---- Core Vulkan 1.4 commands
2505
0
    if (!strcmp(name, "MapMemory2")) {
2506
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2507
0
        return (void *)table->MapMemory2;
2508
0
    }
2509
0
    if (!strcmp(name, "UnmapMemory2")) {
2510
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2511
0
        return (void *)table->UnmapMemory2;
2512
0
    }
2513
0
    if (!strcmp(name, "GetDeviceImageSubresourceLayout")) {
2514
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2515
0
        return (void *)table->GetDeviceImageSubresourceLayout;
2516
0
    }
2517
0
    if (!strcmp(name, "GetImageSubresourceLayout2")) {
2518
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2519
0
        return (void *)table->GetImageSubresourceLayout2;
2520
0
    }
2521
0
    if (!strcmp(name, "CopyMemoryToImage")) {
2522
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2523
0
        return (void *)table->CopyMemoryToImage;
2524
0
    }
2525
0
    if (!strcmp(name, "CopyImageToMemory")) {
2526
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2527
0
        return (void *)table->CopyImageToMemory;
2528
0
    }
2529
0
    if (!strcmp(name, "CopyImageToImage")) {
2530
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2531
0
        return (void *)table->CopyImageToImage;
2532
0
    }
2533
0
    if (!strcmp(name, "TransitionImageLayout")) {
2534
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2535
0
        return (void *)table->TransitionImageLayout;
2536
0
    }
2537
0
    if (!strcmp(name, "CmdPushDescriptorSet")) {
2538
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2539
0
        return (void *)table->CmdPushDescriptorSet;
2540
0
    }
2541
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate")) {
2542
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2543
0
        return (void *)table->CmdPushDescriptorSetWithTemplate;
2544
0
    }
2545
0
    if (!strcmp(name, "CmdBindDescriptorSets2")) {
2546
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2547
0
        return (void *)table->CmdBindDescriptorSets2;
2548
0
    }
2549
0
    if (!strcmp(name, "CmdPushConstants2")) {
2550
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2551
0
        return (void *)table->CmdPushConstants2;
2552
0
    }
2553
0
    if (!strcmp(name, "CmdPushDescriptorSet2")) {
2554
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2555
0
        return (void *)table->CmdPushDescriptorSet2;
2556
0
    }
2557
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2")) {
2558
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2559
0
        return (void *)table->CmdPushDescriptorSetWithTemplate2;
2560
0
    }
2561
0
    if (!strcmp(name, "CmdSetLineStipple")) {
2562
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2563
0
        return (void *)table->CmdSetLineStipple;
2564
0
    }
2565
0
    if (!strcmp(name, "CmdBindIndexBuffer2")) {
2566
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2567
0
        return (void *)table->CmdBindIndexBuffer2;
2568
0
    }
2569
0
    if (!strcmp(name, "GetRenderingAreaGranularity")) {
2570
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2571
0
        return (void *)table->GetRenderingAreaGranularity;
2572
0
    }
2573
0
    if (!strcmp(name, "CmdSetRenderingAttachmentLocations")) {
2574
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2575
0
        return (void *)table->CmdSetRenderingAttachmentLocations;
2576
0
    }
2577
0
    if (!strcmp(name, "CmdSetRenderingInputAttachmentIndices")) {
2578
0
        if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2579
0
        return (void *)table->CmdSetRenderingInputAttachmentIndices;
2580
0
    }
2581
2582
    // ---- VK_KHR_swapchain extension commands
2583
0
    if (!strcmp(name, "CreateSwapchainKHR")) return (void *)table->CreateSwapchainKHR;
2584
0
    if (!strcmp(name, "DestroySwapchainKHR")) return (void *)table->DestroySwapchainKHR;
2585
0
    if (!strcmp(name, "GetSwapchainImagesKHR")) return (void *)table->GetSwapchainImagesKHR;
2586
0
    if (!strcmp(name, "AcquireNextImageKHR")) return (void *)table->AcquireNextImageKHR;
2587
0
    if (!strcmp(name, "QueuePresentKHR")) return (void *)table->QueuePresentKHR;
2588
0
    if (!strcmp(name, "GetDeviceGroupPresentCapabilitiesKHR")) return (void *)table->GetDeviceGroupPresentCapabilitiesKHR;
2589
0
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) return (void *)table->GetDeviceGroupSurfacePresentModesKHR;
2590
0
    if (!strcmp(name, "AcquireNextImage2KHR")) return (void *)table->AcquireNextImage2KHR;
2591
2592
    // ---- VK_KHR_display_swapchain extension commands
2593
0
    if (!strcmp(name, "CreateSharedSwapchainsKHR")) return (void *)table->CreateSharedSwapchainsKHR;
2594
2595
    // ---- VK_KHR_video_queue extension commands
2596
0
    if (!strcmp(name, "CreateVideoSessionKHR")) return (void *)table->CreateVideoSessionKHR;
2597
0
    if (!strcmp(name, "DestroyVideoSessionKHR")) return (void *)table->DestroyVideoSessionKHR;
2598
0
    if (!strcmp(name, "GetVideoSessionMemoryRequirementsKHR")) return (void *)table->GetVideoSessionMemoryRequirementsKHR;
2599
0
    if (!strcmp(name, "BindVideoSessionMemoryKHR")) return (void *)table->BindVideoSessionMemoryKHR;
2600
0
    if (!strcmp(name, "CreateVideoSessionParametersKHR")) return (void *)table->CreateVideoSessionParametersKHR;
2601
0
    if (!strcmp(name, "UpdateVideoSessionParametersKHR")) return (void *)table->UpdateVideoSessionParametersKHR;
2602
0
    if (!strcmp(name, "DestroyVideoSessionParametersKHR")) return (void *)table->DestroyVideoSessionParametersKHR;
2603
0
    if (!strcmp(name, "CmdBeginVideoCodingKHR")) return (void *)table->CmdBeginVideoCodingKHR;
2604
0
    if (!strcmp(name, "CmdEndVideoCodingKHR")) return (void *)table->CmdEndVideoCodingKHR;
2605
0
    if (!strcmp(name, "CmdControlVideoCodingKHR")) return (void *)table->CmdControlVideoCodingKHR;
2606
2607
    // ---- VK_KHR_video_decode_queue extension commands
2608
0
    if (!strcmp(name, "CmdDecodeVideoKHR")) return (void *)table->CmdDecodeVideoKHR;
2609
2610
    // ---- VK_KHR_dynamic_rendering extension commands
2611
0
    if (!strcmp(name, "CmdBeginRenderingKHR")) return (void *)table->CmdBeginRenderingKHR;
2612
0
    if (!strcmp(name, "CmdEndRenderingKHR")) return (void *)table->CmdEndRenderingKHR;
2613
2614
    // ---- VK_KHR_device_group extension commands
2615
0
    if (!strcmp(name, "GetDeviceGroupPeerMemoryFeaturesKHR")) return (void *)table->GetDeviceGroupPeerMemoryFeaturesKHR;
2616
0
    if (!strcmp(name, "CmdSetDeviceMaskKHR")) return (void *)table->CmdSetDeviceMaskKHR;
2617
0
    if (!strcmp(name, "CmdDispatchBaseKHR")) return (void *)table->CmdDispatchBaseKHR;
2618
2619
    // ---- VK_KHR_maintenance1 extension commands
2620
0
    if (!strcmp(name, "TrimCommandPoolKHR")) return (void *)table->TrimCommandPoolKHR;
2621
2622
    // ---- VK_KHR_external_memory_win32 extension commands
2623
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2624
    if (!strcmp(name, "GetMemoryWin32HandleKHR")) return (void *)table->GetMemoryWin32HandleKHR;
2625
#endif // VK_USE_PLATFORM_WIN32_KHR
2626
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2627
    if (!strcmp(name, "GetMemoryWin32HandlePropertiesKHR")) return (void *)table->GetMemoryWin32HandlePropertiesKHR;
2628
#endif // VK_USE_PLATFORM_WIN32_KHR
2629
2630
    // ---- VK_KHR_external_memory_fd extension commands
2631
0
    if (!strcmp(name, "GetMemoryFdKHR")) return (void *)table->GetMemoryFdKHR;
2632
0
    if (!strcmp(name, "GetMemoryFdPropertiesKHR")) return (void *)table->GetMemoryFdPropertiesKHR;
2633
2634
    // ---- VK_KHR_external_semaphore_win32 extension commands
2635
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2636
    if (!strcmp(name, "ImportSemaphoreWin32HandleKHR")) return (void *)table->ImportSemaphoreWin32HandleKHR;
2637
#endif // VK_USE_PLATFORM_WIN32_KHR
2638
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2639
    if (!strcmp(name, "GetSemaphoreWin32HandleKHR")) return (void *)table->GetSemaphoreWin32HandleKHR;
2640
#endif // VK_USE_PLATFORM_WIN32_KHR
2641
2642
    // ---- VK_KHR_external_semaphore_fd extension commands
2643
0
    if (!strcmp(name, "ImportSemaphoreFdKHR")) return (void *)table->ImportSemaphoreFdKHR;
2644
0
    if (!strcmp(name, "GetSemaphoreFdKHR")) return (void *)table->GetSemaphoreFdKHR;
2645
2646
    // ---- VK_KHR_push_descriptor extension commands
2647
0
    if (!strcmp(name, "CmdPushDescriptorSetKHR")) return (void *)table->CmdPushDescriptorSetKHR;
2648
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplateKHR")) return (void *)table->CmdPushDescriptorSetWithTemplateKHR;
2649
2650
    // ---- VK_KHR_descriptor_update_template extension commands
2651
0
    if (!strcmp(name, "CreateDescriptorUpdateTemplateKHR")) return (void *)table->CreateDescriptorUpdateTemplateKHR;
2652
0
    if (!strcmp(name, "DestroyDescriptorUpdateTemplateKHR")) return (void *)table->DestroyDescriptorUpdateTemplateKHR;
2653
0
    if (!strcmp(name, "UpdateDescriptorSetWithTemplateKHR")) return (void *)table->UpdateDescriptorSetWithTemplateKHR;
2654
2655
    // ---- VK_KHR_create_renderpass2 extension commands
2656
0
    if (!strcmp(name, "CreateRenderPass2KHR")) return (void *)table->CreateRenderPass2KHR;
2657
0
    if (!strcmp(name, "CmdBeginRenderPass2KHR")) return (void *)table->CmdBeginRenderPass2KHR;
2658
0
    if (!strcmp(name, "CmdNextSubpass2KHR")) return (void *)table->CmdNextSubpass2KHR;
2659
0
    if (!strcmp(name, "CmdEndRenderPass2KHR")) return (void *)table->CmdEndRenderPass2KHR;
2660
2661
    // ---- VK_KHR_shared_presentable_image extension commands
2662
0
    if (!strcmp(name, "GetSwapchainStatusKHR")) return (void *)table->GetSwapchainStatusKHR;
2663
2664
    // ---- VK_KHR_external_fence_win32 extension commands
2665
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2666
    if (!strcmp(name, "ImportFenceWin32HandleKHR")) return (void *)table->ImportFenceWin32HandleKHR;
2667
#endif // VK_USE_PLATFORM_WIN32_KHR
2668
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2669
    if (!strcmp(name, "GetFenceWin32HandleKHR")) return (void *)table->GetFenceWin32HandleKHR;
2670
#endif // VK_USE_PLATFORM_WIN32_KHR
2671
2672
    // ---- VK_KHR_external_fence_fd extension commands
2673
0
    if (!strcmp(name, "ImportFenceFdKHR")) return (void *)table->ImportFenceFdKHR;
2674
0
    if (!strcmp(name, "GetFenceFdKHR")) return (void *)table->GetFenceFdKHR;
2675
2676
    // ---- VK_KHR_performance_query extension commands
2677
0
    if (!strcmp(name, "AcquireProfilingLockKHR")) return (void *)table->AcquireProfilingLockKHR;
2678
0
    if (!strcmp(name, "ReleaseProfilingLockKHR")) return (void *)table->ReleaseProfilingLockKHR;
2679
2680
    // ---- VK_KHR_get_memory_requirements2 extension commands
2681
0
    if (!strcmp(name, "GetImageMemoryRequirements2KHR")) return (void *)table->GetImageMemoryRequirements2KHR;
2682
0
    if (!strcmp(name, "GetBufferMemoryRequirements2KHR")) return (void *)table->GetBufferMemoryRequirements2KHR;
2683
0
    if (!strcmp(name, "GetImageSparseMemoryRequirements2KHR")) return (void *)table->GetImageSparseMemoryRequirements2KHR;
2684
2685
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
2686
0
    if (!strcmp(name, "CreateSamplerYcbcrConversionKHR")) return (void *)table->CreateSamplerYcbcrConversionKHR;
2687
0
    if (!strcmp(name, "DestroySamplerYcbcrConversionKHR")) return (void *)table->DestroySamplerYcbcrConversionKHR;
2688
2689
    // ---- VK_KHR_bind_memory2 extension commands
2690
0
    if (!strcmp(name, "BindBufferMemory2KHR")) return (void *)table->BindBufferMemory2KHR;
2691
0
    if (!strcmp(name, "BindImageMemory2KHR")) return (void *)table->BindImageMemory2KHR;
2692
2693
    // ---- VK_KHR_maintenance3 extension commands
2694
0
    if (!strcmp(name, "GetDescriptorSetLayoutSupportKHR")) return (void *)table->GetDescriptorSetLayoutSupportKHR;
2695
2696
    // ---- VK_KHR_draw_indirect_count extension commands
2697
0
    if (!strcmp(name, "CmdDrawIndirectCountKHR")) return (void *)table->CmdDrawIndirectCountKHR;
2698
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCountKHR")) return (void *)table->CmdDrawIndexedIndirectCountKHR;
2699
2700
    // ---- VK_KHR_timeline_semaphore extension commands
2701
0
    if (!strcmp(name, "GetSemaphoreCounterValueKHR")) return (void *)table->GetSemaphoreCounterValueKHR;
2702
0
    if (!strcmp(name, "WaitSemaphoresKHR")) return (void *)table->WaitSemaphoresKHR;
2703
0
    if (!strcmp(name, "SignalSemaphoreKHR")) return (void *)table->SignalSemaphoreKHR;
2704
2705
    // ---- VK_KHR_fragment_shading_rate extension commands
2706
0
    if (!strcmp(name, "CmdSetFragmentShadingRateKHR")) return (void *)table->CmdSetFragmentShadingRateKHR;
2707
2708
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
2709
0
    if (!strcmp(name, "CmdSetRenderingAttachmentLocationsKHR")) return (void *)table->CmdSetRenderingAttachmentLocationsKHR;
2710
0
    if (!strcmp(name, "CmdSetRenderingInputAttachmentIndicesKHR")) return (void *)table->CmdSetRenderingInputAttachmentIndicesKHR;
2711
2712
    // ---- VK_KHR_present_wait extension commands
2713
0
    if (!strcmp(name, "WaitForPresentKHR")) return (void *)table->WaitForPresentKHR;
2714
2715
    // ---- VK_KHR_buffer_device_address extension commands
2716
0
    if (!strcmp(name, "GetBufferDeviceAddressKHR")) return (void *)table->GetBufferDeviceAddressKHR;
2717
0
    if (!strcmp(name, "GetBufferOpaqueCaptureAddressKHR")) return (void *)table->GetBufferOpaqueCaptureAddressKHR;
2718
0
    if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddressKHR")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddressKHR;
2719
2720
    // ---- VK_KHR_deferred_host_operations extension commands
2721
0
    if (!strcmp(name, "CreateDeferredOperationKHR")) return (void *)table->CreateDeferredOperationKHR;
2722
0
    if (!strcmp(name, "DestroyDeferredOperationKHR")) return (void *)table->DestroyDeferredOperationKHR;
2723
0
    if (!strcmp(name, "GetDeferredOperationMaxConcurrencyKHR")) return (void *)table->GetDeferredOperationMaxConcurrencyKHR;
2724
0
    if (!strcmp(name, "GetDeferredOperationResultKHR")) return (void *)table->GetDeferredOperationResultKHR;
2725
0
    if (!strcmp(name, "DeferredOperationJoinKHR")) return (void *)table->DeferredOperationJoinKHR;
2726
2727
    // ---- VK_KHR_pipeline_executable_properties extension commands
2728
0
    if (!strcmp(name, "GetPipelineExecutablePropertiesKHR")) return (void *)table->GetPipelineExecutablePropertiesKHR;
2729
0
    if (!strcmp(name, "GetPipelineExecutableStatisticsKHR")) return (void *)table->GetPipelineExecutableStatisticsKHR;
2730
0
    if (!strcmp(name, "GetPipelineExecutableInternalRepresentationsKHR")) return (void *)table->GetPipelineExecutableInternalRepresentationsKHR;
2731
2732
    // ---- VK_KHR_map_memory2 extension commands
2733
0
    if (!strcmp(name, "MapMemory2KHR")) return (void *)table->MapMemory2KHR;
2734
0
    if (!strcmp(name, "UnmapMemory2KHR")) return (void *)table->UnmapMemory2KHR;
2735
2736
    // ---- VK_KHR_video_encode_queue extension commands
2737
0
    if (!strcmp(name, "GetEncodedVideoSessionParametersKHR")) return (void *)table->GetEncodedVideoSessionParametersKHR;
2738
0
    if (!strcmp(name, "CmdEncodeVideoKHR")) return (void *)table->CmdEncodeVideoKHR;
2739
2740
    // ---- VK_KHR_synchronization2 extension commands
2741
0
    if (!strcmp(name, "CmdSetEvent2KHR")) return (void *)table->CmdSetEvent2KHR;
2742
0
    if (!strcmp(name, "CmdResetEvent2KHR")) return (void *)table->CmdResetEvent2KHR;
2743
0
    if (!strcmp(name, "CmdWaitEvents2KHR")) return (void *)table->CmdWaitEvents2KHR;
2744
0
    if (!strcmp(name, "CmdPipelineBarrier2KHR")) return (void *)table->CmdPipelineBarrier2KHR;
2745
0
    if (!strcmp(name, "CmdWriteTimestamp2KHR")) return (void *)table->CmdWriteTimestamp2KHR;
2746
0
    if (!strcmp(name, "QueueSubmit2KHR")) return (void *)table->QueueSubmit2KHR;
2747
2748
    // ---- VK_KHR_copy_commands2 extension commands
2749
0
    if (!strcmp(name, "CmdCopyBuffer2KHR")) return (void *)table->CmdCopyBuffer2KHR;
2750
0
    if (!strcmp(name, "CmdCopyImage2KHR")) return (void *)table->CmdCopyImage2KHR;
2751
0
    if (!strcmp(name, "CmdCopyBufferToImage2KHR")) return (void *)table->CmdCopyBufferToImage2KHR;
2752
0
    if (!strcmp(name, "CmdCopyImageToBuffer2KHR")) return (void *)table->CmdCopyImageToBuffer2KHR;
2753
0
    if (!strcmp(name, "CmdBlitImage2KHR")) return (void *)table->CmdBlitImage2KHR;
2754
0
    if (!strcmp(name, "CmdResolveImage2KHR")) return (void *)table->CmdResolveImage2KHR;
2755
2756
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
2757
0
    if (!strcmp(name, "CmdTraceRaysIndirect2KHR")) return (void *)table->CmdTraceRaysIndirect2KHR;
2758
2759
    // ---- VK_KHR_maintenance4 extension commands
2760
0
    if (!strcmp(name, "GetDeviceBufferMemoryRequirementsKHR")) return (void *)table->GetDeviceBufferMemoryRequirementsKHR;
2761
0
    if (!strcmp(name, "GetDeviceImageMemoryRequirementsKHR")) return (void *)table->GetDeviceImageMemoryRequirementsKHR;
2762
0
    if (!strcmp(name, "GetDeviceImageSparseMemoryRequirementsKHR")) return (void *)table->GetDeviceImageSparseMemoryRequirementsKHR;
2763
2764
    // ---- VK_KHR_maintenance5 extension commands
2765
0
    if (!strcmp(name, "CmdBindIndexBuffer2KHR")) return (void *)table->CmdBindIndexBuffer2KHR;
2766
0
    if (!strcmp(name, "GetRenderingAreaGranularityKHR")) return (void *)table->GetRenderingAreaGranularityKHR;
2767
0
    if (!strcmp(name, "GetDeviceImageSubresourceLayoutKHR")) return (void *)table->GetDeviceImageSubresourceLayoutKHR;
2768
0
    if (!strcmp(name, "GetImageSubresourceLayout2KHR")) return (void *)table->GetImageSubresourceLayout2KHR;
2769
2770
    // ---- VK_KHR_present_wait2 extension commands
2771
0
    if (!strcmp(name, "WaitForPresent2KHR")) return (void *)table->WaitForPresent2KHR;
2772
2773
    // ---- VK_KHR_pipeline_binary extension commands
2774
0
    if (!strcmp(name, "CreatePipelineBinariesKHR")) return (void *)table->CreatePipelineBinariesKHR;
2775
0
    if (!strcmp(name, "DestroyPipelineBinaryKHR")) return (void *)table->DestroyPipelineBinaryKHR;
2776
0
    if (!strcmp(name, "GetPipelineKeyKHR")) return (void *)table->GetPipelineKeyKHR;
2777
0
    if (!strcmp(name, "GetPipelineBinaryDataKHR")) return (void *)table->GetPipelineBinaryDataKHR;
2778
0
    if (!strcmp(name, "ReleaseCapturedPipelineDataKHR")) return (void *)table->ReleaseCapturedPipelineDataKHR;
2779
2780
    // ---- VK_KHR_swapchain_maintenance1 extension commands
2781
0
    if (!strcmp(name, "ReleaseSwapchainImagesKHR")) return (void *)table->ReleaseSwapchainImagesKHR;
2782
2783
    // ---- VK_KHR_line_rasterization extension commands
2784
0
    if (!strcmp(name, "CmdSetLineStippleKHR")) return (void *)table->CmdSetLineStippleKHR;
2785
2786
    // ---- VK_KHR_calibrated_timestamps extension commands
2787
0
    if (!strcmp(name, "GetCalibratedTimestampsKHR")) return (void *)table->GetCalibratedTimestampsKHR;
2788
2789
    // ---- VK_KHR_maintenance6 extension commands
2790
0
    if (!strcmp(name, "CmdBindDescriptorSets2KHR")) return (void *)table->CmdBindDescriptorSets2KHR;
2791
0
    if (!strcmp(name, "CmdPushConstants2KHR")) return (void *)table->CmdPushConstants2KHR;
2792
0
    if (!strcmp(name, "CmdPushDescriptorSet2KHR")) return (void *)table->CmdPushDescriptorSet2KHR;
2793
0
    if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2KHR")) return (void *)table->CmdPushDescriptorSetWithTemplate2KHR;
2794
0
    if (!strcmp(name, "CmdSetDescriptorBufferOffsets2EXT")) return (void *)table->CmdSetDescriptorBufferOffsets2EXT;
2795
0
    if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplers2EXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplers2EXT;
2796
2797
    // ---- VK_KHR_copy_memory_indirect extension commands
2798
0
    if (!strcmp(name, "CmdCopyMemoryIndirectKHR")) return (void *)table->CmdCopyMemoryIndirectKHR;
2799
0
    if (!strcmp(name, "CmdCopyMemoryToImageIndirectKHR")) return (void *)table->CmdCopyMemoryToImageIndirectKHR;
2800
2801
    // ---- VK_KHR_maintenance10 extension commands
2802
0
    if (!strcmp(name, "CmdEndRendering2KHR")) return (void *)table->CmdEndRendering2KHR;
2803
2804
    // ---- VK_EXT_debug_marker extension commands
2805
0
    if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectTagEXT : NULL;
2806
0
    if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectNameEXT : NULL;
2807
0
    if (!strcmp(name, "CmdDebugMarkerBeginEXT")) return (void *)table->CmdDebugMarkerBeginEXT;
2808
0
    if (!strcmp(name, "CmdDebugMarkerEndEXT")) return (void *)table->CmdDebugMarkerEndEXT;
2809
0
    if (!strcmp(name, "CmdDebugMarkerInsertEXT")) return (void *)table->CmdDebugMarkerInsertEXT;
2810
2811
    // ---- VK_EXT_transform_feedback extension commands
2812
0
    if (!strcmp(name, "CmdBindTransformFeedbackBuffersEXT")) return (void *)table->CmdBindTransformFeedbackBuffersEXT;
2813
0
    if (!strcmp(name, "CmdBeginTransformFeedbackEXT")) return (void *)table->CmdBeginTransformFeedbackEXT;
2814
0
    if (!strcmp(name, "CmdEndTransformFeedbackEXT")) return (void *)table->CmdEndTransformFeedbackEXT;
2815
0
    if (!strcmp(name, "CmdBeginQueryIndexedEXT")) return (void *)table->CmdBeginQueryIndexedEXT;
2816
0
    if (!strcmp(name, "CmdEndQueryIndexedEXT")) return (void *)table->CmdEndQueryIndexedEXT;
2817
0
    if (!strcmp(name, "CmdDrawIndirectByteCountEXT")) return (void *)table->CmdDrawIndirectByteCountEXT;
2818
2819
    // ---- VK_NVX_binary_import extension commands
2820
0
    if (!strcmp(name, "CreateCuModuleNVX")) return (void *)table->CreateCuModuleNVX;
2821
0
    if (!strcmp(name, "CreateCuFunctionNVX")) return (void *)table->CreateCuFunctionNVX;
2822
0
    if (!strcmp(name, "DestroyCuModuleNVX")) return (void *)table->DestroyCuModuleNVX;
2823
0
    if (!strcmp(name, "DestroyCuFunctionNVX")) return (void *)table->DestroyCuFunctionNVX;
2824
0
    if (!strcmp(name, "CmdCuLaunchKernelNVX")) return (void *)table->CmdCuLaunchKernelNVX;
2825
2826
    // ---- VK_NVX_image_view_handle extension commands
2827
0
    if (!strcmp(name, "GetImageViewHandleNVX")) return (void *)table->GetImageViewHandleNVX;
2828
0
    if (!strcmp(name, "GetImageViewHandle64NVX")) return (void *)table->GetImageViewHandle64NVX;
2829
0
    if (!strcmp(name, "GetImageViewAddressNVX")) return (void *)table->GetImageViewAddressNVX;
2830
2831
    // ---- VK_AMD_draw_indirect_count extension commands
2832
0
    if (!strcmp(name, "CmdDrawIndirectCountAMD")) return (void *)table->CmdDrawIndirectCountAMD;
2833
0
    if (!strcmp(name, "CmdDrawIndexedIndirectCountAMD")) return (void *)table->CmdDrawIndexedIndirectCountAMD;
2834
2835
    // ---- VK_AMD_shader_info extension commands
2836
0
    if (!strcmp(name, "GetShaderInfoAMD")) return (void *)table->GetShaderInfoAMD;
2837
2838
    // ---- VK_NV_external_memory_win32 extension commands
2839
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2840
    if (!strcmp(name, "GetMemoryWin32HandleNV")) return (void *)table->GetMemoryWin32HandleNV;
2841
#endif // VK_USE_PLATFORM_WIN32_KHR
2842
2843
    // ---- VK_EXT_conditional_rendering extension commands
2844
0
    if (!strcmp(name, "CmdBeginConditionalRenderingEXT")) return (void *)table->CmdBeginConditionalRenderingEXT;
2845
0
    if (!strcmp(name, "CmdEndConditionalRenderingEXT")) return (void *)table->CmdEndConditionalRenderingEXT;
2846
2847
    // ---- VK_NV_clip_space_w_scaling extension commands
2848
0
    if (!strcmp(name, "CmdSetViewportWScalingNV")) return (void *)table->CmdSetViewportWScalingNV;
2849
2850
    // ---- VK_EXT_display_control extension commands
2851
0
    if (!strcmp(name, "DisplayPowerControlEXT")) return (void *)table->DisplayPowerControlEXT;
2852
0
    if (!strcmp(name, "RegisterDeviceEventEXT")) return (void *)table->RegisterDeviceEventEXT;
2853
0
    if (!strcmp(name, "RegisterDisplayEventEXT")) return (void *)table->RegisterDisplayEventEXT;
2854
0
    if (!strcmp(name, "GetSwapchainCounterEXT")) return (void *)table->GetSwapchainCounterEXT;
2855
2856
    // ---- VK_GOOGLE_display_timing extension commands
2857
0
    if (!strcmp(name, "GetRefreshCycleDurationGOOGLE")) return (void *)table->GetRefreshCycleDurationGOOGLE;
2858
0
    if (!strcmp(name, "GetPastPresentationTimingGOOGLE")) return (void *)table->GetPastPresentationTimingGOOGLE;
2859
2860
    // ---- VK_EXT_discard_rectangles extension commands
2861
0
    if (!strcmp(name, "CmdSetDiscardRectangleEXT")) return (void *)table->CmdSetDiscardRectangleEXT;
2862
0
    if (!strcmp(name, "CmdSetDiscardRectangleEnableEXT")) return (void *)table->CmdSetDiscardRectangleEnableEXT;
2863
0
    if (!strcmp(name, "CmdSetDiscardRectangleModeEXT")) return (void *)table->CmdSetDiscardRectangleModeEXT;
2864
2865
    // ---- VK_EXT_hdr_metadata extension commands
2866
0
    if (!strcmp(name, "SetHdrMetadataEXT")) return (void *)table->SetHdrMetadataEXT;
2867
2868
    // ---- VK_EXT_debug_utils extension commands
2869
0
    if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectNameEXT : NULL;
2870
0
    if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectTagEXT : NULL;
2871
0
    if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) return (void *)table->QueueBeginDebugUtilsLabelEXT;
2872
0
    if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) return (void *)table->QueueEndDebugUtilsLabelEXT;
2873
0
    if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) return (void *)table->QueueInsertDebugUtilsLabelEXT;
2874
0
    if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) return (void *)table->CmdBeginDebugUtilsLabelEXT;
2875
0
    if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) return (void *)table->CmdEndDebugUtilsLabelEXT;
2876
0
    if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) return (void *)table->CmdInsertDebugUtilsLabelEXT;
2877
2878
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
2879
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
2880
    if (!strcmp(name, "GetAndroidHardwareBufferPropertiesANDROID")) return (void *)table->GetAndroidHardwareBufferPropertiesANDROID;
2881
#endif // VK_USE_PLATFORM_ANDROID_KHR
2882
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
2883
    if (!strcmp(name, "GetMemoryAndroidHardwareBufferANDROID")) return (void *)table->GetMemoryAndroidHardwareBufferANDROID;
2884
#endif // VK_USE_PLATFORM_ANDROID_KHR
2885
2886
    // ---- VK_AMDX_shader_enqueue extension commands
2887
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2888
0
    if (!strcmp(name, "CreateExecutionGraphPipelinesAMDX")) return (void *)table->CreateExecutionGraphPipelinesAMDX;
2889
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2890
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2891
0
    if (!strcmp(name, "GetExecutionGraphPipelineScratchSizeAMDX")) return (void *)table->GetExecutionGraphPipelineScratchSizeAMDX;
2892
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2893
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2894
0
    if (!strcmp(name, "GetExecutionGraphPipelineNodeIndexAMDX")) return (void *)table->GetExecutionGraphPipelineNodeIndexAMDX;
2895
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2896
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2897
0
    if (!strcmp(name, "CmdInitializeGraphScratchMemoryAMDX")) return (void *)table->CmdInitializeGraphScratchMemoryAMDX;
2898
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2899
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2900
0
    if (!strcmp(name, "CmdDispatchGraphAMDX")) return (void *)table->CmdDispatchGraphAMDX;
2901
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2902
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2903
0
    if (!strcmp(name, "CmdDispatchGraphIndirectAMDX")) return (void *)table->CmdDispatchGraphIndirectAMDX;
2904
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2905
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
2906
0
    if (!strcmp(name, "CmdDispatchGraphIndirectCountAMDX")) return (void *)table->CmdDispatchGraphIndirectCountAMDX;
2907
0
#endif // VK_ENABLE_BETA_EXTENSIONS
2908
2909
    // ---- VK_EXT_sample_locations extension commands
2910
0
    if (!strcmp(name, "CmdSetSampleLocationsEXT")) return (void *)table->CmdSetSampleLocationsEXT;
2911
2912
    // ---- VK_EXT_image_drm_format_modifier extension commands
2913
0
    if (!strcmp(name, "GetImageDrmFormatModifierPropertiesEXT")) return (void *)table->GetImageDrmFormatModifierPropertiesEXT;
2914
2915
    // ---- VK_EXT_validation_cache extension commands
2916
0
    if (!strcmp(name, "CreateValidationCacheEXT")) return (void *)table->CreateValidationCacheEXT;
2917
0
    if (!strcmp(name, "DestroyValidationCacheEXT")) return (void *)table->DestroyValidationCacheEXT;
2918
0
    if (!strcmp(name, "MergeValidationCachesEXT")) return (void *)table->MergeValidationCachesEXT;
2919
0
    if (!strcmp(name, "GetValidationCacheDataEXT")) return (void *)table->GetValidationCacheDataEXT;
2920
2921
    // ---- VK_NV_shading_rate_image extension commands
2922
0
    if (!strcmp(name, "CmdBindShadingRateImageNV")) return (void *)table->CmdBindShadingRateImageNV;
2923
0
    if (!strcmp(name, "CmdSetViewportShadingRatePaletteNV")) return (void *)table->CmdSetViewportShadingRatePaletteNV;
2924
0
    if (!strcmp(name, "CmdSetCoarseSampleOrderNV")) return (void *)table->CmdSetCoarseSampleOrderNV;
2925
2926
    // ---- VK_NV_ray_tracing extension commands
2927
0
    if (!strcmp(name, "CreateAccelerationStructureNV")) return (void *)table->CreateAccelerationStructureNV;
2928
0
    if (!strcmp(name, "DestroyAccelerationStructureNV")) return (void *)table->DestroyAccelerationStructureNV;
2929
0
    if (!strcmp(name, "GetAccelerationStructureMemoryRequirementsNV")) return (void *)table->GetAccelerationStructureMemoryRequirementsNV;
2930
0
    if (!strcmp(name, "BindAccelerationStructureMemoryNV")) return (void *)table->BindAccelerationStructureMemoryNV;
2931
0
    if (!strcmp(name, "CmdBuildAccelerationStructureNV")) return (void *)table->CmdBuildAccelerationStructureNV;
2932
0
    if (!strcmp(name, "CmdCopyAccelerationStructureNV")) return (void *)table->CmdCopyAccelerationStructureNV;
2933
0
    if (!strcmp(name, "CmdTraceRaysNV")) return (void *)table->CmdTraceRaysNV;
2934
0
    if (!strcmp(name, "CreateRayTracingPipelinesNV")) return (void *)table->CreateRayTracingPipelinesNV;
2935
2936
    // ---- VK_KHR_ray_tracing_pipeline extension commands
2937
0
    if (!strcmp(name, "GetRayTracingShaderGroupHandlesKHR")) return (void *)table->GetRayTracingShaderGroupHandlesKHR;
2938
2939
    // ---- VK_NV_ray_tracing extension commands
2940
0
    if (!strcmp(name, "GetRayTracingShaderGroupHandlesNV")) return (void *)table->GetRayTracingShaderGroupHandlesNV;
2941
0
    if (!strcmp(name, "GetAccelerationStructureHandleNV")) return (void *)table->GetAccelerationStructureHandleNV;
2942
0
    if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesNV")) return (void *)table->CmdWriteAccelerationStructuresPropertiesNV;
2943
0
    if (!strcmp(name, "CompileDeferredNV")) return (void *)table->CompileDeferredNV;
2944
2945
    // ---- VK_EXT_external_memory_host extension commands
2946
0
    if (!strcmp(name, "GetMemoryHostPointerPropertiesEXT")) return (void *)table->GetMemoryHostPointerPropertiesEXT;
2947
2948
    // ---- VK_AMD_buffer_marker extension commands
2949
0
    if (!strcmp(name, "CmdWriteBufferMarkerAMD")) return (void *)table->CmdWriteBufferMarkerAMD;
2950
0
    if (!strcmp(name, "CmdWriteBufferMarker2AMD")) return (void *)table->CmdWriteBufferMarker2AMD;
2951
2952
    // ---- VK_EXT_calibrated_timestamps extension commands
2953
0
    if (!strcmp(name, "GetCalibratedTimestampsEXT")) return (void *)table->GetCalibratedTimestampsEXT;
2954
2955
    // ---- VK_NV_mesh_shader extension commands
2956
0
    if (!strcmp(name, "CmdDrawMeshTasksNV")) return (void *)table->CmdDrawMeshTasksNV;
2957
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectNV")) return (void *)table->CmdDrawMeshTasksIndirectNV;
2958
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectCountNV")) return (void *)table->CmdDrawMeshTasksIndirectCountNV;
2959
2960
    // ---- VK_NV_scissor_exclusive extension commands
2961
0
    if (!strcmp(name, "CmdSetExclusiveScissorEnableNV")) return (void *)table->CmdSetExclusiveScissorEnableNV;
2962
0
    if (!strcmp(name, "CmdSetExclusiveScissorNV")) return (void *)table->CmdSetExclusiveScissorNV;
2963
2964
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
2965
0
    if (!strcmp(name, "CmdSetCheckpointNV")) return (void *)table->CmdSetCheckpointNV;
2966
0
    if (!strcmp(name, "GetQueueCheckpointDataNV")) return (void *)table->GetQueueCheckpointDataNV;
2967
0
    if (!strcmp(name, "GetQueueCheckpointData2NV")) return (void *)table->GetQueueCheckpointData2NV;
2968
2969
    // ---- VK_EXT_present_timing extension commands
2970
0
    if (!strcmp(name, "SetSwapchainPresentTimingQueueSizeEXT")) return (void *)table->SetSwapchainPresentTimingQueueSizeEXT;
2971
0
    if (!strcmp(name, "GetSwapchainTimingPropertiesEXT")) return (void *)table->GetSwapchainTimingPropertiesEXT;
2972
0
    if (!strcmp(name, "GetSwapchainTimeDomainPropertiesEXT")) return (void *)table->GetSwapchainTimeDomainPropertiesEXT;
2973
0
    if (!strcmp(name, "GetPastPresentationTimingEXT")) return (void *)table->GetPastPresentationTimingEXT;
2974
2975
    // ---- VK_INTEL_performance_query extension commands
2976
0
    if (!strcmp(name, "InitializePerformanceApiINTEL")) return (void *)table->InitializePerformanceApiINTEL;
2977
0
    if (!strcmp(name, "UninitializePerformanceApiINTEL")) return (void *)table->UninitializePerformanceApiINTEL;
2978
0
    if (!strcmp(name, "CmdSetPerformanceMarkerINTEL")) return (void *)table->CmdSetPerformanceMarkerINTEL;
2979
0
    if (!strcmp(name, "CmdSetPerformanceStreamMarkerINTEL")) return (void *)table->CmdSetPerformanceStreamMarkerINTEL;
2980
0
    if (!strcmp(name, "CmdSetPerformanceOverrideINTEL")) return (void *)table->CmdSetPerformanceOverrideINTEL;
2981
0
    if (!strcmp(name, "AcquirePerformanceConfigurationINTEL")) return (void *)table->AcquirePerformanceConfigurationINTEL;
2982
0
    if (!strcmp(name, "ReleasePerformanceConfigurationINTEL")) return (void *)table->ReleasePerformanceConfigurationINTEL;
2983
0
    if (!strcmp(name, "QueueSetPerformanceConfigurationINTEL")) return (void *)table->QueueSetPerformanceConfigurationINTEL;
2984
0
    if (!strcmp(name, "GetPerformanceParameterINTEL")) return (void *)table->GetPerformanceParameterINTEL;
2985
2986
    // ---- VK_AMD_display_native_hdr extension commands
2987
0
    if (!strcmp(name, "SetLocalDimmingAMD")) return (void *)table->SetLocalDimmingAMD;
2988
2989
    // ---- VK_EXT_buffer_device_address extension commands
2990
0
    if (!strcmp(name, "GetBufferDeviceAddressEXT")) return (void *)table->GetBufferDeviceAddressEXT;
2991
2992
    // ---- VK_EXT_full_screen_exclusive extension commands
2993
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2994
    if (!strcmp(name, "AcquireFullScreenExclusiveModeEXT")) return (void *)table->AcquireFullScreenExclusiveModeEXT;
2995
#endif // VK_USE_PLATFORM_WIN32_KHR
2996
#if defined(VK_USE_PLATFORM_WIN32_KHR)
2997
    if (!strcmp(name, "ReleaseFullScreenExclusiveModeEXT")) return (void *)table->ReleaseFullScreenExclusiveModeEXT;
2998
#endif // VK_USE_PLATFORM_WIN32_KHR
2999
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3000
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) return (void *)table->GetDeviceGroupSurfacePresentModes2EXT;
3001
#endif // VK_USE_PLATFORM_WIN32_KHR
3002
3003
    // ---- VK_EXT_line_rasterization extension commands
3004
0
    if (!strcmp(name, "CmdSetLineStippleEXT")) return (void *)table->CmdSetLineStippleEXT;
3005
3006
    // ---- VK_EXT_host_query_reset extension commands
3007
0
    if (!strcmp(name, "ResetQueryPoolEXT")) return (void *)table->ResetQueryPoolEXT;
3008
3009
    // ---- VK_EXT_extended_dynamic_state extension commands
3010
0
    if (!strcmp(name, "CmdSetCullModeEXT")) return (void *)table->CmdSetCullModeEXT;
3011
0
    if (!strcmp(name, "CmdSetFrontFaceEXT")) return (void *)table->CmdSetFrontFaceEXT;
3012
0
    if (!strcmp(name, "CmdSetPrimitiveTopologyEXT")) return (void *)table->CmdSetPrimitiveTopologyEXT;
3013
0
    if (!strcmp(name, "CmdSetViewportWithCountEXT")) return (void *)table->CmdSetViewportWithCountEXT;
3014
0
    if (!strcmp(name, "CmdSetScissorWithCountEXT")) return (void *)table->CmdSetScissorWithCountEXT;
3015
0
    if (!strcmp(name, "CmdBindVertexBuffers2EXT")) return (void *)table->CmdBindVertexBuffers2EXT;
3016
0
    if (!strcmp(name, "CmdSetDepthTestEnableEXT")) return (void *)table->CmdSetDepthTestEnableEXT;
3017
0
    if (!strcmp(name, "CmdSetDepthWriteEnableEXT")) return (void *)table->CmdSetDepthWriteEnableEXT;
3018
0
    if (!strcmp(name, "CmdSetDepthCompareOpEXT")) return (void *)table->CmdSetDepthCompareOpEXT;
3019
0
    if (!strcmp(name, "CmdSetDepthBoundsTestEnableEXT")) return (void *)table->CmdSetDepthBoundsTestEnableEXT;
3020
0
    if (!strcmp(name, "CmdSetStencilTestEnableEXT")) return (void *)table->CmdSetStencilTestEnableEXT;
3021
0
    if (!strcmp(name, "CmdSetStencilOpEXT")) return (void *)table->CmdSetStencilOpEXT;
3022
3023
    // ---- VK_EXT_host_image_copy extension commands
3024
0
    if (!strcmp(name, "CopyMemoryToImageEXT")) return (void *)table->CopyMemoryToImageEXT;
3025
0
    if (!strcmp(name, "CopyImageToMemoryEXT")) return (void *)table->CopyImageToMemoryEXT;
3026
0
    if (!strcmp(name, "CopyImageToImageEXT")) return (void *)table->CopyImageToImageEXT;
3027
0
    if (!strcmp(name, "TransitionImageLayoutEXT")) return (void *)table->TransitionImageLayoutEXT;
3028
0
    if (!strcmp(name, "GetImageSubresourceLayout2EXT")) return (void *)table->GetImageSubresourceLayout2EXT;
3029
3030
    // ---- VK_EXT_swapchain_maintenance1 extension commands
3031
0
    if (!strcmp(name, "ReleaseSwapchainImagesEXT")) return (void *)table->ReleaseSwapchainImagesEXT;
3032
3033
    // ---- VK_NV_device_generated_commands extension commands
3034
0
    if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsNV")) return (void *)table->GetGeneratedCommandsMemoryRequirementsNV;
3035
0
    if (!strcmp(name, "CmdPreprocessGeneratedCommandsNV")) return (void *)table->CmdPreprocessGeneratedCommandsNV;
3036
0
    if (!strcmp(name, "CmdExecuteGeneratedCommandsNV")) return (void *)table->CmdExecuteGeneratedCommandsNV;
3037
0
    if (!strcmp(name, "CmdBindPipelineShaderGroupNV")) return (void *)table->CmdBindPipelineShaderGroupNV;
3038
0
    if (!strcmp(name, "CreateIndirectCommandsLayoutNV")) return (void *)table->CreateIndirectCommandsLayoutNV;
3039
0
    if (!strcmp(name, "DestroyIndirectCommandsLayoutNV")) return (void *)table->DestroyIndirectCommandsLayoutNV;
3040
3041
    // ---- VK_EXT_depth_bias_control extension commands
3042
0
    if (!strcmp(name, "CmdSetDepthBias2EXT")) return (void *)table->CmdSetDepthBias2EXT;
3043
3044
    // ---- VK_EXT_private_data extension commands
3045
0
    if (!strcmp(name, "CreatePrivateDataSlotEXT")) return (void *)table->CreatePrivateDataSlotEXT;
3046
0
    if (!strcmp(name, "DestroyPrivateDataSlotEXT")) return (void *)table->DestroyPrivateDataSlotEXT;
3047
0
    if (!strcmp(name, "SetPrivateDataEXT")) return (void *)table->SetPrivateDataEXT;
3048
0
    if (!strcmp(name, "GetPrivateDataEXT")) return (void *)table->GetPrivateDataEXT;
3049
3050
    // ---- VK_NV_cuda_kernel_launch extension commands
3051
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3052
0
    if (!strcmp(name, "CreateCudaModuleNV")) return (void *)table->CreateCudaModuleNV;
3053
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3054
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3055
0
    if (!strcmp(name, "GetCudaModuleCacheNV")) return (void *)table->GetCudaModuleCacheNV;
3056
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3057
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3058
0
    if (!strcmp(name, "CreateCudaFunctionNV")) return (void *)table->CreateCudaFunctionNV;
3059
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3060
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3061
0
    if (!strcmp(name, "DestroyCudaModuleNV")) return (void *)table->DestroyCudaModuleNV;
3062
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3063
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3064
0
    if (!strcmp(name, "DestroyCudaFunctionNV")) return (void *)table->DestroyCudaFunctionNV;
3065
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3066
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
3067
0
    if (!strcmp(name, "CmdCudaLaunchKernelNV")) return (void *)table->CmdCudaLaunchKernelNV;
3068
0
#endif // VK_ENABLE_BETA_EXTENSIONS
3069
3070
    // ---- VK_QCOM_tile_shading extension commands
3071
0
    if (!strcmp(name, "CmdDispatchTileQCOM")) return (void *)table->CmdDispatchTileQCOM;
3072
0
    if (!strcmp(name, "CmdBeginPerTileExecutionQCOM")) return (void *)table->CmdBeginPerTileExecutionQCOM;
3073
0
    if (!strcmp(name, "CmdEndPerTileExecutionQCOM")) return (void *)table->CmdEndPerTileExecutionQCOM;
3074
3075
    // ---- VK_EXT_metal_objects extension commands
3076
#if defined(VK_USE_PLATFORM_METAL_EXT)
3077
    if (!strcmp(name, "ExportMetalObjectsEXT")) return (void *)table->ExportMetalObjectsEXT;
3078
#endif // VK_USE_PLATFORM_METAL_EXT
3079
3080
    // ---- VK_EXT_descriptor_buffer extension commands
3081
0
    if (!strcmp(name, "GetDescriptorSetLayoutSizeEXT")) return (void *)table->GetDescriptorSetLayoutSizeEXT;
3082
0
    if (!strcmp(name, "GetDescriptorSetLayoutBindingOffsetEXT")) return (void *)table->GetDescriptorSetLayoutBindingOffsetEXT;
3083
0
    if (!strcmp(name, "GetDescriptorEXT")) return (void *)table->GetDescriptorEXT;
3084
0
    if (!strcmp(name, "CmdBindDescriptorBuffersEXT")) return (void *)table->CmdBindDescriptorBuffersEXT;
3085
0
    if (!strcmp(name, "CmdSetDescriptorBufferOffsetsEXT")) return (void *)table->CmdSetDescriptorBufferOffsetsEXT;
3086
0
    if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplersEXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplersEXT;
3087
0
    if (!strcmp(name, "GetBufferOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetBufferOpaqueCaptureDescriptorDataEXT;
3088
0
    if (!strcmp(name, "GetImageOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageOpaqueCaptureDescriptorDataEXT;
3089
0
    if (!strcmp(name, "GetImageViewOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageViewOpaqueCaptureDescriptorDataEXT;
3090
0
    if (!strcmp(name, "GetSamplerOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetSamplerOpaqueCaptureDescriptorDataEXT;
3091
0
    if (!strcmp(name, "GetAccelerationStructureOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
3092
3093
    // ---- VK_NV_fragment_shading_rate_enums extension commands
3094
0
    if (!strcmp(name, "CmdSetFragmentShadingRateEnumNV")) return (void *)table->CmdSetFragmentShadingRateEnumNV;
3095
3096
    // ---- VK_EXT_device_fault extension commands
3097
0
    if (!strcmp(name, "GetDeviceFaultInfoEXT")) return (void *)table->GetDeviceFaultInfoEXT;
3098
3099
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
3100
0
    if (!strcmp(name, "CmdSetVertexInputEXT")) return (void *)table->CmdSetVertexInputEXT;
3101
3102
    // ---- VK_FUCHSIA_external_memory extension commands
3103
#if defined(VK_USE_PLATFORM_FUCHSIA)
3104
    if (!strcmp(name, "GetMemoryZirconHandleFUCHSIA")) return (void *)table->GetMemoryZirconHandleFUCHSIA;
3105
#endif // VK_USE_PLATFORM_FUCHSIA
3106
#if defined(VK_USE_PLATFORM_FUCHSIA)
3107
    if (!strcmp(name, "GetMemoryZirconHandlePropertiesFUCHSIA")) return (void *)table->GetMemoryZirconHandlePropertiesFUCHSIA;
3108
#endif // VK_USE_PLATFORM_FUCHSIA
3109
3110
    // ---- VK_FUCHSIA_external_semaphore extension commands
3111
#if defined(VK_USE_PLATFORM_FUCHSIA)
3112
    if (!strcmp(name, "ImportSemaphoreZirconHandleFUCHSIA")) return (void *)table->ImportSemaphoreZirconHandleFUCHSIA;
3113
#endif // VK_USE_PLATFORM_FUCHSIA
3114
#if defined(VK_USE_PLATFORM_FUCHSIA)
3115
    if (!strcmp(name, "GetSemaphoreZirconHandleFUCHSIA")) return (void *)table->GetSemaphoreZirconHandleFUCHSIA;
3116
#endif // VK_USE_PLATFORM_FUCHSIA
3117
3118
    // ---- VK_FUCHSIA_buffer_collection extension commands
3119
#if defined(VK_USE_PLATFORM_FUCHSIA)
3120
    if (!strcmp(name, "CreateBufferCollectionFUCHSIA")) return (void *)table->CreateBufferCollectionFUCHSIA;
3121
#endif // VK_USE_PLATFORM_FUCHSIA
3122
#if defined(VK_USE_PLATFORM_FUCHSIA)
3123
    if (!strcmp(name, "SetBufferCollectionImageConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionImageConstraintsFUCHSIA;
3124
#endif // VK_USE_PLATFORM_FUCHSIA
3125
#if defined(VK_USE_PLATFORM_FUCHSIA)
3126
    if (!strcmp(name, "SetBufferCollectionBufferConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionBufferConstraintsFUCHSIA;
3127
#endif // VK_USE_PLATFORM_FUCHSIA
3128
#if defined(VK_USE_PLATFORM_FUCHSIA)
3129
    if (!strcmp(name, "DestroyBufferCollectionFUCHSIA")) return (void *)table->DestroyBufferCollectionFUCHSIA;
3130
#endif // VK_USE_PLATFORM_FUCHSIA
3131
#if defined(VK_USE_PLATFORM_FUCHSIA)
3132
    if (!strcmp(name, "GetBufferCollectionPropertiesFUCHSIA")) return (void *)table->GetBufferCollectionPropertiesFUCHSIA;
3133
#endif // VK_USE_PLATFORM_FUCHSIA
3134
3135
    // ---- VK_HUAWEI_subpass_shading extension commands
3136
0
    if (!strcmp(name, "GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) return (void *)table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
3137
0
    if (!strcmp(name, "CmdSubpassShadingHUAWEI")) return (void *)table->CmdSubpassShadingHUAWEI;
3138
3139
    // ---- VK_HUAWEI_invocation_mask extension commands
3140
0
    if (!strcmp(name, "CmdBindInvocationMaskHUAWEI")) return (void *)table->CmdBindInvocationMaskHUAWEI;
3141
3142
    // ---- VK_NV_external_memory_rdma extension commands
3143
0
    if (!strcmp(name, "GetMemoryRemoteAddressNV")) return (void *)table->GetMemoryRemoteAddressNV;
3144
3145
    // ---- VK_EXT_pipeline_properties extension commands
3146
0
    if (!strcmp(name, "GetPipelinePropertiesEXT")) return (void *)table->GetPipelinePropertiesEXT;
3147
3148
    // ---- VK_EXT_extended_dynamic_state2 extension commands
3149
0
    if (!strcmp(name, "CmdSetPatchControlPointsEXT")) return (void *)table->CmdSetPatchControlPointsEXT;
3150
0
    if (!strcmp(name, "CmdSetRasterizerDiscardEnableEXT")) return (void *)table->CmdSetRasterizerDiscardEnableEXT;
3151
0
    if (!strcmp(name, "CmdSetDepthBiasEnableEXT")) return (void *)table->CmdSetDepthBiasEnableEXT;
3152
0
    if (!strcmp(name, "CmdSetLogicOpEXT")) return (void *)table->CmdSetLogicOpEXT;
3153
0
    if (!strcmp(name, "CmdSetPrimitiveRestartEnableEXT")) return (void *)table->CmdSetPrimitiveRestartEnableEXT;
3154
3155
    // ---- VK_EXT_color_write_enable extension commands
3156
0
    if (!strcmp(name, "CmdSetColorWriteEnableEXT")) return (void *)table->CmdSetColorWriteEnableEXT;
3157
3158
    // ---- VK_EXT_multi_draw extension commands
3159
0
    if (!strcmp(name, "CmdDrawMultiEXT")) return (void *)table->CmdDrawMultiEXT;
3160
0
    if (!strcmp(name, "CmdDrawMultiIndexedEXT")) return (void *)table->CmdDrawMultiIndexedEXT;
3161
3162
    // ---- VK_EXT_opacity_micromap extension commands
3163
0
    if (!strcmp(name, "CreateMicromapEXT")) return (void *)table->CreateMicromapEXT;
3164
0
    if (!strcmp(name, "DestroyMicromapEXT")) return (void *)table->DestroyMicromapEXT;
3165
0
    if (!strcmp(name, "CmdBuildMicromapsEXT")) return (void *)table->CmdBuildMicromapsEXT;
3166
0
    if (!strcmp(name, "BuildMicromapsEXT")) return (void *)table->BuildMicromapsEXT;
3167
0
    if (!strcmp(name, "CopyMicromapEXT")) return (void *)table->CopyMicromapEXT;
3168
0
    if (!strcmp(name, "CopyMicromapToMemoryEXT")) return (void *)table->CopyMicromapToMemoryEXT;
3169
0
    if (!strcmp(name, "CopyMemoryToMicromapEXT")) return (void *)table->CopyMemoryToMicromapEXT;
3170
0
    if (!strcmp(name, "WriteMicromapsPropertiesEXT")) return (void *)table->WriteMicromapsPropertiesEXT;
3171
0
    if (!strcmp(name, "CmdCopyMicromapEXT")) return (void *)table->CmdCopyMicromapEXT;
3172
0
    if (!strcmp(name, "CmdCopyMicromapToMemoryEXT")) return (void *)table->CmdCopyMicromapToMemoryEXT;
3173
0
    if (!strcmp(name, "CmdCopyMemoryToMicromapEXT")) return (void *)table->CmdCopyMemoryToMicromapEXT;
3174
0
    if (!strcmp(name, "CmdWriteMicromapsPropertiesEXT")) return (void *)table->CmdWriteMicromapsPropertiesEXT;
3175
0
    if (!strcmp(name, "GetDeviceMicromapCompatibilityEXT")) return (void *)table->GetDeviceMicromapCompatibilityEXT;
3176
0
    if (!strcmp(name, "GetMicromapBuildSizesEXT")) return (void *)table->GetMicromapBuildSizesEXT;
3177
3178
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
3179
0
    if (!strcmp(name, "CmdDrawClusterHUAWEI")) return (void *)table->CmdDrawClusterHUAWEI;
3180
0
    if (!strcmp(name, "CmdDrawClusterIndirectHUAWEI")) return (void *)table->CmdDrawClusterIndirectHUAWEI;
3181
3182
    // ---- VK_EXT_pageable_device_local_memory extension commands
3183
0
    if (!strcmp(name, "SetDeviceMemoryPriorityEXT")) return (void *)table->SetDeviceMemoryPriorityEXT;
3184
3185
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
3186
0
    if (!strcmp(name, "GetDescriptorSetLayoutHostMappingInfoVALVE")) return (void *)table->GetDescriptorSetLayoutHostMappingInfoVALVE;
3187
0
    if (!strcmp(name, "GetDescriptorSetHostMappingVALVE")) return (void *)table->GetDescriptorSetHostMappingVALVE;
3188
3189
    // ---- VK_NV_copy_memory_indirect extension commands
3190
0
    if (!strcmp(name, "CmdCopyMemoryIndirectNV")) return (void *)table->CmdCopyMemoryIndirectNV;
3191
0
    if (!strcmp(name, "CmdCopyMemoryToImageIndirectNV")) return (void *)table->CmdCopyMemoryToImageIndirectNV;
3192
3193
    // ---- VK_NV_memory_decompression extension commands
3194
0
    if (!strcmp(name, "CmdDecompressMemoryNV")) return (void *)table->CmdDecompressMemoryNV;
3195
0
    if (!strcmp(name, "CmdDecompressMemoryIndirectCountNV")) return (void *)table->CmdDecompressMemoryIndirectCountNV;
3196
3197
    // ---- VK_NV_device_generated_commands_compute extension commands
3198
0
    if (!strcmp(name, "GetPipelineIndirectMemoryRequirementsNV")) return (void *)table->GetPipelineIndirectMemoryRequirementsNV;
3199
0
    if (!strcmp(name, "CmdUpdatePipelineIndirectBufferNV")) return (void *)table->CmdUpdatePipelineIndirectBufferNV;
3200
0
    if (!strcmp(name, "GetPipelineIndirectDeviceAddressNV")) return (void *)table->GetPipelineIndirectDeviceAddressNV;
3201
3202
    // ---- VK_OHOS_external_memory extension commands
3203
#if defined(VK_USE_PLATFORM_OHOS)
3204
    if (!strcmp(name, "GetNativeBufferPropertiesOHOS")) return (void *)table->GetNativeBufferPropertiesOHOS;
3205
#endif // VK_USE_PLATFORM_OHOS
3206
#if defined(VK_USE_PLATFORM_OHOS)
3207
    if (!strcmp(name, "GetMemoryNativeBufferOHOS")) return (void *)table->GetMemoryNativeBufferOHOS;
3208
#endif // VK_USE_PLATFORM_OHOS
3209
3210
    // ---- VK_EXT_extended_dynamic_state3 extension commands
3211
0
    if (!strcmp(name, "CmdSetDepthClampEnableEXT")) return (void *)table->CmdSetDepthClampEnableEXT;
3212
0
    if (!strcmp(name, "CmdSetPolygonModeEXT")) return (void *)table->CmdSetPolygonModeEXT;
3213
0
    if (!strcmp(name, "CmdSetRasterizationSamplesEXT")) return (void *)table->CmdSetRasterizationSamplesEXT;
3214
0
    if (!strcmp(name, "CmdSetSampleMaskEXT")) return (void *)table->CmdSetSampleMaskEXT;
3215
0
    if (!strcmp(name, "CmdSetAlphaToCoverageEnableEXT")) return (void *)table->CmdSetAlphaToCoverageEnableEXT;
3216
0
    if (!strcmp(name, "CmdSetAlphaToOneEnableEXT")) return (void *)table->CmdSetAlphaToOneEnableEXT;
3217
0
    if (!strcmp(name, "CmdSetLogicOpEnableEXT")) return (void *)table->CmdSetLogicOpEnableEXT;
3218
0
    if (!strcmp(name, "CmdSetColorBlendEnableEXT")) return (void *)table->CmdSetColorBlendEnableEXT;
3219
0
    if (!strcmp(name, "CmdSetColorBlendEquationEXT")) return (void *)table->CmdSetColorBlendEquationEXT;
3220
0
    if (!strcmp(name, "CmdSetColorWriteMaskEXT")) return (void *)table->CmdSetColorWriteMaskEXT;
3221
0
    if (!strcmp(name, "CmdSetTessellationDomainOriginEXT")) return (void *)table->CmdSetTessellationDomainOriginEXT;
3222
0
    if (!strcmp(name, "CmdSetRasterizationStreamEXT")) return (void *)table->CmdSetRasterizationStreamEXT;
3223
0
    if (!strcmp(name, "CmdSetConservativeRasterizationModeEXT")) return (void *)table->CmdSetConservativeRasterizationModeEXT;
3224
0
    if (!strcmp(name, "CmdSetExtraPrimitiveOverestimationSizeEXT")) return (void *)table->CmdSetExtraPrimitiveOverestimationSizeEXT;
3225
0
    if (!strcmp(name, "CmdSetDepthClipEnableEXT")) return (void *)table->CmdSetDepthClipEnableEXT;
3226
0
    if (!strcmp(name, "CmdSetSampleLocationsEnableEXT")) return (void *)table->CmdSetSampleLocationsEnableEXT;
3227
0
    if (!strcmp(name, "CmdSetColorBlendAdvancedEXT")) return (void *)table->CmdSetColorBlendAdvancedEXT;
3228
0
    if (!strcmp(name, "CmdSetProvokingVertexModeEXT")) return (void *)table->CmdSetProvokingVertexModeEXT;
3229
0
    if (!strcmp(name, "CmdSetLineRasterizationModeEXT")) return (void *)table->CmdSetLineRasterizationModeEXT;
3230
0
    if (!strcmp(name, "CmdSetLineStippleEnableEXT")) return (void *)table->CmdSetLineStippleEnableEXT;
3231
0
    if (!strcmp(name, "CmdSetDepthClipNegativeOneToOneEXT")) return (void *)table->CmdSetDepthClipNegativeOneToOneEXT;
3232
0
    if (!strcmp(name, "CmdSetViewportWScalingEnableNV")) return (void *)table->CmdSetViewportWScalingEnableNV;
3233
0
    if (!strcmp(name, "CmdSetViewportSwizzleNV")) return (void *)table->CmdSetViewportSwizzleNV;
3234
0
    if (!strcmp(name, "CmdSetCoverageToColorEnableNV")) return (void *)table->CmdSetCoverageToColorEnableNV;
3235
0
    if (!strcmp(name, "CmdSetCoverageToColorLocationNV")) return (void *)table->CmdSetCoverageToColorLocationNV;
3236
0
    if (!strcmp(name, "CmdSetCoverageModulationModeNV")) return (void *)table->CmdSetCoverageModulationModeNV;
3237
0
    if (!strcmp(name, "CmdSetCoverageModulationTableEnableNV")) return (void *)table->CmdSetCoverageModulationTableEnableNV;
3238
0
    if (!strcmp(name, "CmdSetCoverageModulationTableNV")) return (void *)table->CmdSetCoverageModulationTableNV;
3239
0
    if (!strcmp(name, "CmdSetShadingRateImageEnableNV")) return (void *)table->CmdSetShadingRateImageEnableNV;
3240
0
    if (!strcmp(name, "CmdSetRepresentativeFragmentTestEnableNV")) return (void *)table->CmdSetRepresentativeFragmentTestEnableNV;
3241
0
    if (!strcmp(name, "CmdSetCoverageReductionModeNV")) return (void *)table->CmdSetCoverageReductionModeNV;
3242
3243
    // ---- VK_ARM_tensors extension commands
3244
0
    if (!strcmp(name, "CreateTensorARM")) return (void *)table->CreateTensorARM;
3245
0
    if (!strcmp(name, "DestroyTensorARM")) return (void *)table->DestroyTensorARM;
3246
0
    if (!strcmp(name, "CreateTensorViewARM")) return (void *)table->CreateTensorViewARM;
3247
0
    if (!strcmp(name, "DestroyTensorViewARM")) return (void *)table->DestroyTensorViewARM;
3248
0
    if (!strcmp(name, "GetTensorMemoryRequirementsARM")) return (void *)table->GetTensorMemoryRequirementsARM;
3249
0
    if (!strcmp(name, "BindTensorMemoryARM")) return (void *)table->BindTensorMemoryARM;
3250
0
    if (!strcmp(name, "GetDeviceTensorMemoryRequirementsARM")) return (void *)table->GetDeviceTensorMemoryRequirementsARM;
3251
0
    if (!strcmp(name, "CmdCopyTensorARM")) return (void *)table->CmdCopyTensorARM;
3252
0
    if (!strcmp(name, "GetTensorOpaqueCaptureDescriptorDataARM")) return (void *)table->GetTensorOpaqueCaptureDescriptorDataARM;
3253
0
    if (!strcmp(name, "GetTensorViewOpaqueCaptureDescriptorDataARM")) return (void *)table->GetTensorViewOpaqueCaptureDescriptorDataARM;
3254
3255
    // ---- VK_EXT_shader_module_identifier extension commands
3256
0
    if (!strcmp(name, "GetShaderModuleIdentifierEXT")) return (void *)table->GetShaderModuleIdentifierEXT;
3257
0
    if (!strcmp(name, "GetShaderModuleCreateInfoIdentifierEXT")) return (void *)table->GetShaderModuleCreateInfoIdentifierEXT;
3258
3259
    // ---- VK_NV_optical_flow extension commands
3260
0
    if (!strcmp(name, "CreateOpticalFlowSessionNV")) return (void *)table->CreateOpticalFlowSessionNV;
3261
0
    if (!strcmp(name, "DestroyOpticalFlowSessionNV")) return (void *)table->DestroyOpticalFlowSessionNV;
3262
0
    if (!strcmp(name, "BindOpticalFlowSessionImageNV")) return (void *)table->BindOpticalFlowSessionImageNV;
3263
0
    if (!strcmp(name, "CmdOpticalFlowExecuteNV")) return (void *)table->CmdOpticalFlowExecuteNV;
3264
3265
    // ---- VK_AMD_anti_lag extension commands
3266
0
    if (!strcmp(name, "AntiLagUpdateAMD")) return (void *)table->AntiLagUpdateAMD;
3267
3268
    // ---- VK_EXT_shader_object extension commands
3269
0
    if (!strcmp(name, "CreateShadersEXT")) return (void *)table->CreateShadersEXT;
3270
0
    if (!strcmp(name, "DestroyShaderEXT")) return (void *)table->DestroyShaderEXT;
3271
0
    if (!strcmp(name, "GetShaderBinaryDataEXT")) return (void *)table->GetShaderBinaryDataEXT;
3272
0
    if (!strcmp(name, "CmdBindShadersEXT")) return (void *)table->CmdBindShadersEXT;
3273
0
    if (!strcmp(name, "CmdSetDepthClampRangeEXT")) return (void *)table->CmdSetDepthClampRangeEXT;
3274
3275
    // ---- VK_QCOM_tile_properties extension commands
3276
0
    if (!strcmp(name, "GetFramebufferTilePropertiesQCOM")) return (void *)table->GetFramebufferTilePropertiesQCOM;
3277
0
    if (!strcmp(name, "GetDynamicRenderingTilePropertiesQCOM")) return (void *)table->GetDynamicRenderingTilePropertiesQCOM;
3278
3279
    // ---- VK_NV_cooperative_vector extension commands
3280
0
    if (!strcmp(name, "ConvertCooperativeVectorMatrixNV")) return (void *)table->ConvertCooperativeVectorMatrixNV;
3281
0
    if (!strcmp(name, "CmdConvertCooperativeVectorMatrixNV")) return (void *)table->CmdConvertCooperativeVectorMatrixNV;
3282
3283
    // ---- VK_NV_low_latency2 extension commands
3284
0
    if (!strcmp(name, "SetLatencySleepModeNV")) return (void *)table->SetLatencySleepModeNV;
3285
0
    if (!strcmp(name, "LatencySleepNV")) return (void *)table->LatencySleepNV;
3286
0
    if (!strcmp(name, "SetLatencyMarkerNV")) return (void *)table->SetLatencyMarkerNV;
3287
0
    if (!strcmp(name, "GetLatencyTimingsNV")) return (void *)table->GetLatencyTimingsNV;
3288
0
    if (!strcmp(name, "QueueNotifyOutOfBandNV")) return (void *)table->QueueNotifyOutOfBandNV;
3289
3290
    // ---- VK_ARM_data_graph extension commands
3291
0
    if (!strcmp(name, "CreateDataGraphPipelinesARM")) return (void *)table->CreateDataGraphPipelinesARM;
3292
0
    if (!strcmp(name, "CreateDataGraphPipelineSessionARM")) return (void *)table->CreateDataGraphPipelineSessionARM;
3293
0
    if (!strcmp(name, "GetDataGraphPipelineSessionBindPointRequirementsARM")) return (void *)table->GetDataGraphPipelineSessionBindPointRequirementsARM;
3294
0
    if (!strcmp(name, "GetDataGraphPipelineSessionMemoryRequirementsARM")) return (void *)table->GetDataGraphPipelineSessionMemoryRequirementsARM;
3295
0
    if (!strcmp(name, "BindDataGraphPipelineSessionMemoryARM")) return (void *)table->BindDataGraphPipelineSessionMemoryARM;
3296
0
    if (!strcmp(name, "DestroyDataGraphPipelineSessionARM")) return (void *)table->DestroyDataGraphPipelineSessionARM;
3297
0
    if (!strcmp(name, "CmdDispatchDataGraphARM")) return (void *)table->CmdDispatchDataGraphARM;
3298
0
    if (!strcmp(name, "GetDataGraphPipelineAvailablePropertiesARM")) return (void *)table->GetDataGraphPipelineAvailablePropertiesARM;
3299
0
    if (!strcmp(name, "GetDataGraphPipelinePropertiesARM")) return (void *)table->GetDataGraphPipelinePropertiesARM;
3300
3301
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
3302
0
    if (!strcmp(name, "CmdSetAttachmentFeedbackLoopEnableEXT")) return (void *)table->CmdSetAttachmentFeedbackLoopEnableEXT;
3303
3304
    // ---- VK_QNX_external_memory_screen_buffer extension commands
3305
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3306
    if (!strcmp(name, "GetScreenBufferPropertiesQNX")) return (void *)table->GetScreenBufferPropertiesQNX;
3307
#endif // VK_USE_PLATFORM_SCREEN_QNX
3308
3309
    // ---- VK_QCOM_tile_memory_heap extension commands
3310
0
    if (!strcmp(name, "CmdBindTileMemoryQCOM")) return (void *)table->CmdBindTileMemoryQCOM;
3311
3312
    // ---- VK_EXT_memory_decompression extension commands
3313
0
    if (!strcmp(name, "CmdDecompressMemoryEXT")) return (void *)table->CmdDecompressMemoryEXT;
3314
0
    if (!strcmp(name, "CmdDecompressMemoryIndirectCountEXT")) return (void *)table->CmdDecompressMemoryIndirectCountEXT;
3315
3316
    // ---- VK_NV_external_compute_queue extension commands
3317
0
    if (!strcmp(name, "CreateExternalComputeQueueNV")) return (void *)table->CreateExternalComputeQueueNV;
3318
0
    if (!strcmp(name, "DestroyExternalComputeQueueNV")) return (void *)table->DestroyExternalComputeQueueNV;
3319
0
    if (!strcmp(name, "GetExternalComputeQueueDataNV")) return (void *)table->GetExternalComputeQueueDataNV;
3320
3321
    // ---- VK_NV_cluster_acceleration_structure extension commands
3322
0
    if (!strcmp(name, "GetClusterAccelerationStructureBuildSizesNV")) return (void *)table->GetClusterAccelerationStructureBuildSizesNV;
3323
0
    if (!strcmp(name, "CmdBuildClusterAccelerationStructureIndirectNV")) return (void *)table->CmdBuildClusterAccelerationStructureIndirectNV;
3324
3325
    // ---- VK_NV_partitioned_acceleration_structure extension commands
3326
0
    if (!strcmp(name, "GetPartitionedAccelerationStructuresBuildSizesNV")) return (void *)table->GetPartitionedAccelerationStructuresBuildSizesNV;
3327
0
    if (!strcmp(name, "CmdBuildPartitionedAccelerationStructuresNV")) return (void *)table->CmdBuildPartitionedAccelerationStructuresNV;
3328
3329
    // ---- VK_EXT_device_generated_commands extension commands
3330
0
    if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsEXT")) return (void *)table->GetGeneratedCommandsMemoryRequirementsEXT;
3331
0
    if (!strcmp(name, "CmdPreprocessGeneratedCommandsEXT")) return (void *)table->CmdPreprocessGeneratedCommandsEXT;
3332
0
    if (!strcmp(name, "CmdExecuteGeneratedCommandsEXT")) return (void *)table->CmdExecuteGeneratedCommandsEXT;
3333
0
    if (!strcmp(name, "CreateIndirectCommandsLayoutEXT")) return (void *)table->CreateIndirectCommandsLayoutEXT;
3334
0
    if (!strcmp(name, "DestroyIndirectCommandsLayoutEXT")) return (void *)table->DestroyIndirectCommandsLayoutEXT;
3335
0
    if (!strcmp(name, "CreateIndirectExecutionSetEXT")) return (void *)table->CreateIndirectExecutionSetEXT;
3336
0
    if (!strcmp(name, "DestroyIndirectExecutionSetEXT")) return (void *)table->DestroyIndirectExecutionSetEXT;
3337
0
    if (!strcmp(name, "UpdateIndirectExecutionSetPipelineEXT")) return (void *)table->UpdateIndirectExecutionSetPipelineEXT;
3338
0
    if (!strcmp(name, "UpdateIndirectExecutionSetShaderEXT")) return (void *)table->UpdateIndirectExecutionSetShaderEXT;
3339
3340
    // ---- VK_OHOS_native_buffer extension commands
3341
#if defined(VK_USE_PLATFORM_OHOS)
3342
    if (!strcmp(name, "GetSwapchainGrallocUsageOHOS")) return (void *)table->GetSwapchainGrallocUsageOHOS;
3343
#endif // VK_USE_PLATFORM_OHOS
3344
#if defined(VK_USE_PLATFORM_OHOS)
3345
    if (!strcmp(name, "AcquireImageOHOS")) return (void *)table->AcquireImageOHOS;
3346
#endif // VK_USE_PLATFORM_OHOS
3347
#if defined(VK_USE_PLATFORM_OHOS)
3348
    if (!strcmp(name, "QueueSignalReleaseImageOHOS")) return (void *)table->QueueSignalReleaseImageOHOS;
3349
#endif // VK_USE_PLATFORM_OHOS
3350
3351
    // ---- VK_EXT_external_memory_metal extension commands
3352
#if defined(VK_USE_PLATFORM_METAL_EXT)
3353
    if (!strcmp(name, "GetMemoryMetalHandleEXT")) return (void *)table->GetMemoryMetalHandleEXT;
3354
#endif // VK_USE_PLATFORM_METAL_EXT
3355
#if defined(VK_USE_PLATFORM_METAL_EXT)
3356
    if (!strcmp(name, "GetMemoryMetalHandlePropertiesEXT")) return (void *)table->GetMemoryMetalHandlePropertiesEXT;
3357
#endif // VK_USE_PLATFORM_METAL_EXT
3358
3359
    // ---- VK_EXT_fragment_density_map_offset extension commands
3360
0
    if (!strcmp(name, "CmdEndRendering2EXT")) return (void *)table->CmdEndRendering2EXT;
3361
3362
    // ---- VK_EXT_custom_resolve extension commands
3363
0
    if (!strcmp(name, "CmdBeginCustomResolveEXT")) return (void *)table->CmdBeginCustomResolveEXT;
3364
3365
    // ---- VK_NV_compute_occupancy_priority extension commands
3366
0
    if (!strcmp(name, "CmdSetComputeOccupancyPriorityNV")) return (void *)table->CmdSetComputeOccupancyPriorityNV;
3367
3368
    // ---- VK_KHR_acceleration_structure extension commands
3369
0
    if (!strcmp(name, "CreateAccelerationStructureKHR")) return (void *)table->CreateAccelerationStructureKHR;
3370
0
    if (!strcmp(name, "DestroyAccelerationStructureKHR")) return (void *)table->DestroyAccelerationStructureKHR;
3371
0
    if (!strcmp(name, "CmdBuildAccelerationStructuresKHR")) return (void *)table->CmdBuildAccelerationStructuresKHR;
3372
0
    if (!strcmp(name, "CmdBuildAccelerationStructuresIndirectKHR")) return (void *)table->CmdBuildAccelerationStructuresIndirectKHR;
3373
0
    if (!strcmp(name, "BuildAccelerationStructuresKHR")) return (void *)table->BuildAccelerationStructuresKHR;
3374
0
    if (!strcmp(name, "CopyAccelerationStructureKHR")) return (void *)table->CopyAccelerationStructureKHR;
3375
0
    if (!strcmp(name, "CopyAccelerationStructureToMemoryKHR")) return (void *)table->CopyAccelerationStructureToMemoryKHR;
3376
0
    if (!strcmp(name, "CopyMemoryToAccelerationStructureKHR")) return (void *)table->CopyMemoryToAccelerationStructureKHR;
3377
0
    if (!strcmp(name, "WriteAccelerationStructuresPropertiesKHR")) return (void *)table->WriteAccelerationStructuresPropertiesKHR;
3378
0
    if (!strcmp(name, "CmdCopyAccelerationStructureKHR")) return (void *)table->CmdCopyAccelerationStructureKHR;
3379
0
    if (!strcmp(name, "CmdCopyAccelerationStructureToMemoryKHR")) return (void *)table->CmdCopyAccelerationStructureToMemoryKHR;
3380
0
    if (!strcmp(name, "CmdCopyMemoryToAccelerationStructureKHR")) return (void *)table->CmdCopyMemoryToAccelerationStructureKHR;
3381
0
    if (!strcmp(name, "GetAccelerationStructureDeviceAddressKHR")) return (void *)table->GetAccelerationStructureDeviceAddressKHR;
3382
0
    if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesKHR")) return (void *)table->CmdWriteAccelerationStructuresPropertiesKHR;
3383
0
    if (!strcmp(name, "GetDeviceAccelerationStructureCompatibilityKHR")) return (void *)table->GetDeviceAccelerationStructureCompatibilityKHR;
3384
0
    if (!strcmp(name, "GetAccelerationStructureBuildSizesKHR")) return (void *)table->GetAccelerationStructureBuildSizesKHR;
3385
3386
    // ---- VK_KHR_ray_tracing_pipeline extension commands
3387
0
    if (!strcmp(name, "CmdTraceRaysKHR")) return (void *)table->CmdTraceRaysKHR;
3388
0
    if (!strcmp(name, "CreateRayTracingPipelinesKHR")) return (void *)table->CreateRayTracingPipelinesKHR;
3389
0
    if (!strcmp(name, "GetRayTracingCaptureReplayShaderGroupHandlesKHR")) return (void *)table->GetRayTracingCaptureReplayShaderGroupHandlesKHR;
3390
0
    if (!strcmp(name, "CmdTraceRaysIndirectKHR")) return (void *)table->CmdTraceRaysIndirectKHR;
3391
0
    if (!strcmp(name, "GetRayTracingShaderGroupStackSizeKHR")) return (void *)table->GetRayTracingShaderGroupStackSizeKHR;
3392
0
    if (!strcmp(name, "CmdSetRayTracingPipelineStackSizeKHR")) return (void *)table->CmdSetRayTracingPipelineStackSizeKHR;
3393
3394
    // ---- VK_EXT_mesh_shader extension commands
3395
0
    if (!strcmp(name, "CmdDrawMeshTasksEXT")) return (void *)table->CmdDrawMeshTasksEXT;
3396
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectEXT")) return (void *)table->CmdDrawMeshTasksIndirectEXT;
3397
0
    if (!strcmp(name, "CmdDrawMeshTasksIndirectCountEXT")) return (void *)table->CmdDrawMeshTasksIndirectCountEXT;
3398
3399
0
    *found_name = false;
3400
0
    return NULL;
3401
0
}
3402
3403
// Instance command lookup function
3404
VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable *table, const char *name,
3405
0
                                                                 bool *found_name) {
3406
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
3407
0
        *found_name = false;
3408
0
        return NULL;
3409
0
    }
3410
3411
0
    *found_name = true;
3412
0
    name += 2;
3413
3414
    // ---- Core Vulkan 1.0 commands
3415
0
    if (!strcmp(name, "DestroyInstance")) return (void *)table->DestroyInstance;
3416
0
    if (!strcmp(name, "EnumeratePhysicalDevices")) return (void *)table->EnumeratePhysicalDevices;
3417
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures")) return (void *)table->GetPhysicalDeviceFeatures;
3418
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties")) return (void *)table->GetPhysicalDeviceFormatProperties;
3419
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties")) return (void *)table->GetPhysicalDeviceImageFormatProperties;
3420
0
    if (!strcmp(name, "GetPhysicalDeviceProperties")) return (void *)table->GetPhysicalDeviceProperties;
3421
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties;
3422
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties")) return (void *)table->GetPhysicalDeviceMemoryProperties;
3423
0
    if (!strcmp(name, "GetInstanceProcAddr")) return (void *)table->GetInstanceProcAddr;
3424
0
    if (!strcmp(name, "EnumerateDeviceExtensionProperties")) return (void *)table->EnumerateDeviceExtensionProperties;
3425
0
    if (!strcmp(name, "EnumerateDeviceLayerProperties")) return (void *)table->EnumerateDeviceLayerProperties;
3426
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties;
3427
3428
    // ---- Core Vulkan 1.1 commands
3429
0
    if (!strcmp(name, "EnumeratePhysicalDeviceGroups")) return (void *)table->EnumeratePhysicalDeviceGroups;
3430
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures2")) return (void *)table->GetPhysicalDeviceFeatures2;
3431
0
    if (!strcmp(name, "GetPhysicalDeviceProperties2")) return (void *)table->GetPhysicalDeviceProperties2;
3432
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties2")) return (void *)table->GetPhysicalDeviceFormatProperties2;
3433
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2")) return (void *)table->GetPhysicalDeviceImageFormatProperties2;
3434
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2;
3435
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2")) return (void *)table->GetPhysicalDeviceMemoryProperties2;
3436
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2;
3437
0
    if (!strcmp(name, "GetPhysicalDeviceExternalBufferProperties")) return (void *)table->GetPhysicalDeviceExternalBufferProperties;
3438
0
    if (!strcmp(name, "GetPhysicalDeviceExternalFenceProperties")) return (void *)table->GetPhysicalDeviceExternalFenceProperties;
3439
0
    if (!strcmp(name, "GetPhysicalDeviceExternalSemaphoreProperties")) return (void *)table->GetPhysicalDeviceExternalSemaphoreProperties;
3440
3441
    // ---- Core Vulkan 1.3 commands
3442
0
    if (!strcmp(name, "GetPhysicalDeviceToolProperties")) return (void *)table->GetPhysicalDeviceToolProperties;
3443
3444
    // ---- VK_KHR_surface extension commands
3445
0
    if (!strcmp(name, "DestroySurfaceKHR")) return (void *)table->DestroySurfaceKHR;
3446
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceSupportKHR")) return (void *)table->GetPhysicalDeviceSurfaceSupportKHR;
3447
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilitiesKHR;
3448
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceFormatsKHR")) return (void *)table->GetPhysicalDeviceSurfaceFormatsKHR;
3449
0
    if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModesKHR")) return (void *)table->GetPhysicalDeviceSurfacePresentModesKHR;
3450
3451
    // ---- VK_KHR_swapchain extension commands
3452
0
    if (!strcmp(name, "GetPhysicalDevicePresentRectanglesKHR")) return (void *)table->GetPhysicalDevicePresentRectanglesKHR;
3453
3454
    // ---- VK_KHR_display extension commands
3455
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPropertiesKHR;
3456
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPlanePropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPlanePropertiesKHR;
3457
0
    if (!strcmp(name, "GetDisplayPlaneSupportedDisplaysKHR")) return (void *)table->GetDisplayPlaneSupportedDisplaysKHR;
3458
0
    if (!strcmp(name, "GetDisplayModePropertiesKHR")) return (void *)table->GetDisplayModePropertiesKHR;
3459
0
    if (!strcmp(name, "CreateDisplayModeKHR")) return (void *)table->CreateDisplayModeKHR;
3460
0
    if (!strcmp(name, "GetDisplayPlaneCapabilitiesKHR")) return (void *)table->GetDisplayPlaneCapabilitiesKHR;
3461
0
    if (!strcmp(name, "CreateDisplayPlaneSurfaceKHR")) return (void *)table->CreateDisplayPlaneSurfaceKHR;
3462
3463
    // ---- VK_KHR_xlib_surface extension commands
3464
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
3465
0
    if (!strcmp(name, "CreateXlibSurfaceKHR")) return (void *)table->CreateXlibSurfaceKHR;
3466
0
#endif // VK_USE_PLATFORM_XLIB_KHR
3467
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
3468
0
    if (!strcmp(name, "GetPhysicalDeviceXlibPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXlibPresentationSupportKHR;
3469
0
#endif // VK_USE_PLATFORM_XLIB_KHR
3470
3471
    // ---- VK_KHR_xcb_surface extension commands
3472
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
3473
0
    if (!strcmp(name, "CreateXcbSurfaceKHR")) return (void *)table->CreateXcbSurfaceKHR;
3474
0
#endif // VK_USE_PLATFORM_XCB_KHR
3475
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
3476
0
    if (!strcmp(name, "GetPhysicalDeviceXcbPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXcbPresentationSupportKHR;
3477
0
#endif // VK_USE_PLATFORM_XCB_KHR
3478
3479
    // ---- VK_KHR_wayland_surface extension commands
3480
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3481
0
    if (!strcmp(name, "CreateWaylandSurfaceKHR")) return (void *)table->CreateWaylandSurfaceKHR;
3482
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
3483
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3484
0
    if (!strcmp(name, "GetPhysicalDeviceWaylandPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWaylandPresentationSupportKHR;
3485
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
3486
3487
    // ---- VK_KHR_android_surface extension commands
3488
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
3489
    if (!strcmp(name, "CreateAndroidSurfaceKHR")) return (void *)table->CreateAndroidSurfaceKHR;
3490
#endif // VK_USE_PLATFORM_ANDROID_KHR
3491
3492
    // ---- VK_KHR_win32_surface extension commands
3493
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3494
    if (!strcmp(name, "CreateWin32SurfaceKHR")) return (void *)table->CreateWin32SurfaceKHR;
3495
#endif // VK_USE_PLATFORM_WIN32_KHR
3496
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3497
    if (!strcmp(name, "GetPhysicalDeviceWin32PresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWin32PresentationSupportKHR;
3498
#endif // VK_USE_PLATFORM_WIN32_KHR
3499
3500
    // ---- VK_KHR_video_queue extension commands
3501
0
    if (!strcmp(name, "GetPhysicalDeviceVideoCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceVideoCapabilitiesKHR;
3502
0
    if (!strcmp(name, "GetPhysicalDeviceVideoFormatPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoFormatPropertiesKHR;
3503
3504
    // ---- VK_KHR_get_physical_device_properties2 extension commands
3505
0
    if (!strcmp(name, "GetPhysicalDeviceFeatures2KHR")) return (void *)table->GetPhysicalDeviceFeatures2KHR;
3506
0
    if (!strcmp(name, "GetPhysicalDeviceProperties2KHR")) return (void *)table->GetPhysicalDeviceProperties2KHR;
3507
0
    if (!strcmp(name, "GetPhysicalDeviceFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceFormatProperties2KHR;
3508
0
    if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceImageFormatProperties2KHR;
3509
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2KHR")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2KHR;
3510
0
    if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2KHR")) return (void *)table->GetPhysicalDeviceMemoryProperties2KHR;
3511
0
    if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2KHR;
3512
3513
    // ---- VK_KHR_device_group_creation extension commands
3514
0
    if (!strcmp(name, "EnumeratePhysicalDeviceGroupsKHR")) return (void *)table->EnumeratePhysicalDeviceGroupsKHR;
3515
3516
    // ---- VK_KHR_external_memory_capabilities extension commands
3517
0
    if (!strcmp(name, "GetPhysicalDeviceExternalBufferPropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalBufferPropertiesKHR;
3518
3519
    // ---- VK_KHR_external_semaphore_capabilities extension commands
3520
0
    if (!strcmp(name, "GetPhysicalDeviceExternalSemaphorePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalSemaphorePropertiesKHR;
3521
3522
    // ---- VK_KHR_external_fence_capabilities extension commands
3523
0
    if (!strcmp(name, "GetPhysicalDeviceExternalFencePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalFencePropertiesKHR;
3524
3525
    // ---- VK_KHR_performance_query extension commands
3526
0
    if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
3527
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) return (void *)table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
3528
3529
    // ---- VK_KHR_get_surface_capabilities2 extension commands
3530
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2KHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2KHR;
3531
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceFormats2KHR")) return (void *)table->GetPhysicalDeviceSurfaceFormats2KHR;
3532
3533
    // ---- VK_KHR_get_display_properties2 extension commands
3534
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayProperties2KHR;
3535
0
    if (!strcmp(name, "GetPhysicalDeviceDisplayPlaneProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayPlaneProperties2KHR;
3536
0
    if (!strcmp(name, "GetDisplayModeProperties2KHR")) return (void *)table->GetDisplayModeProperties2KHR;
3537
0
    if (!strcmp(name, "GetDisplayPlaneCapabilities2KHR")) return (void *)table->GetDisplayPlaneCapabilities2KHR;
3538
3539
    // ---- VK_KHR_fragment_shading_rate extension commands
3540
0
    if (!strcmp(name, "GetPhysicalDeviceFragmentShadingRatesKHR")) return (void *)table->GetPhysicalDeviceFragmentShadingRatesKHR;
3541
3542
    // ---- VK_KHR_video_encode_queue extension commands
3543
0
    if (!strcmp(name, "GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
3544
3545
    // ---- VK_KHR_cooperative_matrix extension commands
3546
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesKHR")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
3547
3548
    // ---- VK_KHR_calibrated_timestamps extension commands
3549
0
    if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsKHR")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsKHR;
3550
3551
    // ---- VK_EXT_debug_report extension commands
3552
0
    if (!strcmp(name, "CreateDebugReportCallbackEXT")) return (void *)table->CreateDebugReportCallbackEXT;
3553
0
    if (!strcmp(name, "DestroyDebugReportCallbackEXT")) return (void *)table->DestroyDebugReportCallbackEXT;
3554
0
    if (!strcmp(name, "DebugReportMessageEXT")) return (void *)table->DebugReportMessageEXT;
3555
3556
    // ---- VK_GGP_stream_descriptor_surface extension commands
3557
#if defined(VK_USE_PLATFORM_GGP)
3558
    if (!strcmp(name, "CreateStreamDescriptorSurfaceGGP")) return (void *)table->CreateStreamDescriptorSurfaceGGP;
3559
#endif // VK_USE_PLATFORM_GGP
3560
3561
    // ---- VK_NV_external_memory_capabilities extension commands
3562
0
    if (!strcmp(name, "GetPhysicalDeviceExternalImageFormatPropertiesNV")) return (void *)table->GetPhysicalDeviceExternalImageFormatPropertiesNV;
3563
3564
    // ---- VK_NN_vi_surface extension commands
3565
#if defined(VK_USE_PLATFORM_VI_NN)
3566
    if (!strcmp(name, "CreateViSurfaceNN")) return (void *)table->CreateViSurfaceNN;
3567
#endif // VK_USE_PLATFORM_VI_NN
3568
3569
    // ---- VK_EXT_direct_mode_display extension commands
3570
0
    if (!strcmp(name, "ReleaseDisplayEXT")) return (void *)table->ReleaseDisplayEXT;
3571
3572
    // ---- VK_EXT_acquire_xlib_display extension commands
3573
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3574
0
    if (!strcmp(name, "AcquireXlibDisplayEXT")) return (void *)table->AcquireXlibDisplayEXT;
3575
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3576
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3577
0
    if (!strcmp(name, "GetRandROutputDisplayEXT")) return (void *)table->GetRandROutputDisplayEXT;
3578
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3579
3580
    // ---- VK_EXT_display_surface_counter extension commands
3581
0
    if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2EXT")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2EXT;
3582
3583
    // ---- VK_MVK_ios_surface extension commands
3584
#if defined(VK_USE_PLATFORM_IOS_MVK)
3585
    if (!strcmp(name, "CreateIOSSurfaceMVK")) return (void *)table->CreateIOSSurfaceMVK;
3586
#endif // VK_USE_PLATFORM_IOS_MVK
3587
3588
    // ---- VK_MVK_macos_surface extension commands
3589
#if defined(VK_USE_PLATFORM_MACOS_MVK)
3590
    if (!strcmp(name, "CreateMacOSSurfaceMVK")) return (void *)table->CreateMacOSSurfaceMVK;
3591
#endif // VK_USE_PLATFORM_MACOS_MVK
3592
3593
    // ---- VK_EXT_debug_utils extension commands
3594
0
    if (!strcmp(name, "CreateDebugUtilsMessengerEXT")) return (void *)table->CreateDebugUtilsMessengerEXT;
3595
0
    if (!strcmp(name, "DestroyDebugUtilsMessengerEXT")) return (void *)table->DestroyDebugUtilsMessengerEXT;
3596
0
    if (!strcmp(name, "SubmitDebugUtilsMessageEXT")) return (void *)table->SubmitDebugUtilsMessageEXT;
3597
3598
    // ---- VK_EXT_sample_locations extension commands
3599
0
    if (!strcmp(name, "GetPhysicalDeviceMultisamplePropertiesEXT")) return (void *)table->GetPhysicalDeviceMultisamplePropertiesEXT;
3600
3601
    // ---- VK_EXT_calibrated_timestamps extension commands
3602
0
    if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsEXT")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsEXT;
3603
3604
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
3605
#if defined(VK_USE_PLATFORM_FUCHSIA)
3606
    if (!strcmp(name, "CreateImagePipeSurfaceFUCHSIA")) return (void *)table->CreateImagePipeSurfaceFUCHSIA;
3607
#endif // VK_USE_PLATFORM_FUCHSIA
3608
3609
    // ---- VK_EXT_metal_surface extension commands
3610
#if defined(VK_USE_PLATFORM_METAL_EXT)
3611
    if (!strcmp(name, "CreateMetalSurfaceEXT")) return (void *)table->CreateMetalSurfaceEXT;
3612
#endif // VK_USE_PLATFORM_METAL_EXT
3613
3614
    // ---- VK_EXT_tooling_info extension commands
3615
0
    if (!strcmp(name, "GetPhysicalDeviceToolPropertiesEXT")) return (void *)table->GetPhysicalDeviceToolPropertiesEXT;
3616
3617
    // ---- VK_NV_cooperative_matrix extension commands
3618
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesNV;
3619
3620
    // ---- VK_NV_coverage_reduction_mode extension commands
3621
0
    if (!strcmp(name, "GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) return (void *)table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
3622
3623
    // ---- VK_EXT_full_screen_exclusive extension commands
3624
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3625
    if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModes2EXT")) return (void *)table->GetPhysicalDeviceSurfacePresentModes2EXT;
3626
#endif // VK_USE_PLATFORM_WIN32_KHR
3627
3628
    // ---- VK_EXT_headless_surface extension commands
3629
0
    if (!strcmp(name, "CreateHeadlessSurfaceEXT")) return (void *)table->CreateHeadlessSurfaceEXT;
3630
3631
    // ---- VK_EXT_acquire_drm_display extension commands
3632
0
    if (!strcmp(name, "AcquireDrmDisplayEXT")) return (void *)table->AcquireDrmDisplayEXT;
3633
0
    if (!strcmp(name, "GetDrmDisplayEXT")) return (void *)table->GetDrmDisplayEXT;
3634
3635
    // ---- VK_NV_acquire_winrt_display extension commands
3636
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3637
    if (!strcmp(name, "AcquireWinrtDisplayNV")) return (void *)table->AcquireWinrtDisplayNV;
3638
#endif // VK_USE_PLATFORM_WIN32_KHR
3639
#if defined(VK_USE_PLATFORM_WIN32_KHR)
3640
    if (!strcmp(name, "GetWinrtDisplayNV")) return (void *)table->GetWinrtDisplayNV;
3641
#endif // VK_USE_PLATFORM_WIN32_KHR
3642
3643
    // ---- VK_EXT_directfb_surface extension commands
3644
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3645
    if (!strcmp(name, "CreateDirectFBSurfaceEXT")) return (void *)table->CreateDirectFBSurfaceEXT;
3646
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
3647
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3648
    if (!strcmp(name, "GetPhysicalDeviceDirectFBPresentationSupportEXT")) return (void *)table->GetPhysicalDeviceDirectFBPresentationSupportEXT;
3649
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
3650
3651
    // ---- VK_QNX_screen_surface extension commands
3652
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3653
    if (!strcmp(name, "CreateScreenSurfaceQNX")) return (void *)table->CreateScreenSurfaceQNX;
3654
#endif // VK_USE_PLATFORM_SCREEN_QNX
3655
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
3656
    if (!strcmp(name, "GetPhysicalDeviceScreenPresentationSupportQNX")) return (void *)table->GetPhysicalDeviceScreenPresentationSupportQNX;
3657
#endif // VK_USE_PLATFORM_SCREEN_QNX
3658
3659
    // ---- VK_ARM_tensors extension commands
3660
0
    if (!strcmp(name, "GetPhysicalDeviceExternalTensorPropertiesARM")) return (void *)table->GetPhysicalDeviceExternalTensorPropertiesARM;
3661
3662
    // ---- VK_NV_optical_flow extension commands
3663
0
    if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV;
3664
3665
    // ---- VK_NV_cooperative_vector extension commands
3666
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeVectorPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeVectorPropertiesNV;
3667
3668
    // ---- VK_ARM_data_graph extension commands
3669
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM")) return (void *)table->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM;
3670
0
    if (!strcmp(name, "GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM")) return (void *)table->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM;
3671
3672
    // ---- VK_OHOS_surface extension commands
3673
#if defined(VK_USE_PLATFORM_OHOS)
3674
    if (!strcmp(name, "CreateSurfaceOHOS")) return (void *)table->CreateSurfaceOHOS;
3675
#endif // VK_USE_PLATFORM_OHOS
3676
3677
    // ---- VK_NV_cooperative_matrix2 extension commands
3678
0
    if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
3679
3680
    // ---- VK_ARM_performance_counters_by_region extension commands
3681
0
    if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;
3682
3683
0
    *found_name = false;
3684
0
    return NULL;
3685
0
}
3686
3687
3688
// ---- VK_KHR_video_queue extension trampoline/terminators
3689
3690
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR(
3691
    VkPhysicalDevice                            physicalDevice,
3692
    const VkVideoProfileInfoKHR*                pVideoProfile,
3693
0
    VkVideoCapabilitiesKHR*                     pCapabilities) {
3694
0
    const VkLayerInstanceDispatchTable *disp;
3695
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3696
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3697
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3698
0
                   "vkGetPhysicalDeviceVideoCapabilitiesKHR: Invalid physicalDevice "
3699
0
                   "[VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter]");
3700
0
        abort(); /* Intentionally fail so user can correct issue. */
3701
0
    }
3702
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
3703
0
    return disp->GetPhysicalDeviceVideoCapabilitiesKHR(unwrapped_phys_dev, pVideoProfile, pCapabilities);
3704
0
}
3705
3706
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoCapabilitiesKHR(
3707
    VkPhysicalDevice                            physicalDevice,
3708
    const VkVideoProfileInfoKHR*                pVideoProfile,
3709
0
    VkVideoCapabilitiesKHR*                     pCapabilities) {
3710
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3711
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3712
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR) {
3713
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3714
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoCapabilitiesKHR");
3715
0
        abort(); /* Intentionally fail so user can correct issue. */
3716
0
    }
3717
0
    return icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR(phys_dev_term->phys_dev, pVideoProfile, pCapabilities);
3718
0
}
3719
3720
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR(
3721
    VkPhysicalDevice                            physicalDevice,
3722
    const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
3723
    uint32_t*                                   pVideoFormatPropertyCount,
3724
0
    VkVideoFormatPropertiesKHR*                 pVideoFormatProperties) {
3725
0
    const VkLayerInstanceDispatchTable *disp;
3726
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3727
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3728
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3729
0
                   "vkGetPhysicalDeviceVideoFormatPropertiesKHR: Invalid physicalDevice "
3730
0
                   "[VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter]");
3731
0
        abort(); /* Intentionally fail so user can correct issue. */
3732
0
    }
3733
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
3734
0
    return disp->GetPhysicalDeviceVideoFormatPropertiesKHR(unwrapped_phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3735
0
}
3736
3737
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(
3738
    VkPhysicalDevice                            physicalDevice,
3739
    const VkPhysicalDeviceVideoFormatInfoKHR*   pVideoFormatInfo,
3740
    uint32_t*                                   pVideoFormatPropertyCount,
3741
0
    VkVideoFormatPropertiesKHR*                 pVideoFormatProperties) {
3742
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3743
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3744
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR) {
3745
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3746
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoFormatPropertiesKHR");
3747
0
        abort(); /* Intentionally fail so user can correct issue. */
3748
0
    }
3749
0
    return icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR(phys_dev_term->phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3750
0
}
3751
3752
VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR(
3753
    VkDevice                                    device,
3754
    const VkVideoSessionCreateInfoKHR*          pCreateInfo,
3755
    const VkAllocationCallbacks*                pAllocator,
3756
0
    VkVideoSessionKHR*                          pVideoSession) {
3757
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3758
0
    if (NULL == disp) {
3759
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3760
0
                   "vkCreateVideoSessionKHR: Invalid device "
3761
0
                   "[VUID-vkCreateVideoSessionKHR-device-parameter]");
3762
0
        abort(); /* Intentionally fail so user can correct issue. */
3763
0
    }
3764
0
    return disp->CreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession);
3765
0
}
3766
3767
VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionKHR(
3768
    VkDevice                                    device,
3769
    VkVideoSessionKHR                           videoSession,
3770
0
    const VkAllocationCallbacks*                pAllocator) {
3771
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3772
0
    if (NULL == disp) {
3773
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3774
0
                   "vkDestroyVideoSessionKHR: Invalid device "
3775
0
                   "[VUID-vkDestroyVideoSessionKHR-device-parameter]");
3776
0
        abort(); /* Intentionally fail so user can correct issue. */
3777
0
    }
3778
0
    disp->DestroyVideoSessionKHR(device, videoSession, pAllocator);
3779
0
}
3780
3781
VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR(
3782
    VkDevice                                    device,
3783
    VkVideoSessionKHR                           videoSession,
3784
    uint32_t*                                   pMemoryRequirementsCount,
3785
0
    VkVideoSessionMemoryRequirementsKHR*        pMemoryRequirements) {
3786
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3787
0
    if (NULL == disp) {
3788
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3789
0
                   "vkGetVideoSessionMemoryRequirementsKHR: Invalid device "
3790
0
                   "[VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter]");
3791
0
        abort(); /* Intentionally fail so user can correct issue. */
3792
0
    }
3793
0
    return disp->GetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements);
3794
0
}
3795
3796
VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR(
3797
    VkDevice                                    device,
3798
    VkVideoSessionKHR                           videoSession,
3799
    uint32_t                                    bindSessionMemoryInfoCount,
3800
0
    const VkBindVideoSessionMemoryInfoKHR*      pBindSessionMemoryInfos) {
3801
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3802
0
    if (NULL == disp) {
3803
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3804
0
                   "vkBindVideoSessionMemoryKHR: Invalid device "
3805
0
                   "[VUID-vkBindVideoSessionMemoryKHR-device-parameter]");
3806
0
        abort(); /* Intentionally fail so user can correct issue. */
3807
0
    }
3808
0
    return disp->BindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos);
3809
0
}
3810
3811
VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR(
3812
    VkDevice                                    device,
3813
    const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
3814
    const VkAllocationCallbacks*                pAllocator,
3815
0
    VkVideoSessionParametersKHR*                pVideoSessionParameters) {
3816
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3817
0
    if (NULL == disp) {
3818
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3819
0
                   "vkCreateVideoSessionParametersKHR: Invalid device "
3820
0
                   "[VUID-vkCreateVideoSessionParametersKHR-device-parameter]");
3821
0
        abort(); /* Intentionally fail so user can correct issue. */
3822
0
    }
3823
0
    return disp->CreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters);
3824
0
}
3825
3826
VKAPI_ATTR VkResult VKAPI_CALL UpdateVideoSessionParametersKHR(
3827
    VkDevice                                    device,
3828
    VkVideoSessionParametersKHR                 videoSessionParameters,
3829
0
    const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) {
3830
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3831
0
    if (NULL == disp) {
3832
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3833
0
                   "vkUpdateVideoSessionParametersKHR: Invalid device "
3834
0
                   "[VUID-vkUpdateVideoSessionParametersKHR-device-parameter]");
3835
0
        abort(); /* Intentionally fail so user can correct issue. */
3836
0
    }
3837
0
    return disp->UpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo);
3838
0
}
3839
3840
VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionParametersKHR(
3841
    VkDevice                                    device,
3842
    VkVideoSessionParametersKHR                 videoSessionParameters,
3843
0
    const VkAllocationCallbacks*                pAllocator) {
3844
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3845
0
    if (NULL == disp) {
3846
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3847
0
                   "vkDestroyVideoSessionParametersKHR: Invalid device "
3848
0
                   "[VUID-vkDestroyVideoSessionParametersKHR-device-parameter]");
3849
0
        abort(); /* Intentionally fail so user can correct issue. */
3850
0
    }
3851
0
    disp->DestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator);
3852
0
}
3853
3854
VKAPI_ATTR void VKAPI_CALL CmdBeginVideoCodingKHR(
3855
    VkCommandBuffer                             commandBuffer,
3856
0
    const VkVideoBeginCodingInfoKHR*            pBeginInfo) {
3857
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3858
0
    if (NULL == disp) {
3859
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3860
0
                   "vkCmdBeginVideoCodingKHR: Invalid commandBuffer "
3861
0
                   "[VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter]");
3862
0
        abort(); /* Intentionally fail so user can correct issue. */
3863
0
    }
3864
0
    disp->CmdBeginVideoCodingKHR(commandBuffer, pBeginInfo);
3865
0
}
3866
3867
VKAPI_ATTR void VKAPI_CALL CmdEndVideoCodingKHR(
3868
    VkCommandBuffer                             commandBuffer,
3869
0
    const VkVideoEndCodingInfoKHR*              pEndCodingInfo) {
3870
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3871
0
    if (NULL == disp) {
3872
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3873
0
                   "vkCmdEndVideoCodingKHR: Invalid commandBuffer "
3874
0
                   "[VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter]");
3875
0
        abort(); /* Intentionally fail so user can correct issue. */
3876
0
    }
3877
0
    disp->CmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo);
3878
0
}
3879
3880
VKAPI_ATTR void VKAPI_CALL CmdControlVideoCodingKHR(
3881
    VkCommandBuffer                             commandBuffer,
3882
0
    const VkVideoCodingControlInfoKHR*          pCodingControlInfo) {
3883
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3884
0
    if (NULL == disp) {
3885
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3886
0
                   "vkCmdControlVideoCodingKHR: Invalid commandBuffer "
3887
0
                   "[VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter]");
3888
0
        abort(); /* Intentionally fail so user can correct issue. */
3889
0
    }
3890
0
    disp->CmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo);
3891
0
}
3892
3893
3894
// ---- VK_KHR_video_decode_queue extension trampoline/terminators
3895
3896
VKAPI_ATTR void VKAPI_CALL CmdDecodeVideoKHR(
3897
    VkCommandBuffer                             commandBuffer,
3898
0
    const VkVideoDecodeInfoKHR*                 pDecodeInfo) {
3899
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3900
0
    if (NULL == disp) {
3901
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3902
0
                   "vkCmdDecodeVideoKHR: Invalid commandBuffer "
3903
0
                   "[VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter]");
3904
0
        abort(); /* Intentionally fail so user can correct issue. */
3905
0
    }
3906
0
    disp->CmdDecodeVideoKHR(commandBuffer, pDecodeInfo);
3907
0
}
3908
3909
3910
// ---- VK_KHR_dynamic_rendering extension trampoline/terminators
3911
3912
VKAPI_ATTR void VKAPI_CALL CmdBeginRenderingKHR(
3913
    VkCommandBuffer                             commandBuffer,
3914
0
    const VkRenderingInfo*                      pRenderingInfo) {
3915
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3916
0
    if (NULL == disp) {
3917
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3918
0
                   "vkCmdBeginRenderingKHR: Invalid commandBuffer "
3919
0
                   "[VUID-vkCmdBeginRenderingKHR-commandBuffer-parameter]");
3920
0
        abort(); /* Intentionally fail so user can correct issue. */
3921
0
    }
3922
0
    disp->CmdBeginRenderingKHR(commandBuffer, pRenderingInfo);
3923
0
}
3924
3925
VKAPI_ATTR void VKAPI_CALL CmdEndRenderingKHR(
3926
0
    VkCommandBuffer                             commandBuffer) {
3927
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3928
0
    if (NULL == disp) {
3929
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3930
0
                   "vkCmdEndRenderingKHR: Invalid commandBuffer "
3931
0
                   "[VUID-vkCmdEndRenderingKHR-commandBuffer-parameter]");
3932
0
        abort(); /* Intentionally fail so user can correct issue. */
3933
0
    }
3934
0
    disp->CmdEndRenderingKHR(commandBuffer);
3935
0
}
3936
3937
3938
// ---- VK_KHR_device_group extension trampoline/terminators
3939
3940
VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR(
3941
    VkDevice                                    device,
3942
    uint32_t                                    heapIndex,
3943
    uint32_t                                    localDeviceIndex,
3944
    uint32_t                                    remoteDeviceIndex,
3945
0
    VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures) {
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
                   "vkGetDeviceGroupPeerMemoryFeaturesKHR: Invalid device "
3950
0
                   "[VUID-vkGetDeviceGroupPeerMemoryFeaturesKHR-device-parameter]");
3951
0
        abort(); /* Intentionally fail so user can correct issue. */
3952
0
    }
3953
0
    disp->GetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
3954
0
}
3955
3956
VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHR(
3957
    VkCommandBuffer                             commandBuffer,
3958
0
    uint32_t                                    deviceMask) {
3959
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3960
0
    if (NULL == disp) {
3961
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3962
0
                   "vkCmdSetDeviceMaskKHR: Invalid commandBuffer "
3963
0
                   "[VUID-vkCmdSetDeviceMaskKHR-commandBuffer-parameter]");
3964
0
        abort(); /* Intentionally fail so user can correct issue. */
3965
0
    }
3966
0
    disp->CmdSetDeviceMaskKHR(commandBuffer, deviceMask);
3967
0
}
3968
3969
VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR(
3970
    VkCommandBuffer                             commandBuffer,
3971
    uint32_t                                    baseGroupX,
3972
    uint32_t                                    baseGroupY,
3973
    uint32_t                                    baseGroupZ,
3974
    uint32_t                                    groupCountX,
3975
    uint32_t                                    groupCountY,
3976
0
    uint32_t                                    groupCountZ) {
3977
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3978
0
    if (NULL == disp) {
3979
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3980
0
                   "vkCmdDispatchBaseKHR: Invalid commandBuffer "
3981
0
                   "[VUID-vkCmdDispatchBaseKHR-commandBuffer-parameter]");
3982
0
        abort(); /* Intentionally fail so user can correct issue. */
3983
0
    }
3984
0
    disp->CmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
3985
0
}
3986
3987
3988
// ---- VK_KHR_maintenance1 extension trampoline/terminators
3989
3990
VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR(
3991
    VkDevice                                    device,
3992
    VkCommandPool                               commandPool,
3993
0
    VkCommandPoolTrimFlags                      flags) {
3994
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3995
0
    if (NULL == disp) {
3996
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3997
0
                   "vkTrimCommandPoolKHR: Invalid device "
3998
0
                   "[VUID-vkTrimCommandPoolKHR-device-parameter]");
3999
0
        abort(); /* Intentionally fail so user can correct issue. */
4000
0
    }
4001
0
    disp->TrimCommandPoolKHR(device, commandPool, flags);
4002
0
}
4003
4004
4005
// ---- VK_KHR_external_memory_win32 extension trampoline/terminators
4006
4007
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4008
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR(
4009
    VkDevice                                    device,
4010
    const VkMemoryGetWin32HandleInfoKHR*        pGetWin32HandleInfo,
4011
    HANDLE*                                     pHandle) {
4012
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4013
    if (NULL == disp) {
4014
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4015
                   "vkGetMemoryWin32HandleKHR: Invalid device "
4016
                   "[VUID-vkGetMemoryWin32HandleKHR-device-parameter]");
4017
        abort(); /* Intentionally fail so user can correct issue. */
4018
    }
4019
    return disp->GetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4020
}
4021
4022
#endif // VK_USE_PLATFORM_WIN32_KHR
4023
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4024
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR(
4025
    VkDevice                                    device,
4026
    VkExternalMemoryHandleTypeFlagBits          handleType,
4027
    HANDLE                                      handle,
4028
    VkMemoryWin32HandlePropertiesKHR*           pMemoryWin32HandleProperties) {
4029
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4030
    if (NULL == disp) {
4031
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4032
                   "vkGetMemoryWin32HandlePropertiesKHR: Invalid device "
4033
                   "[VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter]");
4034
        abort(); /* Intentionally fail so user can correct issue. */
4035
    }
4036
    return disp->GetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
4037
}
4038
4039
#endif // VK_USE_PLATFORM_WIN32_KHR
4040
4041
// ---- VK_KHR_external_memory_fd extension trampoline/terminators
4042
4043
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR(
4044
    VkDevice                                    device,
4045
    const VkMemoryGetFdInfoKHR*                 pGetFdInfo,
4046
0
    int*                                        pFd) {
4047
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4048
0
    if (NULL == disp) {
4049
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4050
0
                   "vkGetMemoryFdKHR: Invalid device "
4051
0
                   "[VUID-vkGetMemoryFdKHR-device-parameter]");
4052
0
        abort(); /* Intentionally fail so user can correct issue. */
4053
0
    }
4054
0
    return disp->GetMemoryFdKHR(device, pGetFdInfo, pFd);
4055
0
}
4056
4057
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR(
4058
    VkDevice                                    device,
4059
    VkExternalMemoryHandleTypeFlagBits          handleType,
4060
    int                                         fd,
4061
0
    VkMemoryFdPropertiesKHR*                    pMemoryFdProperties) {
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
                   "vkGetMemoryFdPropertiesKHR: Invalid device "
4066
0
                   "[VUID-vkGetMemoryFdPropertiesKHR-device-parameter]");
4067
0
        abort(); /* Intentionally fail so user can correct issue. */
4068
0
    }
4069
0
    return disp->GetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
4070
0
}
4071
4072
4073
// ---- VK_KHR_external_semaphore_win32 extension trampoline/terminators
4074
4075
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4076
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreWin32HandleKHR(
4077
    VkDevice                                    device,
4078
    const VkImportSemaphoreWin32HandleInfoKHR*  pImportSemaphoreWin32HandleInfo) {
4079
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4080
    if (NULL == disp) {
4081
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4082
                   "vkImportSemaphoreWin32HandleKHR: Invalid device "
4083
                   "[VUID-vkImportSemaphoreWin32HandleKHR-device-parameter]");
4084
        abort(); /* Intentionally fail so user can correct issue. */
4085
    }
4086
    return disp->ImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
4087
}
4088
4089
#endif // VK_USE_PLATFORM_WIN32_KHR
4090
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4091
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR(
4092
    VkDevice                                    device,
4093
    const VkSemaphoreGetWin32HandleInfoKHR*     pGetWin32HandleInfo,
4094
    HANDLE*                                     pHandle) {
4095
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4096
    if (NULL == disp) {
4097
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4098
                   "vkGetSemaphoreWin32HandleKHR: Invalid device "
4099
                   "[VUID-vkGetSemaphoreWin32HandleKHR-device-parameter]");
4100
        abort(); /* Intentionally fail so user can correct issue. */
4101
    }
4102
    return disp->GetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4103
}
4104
4105
#endif // VK_USE_PLATFORM_WIN32_KHR
4106
4107
// ---- VK_KHR_external_semaphore_fd extension trampoline/terminators
4108
4109
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR(
4110
    VkDevice                                    device,
4111
0
    const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo) {
4112
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4113
0
    if (NULL == disp) {
4114
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4115
0
                   "vkImportSemaphoreFdKHR: Invalid device "
4116
0
                   "[VUID-vkImportSemaphoreFdKHR-device-parameter]");
4117
0
        abort(); /* Intentionally fail so user can correct issue. */
4118
0
    }
4119
0
    return disp->ImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
4120
0
}
4121
4122
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR(
4123
    VkDevice                                    device,
4124
    const VkSemaphoreGetFdInfoKHR*              pGetFdInfo,
4125
0
    int*                                        pFd) {
4126
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4127
0
    if (NULL == disp) {
4128
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4129
0
                   "vkGetSemaphoreFdKHR: Invalid device "
4130
0
                   "[VUID-vkGetSemaphoreFdKHR-device-parameter]");
4131
0
        abort(); /* Intentionally fail so user can correct issue. */
4132
0
    }
4133
0
    return disp->GetSemaphoreFdKHR(device, pGetFdInfo, pFd);
4134
0
}
4135
4136
4137
// ---- VK_KHR_push_descriptor extension trampoline/terminators
4138
4139
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR(
4140
    VkCommandBuffer                             commandBuffer,
4141
    VkPipelineBindPoint                         pipelineBindPoint,
4142
    VkPipelineLayout                            layout,
4143
    uint32_t                                    set,
4144
    uint32_t                                    descriptorWriteCount,
4145
0
    const VkWriteDescriptorSet*                 pDescriptorWrites) {
4146
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4147
0
    if (NULL == disp) {
4148
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4149
0
                   "vkCmdPushDescriptorSetKHR: Invalid commandBuffer "
4150
0
                   "[VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter]");
4151
0
        abort(); /* Intentionally fail so user can correct issue. */
4152
0
    }
4153
0
    disp->CmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
4154
0
}
4155
4156
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplateKHR(
4157
    VkCommandBuffer                             commandBuffer,
4158
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4159
    VkPipelineLayout                            layout,
4160
    uint32_t                                    set,
4161
0
    const void*                                 pData) {
4162
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4163
0
    if (NULL == disp) {
4164
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4165
0
                   "vkCmdPushDescriptorSetWithTemplateKHR: Invalid commandBuffer "
4166
0
                   "[VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter]");
4167
0
        abort(); /* Intentionally fail so user can correct issue. */
4168
0
    }
4169
0
    disp->CmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
4170
0
}
4171
4172
4173
// ---- VK_KHR_descriptor_update_template extension trampoline/terminators
4174
4175
VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR(
4176
    VkDevice                                    device,
4177
    const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
4178
    const VkAllocationCallbacks*                pAllocator,
4179
0
    VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate) {
4180
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4181
0
    if (NULL == disp) {
4182
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4183
0
                   "vkCreateDescriptorUpdateTemplateKHR: Invalid device "
4184
0
                   "[VUID-vkCreateDescriptorUpdateTemplateKHR-device-parameter]");
4185
0
        abort(); /* Intentionally fail so user can correct issue. */
4186
0
    }
4187
0
    return disp->CreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
4188
0
}
4189
4190
VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR(
4191
    VkDevice                                    device,
4192
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4193
0
    const VkAllocationCallbacks*                pAllocator) {
4194
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4195
0
    if (NULL == disp) {
4196
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4197
0
                   "vkDestroyDescriptorUpdateTemplateKHR: Invalid device "
4198
0
                   "[VUID-vkDestroyDescriptorUpdateTemplateKHR-device-parameter]");
4199
0
        abort(); /* Intentionally fail so user can correct issue. */
4200
0
    }
4201
0
    disp->DestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
4202
0
}
4203
4204
VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSetWithTemplateKHR(
4205
    VkDevice                                    device,
4206
    VkDescriptorSet                             descriptorSet,
4207
    VkDescriptorUpdateTemplate                  descriptorUpdateTemplate,
4208
0
    const void*                                 pData) {
4209
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4210
0
    if (NULL == disp) {
4211
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4212
0
                   "vkUpdateDescriptorSetWithTemplateKHR: Invalid device "
4213
0
                   "[VUID-vkUpdateDescriptorSetWithTemplateKHR-device-parameter]");
4214
0
        abort(); /* Intentionally fail so user can correct issue. */
4215
0
    }
4216
0
    disp->UpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
4217
0
}
4218
4219
4220
// ---- VK_KHR_create_renderpass2 extension trampoline/terminators
4221
4222
VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR(
4223
    VkDevice                                    device,
4224
    const VkRenderPassCreateInfo2*              pCreateInfo,
4225
    const VkAllocationCallbacks*                pAllocator,
4226
0
    VkRenderPass*                               pRenderPass) {
4227
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4228
0
    if (NULL == disp) {
4229
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4230
0
                   "vkCreateRenderPass2KHR: Invalid device "
4231
0
                   "[VUID-vkCreateRenderPass2KHR-device-parameter]");
4232
0
        abort(); /* Intentionally fail so user can correct issue. */
4233
0
    }
4234
0
    return disp->CreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
4235
0
}
4236
4237
VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR(
4238
    VkCommandBuffer                             commandBuffer,
4239
    const VkRenderPassBeginInfo*                pRenderPassBegin,
4240
0
    const VkSubpassBeginInfo*                   pSubpassBeginInfo) {
4241
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4242
0
    if (NULL == disp) {
4243
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4244
0
                   "vkCmdBeginRenderPass2KHR: Invalid commandBuffer "
4245
0
                   "[VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter]");
4246
0
        abort(); /* Intentionally fail so user can correct issue. */
4247
0
    }
4248
0
    disp->CmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
4249
0
}
4250
4251
VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR(
4252
    VkCommandBuffer                             commandBuffer,
4253
    const VkSubpassBeginInfo*                   pSubpassBeginInfo,
4254
0
    const VkSubpassEndInfo*                     pSubpassEndInfo) {
4255
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4256
0
    if (NULL == disp) {
4257
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4258
0
                   "vkCmdNextSubpass2KHR: Invalid commandBuffer "
4259
0
                   "[VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter]");
4260
0
        abort(); /* Intentionally fail so user can correct issue. */
4261
0
    }
4262
0
    disp->CmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
4263
0
}
4264
4265
VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR(
4266
    VkCommandBuffer                             commandBuffer,
4267
0
    const VkSubpassEndInfo*                     pSubpassEndInfo) {
4268
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4269
0
    if (NULL == disp) {
4270
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4271
0
                   "vkCmdEndRenderPass2KHR: Invalid commandBuffer "
4272
0
                   "[VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter]");
4273
0
        abort(); /* Intentionally fail so user can correct issue. */
4274
0
    }
4275
0
    disp->CmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
4276
0
}
4277
4278
4279
// ---- VK_KHR_shared_presentable_image extension trampoline/terminators
4280
4281
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR(
4282
    VkDevice                                    device,
4283
0
    VkSwapchainKHR                              swapchain) {
4284
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4285
0
    if (NULL == disp) {
4286
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4287
0
                   "vkGetSwapchainStatusKHR: Invalid device "
4288
0
                   "[VUID-vkGetSwapchainStatusKHR-device-parameter]");
4289
0
        abort(); /* Intentionally fail so user can correct issue. */
4290
0
    }
4291
0
    return disp->GetSwapchainStatusKHR(device, swapchain);
4292
0
}
4293
4294
4295
// ---- VK_KHR_external_fence_win32 extension trampoline/terminators
4296
4297
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4298
VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR(
4299
    VkDevice                                    device,
4300
    const VkImportFenceWin32HandleInfoKHR*      pImportFenceWin32HandleInfo) {
4301
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4302
    if (NULL == disp) {
4303
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4304
                   "vkImportFenceWin32HandleKHR: Invalid device "
4305
                   "[VUID-vkImportFenceWin32HandleKHR-device-parameter]");
4306
        abort(); /* Intentionally fail so user can correct issue. */
4307
    }
4308
    return disp->ImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
4309
}
4310
4311
#endif // VK_USE_PLATFORM_WIN32_KHR
4312
#if defined(VK_USE_PLATFORM_WIN32_KHR)
4313
VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR(
4314
    VkDevice                                    device,
4315
    const VkFenceGetWin32HandleInfoKHR*         pGetWin32HandleInfo,
4316
    HANDLE*                                     pHandle) {
4317
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4318
    if (NULL == disp) {
4319
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4320
                   "vkGetFenceWin32HandleKHR: Invalid device "
4321
                   "[VUID-vkGetFenceWin32HandleKHR-device-parameter]");
4322
        abort(); /* Intentionally fail so user can correct issue. */
4323
    }
4324
    return disp->GetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4325
}
4326
4327
#endif // VK_USE_PLATFORM_WIN32_KHR
4328
4329
// ---- VK_KHR_external_fence_fd extension trampoline/terminators
4330
4331
VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR(
4332
    VkDevice                                    device,
4333
0
    const VkImportFenceFdInfoKHR*               pImportFenceFdInfo) {
4334
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4335
0
    if (NULL == disp) {
4336
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4337
0
                   "vkImportFenceFdKHR: Invalid device "
4338
0
                   "[VUID-vkImportFenceFdKHR-device-parameter]");
4339
0
        abort(); /* Intentionally fail so user can correct issue. */
4340
0
    }
4341
0
    return disp->ImportFenceFdKHR(device, pImportFenceFdInfo);
4342
0
}
4343
4344
VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR(
4345
    VkDevice                                    device,
4346
    const VkFenceGetFdInfoKHR*                  pGetFdInfo,
4347
0
    int*                                        pFd) {
4348
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4349
0
    if (NULL == disp) {
4350
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4351
0
                   "vkGetFenceFdKHR: Invalid device "
4352
0
                   "[VUID-vkGetFenceFdKHR-device-parameter]");
4353
0
        abort(); /* Intentionally fail so user can correct issue. */
4354
0
    }
4355
0
    return disp->GetFenceFdKHR(device, pGetFdInfo, pFd);
4356
0
}
4357
4358
4359
// ---- VK_KHR_performance_query extension trampoline/terminators
4360
4361
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
4362
    VkPhysicalDevice                            physicalDevice,
4363
    uint32_t                                    queueFamilyIndex,
4364
    uint32_t*                                   pCounterCount,
4365
    VkPerformanceCounterKHR*                    pCounters,
4366
0
    VkPerformanceCounterDescriptionKHR*         pCounterDescriptions) {
4367
0
    const VkLayerInstanceDispatchTable *disp;
4368
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4369
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4370
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4371
0
                   "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR: Invalid physicalDevice "
4372
0
                   "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter]");
4373
0
        abort(); /* Intentionally fail so user can correct issue. */
4374
0
    }
4375
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4376
0
    return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
4377
0
}
4378
4379
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
4380
    VkPhysicalDevice                            physicalDevice,
4381
    uint32_t                                    queueFamilyIndex,
4382
    uint32_t*                                   pCounterCount,
4383
    VkPerformanceCounterKHR*                    pCounters,
4384
0
    VkPerformanceCounterDescriptionKHR*         pCounterDescriptions) {
4385
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4386
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4387
0
    if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) {
4388
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4389
0
                   "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
4390
0
        abort(); /* Intentionally fail so user can correct issue. */
4391
0
    }
4392
0
    return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
4393
0
}
4394
4395
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
4396
    VkPhysicalDevice                            physicalDevice,
4397
    const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
4398
0
    uint32_t*                                   pNumPasses) {
4399
0
    const VkLayerInstanceDispatchTable *disp;
4400
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4401
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4402
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4403
0
                   "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR: Invalid physicalDevice "
4404
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter]");
4405
0
        abort(); /* Intentionally fail so user can correct issue. */
4406
0
    }
4407
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4408
0
    disp->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(unwrapped_phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4409
0
}
4410
4411
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
4412
    VkPhysicalDevice                            physicalDevice,
4413
    const VkQueryPoolPerformanceCreateInfoKHR*  pPerformanceQueryCreateInfo,
4414
0
    uint32_t*                                   pNumPasses) {
4415
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4416
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4417
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) {
4418
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4419
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
4420
0
        abort(); /* Intentionally fail so user can correct issue. */
4421
0
    }
4422
0
    icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(phys_dev_term->phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4423
0
}
4424
4425
VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR(
4426
    VkDevice                                    device,
4427
0
    const VkAcquireProfilingLockInfoKHR*        pInfo) {
4428
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4429
0
    if (NULL == disp) {
4430
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4431
0
                   "vkAcquireProfilingLockKHR: Invalid device "
4432
0
                   "[VUID-vkAcquireProfilingLockKHR-device-parameter]");
4433
0
        abort(); /* Intentionally fail so user can correct issue. */
4434
0
    }
4435
0
    return disp->AcquireProfilingLockKHR(device, pInfo);
4436
0
}
4437
4438
VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR(
4439
0
    VkDevice                                    device) {
4440
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4441
0
    if (NULL == disp) {
4442
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4443
0
                   "vkReleaseProfilingLockKHR: Invalid device "
4444
0
                   "[VUID-vkReleaseProfilingLockKHR-device-parameter]");
4445
0
        abort(); /* Intentionally fail so user can correct issue. */
4446
0
    }
4447
0
    disp->ReleaseProfilingLockKHR(device);
4448
0
}
4449
4450
4451
// ---- VK_KHR_get_memory_requirements2 extension trampoline/terminators
4452
4453
VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR(
4454
    VkDevice                                    device,
4455
    const VkImageMemoryRequirementsInfo2*       pInfo,
4456
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
4457
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4458
0
    if (NULL == disp) {
4459
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4460
0
                   "vkGetImageMemoryRequirements2KHR: Invalid device "
4461
0
                   "[VUID-vkGetImageMemoryRequirements2KHR-device-parameter]");
4462
0
        abort(); /* Intentionally fail so user can correct issue. */
4463
0
    }
4464
0
    disp->GetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4465
0
}
4466
4467
VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR(
4468
    VkDevice                                    device,
4469
    const VkBufferMemoryRequirementsInfo2*      pInfo,
4470
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
4471
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4472
0
    if (NULL == disp) {
4473
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4474
0
                   "vkGetBufferMemoryRequirements2KHR: Invalid device "
4475
0
                   "[VUID-vkGetBufferMemoryRequirements2KHR-device-parameter]");
4476
0
        abort(); /* Intentionally fail so user can correct issue. */
4477
0
    }
4478
0
    disp->GetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4479
0
}
4480
4481
VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR(
4482
    VkDevice                                    device,
4483
    const VkImageSparseMemoryRequirementsInfo2* pInfo,
4484
    uint32_t*                                   pSparseMemoryRequirementCount,
4485
0
    VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements) {
4486
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4487
0
    if (NULL == disp) {
4488
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4489
0
                   "vkGetImageSparseMemoryRequirements2KHR: Invalid device "
4490
0
                   "[VUID-vkGetImageSparseMemoryRequirements2KHR-device-parameter]");
4491
0
        abort(); /* Intentionally fail so user can correct issue. */
4492
0
    }
4493
0
    disp->GetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
4494
0
}
4495
4496
4497
// ---- VK_KHR_sampler_ycbcr_conversion extension trampoline/terminators
4498
4499
VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR(
4500
    VkDevice                                    device,
4501
    const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo,
4502
    const VkAllocationCallbacks*                pAllocator,
4503
0
    VkSamplerYcbcrConversion*                   pYcbcrConversion) {
4504
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4505
0
    if (NULL == disp) {
4506
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4507
0
                   "vkCreateSamplerYcbcrConversionKHR: Invalid device "
4508
0
                   "[VUID-vkCreateSamplerYcbcrConversionKHR-device-parameter]");
4509
0
        abort(); /* Intentionally fail so user can correct issue. */
4510
0
    }
4511
0
    return disp->CreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
4512
0
}
4513
4514
VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversionKHR(
4515
    VkDevice                                    device,
4516
    VkSamplerYcbcrConversion                    ycbcrConversion,
4517
0
    const VkAllocationCallbacks*                pAllocator) {
4518
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4519
0
    if (NULL == disp) {
4520
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4521
0
                   "vkDestroySamplerYcbcrConversionKHR: Invalid device "
4522
0
                   "[VUID-vkDestroySamplerYcbcrConversionKHR-device-parameter]");
4523
0
        abort(); /* Intentionally fail so user can correct issue. */
4524
0
    }
4525
0
    disp->DestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
4526
0
}
4527
4528
4529
// ---- VK_KHR_bind_memory2 extension trampoline/terminators
4530
4531
VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHR(
4532
    VkDevice                                    device,
4533
    uint32_t                                    bindInfoCount,
4534
0
    const VkBindBufferMemoryInfo*               pBindInfos) {
4535
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4536
0
    if (NULL == disp) {
4537
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4538
0
                   "vkBindBufferMemory2KHR: Invalid device "
4539
0
                   "[VUID-vkBindBufferMemory2KHR-device-parameter]");
4540
0
        abort(); /* Intentionally fail so user can correct issue. */
4541
0
    }
4542
0
    return disp->BindBufferMemory2KHR(device, bindInfoCount, pBindInfos);
4543
0
}
4544
4545
VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHR(
4546
    VkDevice                                    device,
4547
    uint32_t                                    bindInfoCount,
4548
0
    const VkBindImageMemoryInfo*                pBindInfos) {
4549
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4550
0
    if (NULL == disp) {
4551
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4552
0
                   "vkBindImageMemory2KHR: Invalid device "
4553
0
                   "[VUID-vkBindImageMemory2KHR-device-parameter]");
4554
0
        abort(); /* Intentionally fail so user can correct issue. */
4555
0
    }
4556
0
    return disp->BindImageMemory2KHR(device, bindInfoCount, pBindInfos);
4557
0
}
4558
4559
4560
// ---- VK_KHR_maintenance3 extension trampoline/terminators
4561
4562
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupportKHR(
4563
    VkDevice                                    device,
4564
    const VkDescriptorSetLayoutCreateInfo*      pCreateInfo,
4565
0
    VkDescriptorSetLayoutSupport*               pSupport) {
4566
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4567
0
    if (NULL == disp) {
4568
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4569
0
                   "vkGetDescriptorSetLayoutSupportKHR: Invalid device "
4570
0
                   "[VUID-vkGetDescriptorSetLayoutSupportKHR-device-parameter]");
4571
0
        abort(); /* Intentionally fail so user can correct issue. */
4572
0
    }
4573
0
    disp->GetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
4574
0
}
4575
4576
4577
// ---- VK_KHR_draw_indirect_count extension trampoline/terminators
4578
4579
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR(
4580
    VkCommandBuffer                             commandBuffer,
4581
    VkBuffer                                    buffer,
4582
    VkDeviceSize                                offset,
4583
    VkBuffer                                    countBuffer,
4584
    VkDeviceSize                                countBufferOffset,
4585
    uint32_t                                    maxDrawCount,
4586
0
    uint32_t                                    stride) {
4587
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdDrawIndirectCountKHR: Invalid commandBuffer "
4591
0
                   "[VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter]");
4592
0
        abort(); /* Intentionally fail so user can correct issue. */
4593
0
    }
4594
0
    disp->CmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4595
0
}
4596
4597
VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR(
4598
    VkCommandBuffer                             commandBuffer,
4599
    VkBuffer                                    buffer,
4600
    VkDeviceSize                                offset,
4601
    VkBuffer                                    countBuffer,
4602
    VkDeviceSize                                countBufferOffset,
4603
    uint32_t                                    maxDrawCount,
4604
0
    uint32_t                                    stride) {
4605
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4606
0
    if (NULL == disp) {
4607
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4608
0
                   "vkCmdDrawIndexedIndirectCountKHR: Invalid commandBuffer "
4609
0
                   "[VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter]");
4610
0
        abort(); /* Intentionally fail so user can correct issue. */
4611
0
    }
4612
0
    disp->CmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4613
0
}
4614
4615
4616
// ---- VK_KHR_timeline_semaphore extension trampoline/terminators
4617
4618
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR(
4619
    VkDevice                                    device,
4620
    VkSemaphore                                 semaphore,
4621
0
    uint64_t*                                   pValue) {
4622
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4623
0
    if (NULL == disp) {
4624
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4625
0
                   "vkGetSemaphoreCounterValueKHR: Invalid device "
4626
0
                   "[VUID-vkGetSemaphoreCounterValueKHR-device-parameter]");
4627
0
        abort(); /* Intentionally fail so user can correct issue. */
4628
0
    }
4629
0
    return disp->GetSemaphoreCounterValueKHR(device, semaphore, pValue);
4630
0
}
4631
4632
VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR(
4633
    VkDevice                                    device,
4634
    const VkSemaphoreWaitInfo*                  pWaitInfo,
4635
0
    uint64_t                                    timeout) {
4636
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4637
0
    if (NULL == disp) {
4638
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4639
0
                   "vkWaitSemaphoresKHR: Invalid device "
4640
0
                   "[VUID-vkWaitSemaphoresKHR-device-parameter]");
4641
0
        abort(); /* Intentionally fail so user can correct issue. */
4642
0
    }
4643
0
    return disp->WaitSemaphoresKHR(device, pWaitInfo, timeout);
4644
0
}
4645
4646
VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR(
4647
    VkDevice                                    device,
4648
0
    const VkSemaphoreSignalInfo*                pSignalInfo) {
4649
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4650
0
    if (NULL == disp) {
4651
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4652
0
                   "vkSignalSemaphoreKHR: Invalid device "
4653
0
                   "[VUID-vkSignalSemaphoreKHR-device-parameter]");
4654
0
        abort(); /* Intentionally fail so user can correct issue. */
4655
0
    }
4656
0
    return disp->SignalSemaphoreKHR(device, pSignalInfo);
4657
0
}
4658
4659
4660
// ---- VK_KHR_fragment_shading_rate extension trampoline/terminators
4661
4662
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR(
4663
    VkPhysicalDevice                            physicalDevice,
4664
    uint32_t*                                   pFragmentShadingRateCount,
4665
0
    VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates) {
4666
0
    const VkLayerInstanceDispatchTable *disp;
4667
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4668
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4669
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4670
0
                   "vkGetPhysicalDeviceFragmentShadingRatesKHR: Invalid physicalDevice "
4671
0
                   "[VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter]");
4672
0
        abort(); /* Intentionally fail so user can correct issue. */
4673
0
    }
4674
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4675
0
    return disp->GetPhysicalDeviceFragmentShadingRatesKHR(unwrapped_phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4676
0
}
4677
4678
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceFragmentShadingRatesKHR(
4679
    VkPhysicalDevice                            physicalDevice,
4680
    uint32_t*                                   pFragmentShadingRateCount,
4681
0
    VkPhysicalDeviceFragmentShadingRateKHR*     pFragmentShadingRates) {
4682
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4683
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4684
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR) {
4685
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4686
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceFragmentShadingRatesKHR");
4687
0
        abort(); /* Intentionally fail so user can correct issue. */
4688
0
    }
4689
0
    return icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR(phys_dev_term->phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4690
0
}
4691
4692
VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateKHR(
4693
    VkCommandBuffer                             commandBuffer,
4694
    const VkExtent2D*                           pFragmentSize,
4695
0
    const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]) {
4696
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4697
0
    if (NULL == disp) {
4698
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4699
0
                   "vkCmdSetFragmentShadingRateKHR: Invalid commandBuffer "
4700
0
                   "[VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter]");
4701
0
        abort(); /* Intentionally fail so user can correct issue. */
4702
0
    }
4703
0
    disp->CmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
4704
0
}
4705
4706
4707
// ---- VK_KHR_dynamic_rendering_local_read extension trampoline/terminators
4708
4709
VKAPI_ATTR void VKAPI_CALL CmdSetRenderingAttachmentLocationsKHR(
4710
    VkCommandBuffer                             commandBuffer,
4711
0
    const VkRenderingAttachmentLocationInfo*    pLocationInfo) {
4712
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4713
0
    if (NULL == disp) {
4714
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4715
0
                   "vkCmdSetRenderingAttachmentLocationsKHR: Invalid commandBuffer "
4716
0
                   "[VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-parameter]");
4717
0
        abort(); /* Intentionally fail so user can correct issue. */
4718
0
    }
4719
0
    disp->CmdSetRenderingAttachmentLocationsKHR(commandBuffer, pLocationInfo);
4720
0
}
4721
4722
VKAPI_ATTR void VKAPI_CALL CmdSetRenderingInputAttachmentIndicesKHR(
4723
    VkCommandBuffer                             commandBuffer,
4724
0
    const VkRenderingInputAttachmentIndexInfo*  pInputAttachmentIndexInfo) {
4725
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4726
0
    if (NULL == disp) {
4727
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4728
0
                   "vkCmdSetRenderingInputAttachmentIndicesKHR: Invalid commandBuffer "
4729
0
                   "[VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-parameter]");
4730
0
        abort(); /* Intentionally fail so user can correct issue. */
4731
0
    }
4732
0
    disp->CmdSetRenderingInputAttachmentIndicesKHR(commandBuffer, pInputAttachmentIndexInfo);
4733
0
}
4734
4735
4736
// ---- VK_KHR_present_wait extension trampoline/terminators
4737
4738
VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR(
4739
    VkDevice                                    device,
4740
    VkSwapchainKHR                              swapchain,
4741
    uint64_t                                    presentId,
4742
0
    uint64_t                                    timeout) {
4743
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4744
0
    if (NULL == disp) {
4745
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4746
0
                   "vkWaitForPresentKHR: Invalid device "
4747
0
                   "[VUID-vkWaitForPresentKHR-device-parameter]");
4748
0
        abort(); /* Intentionally fail so user can correct issue. */
4749
0
    }
4750
0
    return disp->WaitForPresentKHR(device, swapchain, presentId, timeout);
4751
0
}
4752
4753
4754
// ---- VK_KHR_buffer_device_address extension trampoline/terminators
4755
4756
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR(
4757
    VkDevice                                    device,
4758
0
    const VkBufferDeviceAddressInfo*            pInfo) {
4759
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4760
0
    if (NULL == disp) {
4761
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4762
0
                   "vkGetBufferDeviceAddressKHR: Invalid device "
4763
0
                   "[VUID-vkGetBufferDeviceAddressKHR-device-parameter]");
4764
0
        abort(); /* Intentionally fail so user can correct issue. */
4765
0
    }
4766
0
    return disp->GetBufferDeviceAddressKHR(device, pInfo);
4767
0
}
4768
4769
VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR(
4770
    VkDevice                                    device,
4771
0
    const VkBufferDeviceAddressInfo*            pInfo) {
4772
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4773
0
    if (NULL == disp) {
4774
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4775
0
                   "vkGetBufferOpaqueCaptureAddressKHR: Invalid device "
4776
0
                   "[VUID-vkGetBufferOpaqueCaptureAddressKHR-device-parameter]");
4777
0
        abort(); /* Intentionally fail so user can correct issue. */
4778
0
    }
4779
0
    return disp->GetBufferOpaqueCaptureAddressKHR(device, pInfo);
4780
0
}
4781
4782
VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR(
4783
    VkDevice                                    device,
4784
0
    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
4785
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4786
0
    if (NULL == disp) {
4787
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4788
0
                   "vkGetDeviceMemoryOpaqueCaptureAddressKHR: Invalid device "
4789
0
                   "[VUID-vkGetDeviceMemoryOpaqueCaptureAddressKHR-device-parameter]");
4790
0
        abort(); /* Intentionally fail so user can correct issue. */
4791
0
    }
4792
0
    return disp->GetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo);
4793
0
}
4794
4795
4796
// ---- VK_KHR_deferred_host_operations extension trampoline/terminators
4797
4798
VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR(
4799
    VkDevice                                    device,
4800
    const VkAllocationCallbacks*                pAllocator,
4801
0
    VkDeferredOperationKHR*                     pDeferredOperation) {
4802
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4803
0
    if (NULL == disp) {
4804
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4805
0
                   "vkCreateDeferredOperationKHR: Invalid device "
4806
0
                   "[VUID-vkCreateDeferredOperationKHR-device-parameter]");
4807
0
        abort(); /* Intentionally fail so user can correct issue. */
4808
0
    }
4809
0
    return disp->CreateDeferredOperationKHR(device, pAllocator, pDeferredOperation);
4810
0
}
4811
4812
VKAPI_ATTR void VKAPI_CALL DestroyDeferredOperationKHR(
4813
    VkDevice                                    device,
4814
    VkDeferredOperationKHR                      operation,
4815
0
    const VkAllocationCallbacks*                pAllocator) {
4816
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4817
0
    if (NULL == disp) {
4818
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4819
0
                   "vkDestroyDeferredOperationKHR: Invalid device "
4820
0
                   "[VUID-vkDestroyDeferredOperationKHR-device-parameter]");
4821
0
        abort(); /* Intentionally fail so user can correct issue. */
4822
0
    }
4823
0
    disp->DestroyDeferredOperationKHR(device, operation, pAllocator);
4824
0
}
4825
4826
VKAPI_ATTR uint32_t VKAPI_CALL GetDeferredOperationMaxConcurrencyKHR(
4827
    VkDevice                                    device,
4828
0
    VkDeferredOperationKHR                      operation) {
4829
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4830
0
    if (NULL == disp) {
4831
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4832
0
                   "vkGetDeferredOperationMaxConcurrencyKHR: Invalid device "
4833
0
                   "[VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter]");
4834
0
        abort(); /* Intentionally fail so user can correct issue. */
4835
0
    }
4836
0
    return disp->GetDeferredOperationMaxConcurrencyKHR(device, operation);
4837
0
}
4838
4839
VKAPI_ATTR VkResult VKAPI_CALL GetDeferredOperationResultKHR(
4840
    VkDevice                                    device,
4841
0
    VkDeferredOperationKHR                      operation) {
4842
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4843
0
    if (NULL == disp) {
4844
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4845
0
                   "vkGetDeferredOperationResultKHR: Invalid device "
4846
0
                   "[VUID-vkGetDeferredOperationResultKHR-device-parameter]");
4847
0
        abort(); /* Intentionally fail so user can correct issue. */
4848
0
    }
4849
0
    return disp->GetDeferredOperationResultKHR(device, operation);
4850
0
}
4851
4852
VKAPI_ATTR VkResult VKAPI_CALL DeferredOperationJoinKHR(
4853
    VkDevice                                    device,
4854
0
    VkDeferredOperationKHR                      operation) {
4855
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4856
0
    if (NULL == disp) {
4857
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4858
0
                   "vkDeferredOperationJoinKHR: Invalid device "
4859
0
                   "[VUID-vkDeferredOperationJoinKHR-device-parameter]");
4860
0
        abort(); /* Intentionally fail so user can correct issue. */
4861
0
    }
4862
0
    return disp->DeferredOperationJoinKHR(device, operation);
4863
0
}
4864
4865
4866
// ---- VK_KHR_pipeline_executable_properties extension trampoline/terminators
4867
4868
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR(
4869
    VkDevice                                    device,
4870
    const VkPipelineInfoKHR*                    pPipelineInfo,
4871
    uint32_t*                                   pExecutableCount,
4872
0
    VkPipelineExecutablePropertiesKHR*          pProperties) {
4873
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4874
0
    if (NULL == disp) {
4875
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4876
0
                   "vkGetPipelineExecutablePropertiesKHR: Invalid device "
4877
0
                   "[VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter]");
4878
0
        abort(); /* Intentionally fail so user can correct issue. */
4879
0
    }
4880
0
    return disp->GetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties);
4881
0
}
4882
4883
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR(
4884
    VkDevice                                    device,
4885
    const VkPipelineExecutableInfoKHR*          pExecutableInfo,
4886
    uint32_t*                                   pStatisticCount,
4887
0
    VkPipelineExecutableStatisticKHR*           pStatistics) {
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
                   "vkGetPipelineExecutableStatisticsKHR: Invalid device "
4892
0
                   "[VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter]");
4893
0
        abort(); /* Intentionally fail so user can correct issue. */
4894
0
    }
4895
0
    return disp->GetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics);
4896
0
}
4897
4898
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR(
4899
    VkDevice                                    device,
4900
    const VkPipelineExecutableInfoKHR*          pExecutableInfo,
4901
    uint32_t*                                   pInternalRepresentationCount,
4902
0
    VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
4903
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4904
0
    if (NULL == disp) {
4905
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4906
0
                   "vkGetPipelineExecutableInternalRepresentationsKHR: Invalid device "
4907
0
                   "[VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter]");
4908
0
        abort(); /* Intentionally fail so user can correct issue. */
4909
0
    }
4910
0
    return disp->GetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations);
4911
0
}
4912
4913
4914
// ---- VK_KHR_map_memory2 extension trampoline/terminators
4915
4916
VKAPI_ATTR VkResult VKAPI_CALL MapMemory2KHR(
4917
    VkDevice                                    device,
4918
    const VkMemoryMapInfo*                      pMemoryMapInfo,
4919
0
    void**                                      ppData) {
4920
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4921
0
    if (NULL == disp) {
4922
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4923
0
                   "vkMapMemory2KHR: Invalid device "
4924
0
                   "[VUID-vkMapMemory2KHR-device-parameter]");
4925
0
        abort(); /* Intentionally fail so user can correct issue. */
4926
0
    }
4927
0
    return disp->MapMemory2KHR(device, pMemoryMapInfo, ppData);
4928
0
}
4929
4930
VKAPI_ATTR VkResult VKAPI_CALL UnmapMemory2KHR(
4931
    VkDevice                                    device,
4932
0
    const VkMemoryUnmapInfo*                    pMemoryUnmapInfo) {
4933
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4934
0
    if (NULL == disp) {
4935
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4936
0
                   "vkUnmapMemory2KHR: Invalid device "
4937
0
                   "[VUID-vkUnmapMemory2KHR-device-parameter]");
4938
0
        abort(); /* Intentionally fail so user can correct issue. */
4939
0
    }
4940
0
    return disp->UnmapMemory2KHR(device, pMemoryUnmapInfo);
4941
0
}
4942
4943
4944
// ---- VK_KHR_video_encode_queue extension trampoline/terminators
4945
4946
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
4947
    VkPhysicalDevice                            physicalDevice,
4948
    const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
4949
0
    VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties) {
4950
0
    const VkLayerInstanceDispatchTable *disp;
4951
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4952
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4953
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4954
0
                   "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR: Invalid physicalDevice "
4955
0
                   "[VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameter]");
4956
0
        abort(); /* Intentionally fail so user can correct issue. */
4957
0
    }
4958
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
4959
0
    return disp->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(unwrapped_phys_dev, pQualityLevelInfo, pQualityLevelProperties);
4960
0
}
4961
4962
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
4963
    VkPhysicalDevice                            physicalDevice,
4964
    const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
4965
0
    VkVideoEncodeQualityLevelPropertiesKHR*     pQualityLevelProperties) {
4966
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4967
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4968
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) {
4969
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4970
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
4971
0
        abort(); /* Intentionally fail so user can correct issue. */
4972
0
    }
4973
0
    return icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(phys_dev_term->phys_dev, pQualityLevelInfo, pQualityLevelProperties);
4974
0
}
4975
4976
VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR(
4977
    VkDevice                                    device,
4978
    const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
4979
    VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
4980
    size_t*                                     pDataSize,
4981
0
    void*                                       pData) {
4982
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4983
0
    if (NULL == disp) {
4984
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4985
0
                   "vkGetEncodedVideoSessionParametersKHR: Invalid device "
4986
0
                   "[VUID-vkGetEncodedVideoSessionParametersKHR-device-parameter]");
4987
0
        abort(); /* Intentionally fail so user can correct issue. */
4988
0
    }
4989
0
    return disp->GetEncodedVideoSessionParametersKHR(device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData);
4990
0
}
4991
4992
VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR(
4993
    VkCommandBuffer                             commandBuffer,
4994
0
    const VkVideoEncodeInfoKHR*                 pEncodeInfo) {
4995
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4996
0
    if (NULL == disp) {
4997
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4998
0
                   "vkCmdEncodeVideoKHR: Invalid commandBuffer "
4999
0
                   "[VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter]");
5000
0
        abort(); /* Intentionally fail so user can correct issue. */
5001
0
    }
5002
0
    disp->CmdEncodeVideoKHR(commandBuffer, pEncodeInfo);
5003
0
}
5004
5005
5006
// ---- VK_KHR_synchronization2 extension trampoline/terminators
5007
5008
VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR(
5009
    VkCommandBuffer                             commandBuffer,
5010
    VkEvent                                     event,
5011
0
    const VkDependencyInfo*                     pDependencyInfo) {
5012
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5013
0
    if (NULL == disp) {
5014
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5015
0
                   "vkCmdSetEvent2KHR: Invalid commandBuffer "
5016
0
                   "[VUID-vkCmdSetEvent2KHR-commandBuffer-parameter]");
5017
0
        abort(); /* Intentionally fail so user can correct issue. */
5018
0
    }
5019
0
    disp->CmdSetEvent2KHR(commandBuffer, event, pDependencyInfo);
5020
0
}
5021
5022
VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR(
5023
    VkCommandBuffer                             commandBuffer,
5024
    VkEvent                                     event,
5025
0
    VkPipelineStageFlags2                       stageMask) {
5026
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5027
0
    if (NULL == disp) {
5028
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5029
0
                   "vkCmdResetEvent2KHR: Invalid commandBuffer "
5030
0
                   "[VUID-vkCmdResetEvent2KHR-commandBuffer-parameter]");
5031
0
        abort(); /* Intentionally fail so user can correct issue. */
5032
0
    }
5033
0
    disp->CmdResetEvent2KHR(commandBuffer, event, stageMask);
5034
0
}
5035
5036
VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR(
5037
    VkCommandBuffer                             commandBuffer,
5038
    uint32_t                                    eventCount,
5039
    const VkEvent*                              pEvents,
5040
0
    const VkDependencyInfo*                     pDependencyInfos) {
5041
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5042
0
    if (NULL == disp) {
5043
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5044
0
                   "vkCmdWaitEvents2KHR: Invalid commandBuffer "
5045
0
                   "[VUID-vkCmdWaitEvents2KHR-commandBuffer-parameter]");
5046
0
        abort(); /* Intentionally fail so user can correct issue. */
5047
0
    }
5048
0
    disp->CmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos);
5049
0
}
5050
5051
VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2KHR(
5052
    VkCommandBuffer                             commandBuffer,
5053
0
    const VkDependencyInfo*                     pDependencyInfo) {
5054
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5055
0
    if (NULL == disp) {
5056
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5057
0
                   "vkCmdPipelineBarrier2KHR: Invalid commandBuffer "
5058
0
                   "[VUID-vkCmdPipelineBarrier2KHR-commandBuffer-parameter]");
5059
0
        abort(); /* Intentionally fail so user can correct issue. */
5060
0
    }
5061
0
    disp->CmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo);
5062
0
}
5063
5064
VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR(
5065
    VkCommandBuffer                             commandBuffer,
5066
    VkPipelineStageFlags2                       stage,
5067
    VkQueryPool                                 queryPool,
5068
0
    uint32_t                                    query) {
5069
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5070
0
    if (NULL == disp) {
5071
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5072
0
                   "vkCmdWriteTimestamp2KHR: Invalid commandBuffer "
5073
0
                   "[VUID-vkCmdWriteTimestamp2KHR-commandBuffer-parameter]");
5074
0
        abort(); /* Intentionally fail so user can correct issue. */
5075
0
    }
5076
0
    disp->CmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query);
5077
0
}
5078
5079
VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR(
5080
    VkQueue                                     queue,
5081
    uint32_t                                    submitCount,
5082
    const VkSubmitInfo2*                        pSubmits,
5083
0
    VkFence                                     fence) {
5084
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
5085
0
    if (NULL == disp) {
5086
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5087
0
                   "vkQueueSubmit2KHR: Invalid queue "
5088
0
                   "[VUID-vkQueueSubmit2KHR-queue-parameter]");
5089
0
        abort(); /* Intentionally fail so user can correct issue. */
5090
0
    }
5091
0
    return disp->QueueSubmit2KHR(queue, submitCount, pSubmits, fence);
5092
0
}
5093
5094
5095
// ---- VK_KHR_copy_commands2 extension trampoline/terminators
5096
5097
VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR(
5098
    VkCommandBuffer                             commandBuffer,
5099
0
    const VkCopyBufferInfo2*                    pCopyBufferInfo) {
5100
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5101
0
    if (NULL == disp) {
5102
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5103
0
                   "vkCmdCopyBuffer2KHR: Invalid commandBuffer "
5104
0
                   "[VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter]");
5105
0
        abort(); /* Intentionally fail so user can correct issue. */
5106
0
    }
5107
0
    disp->CmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo);
5108
0
}
5109
5110
VKAPI_ATTR void VKAPI_CALL CmdCopyImage2KHR(
5111
    VkCommandBuffer                             commandBuffer,
5112
0
    const VkCopyImageInfo2*                     pCopyImageInfo) {
5113
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5114
0
    if (NULL == disp) {
5115
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5116
0
                   "vkCmdCopyImage2KHR: Invalid commandBuffer "
5117
0
                   "[VUID-vkCmdCopyImage2KHR-commandBuffer-parameter]");
5118
0
        abort(); /* Intentionally fail so user can correct issue. */
5119
0
    }
5120
0
    disp->CmdCopyImage2KHR(commandBuffer, pCopyImageInfo);
5121
0
}
5122
5123
VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2KHR(
5124
    VkCommandBuffer                             commandBuffer,
5125
0
    const VkCopyBufferToImageInfo2*             pCopyBufferToImageInfo) {
5126
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5127
0
    if (NULL == disp) {
5128
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5129
0
                   "vkCmdCopyBufferToImage2KHR: Invalid commandBuffer "
5130
0
                   "[VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter]");
5131
0
        abort(); /* Intentionally fail so user can correct issue. */
5132
0
    }
5133
0
    disp->CmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo);
5134
0
}
5135
5136
VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2KHR(
5137
    VkCommandBuffer                             commandBuffer,
5138
0
    const VkCopyImageToBufferInfo2*             pCopyImageToBufferInfo) {
5139
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5140
0
    if (NULL == disp) {
5141
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5142
0
                   "vkCmdCopyImageToBuffer2KHR: Invalid commandBuffer "
5143
0
                   "[VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter]");
5144
0
        abort(); /* Intentionally fail so user can correct issue. */
5145
0
    }
5146
0
    disp->CmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo);
5147
0
}
5148
5149
VKAPI_ATTR void VKAPI_CALL CmdBlitImage2KHR(
5150
    VkCommandBuffer                             commandBuffer,
5151
0
    const VkBlitImageInfo2*                     pBlitImageInfo) {
5152
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5153
0
    if (NULL == disp) {
5154
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5155
0
                   "vkCmdBlitImage2KHR: Invalid commandBuffer "
5156
0
                   "[VUID-vkCmdBlitImage2KHR-commandBuffer-parameter]");
5157
0
        abort(); /* Intentionally fail so user can correct issue. */
5158
0
    }
5159
0
    disp->CmdBlitImage2KHR(commandBuffer, pBlitImageInfo);
5160
0
}
5161
5162
VKAPI_ATTR void VKAPI_CALL CmdResolveImage2KHR(
5163
    VkCommandBuffer                             commandBuffer,
5164
0
    const VkResolveImageInfo2*                  pResolveImageInfo) {
5165
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5166
0
    if (NULL == disp) {
5167
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5168
0
                   "vkCmdResolveImage2KHR: Invalid commandBuffer "
5169
0
                   "[VUID-vkCmdResolveImage2KHR-commandBuffer-parameter]");
5170
0
        abort(); /* Intentionally fail so user can correct issue. */
5171
0
    }
5172
0
    disp->CmdResolveImage2KHR(commandBuffer, pResolveImageInfo);
5173
0
}
5174
5175
5176
// ---- VK_KHR_ray_tracing_maintenance1 extension trampoline/terminators
5177
5178
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirect2KHR(
5179
    VkCommandBuffer                             commandBuffer,
5180
0
    VkDeviceAddress                             indirectDeviceAddress) {
5181
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5182
0
    if (NULL == disp) {
5183
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5184
0
                   "vkCmdTraceRaysIndirect2KHR: Invalid commandBuffer "
5185
0
                   "[VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter]");
5186
0
        abort(); /* Intentionally fail so user can correct issue. */
5187
0
    }
5188
0
    disp->CmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress);
5189
0
}
5190
5191
5192
// ---- VK_KHR_maintenance4 extension trampoline/terminators
5193
5194
VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR(
5195
    VkDevice                                    device,
5196
    const VkDeviceBufferMemoryRequirements*     pInfo,
5197
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
5198
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5199
0
    if (NULL == disp) {
5200
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5201
0
                   "vkGetDeviceBufferMemoryRequirementsKHR: Invalid device "
5202
0
                   "[VUID-vkGetDeviceBufferMemoryRequirementsKHR-device-parameter]");
5203
0
        abort(); /* Intentionally fail so user can correct issue. */
5204
0
    }
5205
0
    disp->GetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
5206
0
}
5207
5208
VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR(
5209
    VkDevice                                    device,
5210
    const VkDeviceImageMemoryRequirements*      pInfo,
5211
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
5212
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5213
0
    if (NULL == disp) {
5214
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5215
0
                   "vkGetDeviceImageMemoryRequirementsKHR: Invalid device "
5216
0
                   "[VUID-vkGetDeviceImageMemoryRequirementsKHR-device-parameter]");
5217
0
        abort(); /* Intentionally fail so user can correct issue. */
5218
0
    }
5219
0
    disp->GetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
5220
0
}
5221
5222
VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR(
5223
    VkDevice                                    device,
5224
    const VkDeviceImageMemoryRequirements*      pInfo,
5225
    uint32_t*                                   pSparseMemoryRequirementCount,
5226
0
    VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements) {
5227
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5228
0
    if (NULL == disp) {
5229
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5230
0
                   "vkGetDeviceImageSparseMemoryRequirementsKHR: Invalid device "
5231
0
                   "[VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-device-parameter]");
5232
0
        abort(); /* Intentionally fail so user can correct issue. */
5233
0
    }
5234
0
    disp->GetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
5235
0
}
5236
5237
5238
// ---- VK_KHR_maintenance5 extension trampoline/terminators
5239
5240
VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR(
5241
    VkCommandBuffer                             commandBuffer,
5242
    VkBuffer                                    buffer,
5243
    VkDeviceSize                                offset,
5244
    VkDeviceSize                                size,
5245
0
    VkIndexType                                 indexType) {
5246
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5247
0
    if (NULL == disp) {
5248
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5249
0
                   "vkCmdBindIndexBuffer2KHR: Invalid commandBuffer "
5250
0
                   "[VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter]");
5251
0
        abort(); /* Intentionally fail so user can correct issue. */
5252
0
    }
5253
0
    disp->CmdBindIndexBuffer2KHR(commandBuffer, buffer, offset, size, indexType);
5254
0
}
5255
5256
VKAPI_ATTR void VKAPI_CALL GetRenderingAreaGranularityKHR(
5257
    VkDevice                                    device,
5258
    const VkRenderingAreaInfo*                  pRenderingAreaInfo,
5259
0
    VkExtent2D*                                 pGranularity) {
5260
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5261
0
    if (NULL == disp) {
5262
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5263
0
                   "vkGetRenderingAreaGranularityKHR: Invalid device "
5264
0
                   "[VUID-vkGetRenderingAreaGranularityKHR-device-parameter]");
5265
0
        abort(); /* Intentionally fail so user can correct issue. */
5266
0
    }
5267
0
    disp->GetRenderingAreaGranularityKHR(device, pRenderingAreaInfo, pGranularity);
5268
0
}
5269
5270
VKAPI_ATTR void VKAPI_CALL GetDeviceImageSubresourceLayoutKHR(
5271
    VkDevice                                    device,
5272
    const VkDeviceImageSubresourceInfo*         pInfo,
5273
0
    VkSubresourceLayout2*                       pLayout) {
5274
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5275
0
    if (NULL == disp) {
5276
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5277
0
                   "vkGetDeviceImageSubresourceLayoutKHR: Invalid device "
5278
0
                   "[VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter]");
5279
0
        abort(); /* Intentionally fail so user can correct issue. */
5280
0
    }
5281
0
    disp->GetDeviceImageSubresourceLayoutKHR(device, pInfo, pLayout);
5282
0
}
5283
5284
VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR(
5285
    VkDevice                                    device,
5286
    VkImage                                     image,
5287
    const VkImageSubresource2*                  pSubresource,
5288
0
    VkSubresourceLayout2*                       pLayout) {
5289
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5290
0
    if (NULL == disp) {
5291
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5292
0
                   "vkGetImageSubresourceLayout2KHR: Invalid device "
5293
0
                   "[VUID-vkGetImageSubresourceLayout2KHR-device-parameter]");
5294
0
        abort(); /* Intentionally fail so user can correct issue. */
5295
0
    }
5296
0
    disp->GetImageSubresourceLayout2KHR(device, image, pSubresource, pLayout);
5297
0
}
5298
5299
5300
// ---- VK_KHR_present_wait2 extension trampoline/terminators
5301
5302
VKAPI_ATTR VkResult VKAPI_CALL WaitForPresent2KHR(
5303
    VkDevice                                    device,
5304
    VkSwapchainKHR                              swapchain,
5305
0
    const VkPresentWait2InfoKHR*                pPresentWait2Info) {
5306
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5307
0
    if (NULL == disp) {
5308
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5309
0
                   "vkWaitForPresent2KHR: Invalid device "
5310
0
                   "[VUID-vkWaitForPresent2KHR-device-parameter]");
5311
0
        abort(); /* Intentionally fail so user can correct issue. */
5312
0
    }
5313
0
    return disp->WaitForPresent2KHR(device, swapchain, pPresentWait2Info);
5314
0
}
5315
5316
5317
// ---- VK_KHR_pipeline_binary extension trampoline/terminators
5318
5319
VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineBinariesKHR(
5320
    VkDevice                                    device,
5321
    const VkPipelineBinaryCreateInfoKHR*        pCreateInfo,
5322
    const VkAllocationCallbacks*                pAllocator,
5323
0
    VkPipelineBinaryHandlesInfoKHR*             pBinaries) {
5324
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5325
0
    if (NULL == disp) {
5326
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5327
0
                   "vkCreatePipelineBinariesKHR: Invalid device "
5328
0
                   "[VUID-vkCreatePipelineBinariesKHR-device-parameter]");
5329
0
        abort(); /* Intentionally fail so user can correct issue. */
5330
0
    }
5331
0
    return disp->CreatePipelineBinariesKHR(device, pCreateInfo, pAllocator, pBinaries);
5332
0
}
5333
5334
VKAPI_ATTR void VKAPI_CALL DestroyPipelineBinaryKHR(
5335
    VkDevice                                    device,
5336
    VkPipelineBinaryKHR                         pipelineBinary,
5337
0
    const VkAllocationCallbacks*                pAllocator) {
5338
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5339
0
    if (NULL == disp) {
5340
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5341
0
                   "vkDestroyPipelineBinaryKHR: Invalid device "
5342
0
                   "[VUID-vkDestroyPipelineBinaryKHR-device-parameter]");
5343
0
        abort(); /* Intentionally fail so user can correct issue. */
5344
0
    }
5345
0
    disp->DestroyPipelineBinaryKHR(device, pipelineBinary, pAllocator);
5346
0
}
5347
5348
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineKeyKHR(
5349
    VkDevice                                    device,
5350
    const VkPipelineCreateInfoKHR*              pPipelineCreateInfo,
5351
0
    VkPipelineBinaryKeyKHR*                     pPipelineKey) {
5352
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5353
0
    if (NULL == disp) {
5354
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5355
0
                   "vkGetPipelineKeyKHR: Invalid device "
5356
0
                   "[VUID-vkGetPipelineKeyKHR-device-parameter]");
5357
0
        abort(); /* Intentionally fail so user can correct issue. */
5358
0
    }
5359
0
    return disp->GetPipelineKeyKHR(device, pPipelineCreateInfo, pPipelineKey);
5360
0
}
5361
5362
VKAPI_ATTR VkResult VKAPI_CALL GetPipelineBinaryDataKHR(
5363
    VkDevice                                    device,
5364
    const VkPipelineBinaryDataInfoKHR*          pInfo,
5365
    VkPipelineBinaryKeyKHR*                     pPipelineBinaryKey,
5366
    size_t*                                     pPipelineBinaryDataSize,
5367
0
    void*                                       pPipelineBinaryData) {
5368
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5369
0
    if (NULL == disp) {
5370
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5371
0
                   "vkGetPipelineBinaryDataKHR: Invalid device "
5372
0
                   "[VUID-vkGetPipelineBinaryDataKHR-device-parameter]");
5373
0
        abort(); /* Intentionally fail so user can correct issue. */
5374
0
    }
5375
0
    return disp->GetPipelineBinaryDataKHR(device, pInfo, pPipelineBinaryKey, pPipelineBinaryDataSize, pPipelineBinaryData);
5376
0
}
5377
5378
VKAPI_ATTR VkResult VKAPI_CALL ReleaseCapturedPipelineDataKHR(
5379
    VkDevice                                    device,
5380
    const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
5381
0
    const VkAllocationCallbacks*                pAllocator) {
5382
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5383
0
    if (NULL == disp) {
5384
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5385
0
                   "vkReleaseCapturedPipelineDataKHR: Invalid device "
5386
0
                   "[VUID-vkReleaseCapturedPipelineDataKHR-device-parameter]");
5387
0
        abort(); /* Intentionally fail so user can correct issue. */
5388
0
    }
5389
0
    return disp->ReleaseCapturedPipelineDataKHR(device, pInfo, pAllocator);
5390
0
}
5391
5392
5393
// ---- VK_KHR_swapchain_maintenance1 extension trampoline/terminators
5394
5395
VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesKHR(
5396
    VkDevice                                    device,
5397
0
    const VkReleaseSwapchainImagesInfoKHR*      pReleaseInfo) {
5398
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5399
0
    if (NULL == disp) {
5400
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5401
0
                   "vkReleaseSwapchainImagesKHR: Invalid device "
5402
0
                   "[VUID-vkReleaseSwapchainImagesKHR-device-parameter]");
5403
0
        abort(); /* Intentionally fail so user can correct issue. */
5404
0
    }
5405
0
    return disp->ReleaseSwapchainImagesKHR(device, pReleaseInfo);
5406
0
}
5407
5408
5409
// ---- VK_KHR_cooperative_matrix extension trampoline/terminators
5410
5411
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
5412
    VkPhysicalDevice                            physicalDevice,
5413
    uint32_t*                                   pPropertyCount,
5414
0
    VkCooperativeMatrixPropertiesKHR*           pProperties) {
5415
0
    const VkLayerInstanceDispatchTable *disp;
5416
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5417
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5418
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5419
0
                   "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR: Invalid physicalDevice "
5420
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter]");
5421
0
        abort(); /* Intentionally fail so user can correct issue. */
5422
0
    }
5423
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
5424
0
    return disp->GetPhysicalDeviceCooperativeMatrixPropertiesKHR(unwrapped_phys_dev, pPropertyCount, pProperties);
5425
0
}
5426
5427
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
5428
    VkPhysicalDevice                            physicalDevice,
5429
    uint32_t*                                   pPropertyCount,
5430
0
    VkCooperativeMatrixPropertiesKHR*           pProperties) {
5431
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5432
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5433
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR) {
5434
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5435
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesKHR");
5436
0
        abort(); /* Intentionally fail so user can correct issue. */
5437
0
    }
5438
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR(phys_dev_term->phys_dev, pPropertyCount, pProperties);
5439
0
}
5440
5441
5442
// ---- VK_KHR_line_rasterization extension trampoline/terminators
5443
5444
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleKHR(
5445
    VkCommandBuffer                             commandBuffer,
5446
    uint32_t                                    lineStippleFactor,
5447
0
    uint16_t                                    lineStipplePattern) {
5448
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5449
0
    if (NULL == disp) {
5450
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5451
0
                   "vkCmdSetLineStippleKHR: Invalid commandBuffer "
5452
0
                   "[VUID-vkCmdSetLineStippleKHR-commandBuffer-parameter]");
5453
0
        abort(); /* Intentionally fail so user can correct issue. */
5454
0
    }
5455
0
    disp->CmdSetLineStippleKHR(commandBuffer, lineStippleFactor, lineStipplePattern);
5456
0
}
5457
5458
5459
// ---- VK_KHR_calibrated_timestamps extension trampoline/terminators
5460
5461
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsKHR(
5462
    VkPhysicalDevice                            physicalDevice,
5463
    uint32_t*                                   pTimeDomainCount,
5464
0
    VkTimeDomainKHR*                            pTimeDomains) {
5465
0
    const VkLayerInstanceDispatchTable *disp;
5466
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5467
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5468
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5469
0
                   "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR: Invalid physicalDevice "
5470
0
                   "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter]");
5471
0
        abort(); /* Intentionally fail so user can correct issue. */
5472
0
    }
5473
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
5474
0
    return disp->GetPhysicalDeviceCalibrateableTimeDomainsKHR(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
5475
0
}
5476
5477
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR(
5478
    VkPhysicalDevice                            physicalDevice,
5479
    uint32_t*                                   pTimeDomainCount,
5480
0
    VkTimeDomainKHR*                            pTimeDomains) {
5481
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5482
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5483
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR) {
5484
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5485
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsKHR");
5486
0
        abort(); /* Intentionally fail so user can correct issue. */
5487
0
    }
5488
0
    return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
5489
0
}
5490
5491
VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsKHR(
5492
    VkDevice                                    device,
5493
    uint32_t                                    timestampCount,
5494
    const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
5495
    uint64_t*                                   pTimestamps,
5496
0
    uint64_t*                                   pMaxDeviation) {
5497
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5498
0
    if (NULL == disp) {
5499
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5500
0
                   "vkGetCalibratedTimestampsKHR: Invalid device "
5501
0
                   "[VUID-vkGetCalibratedTimestampsKHR-device-parameter]");
5502
0
        abort(); /* Intentionally fail so user can correct issue. */
5503
0
    }
5504
0
    return disp->GetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
5505
0
}
5506
5507
5508
// ---- VK_KHR_maintenance6 extension trampoline/terminators
5509
5510
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets2KHR(
5511
    VkCommandBuffer                             commandBuffer,
5512
0
    const VkBindDescriptorSetsInfo*             pBindDescriptorSetsInfo) {
5513
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdBindDescriptorSets2KHR: Invalid commandBuffer "
5517
0
                   "[VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-parameter]");
5518
0
        abort(); /* Intentionally fail so user can correct issue. */
5519
0
    }
5520
0
    disp->CmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo);
5521
0
}
5522
5523
VKAPI_ATTR void VKAPI_CALL CmdPushConstants2KHR(
5524
    VkCommandBuffer                             commandBuffer,
5525
0
    const VkPushConstantsInfo*                  pPushConstantsInfo) {
5526
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5527
0
    if (NULL == disp) {
5528
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5529
0
                   "vkCmdPushConstants2KHR: Invalid commandBuffer "
5530
0
                   "[VUID-vkCmdPushConstants2KHR-commandBuffer-parameter]");
5531
0
        abort(); /* Intentionally fail so user can correct issue. */
5532
0
    }
5533
0
    disp->CmdPushConstants2KHR(commandBuffer, pPushConstantsInfo);
5534
0
}
5535
5536
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSet2KHR(
5537
    VkCommandBuffer                             commandBuffer,
5538
0
    const VkPushDescriptorSetInfo*              pPushDescriptorSetInfo) {
5539
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5540
0
    if (NULL == disp) {
5541
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5542
0
                   "vkCmdPushDescriptorSet2KHR: Invalid commandBuffer "
5543
0
                   "[VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-parameter]");
5544
0
        abort(); /* Intentionally fail so user can correct issue. */
5545
0
    }
5546
0
    disp->CmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo);
5547
0
}
5548
5549
VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplate2KHR(
5550
    VkCommandBuffer                             commandBuffer,
5551
0
    const VkPushDescriptorSetWithTemplateInfo*  pPushDescriptorSetWithTemplateInfo) {
5552
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5553
0
    if (NULL == disp) {
5554
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5555
0
                   "vkCmdPushDescriptorSetWithTemplate2KHR: Invalid commandBuffer "
5556
0
                   "[VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-parameter]");
5557
0
        abort(); /* Intentionally fail so user can correct issue. */
5558
0
    }
5559
0
    disp->CmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo);
5560
0
}
5561
5562
VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsets2EXT(
5563
    VkCommandBuffer                             commandBuffer,
5564
0
    const VkSetDescriptorBufferOffsetsInfoEXT*  pSetDescriptorBufferOffsetsInfo) {
5565
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5566
0
    if (NULL == disp) {
5567
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5568
0
                   "vkCmdSetDescriptorBufferOffsets2EXT: Invalid commandBuffer "
5569
0
                   "[VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-parameter]");
5570
0
        abort(); /* Intentionally fail so user can correct issue. */
5571
0
    }
5572
0
    disp->CmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo);
5573
0
}
5574
5575
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplers2EXT(
5576
    VkCommandBuffer                             commandBuffer,
5577
0
    const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo) {
5578
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5579
0
    if (NULL == disp) {
5580
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5581
0
                   "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT: Invalid commandBuffer "
5582
0
                   "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-parameter]");
5583
0
        abort(); /* Intentionally fail so user can correct issue. */
5584
0
    }
5585
0
    disp->CmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo);
5586
0
}
5587
5588
5589
// ---- VK_KHR_copy_memory_indirect extension trampoline/terminators
5590
5591
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectKHR(
5592
    VkCommandBuffer                             commandBuffer,
5593
0
    const VkCopyMemoryIndirectInfoKHR*          pCopyMemoryIndirectInfo) {
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
                   "vkCmdCopyMemoryIndirectKHR: Invalid commandBuffer "
5598
0
                   "[VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-parameter]");
5599
0
        abort(); /* Intentionally fail so user can correct issue. */
5600
0
    }
5601
0
    disp->CmdCopyMemoryIndirectKHR(commandBuffer, pCopyMemoryIndirectInfo);
5602
0
}
5603
5604
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectKHR(
5605
    VkCommandBuffer                             commandBuffer,
5606
0
    const VkCopyMemoryToImageIndirectInfoKHR*   pCopyMemoryToImageIndirectInfo) {
5607
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5608
0
    if (NULL == disp) {
5609
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5610
0
                   "vkCmdCopyMemoryToImageIndirectKHR: Invalid commandBuffer "
5611
0
                   "[VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-parameter]");
5612
0
        abort(); /* Intentionally fail so user can correct issue. */
5613
0
    }
5614
0
    disp->CmdCopyMemoryToImageIndirectKHR(commandBuffer, pCopyMemoryToImageIndirectInfo);
5615
0
}
5616
5617
5618
// ---- VK_KHR_maintenance10 extension trampoline/terminators
5619
5620
VKAPI_ATTR void VKAPI_CALL CmdEndRendering2KHR(
5621
    VkCommandBuffer                             commandBuffer,
5622
0
    const VkRenderingEndInfoKHR*                pRenderingEndInfo) {
5623
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5624
0
    if (NULL == disp) {
5625
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5626
0
                   "vkCmdEndRendering2KHR: Invalid commandBuffer "
5627
0
                   "[VUID-vkCmdEndRendering2KHR-commandBuffer-parameter]");
5628
0
        abort(); /* Intentionally fail so user can correct issue. */
5629
0
    }
5630
0
    disp->CmdEndRendering2KHR(commandBuffer, pRenderingEndInfo);
5631
0
}
5632
5633
5634
// ---- VK_EXT_debug_marker extension trampoline/terminators
5635
5636
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
5637
    VkDevice                                    device,
5638
0
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo) {
5639
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5640
0
    if (NULL == disp) {
5641
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5642
0
                   "vkDebugMarkerSetObjectTagEXT: Invalid device "
5643
0
                   "[VUID-vkDebugMarkerSetObjectTagEXT-device-parameter]");
5644
0
        abort(); /* Intentionally fail so user can correct issue. */
5645
0
    }
5646
0
    VkDebugMarkerObjectTagInfoEXT local_tag_info;
5647
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
5648
    // If this is a physical device, we have to replace it with the proper one for the next call.
5649
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5650
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->object;
5651
0
        local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5652
0
    }
5653
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5654
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->object;
5655
0
        local_tag_info.object = (uint64_t)(uintptr_t)instance->instance;
5656
0
    }
5657
0
    return disp->DebugMarkerSetObjectTagEXT(device, &local_tag_info);
5658
0
}
5659
5660
VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectTagEXT(
5661
    VkDevice                                    device,
5662
0
    const VkDebugMarkerObjectTagInfoEXT*        pTagInfo) {
5663
0
    struct loader_device *dev;
5664
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
5665
0
    if (NULL == icd_term || NULL == dev) {
5666
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectTagEXT: Invalid device handle");
5667
0
        abort(); /* Intentionally fail so user can correct issue. */
5668
0
    }
5669
0
    VkDebugMarkerObjectTagInfoEXT local_tag_info;
5670
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
5671
    // If this is a physical device, we have to replace it with the proper one for the next call.
5672
0
    if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5673
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->object;
5674
0
        local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5675
    // 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.
5676
0
    } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
5677
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5678
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pTagInfo->object;
5679
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
5680
0
                local_tag_info.object = (uint64_t)surface;
5681
0
            }
5682
0
        }
5683
    // If this is an instance we have to replace it with the proper one for the next call.
5684
0
    } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5685
0
        local_tag_info.object = (uint64_t)(uintptr_t)icd_term->instance;
5686
0
    }
5687
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5688
    // debug utils but the driver does not.
5689
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT)
5690
0
        return VK_SUCCESS;
5691
0
    return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT(device, &local_tag_info);
5692
0
}
5693
5694
VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
5695
    VkDevice                                    device,
5696
0
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo) {
5697
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5698
0
    if (NULL == disp) {
5699
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5700
0
                   "vkDebugMarkerSetObjectNameEXT: Invalid device "
5701
0
                   "[VUID-vkDebugMarkerSetObjectNameEXT-device-parameter]");
5702
0
        abort(); /* Intentionally fail so user can correct issue. */
5703
0
    }
5704
0
    VkDebugMarkerObjectNameInfoEXT local_name_info;
5705
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
5706
    // If this is a physical device, we have to replace it with the proper one for the next call.
5707
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5708
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->object;
5709
0
        local_name_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5710
0
    }
5711
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5712
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->object;
5713
0
        local_name_info.object = (uint64_t)(uintptr_t)instance->instance;
5714
0
    }
5715
0
    return disp->DebugMarkerSetObjectNameEXT(device, &local_name_info);
5716
0
}
5717
5718
VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectNameEXT(
5719
    VkDevice                                    device,
5720
0
    const VkDebugMarkerObjectNameInfoEXT*       pNameInfo) {
5721
0
    struct loader_device *dev;
5722
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
5723
0
    if (NULL == icd_term || NULL == dev) {
5724
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectNameEXT: Invalid device handle");
5725
0
        abort(); /* Intentionally fail so user can correct issue. */
5726
0
    }
5727
0
    VkDebugMarkerObjectNameInfoEXT local_name_info;
5728
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
5729
    // If this is a physical device, we have to replace it with the proper one for the next call.
5730
0
    if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5731
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->object;
5732
0
        local_name_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5733
    // If this is a KHR_surface, and the ICD has created its own, we have to replace it with the proper one for the next call.
5734
0
    } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
5735
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5736
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pNameInfo->object;
5737
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
5738
0
                local_name_info.object = (uint64_t)surface;
5739
0
            }
5740
0
        }
5741
    // If this is an instance we have to replace it with the proper one for the next call.
5742
0
    } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5743
0
        local_name_info.object = (uint64_t)(uintptr_t)icd_term->instance;
5744
0
    }
5745
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5746
    // debug utils but the driver does not.
5747
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT)
5748
0
        return VK_SUCCESS;
5749
0
    return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT(device, &local_name_info);
5750
0
}
5751
5752
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(
5753
    VkCommandBuffer                             commandBuffer,
5754
0
    const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo) {
5755
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5756
0
    if (NULL == disp) {
5757
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5758
0
                   "vkCmdDebugMarkerBeginEXT: Invalid commandBuffer "
5759
0
                   "[VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter]");
5760
0
        abort(); /* Intentionally fail so user can correct issue. */
5761
0
    }
5762
0
    disp->CmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
5763
0
}
5764
5765
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT(
5766
0
    VkCommandBuffer                             commandBuffer) {
5767
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdDebugMarkerEndEXT: Invalid commandBuffer "
5771
0
                   "[VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter]");
5772
0
        abort(); /* Intentionally fail so user can correct issue. */
5773
0
    }
5774
0
    disp->CmdDebugMarkerEndEXT(commandBuffer);
5775
0
}
5776
5777
VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(
5778
    VkCommandBuffer                             commandBuffer,
5779
0
    const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo) {
5780
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5781
0
    if (NULL == disp) {
5782
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5783
0
                   "vkCmdDebugMarkerInsertEXT: Invalid commandBuffer "
5784
0
                   "[VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter]");
5785
0
        abort(); /* Intentionally fail so user can correct issue. */
5786
0
    }
5787
0
    disp->CmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
5788
0
}
5789
5790
5791
// ---- VK_EXT_transform_feedback extension trampoline/terminators
5792
5793
VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT(
5794
    VkCommandBuffer                             commandBuffer,
5795
    uint32_t                                    firstBinding,
5796
    uint32_t                                    bindingCount,
5797
    const VkBuffer*                             pBuffers,
5798
    const VkDeviceSize*                         pOffsets,
5799
0
    const VkDeviceSize*                         pSizes) {
5800
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5801
0
    if (NULL == disp) {
5802
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5803
0
                   "vkCmdBindTransformFeedbackBuffersEXT: Invalid commandBuffer "
5804
0
                   "[VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter]");
5805
0
        abort(); /* Intentionally fail so user can correct issue. */
5806
0
    }
5807
0
    disp->CmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes);
5808
0
}
5809
5810
VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT(
5811
    VkCommandBuffer                             commandBuffer,
5812
    uint32_t                                    firstCounterBuffer,
5813
    uint32_t                                    counterBufferCount,
5814
    const VkBuffer*                             pCounterBuffers,
5815
0
    const VkDeviceSize*                         pCounterBufferOffsets) {
5816
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5817
0
    if (NULL == disp) {
5818
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5819
0
                   "vkCmdBeginTransformFeedbackEXT: Invalid commandBuffer "
5820
0
                   "[VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter]");
5821
0
        abort(); /* Intentionally fail so user can correct issue. */
5822
0
    }
5823
0
    disp->CmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
5824
0
}
5825
5826
VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT(
5827
    VkCommandBuffer                             commandBuffer,
5828
    uint32_t                                    firstCounterBuffer,
5829
    uint32_t                                    counterBufferCount,
5830
    const VkBuffer*                             pCounterBuffers,
5831
0
    const VkDeviceSize*                         pCounterBufferOffsets) {
5832
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5833
0
    if (NULL == disp) {
5834
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5835
0
                   "vkCmdEndTransformFeedbackEXT: Invalid commandBuffer "
5836
0
                   "[VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter]");
5837
0
        abort(); /* Intentionally fail so user can correct issue. */
5838
0
    }
5839
0
    disp->CmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
5840
0
}
5841
5842
VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT(
5843
    VkCommandBuffer                             commandBuffer,
5844
    VkQueryPool                                 queryPool,
5845
    uint32_t                                    query,
5846
    VkQueryControlFlags                         flags,
5847
0
    uint32_t                                    index) {
5848
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5849
0
    if (NULL == disp) {
5850
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5851
0
                   "vkCmdBeginQueryIndexedEXT: Invalid commandBuffer "
5852
0
                   "[VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter]");
5853
0
        abort(); /* Intentionally fail so user can correct issue. */
5854
0
    }
5855
0
    disp->CmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index);
5856
0
}
5857
5858
VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT(
5859
    VkCommandBuffer                             commandBuffer,
5860
    VkQueryPool                                 queryPool,
5861
    uint32_t                                    query,
5862
0
    uint32_t                                    index) {
5863
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5864
0
    if (NULL == disp) {
5865
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5866
0
                   "vkCmdEndQueryIndexedEXT: Invalid commandBuffer "
5867
0
                   "[VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter]");
5868
0
        abort(); /* Intentionally fail so user can correct issue. */
5869
0
    }
5870
0
    disp->CmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index);
5871
0
}
5872
5873
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT(
5874
    VkCommandBuffer                             commandBuffer,
5875
    uint32_t                                    instanceCount,
5876
    uint32_t                                    firstInstance,
5877
    VkBuffer                                    counterBuffer,
5878
    VkDeviceSize                                counterBufferOffset,
5879
    uint32_t                                    counterOffset,
5880
0
    uint32_t                                    vertexStride) {
5881
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5882
0
    if (NULL == disp) {
5883
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5884
0
                   "vkCmdDrawIndirectByteCountEXT: Invalid commandBuffer "
5885
0
                   "[VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter]");
5886
0
        abort(); /* Intentionally fail so user can correct issue. */
5887
0
    }
5888
0
    disp->CmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride);
5889
0
}
5890
5891
5892
// ---- VK_NVX_binary_import extension trampoline/terminators
5893
5894
VKAPI_ATTR VkResult VKAPI_CALL CreateCuModuleNVX(
5895
    VkDevice                                    device,
5896
    const VkCuModuleCreateInfoNVX*              pCreateInfo,
5897
    const VkAllocationCallbacks*                pAllocator,
5898
0
    VkCuModuleNVX*                              pModule) {
5899
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5900
0
    if (NULL == disp) {
5901
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5902
0
                   "vkCreateCuModuleNVX: Invalid device "
5903
0
                   "[VUID-vkCreateCuModuleNVX-device-parameter]");
5904
0
        abort(); /* Intentionally fail so user can correct issue. */
5905
0
    }
5906
0
    return disp->CreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule);
5907
0
}
5908
5909
VKAPI_ATTR VkResult VKAPI_CALL CreateCuFunctionNVX(
5910
    VkDevice                                    device,
5911
    const VkCuFunctionCreateInfoNVX*            pCreateInfo,
5912
    const VkAllocationCallbacks*                pAllocator,
5913
0
    VkCuFunctionNVX*                            pFunction) {
5914
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5915
0
    if (NULL == disp) {
5916
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5917
0
                   "vkCreateCuFunctionNVX: Invalid device "
5918
0
                   "[VUID-vkCreateCuFunctionNVX-device-parameter]");
5919
0
        abort(); /* Intentionally fail so user can correct issue. */
5920
0
    }
5921
0
    return disp->CreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction);
5922
0
}
5923
5924
VKAPI_ATTR void VKAPI_CALL DestroyCuModuleNVX(
5925
    VkDevice                                    device,
5926
    VkCuModuleNVX                               module,
5927
0
    const VkAllocationCallbacks*                pAllocator) {
5928
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5929
0
    if (NULL == disp) {
5930
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5931
0
                   "vkDestroyCuModuleNVX: Invalid device "
5932
0
                   "[VUID-vkDestroyCuModuleNVX-device-parameter]");
5933
0
        abort(); /* Intentionally fail so user can correct issue. */
5934
0
    }
5935
0
    disp->DestroyCuModuleNVX(device, module, pAllocator);
5936
0
}
5937
5938
VKAPI_ATTR void VKAPI_CALL DestroyCuFunctionNVX(
5939
    VkDevice                                    device,
5940
    VkCuFunctionNVX                             function,
5941
0
    const VkAllocationCallbacks*                pAllocator) {
5942
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkDestroyCuFunctionNVX: Invalid device "
5946
0
                   "[VUID-vkDestroyCuFunctionNVX-device-parameter]");
5947
0
        abort(); /* Intentionally fail so user can correct issue. */
5948
0
    }
5949
0
    disp->DestroyCuFunctionNVX(device, function, pAllocator);
5950
0
}
5951
5952
VKAPI_ATTR void VKAPI_CALL CmdCuLaunchKernelNVX(
5953
    VkCommandBuffer                             commandBuffer,
5954
0
    const VkCuLaunchInfoNVX*                    pLaunchInfo) {
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
                   "vkCmdCuLaunchKernelNVX: Invalid commandBuffer "
5959
0
                   "[VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter]");
5960
0
        abort(); /* Intentionally fail so user can correct issue. */
5961
0
    }
5962
0
    disp->CmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo);
5963
0
}
5964
5965
5966
// ---- VK_NVX_image_view_handle extension trampoline/terminators
5967
5968
VKAPI_ATTR uint32_t VKAPI_CALL GetImageViewHandleNVX(
5969
    VkDevice                                    device,
5970
0
    const VkImageViewHandleInfoNVX*             pInfo) {
5971
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5972
0
    if (NULL == disp) {
5973
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5974
0
                   "vkGetImageViewHandleNVX: Invalid device "
5975
0
                   "[VUID-vkGetImageViewHandleNVX-device-parameter]");
5976
0
        abort(); /* Intentionally fail so user can correct issue. */
5977
0
    }
5978
0
    return disp->GetImageViewHandleNVX(device, pInfo);
5979
0
}
5980
5981
VKAPI_ATTR uint64_t VKAPI_CALL GetImageViewHandle64NVX(
5982
    VkDevice                                    device,
5983
0
    const VkImageViewHandleInfoNVX*             pInfo) {
5984
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5985
0
    if (NULL == disp) {
5986
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5987
0
                   "vkGetImageViewHandle64NVX: Invalid device "
5988
0
                   "[VUID-vkGetImageViewHandle64NVX-device-parameter]");
5989
0
        abort(); /* Intentionally fail so user can correct issue. */
5990
0
    }
5991
0
    return disp->GetImageViewHandle64NVX(device, pInfo);
5992
0
}
5993
5994
VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX(
5995
    VkDevice                                    device,
5996
    VkImageView                                 imageView,
5997
0
    VkImageViewAddressPropertiesNVX*            pProperties) {
5998
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5999
0
    if (NULL == disp) {
6000
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6001
0
                   "vkGetImageViewAddressNVX: Invalid device "
6002
0
                   "[VUID-vkGetImageViewAddressNVX-device-parameter]");
6003
0
        abort(); /* Intentionally fail so user can correct issue. */
6004
0
    }
6005
0
    return disp->GetImageViewAddressNVX(device, imageView, pProperties);
6006
0
}
6007
6008
6009
// ---- VK_AMD_draw_indirect_count extension trampoline/terminators
6010
6011
VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD(
6012
    VkCommandBuffer                             commandBuffer,
6013
    VkBuffer                                    buffer,
6014
    VkDeviceSize                                offset,
6015
    VkBuffer                                    countBuffer,
6016
    VkDeviceSize                                countBufferOffset,
6017
    uint32_t                                    maxDrawCount,
6018
0
    uint32_t                                    stride) {
6019
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6020
0
    if (NULL == disp) {
6021
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6022
0
                   "vkCmdDrawIndirectCountAMD: Invalid commandBuffer "
6023
0
                   "[VUID-vkCmdDrawIndirectCountAMD-commandBuffer-parameter]");
6024
0
        abort(); /* Intentionally fail so user can correct issue. */
6025
0
    }
6026
0
    disp->CmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
6027
0
}
6028
6029
VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD(
6030
    VkCommandBuffer                             commandBuffer,
6031
    VkBuffer                                    buffer,
6032
    VkDeviceSize                                offset,
6033
    VkBuffer                                    countBuffer,
6034
    VkDeviceSize                                countBufferOffset,
6035
    uint32_t                                    maxDrawCount,
6036
0
    uint32_t                                    stride) {
6037
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6038
0
    if (NULL == disp) {
6039
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6040
0
                   "vkCmdDrawIndexedIndirectCountAMD: Invalid commandBuffer "
6041
0
                   "[VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-parameter]");
6042
0
        abort(); /* Intentionally fail so user can correct issue. */
6043
0
    }
6044
0
    disp->CmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
6045
0
}
6046
6047
6048
// ---- VK_AMD_shader_info extension trampoline/terminators
6049
6050
VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD(
6051
    VkDevice                                    device,
6052
    VkPipeline                                  pipeline,
6053
    VkShaderStageFlagBits                       shaderStage,
6054
    VkShaderInfoTypeAMD                         infoType,
6055
    size_t*                                     pInfoSize,
6056
0
    void*                                       pInfo) {
6057
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6058
0
    if (NULL == disp) {
6059
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6060
0
                   "vkGetShaderInfoAMD: Invalid device "
6061
0
                   "[VUID-vkGetShaderInfoAMD-device-parameter]");
6062
0
        abort(); /* Intentionally fail so user can correct issue. */
6063
0
    }
6064
0
    return disp->GetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
6065
0
}
6066
6067
6068
// ---- VK_NV_external_memory_win32 extension trampoline/terminators
6069
6070
#if defined(VK_USE_PLATFORM_WIN32_KHR)
6071
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV(
6072
    VkDevice                                    device,
6073
    VkDeviceMemory                              memory,
6074
    VkExternalMemoryHandleTypeFlagsNV           handleType,
6075
    HANDLE*                                     pHandle) {
6076
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6077
    if (NULL == disp) {
6078
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6079
                   "vkGetMemoryWin32HandleNV: Invalid device "
6080
                   "[VUID-vkGetMemoryWin32HandleNV-device-parameter]");
6081
        abort(); /* Intentionally fail so user can correct issue. */
6082
    }
6083
    return disp->GetMemoryWin32HandleNV(device, memory, handleType, pHandle);
6084
}
6085
6086
#endif // VK_USE_PLATFORM_WIN32_KHR
6087
6088
// ---- VK_EXT_conditional_rendering extension trampoline/terminators
6089
6090
VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRenderingEXT(
6091
    VkCommandBuffer                             commandBuffer,
6092
0
    const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin) {
6093
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6094
0
    if (NULL == disp) {
6095
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6096
0
                   "vkCmdBeginConditionalRenderingEXT: Invalid commandBuffer "
6097
0
                   "[VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter]");
6098
0
        abort(); /* Intentionally fail so user can correct issue. */
6099
0
    }
6100
0
    disp->CmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
6101
0
}
6102
6103
VKAPI_ATTR void VKAPI_CALL CmdEndConditionalRenderingEXT(
6104
0
    VkCommandBuffer                             commandBuffer) {
6105
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6106
0
    if (NULL == disp) {
6107
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6108
0
                   "vkCmdEndConditionalRenderingEXT: Invalid commandBuffer "
6109
0
                   "[VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter]");
6110
0
        abort(); /* Intentionally fail so user can correct issue. */
6111
0
    }
6112
0
    disp->CmdEndConditionalRenderingEXT(commandBuffer);
6113
0
}
6114
6115
6116
// ---- VK_NV_clip_space_w_scaling extension trampoline/terminators
6117
6118
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV(
6119
    VkCommandBuffer                             commandBuffer,
6120
    uint32_t                                    firstViewport,
6121
    uint32_t                                    viewportCount,
6122
0
    const VkViewportWScalingNV*                 pViewportWScalings) {
6123
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6124
0
    if (NULL == disp) {
6125
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6126
0
                   "vkCmdSetViewportWScalingNV: Invalid commandBuffer "
6127
0
                   "[VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter]");
6128
0
        abort(); /* Intentionally fail so user can correct issue. */
6129
0
    }
6130
0
    disp->CmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
6131
0
}
6132
6133
6134
// ---- VK_EXT_display_control extension trampoline/terminators
6135
6136
VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT(
6137
    VkDevice                                    device,
6138
    VkDisplayKHR                                display,
6139
0
    const VkDisplayPowerInfoEXT*                pDisplayPowerInfo) {
6140
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6141
0
    if (NULL == disp) {
6142
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6143
0
                   "vkDisplayPowerControlEXT: Invalid device "
6144
0
                   "[VUID-vkDisplayPowerControlEXT-device-parameter]");
6145
0
        abort(); /* Intentionally fail so user can correct issue. */
6146
0
    }
6147
0
    return disp->DisplayPowerControlEXT(device, display, pDisplayPowerInfo);
6148
0
}
6149
6150
VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT(
6151
    VkDevice                                    device,
6152
    const VkDeviceEventInfoEXT*                 pDeviceEventInfo,
6153
    const VkAllocationCallbacks*                pAllocator,
6154
0
    VkFence*                                    pFence) {
6155
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6156
0
    if (NULL == disp) {
6157
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6158
0
                   "vkRegisterDeviceEventEXT: Invalid device "
6159
0
                   "[VUID-vkRegisterDeviceEventEXT-device-parameter]");
6160
0
        abort(); /* Intentionally fail so user can correct issue. */
6161
0
    }
6162
0
    return disp->RegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
6163
0
}
6164
6165
VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT(
6166
    VkDevice                                    device,
6167
    VkDisplayKHR                                display,
6168
    const VkDisplayEventInfoEXT*                pDisplayEventInfo,
6169
    const VkAllocationCallbacks*                pAllocator,
6170
0
    VkFence*                                    pFence) {
6171
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6172
0
    if (NULL == disp) {
6173
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6174
0
                   "vkRegisterDisplayEventEXT: Invalid device "
6175
0
                   "[VUID-vkRegisterDisplayEventEXT-device-parameter]");
6176
0
        abort(); /* Intentionally fail so user can correct issue. */
6177
0
    }
6178
0
    return disp->RegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
6179
0
}
6180
6181
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT(
6182
    VkDevice                                    device,
6183
    VkSwapchainKHR                              swapchain,
6184
    VkSurfaceCounterFlagBitsEXT                 counter,
6185
0
    uint64_t*                                   pCounterValue) {
6186
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6187
0
    if (NULL == disp) {
6188
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6189
0
                   "vkGetSwapchainCounterEXT: Invalid device "
6190
0
                   "[VUID-vkGetSwapchainCounterEXT-device-parameter]");
6191
0
        abort(); /* Intentionally fail so user can correct issue. */
6192
0
    }
6193
0
    return disp->GetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
6194
0
}
6195
6196
6197
// ---- VK_GOOGLE_display_timing extension trampoline/terminators
6198
6199
VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE(
6200
    VkDevice                                    device,
6201
    VkSwapchainKHR                              swapchain,
6202
0
    VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties) {
6203
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6204
0
    if (NULL == disp) {
6205
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6206
0
                   "vkGetRefreshCycleDurationGOOGLE: Invalid device "
6207
0
                   "[VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter]");
6208
0
        abort(); /* Intentionally fail so user can correct issue. */
6209
0
    }
6210
0
    return disp->GetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
6211
0
}
6212
6213
VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE(
6214
    VkDevice                                    device,
6215
    VkSwapchainKHR                              swapchain,
6216
    uint32_t*                                   pPresentationTimingCount,
6217
0
    VkPastPresentationTimingGOOGLE*             pPresentationTimings) {
6218
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6219
0
    if (NULL == disp) {
6220
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6221
0
                   "vkGetPastPresentationTimingGOOGLE: Invalid device "
6222
0
                   "[VUID-vkGetPastPresentationTimingGOOGLE-device-parameter]");
6223
0
        abort(); /* Intentionally fail so user can correct issue. */
6224
0
    }
6225
0
    return disp->GetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
6226
0
}
6227
6228
6229
// ---- VK_EXT_discard_rectangles extension trampoline/terminators
6230
6231
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT(
6232
    VkCommandBuffer                             commandBuffer,
6233
    uint32_t                                    firstDiscardRectangle,
6234
    uint32_t                                    discardRectangleCount,
6235
0
    const VkRect2D*                             pDiscardRectangles) {
6236
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6237
0
    if (NULL == disp) {
6238
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6239
0
                   "vkCmdSetDiscardRectangleEXT: Invalid commandBuffer "
6240
0
                   "[VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter]");
6241
0
        abort(); /* Intentionally fail so user can correct issue. */
6242
0
    }
6243
0
    disp->CmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
6244
0
}
6245
6246
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEnableEXT(
6247
    VkCommandBuffer                             commandBuffer,
6248
0
    VkBool32                                    discardRectangleEnable) {
6249
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6250
0
    if (NULL == disp) {
6251
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6252
0
                   "vkCmdSetDiscardRectangleEnableEXT: Invalid commandBuffer "
6253
0
                   "[VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameter]");
6254
0
        abort(); /* Intentionally fail so user can correct issue. */
6255
0
    }
6256
0
    disp->CmdSetDiscardRectangleEnableEXT(commandBuffer, discardRectangleEnable);
6257
0
}
6258
6259
VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleModeEXT(
6260
    VkCommandBuffer                             commandBuffer,
6261
0
    VkDiscardRectangleModeEXT                   discardRectangleMode) {
6262
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6263
0
    if (NULL == disp) {
6264
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6265
0
                   "vkCmdSetDiscardRectangleModeEXT: Invalid commandBuffer "
6266
0
                   "[VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameter]");
6267
0
        abort(); /* Intentionally fail so user can correct issue. */
6268
0
    }
6269
0
    disp->CmdSetDiscardRectangleModeEXT(commandBuffer, discardRectangleMode);
6270
0
}
6271
6272
6273
// ---- VK_EXT_hdr_metadata extension trampoline/terminators
6274
6275
VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT(
6276
    VkDevice                                    device,
6277
    uint32_t                                    swapchainCount,
6278
    const VkSwapchainKHR*                       pSwapchains,
6279
0
    const VkHdrMetadataEXT*                     pMetadata) {
6280
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6281
0
    if (NULL == disp) {
6282
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6283
0
                   "vkSetHdrMetadataEXT: Invalid device "
6284
0
                   "[VUID-vkSetHdrMetadataEXT-device-parameter]");
6285
0
        abort(); /* Intentionally fail so user can correct issue. */
6286
0
    }
6287
0
    disp->SetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
6288
0
}
6289
6290
6291
// ---- VK_EXT_debug_utils extension trampoline/terminators
6292
6293
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
6294
    VkDevice                                    device,
6295
0
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo) {
6296
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6297
0
    if (NULL == disp) {
6298
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6299
0
                   "vkSetDebugUtilsObjectNameEXT: Invalid device "
6300
0
                   "[VUID-vkSetDebugUtilsObjectNameEXT-device-parameter]");
6301
0
        abort(); /* Intentionally fail so user can correct issue. */
6302
0
    }
6303
0
    VkDebugUtilsObjectNameInfoEXT local_name_info;
6304
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
6305
    // If this is a physical device, we have to replace it with the proper one for the next call.
6306
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6307
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->objectHandle;
6308
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6309
0
    }
6310
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6311
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->objectHandle;
6312
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
6313
0
    }
6314
0
    if (disp->SetDebugUtilsObjectNameEXT != NULL) {
6315
0
        return disp->SetDebugUtilsObjectNameEXT(device, &local_name_info);
6316
0
    } else {
6317
0
        return VK_SUCCESS;
6318
0
    }
6319
0
}
6320
6321
VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectNameEXT(
6322
    VkDevice                                    device,
6323
0
    const VkDebugUtilsObjectNameInfoEXT*        pNameInfo) {
6324
0
    struct loader_device *dev;
6325
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6326
0
    if (NULL == icd_term || NULL == dev) {
6327
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectNameEXT: Invalid device handle");
6328
0
        abort(); /* Intentionally fail so user can correct issue. */
6329
0
    }
6330
0
    VkDebugUtilsObjectNameInfoEXT local_name_info;
6331
0
    memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
6332
    // If this is a physical device, we have to replace it with the proper one for the next call.
6333
0
    if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6334
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->objectHandle;
6335
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6336
    // 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.
6337
0
    } else if (pNameInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
6338
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6339
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pNameInfo->objectHandle;
6340
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
6341
0
                local_name_info.objectHandle = (uint64_t)surface;
6342
0
            }
6343
0
        }
6344
    // If this is an instance we have to replace it with the proper one for the next call.
6345
0
    } else if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6346
0
        local_name_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
6347
0
    }
6348
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6349
    // debug utils but the driver does not.
6350
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT)
6351
0
        return VK_SUCCESS;
6352
0
    return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT(device, &local_name_info);
6353
0
}
6354
6355
VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
6356
    VkDevice                                    device,
6357
0
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo) {
6358
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6359
0
    if (NULL == disp) {
6360
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6361
0
                   "vkSetDebugUtilsObjectTagEXT: Invalid device "
6362
0
                   "[VUID-vkSetDebugUtilsObjectTagEXT-device-parameter]");
6363
0
        abort(); /* Intentionally fail so user can correct issue. */
6364
0
    }
6365
0
    VkDebugUtilsObjectTagInfoEXT local_tag_info;
6366
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
6367
    // If this is a physical device, we have to replace it with the proper one for the next call.
6368
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6369
0
        struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->objectHandle;
6370
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6371
0
    }
6372
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6373
0
        struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->objectHandle;
6374
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
6375
0
    }
6376
0
    if (disp->SetDebugUtilsObjectTagEXT != NULL) {
6377
0
        return disp->SetDebugUtilsObjectTagEXT(device, &local_tag_info);
6378
0
    } else {
6379
0
        return VK_SUCCESS;
6380
0
    }
6381
0
}
6382
6383
VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectTagEXT(
6384
    VkDevice                                    device,
6385
0
    const VkDebugUtilsObjectTagInfoEXT*         pTagInfo) {
6386
0
    struct loader_device *dev;
6387
0
    struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6388
0
    if (NULL == icd_term || NULL == dev) {
6389
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectTagEXT: Invalid device handle");
6390
0
        abort(); /* Intentionally fail so user can correct issue. */
6391
0
    }
6392
0
    VkDebugUtilsObjectTagInfoEXT local_tag_info;
6393
0
    memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
6394
    // If this is a physical device, we have to replace it with the proper one for the next call.
6395
0
    if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6396
0
        struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->objectHandle;
6397
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6398
    // 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.
6399
0
    } else if (pTagInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
6400
0
        if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6401
0
            VkSurfaceKHR surface = (VkSurfaceKHR)(uintptr_t)pTagInfo->objectHandle;
6402
0
            if (wsi_unwrap_icd_surface(icd_term, &surface) == VK_SUCCESS) {
6403
0
                local_tag_info.objectHandle = (uint64_t)surface;
6404
0
            }
6405
0
        }
6406
    // If this is an instance we have to replace it with the proper one for the next call.
6407
0
    } else if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6408
0
        local_tag_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
6409
0
    }
6410
    // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6411
    // debug utils but the driver does not.
6412
0
    if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT)
6413
0
        return VK_SUCCESS;
6414
0
    return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT(device, &local_tag_info);
6415
0
}
6416
6417
VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT(
6418
    VkQueue                                     queue,
6419
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6420
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6421
0
    if (NULL == disp) {
6422
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6423
0
                   "vkQueueBeginDebugUtilsLabelEXT: Invalid queue "
6424
0
                   "[VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter]");
6425
0
        abort(); /* Intentionally fail so user can correct issue. */
6426
0
    }
6427
0
    if (disp->QueueBeginDebugUtilsLabelEXT != NULL) {
6428
0
        disp->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
6429
0
    }
6430
0
}
6431
6432
VKAPI_ATTR void VKAPI_CALL terminator_QueueBeginDebugUtilsLabelEXT(
6433
    VkQueue                                     queue,
6434
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6435
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6436
0
    if (NULL == dispatch_table) {
6437
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");
6438
0
        abort(); /* Intentionally fail so user can correct issue. */
6439
0
    }
6440
    // Only call down if the device supports the function
6441
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT)
6442
0
        dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
6443
0
}
6444
6445
VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT(
6446
0
    VkQueue                                     queue) {
6447
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6448
0
    if (NULL == disp) {
6449
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6450
0
                   "vkQueueEndDebugUtilsLabelEXT: Invalid queue "
6451
0
                   "[VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter]");
6452
0
        abort(); /* Intentionally fail so user can correct issue. */
6453
0
    }
6454
0
    if (disp->QueueEndDebugUtilsLabelEXT != NULL) {
6455
0
        disp->QueueEndDebugUtilsLabelEXT(queue);
6456
0
    }
6457
0
}
6458
6459
VKAPI_ATTR void VKAPI_CALL terminator_QueueEndDebugUtilsLabelEXT(
6460
0
    VkQueue                                     queue) {
6461
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6462
0
    if (NULL == dispatch_table) {
6463
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");
6464
0
        abort(); /* Intentionally fail so user can correct issue. */
6465
0
    }
6466
    // Only call down if the device supports the function
6467
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT)
6468
0
        dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT(queue);
6469
0
}
6470
6471
VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT(
6472
    VkQueue                                     queue,
6473
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6474
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6475
0
    if (NULL == disp) {
6476
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6477
0
                   "vkQueueInsertDebugUtilsLabelEXT: Invalid queue "
6478
0
                   "[VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter]");
6479
0
        abort(); /* Intentionally fail so user can correct issue. */
6480
0
    }
6481
0
    if (disp->QueueInsertDebugUtilsLabelEXT != NULL) {
6482
0
        disp->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
6483
0
    }
6484
0
}
6485
6486
VKAPI_ATTR void VKAPI_CALL terminator_QueueInsertDebugUtilsLabelEXT(
6487
    VkQueue                                     queue,
6488
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6489
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6490
0
    if (NULL == dispatch_table) {
6491
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");
6492
0
        abort(); /* Intentionally fail so user can correct issue. */
6493
0
    }
6494
    // Only call down if the device supports the function
6495
0
    if (NULL != dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT)
6496
0
        dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
6497
0
}
6498
6499
VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT(
6500
    VkCommandBuffer                             commandBuffer,
6501
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6502
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6503
0
    if (NULL == disp) {
6504
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6505
0
                   "vkCmdBeginDebugUtilsLabelEXT: Invalid commandBuffer "
6506
0
                   "[VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter]");
6507
0
        abort(); /* Intentionally fail so user can correct issue. */
6508
0
    }
6509
0
    if (disp->CmdBeginDebugUtilsLabelEXT != NULL) {
6510
0
        disp->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6511
0
    }
6512
0
}
6513
6514
VKAPI_ATTR void VKAPI_CALL terminator_CmdBeginDebugUtilsLabelEXT(
6515
    VkCommandBuffer                             commandBuffer,
6516
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6517
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6518
0
    if (NULL == dispatch_table) {
6519
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");
6520
0
        abort(); /* Intentionally fail so user can correct issue. */
6521
0
    }
6522
    // Only call down if the device supports the function
6523
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT)
6524
0
        dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6525
0
}
6526
6527
VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT(
6528
0
    VkCommandBuffer                             commandBuffer) {
6529
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6530
0
    if (NULL == disp) {
6531
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6532
0
                   "vkCmdEndDebugUtilsLabelEXT: Invalid commandBuffer "
6533
0
                   "[VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter]");
6534
0
        abort(); /* Intentionally fail so user can correct issue. */
6535
0
    }
6536
0
    if (disp->CmdEndDebugUtilsLabelEXT != NULL) {
6537
0
        disp->CmdEndDebugUtilsLabelEXT(commandBuffer);
6538
0
    }
6539
0
}
6540
6541
VKAPI_ATTR void VKAPI_CALL terminator_CmdEndDebugUtilsLabelEXT(
6542
0
    VkCommandBuffer                             commandBuffer) {
6543
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6544
0
    if (NULL == dispatch_table) {
6545
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");
6546
0
        abort(); /* Intentionally fail so user can correct issue. */
6547
0
    }
6548
    // Only call down if the device supports the function
6549
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT)
6550
0
        dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT(commandBuffer);
6551
0
}
6552
6553
VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT(
6554
    VkCommandBuffer                             commandBuffer,
6555
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6556
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6557
0
    if (NULL == disp) {
6558
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6559
0
                   "vkCmdInsertDebugUtilsLabelEXT: Invalid commandBuffer "
6560
0
                   "[VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter]");
6561
0
        abort(); /* Intentionally fail so user can correct issue. */
6562
0
    }
6563
0
    if (disp->CmdInsertDebugUtilsLabelEXT != NULL) {
6564
0
        disp->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6565
0
    }
6566
0
}
6567
6568
VKAPI_ATTR void VKAPI_CALL terminator_CmdInsertDebugUtilsLabelEXT(
6569
    VkCommandBuffer                             commandBuffer,
6570
0
    const VkDebugUtilsLabelEXT*                 pLabelInfo) {
6571
0
    struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6572
0
    if (NULL == dispatch_table) {
6573
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");
6574
0
        abort(); /* Intentionally fail so user can correct issue. */
6575
0
    }
6576
    // Only call down if the device supports the function
6577
0
    if (NULL != dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT)
6578
0
        dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6579
0
}
6580
6581
6582
// ---- VK_ANDROID_external_memory_android_hardware_buffer extension trampoline/terminators
6583
6584
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
6585
VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID(
6586
    VkDevice                                    device,
6587
    const struct AHardwareBuffer*               buffer,
6588
    VkAndroidHardwareBufferPropertiesANDROID*   pProperties) {
6589
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6590
    if (NULL == disp) {
6591
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6592
                   "vkGetAndroidHardwareBufferPropertiesANDROID: Invalid device "
6593
                   "[VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter]");
6594
        abort(); /* Intentionally fail so user can correct issue. */
6595
    }
6596
    return disp->GetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
6597
}
6598
6599
#endif // VK_USE_PLATFORM_ANDROID_KHR
6600
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
6601
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID(
6602
    VkDevice                                    device,
6603
    const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
6604
    struct AHardwareBuffer**                    pBuffer) {
6605
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6606
    if (NULL == disp) {
6607
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6608
                   "vkGetMemoryAndroidHardwareBufferANDROID: Invalid device "
6609
                   "[VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter]");
6610
        abort(); /* Intentionally fail so user can correct issue. */
6611
    }
6612
    return disp->GetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
6613
}
6614
6615
#endif // VK_USE_PLATFORM_ANDROID_KHR
6616
6617
// ---- VK_AMDX_shader_enqueue extension trampoline/terminators
6618
6619
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6620
VKAPI_ATTR VkResult VKAPI_CALL CreateExecutionGraphPipelinesAMDX(
6621
    VkDevice                                    device,
6622
    VkPipelineCache                             pipelineCache,
6623
    uint32_t                                    createInfoCount,
6624
    const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
6625
    const VkAllocationCallbacks*                pAllocator,
6626
0
    VkPipeline*                                 pPipelines) {
6627
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6628
0
    if (NULL == disp) {
6629
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6630
0
                   "vkCreateExecutionGraphPipelinesAMDX: Invalid device "
6631
0
                   "[VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter]");
6632
0
        abort(); /* Intentionally fail so user can correct issue. */
6633
0
    }
6634
0
    return disp->CreateExecutionGraphPipelinesAMDX(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
6635
0
}
6636
6637
#endif // VK_ENABLE_BETA_EXTENSIONS
6638
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6639
VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineScratchSizeAMDX(
6640
    VkDevice                                    device,
6641
    VkPipeline                                  executionGraph,
6642
0
    VkExecutionGraphPipelineScratchSizeAMDX*    pSizeInfo) {
6643
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6644
0
    if (NULL == disp) {
6645
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6646
0
                   "vkGetExecutionGraphPipelineScratchSizeAMDX: Invalid device "
6647
0
                   "[VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter]");
6648
0
        abort(); /* Intentionally fail so user can correct issue. */
6649
0
    }
6650
0
    return disp->GetExecutionGraphPipelineScratchSizeAMDX(device, executionGraph, pSizeInfo);
6651
0
}
6652
6653
#endif // VK_ENABLE_BETA_EXTENSIONS
6654
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6655
VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineNodeIndexAMDX(
6656
    VkDevice                                    device,
6657
    VkPipeline                                  executionGraph,
6658
    const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo,
6659
0
    uint32_t*                                   pNodeIndex) {
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
                   "vkGetExecutionGraphPipelineNodeIndexAMDX: Invalid device "
6664
0
                   "[VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter]");
6665
0
        abort(); /* Intentionally fail so user can correct issue. */
6666
0
    }
6667
0
    return disp->GetExecutionGraphPipelineNodeIndexAMDX(device, executionGraph, pNodeInfo, pNodeIndex);
6668
0
}
6669
6670
#endif // VK_ENABLE_BETA_EXTENSIONS
6671
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6672
VKAPI_ATTR void VKAPI_CALL CmdInitializeGraphScratchMemoryAMDX(
6673
    VkCommandBuffer                             commandBuffer,
6674
    VkPipeline                                  executionGraph,
6675
    VkDeviceAddress                             scratch,
6676
0
    VkDeviceSize                                scratchSize) {
6677
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdInitializeGraphScratchMemoryAMDX: Invalid commandBuffer "
6681
0
                   "[VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter]");
6682
0
        abort(); /* Intentionally fail so user can correct issue. */
6683
0
    }
6684
0
    disp->CmdInitializeGraphScratchMemoryAMDX(commandBuffer, executionGraph, scratch, scratchSize);
6685
0
}
6686
6687
#endif // VK_ENABLE_BETA_EXTENSIONS
6688
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6689
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphAMDX(
6690
    VkCommandBuffer                             commandBuffer,
6691
    VkDeviceAddress                             scratch,
6692
    VkDeviceSize                                scratchSize,
6693
0
    const VkDispatchGraphCountInfoAMDX*         pCountInfo) {
6694
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6695
0
    if (NULL == disp) {
6696
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6697
0
                   "vkCmdDispatchGraphAMDX: Invalid commandBuffer "
6698
0
                   "[VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter]");
6699
0
        abort(); /* Intentionally fail so user can correct issue. */
6700
0
    }
6701
0
    disp->CmdDispatchGraphAMDX(commandBuffer, scratch, scratchSize, pCountInfo);
6702
0
}
6703
6704
#endif // VK_ENABLE_BETA_EXTENSIONS
6705
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6706
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectAMDX(
6707
    VkCommandBuffer                             commandBuffer,
6708
    VkDeviceAddress                             scratch,
6709
    VkDeviceSize                                scratchSize,
6710
0
    const VkDispatchGraphCountInfoAMDX*         pCountInfo) {
6711
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6712
0
    if (NULL == disp) {
6713
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6714
0
                   "vkCmdDispatchGraphIndirectAMDX: Invalid commandBuffer "
6715
0
                   "[VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter]");
6716
0
        abort(); /* Intentionally fail so user can correct issue. */
6717
0
    }
6718
0
    disp->CmdDispatchGraphIndirectAMDX(commandBuffer, scratch, scratchSize, pCountInfo);
6719
0
}
6720
6721
#endif // VK_ENABLE_BETA_EXTENSIONS
6722
#if defined(VK_ENABLE_BETA_EXTENSIONS)
6723
VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectCountAMDX(
6724
    VkCommandBuffer                             commandBuffer,
6725
    VkDeviceAddress                             scratch,
6726
    VkDeviceSize                                scratchSize,
6727
0
    VkDeviceAddress                             countInfo) {
6728
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6729
0
    if (NULL == disp) {
6730
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6731
0
                   "vkCmdDispatchGraphIndirectCountAMDX: Invalid commandBuffer "
6732
0
                   "[VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter]");
6733
0
        abort(); /* Intentionally fail so user can correct issue. */
6734
0
    }
6735
0
    disp->CmdDispatchGraphIndirectCountAMDX(commandBuffer, scratch, scratchSize, countInfo);
6736
0
}
6737
6738
#endif // VK_ENABLE_BETA_EXTENSIONS
6739
6740
// ---- VK_EXT_sample_locations extension trampoline/terminators
6741
6742
VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEXT(
6743
    VkCommandBuffer                             commandBuffer,
6744
0
    const VkSampleLocationsInfoEXT*             pSampleLocationsInfo) {
6745
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6746
0
    if (NULL == disp) {
6747
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6748
0
                   "vkCmdSetSampleLocationsEXT: Invalid commandBuffer "
6749
0
                   "[VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter]");
6750
0
        abort(); /* Intentionally fail so user can correct issue. */
6751
0
    }
6752
0
    disp->CmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
6753
0
}
6754
6755
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT(
6756
    VkPhysicalDevice                            physicalDevice,
6757
    VkSampleCountFlagBits                       samples,
6758
0
    VkMultisamplePropertiesEXT*                 pMultisampleProperties) {
6759
0
    const VkLayerInstanceDispatchTable *disp;
6760
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6761
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6762
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6763
0
                   "vkGetPhysicalDeviceMultisamplePropertiesEXT: Invalid physicalDevice "
6764
0
                   "[VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter]");
6765
0
        abort(); /* Intentionally fail so user can correct issue. */
6766
0
    }
6767
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
6768
0
    disp->GetPhysicalDeviceMultisamplePropertiesEXT(unwrapped_phys_dev, samples, pMultisampleProperties);
6769
0
}
6770
6771
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMultisamplePropertiesEXT(
6772
    VkPhysicalDevice                            physicalDevice,
6773
    VkSampleCountFlagBits                       samples,
6774
0
    VkMultisamplePropertiesEXT*                 pMultisampleProperties) {
6775
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6776
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6777
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT) {
6778
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
6779
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceMultisamplePropertiesEXT");
6780
0
        abort(); /* Intentionally fail so user can correct issue. */
6781
0
    }
6782
0
    icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT(phys_dev_term->phys_dev, samples, pMultisampleProperties);
6783
0
}
6784
6785
6786
// ---- VK_EXT_image_drm_format_modifier extension trampoline/terminators
6787
6788
VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT(
6789
    VkDevice                                    device,
6790
    VkImage                                     image,
6791
0
    VkImageDrmFormatModifierPropertiesEXT*      pProperties) {
6792
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6793
0
    if (NULL == disp) {
6794
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6795
0
                   "vkGetImageDrmFormatModifierPropertiesEXT: Invalid device "
6796
0
                   "[VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter]");
6797
0
        abort(); /* Intentionally fail so user can correct issue. */
6798
0
    }
6799
0
    return disp->GetImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
6800
0
}
6801
6802
6803
// ---- VK_EXT_validation_cache extension trampoline/terminators
6804
6805
VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT(
6806
    VkDevice                                    device,
6807
    const VkValidationCacheCreateInfoEXT*       pCreateInfo,
6808
    const VkAllocationCallbacks*                pAllocator,
6809
0
    VkValidationCacheEXT*                       pValidationCache) {
6810
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6811
0
    if (NULL == disp) {
6812
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6813
0
                   "vkCreateValidationCacheEXT: Invalid device "
6814
0
                   "[VUID-vkCreateValidationCacheEXT-device-parameter]");
6815
0
        abort(); /* Intentionally fail so user can correct issue. */
6816
0
    }
6817
0
    return disp->CreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
6818
0
}
6819
6820
VKAPI_ATTR void VKAPI_CALL DestroyValidationCacheEXT(
6821
    VkDevice                                    device,
6822
    VkValidationCacheEXT                        validationCache,
6823
0
    const VkAllocationCallbacks*                pAllocator) {
6824
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6825
0
    if (NULL == disp) {
6826
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6827
0
                   "vkDestroyValidationCacheEXT: Invalid device "
6828
0
                   "[VUID-vkDestroyValidationCacheEXT-device-parameter]");
6829
0
        abort(); /* Intentionally fail so user can correct issue. */
6830
0
    }
6831
0
    disp->DestroyValidationCacheEXT(device, validationCache, pAllocator);
6832
0
}
6833
6834
VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT(
6835
    VkDevice                                    device,
6836
    VkValidationCacheEXT                        dstCache,
6837
    uint32_t                                    srcCacheCount,
6838
0
    const VkValidationCacheEXT*                 pSrcCaches) {
6839
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6840
0
    if (NULL == disp) {
6841
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6842
0
                   "vkMergeValidationCachesEXT: Invalid device "
6843
0
                   "[VUID-vkMergeValidationCachesEXT-device-parameter]");
6844
0
        abort(); /* Intentionally fail so user can correct issue. */
6845
0
    }
6846
0
    return disp->MergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
6847
0
}
6848
6849
VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT(
6850
    VkDevice                                    device,
6851
    VkValidationCacheEXT                        validationCache,
6852
    size_t*                                     pDataSize,
6853
0
    void*                                       pData) {
6854
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6855
0
    if (NULL == disp) {
6856
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6857
0
                   "vkGetValidationCacheDataEXT: Invalid device "
6858
0
                   "[VUID-vkGetValidationCacheDataEXT-device-parameter]");
6859
0
        abort(); /* Intentionally fail so user can correct issue. */
6860
0
    }
6861
0
    return disp->GetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
6862
0
}
6863
6864
6865
// ---- VK_NV_shading_rate_image extension trampoline/terminators
6866
6867
VKAPI_ATTR void VKAPI_CALL CmdBindShadingRateImageNV(
6868
    VkCommandBuffer                             commandBuffer,
6869
    VkImageView                                 imageView,
6870
0
    VkImageLayout                               imageLayout) {
6871
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6872
0
    if (NULL == disp) {
6873
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6874
0
                   "vkCmdBindShadingRateImageNV: Invalid commandBuffer "
6875
0
                   "[VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter]");
6876
0
        abort(); /* Intentionally fail so user can correct issue. */
6877
0
    }
6878
0
    disp->CmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout);
6879
0
}
6880
6881
VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV(
6882
    VkCommandBuffer                             commandBuffer,
6883
    uint32_t                                    firstViewport,
6884
    uint32_t                                    viewportCount,
6885
0
    const VkShadingRatePaletteNV*               pShadingRatePalettes) {
6886
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6887
0
    if (NULL == disp) {
6888
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6889
0
                   "vkCmdSetViewportShadingRatePaletteNV: Invalid commandBuffer "
6890
0
                   "[VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter]");
6891
0
        abort(); /* Intentionally fail so user can correct issue. */
6892
0
    }
6893
0
    disp->CmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes);
6894
0
}
6895
6896
VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV(
6897
    VkCommandBuffer                             commandBuffer,
6898
    VkCoarseSampleOrderTypeNV                   sampleOrderType,
6899
    uint32_t                                    customSampleOrderCount,
6900
0
    const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders) {
6901
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6902
0
    if (NULL == disp) {
6903
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6904
0
                   "vkCmdSetCoarseSampleOrderNV: Invalid commandBuffer "
6905
0
                   "[VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter]");
6906
0
        abort(); /* Intentionally fail so user can correct issue. */
6907
0
    }
6908
0
    disp->CmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders);
6909
0
}
6910
6911
6912
// ---- VK_NV_ray_tracing extension trampoline/terminators
6913
6914
VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV(
6915
    VkDevice                                    device,
6916
    const VkAccelerationStructureCreateInfoNV*  pCreateInfo,
6917
    const VkAllocationCallbacks*                pAllocator,
6918
0
    VkAccelerationStructureNV*                  pAccelerationStructure) {
6919
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6920
0
    if (NULL == disp) {
6921
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6922
0
                   "vkCreateAccelerationStructureNV: Invalid device "
6923
0
                   "[VUID-vkCreateAccelerationStructureNV-device-parameter]");
6924
0
        abort(); /* Intentionally fail so user can correct issue. */
6925
0
    }
6926
0
    return disp->CreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
6927
0
}
6928
6929
VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureNV(
6930
    VkDevice                                    device,
6931
    VkAccelerationStructureNV                   accelerationStructure,
6932
0
    const VkAllocationCallbacks*                pAllocator) {
6933
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6934
0
    if (NULL == disp) {
6935
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6936
0
                   "vkDestroyAccelerationStructureNV: Invalid device "
6937
0
                   "[VUID-vkDestroyAccelerationStructureNV-device-parameter]");
6938
0
        abort(); /* Intentionally fail so user can correct issue. */
6939
0
    }
6940
0
    disp->DestroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
6941
0
}
6942
6943
VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureMemoryRequirementsNV(
6944
    VkDevice                                    device,
6945
    const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
6946
0
    VkMemoryRequirements2KHR*                   pMemoryRequirements) {
6947
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6948
0
    if (NULL == disp) {
6949
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6950
0
                   "vkGetAccelerationStructureMemoryRequirementsNV: Invalid device "
6951
0
                   "[VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter]");
6952
0
        abort(); /* Intentionally fail so user can correct issue. */
6953
0
    }
6954
0
    disp->GetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
6955
0
}
6956
6957
VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV(
6958
    VkDevice                                    device,
6959
    uint32_t                                    bindInfoCount,
6960
0
    const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
6961
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6962
0
    if (NULL == disp) {
6963
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6964
0
                   "vkBindAccelerationStructureMemoryNV: Invalid device "
6965
0
                   "[VUID-vkBindAccelerationStructureMemoryNV-device-parameter]");
6966
0
        abort(); /* Intentionally fail so user can correct issue. */
6967
0
    }
6968
0
    return disp->BindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
6969
0
}
6970
6971
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV(
6972
    VkCommandBuffer                             commandBuffer,
6973
    const VkAccelerationStructureInfoNV*        pInfo,
6974
    VkBuffer                                    instanceData,
6975
    VkDeviceSize                                instanceOffset,
6976
    VkBool32                                    update,
6977
    VkAccelerationStructureNV                   dst,
6978
    VkAccelerationStructureNV                   src,
6979
    VkBuffer                                    scratch,
6980
0
    VkDeviceSize                                scratchOffset) {
6981
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6982
0
    if (NULL == disp) {
6983
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6984
0
                   "vkCmdBuildAccelerationStructureNV: Invalid commandBuffer "
6985
0
                   "[VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter]");
6986
0
        abort(); /* Intentionally fail so user can correct issue. */
6987
0
    }
6988
0
    disp->CmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
6989
0
}
6990
6991
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV(
6992
    VkCommandBuffer                             commandBuffer,
6993
    VkAccelerationStructureNV                   dst,
6994
    VkAccelerationStructureNV                   src,
6995
0
    VkCopyAccelerationStructureModeKHR          mode) {
6996
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6997
0
    if (NULL == disp) {
6998
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6999
0
                   "vkCmdCopyAccelerationStructureNV: Invalid commandBuffer "
7000
0
                   "[VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter]");
7001
0
        abort(); /* Intentionally fail so user can correct issue. */
7002
0
    }
7003
0
    disp->CmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
7004
0
}
7005
7006
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV(
7007
    VkCommandBuffer                             commandBuffer,
7008
    VkBuffer                                    raygenShaderBindingTableBuffer,
7009
    VkDeviceSize                                raygenShaderBindingOffset,
7010
    VkBuffer                                    missShaderBindingTableBuffer,
7011
    VkDeviceSize                                missShaderBindingOffset,
7012
    VkDeviceSize                                missShaderBindingStride,
7013
    VkBuffer                                    hitShaderBindingTableBuffer,
7014
    VkDeviceSize                                hitShaderBindingOffset,
7015
    VkDeviceSize                                hitShaderBindingStride,
7016
    VkBuffer                                    callableShaderBindingTableBuffer,
7017
    VkDeviceSize                                callableShaderBindingOffset,
7018
    VkDeviceSize                                callableShaderBindingStride,
7019
    uint32_t                                    width,
7020
    uint32_t                                    height,
7021
0
    uint32_t                                    depth) {
7022
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7023
0
    if (NULL == disp) {
7024
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7025
0
                   "vkCmdTraceRaysNV: Invalid commandBuffer "
7026
0
                   "[VUID-vkCmdTraceRaysNV-commandBuffer-parameter]");
7027
0
        abort(); /* Intentionally fail so user can correct issue. */
7028
0
    }
7029
0
    disp->CmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth);
7030
0
}
7031
7032
VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesNV(
7033
    VkDevice                                    device,
7034
    VkPipelineCache                             pipelineCache,
7035
    uint32_t                                    createInfoCount,
7036
    const VkRayTracingPipelineCreateInfoNV*     pCreateInfos,
7037
    const VkAllocationCallbacks*                pAllocator,
7038
0
    VkPipeline*                                 pPipelines) {
7039
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7040
0
    if (NULL == disp) {
7041
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7042
0
                   "vkCreateRayTracingPipelinesNV: Invalid device "
7043
0
                   "[VUID-vkCreateRayTracingPipelinesNV-device-parameter]");
7044
0
        abort(); /* Intentionally fail so user can correct issue. */
7045
0
    }
7046
0
    return disp->CreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
7047
0
}
7048
7049
7050
// ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
7051
7052
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR(
7053
    VkDevice                                    device,
7054
    VkPipeline                                  pipeline,
7055
    uint32_t                                    firstGroup,
7056
    uint32_t                                    groupCount,
7057
    size_t                                      dataSize,
7058
0
    void*                                       pData) {
7059
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7060
0
    if (NULL == disp) {
7061
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7062
0
                   "vkGetRayTracingShaderGroupHandlesKHR: Invalid device "
7063
0
                   "[VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter]");
7064
0
        abort(); /* Intentionally fail so user can correct issue. */
7065
0
    }
7066
0
    return disp->GetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
7067
0
}
7068
7069
7070
// ---- VK_NV_ray_tracing extension trampoline/terminators
7071
7072
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV(
7073
    VkDevice                                    device,
7074
    VkPipeline                                  pipeline,
7075
    uint32_t                                    firstGroup,
7076
    uint32_t                                    groupCount,
7077
    size_t                                      dataSize,
7078
0
    void*                                       pData) {
7079
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7080
0
    if (NULL == disp) {
7081
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7082
0
                   "vkGetRayTracingShaderGroupHandlesNV: Invalid device "
7083
0
                   "[VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter]");
7084
0
        abort(); /* Intentionally fail so user can correct issue. */
7085
0
    }
7086
0
    return disp->GetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData);
7087
0
}
7088
7089
VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV(
7090
    VkDevice                                    device,
7091
    VkAccelerationStructureNV                   accelerationStructure,
7092
    size_t                                      dataSize,
7093
0
    void*                                       pData) {
7094
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7095
0
    if (NULL == disp) {
7096
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7097
0
                   "vkGetAccelerationStructureHandleNV: Invalid device "
7098
0
                   "[VUID-vkGetAccelerationStructureHandleNV-device-parameter]");
7099
0
        abort(); /* Intentionally fail so user can correct issue. */
7100
0
    }
7101
0
    return disp->GetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
7102
0
}
7103
7104
VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV(
7105
    VkCommandBuffer                             commandBuffer,
7106
    uint32_t                                    accelerationStructureCount,
7107
    const VkAccelerationStructureNV*            pAccelerationStructures,
7108
    VkQueryType                                 queryType,
7109
    VkQueryPool                                 queryPool,
7110
0
    uint32_t                                    firstQuery) {
7111
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7112
0
    if (NULL == disp) {
7113
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7114
0
                   "vkCmdWriteAccelerationStructuresPropertiesNV: Invalid commandBuffer "
7115
0
                   "[VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter]");
7116
0
        abort(); /* Intentionally fail so user can correct issue. */
7117
0
    }
7118
0
    disp->CmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
7119
0
}
7120
7121
VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV(
7122
    VkDevice                                    device,
7123
    VkPipeline                                  pipeline,
7124
0
    uint32_t                                    shader) {
7125
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7126
0
    if (NULL == disp) {
7127
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7128
0
                   "vkCompileDeferredNV: Invalid device "
7129
0
                   "[VUID-vkCompileDeferredNV-device-parameter]");
7130
0
        abort(); /* Intentionally fail so user can correct issue. */
7131
0
    }
7132
0
    return disp->CompileDeferredNV(device, pipeline, shader);
7133
0
}
7134
7135
7136
// ---- VK_EXT_external_memory_host extension trampoline/terminators
7137
7138
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT(
7139
    VkDevice                                    device,
7140
    VkExternalMemoryHandleTypeFlagBits          handleType,
7141
    const void*                                 pHostPointer,
7142
0
    VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties) {
7143
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7144
0
    if (NULL == disp) {
7145
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7146
0
                   "vkGetMemoryHostPointerPropertiesEXT: Invalid device "
7147
0
                   "[VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter]");
7148
0
        abort(); /* Intentionally fail so user can correct issue. */
7149
0
    }
7150
0
    return disp->GetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
7151
0
}
7152
7153
7154
// ---- VK_AMD_buffer_marker extension trampoline/terminators
7155
7156
VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD(
7157
    VkCommandBuffer                             commandBuffer,
7158
    VkPipelineStageFlagBits                     pipelineStage,
7159
    VkBuffer                                    dstBuffer,
7160
    VkDeviceSize                                dstOffset,
7161
0
    uint32_t                                    marker) {
7162
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7163
0
    if (NULL == disp) {
7164
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7165
0
                   "vkCmdWriteBufferMarkerAMD: Invalid commandBuffer "
7166
0
                   "[VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter]");
7167
0
        abort(); /* Intentionally fail so user can correct issue. */
7168
0
    }
7169
0
    disp->CmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
7170
0
}
7171
7172
VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD(
7173
    VkCommandBuffer                             commandBuffer,
7174
    VkPipelineStageFlags2                       stage,
7175
    VkBuffer                                    dstBuffer,
7176
    VkDeviceSize                                dstOffset,
7177
0
    uint32_t                                    marker) {
7178
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7179
0
    if (NULL == disp) {
7180
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7181
0
                   "vkCmdWriteBufferMarker2AMD: Invalid commandBuffer "
7182
0
                   "[VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter]");
7183
0
        abort(); /* Intentionally fail so user can correct issue. */
7184
0
    }
7185
0
    disp->CmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker);
7186
0
}
7187
7188
7189
// ---- VK_EXT_calibrated_timestamps extension trampoline/terminators
7190
7191
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(
7192
    VkPhysicalDevice                            physicalDevice,
7193
    uint32_t*                                   pTimeDomainCount,
7194
0
    VkTimeDomainKHR*                            pTimeDomains) {
7195
0
    const VkLayerInstanceDispatchTable *disp;
7196
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7197
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7198
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7199
0
                   "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: Invalid physicalDevice "
7200
0
                   "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter]");
7201
0
        abort(); /* Intentionally fail so user can correct issue. */
7202
0
    }
7203
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7204
0
    return disp->GetPhysicalDeviceCalibrateableTimeDomainsEXT(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
7205
0
}
7206
7207
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(
7208
    VkPhysicalDevice                            physicalDevice,
7209
    uint32_t*                                   pTimeDomainCount,
7210
0
    VkTimeDomainKHR*                            pTimeDomains) {
7211
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7212
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7213
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT) {
7214
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7215
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsEXT");
7216
0
        abort(); /* Intentionally fail so user can correct issue. */
7217
0
    }
7218
0
    return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
7219
0
}
7220
7221
VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT(
7222
    VkDevice                                    device,
7223
    uint32_t                                    timestampCount,
7224
    const VkCalibratedTimestampInfoKHR*         pTimestampInfos,
7225
    uint64_t*                                   pTimestamps,
7226
0
    uint64_t*                                   pMaxDeviation) {
7227
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7228
0
    if (NULL == disp) {
7229
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7230
0
                   "vkGetCalibratedTimestampsEXT: Invalid device "
7231
0
                   "[VUID-vkGetCalibratedTimestampsEXT-device-parameter]");
7232
0
        abort(); /* Intentionally fail so user can correct issue. */
7233
0
    }
7234
0
    return disp->GetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
7235
0
}
7236
7237
7238
// ---- VK_NV_mesh_shader extension trampoline/terminators
7239
7240
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV(
7241
    VkCommandBuffer                             commandBuffer,
7242
    uint32_t                                    taskCount,
7243
0
    uint32_t                                    firstTask) {
7244
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7245
0
    if (NULL == disp) {
7246
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7247
0
                   "vkCmdDrawMeshTasksNV: Invalid commandBuffer "
7248
0
                   "[VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter]");
7249
0
        abort(); /* Intentionally fail so user can correct issue. */
7250
0
    }
7251
0
    disp->CmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask);
7252
0
}
7253
7254
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV(
7255
    VkCommandBuffer                             commandBuffer,
7256
    VkBuffer                                    buffer,
7257
    VkDeviceSize                                offset,
7258
    uint32_t                                    drawCount,
7259
0
    uint32_t                                    stride) {
7260
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7261
0
    if (NULL == disp) {
7262
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7263
0
                   "vkCmdDrawMeshTasksIndirectNV: Invalid commandBuffer "
7264
0
                   "[VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter]");
7265
0
        abort(); /* Intentionally fail so user can correct issue. */
7266
0
    }
7267
0
    disp->CmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride);
7268
0
}
7269
7270
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV(
7271
    VkCommandBuffer                             commandBuffer,
7272
    VkBuffer                                    buffer,
7273
    VkDeviceSize                                offset,
7274
    VkBuffer                                    countBuffer,
7275
    VkDeviceSize                                countBufferOffset,
7276
    uint32_t                                    maxDrawCount,
7277
0
    uint32_t                                    stride) {
7278
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7279
0
    if (NULL == disp) {
7280
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7281
0
                   "vkCmdDrawMeshTasksIndirectCountNV: Invalid commandBuffer "
7282
0
                   "[VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter]");
7283
0
        abort(); /* Intentionally fail so user can correct issue. */
7284
0
    }
7285
0
    disp->CmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
7286
0
}
7287
7288
7289
// ---- VK_NV_scissor_exclusive extension trampoline/terminators
7290
7291
VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorEnableNV(
7292
    VkCommandBuffer                             commandBuffer,
7293
    uint32_t                                    firstExclusiveScissor,
7294
    uint32_t                                    exclusiveScissorCount,
7295
0
    const VkBool32*                             pExclusiveScissorEnables) {
7296
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7297
0
    if (NULL == disp) {
7298
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7299
0
                   "vkCmdSetExclusiveScissorEnableNV: Invalid commandBuffer "
7300
0
                   "[VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameter]");
7301
0
        abort(); /* Intentionally fail so user can correct issue. */
7302
0
    }
7303
0
    disp->CmdSetExclusiveScissorEnableNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables);
7304
0
}
7305
7306
VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV(
7307
    VkCommandBuffer                             commandBuffer,
7308
    uint32_t                                    firstExclusiveScissor,
7309
    uint32_t                                    exclusiveScissorCount,
7310
0
    const VkRect2D*                             pExclusiveScissors) {
7311
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7312
0
    if (NULL == disp) {
7313
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7314
0
                   "vkCmdSetExclusiveScissorNV: Invalid commandBuffer "
7315
0
                   "[VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter]");
7316
0
        abort(); /* Intentionally fail so user can correct issue. */
7317
0
    }
7318
0
    disp->CmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors);
7319
0
}
7320
7321
7322
// ---- VK_NV_device_diagnostic_checkpoints extension trampoline/terminators
7323
7324
VKAPI_ATTR void VKAPI_CALL CmdSetCheckpointNV(
7325
    VkCommandBuffer                             commandBuffer,
7326
0
    const void*                                 pCheckpointMarker) {
7327
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7328
0
    if (NULL == disp) {
7329
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7330
0
                   "vkCmdSetCheckpointNV: Invalid commandBuffer "
7331
0
                   "[VUID-vkCmdSetCheckpointNV-commandBuffer-parameter]");
7332
0
        abort(); /* Intentionally fail so user can correct issue. */
7333
0
    }
7334
0
    disp->CmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
7335
0
}
7336
7337
VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV(
7338
    VkQueue                                     queue,
7339
    uint32_t*                                   pCheckpointDataCount,
7340
0
    VkCheckpointDataNV*                         pCheckpointData) {
7341
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7342
0
    if (NULL == disp) {
7343
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7344
0
                   "vkGetQueueCheckpointDataNV: Invalid queue "
7345
0
                   "[VUID-vkGetQueueCheckpointDataNV-queue-parameter]");
7346
0
        abort(); /* Intentionally fail so user can correct issue. */
7347
0
    }
7348
0
    disp->GetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
7349
0
}
7350
7351
VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV(
7352
    VkQueue                                     queue,
7353
    uint32_t*                                   pCheckpointDataCount,
7354
0
    VkCheckpointData2NV*                        pCheckpointData) {
7355
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7356
0
    if (NULL == disp) {
7357
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7358
0
                   "vkGetQueueCheckpointData2NV: Invalid queue "
7359
0
                   "[VUID-vkGetQueueCheckpointData2NV-queue-parameter]");
7360
0
        abort(); /* Intentionally fail so user can correct issue. */
7361
0
    }
7362
0
    disp->GetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
7363
0
}
7364
7365
7366
// ---- VK_EXT_present_timing extension trampoline/terminators
7367
7368
VKAPI_ATTR VkResult VKAPI_CALL SetSwapchainPresentTimingQueueSizeEXT(
7369
    VkDevice                                    device,
7370
    VkSwapchainKHR                              swapchain,
7371
0
    uint32_t                                    size) {
7372
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7373
0
    if (NULL == disp) {
7374
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7375
0
                   "vkSetSwapchainPresentTimingQueueSizeEXT: Invalid device "
7376
0
                   "[VUID-vkSetSwapchainPresentTimingQueueSizeEXT-device-parameter]");
7377
0
        abort(); /* Intentionally fail so user can correct issue. */
7378
0
    }
7379
0
    return disp->SetSwapchainPresentTimingQueueSizeEXT(device, swapchain, size);
7380
0
}
7381
7382
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimingPropertiesEXT(
7383
    VkDevice                                    device,
7384
    VkSwapchainKHR                              swapchain,
7385
    VkSwapchainTimingPropertiesEXT*             pSwapchainTimingProperties,
7386
0
    uint64_t*                                   pSwapchainTimingPropertiesCounter) {
7387
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7388
0
    if (NULL == disp) {
7389
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7390
0
                   "vkGetSwapchainTimingPropertiesEXT: Invalid device "
7391
0
                   "[VUID-vkGetSwapchainTimingPropertiesEXT-device-parameter]");
7392
0
        abort(); /* Intentionally fail so user can correct issue. */
7393
0
    }
7394
0
    return disp->GetSwapchainTimingPropertiesEXT(device, swapchain, pSwapchainTimingProperties, pSwapchainTimingPropertiesCounter);
7395
0
}
7396
7397
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainTimeDomainPropertiesEXT(
7398
    VkDevice                                    device,
7399
    VkSwapchainKHR                              swapchain,
7400
    VkSwapchainTimeDomainPropertiesEXT*         pSwapchainTimeDomainProperties,
7401
0
    uint64_t*                                   pTimeDomainsCounter) {
7402
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7403
0
    if (NULL == disp) {
7404
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7405
0
                   "vkGetSwapchainTimeDomainPropertiesEXT: Invalid device "
7406
0
                   "[VUID-vkGetSwapchainTimeDomainPropertiesEXT-device-parameter]");
7407
0
        abort(); /* Intentionally fail so user can correct issue. */
7408
0
    }
7409
0
    return disp->GetSwapchainTimeDomainPropertiesEXT(device, swapchain, pSwapchainTimeDomainProperties, pTimeDomainsCounter);
7410
0
}
7411
7412
VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingEXT(
7413
    VkDevice                                    device,
7414
    const VkPastPresentationTimingInfoEXT*      pPastPresentationTimingInfo,
7415
0
    VkPastPresentationTimingPropertiesEXT*      pPastPresentationTimingProperties) {
7416
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7417
0
    if (NULL == disp) {
7418
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7419
0
                   "vkGetPastPresentationTimingEXT: Invalid device "
7420
0
                   "[VUID-vkGetPastPresentationTimingEXT-device-parameter]");
7421
0
        abort(); /* Intentionally fail so user can correct issue. */
7422
0
    }
7423
0
    return disp->GetPastPresentationTimingEXT(device, pPastPresentationTimingInfo, pPastPresentationTimingProperties);
7424
0
}
7425
7426
7427
// ---- VK_INTEL_performance_query extension trampoline/terminators
7428
7429
VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL(
7430
    VkDevice                                    device,
7431
0
    const VkInitializePerformanceApiInfoINTEL*  pInitializeInfo) {
7432
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7433
0
    if (NULL == disp) {
7434
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7435
0
                   "vkInitializePerformanceApiINTEL: Invalid device "
7436
0
                   "[VUID-vkInitializePerformanceApiINTEL-device-parameter]");
7437
0
        abort(); /* Intentionally fail so user can correct issue. */
7438
0
    }
7439
0
    return disp->InitializePerformanceApiINTEL(device, pInitializeInfo);
7440
0
}
7441
7442
VKAPI_ATTR void VKAPI_CALL UninitializePerformanceApiINTEL(
7443
0
    VkDevice                                    device) {
7444
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7445
0
    if (NULL == disp) {
7446
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7447
0
                   "vkUninitializePerformanceApiINTEL: Invalid device "
7448
0
                   "[VUID-vkUninitializePerformanceApiINTEL-device-parameter]");
7449
0
        abort(); /* Intentionally fail so user can correct issue. */
7450
0
    }
7451
0
    disp->UninitializePerformanceApiINTEL(device);
7452
0
}
7453
7454
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceMarkerINTEL(
7455
    VkCommandBuffer                             commandBuffer,
7456
0
    const VkPerformanceMarkerInfoINTEL*         pMarkerInfo) {
7457
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7458
0
    if (NULL == disp) {
7459
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7460
0
                   "vkCmdSetPerformanceMarkerINTEL: Invalid commandBuffer "
7461
0
                   "[VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter]");
7462
0
        abort(); /* Intentionally fail so user can correct issue. */
7463
0
    }
7464
0
    return disp->CmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo);
7465
0
}
7466
7467
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceStreamMarkerINTEL(
7468
    VkCommandBuffer                             commandBuffer,
7469
0
    const VkPerformanceStreamMarkerInfoINTEL*   pMarkerInfo) {
7470
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7471
0
    if (NULL == disp) {
7472
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7473
0
                   "vkCmdSetPerformanceStreamMarkerINTEL: Invalid commandBuffer "
7474
0
                   "[VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter]");
7475
0
        abort(); /* Intentionally fail so user can correct issue. */
7476
0
    }
7477
0
    return disp->CmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo);
7478
0
}
7479
7480
VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceOverrideINTEL(
7481
    VkCommandBuffer                             commandBuffer,
7482
0
    const VkPerformanceOverrideInfoINTEL*       pOverrideInfo) {
7483
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7484
0
    if (NULL == disp) {
7485
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7486
0
                   "vkCmdSetPerformanceOverrideINTEL: Invalid commandBuffer "
7487
0
                   "[VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter]");
7488
0
        abort(); /* Intentionally fail so user can correct issue. */
7489
0
    }
7490
0
    return disp->CmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo);
7491
0
}
7492
7493
VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL(
7494
    VkDevice                                    device,
7495
    const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
7496
0
    VkPerformanceConfigurationINTEL*            pConfiguration) {
7497
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7498
0
    if (NULL == disp) {
7499
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7500
0
                   "vkAcquirePerformanceConfigurationINTEL: Invalid device "
7501
0
                   "[VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter]");
7502
0
        abort(); /* Intentionally fail so user can correct issue. */
7503
0
    }
7504
0
    return disp->AcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration);
7505
0
}
7506
7507
VKAPI_ATTR VkResult VKAPI_CALL ReleasePerformanceConfigurationINTEL(
7508
    VkDevice                                    device,
7509
0
    VkPerformanceConfigurationINTEL             configuration) {
7510
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7511
0
    if (NULL == disp) {
7512
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7513
0
                   "vkReleasePerformanceConfigurationINTEL: Invalid device "
7514
0
                   "[VUID-vkReleasePerformanceConfigurationINTEL-device-parameter]");
7515
0
        abort(); /* Intentionally fail so user can correct issue. */
7516
0
    }
7517
0
    return disp->ReleasePerformanceConfigurationINTEL(device, configuration);
7518
0
}
7519
7520
VKAPI_ATTR VkResult VKAPI_CALL QueueSetPerformanceConfigurationINTEL(
7521
    VkQueue                                     queue,
7522
0
    VkPerformanceConfigurationINTEL             configuration) {
7523
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7524
0
    if (NULL == disp) {
7525
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7526
0
                   "vkQueueSetPerformanceConfigurationINTEL: Invalid queue "
7527
0
                   "[VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter]");
7528
0
        abort(); /* Intentionally fail so user can correct issue. */
7529
0
    }
7530
0
    return disp->QueueSetPerformanceConfigurationINTEL(queue, configuration);
7531
0
}
7532
7533
VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL(
7534
    VkDevice                                    device,
7535
    VkPerformanceParameterTypeINTEL             parameter,
7536
0
    VkPerformanceValueINTEL*                    pValue) {
7537
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7538
0
    if (NULL == disp) {
7539
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7540
0
                   "vkGetPerformanceParameterINTEL: Invalid device "
7541
0
                   "[VUID-vkGetPerformanceParameterINTEL-device-parameter]");
7542
0
        abort(); /* Intentionally fail so user can correct issue. */
7543
0
    }
7544
0
    return disp->GetPerformanceParameterINTEL(device, parameter, pValue);
7545
0
}
7546
7547
7548
// ---- VK_AMD_display_native_hdr extension trampoline/terminators
7549
7550
VKAPI_ATTR void VKAPI_CALL SetLocalDimmingAMD(
7551
    VkDevice                                    device,
7552
    VkSwapchainKHR                              swapChain,
7553
0
    VkBool32                                    localDimmingEnable) {
7554
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7555
0
    if (NULL == disp) {
7556
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7557
0
                   "vkSetLocalDimmingAMD: Invalid device "
7558
0
                   "[VUID-vkSetLocalDimmingAMD-device-parameter]");
7559
0
        abort(); /* Intentionally fail so user can correct issue. */
7560
0
    }
7561
0
    disp->SetLocalDimmingAMD(device, swapChain, localDimmingEnable);
7562
0
}
7563
7564
7565
// ---- VK_EXT_buffer_device_address extension trampoline/terminators
7566
7567
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT(
7568
    VkDevice                                    device,
7569
0
    const VkBufferDeviceAddressInfo*            pInfo) {
7570
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7571
0
    if (NULL == disp) {
7572
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7573
0
                   "vkGetBufferDeviceAddressEXT: Invalid device "
7574
0
                   "[VUID-vkGetBufferDeviceAddressEXT-device-parameter]");
7575
0
        abort(); /* Intentionally fail so user can correct issue. */
7576
0
    }
7577
0
    return disp->GetBufferDeviceAddressEXT(device, pInfo);
7578
0
}
7579
7580
7581
// ---- VK_NV_cooperative_matrix extension trampoline/terminators
7582
7583
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV(
7584
    VkPhysicalDevice                            physicalDevice,
7585
    uint32_t*                                   pPropertyCount,
7586
0
    VkCooperativeMatrixPropertiesNV*            pProperties) {
7587
0
    const VkLayerInstanceDispatchTable *disp;
7588
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7589
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7590
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7591
0
                   "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV: Invalid physicalDevice "
7592
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter]");
7593
0
        abort(); /* Intentionally fail so user can correct issue. */
7594
0
    }
7595
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7596
0
    return disp->GetPhysicalDeviceCooperativeMatrixPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
7597
0
}
7598
7599
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(
7600
    VkPhysicalDevice                            physicalDevice,
7601
    uint32_t*                                   pPropertyCount,
7602
0
    VkCooperativeMatrixPropertiesNV*            pProperties) {
7603
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7604
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7605
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV) {
7606
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7607
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesNV");
7608
0
        abort(); /* Intentionally fail so user can correct issue. */
7609
0
    }
7610
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
7611
0
}
7612
7613
7614
// ---- VK_NV_coverage_reduction_mode extension trampoline/terminators
7615
7616
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
7617
    VkPhysicalDevice                            physicalDevice,
7618
    uint32_t*                                   pCombinationCount,
7619
0
    VkFramebufferMixedSamplesCombinationNV*     pCombinations) {
7620
0
    const VkLayerInstanceDispatchTable *disp;
7621
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7622
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7623
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7624
0
                   "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: Invalid physicalDevice "
7625
0
                   "[VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter]");
7626
0
        abort(); /* Intentionally fail so user can correct issue. */
7627
0
    }
7628
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
7629
0
    return disp->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(unwrapped_phys_dev, pCombinationCount, pCombinations);
7630
0
}
7631
7632
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
7633
    VkPhysicalDevice                            physicalDevice,
7634
    uint32_t*                                   pCombinationCount,
7635
0
    VkFramebufferMixedSamplesCombinationNV*     pCombinations) {
7636
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7637
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7638
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) {
7639
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7640
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
7641
0
        abort(); /* Intentionally fail so user can correct issue. */
7642
0
    }
7643
0
    return icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(phys_dev_term->phys_dev, pCombinationCount, pCombinations);
7644
0
}
7645
7646
7647
// ---- VK_EXT_full_screen_exclusive extension trampoline/terminators
7648
7649
#if defined(VK_USE_PLATFORM_WIN32_KHR)
7650
VKAPI_ATTR VkResult VKAPI_CALL AcquireFullScreenExclusiveModeEXT(
7651
    VkDevice                                    device,
7652
    VkSwapchainKHR                              swapchain) {
7653
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7654
    if (NULL == disp) {
7655
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7656
                   "vkAcquireFullScreenExclusiveModeEXT: Invalid device "
7657
                   "[VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter]");
7658
        abort(); /* Intentionally fail so user can correct issue. */
7659
    }
7660
    return disp->AcquireFullScreenExclusiveModeEXT(device, swapchain);
7661
}
7662
7663
#endif // VK_USE_PLATFORM_WIN32_KHR
7664
#if defined(VK_USE_PLATFORM_WIN32_KHR)
7665
VKAPI_ATTR VkResult VKAPI_CALL ReleaseFullScreenExclusiveModeEXT(
7666
    VkDevice                                    device,
7667
    VkSwapchainKHR                              swapchain) {
7668
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7669
    if (NULL == disp) {
7670
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7671
                   "vkReleaseFullScreenExclusiveModeEXT: Invalid device "
7672
                   "[VUID-vkReleaseFullScreenExclusiveModeEXT-device-parameter]");
7673
        abort(); /* Intentionally fail so user can correct issue. */
7674
    }
7675
    return disp->ReleaseFullScreenExclusiveModeEXT(device, swapchain);
7676
}
7677
7678
#endif // VK_USE_PLATFORM_WIN32_KHR
7679
7680
// ---- VK_EXT_line_rasterization extension trampoline/terminators
7681
7682
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEXT(
7683
    VkCommandBuffer                             commandBuffer,
7684
    uint32_t                                    lineStippleFactor,
7685
0
    uint16_t                                    lineStipplePattern) {
7686
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7687
0
    if (NULL == disp) {
7688
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7689
0
                   "vkCmdSetLineStippleEXT: Invalid commandBuffer "
7690
0
                   "[VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter]");
7691
0
        abort(); /* Intentionally fail so user can correct issue. */
7692
0
    }
7693
0
    disp->CmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
7694
0
}
7695
7696
7697
// ---- VK_EXT_host_query_reset extension trampoline/terminators
7698
7699
VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT(
7700
    VkDevice                                    device,
7701
    VkQueryPool                                 queryPool,
7702
    uint32_t                                    firstQuery,
7703
0
    uint32_t                                    queryCount) {
7704
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7705
0
    if (NULL == disp) {
7706
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7707
0
                   "vkResetQueryPoolEXT: Invalid device "
7708
0
                   "[VUID-vkResetQueryPoolEXT-device-parameter]");
7709
0
        abort(); /* Intentionally fail so user can correct issue. */
7710
0
    }
7711
0
    disp->ResetQueryPoolEXT(device, queryPool, firstQuery, queryCount);
7712
0
}
7713
7714
7715
// ---- VK_EXT_extended_dynamic_state extension trampoline/terminators
7716
7717
VKAPI_ATTR void VKAPI_CALL CmdSetCullModeEXT(
7718
    VkCommandBuffer                             commandBuffer,
7719
0
    VkCullModeFlags                             cullMode) {
7720
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7721
0
    if (NULL == disp) {
7722
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7723
0
                   "vkCmdSetCullModeEXT: Invalid commandBuffer "
7724
0
                   "[VUID-vkCmdSetCullModeEXT-commandBuffer-parameter]");
7725
0
        abort(); /* Intentionally fail so user can correct issue. */
7726
0
    }
7727
0
    disp->CmdSetCullModeEXT(commandBuffer, cullMode);
7728
0
}
7729
7730
VKAPI_ATTR void VKAPI_CALL CmdSetFrontFaceEXT(
7731
    VkCommandBuffer                             commandBuffer,
7732
0
    VkFrontFace                                 frontFace) {
7733
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7734
0
    if (NULL == disp) {
7735
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7736
0
                   "vkCmdSetFrontFaceEXT: Invalid commandBuffer "
7737
0
                   "[VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter]");
7738
0
        abort(); /* Intentionally fail so user can correct issue. */
7739
0
    }
7740
0
    disp->CmdSetFrontFaceEXT(commandBuffer, frontFace);
7741
0
}
7742
7743
VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopologyEXT(
7744
    VkCommandBuffer                             commandBuffer,
7745
0
    VkPrimitiveTopology                         primitiveTopology) {
7746
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7747
0
    if (NULL == disp) {
7748
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7749
0
                   "vkCmdSetPrimitiveTopologyEXT: Invalid commandBuffer "
7750
0
                   "[VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter]");
7751
0
        abort(); /* Intentionally fail so user can correct issue. */
7752
0
    }
7753
0
    disp->CmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology);
7754
0
}
7755
7756
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT(
7757
    VkCommandBuffer                             commandBuffer,
7758
    uint32_t                                    viewportCount,
7759
0
    const VkViewport*                           pViewports) {
7760
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7761
0
    if (NULL == disp) {
7762
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7763
0
                   "vkCmdSetViewportWithCountEXT: Invalid commandBuffer "
7764
0
                   "[VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter]");
7765
0
        abort(); /* Intentionally fail so user can correct issue. */
7766
0
    }
7767
0
    disp->CmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports);
7768
0
}
7769
7770
VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT(
7771
    VkCommandBuffer                             commandBuffer,
7772
    uint32_t                                    scissorCount,
7773
0
    const VkRect2D*                             pScissors) {
7774
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7775
0
    if (NULL == disp) {
7776
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7777
0
                   "vkCmdSetScissorWithCountEXT: Invalid commandBuffer "
7778
0
                   "[VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter]");
7779
0
        abort(); /* Intentionally fail so user can correct issue. */
7780
0
    }
7781
0
    disp->CmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors);
7782
0
}
7783
7784
VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT(
7785
    VkCommandBuffer                             commandBuffer,
7786
    uint32_t                                    firstBinding,
7787
    uint32_t                                    bindingCount,
7788
    const VkBuffer*                             pBuffers,
7789
    const VkDeviceSize*                         pOffsets,
7790
    const VkDeviceSize*                         pSizes,
7791
0
    const VkDeviceSize*                         pStrides) {
7792
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7793
0
    if (NULL == disp) {
7794
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7795
0
                   "vkCmdBindVertexBuffers2EXT: Invalid commandBuffer "
7796
0
                   "[VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter]");
7797
0
        abort(); /* Intentionally fail so user can correct issue. */
7798
0
    }
7799
0
    disp->CmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
7800
0
}
7801
7802
VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnableEXT(
7803
    VkCommandBuffer                             commandBuffer,
7804
0
    VkBool32                                    depthTestEnable) {
7805
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7806
0
    if (NULL == disp) {
7807
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7808
0
                   "vkCmdSetDepthTestEnableEXT: Invalid commandBuffer "
7809
0
                   "[VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter]");
7810
0
        abort(); /* Intentionally fail so user can correct issue. */
7811
0
    }
7812
0
    disp->CmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable);
7813
0
}
7814
7815
VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnableEXT(
7816
    VkCommandBuffer                             commandBuffer,
7817
0
    VkBool32                                    depthWriteEnable) {
7818
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7819
0
    if (NULL == disp) {
7820
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7821
0
                   "vkCmdSetDepthWriteEnableEXT: Invalid commandBuffer "
7822
0
                   "[VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter]");
7823
0
        abort(); /* Intentionally fail so user can correct issue. */
7824
0
    }
7825
0
    disp->CmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable);
7826
0
}
7827
7828
VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOpEXT(
7829
    VkCommandBuffer                             commandBuffer,
7830
0
    VkCompareOp                                 depthCompareOp) {
7831
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7832
0
    if (NULL == disp) {
7833
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7834
0
                   "vkCmdSetDepthCompareOpEXT: Invalid commandBuffer "
7835
0
                   "[VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter]");
7836
0
        abort(); /* Intentionally fail so user can correct issue. */
7837
0
    }
7838
0
    disp->CmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp);
7839
0
}
7840
7841
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnableEXT(
7842
    VkCommandBuffer                             commandBuffer,
7843
0
    VkBool32                                    depthBoundsTestEnable) {
7844
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7845
0
    if (NULL == disp) {
7846
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7847
0
                   "vkCmdSetDepthBoundsTestEnableEXT: Invalid commandBuffer "
7848
0
                   "[VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter]");
7849
0
        abort(); /* Intentionally fail so user can correct issue. */
7850
0
    }
7851
0
    disp->CmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable);
7852
0
}
7853
7854
VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnableEXT(
7855
    VkCommandBuffer                             commandBuffer,
7856
0
    VkBool32                                    stencilTestEnable) {
7857
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7858
0
    if (NULL == disp) {
7859
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7860
0
                   "vkCmdSetStencilTestEnableEXT: Invalid commandBuffer "
7861
0
                   "[VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter]");
7862
0
        abort(); /* Intentionally fail so user can correct issue. */
7863
0
    }
7864
0
    disp->CmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable);
7865
0
}
7866
7867
VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT(
7868
    VkCommandBuffer                             commandBuffer,
7869
    VkStencilFaceFlags                          faceMask,
7870
    VkStencilOp                                 failOp,
7871
    VkStencilOp                                 passOp,
7872
    VkStencilOp                                 depthFailOp,
7873
0
    VkCompareOp                                 compareOp) {
7874
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7875
0
    if (NULL == disp) {
7876
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7877
0
                   "vkCmdSetStencilOpEXT: Invalid commandBuffer "
7878
0
                   "[VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter]");
7879
0
        abort(); /* Intentionally fail so user can correct issue. */
7880
0
    }
7881
0
    disp->CmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
7882
0
}
7883
7884
7885
// ---- VK_EXT_host_image_copy extension trampoline/terminators
7886
7887
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT(
7888
    VkDevice                                    device,
7889
0
    const VkCopyMemoryToImageInfo*              pCopyMemoryToImageInfo) {
7890
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7891
0
    if (NULL == disp) {
7892
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7893
0
                   "vkCopyMemoryToImageEXT: Invalid device "
7894
0
                   "[VUID-vkCopyMemoryToImageEXT-device-parameter]");
7895
0
        abort(); /* Intentionally fail so user can correct issue. */
7896
0
    }
7897
0
    return disp->CopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
7898
0
}
7899
7900
VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT(
7901
    VkDevice                                    device,
7902
0
    const VkCopyImageToMemoryInfo*              pCopyImageToMemoryInfo) {
7903
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7904
0
    if (NULL == disp) {
7905
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7906
0
                   "vkCopyImageToMemoryEXT: Invalid device "
7907
0
                   "[VUID-vkCopyImageToMemoryEXT-device-parameter]");
7908
0
        abort(); /* Intentionally fail so user can correct issue. */
7909
0
    }
7910
0
    return disp->CopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
7911
0
}
7912
7913
VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT(
7914
    VkDevice                                    device,
7915
0
    const VkCopyImageToImageInfo*               pCopyImageToImageInfo) {
7916
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7917
0
    if (NULL == disp) {
7918
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7919
0
                   "vkCopyImageToImageEXT: Invalid device "
7920
0
                   "[VUID-vkCopyImageToImageEXT-device-parameter]");
7921
0
        abort(); /* Intentionally fail so user can correct issue. */
7922
0
    }
7923
0
    return disp->CopyImageToImageEXT(device, pCopyImageToImageInfo);
7924
0
}
7925
7926
VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT(
7927
    VkDevice                                    device,
7928
    uint32_t                                    transitionCount,
7929
0
    const VkHostImageLayoutTransitionInfo*      pTransitions) {
7930
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7931
0
    if (NULL == disp) {
7932
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7933
0
                   "vkTransitionImageLayoutEXT: Invalid device "
7934
0
                   "[VUID-vkTransitionImageLayoutEXT-device-parameter]");
7935
0
        abort(); /* Intentionally fail so user can correct issue. */
7936
0
    }
7937
0
    return disp->TransitionImageLayoutEXT(device, transitionCount, pTransitions);
7938
0
}
7939
7940
VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
7941
    VkDevice                                    device,
7942
    VkImage                                     image,
7943
    const VkImageSubresource2*                  pSubresource,
7944
0
    VkSubresourceLayout2*                       pLayout) {
7945
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7946
0
    if (NULL == disp) {
7947
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7948
0
                   "vkGetImageSubresourceLayout2EXT: Invalid device "
7949
0
                   "[VUID-vkGetImageSubresourceLayout2EXT-device-parameter]");
7950
0
        abort(); /* Intentionally fail so user can correct issue. */
7951
0
    }
7952
0
    disp->GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
7953
0
}
7954
7955
7956
// ---- VK_EXT_swapchain_maintenance1 extension trampoline/terminators
7957
7958
VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT(
7959
    VkDevice                                    device,
7960
0
    const VkReleaseSwapchainImagesInfoKHR*      pReleaseInfo) {
7961
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7962
0
    if (NULL == disp) {
7963
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7964
0
                   "vkReleaseSwapchainImagesEXT: Invalid device "
7965
0
                   "[VUID-vkReleaseSwapchainImagesEXT-device-parameter]");
7966
0
        abort(); /* Intentionally fail so user can correct issue. */
7967
0
    }
7968
0
    return disp->ReleaseSwapchainImagesEXT(device, pReleaseInfo);
7969
0
}
7970
7971
7972
// ---- VK_NV_device_generated_commands extension trampoline/terminators
7973
7974
VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsNV(
7975
    VkDevice                                    device,
7976
    const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
7977
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
7978
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7979
0
    if (NULL == disp) {
7980
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7981
0
                   "vkGetGeneratedCommandsMemoryRequirementsNV: Invalid device "
7982
0
                   "[VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter]");
7983
0
        abort(); /* Intentionally fail so user can correct issue. */
7984
0
    }
7985
0
    disp->GetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
7986
0
}
7987
7988
VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsNV(
7989
    VkCommandBuffer                             commandBuffer,
7990
0
    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo) {
7991
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7992
0
    if (NULL == disp) {
7993
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7994
0
                   "vkCmdPreprocessGeneratedCommandsNV: Invalid commandBuffer "
7995
0
                   "[VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter]");
7996
0
        abort(); /* Intentionally fail so user can correct issue. */
7997
0
    }
7998
0
    disp->CmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
7999
0
}
8000
8001
VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV(
8002
    VkCommandBuffer                             commandBuffer,
8003
    VkBool32                                    isPreprocessed,
8004
0
    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo) {
8005
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8006
0
    if (NULL == disp) {
8007
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8008
0
                   "vkCmdExecuteGeneratedCommandsNV: Invalid commandBuffer "
8009
0
                   "[VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter]");
8010
0
        abort(); /* Intentionally fail so user can correct issue. */
8011
0
    }
8012
0
    disp->CmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
8013
0
}
8014
8015
VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV(
8016
    VkCommandBuffer                             commandBuffer,
8017
    VkPipelineBindPoint                         pipelineBindPoint,
8018
    VkPipeline                                  pipeline,
8019
0
    uint32_t                                    groupIndex) {
8020
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8021
0
    if (NULL == disp) {
8022
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8023
0
                   "vkCmdBindPipelineShaderGroupNV: Invalid commandBuffer "
8024
0
                   "[VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter]");
8025
0
        abort(); /* Intentionally fail so user can correct issue. */
8026
0
    }
8027
0
    disp->CmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
8028
0
}
8029
8030
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV(
8031
    VkDevice                                    device,
8032
    const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
8033
    const VkAllocationCallbacks*                pAllocator,
8034
0
    VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout) {
8035
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8036
0
    if (NULL == disp) {
8037
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8038
0
                   "vkCreateIndirectCommandsLayoutNV: Invalid device "
8039
0
                   "[VUID-vkCreateIndirectCommandsLayoutNV-device-parameter]");
8040
0
        abort(); /* Intentionally fail so user can correct issue. */
8041
0
    }
8042
0
    return disp->CreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
8043
0
}
8044
8045
VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNV(
8046
    VkDevice                                    device,
8047
    VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
8048
0
    const VkAllocationCallbacks*                pAllocator) {
8049
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8050
0
    if (NULL == disp) {
8051
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8052
0
                   "vkDestroyIndirectCommandsLayoutNV: Invalid device "
8053
0
                   "[VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter]");
8054
0
        abort(); /* Intentionally fail so user can correct issue. */
8055
0
    }
8056
0
    disp->DestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
8057
0
}
8058
8059
8060
// ---- VK_EXT_depth_bias_control extension trampoline/terminators
8061
8062
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias2EXT(
8063
    VkCommandBuffer                             commandBuffer,
8064
0
    const VkDepthBiasInfoEXT*                   pDepthBiasInfo) {
8065
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8066
0
    if (NULL == disp) {
8067
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8068
0
                   "vkCmdSetDepthBias2EXT: Invalid commandBuffer "
8069
0
                   "[VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter]");
8070
0
        abort(); /* Intentionally fail so user can correct issue. */
8071
0
    }
8072
0
    disp->CmdSetDepthBias2EXT(commandBuffer, pDepthBiasInfo);
8073
0
}
8074
8075
8076
// ---- VK_EXT_acquire_drm_display extension trampoline/terminators
8077
8078
VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT(
8079
    VkPhysicalDevice                            physicalDevice,
8080
    int32_t                                     drmFd,
8081
0
    VkDisplayKHR                                display) {
8082
0
    const VkLayerInstanceDispatchTable *disp;
8083
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8084
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8085
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8086
0
                   "vkAcquireDrmDisplayEXT: Invalid physicalDevice "
8087
0
                   "[VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter]");
8088
0
        abort(); /* Intentionally fail so user can correct issue. */
8089
0
    }
8090
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8091
0
    return disp->AcquireDrmDisplayEXT(unwrapped_phys_dev, drmFd, display);
8092
0
}
8093
8094
VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireDrmDisplayEXT(
8095
    VkPhysicalDevice                            physicalDevice,
8096
    int32_t                                     drmFd,
8097
0
    VkDisplayKHR                                display) {
8098
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8099
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8100
0
    if (NULL == icd_term->dispatch.AcquireDrmDisplayEXT) {
8101
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
8102
0
                   "ICD associated with VkPhysicalDevice does not support AcquireDrmDisplayEXT");
8103
0
        return VK_ERROR_EXTENSION_NOT_PRESENT;
8104
0
    }
8105
0
    return icd_term->dispatch.AcquireDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, display);
8106
0
}
8107
8108
VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT(
8109
    VkPhysicalDevice                            physicalDevice,
8110
    int32_t                                     drmFd,
8111
    uint32_t                                    connectorId,
8112
0
    VkDisplayKHR*                               display) {
8113
0
    const VkLayerInstanceDispatchTable *disp;
8114
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8115
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8116
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8117
0
                   "vkGetDrmDisplayEXT: Invalid physicalDevice "
8118
0
                   "[VUID-vkGetDrmDisplayEXT-physicalDevice-parameter]");
8119
0
        abort(); /* Intentionally fail so user can correct issue. */
8120
0
    }
8121
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8122
0
    return disp->GetDrmDisplayEXT(unwrapped_phys_dev, drmFd, connectorId, display);
8123
0
}
8124
8125
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDrmDisplayEXT(
8126
    VkPhysicalDevice                            physicalDevice,
8127
    int32_t                                     drmFd,
8128
    uint32_t                                    connectorId,
8129
0
    VkDisplayKHR*                               display) {
8130
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8131
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8132
0
    if (NULL == icd_term->dispatch.GetDrmDisplayEXT) {
8133
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
8134
0
                   "ICD associated with VkPhysicalDevice does not support GetDrmDisplayEXT");
8135
0
        return VK_ERROR_EXTENSION_NOT_PRESENT;
8136
0
    }
8137
0
    return icd_term->dispatch.GetDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, connectorId, display);
8138
0
}
8139
8140
8141
// ---- VK_EXT_private_data extension trampoline/terminators
8142
8143
VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT(
8144
    VkDevice                                    device,
8145
    const VkPrivateDataSlotCreateInfo*          pCreateInfo,
8146
    const VkAllocationCallbacks*                pAllocator,
8147
0
    VkPrivateDataSlot*                          pPrivateDataSlot) {
8148
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8149
0
    if (NULL == disp) {
8150
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8151
0
                   "vkCreatePrivateDataSlotEXT: Invalid device "
8152
0
                   "[VUID-vkCreatePrivateDataSlotEXT-device-parameter]");
8153
0
        abort(); /* Intentionally fail so user can correct issue. */
8154
0
    }
8155
0
    return disp->CreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot);
8156
0
}
8157
8158
VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlotEXT(
8159
    VkDevice                                    device,
8160
    VkPrivateDataSlot                           privateDataSlot,
8161
0
    const VkAllocationCallbacks*                pAllocator) {
8162
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8163
0
    if (NULL == disp) {
8164
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8165
0
                   "vkDestroyPrivateDataSlotEXT: Invalid device "
8166
0
                   "[VUID-vkDestroyPrivateDataSlotEXT-device-parameter]");
8167
0
        abort(); /* Intentionally fail so user can correct issue. */
8168
0
    }
8169
0
    disp->DestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator);
8170
0
}
8171
8172
VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT(
8173
    VkDevice                                    device,
8174
    VkObjectType                                objectType,
8175
    uint64_t                                    objectHandle,
8176
    VkPrivateDataSlot                           privateDataSlot,
8177
0
    uint64_t                                    data) {
8178
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8179
0
    if (NULL == disp) {
8180
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8181
0
                   "vkSetPrivateDataEXT: Invalid device "
8182
0
                   "[VUID-vkSetPrivateDataEXT-device-parameter]");
8183
0
        abort(); /* Intentionally fail so user can correct issue. */
8184
0
    }
8185
0
    return disp->SetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data);
8186
0
}
8187
8188
VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT(
8189
    VkDevice                                    device,
8190
    VkObjectType                                objectType,
8191
    uint64_t                                    objectHandle,
8192
    VkPrivateDataSlot                           privateDataSlot,
8193
0
    uint64_t*                                   pData) {
8194
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8195
0
    if (NULL == disp) {
8196
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8197
0
                   "vkGetPrivateDataEXT: Invalid device "
8198
0
                   "[VUID-vkGetPrivateDataEXT-device-parameter]");
8199
0
        abort(); /* Intentionally fail so user can correct issue. */
8200
0
    }
8201
0
    disp->GetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData);
8202
0
}
8203
8204
8205
// ---- VK_NV_cuda_kernel_launch extension trampoline/terminators
8206
8207
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8208
VKAPI_ATTR VkResult VKAPI_CALL CreateCudaModuleNV(
8209
    VkDevice                                    device,
8210
    const VkCudaModuleCreateInfoNV*             pCreateInfo,
8211
    const VkAllocationCallbacks*                pAllocator,
8212
0
    VkCudaModuleNV*                             pModule) {
8213
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8214
0
    if (NULL == disp) {
8215
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8216
0
                   "vkCreateCudaModuleNV: Invalid device "
8217
0
                   "[VUID-vkCreateCudaModuleNV-device-parameter]");
8218
0
        abort(); /* Intentionally fail so user can correct issue. */
8219
0
    }
8220
0
    return disp->CreateCudaModuleNV(device, pCreateInfo, pAllocator, pModule);
8221
0
}
8222
8223
#endif // VK_ENABLE_BETA_EXTENSIONS
8224
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8225
VKAPI_ATTR VkResult VKAPI_CALL GetCudaModuleCacheNV(
8226
    VkDevice                                    device,
8227
    VkCudaModuleNV                              module,
8228
    size_t*                                     pCacheSize,
8229
0
    void*                                       pCacheData) {
8230
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8231
0
    if (NULL == disp) {
8232
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8233
0
                   "vkGetCudaModuleCacheNV: Invalid device "
8234
0
                   "[VUID-vkGetCudaModuleCacheNV-device-parameter]");
8235
0
        abort(); /* Intentionally fail so user can correct issue. */
8236
0
    }
8237
0
    return disp->GetCudaModuleCacheNV(device, module, pCacheSize, pCacheData);
8238
0
}
8239
8240
#endif // VK_ENABLE_BETA_EXTENSIONS
8241
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8242
VKAPI_ATTR VkResult VKAPI_CALL CreateCudaFunctionNV(
8243
    VkDevice                                    device,
8244
    const VkCudaFunctionCreateInfoNV*           pCreateInfo,
8245
    const VkAllocationCallbacks*                pAllocator,
8246
0
    VkCudaFunctionNV*                           pFunction) {
8247
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8248
0
    if (NULL == disp) {
8249
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8250
0
                   "vkCreateCudaFunctionNV: Invalid device "
8251
0
                   "[VUID-vkCreateCudaFunctionNV-device-parameter]");
8252
0
        abort(); /* Intentionally fail so user can correct issue. */
8253
0
    }
8254
0
    return disp->CreateCudaFunctionNV(device, pCreateInfo, pAllocator, pFunction);
8255
0
}
8256
8257
#endif // VK_ENABLE_BETA_EXTENSIONS
8258
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8259
VKAPI_ATTR void VKAPI_CALL DestroyCudaModuleNV(
8260
    VkDevice                                    device,
8261
    VkCudaModuleNV                              module,
8262
0
    const VkAllocationCallbacks*                pAllocator) {
8263
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8264
0
    if (NULL == disp) {
8265
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8266
0
                   "vkDestroyCudaModuleNV: Invalid device "
8267
0
                   "[VUID-vkDestroyCudaModuleNV-device-parameter]");
8268
0
        abort(); /* Intentionally fail so user can correct issue. */
8269
0
    }
8270
0
    disp->DestroyCudaModuleNV(device, module, pAllocator);
8271
0
}
8272
8273
#endif // VK_ENABLE_BETA_EXTENSIONS
8274
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8275
VKAPI_ATTR void VKAPI_CALL DestroyCudaFunctionNV(
8276
    VkDevice                                    device,
8277
    VkCudaFunctionNV                            function,
8278
0
    const VkAllocationCallbacks*                pAllocator) {
8279
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8280
0
    if (NULL == disp) {
8281
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8282
0
                   "vkDestroyCudaFunctionNV: Invalid device "
8283
0
                   "[VUID-vkDestroyCudaFunctionNV-device-parameter]");
8284
0
        abort(); /* Intentionally fail so user can correct issue. */
8285
0
    }
8286
0
    disp->DestroyCudaFunctionNV(device, function, pAllocator);
8287
0
}
8288
8289
#endif // VK_ENABLE_BETA_EXTENSIONS
8290
#if defined(VK_ENABLE_BETA_EXTENSIONS)
8291
VKAPI_ATTR void VKAPI_CALL CmdCudaLaunchKernelNV(
8292
    VkCommandBuffer                             commandBuffer,
8293
0
    const VkCudaLaunchInfoNV*                   pLaunchInfo) {
8294
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8295
0
    if (NULL == disp) {
8296
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8297
0
                   "vkCmdCudaLaunchKernelNV: Invalid commandBuffer "
8298
0
                   "[VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameter]");
8299
0
        abort(); /* Intentionally fail so user can correct issue. */
8300
0
    }
8301
0
    disp->CmdCudaLaunchKernelNV(commandBuffer, pLaunchInfo);
8302
0
}
8303
8304
#endif // VK_ENABLE_BETA_EXTENSIONS
8305
8306
// ---- VK_QCOM_tile_shading extension trampoline/terminators
8307
8308
VKAPI_ATTR void VKAPI_CALL CmdDispatchTileQCOM(
8309
    VkCommandBuffer                             commandBuffer,
8310
0
    const VkDispatchTileInfoQCOM*               pDispatchTileInfo) {
8311
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8312
0
    if (NULL == disp) {
8313
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8314
0
                   "vkCmdDispatchTileQCOM: Invalid commandBuffer "
8315
0
                   "[VUID-vkCmdDispatchTileQCOM-commandBuffer-parameter]");
8316
0
        abort(); /* Intentionally fail so user can correct issue. */
8317
0
    }
8318
0
    disp->CmdDispatchTileQCOM(commandBuffer, pDispatchTileInfo);
8319
0
}
8320
8321
VKAPI_ATTR void VKAPI_CALL CmdBeginPerTileExecutionQCOM(
8322
    VkCommandBuffer                             commandBuffer,
8323
0
    const VkPerTileBeginInfoQCOM*               pPerTileBeginInfo) {
8324
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8325
0
    if (NULL == disp) {
8326
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8327
0
                   "vkCmdBeginPerTileExecutionQCOM: Invalid commandBuffer "
8328
0
                   "[VUID-vkCmdBeginPerTileExecutionQCOM-commandBuffer-parameter]");
8329
0
        abort(); /* Intentionally fail so user can correct issue. */
8330
0
    }
8331
0
    disp->CmdBeginPerTileExecutionQCOM(commandBuffer, pPerTileBeginInfo);
8332
0
}
8333
8334
VKAPI_ATTR void VKAPI_CALL CmdEndPerTileExecutionQCOM(
8335
    VkCommandBuffer                             commandBuffer,
8336
0
    const VkPerTileEndInfoQCOM*                 pPerTileEndInfo) {
8337
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8338
0
    if (NULL == disp) {
8339
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8340
0
                   "vkCmdEndPerTileExecutionQCOM: Invalid commandBuffer "
8341
0
                   "[VUID-vkCmdEndPerTileExecutionQCOM-commandBuffer-parameter]");
8342
0
        abort(); /* Intentionally fail so user can correct issue. */
8343
0
    }
8344
0
    disp->CmdEndPerTileExecutionQCOM(commandBuffer, pPerTileEndInfo);
8345
0
}
8346
8347
8348
// ---- VK_EXT_metal_objects extension trampoline/terminators
8349
8350
#if defined(VK_USE_PLATFORM_METAL_EXT)
8351
VKAPI_ATTR void VKAPI_CALL ExportMetalObjectsEXT(
8352
    VkDevice                                    device,
8353
    VkExportMetalObjectsInfoEXT*                pMetalObjectsInfo) {
8354
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8355
    if (NULL == disp) {
8356
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8357
                   "vkExportMetalObjectsEXT: Invalid device "
8358
                   "[VUID-vkExportMetalObjectsEXT-device-parameter]");
8359
        abort(); /* Intentionally fail so user can correct issue. */
8360
    }
8361
    disp->ExportMetalObjectsEXT(device, pMetalObjectsInfo);
8362
}
8363
8364
#endif // VK_USE_PLATFORM_METAL_EXT
8365
8366
// ---- VK_EXT_descriptor_buffer extension trampoline/terminators
8367
8368
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSizeEXT(
8369
    VkDevice                                    device,
8370
    VkDescriptorSetLayout                       layout,
8371
0
    VkDeviceSize*                               pLayoutSizeInBytes) {
8372
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8373
0
    if (NULL == disp) {
8374
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8375
0
                   "vkGetDescriptorSetLayoutSizeEXT: Invalid device "
8376
0
                   "[VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameter]");
8377
0
        abort(); /* Intentionally fail so user can correct issue. */
8378
0
    }
8379
0
    disp->GetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes);
8380
0
}
8381
8382
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutBindingOffsetEXT(
8383
    VkDevice                                    device,
8384
    VkDescriptorSetLayout                       layout,
8385
    uint32_t                                    binding,
8386
0
    VkDeviceSize*                               pOffset) {
8387
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8388
0
    if (NULL == disp) {
8389
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8390
0
                   "vkGetDescriptorSetLayoutBindingOffsetEXT: Invalid device "
8391
0
                   "[VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter]");
8392
0
        abort(); /* Intentionally fail so user can correct issue. */
8393
0
    }
8394
0
    disp->GetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset);
8395
0
}
8396
8397
VKAPI_ATTR void VKAPI_CALL GetDescriptorEXT(
8398
    VkDevice                                    device,
8399
    const VkDescriptorGetInfoEXT*               pDescriptorInfo,
8400
    size_t                                      dataSize,
8401
0
    void*                                       pDescriptor) {
8402
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8403
0
    if (NULL == disp) {
8404
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8405
0
                   "vkGetDescriptorEXT: Invalid device "
8406
0
                   "[VUID-vkGetDescriptorEXT-device-parameter]");
8407
0
        abort(); /* Intentionally fail so user can correct issue. */
8408
0
    }
8409
0
    disp->GetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor);
8410
0
}
8411
8412
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBuffersEXT(
8413
    VkCommandBuffer                             commandBuffer,
8414
    uint32_t                                    bufferCount,
8415
0
    const VkDescriptorBufferBindingInfoEXT*     pBindingInfos) {
8416
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8417
0
    if (NULL == disp) {
8418
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8419
0
                   "vkCmdBindDescriptorBuffersEXT: Invalid commandBuffer "
8420
0
                   "[VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter]");
8421
0
        abort(); /* Intentionally fail so user can correct issue. */
8422
0
    }
8423
0
    disp->CmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos);
8424
0
}
8425
8426
VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsetsEXT(
8427
    VkCommandBuffer                             commandBuffer,
8428
    VkPipelineBindPoint                         pipelineBindPoint,
8429
    VkPipelineLayout                            layout,
8430
    uint32_t                                    firstSet,
8431
    uint32_t                                    setCount,
8432
    const uint32_t*                             pBufferIndices,
8433
0
    const VkDeviceSize*                         pOffsets) {
8434
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8435
0
    if (NULL == disp) {
8436
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8437
0
                   "vkCmdSetDescriptorBufferOffsetsEXT: Invalid commandBuffer "
8438
0
                   "[VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter]");
8439
0
        abort(); /* Intentionally fail so user can correct issue. */
8440
0
    }
8441
0
    disp->CmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets);
8442
0
}
8443
8444
VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplersEXT(
8445
    VkCommandBuffer                             commandBuffer,
8446
    VkPipelineBindPoint                         pipelineBindPoint,
8447
    VkPipelineLayout                            layout,
8448
0
    uint32_t                                    set) {
8449
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8450
0
    if (NULL == disp) {
8451
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8452
0
                   "vkCmdBindDescriptorBufferEmbeddedSamplersEXT: Invalid commandBuffer "
8453
0
                   "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameter]");
8454
0
        abort(); /* Intentionally fail so user can correct issue. */
8455
0
    }
8456
0
    disp->CmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set);
8457
0
}
8458
8459
VKAPI_ATTR VkResult VKAPI_CALL GetBufferOpaqueCaptureDescriptorDataEXT(
8460
    VkDevice                                    device,
8461
    const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
8462
0
    void*                                       pData) {
8463
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkGetBufferOpaqueCaptureDescriptorDataEXT: Invalid device "
8467
0
                   "[VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter]");
8468
0
        abort(); /* Intentionally fail so user can correct issue. */
8469
0
    }
8470
0
    return disp->GetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8471
0
}
8472
8473
VKAPI_ATTR VkResult VKAPI_CALL GetImageOpaqueCaptureDescriptorDataEXT(
8474
    VkDevice                                    device,
8475
    const VkImageCaptureDescriptorDataInfoEXT*  pInfo,
8476
0
    void*                                       pData) {
8477
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8478
0
    if (NULL == disp) {
8479
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8480
0
                   "vkGetImageOpaqueCaptureDescriptorDataEXT: Invalid device "
8481
0
                   "[VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter]");
8482
0
        abort(); /* Intentionally fail so user can correct issue. */
8483
0
    }
8484
0
    return disp->GetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8485
0
}
8486
8487
VKAPI_ATTR VkResult VKAPI_CALL GetImageViewOpaqueCaptureDescriptorDataEXT(
8488
    VkDevice                                    device,
8489
    const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
8490
0
    void*                                       pData) {
8491
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8492
0
    if (NULL == disp) {
8493
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8494
0
                   "vkGetImageViewOpaqueCaptureDescriptorDataEXT: Invalid device "
8495
0
                   "[VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter]");
8496
0
        abort(); /* Intentionally fail so user can correct issue. */
8497
0
    }
8498
0
    return disp->GetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8499
0
}
8500
8501
VKAPI_ATTR VkResult VKAPI_CALL GetSamplerOpaqueCaptureDescriptorDataEXT(
8502
    VkDevice                                    device,
8503
    const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
8504
0
    void*                                       pData) {
8505
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8506
0
    if (NULL == disp) {
8507
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8508
0
                   "vkGetSamplerOpaqueCaptureDescriptorDataEXT: Invalid device "
8509
0
                   "[VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameter]");
8510
0
        abort(); /* Intentionally fail so user can correct issue. */
8511
0
    }
8512
0
    return disp->GetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8513
0
}
8514
8515
VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
8516
    VkDevice                                    device,
8517
    const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
8518
0
    void*                                       pData) {
8519
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8520
0
    if (NULL == disp) {
8521
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8522
0
                   "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT: Invalid device "
8523
0
                   "[VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameter]");
8524
0
        abort(); /* Intentionally fail so user can correct issue. */
8525
0
    }
8526
0
    return disp->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8527
0
}
8528
8529
8530
// ---- VK_NV_fragment_shading_rate_enums extension trampoline/terminators
8531
8532
VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV(
8533
    VkCommandBuffer                             commandBuffer,
8534
    VkFragmentShadingRateNV                     shadingRate,
8535
0
    const VkFragmentShadingRateCombinerOpKHR    combinerOps[2]) {
8536
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8537
0
    if (NULL == disp) {
8538
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8539
0
                   "vkCmdSetFragmentShadingRateEnumNV: Invalid commandBuffer "
8540
0
                   "[VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter]");
8541
0
        abort(); /* Intentionally fail so user can correct issue. */
8542
0
    }
8543
0
    disp->CmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps);
8544
0
}
8545
8546
8547
// ---- VK_EXT_device_fault extension trampoline/terminators
8548
8549
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT(
8550
    VkDevice                                    device,
8551
    VkDeviceFaultCountsEXT*                     pFaultCounts,
8552
0
    VkDeviceFaultInfoEXT*                       pFaultInfo) {
8553
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8554
0
    if (NULL == disp) {
8555
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8556
0
                   "vkGetDeviceFaultInfoEXT: Invalid device "
8557
0
                   "[VUID-vkGetDeviceFaultInfoEXT-device-parameter]");
8558
0
        abort(); /* Intentionally fail so user can correct issue. */
8559
0
    }
8560
0
    return disp->GetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo);
8561
0
}
8562
8563
8564
// ---- VK_NV_acquire_winrt_display extension trampoline/terminators
8565
8566
#if defined(VK_USE_PLATFORM_WIN32_KHR)
8567
VKAPI_ATTR VkResult VKAPI_CALL AcquireWinrtDisplayNV(
8568
    VkPhysicalDevice                            physicalDevice,
8569
    VkDisplayKHR                                display) {
8570
    const VkLayerInstanceDispatchTable *disp;
8571
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8572
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8573
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8574
                   "vkAcquireWinrtDisplayNV: Invalid physicalDevice "
8575
                   "[VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter]");
8576
        abort(); /* Intentionally fail so user can correct issue. */
8577
    }
8578
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8579
    return disp->AcquireWinrtDisplayNV(unwrapped_phys_dev, display);
8580
}
8581
8582
VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireWinrtDisplayNV(
8583
    VkPhysicalDevice                            physicalDevice,
8584
    VkDisplayKHR                                display) {
8585
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8586
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8587
    if (NULL == icd_term->dispatch.AcquireWinrtDisplayNV) {
8588
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
8589
                   "ICD associated with VkPhysicalDevice does not support AcquireWinrtDisplayNV");
8590
        abort(); /* Intentionally fail so user can correct issue. */
8591
    }
8592
    return icd_term->dispatch.AcquireWinrtDisplayNV(phys_dev_term->phys_dev, display);
8593
}
8594
8595
#endif // VK_USE_PLATFORM_WIN32_KHR
8596
#if defined(VK_USE_PLATFORM_WIN32_KHR)
8597
VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV(
8598
    VkPhysicalDevice                            physicalDevice,
8599
    uint32_t                                    deviceRelativeId,
8600
    VkDisplayKHR*                               pDisplay) {
8601
    const VkLayerInstanceDispatchTable *disp;
8602
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8603
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8604
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8605
                   "vkGetWinrtDisplayNV: Invalid physicalDevice "
8606
                   "[VUID-vkGetWinrtDisplayNV-physicalDevice-parameter]");
8607
        abort(); /* Intentionally fail so user can correct issue. */
8608
    }
8609
    disp = loader_get_instance_layer_dispatch(physicalDevice);
8610
    return disp->GetWinrtDisplayNV(unwrapped_phys_dev, deviceRelativeId, pDisplay);
8611
}
8612
8613
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetWinrtDisplayNV(
8614
    VkPhysicalDevice                            physicalDevice,
8615
    uint32_t                                    deviceRelativeId,
8616
    VkDisplayKHR*                               pDisplay) {
8617
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8618
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8619
    if (NULL == icd_term->dispatch.GetWinrtDisplayNV) {
8620
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
8621
                   "ICD associated with VkPhysicalDevice does not support GetWinrtDisplayNV");
8622
        abort(); /* Intentionally fail so user can correct issue. */
8623
    }
8624
    return icd_term->dispatch.GetWinrtDisplayNV(phys_dev_term->phys_dev, deviceRelativeId, pDisplay);
8625
}
8626
8627
#endif // VK_USE_PLATFORM_WIN32_KHR
8628
8629
// ---- VK_EXT_vertex_input_dynamic_state extension trampoline/terminators
8630
8631
VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT(
8632
    VkCommandBuffer                             commandBuffer,
8633
    uint32_t                                    vertexBindingDescriptionCount,
8634
    const VkVertexInputBindingDescription2EXT*  pVertexBindingDescriptions,
8635
    uint32_t                                    vertexAttributeDescriptionCount,
8636
0
    const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) {
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
                   "vkCmdSetVertexInputEXT: Invalid commandBuffer "
8641
0
                   "[VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter]");
8642
0
        abort(); /* Intentionally fail so user can correct issue. */
8643
0
    }
8644
0
    disp->CmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
8645
0
}
8646
8647
8648
// ---- VK_FUCHSIA_external_memory extension trampoline/terminators
8649
8650
#if defined(VK_USE_PLATFORM_FUCHSIA)
8651
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA(
8652
    VkDevice                                    device,
8653
    const VkMemoryGetZirconHandleInfoFUCHSIA*   pGetZirconHandleInfo,
8654
    zx_handle_t*                                pZirconHandle) {
8655
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8656
    if (NULL == disp) {
8657
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8658
                   "vkGetMemoryZirconHandleFUCHSIA: Invalid device "
8659
                   "[VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter]");
8660
        abort(); /* Intentionally fail so user can correct issue. */
8661
    }
8662
    return disp->GetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
8663
}
8664
8665
#endif // VK_USE_PLATFORM_FUCHSIA
8666
#if defined(VK_USE_PLATFORM_FUCHSIA)
8667
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA(
8668
    VkDevice                                    device,
8669
    VkExternalMemoryHandleTypeFlagBits          handleType,
8670
    zx_handle_t                                 zirconHandle,
8671
    VkMemoryZirconHandlePropertiesFUCHSIA*      pMemoryZirconHandleProperties) {
8672
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8673
    if (NULL == disp) {
8674
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8675
                   "vkGetMemoryZirconHandlePropertiesFUCHSIA: Invalid device "
8676
                   "[VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter]");
8677
        abort(); /* Intentionally fail so user can correct issue. */
8678
    }
8679
    return disp->GetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties);
8680
}
8681
8682
#endif // VK_USE_PLATFORM_FUCHSIA
8683
8684
// ---- VK_FUCHSIA_external_semaphore extension trampoline/terminators
8685
8686
#if defined(VK_USE_PLATFORM_FUCHSIA)
8687
VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreZirconHandleFUCHSIA(
8688
    VkDevice                                    device,
8689
    const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) {
8690
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8691
    if (NULL == disp) {
8692
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8693
                   "vkImportSemaphoreZirconHandleFUCHSIA: Invalid device "
8694
                   "[VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter]");
8695
        abort(); /* Intentionally fail so user can correct issue. */
8696
    }
8697
    return disp->ImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo);
8698
}
8699
8700
#endif // VK_USE_PLATFORM_FUCHSIA
8701
#if defined(VK_USE_PLATFORM_FUCHSIA)
8702
VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA(
8703
    VkDevice                                    device,
8704
    const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
8705
    zx_handle_t*                                pZirconHandle) {
8706
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8707
    if (NULL == disp) {
8708
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8709
                   "vkGetSemaphoreZirconHandleFUCHSIA: Invalid device "
8710
                   "[VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter]");
8711
        abort(); /* Intentionally fail so user can correct issue. */
8712
    }
8713
    return disp->GetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
8714
}
8715
8716
#endif // VK_USE_PLATFORM_FUCHSIA
8717
8718
// ---- VK_FUCHSIA_buffer_collection extension trampoline/terminators
8719
8720
#if defined(VK_USE_PLATFORM_FUCHSIA)
8721
VKAPI_ATTR VkResult VKAPI_CALL CreateBufferCollectionFUCHSIA(
8722
    VkDevice                                    device,
8723
    const VkBufferCollectionCreateInfoFUCHSIA*  pCreateInfo,
8724
    const VkAllocationCallbacks*                pAllocator,
8725
    VkBufferCollectionFUCHSIA*                  pCollection) {
8726
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8727
    if (NULL == disp) {
8728
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8729
                   "vkCreateBufferCollectionFUCHSIA: Invalid device "
8730
                   "[VUID-vkCreateBufferCollectionFUCHSIA-device-parameter]");
8731
        abort(); /* Intentionally fail so user can correct issue. */
8732
    }
8733
    return disp->CreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection);
8734
}
8735
8736
#endif // VK_USE_PLATFORM_FUCHSIA
8737
#if defined(VK_USE_PLATFORM_FUCHSIA)
8738
VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionImageConstraintsFUCHSIA(
8739
    VkDevice                                    device,
8740
    VkBufferCollectionFUCHSIA                   collection,
8741
    const VkImageConstraintsInfoFUCHSIA*        pImageConstraintsInfo) {
8742
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8743
    if (NULL == disp) {
8744
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8745
                   "vkSetBufferCollectionImageConstraintsFUCHSIA: Invalid device "
8746
                   "[VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter]");
8747
        abort(); /* Intentionally fail so user can correct issue. */
8748
    }
8749
    return disp->SetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo);
8750
}
8751
8752
#endif // VK_USE_PLATFORM_FUCHSIA
8753
#if defined(VK_USE_PLATFORM_FUCHSIA)
8754
VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionBufferConstraintsFUCHSIA(
8755
    VkDevice                                    device,
8756
    VkBufferCollectionFUCHSIA                   collection,
8757
    const VkBufferConstraintsInfoFUCHSIA*       pBufferConstraintsInfo) {
8758
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8759
    if (NULL == disp) {
8760
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8761
                   "vkSetBufferCollectionBufferConstraintsFUCHSIA: Invalid device "
8762
                   "[VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter]");
8763
        abort(); /* Intentionally fail so user can correct issue. */
8764
    }
8765
    return disp->SetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo);
8766
}
8767
8768
#endif // VK_USE_PLATFORM_FUCHSIA
8769
#if defined(VK_USE_PLATFORM_FUCHSIA)
8770
VKAPI_ATTR void VKAPI_CALL DestroyBufferCollectionFUCHSIA(
8771
    VkDevice                                    device,
8772
    VkBufferCollectionFUCHSIA                   collection,
8773
    const VkAllocationCallbacks*                pAllocator) {
8774
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8775
    if (NULL == disp) {
8776
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8777
                   "vkDestroyBufferCollectionFUCHSIA: Invalid device "
8778
                   "[VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter]");
8779
        abort(); /* Intentionally fail so user can correct issue. */
8780
    }
8781
    disp->DestroyBufferCollectionFUCHSIA(device, collection, pAllocator);
8782
}
8783
8784
#endif // VK_USE_PLATFORM_FUCHSIA
8785
#if defined(VK_USE_PLATFORM_FUCHSIA)
8786
VKAPI_ATTR VkResult VKAPI_CALL GetBufferCollectionPropertiesFUCHSIA(
8787
    VkDevice                                    device,
8788
    VkBufferCollectionFUCHSIA                   collection,
8789
    VkBufferCollectionPropertiesFUCHSIA*        pProperties) {
8790
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8791
    if (NULL == disp) {
8792
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8793
                   "vkGetBufferCollectionPropertiesFUCHSIA: Invalid device "
8794
                   "[VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter]");
8795
        abort(); /* Intentionally fail so user can correct issue. */
8796
    }
8797
    return disp->GetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties);
8798
}
8799
8800
#endif // VK_USE_PLATFORM_FUCHSIA
8801
8802
// ---- VK_HUAWEI_subpass_shading extension trampoline/terminators
8803
8804
VKAPI_ATTR VkResult VKAPI_CALL GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
8805
    VkDevice                                    device,
8806
    VkRenderPass                                renderpass,
8807
0
    VkExtent2D*                                 pMaxWorkgroupSize) {
8808
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8809
0
    if (NULL == disp) {
8810
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8811
0
                   "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: Invalid device "
8812
0
                   "[VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter]");
8813
0
        abort(); /* Intentionally fail so user can correct issue. */
8814
0
    }
8815
0
    return disp->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
8816
0
}
8817
8818
VKAPI_ATTR void VKAPI_CALL CmdSubpassShadingHUAWEI(
8819
0
    VkCommandBuffer                             commandBuffer) {
8820
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8821
0
    if (NULL == disp) {
8822
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8823
0
                   "vkCmdSubpassShadingHUAWEI: Invalid commandBuffer "
8824
0
                   "[VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter]");
8825
0
        abort(); /* Intentionally fail so user can correct issue. */
8826
0
    }
8827
0
    disp->CmdSubpassShadingHUAWEI(commandBuffer);
8828
0
}
8829
8830
8831
// ---- VK_HUAWEI_invocation_mask extension trampoline/terminators
8832
8833
VKAPI_ATTR void VKAPI_CALL CmdBindInvocationMaskHUAWEI(
8834
    VkCommandBuffer                             commandBuffer,
8835
    VkImageView                                 imageView,
8836
0
    VkImageLayout                               imageLayout) {
8837
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8838
0
    if (NULL == disp) {
8839
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8840
0
                   "vkCmdBindInvocationMaskHUAWEI: Invalid commandBuffer "
8841
0
                   "[VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter]");
8842
0
        abort(); /* Intentionally fail so user can correct issue. */
8843
0
    }
8844
0
    disp->CmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout);
8845
0
}
8846
8847
8848
// ---- VK_NV_external_memory_rdma extension trampoline/terminators
8849
8850
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV(
8851
    VkDevice                                    device,
8852
    const VkMemoryGetRemoteAddressInfoNV*       pMemoryGetRemoteAddressInfo,
8853
0
    VkRemoteAddressNV*                          pAddress) {
8854
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8855
0
    if (NULL == disp) {
8856
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8857
0
                   "vkGetMemoryRemoteAddressNV: Invalid device "
8858
0
                   "[VUID-vkGetMemoryRemoteAddressNV-device-parameter]");
8859
0
        abort(); /* Intentionally fail so user can correct issue. */
8860
0
    }
8861
0
    return disp->GetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress);
8862
0
}
8863
8864
8865
// ---- VK_EXT_pipeline_properties extension trampoline/terminators
8866
8867
VKAPI_ATTR VkResult VKAPI_CALL GetPipelinePropertiesEXT(
8868
    VkDevice                                    device,
8869
    const VkPipelineInfoEXT*                    pPipelineInfo,
8870
0
    VkBaseOutStructure*                         pPipelineProperties) {
8871
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8872
0
    if (NULL == disp) {
8873
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8874
0
                   "vkGetPipelinePropertiesEXT: Invalid device "
8875
0
                   "[VUID-vkGetPipelinePropertiesEXT-device-parameter]");
8876
0
        abort(); /* Intentionally fail so user can correct issue. */
8877
0
    }
8878
0
    return disp->GetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties);
8879
0
}
8880
8881
8882
// ---- VK_EXT_extended_dynamic_state2 extension trampoline/terminators
8883
8884
VKAPI_ATTR void VKAPI_CALL CmdSetPatchControlPointsEXT(
8885
    VkCommandBuffer                             commandBuffer,
8886
0
    uint32_t                                    patchControlPoints) {
8887
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8888
0
    if (NULL == disp) {
8889
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8890
0
                   "vkCmdSetPatchControlPointsEXT: Invalid commandBuffer "
8891
0
                   "[VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter]");
8892
0
        abort(); /* Intentionally fail so user can correct issue. */
8893
0
    }
8894
0
    disp->CmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
8895
0
}
8896
8897
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnableEXT(
8898
    VkCommandBuffer                             commandBuffer,
8899
0
    VkBool32                                    rasterizerDiscardEnable) {
8900
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8901
0
    if (NULL == disp) {
8902
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8903
0
                   "vkCmdSetRasterizerDiscardEnableEXT: Invalid commandBuffer "
8904
0
                   "[VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter]");
8905
0
        abort(); /* Intentionally fail so user can correct issue. */
8906
0
    }
8907
0
    disp->CmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable);
8908
0
}
8909
8910
VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnableEXT(
8911
    VkCommandBuffer                             commandBuffer,
8912
0
    VkBool32                                    depthBiasEnable) {
8913
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8914
0
    if (NULL == disp) {
8915
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8916
0
                   "vkCmdSetDepthBiasEnableEXT: Invalid commandBuffer "
8917
0
                   "[VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter]");
8918
0
        abort(); /* Intentionally fail so user can correct issue. */
8919
0
    }
8920
0
    disp->CmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable);
8921
0
}
8922
8923
VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEXT(
8924
    VkCommandBuffer                             commandBuffer,
8925
0
    VkLogicOp                                   logicOp) {
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
                   "vkCmdSetLogicOpEXT: Invalid commandBuffer "
8930
0
                   "[VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter]");
8931
0
        abort(); /* Intentionally fail so user can correct issue. */
8932
0
    }
8933
0
    disp->CmdSetLogicOpEXT(commandBuffer, logicOp);
8934
0
}
8935
8936
VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnableEXT(
8937
    VkCommandBuffer                             commandBuffer,
8938
0
    VkBool32                                    primitiveRestartEnable) {
8939
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8940
0
    if (NULL == disp) {
8941
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8942
0
                   "vkCmdSetPrimitiveRestartEnableEXT: Invalid commandBuffer "
8943
0
                   "[VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter]");
8944
0
        abort(); /* Intentionally fail so user can correct issue. */
8945
0
    }
8946
0
    disp->CmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable);
8947
0
}
8948
8949
8950
// ---- VK_EXT_color_write_enable extension trampoline/terminators
8951
8952
VKAPI_ATTR void                                    VKAPI_CALL CmdSetColorWriteEnableEXT(
8953
    VkCommandBuffer                             commandBuffer,
8954
    uint32_t                                    attachmentCount,
8955
0
    const VkBool32*                             pColorWriteEnables) {
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
                   "vkCmdSetColorWriteEnableEXT: Invalid commandBuffer "
8960
0
                   "[VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter]");
8961
0
        abort(); /* Intentionally fail so user can correct issue. */
8962
0
    }
8963
0
    disp->CmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
8964
0
}
8965
8966
8967
// ---- VK_EXT_multi_draw extension trampoline/terminators
8968
8969
VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT(
8970
    VkCommandBuffer                             commandBuffer,
8971
    uint32_t                                    drawCount,
8972
    const VkMultiDrawInfoEXT*                   pVertexInfo,
8973
    uint32_t                                    instanceCount,
8974
    uint32_t                                    firstInstance,
8975
0
    uint32_t                                    stride) {
8976
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8977
0
    if (NULL == disp) {
8978
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8979
0
                   "vkCmdDrawMultiEXT: Invalid commandBuffer "
8980
0
                   "[VUID-vkCmdDrawMultiEXT-commandBuffer-parameter]");
8981
0
        abort(); /* Intentionally fail so user can correct issue. */
8982
0
    }
8983
0
    disp->CmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride);
8984
0
}
8985
8986
VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT(
8987
    VkCommandBuffer                             commandBuffer,
8988
    uint32_t                                    drawCount,
8989
    const VkMultiDrawIndexedInfoEXT*            pIndexInfo,
8990
    uint32_t                                    instanceCount,
8991
    uint32_t                                    firstInstance,
8992
    uint32_t                                    stride,
8993
0
    const int32_t*                              pVertexOffset) {
8994
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8995
0
    if (NULL == disp) {
8996
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8997
0
                   "vkCmdDrawMultiIndexedEXT: Invalid commandBuffer "
8998
0
                   "[VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter]");
8999
0
        abort(); /* Intentionally fail so user can correct issue. */
9000
0
    }
9001
0
    disp->CmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset);
9002
0
}
9003
9004
9005
// ---- VK_EXT_opacity_micromap extension trampoline/terminators
9006
9007
VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT(
9008
    VkDevice                                    device,
9009
    const VkMicromapCreateInfoEXT*              pCreateInfo,
9010
    const VkAllocationCallbacks*                pAllocator,
9011
0
    VkMicromapEXT*                              pMicromap) {
9012
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9013
0
    if (NULL == disp) {
9014
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9015
0
                   "vkCreateMicromapEXT: Invalid device "
9016
0
                   "[VUID-vkCreateMicromapEXT-device-parameter]");
9017
0
        abort(); /* Intentionally fail so user can correct issue. */
9018
0
    }
9019
0
    return disp->CreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap);
9020
0
}
9021
9022
VKAPI_ATTR void VKAPI_CALL DestroyMicromapEXT(
9023
    VkDevice                                    device,
9024
    VkMicromapEXT                               micromap,
9025
0
    const VkAllocationCallbacks*                pAllocator) {
9026
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9027
0
    if (NULL == disp) {
9028
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9029
0
                   "vkDestroyMicromapEXT: Invalid device "
9030
0
                   "[VUID-vkDestroyMicromapEXT-device-parameter]");
9031
0
        abort(); /* Intentionally fail so user can correct issue. */
9032
0
    }
9033
0
    disp->DestroyMicromapEXT(device, micromap, pAllocator);
9034
0
}
9035
9036
VKAPI_ATTR void VKAPI_CALL CmdBuildMicromapsEXT(
9037
    VkCommandBuffer                             commandBuffer,
9038
    uint32_t                                    infoCount,
9039
0
    const VkMicromapBuildInfoEXT*               pInfos) {
9040
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9041
0
    if (NULL == disp) {
9042
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9043
0
                   "vkCmdBuildMicromapsEXT: Invalid commandBuffer "
9044
0
                   "[VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter]");
9045
0
        abort(); /* Intentionally fail so user can correct issue. */
9046
0
    }
9047
0
    disp->CmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos);
9048
0
}
9049
9050
VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT(
9051
    VkDevice                                    device,
9052
    VkDeferredOperationKHR                      deferredOperation,
9053
    uint32_t                                    infoCount,
9054
0
    const VkMicromapBuildInfoEXT*               pInfos) {
9055
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9056
0
    if (NULL == disp) {
9057
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9058
0
                   "vkBuildMicromapsEXT: Invalid device "
9059
0
                   "[VUID-vkBuildMicromapsEXT-device-parameter]");
9060
0
        abort(); /* Intentionally fail so user can correct issue. */
9061
0
    }
9062
0
    return disp->BuildMicromapsEXT(device, deferredOperation, infoCount, pInfos);
9063
0
}
9064
9065
VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapEXT(
9066
    VkDevice                                    device,
9067
    VkDeferredOperationKHR                      deferredOperation,
9068
0
    const VkCopyMicromapInfoEXT*                pInfo) {
9069
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9070
0
    if (NULL == disp) {
9071
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9072
0
                   "vkCopyMicromapEXT: Invalid device "
9073
0
                   "[VUID-vkCopyMicromapEXT-device-parameter]");
9074
0
        abort(); /* Intentionally fail so user can correct issue. */
9075
0
    }
9076
0
    return disp->CopyMicromapEXT(device, deferredOperation, pInfo);
9077
0
}
9078
9079
VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapToMemoryEXT(
9080
    VkDevice                                    device,
9081
    VkDeferredOperationKHR                      deferredOperation,
9082
0
    const VkCopyMicromapToMemoryInfoEXT*        pInfo) {
9083
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9084
0
    if (NULL == disp) {
9085
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9086
0
                   "vkCopyMicromapToMemoryEXT: Invalid device "
9087
0
                   "[VUID-vkCopyMicromapToMemoryEXT-device-parameter]");
9088
0
        abort(); /* Intentionally fail so user can correct issue. */
9089
0
    }
9090
0
    return disp->CopyMicromapToMemoryEXT(device, deferredOperation, pInfo);
9091
0
}
9092
9093
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToMicromapEXT(
9094
    VkDevice                                    device,
9095
    VkDeferredOperationKHR                      deferredOperation,
9096
0
    const VkCopyMemoryToMicromapInfoEXT*        pInfo) {
9097
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9098
0
    if (NULL == disp) {
9099
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9100
0
                   "vkCopyMemoryToMicromapEXT: Invalid device "
9101
0
                   "[VUID-vkCopyMemoryToMicromapEXT-device-parameter]");
9102
0
        abort(); /* Intentionally fail so user can correct issue. */
9103
0
    }
9104
0
    return disp->CopyMemoryToMicromapEXT(device, deferredOperation, pInfo);
9105
0
}
9106
9107
VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT(
9108
    VkDevice                                    device,
9109
    uint32_t                                    micromapCount,
9110
    const VkMicromapEXT*                        pMicromaps,
9111
    VkQueryType                                 queryType,
9112
    size_t                                      dataSize,
9113
    void*                                       pData,
9114
0
    size_t                                      stride) {
9115
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9116
0
    if (NULL == disp) {
9117
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9118
0
                   "vkWriteMicromapsPropertiesEXT: Invalid device "
9119
0
                   "[VUID-vkWriteMicromapsPropertiesEXT-device-parameter]");
9120
0
        abort(); /* Intentionally fail so user can correct issue. */
9121
0
    }
9122
0
    return disp->WriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride);
9123
0
}
9124
9125
VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapEXT(
9126
    VkCommandBuffer                             commandBuffer,
9127
0
    const VkCopyMicromapInfoEXT*                pInfo) {
9128
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9129
0
    if (NULL == disp) {
9130
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9131
0
                   "vkCmdCopyMicromapEXT: Invalid commandBuffer "
9132
0
                   "[VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter]");
9133
0
        abort(); /* Intentionally fail so user can correct issue. */
9134
0
    }
9135
0
    disp->CmdCopyMicromapEXT(commandBuffer, pInfo);
9136
0
}
9137
9138
VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapToMemoryEXT(
9139
    VkCommandBuffer                             commandBuffer,
9140
0
    const VkCopyMicromapToMemoryInfoEXT*        pInfo) {
9141
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9142
0
    if (NULL == disp) {
9143
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9144
0
                   "vkCmdCopyMicromapToMemoryEXT: Invalid commandBuffer "
9145
0
                   "[VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter]");
9146
0
        abort(); /* Intentionally fail so user can correct issue. */
9147
0
    }
9148
0
    disp->CmdCopyMicromapToMemoryEXT(commandBuffer, pInfo);
9149
0
}
9150
9151
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToMicromapEXT(
9152
    VkCommandBuffer                             commandBuffer,
9153
0
    const VkCopyMemoryToMicromapInfoEXT*        pInfo) {
9154
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9155
0
    if (NULL == disp) {
9156
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9157
0
                   "vkCmdCopyMemoryToMicromapEXT: Invalid commandBuffer "
9158
0
                   "[VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter]");
9159
0
        abort(); /* Intentionally fail so user can correct issue. */
9160
0
    }
9161
0
    disp->CmdCopyMemoryToMicromapEXT(commandBuffer, pInfo);
9162
0
}
9163
9164
VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT(
9165
    VkCommandBuffer                             commandBuffer,
9166
    uint32_t                                    micromapCount,
9167
    const VkMicromapEXT*                        pMicromaps,
9168
    VkQueryType                                 queryType,
9169
    VkQueryPool                                 queryPool,
9170
0
    uint32_t                                    firstQuery) {
9171
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9172
0
    if (NULL == disp) {
9173
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9174
0
                   "vkCmdWriteMicromapsPropertiesEXT: Invalid commandBuffer "
9175
0
                   "[VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter]");
9176
0
        abort(); /* Intentionally fail so user can correct issue. */
9177
0
    }
9178
0
    disp->CmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery);
9179
0
}
9180
9181
VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT(
9182
    VkDevice                                    device,
9183
    const VkMicromapVersionInfoEXT*             pVersionInfo,
9184
0
    VkAccelerationStructureCompatibilityKHR*    pCompatibility) {
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
                   "vkGetDeviceMicromapCompatibilityEXT: Invalid device "
9189
0
                   "[VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter]");
9190
0
        abort(); /* Intentionally fail so user can correct issue. */
9191
0
    }
9192
0
    disp->GetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility);
9193
0
}
9194
9195
VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT(
9196
    VkDevice                                    device,
9197
    VkAccelerationStructureBuildTypeKHR         buildType,
9198
    const VkMicromapBuildInfoEXT*               pBuildInfo,
9199
0
    VkMicromapBuildSizesInfoEXT*                pSizeInfo) {
9200
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9201
0
    if (NULL == disp) {
9202
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9203
0
                   "vkGetMicromapBuildSizesEXT: Invalid device "
9204
0
                   "[VUID-vkGetMicromapBuildSizesEXT-device-parameter]");
9205
0
        abort(); /* Intentionally fail so user can correct issue. */
9206
0
    }
9207
0
    disp->GetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo);
9208
0
}
9209
9210
9211
// ---- VK_HUAWEI_cluster_culling_shader extension trampoline/terminators
9212
9213
VKAPI_ATTR void VKAPI_CALL CmdDrawClusterHUAWEI(
9214
    VkCommandBuffer                             commandBuffer,
9215
    uint32_t                                    groupCountX,
9216
    uint32_t                                    groupCountY,
9217
0
    uint32_t                                    groupCountZ) {
9218
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9219
0
    if (NULL == disp) {
9220
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9221
0
                   "vkCmdDrawClusterHUAWEI: Invalid commandBuffer "
9222
0
                   "[VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter]");
9223
0
        abort(); /* Intentionally fail so user can correct issue. */
9224
0
    }
9225
0
    disp->CmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ);
9226
0
}
9227
9228
VKAPI_ATTR void VKAPI_CALL CmdDrawClusterIndirectHUAWEI(
9229
    VkCommandBuffer                             commandBuffer,
9230
    VkBuffer                                    buffer,
9231
0
    VkDeviceSize                                offset) {
9232
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9233
0
    if (NULL == disp) {
9234
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9235
0
                   "vkCmdDrawClusterIndirectHUAWEI: Invalid commandBuffer "
9236
0
                   "[VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter]");
9237
0
        abort(); /* Intentionally fail so user can correct issue. */
9238
0
    }
9239
0
    disp->CmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset);
9240
0
}
9241
9242
9243
// ---- VK_EXT_pageable_device_local_memory extension trampoline/terminators
9244
9245
VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT(
9246
    VkDevice                                    device,
9247
    VkDeviceMemory                              memory,
9248
0
    float                                       priority) {
9249
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9250
0
    if (NULL == disp) {
9251
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9252
0
                   "vkSetDeviceMemoryPriorityEXT: Invalid device "
9253
0
                   "[VUID-vkSetDeviceMemoryPriorityEXT-device-parameter]");
9254
0
        abort(); /* Intentionally fail so user can correct issue. */
9255
0
    }
9256
0
    disp->SetDeviceMemoryPriorityEXT(device, memory, priority);
9257
0
}
9258
9259
9260
// ---- VK_VALVE_descriptor_set_host_mapping extension trampoline/terminators
9261
9262
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE(
9263
    VkDevice                                    device,
9264
    const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
9265
0
    VkDescriptorSetLayoutHostMappingInfoVALVE*  pHostMapping) {
9266
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9267
0
    if (NULL == disp) {
9268
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9269
0
                   "vkGetDescriptorSetLayoutHostMappingInfoVALVE: Invalid device "
9270
0
                   "[VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter]");
9271
0
        abort(); /* Intentionally fail so user can correct issue. */
9272
0
    }
9273
0
    disp->GetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping);
9274
0
}
9275
9276
VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE(
9277
    VkDevice                                    device,
9278
    VkDescriptorSet                             descriptorSet,
9279
0
    void**                                      ppData) {
9280
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9281
0
    if (NULL == disp) {
9282
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9283
0
                   "vkGetDescriptorSetHostMappingVALVE: Invalid device "
9284
0
                   "[VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter]");
9285
0
        abort(); /* Intentionally fail so user can correct issue. */
9286
0
    }
9287
0
    disp->GetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData);
9288
0
}
9289
9290
9291
// ---- VK_NV_copy_memory_indirect extension trampoline/terminators
9292
9293
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectNV(
9294
    VkCommandBuffer                             commandBuffer,
9295
    VkDeviceAddress                             copyBufferAddress,
9296
    uint32_t                                    copyCount,
9297
0
    uint32_t                                    stride) {
9298
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9299
0
    if (NULL == disp) {
9300
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9301
0
                   "vkCmdCopyMemoryIndirectNV: Invalid commandBuffer "
9302
0
                   "[VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameter]");
9303
0
        abort(); /* Intentionally fail so user can correct issue. */
9304
0
    }
9305
0
    disp->CmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride);
9306
0
}
9307
9308
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectNV(
9309
    VkCommandBuffer                             commandBuffer,
9310
    VkDeviceAddress                             copyBufferAddress,
9311
    uint32_t                                    copyCount,
9312
    uint32_t                                    stride,
9313
    VkImage                                     dstImage,
9314
    VkImageLayout                               dstImageLayout,
9315
0
    const VkImageSubresourceLayers*             pImageSubresources) {
9316
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9317
0
    if (NULL == disp) {
9318
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9319
0
                   "vkCmdCopyMemoryToImageIndirectNV: Invalid commandBuffer "
9320
0
                   "[VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameter]");
9321
0
        abort(); /* Intentionally fail so user can correct issue. */
9322
0
    }
9323
0
    disp->CmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources);
9324
0
}
9325
9326
9327
// ---- VK_NV_memory_decompression extension trampoline/terminators
9328
9329
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryNV(
9330
    VkCommandBuffer                             commandBuffer,
9331
    uint32_t                                    decompressRegionCount,
9332
0
    const VkDecompressMemoryRegionNV*           pDecompressMemoryRegions) {
9333
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9334
0
    if (NULL == disp) {
9335
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9336
0
                   "vkCmdDecompressMemoryNV: Invalid commandBuffer "
9337
0
                   "[VUID-vkCmdDecompressMemoryNV-commandBuffer-parameter]");
9338
0
        abort(); /* Intentionally fail so user can correct issue. */
9339
0
    }
9340
0
    disp->CmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions);
9341
0
}
9342
9343
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountNV(
9344
    VkCommandBuffer                             commandBuffer,
9345
    VkDeviceAddress                             indirectCommandsAddress,
9346
    VkDeviceAddress                             indirectCommandsCountAddress,
9347
0
    uint32_t                                    stride) {
9348
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9349
0
    if (NULL == disp) {
9350
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9351
0
                   "vkCmdDecompressMemoryIndirectCountNV: Invalid commandBuffer "
9352
0
                   "[VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameter]");
9353
0
        abort(); /* Intentionally fail so user can correct issue. */
9354
0
    }
9355
0
    disp->CmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride);
9356
0
}
9357
9358
9359
// ---- VK_NV_device_generated_commands_compute extension trampoline/terminators
9360
9361
VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV(
9362
    VkDevice                                    device,
9363
    const VkComputePipelineCreateInfo*          pCreateInfo,
9364
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
9365
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9366
0
    if (NULL == disp) {
9367
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9368
0
                   "vkGetPipelineIndirectMemoryRequirementsNV: Invalid device "
9369
0
                   "[VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter]");
9370
0
        abort(); /* Intentionally fail so user can correct issue. */
9371
0
    }
9372
0
    disp->GetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
9373
0
}
9374
9375
VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBufferNV(
9376
    VkCommandBuffer                             commandBuffer,
9377
    VkPipelineBindPoint                         pipelineBindPoint,
9378
0
    VkPipeline                                  pipeline) {
9379
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9380
0
    if (NULL == disp) {
9381
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9382
0
                   "vkCmdUpdatePipelineIndirectBufferNV: Invalid commandBuffer "
9383
0
                   "[VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter]");
9384
0
        abort(); /* Intentionally fail so user can correct issue. */
9385
0
    }
9386
0
    disp->CmdUpdatePipelineIndirectBufferNV(commandBuffer, pipelineBindPoint, pipeline);
9387
0
}
9388
9389
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV(
9390
    VkDevice                                    device,
9391
0
    const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {
9392
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9393
0
    if (NULL == disp) {
9394
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9395
0
                   "vkGetPipelineIndirectDeviceAddressNV: Invalid device "
9396
0
                   "[VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter]");
9397
0
        abort(); /* Intentionally fail so user can correct issue. */
9398
0
    }
9399
0
    return disp->GetPipelineIndirectDeviceAddressNV(device, pInfo);
9400
0
}
9401
9402
9403
// ---- VK_OHOS_external_memory extension trampoline/terminators
9404
9405
#if defined(VK_USE_PLATFORM_OHOS)
9406
VKAPI_ATTR VkResult VKAPI_CALL GetNativeBufferPropertiesOHOS(
9407
    VkDevice                                    device,
9408
    const struct OH_NativeBuffer*               buffer,
9409
    VkNativeBufferPropertiesOHOS*               pProperties) {
9410
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9411
    if (NULL == disp) {
9412
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9413
                   "vkGetNativeBufferPropertiesOHOS: Invalid device "
9414
                   "[VUID-vkGetNativeBufferPropertiesOHOS-device-parameter]");
9415
        abort(); /* Intentionally fail so user can correct issue. */
9416
    }
9417
    return disp->GetNativeBufferPropertiesOHOS(device, buffer, pProperties);
9418
}
9419
9420
#endif // VK_USE_PLATFORM_OHOS
9421
#if defined(VK_USE_PLATFORM_OHOS)
9422
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryNativeBufferOHOS(
9423
    VkDevice                                    device,
9424
    const VkMemoryGetNativeBufferInfoOHOS*      pInfo,
9425
    struct OH_NativeBuffer**                    pBuffer) {
9426
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9427
    if (NULL == disp) {
9428
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9429
                   "vkGetMemoryNativeBufferOHOS: Invalid device "
9430
                   "[VUID-vkGetMemoryNativeBufferOHOS-device-parameter]");
9431
        abort(); /* Intentionally fail so user can correct issue. */
9432
    }
9433
    return disp->GetMemoryNativeBufferOHOS(device, pInfo, pBuffer);
9434
}
9435
9436
#endif // VK_USE_PLATFORM_OHOS
9437
9438
// ---- VK_EXT_extended_dynamic_state3 extension trampoline/terminators
9439
9440
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampEnableEXT(
9441
    VkCommandBuffer                             commandBuffer,
9442
0
    VkBool32                                    depthClampEnable) {
9443
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9444
0
    if (NULL == disp) {
9445
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9446
0
                   "vkCmdSetDepthClampEnableEXT: Invalid commandBuffer "
9447
0
                   "[VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter]");
9448
0
        abort(); /* Intentionally fail so user can correct issue. */
9449
0
    }
9450
0
    disp->CmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable);
9451
0
}
9452
9453
VKAPI_ATTR void VKAPI_CALL CmdSetPolygonModeEXT(
9454
    VkCommandBuffer                             commandBuffer,
9455
0
    VkPolygonMode                               polygonMode) {
9456
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9457
0
    if (NULL == disp) {
9458
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9459
0
                   "vkCmdSetPolygonModeEXT: Invalid commandBuffer "
9460
0
                   "[VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter]");
9461
0
        abort(); /* Intentionally fail so user can correct issue. */
9462
0
    }
9463
0
    disp->CmdSetPolygonModeEXT(commandBuffer, polygonMode);
9464
0
}
9465
9466
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationSamplesEXT(
9467
    VkCommandBuffer                             commandBuffer,
9468
0
    VkSampleCountFlagBits                       rasterizationSamples) {
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
                   "vkCmdSetRasterizationSamplesEXT: Invalid commandBuffer "
9473
0
                   "[VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter]");
9474
0
        abort(); /* Intentionally fail so user can correct issue. */
9475
0
    }
9476
0
    disp->CmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples);
9477
0
}
9478
9479
VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT(
9480
    VkCommandBuffer                             commandBuffer,
9481
    VkSampleCountFlagBits                       samples,
9482
0
    const VkSampleMask*                         pSampleMask) {
9483
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9484
0
    if (NULL == disp) {
9485
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9486
0
                   "vkCmdSetSampleMaskEXT: Invalid commandBuffer "
9487
0
                   "[VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter]");
9488
0
        abort(); /* Intentionally fail so user can correct issue. */
9489
0
    }
9490
0
    disp->CmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask);
9491
0
}
9492
9493
VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToCoverageEnableEXT(
9494
    VkCommandBuffer                             commandBuffer,
9495
0
    VkBool32                                    alphaToCoverageEnable) {
9496
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9497
0
    if (NULL == disp) {
9498
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9499
0
                   "vkCmdSetAlphaToCoverageEnableEXT: Invalid commandBuffer "
9500
0
                   "[VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter]");
9501
0
        abort(); /* Intentionally fail so user can correct issue. */
9502
0
    }
9503
0
    disp->CmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable);
9504
0
}
9505
9506
VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToOneEnableEXT(
9507
    VkCommandBuffer                             commandBuffer,
9508
0
    VkBool32                                    alphaToOneEnable) {
9509
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9510
0
    if (NULL == disp) {
9511
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9512
0
                   "vkCmdSetAlphaToOneEnableEXT: Invalid commandBuffer "
9513
0
                   "[VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter]");
9514
0
        abort(); /* Intentionally fail so user can correct issue. */
9515
0
    }
9516
0
    disp->CmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable);
9517
0
}
9518
9519
VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEnableEXT(
9520
    VkCommandBuffer                             commandBuffer,
9521
0
    VkBool32                                    logicOpEnable) {
9522
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9523
0
    if (NULL == disp) {
9524
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9525
0
                   "vkCmdSetLogicOpEnableEXT: Invalid commandBuffer "
9526
0
                   "[VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter]");
9527
0
        abort(); /* Intentionally fail so user can correct issue. */
9528
0
    }
9529
0
    disp->CmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable);
9530
0
}
9531
9532
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT(
9533
    VkCommandBuffer                             commandBuffer,
9534
    uint32_t                                    firstAttachment,
9535
    uint32_t                                    attachmentCount,
9536
0
    const VkBool32*                             pColorBlendEnables) {
9537
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9538
0
    if (NULL == disp) {
9539
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9540
0
                   "vkCmdSetColorBlendEnableEXT: Invalid commandBuffer "
9541
0
                   "[VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter]");
9542
0
        abort(); /* Intentionally fail so user can correct issue. */
9543
0
    }
9544
0
    disp->CmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables);
9545
0
}
9546
9547
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT(
9548
    VkCommandBuffer                             commandBuffer,
9549
    uint32_t                                    firstAttachment,
9550
    uint32_t                                    attachmentCount,
9551
0
    const VkColorBlendEquationEXT*              pColorBlendEquations) {
9552
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9553
0
    if (NULL == disp) {
9554
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9555
0
                   "vkCmdSetColorBlendEquationEXT: Invalid commandBuffer "
9556
0
                   "[VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter]");
9557
0
        abort(); /* Intentionally fail so user can correct issue. */
9558
0
    }
9559
0
    disp->CmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations);
9560
0
}
9561
9562
VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT(
9563
    VkCommandBuffer                             commandBuffer,
9564
    uint32_t                                    firstAttachment,
9565
    uint32_t                                    attachmentCount,
9566
0
    const VkColorComponentFlags*                pColorWriteMasks) {
9567
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9568
0
    if (NULL == disp) {
9569
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9570
0
                   "vkCmdSetColorWriteMaskEXT: Invalid commandBuffer "
9571
0
                   "[VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter]");
9572
0
        abort(); /* Intentionally fail so user can correct issue. */
9573
0
    }
9574
0
    disp->CmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks);
9575
0
}
9576
9577
VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT(
9578
    VkCommandBuffer                             commandBuffer,
9579
0
    VkTessellationDomainOrigin                  domainOrigin) {
9580
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9581
0
    if (NULL == disp) {
9582
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9583
0
                   "vkCmdSetTessellationDomainOriginEXT: Invalid commandBuffer "
9584
0
                   "[VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter]");
9585
0
        abort(); /* Intentionally fail so user can correct issue. */
9586
0
    }
9587
0
    disp->CmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin);
9588
0
}
9589
9590
VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationStreamEXT(
9591
    VkCommandBuffer                             commandBuffer,
9592
0
    uint32_t                                    rasterizationStream) {
9593
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9594
0
    if (NULL == disp) {
9595
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9596
0
                   "vkCmdSetRasterizationStreamEXT: Invalid commandBuffer "
9597
0
                   "[VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter]");
9598
0
        abort(); /* Intentionally fail so user can correct issue. */
9599
0
    }
9600
0
    disp->CmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream);
9601
0
}
9602
9603
VKAPI_ATTR void VKAPI_CALL CmdSetConservativeRasterizationModeEXT(
9604
    VkCommandBuffer                             commandBuffer,
9605
0
    VkConservativeRasterizationModeEXT          conservativeRasterizationMode) {
9606
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9607
0
    if (NULL == disp) {
9608
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9609
0
                   "vkCmdSetConservativeRasterizationModeEXT: Invalid commandBuffer "
9610
0
                   "[VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter]");
9611
0
        abort(); /* Intentionally fail so user can correct issue. */
9612
0
    }
9613
0
    disp->CmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode);
9614
0
}
9615
9616
VKAPI_ATTR void VKAPI_CALL CmdSetExtraPrimitiveOverestimationSizeEXT(
9617
    VkCommandBuffer                             commandBuffer,
9618
0
    float                                       extraPrimitiveOverestimationSize) {
9619
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9620
0
    if (NULL == disp) {
9621
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9622
0
                   "vkCmdSetExtraPrimitiveOverestimationSizeEXT: Invalid commandBuffer "
9623
0
                   "[VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter]");
9624
0
        abort(); /* Intentionally fail so user can correct issue. */
9625
0
    }
9626
0
    disp->CmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize);
9627
0
}
9628
9629
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipEnableEXT(
9630
    VkCommandBuffer                             commandBuffer,
9631
0
    VkBool32                                    depthClipEnable) {
9632
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9633
0
    if (NULL == disp) {
9634
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9635
0
                   "vkCmdSetDepthClipEnableEXT: Invalid commandBuffer "
9636
0
                   "[VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter]");
9637
0
        abort(); /* Intentionally fail so user can correct issue. */
9638
0
    }
9639
0
    disp->CmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable);
9640
0
}
9641
9642
VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEnableEXT(
9643
    VkCommandBuffer                             commandBuffer,
9644
0
    VkBool32                                    sampleLocationsEnable) {
9645
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9646
0
    if (NULL == disp) {
9647
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9648
0
                   "vkCmdSetSampleLocationsEnableEXT: Invalid commandBuffer "
9649
0
                   "[VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter]");
9650
0
        abort(); /* Intentionally fail so user can correct issue. */
9651
0
    }
9652
0
    disp->CmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable);
9653
0
}
9654
9655
VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT(
9656
    VkCommandBuffer                             commandBuffer,
9657
    uint32_t                                    firstAttachment,
9658
    uint32_t                                    attachmentCount,
9659
0
    const VkColorBlendAdvancedEXT*              pColorBlendAdvanced) {
9660
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9661
0
    if (NULL == disp) {
9662
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9663
0
                   "vkCmdSetColorBlendAdvancedEXT: Invalid commandBuffer "
9664
0
                   "[VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter]");
9665
0
        abort(); /* Intentionally fail so user can correct issue. */
9666
0
    }
9667
0
    disp->CmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced);
9668
0
}
9669
9670
VKAPI_ATTR void VKAPI_CALL CmdSetProvokingVertexModeEXT(
9671
    VkCommandBuffer                             commandBuffer,
9672
0
    VkProvokingVertexModeEXT                    provokingVertexMode) {
9673
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9674
0
    if (NULL == disp) {
9675
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9676
0
                   "vkCmdSetProvokingVertexModeEXT: Invalid commandBuffer "
9677
0
                   "[VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter]");
9678
0
        abort(); /* Intentionally fail so user can correct issue. */
9679
0
    }
9680
0
    disp->CmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode);
9681
0
}
9682
9683
VKAPI_ATTR void VKAPI_CALL CmdSetLineRasterizationModeEXT(
9684
    VkCommandBuffer                             commandBuffer,
9685
0
    VkLineRasterizationModeEXT                  lineRasterizationMode) {
9686
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9687
0
    if (NULL == disp) {
9688
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9689
0
                   "vkCmdSetLineRasterizationModeEXT: Invalid commandBuffer "
9690
0
                   "[VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter]");
9691
0
        abort(); /* Intentionally fail so user can correct issue. */
9692
0
    }
9693
0
    disp->CmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode);
9694
0
}
9695
9696
VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEnableEXT(
9697
    VkCommandBuffer                             commandBuffer,
9698
0
    VkBool32                                    stippledLineEnable) {
9699
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9700
0
    if (NULL == disp) {
9701
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9702
0
                   "vkCmdSetLineStippleEnableEXT: Invalid commandBuffer "
9703
0
                   "[VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter]");
9704
0
        abort(); /* Intentionally fail so user can correct issue. */
9705
0
    }
9706
0
    disp->CmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable);
9707
0
}
9708
9709
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipNegativeOneToOneEXT(
9710
    VkCommandBuffer                             commandBuffer,
9711
0
    VkBool32                                    negativeOneToOne) {
9712
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9713
0
    if (NULL == disp) {
9714
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9715
0
                   "vkCmdSetDepthClipNegativeOneToOneEXT: Invalid commandBuffer "
9716
0
                   "[VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter]");
9717
0
        abort(); /* Intentionally fail so user can correct issue. */
9718
0
    }
9719
0
    disp->CmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne);
9720
0
}
9721
9722
VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingEnableNV(
9723
    VkCommandBuffer                             commandBuffer,
9724
0
    VkBool32                                    viewportWScalingEnable) {
9725
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9726
0
    if (NULL == disp) {
9727
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9728
0
                   "vkCmdSetViewportWScalingEnableNV: Invalid commandBuffer "
9729
0
                   "[VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter]");
9730
0
        abort(); /* Intentionally fail so user can correct issue. */
9731
0
    }
9732
0
    disp->CmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable);
9733
0
}
9734
9735
VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV(
9736
    VkCommandBuffer                             commandBuffer,
9737
    uint32_t                                    firstViewport,
9738
    uint32_t                                    viewportCount,
9739
0
    const VkViewportSwizzleNV*                  pViewportSwizzles) {
9740
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9741
0
    if (NULL == disp) {
9742
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9743
0
                   "vkCmdSetViewportSwizzleNV: Invalid commandBuffer "
9744
0
                   "[VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter]");
9745
0
        abort(); /* Intentionally fail so user can correct issue. */
9746
0
    }
9747
0
    disp->CmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles);
9748
0
}
9749
9750
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorEnableNV(
9751
    VkCommandBuffer                             commandBuffer,
9752
0
    VkBool32                                    coverageToColorEnable) {
9753
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9754
0
    if (NULL == disp) {
9755
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9756
0
                   "vkCmdSetCoverageToColorEnableNV: Invalid commandBuffer "
9757
0
                   "[VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter]");
9758
0
        abort(); /* Intentionally fail so user can correct issue. */
9759
0
    }
9760
0
    disp->CmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable);
9761
0
}
9762
9763
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorLocationNV(
9764
    VkCommandBuffer                             commandBuffer,
9765
0
    uint32_t                                    coverageToColorLocation) {
9766
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9767
0
    if (NULL == disp) {
9768
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9769
0
                   "vkCmdSetCoverageToColorLocationNV: Invalid commandBuffer "
9770
0
                   "[VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter]");
9771
0
        abort(); /* Intentionally fail so user can correct issue. */
9772
0
    }
9773
0
    disp->CmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation);
9774
0
}
9775
9776
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationModeNV(
9777
    VkCommandBuffer                             commandBuffer,
9778
0
    VkCoverageModulationModeNV                  coverageModulationMode) {
9779
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9780
0
    if (NULL == disp) {
9781
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9782
0
                   "vkCmdSetCoverageModulationModeNV: Invalid commandBuffer "
9783
0
                   "[VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter]");
9784
0
        abort(); /* Intentionally fail so user can correct issue. */
9785
0
    }
9786
0
    disp->CmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode);
9787
0
}
9788
9789
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableEnableNV(
9790
    VkCommandBuffer                             commandBuffer,
9791
0
    VkBool32                                    coverageModulationTableEnable) {
9792
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9793
0
    if (NULL == disp) {
9794
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9795
0
                   "vkCmdSetCoverageModulationTableEnableNV: Invalid commandBuffer "
9796
0
                   "[VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter]");
9797
0
        abort(); /* Intentionally fail so user can correct issue. */
9798
0
    }
9799
0
    disp->CmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable);
9800
0
}
9801
9802
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV(
9803
    VkCommandBuffer                             commandBuffer,
9804
    uint32_t                                    coverageModulationTableCount,
9805
0
    const float*                                pCoverageModulationTable) {
9806
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9807
0
    if (NULL == disp) {
9808
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9809
0
                   "vkCmdSetCoverageModulationTableNV: Invalid commandBuffer "
9810
0
                   "[VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter]");
9811
0
        abort(); /* Intentionally fail so user can correct issue. */
9812
0
    }
9813
0
    disp->CmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable);
9814
0
}
9815
9816
VKAPI_ATTR void VKAPI_CALL CmdSetShadingRateImageEnableNV(
9817
    VkCommandBuffer                             commandBuffer,
9818
0
    VkBool32                                    shadingRateImageEnable) {
9819
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9820
0
    if (NULL == disp) {
9821
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9822
0
                   "vkCmdSetShadingRateImageEnableNV: Invalid commandBuffer "
9823
0
                   "[VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter]");
9824
0
        abort(); /* Intentionally fail so user can correct issue. */
9825
0
    }
9826
0
    disp->CmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable);
9827
0
}
9828
9829
VKAPI_ATTR void VKAPI_CALL CmdSetRepresentativeFragmentTestEnableNV(
9830
    VkCommandBuffer                             commandBuffer,
9831
0
    VkBool32                                    representativeFragmentTestEnable) {
9832
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdSetRepresentativeFragmentTestEnableNV: Invalid commandBuffer "
9836
0
                   "[VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter]");
9837
0
        abort(); /* Intentionally fail so user can correct issue. */
9838
0
    }
9839
0
    disp->CmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable);
9840
0
}
9841
9842
VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV(
9843
    VkCommandBuffer                             commandBuffer,
9844
0
    VkCoverageReductionModeNV                   coverageReductionMode) {
9845
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9846
0
    if (NULL == disp) {
9847
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9848
0
                   "vkCmdSetCoverageReductionModeNV: Invalid commandBuffer "
9849
0
                   "[VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter]");
9850
0
        abort(); /* Intentionally fail so user can correct issue. */
9851
0
    }
9852
0
    disp->CmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode);
9853
0
}
9854
9855
9856
// ---- VK_ARM_tensors extension trampoline/terminators
9857
9858
VKAPI_ATTR VkResult VKAPI_CALL CreateTensorARM(
9859
    VkDevice                                    device,
9860
    const VkTensorCreateInfoARM*                pCreateInfo,
9861
    const VkAllocationCallbacks*                pAllocator,
9862
0
    VkTensorARM*                                pTensor) {
9863
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9864
0
    if (NULL == disp) {
9865
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9866
0
                   "vkCreateTensorARM: Invalid device "
9867
0
                   "[VUID-vkCreateTensorARM-device-parameter]");
9868
0
        abort(); /* Intentionally fail so user can correct issue. */
9869
0
    }
9870
0
    return disp->CreateTensorARM(device, pCreateInfo, pAllocator, pTensor);
9871
0
}
9872
9873
VKAPI_ATTR void VKAPI_CALL DestroyTensorARM(
9874
    VkDevice                                    device,
9875
    VkTensorARM                                 tensor,
9876
0
    const VkAllocationCallbacks*                pAllocator) {
9877
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9878
0
    if (NULL == disp) {
9879
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9880
0
                   "vkDestroyTensorARM: Invalid device "
9881
0
                   "[VUID-vkDestroyTensorARM-device-parameter]");
9882
0
        abort(); /* Intentionally fail so user can correct issue. */
9883
0
    }
9884
0
    disp->DestroyTensorARM(device, tensor, pAllocator);
9885
0
}
9886
9887
VKAPI_ATTR VkResult VKAPI_CALL CreateTensorViewARM(
9888
    VkDevice                                    device,
9889
    const VkTensorViewCreateInfoARM*            pCreateInfo,
9890
    const VkAllocationCallbacks*                pAllocator,
9891
0
    VkTensorViewARM*                            pView) {
9892
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9893
0
    if (NULL == disp) {
9894
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9895
0
                   "vkCreateTensorViewARM: Invalid device "
9896
0
                   "[VUID-vkCreateTensorViewARM-device-parameter]");
9897
0
        abort(); /* Intentionally fail so user can correct issue. */
9898
0
    }
9899
0
    return disp->CreateTensorViewARM(device, pCreateInfo, pAllocator, pView);
9900
0
}
9901
9902
VKAPI_ATTR void VKAPI_CALL DestroyTensorViewARM(
9903
    VkDevice                                    device,
9904
    VkTensorViewARM                             tensorView,
9905
0
    const VkAllocationCallbacks*                pAllocator) {
9906
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9907
0
    if (NULL == disp) {
9908
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9909
0
                   "vkDestroyTensorViewARM: Invalid device "
9910
0
                   "[VUID-vkDestroyTensorViewARM-device-parameter]");
9911
0
        abort(); /* Intentionally fail so user can correct issue. */
9912
0
    }
9913
0
    disp->DestroyTensorViewARM(device, tensorView, pAllocator);
9914
0
}
9915
9916
VKAPI_ATTR void VKAPI_CALL GetTensorMemoryRequirementsARM(
9917
    VkDevice                                    device,
9918
    const VkTensorMemoryRequirementsInfoARM*    pInfo,
9919
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
9920
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9921
0
    if (NULL == disp) {
9922
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9923
0
                   "vkGetTensorMemoryRequirementsARM: Invalid device "
9924
0
                   "[VUID-vkGetTensorMemoryRequirementsARM-device-parameter]");
9925
0
        abort(); /* Intentionally fail so user can correct issue. */
9926
0
    }
9927
0
    disp->GetTensorMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
9928
0
}
9929
9930
VKAPI_ATTR VkResult VKAPI_CALL BindTensorMemoryARM(
9931
    VkDevice                                    device,
9932
    uint32_t                                    bindInfoCount,
9933
0
    const VkBindTensorMemoryInfoARM*            pBindInfos) {
9934
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9935
0
    if (NULL == disp) {
9936
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9937
0
                   "vkBindTensorMemoryARM: Invalid device "
9938
0
                   "[VUID-vkBindTensorMemoryARM-device-parameter]");
9939
0
        abort(); /* Intentionally fail so user can correct issue. */
9940
0
    }
9941
0
    return disp->BindTensorMemoryARM(device, bindInfoCount, pBindInfos);
9942
0
}
9943
9944
VKAPI_ATTR void VKAPI_CALL GetDeviceTensorMemoryRequirementsARM(
9945
    VkDevice                                    device,
9946
    const VkDeviceTensorMemoryRequirementsARM*  pInfo,
9947
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
9948
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkGetDeviceTensorMemoryRequirementsARM: Invalid device "
9952
0
                   "[VUID-vkGetDeviceTensorMemoryRequirementsARM-device-parameter]");
9953
0
        abort(); /* Intentionally fail so user can correct issue. */
9954
0
    }
9955
0
    disp->GetDeviceTensorMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
9956
0
}
9957
9958
VKAPI_ATTR void VKAPI_CALL CmdCopyTensorARM(
9959
    VkCommandBuffer                             commandBuffer,
9960
0
    const VkCopyTensorInfoARM*                  pCopyTensorInfo) {
9961
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9962
0
    if (NULL == disp) {
9963
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9964
0
                   "vkCmdCopyTensorARM: Invalid commandBuffer "
9965
0
                   "[VUID-vkCmdCopyTensorARM-commandBuffer-parameter]");
9966
0
        abort(); /* Intentionally fail so user can correct issue. */
9967
0
    }
9968
0
    disp->CmdCopyTensorARM(commandBuffer, pCopyTensorInfo);
9969
0
}
9970
9971
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceExternalTensorPropertiesARM(
9972
    VkPhysicalDevice                            physicalDevice,
9973
    const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
9974
0
    VkExternalTensorPropertiesARM*              pExternalTensorProperties) {
9975
0
    const VkLayerInstanceDispatchTable *disp;
9976
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
9977
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
9978
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9979
0
                   "vkGetPhysicalDeviceExternalTensorPropertiesARM: Invalid physicalDevice "
9980
0
                   "[VUID-vkGetPhysicalDeviceExternalTensorPropertiesARM-physicalDevice-parameter]");
9981
0
        abort(); /* Intentionally fail so user can correct issue. */
9982
0
    }
9983
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
9984
0
    disp->GetPhysicalDeviceExternalTensorPropertiesARM(unwrapped_phys_dev, pExternalTensorInfo, pExternalTensorProperties);
9985
0
}
9986
9987
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalTensorPropertiesARM(
9988
    VkPhysicalDevice                            physicalDevice,
9989
    const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
9990
0
    VkExternalTensorPropertiesARM*              pExternalTensorProperties) {
9991
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
9992
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
9993
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceExternalTensorPropertiesARM) {
9994
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
9995
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceExternalTensorPropertiesARM");
9996
0
        abort(); /* Intentionally fail so user can correct issue. */
9997
0
    }
9998
0
    icd_term->dispatch.GetPhysicalDeviceExternalTensorPropertiesARM(phys_dev_term->phys_dev, pExternalTensorInfo, pExternalTensorProperties);
9999
0
}
10000
10001
VKAPI_ATTR VkResult VKAPI_CALL GetTensorOpaqueCaptureDescriptorDataARM(
10002
    VkDevice                                    device,
10003
    const VkTensorCaptureDescriptorDataInfoARM* pInfo,
10004
0
    void*                                       pData) {
10005
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10006
0
    if (NULL == disp) {
10007
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10008
0
                   "vkGetTensorOpaqueCaptureDescriptorDataARM: Invalid device "
10009
0
                   "[VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-device-parameter]");
10010
0
        abort(); /* Intentionally fail so user can correct issue. */
10011
0
    }
10012
0
    return disp->GetTensorOpaqueCaptureDescriptorDataARM(device, pInfo, pData);
10013
0
}
10014
10015
VKAPI_ATTR VkResult VKAPI_CALL GetTensorViewOpaqueCaptureDescriptorDataARM(
10016
    VkDevice                                    device,
10017
    const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
10018
0
    void*                                       pData) {
10019
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10020
0
    if (NULL == disp) {
10021
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10022
0
                   "vkGetTensorViewOpaqueCaptureDescriptorDataARM: Invalid device "
10023
0
                   "[VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-device-parameter]");
10024
0
        abort(); /* Intentionally fail so user can correct issue. */
10025
0
    }
10026
0
    return disp->GetTensorViewOpaqueCaptureDescriptorDataARM(device, pInfo, pData);
10027
0
}
10028
10029
10030
// ---- VK_EXT_shader_module_identifier extension trampoline/terminators
10031
10032
VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT(
10033
    VkDevice                                    device,
10034
    VkShaderModule                              shaderModule,
10035
0
    VkShaderModuleIdentifierEXT*                pIdentifier) {
10036
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10037
0
    if (NULL == disp) {
10038
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10039
0
                   "vkGetShaderModuleIdentifierEXT: Invalid device "
10040
0
                   "[VUID-vkGetShaderModuleIdentifierEXT-device-parameter]");
10041
0
        abort(); /* Intentionally fail so user can correct issue. */
10042
0
    }
10043
0
    disp->GetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier);
10044
0
}
10045
10046
VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT(
10047
    VkDevice                                    device,
10048
    const VkShaderModuleCreateInfo*             pCreateInfo,
10049
0
    VkShaderModuleIdentifierEXT*                pIdentifier) {
10050
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10051
0
    if (NULL == disp) {
10052
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10053
0
                   "vkGetShaderModuleCreateInfoIdentifierEXT: Invalid device "
10054
0
                   "[VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter]");
10055
0
        abort(); /* Intentionally fail so user can correct issue. */
10056
0
    }
10057
0
    disp->GetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier);
10058
0
}
10059
10060
10061
// ---- VK_NV_optical_flow extension trampoline/terminators
10062
10063
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV(
10064
    VkPhysicalDevice                            physicalDevice,
10065
    const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
10066
    uint32_t*                                   pFormatCount,
10067
0
    VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties) {
10068
0
    const VkLayerInstanceDispatchTable *disp;
10069
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10070
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10071
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10072
0
                   "vkGetPhysicalDeviceOpticalFlowImageFormatsNV: Invalid physicalDevice "
10073
0
                   "[VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter]");
10074
0
        abort(); /* Intentionally fail so user can correct issue. */
10075
0
    }
10076
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10077
0
    return disp->GetPhysicalDeviceOpticalFlowImageFormatsNV(unwrapped_phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
10078
0
}
10079
10080
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(
10081
    VkPhysicalDevice                            physicalDevice,
10082
    const VkOpticalFlowImageFormatInfoNV*       pOpticalFlowImageFormatInfo,
10083
    uint32_t*                                   pFormatCount,
10084
0
    VkOpticalFlowImageFormatPropertiesNV*       pImageFormatProperties) {
10085
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10086
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10087
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV) {
10088
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10089
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceOpticalFlowImageFormatsNV");
10090
0
        abort(); /* Intentionally fail so user can correct issue. */
10091
0
    }
10092
0
    return icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV(phys_dev_term->phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
10093
0
}
10094
10095
VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV(
10096
    VkDevice                                    device,
10097
    const VkOpticalFlowSessionCreateInfoNV*     pCreateInfo,
10098
    const VkAllocationCallbacks*                pAllocator,
10099
0
    VkOpticalFlowSessionNV*                     pSession) {
10100
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10101
0
    if (NULL == disp) {
10102
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10103
0
                   "vkCreateOpticalFlowSessionNV: Invalid device "
10104
0
                   "[VUID-vkCreateOpticalFlowSessionNV-device-parameter]");
10105
0
        abort(); /* Intentionally fail so user can correct issue. */
10106
0
    }
10107
0
    return disp->CreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession);
10108
0
}
10109
10110
VKAPI_ATTR void VKAPI_CALL DestroyOpticalFlowSessionNV(
10111
    VkDevice                                    device,
10112
    VkOpticalFlowSessionNV                      session,
10113
0
    const VkAllocationCallbacks*                pAllocator) {
10114
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10115
0
    if (NULL == disp) {
10116
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10117
0
                   "vkDestroyOpticalFlowSessionNV: Invalid device "
10118
0
                   "[VUID-vkDestroyOpticalFlowSessionNV-device-parameter]");
10119
0
        abort(); /* Intentionally fail so user can correct issue. */
10120
0
    }
10121
0
    disp->DestroyOpticalFlowSessionNV(device, session, pAllocator);
10122
0
}
10123
10124
VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV(
10125
    VkDevice                                    device,
10126
    VkOpticalFlowSessionNV                      session,
10127
    VkOpticalFlowSessionBindingPointNV          bindingPoint,
10128
    VkImageView                                 view,
10129
0
    VkImageLayout                               layout) {
10130
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10131
0
    if (NULL == disp) {
10132
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10133
0
                   "vkBindOpticalFlowSessionImageNV: Invalid device "
10134
0
                   "[VUID-vkBindOpticalFlowSessionImageNV-device-parameter]");
10135
0
        abort(); /* Intentionally fail so user can correct issue. */
10136
0
    }
10137
0
    return disp->BindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout);
10138
0
}
10139
10140
VKAPI_ATTR void VKAPI_CALL CmdOpticalFlowExecuteNV(
10141
    VkCommandBuffer                             commandBuffer,
10142
    VkOpticalFlowSessionNV                      session,
10143
0
    const VkOpticalFlowExecuteInfoNV*           pExecuteInfo) {
10144
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10145
0
    if (NULL == disp) {
10146
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10147
0
                   "vkCmdOpticalFlowExecuteNV: Invalid commandBuffer "
10148
0
                   "[VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter]");
10149
0
        abort(); /* Intentionally fail so user can correct issue. */
10150
0
    }
10151
0
    disp->CmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo);
10152
0
}
10153
10154
10155
// ---- VK_AMD_anti_lag extension trampoline/terminators
10156
10157
VKAPI_ATTR void VKAPI_CALL AntiLagUpdateAMD(
10158
    VkDevice                                    device,
10159
0
    const VkAntiLagDataAMD*                     pData) {
10160
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10161
0
    if (NULL == disp) {
10162
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10163
0
                   "vkAntiLagUpdateAMD: Invalid device "
10164
0
                   "[VUID-vkAntiLagUpdateAMD-device-parameter]");
10165
0
        abort(); /* Intentionally fail so user can correct issue. */
10166
0
    }
10167
0
    disp->AntiLagUpdateAMD(device, pData);
10168
0
}
10169
10170
10171
// ---- VK_EXT_shader_object extension trampoline/terminators
10172
10173
VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT(
10174
    VkDevice                                    device,
10175
    uint32_t                                    createInfoCount,
10176
    const VkShaderCreateInfoEXT*                pCreateInfos,
10177
    const VkAllocationCallbacks*                pAllocator,
10178
0
    VkShaderEXT*                                pShaders) {
10179
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10180
0
    if (NULL == disp) {
10181
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10182
0
                   "vkCreateShadersEXT: Invalid device "
10183
0
                   "[VUID-vkCreateShadersEXT-device-parameter]");
10184
0
        abort(); /* Intentionally fail so user can correct issue. */
10185
0
    }
10186
0
    return disp->CreateShadersEXT(device, createInfoCount, pCreateInfos, pAllocator, pShaders);
10187
0
}
10188
10189
VKAPI_ATTR void VKAPI_CALL DestroyShaderEXT(
10190
    VkDevice                                    device,
10191
    VkShaderEXT                                 shader,
10192
0
    const VkAllocationCallbacks*                pAllocator) {
10193
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10194
0
    if (NULL == disp) {
10195
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10196
0
                   "vkDestroyShaderEXT: Invalid device "
10197
0
                   "[VUID-vkDestroyShaderEXT-device-parameter]");
10198
0
        abort(); /* Intentionally fail so user can correct issue. */
10199
0
    }
10200
0
    disp->DestroyShaderEXT(device, shader, pAllocator);
10201
0
}
10202
10203
VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT(
10204
    VkDevice                                    device,
10205
    VkShaderEXT                                 shader,
10206
    size_t*                                     pDataSize,
10207
0
    void*                                       pData) {
10208
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10209
0
    if (NULL == disp) {
10210
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10211
0
                   "vkGetShaderBinaryDataEXT: Invalid device "
10212
0
                   "[VUID-vkGetShaderBinaryDataEXT-device-parameter]");
10213
0
        abort(); /* Intentionally fail so user can correct issue. */
10214
0
    }
10215
0
    return disp->GetShaderBinaryDataEXT(device, shader, pDataSize, pData);
10216
0
}
10217
10218
VKAPI_ATTR void VKAPI_CALL CmdBindShadersEXT(
10219
    VkCommandBuffer                             commandBuffer,
10220
    uint32_t                                    stageCount,
10221
    const VkShaderStageFlagBits*                pStages,
10222
0
    const VkShaderEXT*                          pShaders) {
10223
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10224
0
    if (NULL == disp) {
10225
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10226
0
                   "vkCmdBindShadersEXT: Invalid commandBuffer "
10227
0
                   "[VUID-vkCmdBindShadersEXT-commandBuffer-parameter]");
10228
0
        abort(); /* Intentionally fail so user can correct issue. */
10229
0
    }
10230
0
    disp->CmdBindShadersEXT(commandBuffer, stageCount, pStages, pShaders);
10231
0
}
10232
10233
VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampRangeEXT(
10234
    VkCommandBuffer                             commandBuffer,
10235
    VkDepthClampModeEXT                         depthClampMode,
10236
0
    const VkDepthClampRangeEXT*                 pDepthClampRange) {
10237
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10238
0
    if (NULL == disp) {
10239
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10240
0
                   "vkCmdSetDepthClampRangeEXT: Invalid commandBuffer "
10241
0
                   "[VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameter]");
10242
0
        abort(); /* Intentionally fail so user can correct issue. */
10243
0
    }
10244
0
    disp->CmdSetDepthClampRangeEXT(commandBuffer, depthClampMode, pDepthClampRange);
10245
0
}
10246
10247
10248
// ---- VK_QCOM_tile_properties extension trampoline/terminators
10249
10250
VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM(
10251
    VkDevice                                    device,
10252
    VkFramebuffer                               framebuffer,
10253
    uint32_t*                                   pPropertiesCount,
10254
0
    VkTilePropertiesQCOM*                       pProperties) {
10255
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10256
0
    if (NULL == disp) {
10257
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10258
0
                   "vkGetFramebufferTilePropertiesQCOM: Invalid device "
10259
0
                   "[VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter]");
10260
0
        abort(); /* Intentionally fail so user can correct issue. */
10261
0
    }
10262
0
    return disp->GetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties);
10263
0
}
10264
10265
VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(
10266
    VkDevice                                    device,
10267
    const VkRenderingInfo*                      pRenderingInfo,
10268
0
    VkTilePropertiesQCOM*                       pProperties) {
10269
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10270
0
    if (NULL == disp) {
10271
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10272
0
                   "vkGetDynamicRenderingTilePropertiesQCOM: Invalid device "
10273
0
                   "[VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter]");
10274
0
        abort(); /* Intentionally fail so user can correct issue. */
10275
0
    }
10276
0
    return disp->GetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties);
10277
0
}
10278
10279
10280
// ---- VK_NV_cooperative_vector extension trampoline/terminators
10281
10282
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeVectorPropertiesNV(
10283
    VkPhysicalDevice                            physicalDevice,
10284
    uint32_t*                                   pPropertyCount,
10285
0
    VkCooperativeVectorPropertiesNV*            pProperties) {
10286
0
    const VkLayerInstanceDispatchTable *disp;
10287
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10288
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10289
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10290
0
                   "vkGetPhysicalDeviceCooperativeVectorPropertiesNV: Invalid physicalDevice "
10291
0
                   "[VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-physicalDevice-parameter]");
10292
0
        abort(); /* Intentionally fail so user can correct issue. */
10293
0
    }
10294
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10295
0
    return disp->GetPhysicalDeviceCooperativeVectorPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
10296
0
}
10297
10298
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV(
10299
    VkPhysicalDevice                            physicalDevice,
10300
    uint32_t*                                   pPropertyCount,
10301
0
    VkCooperativeVectorPropertiesNV*            pProperties) {
10302
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10303
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10304
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV) {
10305
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10306
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeVectorPropertiesNV");
10307
0
        abort(); /* Intentionally fail so user can correct issue. */
10308
0
    }
10309
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
10310
0
}
10311
10312
VKAPI_ATTR VkResult VKAPI_CALL ConvertCooperativeVectorMatrixNV(
10313
    VkDevice                                    device,
10314
0
    const VkConvertCooperativeVectorMatrixInfoNV* pInfo) {
10315
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10316
0
    if (NULL == disp) {
10317
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10318
0
                   "vkConvertCooperativeVectorMatrixNV: Invalid device "
10319
0
                   "[VUID-vkConvertCooperativeVectorMatrixNV-device-parameter]");
10320
0
        abort(); /* Intentionally fail so user can correct issue. */
10321
0
    }
10322
0
    return disp->ConvertCooperativeVectorMatrixNV(device, pInfo);
10323
0
}
10324
10325
VKAPI_ATTR void VKAPI_CALL CmdConvertCooperativeVectorMatrixNV(
10326
    VkCommandBuffer                             commandBuffer,
10327
    uint32_t                                    infoCount,
10328
0
    const VkConvertCooperativeVectorMatrixInfoNV* pInfos) {
10329
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10330
0
    if (NULL == disp) {
10331
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10332
0
                   "vkCmdConvertCooperativeVectorMatrixNV: Invalid commandBuffer "
10333
0
                   "[VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-parameter]");
10334
0
        abort(); /* Intentionally fail so user can correct issue. */
10335
0
    }
10336
0
    disp->CmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos);
10337
0
}
10338
10339
10340
// ---- VK_NV_low_latency2 extension trampoline/terminators
10341
10342
VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(
10343
    VkDevice                                    device,
10344
    VkSwapchainKHR                              swapchain,
10345
0
    const VkLatencySleepModeInfoNV*             pSleepModeInfo) {
10346
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10347
0
    if (NULL == disp) {
10348
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10349
0
                   "vkSetLatencySleepModeNV: Invalid device "
10350
0
                   "[VUID-vkSetLatencySleepModeNV-device-parameter]");
10351
0
        abort(); /* Intentionally fail so user can correct issue. */
10352
0
    }
10353
0
    return disp->SetLatencySleepModeNV(device, swapchain, pSleepModeInfo);
10354
0
}
10355
10356
VKAPI_ATTR VkResult VKAPI_CALL LatencySleepNV(
10357
    VkDevice                                    device,
10358
    VkSwapchainKHR                              swapchain,
10359
0
    const VkLatencySleepInfoNV*                 pSleepInfo) {
10360
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10361
0
    if (NULL == disp) {
10362
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10363
0
                   "vkLatencySleepNV: Invalid device "
10364
0
                   "[VUID-vkLatencySleepNV-device-parameter]");
10365
0
        abort(); /* Intentionally fail so user can correct issue. */
10366
0
    }
10367
0
    return disp->LatencySleepNV(device, swapchain, pSleepInfo);
10368
0
}
10369
10370
VKAPI_ATTR void VKAPI_CALL SetLatencyMarkerNV(
10371
    VkDevice                                    device,
10372
    VkSwapchainKHR                              swapchain,
10373
0
    const VkSetLatencyMarkerInfoNV*             pLatencyMarkerInfo) {
10374
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10375
0
    if (NULL == disp) {
10376
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10377
0
                   "vkSetLatencyMarkerNV: Invalid device "
10378
0
                   "[VUID-vkSetLatencyMarkerNV-device-parameter]");
10379
0
        abort(); /* Intentionally fail so user can correct issue. */
10380
0
    }
10381
0
    disp->SetLatencyMarkerNV(device, swapchain, pLatencyMarkerInfo);
10382
0
}
10383
10384
VKAPI_ATTR void VKAPI_CALL GetLatencyTimingsNV(
10385
    VkDevice                                    device,
10386
    VkSwapchainKHR                              swapchain,
10387
0
    VkGetLatencyMarkerInfoNV*                   pLatencyMarkerInfo) {
10388
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10389
0
    if (NULL == disp) {
10390
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10391
0
                   "vkGetLatencyTimingsNV: Invalid device "
10392
0
                   "[VUID-vkGetLatencyTimingsNV-device-parameter]");
10393
0
        abort(); /* Intentionally fail so user can correct issue. */
10394
0
    }
10395
0
    disp->GetLatencyTimingsNV(device, swapchain, pLatencyMarkerInfo);
10396
0
}
10397
10398
VKAPI_ATTR void VKAPI_CALL QueueNotifyOutOfBandNV(
10399
    VkQueue                                     queue,
10400
0
    const VkOutOfBandQueueTypeInfoNV*           pQueueTypeInfo) {
10401
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
10402
0
    if (NULL == disp) {
10403
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10404
0
                   "vkQueueNotifyOutOfBandNV: Invalid queue "
10405
0
                   "[VUID-vkQueueNotifyOutOfBandNV-queue-parameter]");
10406
0
        abort(); /* Intentionally fail so user can correct issue. */
10407
0
    }
10408
0
    disp->QueueNotifyOutOfBandNV(queue, pQueueTypeInfo);
10409
0
}
10410
10411
10412
// ---- VK_ARM_data_graph extension trampoline/terminators
10413
10414
VKAPI_ATTR VkResult VKAPI_CALL CreateDataGraphPipelinesARM(
10415
    VkDevice                                    device,
10416
    VkDeferredOperationKHR                      deferredOperation,
10417
    VkPipelineCache                             pipelineCache,
10418
    uint32_t                                    createInfoCount,
10419
    const VkDataGraphPipelineCreateInfoARM*     pCreateInfos,
10420
    const VkAllocationCallbacks*                pAllocator,
10421
0
    VkPipeline*                                 pPipelines) {
10422
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10423
0
    if (NULL == disp) {
10424
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10425
0
                   "vkCreateDataGraphPipelinesARM: Invalid device "
10426
0
                   "[VUID-vkCreateDataGraphPipelinesARM-device-parameter]");
10427
0
        abort(); /* Intentionally fail so user can correct issue. */
10428
0
    }
10429
0
    return disp->CreateDataGraphPipelinesARM(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
10430
0
}
10431
10432
VKAPI_ATTR VkResult VKAPI_CALL CreateDataGraphPipelineSessionARM(
10433
    VkDevice                                    device,
10434
    const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
10435
    const VkAllocationCallbacks*                pAllocator,
10436
0
    VkDataGraphPipelineSessionARM*              pSession) {
10437
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10438
0
    if (NULL == disp) {
10439
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10440
0
                   "vkCreateDataGraphPipelineSessionARM: Invalid device "
10441
0
                   "[VUID-vkCreateDataGraphPipelineSessionARM-device-parameter]");
10442
0
        abort(); /* Intentionally fail so user can correct issue. */
10443
0
    }
10444
0
    return disp->CreateDataGraphPipelineSessionARM(device, pCreateInfo, pAllocator, pSession);
10445
0
}
10446
10447
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelineSessionBindPointRequirementsARM(
10448
    VkDevice                                    device,
10449
    const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
10450
    uint32_t*                                   pBindPointRequirementCount,
10451
0
    VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements) {
10452
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10453
0
    if (NULL == disp) {
10454
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10455
0
                   "vkGetDataGraphPipelineSessionBindPointRequirementsARM: Invalid device "
10456
0
                   "[VUID-vkGetDataGraphPipelineSessionBindPointRequirementsARM-device-parameter]");
10457
0
        abort(); /* Intentionally fail so user can correct issue. */
10458
0
    }
10459
0
    return disp->GetDataGraphPipelineSessionBindPointRequirementsARM(device, pInfo, pBindPointRequirementCount, pBindPointRequirements);
10460
0
}
10461
10462
VKAPI_ATTR void VKAPI_CALL GetDataGraphPipelineSessionMemoryRequirementsARM(
10463
    VkDevice                                    device,
10464
    const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
10465
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
10466
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10467
0
    if (NULL == disp) {
10468
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10469
0
                   "vkGetDataGraphPipelineSessionMemoryRequirementsARM: Invalid device "
10470
0
                   "[VUID-vkGetDataGraphPipelineSessionMemoryRequirementsARM-device-parameter]");
10471
0
        abort(); /* Intentionally fail so user can correct issue. */
10472
0
    }
10473
0
    disp->GetDataGraphPipelineSessionMemoryRequirementsARM(device, pInfo, pMemoryRequirements);
10474
0
}
10475
10476
VKAPI_ATTR VkResult VKAPI_CALL BindDataGraphPipelineSessionMemoryARM(
10477
    VkDevice                                    device,
10478
    uint32_t                                    bindInfoCount,
10479
0
    const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos) {
10480
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10481
0
    if (NULL == disp) {
10482
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10483
0
                   "vkBindDataGraphPipelineSessionMemoryARM: Invalid device "
10484
0
                   "[VUID-vkBindDataGraphPipelineSessionMemoryARM-device-parameter]");
10485
0
        abort(); /* Intentionally fail so user can correct issue. */
10486
0
    }
10487
0
    return disp->BindDataGraphPipelineSessionMemoryARM(device, bindInfoCount, pBindInfos);
10488
0
}
10489
10490
VKAPI_ATTR void VKAPI_CALL DestroyDataGraphPipelineSessionARM(
10491
    VkDevice                                    device,
10492
    VkDataGraphPipelineSessionARM               session,
10493
0
    const VkAllocationCallbacks*                pAllocator) {
10494
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10495
0
    if (NULL == disp) {
10496
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10497
0
                   "vkDestroyDataGraphPipelineSessionARM: Invalid device "
10498
0
                   "[VUID-vkDestroyDataGraphPipelineSessionARM-device-parameter]");
10499
0
        abort(); /* Intentionally fail so user can correct issue. */
10500
0
    }
10501
0
    disp->DestroyDataGraphPipelineSessionARM(device, session, pAllocator);
10502
0
}
10503
10504
VKAPI_ATTR void VKAPI_CALL CmdDispatchDataGraphARM(
10505
    VkCommandBuffer                             commandBuffer,
10506
    VkDataGraphPipelineSessionARM               session,
10507
0
    const VkDataGraphPipelineDispatchInfoARM*   pInfo) {
10508
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10509
0
    if (NULL == disp) {
10510
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10511
0
                   "vkCmdDispatchDataGraphARM: Invalid commandBuffer "
10512
0
                   "[VUID-vkCmdDispatchDataGraphARM-commandBuffer-parameter]");
10513
0
        abort(); /* Intentionally fail so user can correct issue. */
10514
0
    }
10515
0
    disp->CmdDispatchDataGraphARM(commandBuffer, session, pInfo);
10516
0
}
10517
10518
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelineAvailablePropertiesARM(
10519
    VkDevice                                    device,
10520
    const VkDataGraphPipelineInfoARM*           pPipelineInfo,
10521
    uint32_t*                                   pPropertiesCount,
10522
0
    VkDataGraphPipelinePropertyARM*             pProperties) {
10523
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10524
0
    if (NULL == disp) {
10525
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10526
0
                   "vkGetDataGraphPipelineAvailablePropertiesARM: Invalid device "
10527
0
                   "[VUID-vkGetDataGraphPipelineAvailablePropertiesARM-device-parameter]");
10528
0
        abort(); /* Intentionally fail so user can correct issue. */
10529
0
    }
10530
0
    return disp->GetDataGraphPipelineAvailablePropertiesARM(device, pPipelineInfo, pPropertiesCount, pProperties);
10531
0
}
10532
10533
VKAPI_ATTR VkResult VKAPI_CALL GetDataGraphPipelinePropertiesARM(
10534
    VkDevice                                    device,
10535
    const VkDataGraphPipelineInfoARM*           pPipelineInfo,
10536
    uint32_t                                    propertiesCount,
10537
0
    VkDataGraphPipelinePropertyQueryResultARM*  pProperties) {
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
                   "vkGetDataGraphPipelinePropertiesARM: Invalid device "
10542
0
                   "[VUID-vkGetDataGraphPipelinePropertiesARM-device-parameter]");
10543
0
        abort(); /* Intentionally fail so user can correct issue. */
10544
0
    }
10545
0
    return disp->GetDataGraphPipelinePropertiesARM(device, pPipelineInfo, propertiesCount, pProperties);
10546
0
}
10547
10548
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
10549
    VkPhysicalDevice                            physicalDevice,
10550
    uint32_t                                    queueFamilyIndex,
10551
    uint32_t*                                   pQueueFamilyDataGraphPropertyCount,
10552
0
    VkQueueFamilyDataGraphPropertiesARM*        pQueueFamilyDataGraphProperties) {
10553
0
    const VkLayerInstanceDispatchTable *disp;
10554
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10555
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10556
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10557
0
                   "vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM: Invalid physicalDevice "
10558
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM-physicalDevice-parameter]");
10559
0
        abort(); /* Intentionally fail so user can correct issue. */
10560
0
    }
10561
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10562
0
    return disp->GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(unwrapped_phys_dev, queueFamilyIndex, pQueueFamilyDataGraphPropertyCount, pQueueFamilyDataGraphProperties);
10563
0
}
10564
10565
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
10566
    VkPhysicalDevice                            physicalDevice,
10567
    uint32_t                                    queueFamilyIndex,
10568
    uint32_t*                                   pQueueFamilyDataGraphPropertyCount,
10569
0
    VkQueueFamilyDataGraphPropertiesARM*        pQueueFamilyDataGraphProperties) {
10570
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10571
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10572
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM) {
10573
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10574
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM");
10575
0
        abort(); /* Intentionally fail so user can correct issue. */
10576
0
    }
10577
0
    return icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(phys_dev_term->phys_dev, queueFamilyIndex, pQueueFamilyDataGraphPropertyCount, pQueueFamilyDataGraphProperties);
10578
0
}
10579
10580
VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
10581
    VkPhysicalDevice                            physicalDevice,
10582
    const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
10583
0
    VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties) {
10584
0
    const VkLayerInstanceDispatchTable *disp;
10585
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10586
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10587
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10588
0
                   "vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM: Invalid physicalDevice "
10589
0
                   "[VUID-vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM-physicalDevice-parameter]");
10590
0
        abort(); /* Intentionally fail so user can correct issue. */
10591
0
    }
10592
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
10593
0
    disp->GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(unwrapped_phys_dev, pQueueFamilyDataGraphProcessingEngineInfo, pQueueFamilyDataGraphProcessingEngineProperties);
10594
0
}
10595
10596
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
10597
    VkPhysicalDevice                            physicalDevice,
10598
    const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
10599
0
    VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties) {
10600
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10601
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10602
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM) {
10603
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10604
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM");
10605
0
        abort(); /* Intentionally fail so user can correct issue. */
10606
0
    }
10607
0
    icd_term->dispatch.GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(phys_dev_term->phys_dev, pQueueFamilyDataGraphProcessingEngineInfo, pQueueFamilyDataGraphProcessingEngineProperties);
10608
0
}
10609
10610
10611
// ---- VK_EXT_attachment_feedback_loop_dynamic_state extension trampoline/terminators
10612
10613
VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT(
10614
    VkCommandBuffer                             commandBuffer,
10615
0
    VkImageAspectFlags                          aspectMask) {
10616
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10617
0
    if (NULL == disp) {
10618
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10619
0
                   "vkCmdSetAttachmentFeedbackLoopEnableEXT: Invalid commandBuffer "
10620
0
                   "[VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter]");
10621
0
        abort(); /* Intentionally fail so user can correct issue. */
10622
0
    }
10623
0
    disp->CmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
10624
0
}
10625
10626
10627
// ---- VK_QNX_external_memory_screen_buffer extension trampoline/terminators
10628
10629
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
10630
VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(
10631
    VkDevice                                    device,
10632
    const struct _screen_buffer*                buffer,
10633
    VkScreenBufferPropertiesQNX*                pProperties) {
10634
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10635
    if (NULL == disp) {
10636
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10637
                   "vkGetScreenBufferPropertiesQNX: Invalid device "
10638
                   "[VUID-vkGetScreenBufferPropertiesQNX-device-parameter]");
10639
        abort(); /* Intentionally fail so user can correct issue. */
10640
    }
10641
    return disp->GetScreenBufferPropertiesQNX(device, buffer, pProperties);
10642
}
10643
10644
#endif // VK_USE_PLATFORM_SCREEN_QNX
10645
10646
// ---- VK_QCOM_tile_memory_heap extension trampoline/terminators
10647
10648
VKAPI_ATTR void VKAPI_CALL CmdBindTileMemoryQCOM(
10649
    VkCommandBuffer                             commandBuffer,
10650
0
    const VkTileMemoryBindInfoQCOM*             pTileMemoryBindInfo) {
10651
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdBindTileMemoryQCOM: Invalid commandBuffer "
10655
0
                   "[VUID-vkCmdBindTileMemoryQCOM-commandBuffer-parameter]");
10656
0
        abort(); /* Intentionally fail so user can correct issue. */
10657
0
    }
10658
0
    disp->CmdBindTileMemoryQCOM(commandBuffer, pTileMemoryBindInfo);
10659
0
}
10660
10661
10662
// ---- VK_EXT_memory_decompression extension trampoline/terminators
10663
10664
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryEXT(
10665
    VkCommandBuffer                             commandBuffer,
10666
0
    const VkDecompressMemoryInfoEXT*            pDecompressMemoryInfoEXT) {
10667
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10668
0
    if (NULL == disp) {
10669
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10670
0
                   "vkCmdDecompressMemoryEXT: Invalid commandBuffer "
10671
0
                   "[VUID-vkCmdDecompressMemoryEXT-commandBuffer-parameter]");
10672
0
        abort(); /* Intentionally fail so user can correct issue. */
10673
0
    }
10674
0
    disp->CmdDecompressMemoryEXT(commandBuffer, pDecompressMemoryInfoEXT);
10675
0
}
10676
10677
VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountEXT(
10678
    VkCommandBuffer                             commandBuffer,
10679
    VkMemoryDecompressionMethodFlagsEXT         decompressionMethod,
10680
    VkDeviceAddress                             indirectCommandsAddress,
10681
    VkDeviceAddress                             indirectCommandsCountAddress,
10682
    uint32_t                                    maxDecompressionCount,
10683
0
    uint32_t                                    stride) {
10684
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10685
0
    if (NULL == disp) {
10686
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10687
0
                   "vkCmdDecompressMemoryIndirectCountEXT: Invalid commandBuffer "
10688
0
                   "[VUID-vkCmdDecompressMemoryIndirectCountEXT-commandBuffer-parameter]");
10689
0
        abort(); /* Intentionally fail so user can correct issue. */
10690
0
    }
10691
0
    disp->CmdDecompressMemoryIndirectCountEXT(commandBuffer, decompressionMethod, indirectCommandsAddress, indirectCommandsCountAddress, maxDecompressionCount, stride);
10692
0
}
10693
10694
10695
// ---- VK_NV_external_compute_queue extension trampoline/terminators
10696
10697
VKAPI_ATTR VkResult VKAPI_CALL CreateExternalComputeQueueNV(
10698
    VkDevice                                    device,
10699
    const VkExternalComputeQueueCreateInfoNV*   pCreateInfo,
10700
    const VkAllocationCallbacks*                pAllocator,
10701
0
    VkExternalComputeQueueNV*                   pExternalQueue) {
10702
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10703
0
    if (NULL == disp) {
10704
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10705
0
                   "vkCreateExternalComputeQueueNV: Invalid device "
10706
0
                   "[VUID-vkCreateExternalComputeQueueNV-device-parameter]");
10707
0
        abort(); /* Intentionally fail so user can correct issue. */
10708
0
    }
10709
0
    return disp->CreateExternalComputeQueueNV(device, pCreateInfo, pAllocator, pExternalQueue);
10710
0
}
10711
10712
VKAPI_ATTR void VKAPI_CALL DestroyExternalComputeQueueNV(
10713
    VkDevice                                    device,
10714
    VkExternalComputeQueueNV                    externalQueue,
10715
0
    const VkAllocationCallbacks*                pAllocator) {
10716
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10717
0
    if (NULL == disp) {
10718
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10719
0
                   "vkDestroyExternalComputeQueueNV: Invalid device "
10720
0
                   "[VUID-vkDestroyExternalComputeQueueNV-device-parameter]");
10721
0
        abort(); /* Intentionally fail so user can correct issue. */
10722
0
    }
10723
0
    disp->DestroyExternalComputeQueueNV(device, externalQueue, pAllocator);
10724
0
}
10725
10726
VKAPI_ATTR void VKAPI_CALL GetExternalComputeQueueDataNV(
10727
    VkExternalComputeQueueNV                    externalQueue,
10728
    VkExternalComputeQueueDataParamsNV*         params,
10729
0
    void*                                       pData) {
10730
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(externalQueue);
10731
0
    if (NULL == disp) {
10732
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10733
0
                   "vkGetExternalComputeQueueDataNV: Invalid externalQueue "
10734
0
                   "[VUID-vkGetExternalComputeQueueDataNV-externalQueue-parameter]");
10735
0
        abort(); /* Intentionally fail so user can correct issue. */
10736
0
    }
10737
0
    disp->GetExternalComputeQueueDataNV(externalQueue, params, pData);
10738
0
}
10739
10740
10741
// ---- VK_NV_cluster_acceleration_structure extension trampoline/terminators
10742
10743
VKAPI_ATTR void VKAPI_CALL GetClusterAccelerationStructureBuildSizesNV(
10744
    VkDevice                                    device,
10745
    const VkClusterAccelerationStructureInputInfoNV* pInfo,
10746
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
10747
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10748
0
    if (NULL == disp) {
10749
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10750
0
                   "vkGetClusterAccelerationStructureBuildSizesNV: Invalid device "
10751
0
                   "[VUID-vkGetClusterAccelerationStructureBuildSizesNV-device-parameter]");
10752
0
        abort(); /* Intentionally fail so user can correct issue. */
10753
0
    }
10754
0
    disp->GetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo);
10755
0
}
10756
10757
VKAPI_ATTR void VKAPI_CALL CmdBuildClusterAccelerationStructureIndirectNV(
10758
    VkCommandBuffer                             commandBuffer,
10759
0
    const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) {
10760
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10761
0
    if (NULL == disp) {
10762
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10763
0
                   "vkCmdBuildClusterAccelerationStructureIndirectNV: Invalid commandBuffer "
10764
0
                   "[VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter]");
10765
0
        abort(); /* Intentionally fail so user can correct issue. */
10766
0
    }
10767
0
    disp->CmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos);
10768
0
}
10769
10770
10771
// ---- VK_NV_partitioned_acceleration_structure extension trampoline/terminators
10772
10773
VKAPI_ATTR void VKAPI_CALL GetPartitionedAccelerationStructuresBuildSizesNV(
10774
    VkDevice                                    device,
10775
    const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
10776
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
10777
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10778
0
    if (NULL == disp) {
10779
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10780
0
                   "vkGetPartitionedAccelerationStructuresBuildSizesNV: Invalid device "
10781
0
                   "[VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-device-parameter]");
10782
0
        abort(); /* Intentionally fail so user can correct issue. */
10783
0
    }
10784
0
    disp->GetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo);
10785
0
}
10786
10787
VKAPI_ATTR void VKAPI_CALL CmdBuildPartitionedAccelerationStructuresNV(
10788
    VkCommandBuffer                             commandBuffer,
10789
0
    const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) {
10790
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10791
0
    if (NULL == disp) {
10792
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10793
0
                   "vkCmdBuildPartitionedAccelerationStructuresNV: Invalid commandBuffer "
10794
0
                   "[VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-parameter]");
10795
0
        abort(); /* Intentionally fail so user can correct issue. */
10796
0
    }
10797
0
    disp->CmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo);
10798
0
}
10799
10800
10801
// ---- VK_EXT_device_generated_commands extension trampoline/terminators
10802
10803
VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT(
10804
    VkDevice                                    device,
10805
    const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
10806
0
    VkMemoryRequirements2*                      pMemoryRequirements) {
10807
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10808
0
    if (NULL == disp) {
10809
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10810
0
                   "vkGetGeneratedCommandsMemoryRequirementsEXT: Invalid device "
10811
0
                   "[VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-device-parameter]");
10812
0
        abort(); /* Intentionally fail so user can correct issue. */
10813
0
    }
10814
0
    disp->GetGeneratedCommandsMemoryRequirementsEXT(device, pInfo, pMemoryRequirements);
10815
0
}
10816
10817
VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsEXT(
10818
    VkCommandBuffer                             commandBuffer,
10819
    const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo,
10820
0
    VkCommandBuffer                             stateCommandBuffer) {
10821
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10822
0
    if (NULL == disp) {
10823
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10824
0
                   "vkCmdPreprocessGeneratedCommandsEXT: Invalid commandBuffer "
10825
0
                   "[VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameter]");
10826
0
        abort(); /* Intentionally fail so user can correct issue. */
10827
0
    }
10828
0
    disp->CmdPreprocessGeneratedCommandsEXT(commandBuffer, pGeneratedCommandsInfo, stateCommandBuffer);
10829
0
}
10830
10831
VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsEXT(
10832
    VkCommandBuffer                             commandBuffer,
10833
    VkBool32                                    isPreprocessed,
10834
0
    const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo) {
10835
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10836
0
    if (NULL == disp) {
10837
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10838
0
                   "vkCmdExecuteGeneratedCommandsEXT: Invalid commandBuffer "
10839
0
                   "[VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-parameter]");
10840
0
        abort(); /* Intentionally fail so user can correct issue. */
10841
0
    }
10842
0
    disp->CmdExecuteGeneratedCommandsEXT(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
10843
0
}
10844
10845
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutEXT(
10846
    VkDevice                                    device,
10847
    const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
10848
    const VkAllocationCallbacks*                pAllocator,
10849
0
    VkIndirectCommandsLayoutEXT*                pIndirectCommandsLayout) {
10850
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10851
0
    if (NULL == disp) {
10852
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10853
0
                   "vkCreateIndirectCommandsLayoutEXT: Invalid device "
10854
0
                   "[VUID-vkCreateIndirectCommandsLayoutEXT-device-parameter]");
10855
0
        abort(); /* Intentionally fail so user can correct issue. */
10856
0
    }
10857
0
    return disp->CreateIndirectCommandsLayoutEXT(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
10858
0
}
10859
10860
VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutEXT(
10861
    VkDevice                                    device,
10862
    VkIndirectCommandsLayoutEXT                 indirectCommandsLayout,
10863
0
    const VkAllocationCallbacks*                pAllocator) {
10864
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10865
0
    if (NULL == disp) {
10866
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10867
0
                   "vkDestroyIndirectCommandsLayoutEXT: Invalid device "
10868
0
                   "[VUID-vkDestroyIndirectCommandsLayoutEXT-device-parameter]");
10869
0
        abort(); /* Intentionally fail so user can correct issue. */
10870
0
    }
10871
0
    disp->DestroyIndirectCommandsLayoutEXT(device, indirectCommandsLayout, pAllocator);
10872
0
}
10873
10874
VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectExecutionSetEXT(
10875
    VkDevice                                    device,
10876
    const VkIndirectExecutionSetCreateInfoEXT*  pCreateInfo,
10877
    const VkAllocationCallbacks*                pAllocator,
10878
0
    VkIndirectExecutionSetEXT*                  pIndirectExecutionSet) {
10879
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10880
0
    if (NULL == disp) {
10881
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10882
0
                   "vkCreateIndirectExecutionSetEXT: Invalid device "
10883
0
                   "[VUID-vkCreateIndirectExecutionSetEXT-device-parameter]");
10884
0
        abort(); /* Intentionally fail so user can correct issue. */
10885
0
    }
10886
0
    return disp->CreateIndirectExecutionSetEXT(device, pCreateInfo, pAllocator, pIndirectExecutionSet);
10887
0
}
10888
10889
VKAPI_ATTR void VKAPI_CALL DestroyIndirectExecutionSetEXT(
10890
    VkDevice                                    device,
10891
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
10892
0
    const VkAllocationCallbacks*                pAllocator) {
10893
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10894
0
    if (NULL == disp) {
10895
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10896
0
                   "vkDestroyIndirectExecutionSetEXT: Invalid device "
10897
0
                   "[VUID-vkDestroyIndirectExecutionSetEXT-device-parameter]");
10898
0
        abort(); /* Intentionally fail so user can correct issue. */
10899
0
    }
10900
0
    disp->DestroyIndirectExecutionSetEXT(device, indirectExecutionSet, pAllocator);
10901
0
}
10902
10903
VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetPipelineEXT(
10904
    VkDevice                                    device,
10905
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
10906
    uint32_t                                    executionSetWriteCount,
10907
0
    const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites) {
10908
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10909
0
    if (NULL == disp) {
10910
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10911
0
                   "vkUpdateIndirectExecutionSetPipelineEXT: Invalid device "
10912
0
                   "[VUID-vkUpdateIndirectExecutionSetPipelineEXT-device-parameter]");
10913
0
        abort(); /* Intentionally fail so user can correct issue. */
10914
0
    }
10915
0
    disp->UpdateIndirectExecutionSetPipelineEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
10916
0
}
10917
10918
VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetShaderEXT(
10919
    VkDevice                                    device,
10920
    VkIndirectExecutionSetEXT                   indirectExecutionSet,
10921
    uint32_t                                    executionSetWriteCount,
10922
0
    const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites) {
10923
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10924
0
    if (NULL == disp) {
10925
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10926
0
                   "vkUpdateIndirectExecutionSetShaderEXT: Invalid device "
10927
0
                   "[VUID-vkUpdateIndirectExecutionSetShaderEXT-device-parameter]");
10928
0
        abort(); /* Intentionally fail so user can correct issue. */
10929
0
    }
10930
0
    disp->UpdateIndirectExecutionSetShaderEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
10931
0
}
10932
10933
10934
// ---- VK_OHOS_surface extension trampoline/terminators
10935
10936
#if defined(VK_USE_PLATFORM_OHOS)
10937
VKAPI_ATTR VkResult VKAPI_CALL CreateSurfaceOHOS(
10938
    VkInstance                                  instance,
10939
    const VkSurfaceCreateInfoOHOS*              pCreateInfo,
10940
    const VkAllocationCallbacks*                pAllocator,
10941
    VkSurfaceKHR*                               pSurface) {
10942
    struct loader_instance *inst = loader_get_instance(instance);
10943
    if (NULL == inst) {
10944
        loader_log(
10945
            NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10946
            "vkCreateSurfaceOHOS: Invalid instance [VUID-vkCreateSurfaceOHOS-instance-parameter]");
10947
        abort(); /* Intentionally fail so user can correct issue. */
10948
    }
10949
#error("Not implemented. Likely needs to be manually generated!");
10950
    return inst->disp->CreateSurfaceOHOS(instance, pCreateInfo, pAllocator, pSurface);
10951
}
10952
10953
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateSurfaceOHOS(
10954
    VkInstance                                  instance,
10955
    const VkSurfaceCreateInfoOHOS*              pCreateInfo,
10956
    const VkAllocationCallbacks*                pAllocator,
10957
    VkSurfaceKHR*                               pSurface) {
10958
    struct loader_instance *inst = loader_get_instance(instance);
10959
    if (NULL == inst) {
10960
        loader_log(
10961
            NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10962
            "vkCreateSurfaceOHOS: Invalid instance [VUID-vkCreateSurfaceOHOS-instance-parameter]");
10963
        abort(); /* Intentionally fail so user can correct issue. */
10964
    }
10965
#error("Not implemented. Likely needs to be manually generated!");
10966
}
10967
10968
#endif // VK_USE_PLATFORM_OHOS
10969
10970
// ---- VK_OHOS_native_buffer extension trampoline/terminators
10971
10972
#if defined(VK_USE_PLATFORM_OHOS)
10973
VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainGrallocUsageOHOS(
10974
    VkDevice                                    device,
10975
    VkFormat                                    format,
10976
    VkImageUsageFlags                           imageUsage,
10977
    uint64_t*                                   grallocUsage) {
10978
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10979
    if (NULL == disp) {
10980
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10981
                   "vkGetSwapchainGrallocUsageOHOS: Invalid device "
10982
                   "[VUID-vkGetSwapchainGrallocUsageOHOS-device-parameter]");
10983
        abort(); /* Intentionally fail so user can correct issue. */
10984
    }
10985
    return disp->GetSwapchainGrallocUsageOHOS(device, format, imageUsage, grallocUsage);
10986
}
10987
10988
#endif // VK_USE_PLATFORM_OHOS
10989
#if defined(VK_USE_PLATFORM_OHOS)
10990
VKAPI_ATTR VkResult VKAPI_CALL AcquireImageOHOS(
10991
    VkDevice                                    device,
10992
    VkImage                                     image,
10993
    int32_t                                     nativeFenceFd,
10994
    VkSemaphore                                 semaphore,
10995
    VkFence                                     fence) {
10996
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10997
    if (NULL == disp) {
10998
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10999
                   "vkAcquireImageOHOS: Invalid device "
11000
                   "[VUID-vkAcquireImageOHOS-device-parameter]");
11001
        abort(); /* Intentionally fail so user can correct issue. */
11002
    }
11003
    return disp->AcquireImageOHOS(device, image, nativeFenceFd, semaphore, fence);
11004
}
11005
11006
#endif // VK_USE_PLATFORM_OHOS
11007
#if defined(VK_USE_PLATFORM_OHOS)
11008
VKAPI_ATTR VkResult VKAPI_CALL QueueSignalReleaseImageOHOS(
11009
    VkQueue                                     queue,
11010
    uint32_t                                    waitSemaphoreCount,
11011
    const VkSemaphore*                          pWaitSemaphores,
11012
    VkImage                                     image,
11013
    int32_t*                                    pNativeFenceFd) {
11014
    const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
11015
    if (NULL == disp) {
11016
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11017
                   "vkQueueSignalReleaseImageOHOS: Invalid queue "
11018
                   "[VUID-vkQueueSignalReleaseImageOHOS-queue-parameter]");
11019
        abort(); /* Intentionally fail so user can correct issue. */
11020
    }
11021
    return disp->QueueSignalReleaseImageOHOS(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
11022
}
11023
11024
#endif // VK_USE_PLATFORM_OHOS
11025
11026
// ---- VK_NV_cooperative_matrix2 extension trampoline/terminators
11027
11028
VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
11029
    VkPhysicalDevice                            physicalDevice,
11030
    uint32_t*                                   pPropertyCount,
11031
0
    VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) {
11032
0
    const VkLayerInstanceDispatchTable *disp;
11033
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11034
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11035
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11036
0
                   "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV: Invalid physicalDevice "
11037
0
                   "[VUID-vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV-physicalDevice-parameter]");
11038
0
        abort(); /* Intentionally fail so user can correct issue. */
11039
0
    }
11040
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11041
0
    return disp->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
11042
0
}
11043
11044
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
11045
    VkPhysicalDevice                            physicalDevice,
11046
    uint32_t*                                   pPropertyCount,
11047
0
    VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) {
11048
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11049
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11050
0
    if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV) {
11051
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11052
0
                   "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
11053
0
        abort(); /* Intentionally fail so user can correct issue. */
11054
0
    }
11055
0
    return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
11056
0
}
11057
11058
11059
// ---- VK_EXT_external_memory_metal extension trampoline/terminators
11060
11061
#if defined(VK_USE_PLATFORM_METAL_EXT)
11062
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandleEXT(
11063
    VkDevice                                    device,
11064
    const VkMemoryGetMetalHandleInfoEXT*        pGetMetalHandleInfo,
11065
    void**                                      pHandle) {
11066
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11067
    if (NULL == disp) {
11068
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11069
                   "vkGetMemoryMetalHandleEXT: Invalid device "
11070
                   "[VUID-vkGetMemoryMetalHandleEXT-device-parameter]");
11071
        abort(); /* Intentionally fail so user can correct issue. */
11072
    }
11073
    return disp->GetMemoryMetalHandleEXT(device, pGetMetalHandleInfo, pHandle);
11074
}
11075
11076
#endif // VK_USE_PLATFORM_METAL_EXT
11077
#if defined(VK_USE_PLATFORM_METAL_EXT)
11078
VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandlePropertiesEXT(
11079
    VkDevice                                    device,
11080
    VkExternalMemoryHandleTypeFlagBits          handleType,
11081
    const void*                                 pHandle,
11082
    VkMemoryMetalHandlePropertiesEXT*           pMemoryMetalHandleProperties) {
11083
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11084
    if (NULL == disp) {
11085
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11086
                   "vkGetMemoryMetalHandlePropertiesEXT: Invalid device "
11087
                   "[VUID-vkGetMemoryMetalHandlePropertiesEXT-device-parameter]");
11088
        abort(); /* Intentionally fail so user can correct issue. */
11089
    }
11090
    return disp->GetMemoryMetalHandlePropertiesEXT(device, handleType, pHandle, pMemoryMetalHandleProperties);
11091
}
11092
11093
#endif // VK_USE_PLATFORM_METAL_EXT
11094
11095
// ---- VK_ARM_performance_counters_by_region extension trampoline/terminators
11096
11097
VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
11098
    VkPhysicalDevice                            physicalDevice,
11099
    uint32_t                                    queueFamilyIndex,
11100
    uint32_t*                                   pCounterCount,
11101
    VkPerformanceCounterARM*                    pCounters,
11102
0
    VkPerformanceCounterDescriptionARM*         pCounterDescriptions) {
11103
0
    const VkLayerInstanceDispatchTable *disp;
11104
0
    VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
11105
0
    if (VK_NULL_HANDLE == unwrapped_phys_dev) {
11106
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11107
0
                   "vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM: Invalid physicalDevice "
11108
0
                   "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM-physicalDevice-parameter]");
11109
0
        abort(); /* Intentionally fail so user can correct issue. */
11110
0
    }
11111
0
    disp = loader_get_instance_layer_dispatch(physicalDevice);
11112
0
    return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
11113
0
}
11114
11115
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
11116
    VkPhysicalDevice                            physicalDevice,
11117
    uint32_t                                    queueFamilyIndex,
11118
    uint32_t*                                   pCounterCount,
11119
    VkPerformanceCounterARM*                    pCounters,
11120
0
    VkPerformanceCounterDescriptionARM*         pCounterDescriptions) {
11121
0
    struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
11122
0
    struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
11123
0
    if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM) {
11124
0
        loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
11125
0
                   "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM");
11126
0
        abort(); /* Intentionally fail so user can correct issue. */
11127
0
    }
11128
0
    return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
11129
0
}
11130
11131
11132
// ---- VK_EXT_fragment_density_map_offset extension trampoline/terminators
11133
11134
VKAPI_ATTR void VKAPI_CALL CmdEndRendering2EXT(
11135
    VkCommandBuffer                             commandBuffer,
11136
0
    const VkRenderingEndInfoKHR*                pRenderingEndInfo) {
11137
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11138
0
    if (NULL == disp) {
11139
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11140
0
                   "vkCmdEndRendering2EXT: Invalid commandBuffer "
11141
0
                   "[VUID-vkCmdEndRendering2EXT-commandBuffer-parameter]");
11142
0
        abort(); /* Intentionally fail so user can correct issue. */
11143
0
    }
11144
0
    disp->CmdEndRendering2EXT(commandBuffer, pRenderingEndInfo);
11145
0
}
11146
11147
11148
// ---- VK_EXT_custom_resolve extension trampoline/terminators
11149
11150
VKAPI_ATTR void VKAPI_CALL CmdBeginCustomResolveEXT(
11151
    VkCommandBuffer                             commandBuffer,
11152
0
    const VkBeginCustomResolveInfoEXT*          pBeginCustomResolveInfo) {
11153
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11154
0
    if (NULL == disp) {
11155
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11156
0
                   "vkCmdBeginCustomResolveEXT: Invalid commandBuffer "
11157
0
                   "[VUID-vkCmdBeginCustomResolveEXT-commandBuffer-parameter]");
11158
0
        abort(); /* Intentionally fail so user can correct issue. */
11159
0
    }
11160
0
    disp->CmdBeginCustomResolveEXT(commandBuffer, pBeginCustomResolveInfo);
11161
0
}
11162
11163
11164
// ---- VK_NV_compute_occupancy_priority extension trampoline/terminators
11165
11166
VKAPI_ATTR void VKAPI_CALL CmdSetComputeOccupancyPriorityNV(
11167
    VkCommandBuffer                             commandBuffer,
11168
0
    const VkComputeOccupancyPriorityParametersNV* pParameters) {
11169
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11170
0
    if (NULL == disp) {
11171
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11172
0
                   "vkCmdSetComputeOccupancyPriorityNV: Invalid commandBuffer "
11173
0
                   "[VUID-vkCmdSetComputeOccupancyPriorityNV-commandBuffer-parameter]");
11174
0
        abort(); /* Intentionally fail so user can correct issue. */
11175
0
    }
11176
0
    disp->CmdSetComputeOccupancyPriorityNV(commandBuffer, pParameters);
11177
0
}
11178
11179
11180
// ---- VK_KHR_acceleration_structure extension trampoline/terminators
11181
11182
VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
11183
    VkDevice                                    device,
11184
    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
11185
    const VkAllocationCallbacks*                pAllocator,
11186
0
    VkAccelerationStructureKHR*                 pAccelerationStructure) {
11187
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11188
0
    if (NULL == disp) {
11189
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11190
0
                   "vkCreateAccelerationStructureKHR: Invalid device "
11191
0
                   "[VUID-vkCreateAccelerationStructureKHR-device-parameter]");
11192
0
        abort(); /* Intentionally fail so user can correct issue. */
11193
0
    }
11194
0
    return disp->CreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
11195
0
}
11196
11197
VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureKHR(
11198
    VkDevice                                    device,
11199
    VkAccelerationStructureKHR                  accelerationStructure,
11200
0
    const VkAllocationCallbacks*                pAllocator) {
11201
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11202
0
    if (NULL == disp) {
11203
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11204
0
                   "vkDestroyAccelerationStructureKHR: Invalid device "
11205
0
                   "[VUID-vkDestroyAccelerationStructureKHR-device-parameter]");
11206
0
        abort(); /* Intentionally fail so user can correct issue. */
11207
0
    }
11208
0
    disp->DestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
11209
0
}
11210
11211
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresKHR(
11212
    VkCommandBuffer                             commandBuffer,
11213
    uint32_t                                    infoCount,
11214
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
11215
0
    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
11216
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11217
0
    if (NULL == disp) {
11218
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11219
0
                   "vkCmdBuildAccelerationStructuresKHR: Invalid commandBuffer "
11220
0
                   "[VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter]");
11221
0
        abort(); /* Intentionally fail so user can correct issue. */
11222
0
    }
11223
0
    disp->CmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos);
11224
0
}
11225
11226
VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR(
11227
    VkCommandBuffer                             commandBuffer,
11228
    uint32_t                                    infoCount,
11229
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
11230
    const VkDeviceAddress*                      pIndirectDeviceAddresses,
11231
    const uint32_t*                             pIndirectStrides,
11232
0
    const uint32_t* const*                      ppMaxPrimitiveCounts) {
11233
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11234
0
    if (NULL == disp) {
11235
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11236
0
                   "vkCmdBuildAccelerationStructuresIndirectKHR: Invalid commandBuffer "
11237
0
                   "[VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter]");
11238
0
        abort(); /* Intentionally fail so user can correct issue. */
11239
0
    }
11240
0
    disp->CmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts);
11241
0
}
11242
11243
VKAPI_ATTR VkResult VKAPI_CALL BuildAccelerationStructuresKHR(
11244
    VkDevice                                    device,
11245
    VkDeferredOperationKHR                      deferredOperation,
11246
    uint32_t                                    infoCount,
11247
    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
11248
0
    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
11249
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11250
0
    if (NULL == disp) {
11251
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11252
0
                   "vkBuildAccelerationStructuresKHR: Invalid device "
11253
0
                   "[VUID-vkBuildAccelerationStructuresKHR-device-parameter]");
11254
0
        abort(); /* Intentionally fail so user can correct issue. */
11255
0
    }
11256
0
    return disp->BuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos);
11257
0
}
11258
11259
VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureKHR(
11260
    VkDevice                                    device,
11261
    VkDeferredOperationKHR                      deferredOperation,
11262
0
    const VkCopyAccelerationStructureInfoKHR*   pInfo) {
11263
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11264
0
    if (NULL == disp) {
11265
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11266
0
                   "vkCopyAccelerationStructureKHR: Invalid device "
11267
0
                   "[VUID-vkCopyAccelerationStructureKHR-device-parameter]");
11268
0
        abort(); /* Intentionally fail so user can correct issue. */
11269
0
    }
11270
0
    return disp->CopyAccelerationStructureKHR(device, deferredOperation, pInfo);
11271
0
}
11272
11273
VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR(
11274
    VkDevice                                    device,
11275
    VkDeferredOperationKHR                      deferredOperation,
11276
0
    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
11277
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11278
0
    if (NULL == disp) {
11279
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11280
0
                   "vkCopyAccelerationStructureToMemoryKHR: Invalid device "
11281
0
                   "[VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter]");
11282
0
        abort(); /* Intentionally fail so user can correct issue. */
11283
0
    }
11284
0
    return disp->CopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo);
11285
0
}
11286
11287
VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToAccelerationStructureKHR(
11288
    VkDevice                                    device,
11289
    VkDeferredOperationKHR                      deferredOperation,
11290
0
    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
11291
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11292
0
    if (NULL == disp) {
11293
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11294
0
                   "vkCopyMemoryToAccelerationStructureKHR: Invalid device "
11295
0
                   "[VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter]");
11296
0
        abort(); /* Intentionally fail so user can correct issue. */
11297
0
    }
11298
0
    return disp->CopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo);
11299
0
}
11300
11301
VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR(
11302
    VkDevice                                    device,
11303
    uint32_t                                    accelerationStructureCount,
11304
    const VkAccelerationStructureKHR*           pAccelerationStructures,
11305
    VkQueryType                                 queryType,
11306
    size_t                                      dataSize,
11307
    void*                                       pData,
11308
0
    size_t                                      stride) {
11309
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11310
0
    if (NULL == disp) {
11311
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11312
0
                   "vkWriteAccelerationStructuresPropertiesKHR: Invalid device "
11313
0
                   "[VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter]");
11314
0
        abort(); /* Intentionally fail so user can correct issue. */
11315
0
    }
11316
0
    return disp->WriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
11317
0
}
11318
11319
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureKHR(
11320
    VkCommandBuffer                             commandBuffer,
11321
0
    const VkCopyAccelerationStructureInfoKHR*   pInfo) {
11322
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11323
0
    if (NULL == disp) {
11324
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11325
0
                   "vkCmdCopyAccelerationStructureKHR: Invalid commandBuffer "
11326
0
                   "[VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter]");
11327
0
        abort(); /* Intentionally fail so user can correct issue. */
11328
0
    }
11329
0
    disp->CmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
11330
0
}
11331
11332
VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureToMemoryKHR(
11333
    VkCommandBuffer                             commandBuffer,
11334
0
    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
11335
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11336
0
    if (NULL == disp) {
11337
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11338
0
                   "vkCmdCopyAccelerationStructureToMemoryKHR: Invalid commandBuffer "
11339
0
                   "[VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter]");
11340
0
        abort(); /* Intentionally fail so user can correct issue. */
11341
0
    }
11342
0
    disp->CmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
11343
0
}
11344
11345
VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToAccelerationStructureKHR(
11346
    VkCommandBuffer                             commandBuffer,
11347
0
    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
11348
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdCopyMemoryToAccelerationStructureKHR: Invalid commandBuffer "
11352
0
                   "[VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter]");
11353
0
        abort(); /* Intentionally fail so user can correct issue. */
11354
0
    }
11355
0
    disp->CmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
11356
0
}
11357
11358
VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetAccelerationStructureDeviceAddressKHR(
11359
    VkDevice                                    device,
11360
0
    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) {
11361
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11362
0
    if (NULL == disp) {
11363
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11364
0
                   "vkGetAccelerationStructureDeviceAddressKHR: Invalid device "
11365
0
                   "[VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter]");
11366
0
        abort(); /* Intentionally fail so user can correct issue. */
11367
0
    }
11368
0
    return disp->GetAccelerationStructureDeviceAddressKHR(device, pInfo);
11369
0
}
11370
11371
VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR(
11372
    VkCommandBuffer                             commandBuffer,
11373
    uint32_t                                    accelerationStructureCount,
11374
    const VkAccelerationStructureKHR*           pAccelerationStructures,
11375
    VkQueryType                                 queryType,
11376
    VkQueryPool                                 queryPool,
11377
0
    uint32_t                                    firstQuery) {
11378
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11379
0
    if (NULL == disp) {
11380
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11381
0
                   "vkCmdWriteAccelerationStructuresPropertiesKHR: Invalid commandBuffer "
11382
0
                   "[VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter]");
11383
0
        abort(); /* Intentionally fail so user can correct issue. */
11384
0
    }
11385
0
    disp->CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
11386
0
}
11387
11388
VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR(
11389
    VkDevice                                    device,
11390
    const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
11391
0
    VkAccelerationStructureCompatibilityKHR*    pCompatibility) {
11392
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
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
                   "vkGetDeviceAccelerationStructureCompatibilityKHR: Invalid device "
11396
0
                   "[VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter]");
11397
0
        abort(); /* Intentionally fail so user can correct issue. */
11398
0
    }
11399
0
    disp->GetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility);
11400
0
}
11401
11402
VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR(
11403
    VkDevice                                    device,
11404
    VkAccelerationStructureBuildTypeKHR         buildType,
11405
    const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
11406
    const uint32_t*                             pMaxPrimitiveCounts,
11407
0
    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo) {
11408
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11409
0
    if (NULL == disp) {
11410
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11411
0
                   "vkGetAccelerationStructureBuildSizesKHR: Invalid device "
11412
0
                   "[VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter]");
11413
0
        abort(); /* Intentionally fail so user can correct issue. */
11414
0
    }
11415
0
    disp->GetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo);
11416
0
}
11417
11418
11419
// ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
11420
11421
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR(
11422
    VkCommandBuffer                             commandBuffer,
11423
    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
11424
    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
11425
    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
11426
    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
11427
    uint32_t                                    width,
11428
    uint32_t                                    height,
11429
0
    uint32_t                                    depth) {
11430
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11431
0
    if (NULL == disp) {
11432
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11433
0
                   "vkCmdTraceRaysKHR: Invalid commandBuffer "
11434
0
                   "[VUID-vkCmdTraceRaysKHR-commandBuffer-parameter]");
11435
0
        abort(); /* Intentionally fail so user can correct issue. */
11436
0
    }
11437
0
    disp->CmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
11438
0
}
11439
11440
VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesKHR(
11441
    VkDevice                                    device,
11442
    VkDeferredOperationKHR                      deferredOperation,
11443
    VkPipelineCache                             pipelineCache,
11444
    uint32_t                                    createInfoCount,
11445
    const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
11446
    const VkAllocationCallbacks*                pAllocator,
11447
0
    VkPipeline*                                 pPipelines) {
11448
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11449
0
    if (NULL == disp) {
11450
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11451
0
                   "vkCreateRayTracingPipelinesKHR: Invalid device "
11452
0
                   "[VUID-vkCreateRayTracingPipelinesKHR-device-parameter]");
11453
0
        abort(); /* Intentionally fail so user can correct issue. */
11454
0
    }
11455
0
    return disp->CreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
11456
0
}
11457
11458
VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR(
11459
    VkDevice                                    device,
11460
    VkPipeline                                  pipeline,
11461
    uint32_t                                    firstGroup,
11462
    uint32_t                                    groupCount,
11463
    size_t                                      dataSize,
11464
0
    void*                                       pData) {
11465
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11466
0
    if (NULL == disp) {
11467
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11468
0
                   "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR: Invalid device "
11469
0
                   "[VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter]");
11470
0
        abort(); /* Intentionally fail so user can correct issue. */
11471
0
    }
11472
0
    return disp->GetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
11473
0
}
11474
11475
VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR(
11476
    VkCommandBuffer                             commandBuffer,
11477
    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
11478
    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
11479
    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
11480
    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
11481
0
    VkDeviceAddress                             indirectDeviceAddress) {
11482
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
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
                   "vkCmdTraceRaysIndirectKHR: Invalid commandBuffer "
11486
0
                   "[VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter]");
11487
0
        abort(); /* Intentionally fail so user can correct issue. */
11488
0
    }
11489
0
    disp->CmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress);
11490
0
}
11491
11492
VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR(
11493
    VkDevice                                    device,
11494
    VkPipeline                                  pipeline,
11495
    uint32_t                                    group,
11496
0
    VkShaderGroupShaderKHR                      groupShader) {
11497
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(device);
11498
0
    if (NULL == disp) {
11499
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11500
0
                   "vkGetRayTracingShaderGroupStackSizeKHR: Invalid device "
11501
0
                   "[VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter]");
11502
0
        abort(); /* Intentionally fail so user can correct issue. */
11503
0
    }
11504
0
    return disp->GetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader);
11505
0
}
11506
11507
VKAPI_ATTR void VKAPI_CALL CmdSetRayTracingPipelineStackSizeKHR(
11508
    VkCommandBuffer                             commandBuffer,
11509
0
    uint32_t                                    pipelineStackSize) {
11510
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11511
0
    if (NULL == disp) {
11512
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11513
0
                   "vkCmdSetRayTracingPipelineStackSizeKHR: Invalid commandBuffer "
11514
0
                   "[VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter]");
11515
0
        abort(); /* Intentionally fail so user can correct issue. */
11516
0
    }
11517
0
    disp->CmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize);
11518
0
}
11519
11520
11521
// ---- VK_EXT_mesh_shader extension trampoline/terminators
11522
11523
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT(
11524
    VkCommandBuffer                             commandBuffer,
11525
    uint32_t                                    groupCountX,
11526
    uint32_t                                    groupCountY,
11527
0
    uint32_t                                    groupCountZ) {
11528
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11529
0
    if (NULL == disp) {
11530
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11531
0
                   "vkCmdDrawMeshTasksEXT: Invalid commandBuffer "
11532
0
                   "[VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter]");
11533
0
        abort(); /* Intentionally fail so user can correct issue. */
11534
0
    }
11535
0
    disp->CmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ);
11536
0
}
11537
11538
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT(
11539
    VkCommandBuffer                             commandBuffer,
11540
    VkBuffer                                    buffer,
11541
    VkDeviceSize                                offset,
11542
    uint32_t                                    drawCount,
11543
0
    uint32_t                                    stride) {
11544
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11545
0
    if (NULL == disp) {
11546
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11547
0
                   "vkCmdDrawMeshTasksIndirectEXT: Invalid commandBuffer "
11548
0
                   "[VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter]");
11549
0
        abort(); /* Intentionally fail so user can correct issue. */
11550
0
    }
11551
0
    disp->CmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride);
11552
0
}
11553
11554
VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT(
11555
    VkCommandBuffer                             commandBuffer,
11556
    VkBuffer                                    buffer,
11557
    VkDeviceSize                                offset,
11558
    VkBuffer                                    countBuffer,
11559
    VkDeviceSize                                countBufferOffset,
11560
    uint32_t                                    maxDrawCount,
11561
0
    uint32_t                                    stride) {
11562
0
    const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
11563
0
    if (NULL == disp) {
11564
0
        loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
11565
0
                   "vkCmdDrawMeshTasksIndirectCountEXT: Invalid commandBuffer "
11566
0
                   "[VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter]");
11567
0
        abort(); /* Intentionally fail so user can correct issue. */
11568
0
    }
11569
0
    disp->CmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
11570
0
}
11571
11572
// GPA helpers for extensions
11573
0
bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr) {
11574
0
    *addr = NULL;
11575
11576
11577
    // ---- VK_KHR_video_queue extension commands
11578
0
    if (!strcmp("vkGetPhysicalDeviceVideoCapabilitiesKHR", name)) {
11579
0
        *addr = (void *)GetPhysicalDeviceVideoCapabilitiesKHR;
11580
0
        return true;
11581
0
    }
11582
0
    if (!strcmp("vkGetPhysicalDeviceVideoFormatPropertiesKHR", name)) {
11583
0
        *addr = (void *)GetPhysicalDeviceVideoFormatPropertiesKHR;
11584
0
        return true;
11585
0
    }
11586
0
    if (!strcmp("vkCreateVideoSessionKHR", name)) {
11587
0
        *addr = (void *)CreateVideoSessionKHR;
11588
0
        return true;
11589
0
    }
11590
0
    if (!strcmp("vkDestroyVideoSessionKHR", name)) {
11591
0
        *addr = (void *)DestroyVideoSessionKHR;
11592
0
        return true;
11593
0
    }
11594
0
    if (!strcmp("vkGetVideoSessionMemoryRequirementsKHR", name)) {
11595
0
        *addr = (void *)GetVideoSessionMemoryRequirementsKHR;
11596
0
        return true;
11597
0
    }
11598
0
    if (!strcmp("vkBindVideoSessionMemoryKHR", name)) {
11599
0
        *addr = (void *)BindVideoSessionMemoryKHR;
11600
0
        return true;
11601
0
    }
11602
0
    if (!strcmp("vkCreateVideoSessionParametersKHR", name)) {
11603
0
        *addr = (void *)CreateVideoSessionParametersKHR;
11604
0
        return true;
11605
0
    }
11606
0
    if (!strcmp("vkUpdateVideoSessionParametersKHR", name)) {
11607
0
        *addr = (void *)UpdateVideoSessionParametersKHR;
11608
0
        return true;
11609
0
    }
11610
0
    if (!strcmp("vkDestroyVideoSessionParametersKHR", name)) {
11611
0
        *addr = (void *)DestroyVideoSessionParametersKHR;
11612
0
        return true;
11613
0
    }
11614
0
    if (!strcmp("vkCmdBeginVideoCodingKHR", name)) {
11615
0
        *addr = (void *)CmdBeginVideoCodingKHR;
11616
0
        return true;
11617
0
    }
11618
0
    if (!strcmp("vkCmdEndVideoCodingKHR", name)) {
11619
0
        *addr = (void *)CmdEndVideoCodingKHR;
11620
0
        return true;
11621
0
    }
11622
0
    if (!strcmp("vkCmdControlVideoCodingKHR", name)) {
11623
0
        *addr = (void *)CmdControlVideoCodingKHR;
11624
0
        return true;
11625
0
    }
11626
11627
    // ---- VK_KHR_video_decode_queue extension commands
11628
0
    if (!strcmp("vkCmdDecodeVideoKHR", name)) {
11629
0
        *addr = (void *)CmdDecodeVideoKHR;
11630
0
        return true;
11631
0
    }
11632
11633
    // ---- VK_KHR_dynamic_rendering extension commands
11634
0
    if (!strcmp("vkCmdBeginRenderingKHR", name)) {
11635
0
        *addr = (void *)CmdBeginRenderingKHR;
11636
0
        return true;
11637
0
    }
11638
0
    if (!strcmp("vkCmdEndRenderingKHR", name)) {
11639
0
        *addr = (void *)CmdEndRenderingKHR;
11640
0
        return true;
11641
0
    }
11642
11643
    // ---- VK_KHR_get_physical_device_properties2 extension commands
11644
0
    if (!strcmp("vkGetPhysicalDeviceFeatures2KHR", name)) {
11645
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11646
0
                     ? (void *)vkGetPhysicalDeviceFeatures2
11647
0
                     : NULL;
11648
0
        return true;
11649
0
    }
11650
0
    if (!strcmp("vkGetPhysicalDeviceProperties2KHR", name)) {
11651
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11652
0
                     ? (void *)vkGetPhysicalDeviceProperties2
11653
0
                     : NULL;
11654
0
        return true;
11655
0
    }
11656
0
    if (!strcmp("vkGetPhysicalDeviceFormatProperties2KHR", name)) {
11657
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11658
0
                     ? (void *)vkGetPhysicalDeviceFormatProperties2
11659
0
                     : NULL;
11660
0
        return true;
11661
0
    }
11662
0
    if (!strcmp("vkGetPhysicalDeviceImageFormatProperties2KHR", name)) {
11663
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11664
0
                     ? (void *)vkGetPhysicalDeviceImageFormatProperties2
11665
0
                     : NULL;
11666
0
        return true;
11667
0
    }
11668
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyProperties2KHR", name)) {
11669
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11670
0
                     ? (void *)vkGetPhysicalDeviceQueueFamilyProperties2
11671
0
                     : NULL;
11672
0
        return true;
11673
0
    }
11674
0
    if (!strcmp("vkGetPhysicalDeviceMemoryProperties2KHR", name)) {
11675
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11676
0
                     ? (void *)vkGetPhysicalDeviceMemoryProperties2
11677
0
                     : NULL;
11678
0
        return true;
11679
0
    }
11680
0
    if (!strcmp("vkGetPhysicalDeviceSparseImageFormatProperties2KHR", name)) {
11681
0
        *addr = (ptr_instance->enabled_extensions.khr_get_physical_device_properties2 == 1)
11682
0
                     ? (void *)vkGetPhysicalDeviceSparseImageFormatProperties2
11683
0
                     : NULL;
11684
0
        return true;
11685
0
    }
11686
11687
    // ---- VK_KHR_device_group extension commands
11688
0
    if (!strcmp("vkGetDeviceGroupPeerMemoryFeaturesKHR", name)) {
11689
0
        *addr = (void *)GetDeviceGroupPeerMemoryFeaturesKHR;
11690
0
        return true;
11691
0
    }
11692
0
    if (!strcmp("vkCmdSetDeviceMaskKHR", name)) {
11693
0
        *addr = (void *)CmdSetDeviceMaskKHR;
11694
0
        return true;
11695
0
    }
11696
0
    if (!strcmp("vkCmdDispatchBaseKHR", name)) {
11697
0
        *addr = (void *)CmdDispatchBaseKHR;
11698
0
        return true;
11699
0
    }
11700
11701
    // ---- VK_KHR_maintenance1 extension commands
11702
0
    if (!strcmp("vkTrimCommandPoolKHR", name)) {
11703
0
        *addr = (void *)TrimCommandPoolKHR;
11704
0
        return true;
11705
0
    }
11706
11707
    // ---- VK_KHR_device_group_creation extension commands
11708
0
    if (!strcmp("vkEnumeratePhysicalDeviceGroupsKHR", name)) {
11709
0
        *addr = (ptr_instance->enabled_extensions.khr_device_group_creation == 1)
11710
0
                     ? (void *)vkEnumeratePhysicalDeviceGroups
11711
0
                     : NULL;
11712
0
        return true;
11713
0
    }
11714
11715
    // ---- VK_KHR_external_memory_capabilities extension commands
11716
0
    if (!strcmp("vkGetPhysicalDeviceExternalBufferPropertiesKHR", name)) {
11717
0
        *addr = (ptr_instance->enabled_extensions.khr_external_memory_capabilities == 1)
11718
0
                     ? (void *)vkGetPhysicalDeviceExternalBufferProperties
11719
0
                     : NULL;
11720
0
        return true;
11721
0
    }
11722
11723
    // ---- VK_KHR_external_memory_win32 extension commands
11724
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11725
    if (!strcmp("vkGetMemoryWin32HandleKHR", name)) {
11726
        *addr = (void *)GetMemoryWin32HandleKHR;
11727
        return true;
11728
    }
11729
#endif // VK_USE_PLATFORM_WIN32_KHR
11730
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11731
    if (!strcmp("vkGetMemoryWin32HandlePropertiesKHR", name)) {
11732
        *addr = (void *)GetMemoryWin32HandlePropertiesKHR;
11733
        return true;
11734
    }
11735
#endif // VK_USE_PLATFORM_WIN32_KHR
11736
11737
    // ---- VK_KHR_external_memory_fd extension commands
11738
0
    if (!strcmp("vkGetMemoryFdKHR", name)) {
11739
0
        *addr = (void *)GetMemoryFdKHR;
11740
0
        return true;
11741
0
    }
11742
0
    if (!strcmp("vkGetMemoryFdPropertiesKHR", name)) {
11743
0
        *addr = (void *)GetMemoryFdPropertiesKHR;
11744
0
        return true;
11745
0
    }
11746
11747
    // ---- VK_KHR_external_semaphore_capabilities extension commands
11748
0
    if (!strcmp("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR", name)) {
11749
0
        *addr = (ptr_instance->enabled_extensions.khr_external_semaphore_capabilities == 1)
11750
0
                     ? (void *)vkGetPhysicalDeviceExternalSemaphoreProperties
11751
0
                     : NULL;
11752
0
        return true;
11753
0
    }
11754
11755
    // ---- VK_KHR_external_semaphore_win32 extension commands
11756
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11757
    if (!strcmp("vkImportSemaphoreWin32HandleKHR", name)) {
11758
        *addr = (void *)ImportSemaphoreWin32HandleKHR;
11759
        return true;
11760
    }
11761
#endif // VK_USE_PLATFORM_WIN32_KHR
11762
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11763
    if (!strcmp("vkGetSemaphoreWin32HandleKHR", name)) {
11764
        *addr = (void *)GetSemaphoreWin32HandleKHR;
11765
        return true;
11766
    }
11767
#endif // VK_USE_PLATFORM_WIN32_KHR
11768
11769
    // ---- VK_KHR_external_semaphore_fd extension commands
11770
0
    if (!strcmp("vkImportSemaphoreFdKHR", name)) {
11771
0
        *addr = (void *)ImportSemaphoreFdKHR;
11772
0
        return true;
11773
0
    }
11774
0
    if (!strcmp("vkGetSemaphoreFdKHR", name)) {
11775
0
        *addr = (void *)GetSemaphoreFdKHR;
11776
0
        return true;
11777
0
    }
11778
11779
    // ---- VK_KHR_push_descriptor extension commands
11780
0
    if (!strcmp("vkCmdPushDescriptorSetKHR", name)) {
11781
0
        *addr = (void *)CmdPushDescriptorSetKHR;
11782
0
        return true;
11783
0
    }
11784
0
    if (!strcmp("vkCmdPushDescriptorSetWithTemplateKHR", name)) {
11785
0
        *addr = (void *)CmdPushDescriptorSetWithTemplateKHR;
11786
0
        return true;
11787
0
    }
11788
11789
    // ---- VK_KHR_descriptor_update_template extension commands
11790
0
    if (!strcmp("vkCreateDescriptorUpdateTemplateKHR", name)) {
11791
0
        *addr = (void *)CreateDescriptorUpdateTemplateKHR;
11792
0
        return true;
11793
0
    }
11794
0
    if (!strcmp("vkDestroyDescriptorUpdateTemplateKHR", name)) {
11795
0
        *addr = (void *)DestroyDescriptorUpdateTemplateKHR;
11796
0
        return true;
11797
0
    }
11798
0
    if (!strcmp("vkUpdateDescriptorSetWithTemplateKHR", name)) {
11799
0
        *addr = (void *)UpdateDescriptorSetWithTemplateKHR;
11800
0
        return true;
11801
0
    }
11802
11803
    // ---- VK_KHR_create_renderpass2 extension commands
11804
0
    if (!strcmp("vkCreateRenderPass2KHR", name)) {
11805
0
        *addr = (void *)CreateRenderPass2KHR;
11806
0
        return true;
11807
0
    }
11808
0
    if (!strcmp("vkCmdBeginRenderPass2KHR", name)) {
11809
0
        *addr = (void *)CmdBeginRenderPass2KHR;
11810
0
        return true;
11811
0
    }
11812
0
    if (!strcmp("vkCmdNextSubpass2KHR", name)) {
11813
0
        *addr = (void *)CmdNextSubpass2KHR;
11814
0
        return true;
11815
0
    }
11816
0
    if (!strcmp("vkCmdEndRenderPass2KHR", name)) {
11817
0
        *addr = (void *)CmdEndRenderPass2KHR;
11818
0
        return true;
11819
0
    }
11820
11821
    // ---- VK_KHR_shared_presentable_image extension commands
11822
0
    if (!strcmp("vkGetSwapchainStatusKHR", name)) {
11823
0
        *addr = (void *)GetSwapchainStatusKHR;
11824
0
        return true;
11825
0
    }
11826
11827
    // ---- VK_KHR_external_fence_capabilities extension commands
11828
0
    if (!strcmp("vkGetPhysicalDeviceExternalFencePropertiesKHR", name)) {
11829
0
        *addr = (ptr_instance->enabled_extensions.khr_external_fence_capabilities == 1)
11830
0
                     ? (void *)vkGetPhysicalDeviceExternalFenceProperties
11831
0
                     : NULL;
11832
0
        return true;
11833
0
    }
11834
11835
    // ---- VK_KHR_external_fence_win32 extension commands
11836
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11837
    if (!strcmp("vkImportFenceWin32HandleKHR", name)) {
11838
        *addr = (void *)ImportFenceWin32HandleKHR;
11839
        return true;
11840
    }
11841
#endif // VK_USE_PLATFORM_WIN32_KHR
11842
#if defined(VK_USE_PLATFORM_WIN32_KHR)
11843
    if (!strcmp("vkGetFenceWin32HandleKHR", name)) {
11844
        *addr = (void *)GetFenceWin32HandleKHR;
11845
        return true;
11846
    }
11847
#endif // VK_USE_PLATFORM_WIN32_KHR
11848
11849
    // ---- VK_KHR_external_fence_fd extension commands
11850
0
    if (!strcmp("vkImportFenceFdKHR", name)) {
11851
0
        *addr = (void *)ImportFenceFdKHR;
11852
0
        return true;
11853
0
    }
11854
0
    if (!strcmp("vkGetFenceFdKHR", name)) {
11855
0
        *addr = (void *)GetFenceFdKHR;
11856
0
        return true;
11857
0
    }
11858
11859
    // ---- VK_KHR_performance_query extension commands
11860
0
    if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR", name)) {
11861
0
        *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
11862
0
        return true;
11863
0
    }
11864
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", name)) {
11865
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
11866
0
        return true;
11867
0
    }
11868
0
    if (!strcmp("vkAcquireProfilingLockKHR", name)) {
11869
0
        *addr = (void *)AcquireProfilingLockKHR;
11870
0
        return true;
11871
0
    }
11872
0
    if (!strcmp("vkReleaseProfilingLockKHR", name)) {
11873
0
        *addr = (void *)ReleaseProfilingLockKHR;
11874
0
        return true;
11875
0
    }
11876
11877
    // ---- VK_KHR_get_memory_requirements2 extension commands
11878
0
    if (!strcmp("vkGetImageMemoryRequirements2KHR", name)) {
11879
0
        *addr = (void *)GetImageMemoryRequirements2KHR;
11880
0
        return true;
11881
0
    }
11882
0
    if (!strcmp("vkGetBufferMemoryRequirements2KHR", name)) {
11883
0
        *addr = (void *)GetBufferMemoryRequirements2KHR;
11884
0
        return true;
11885
0
    }
11886
0
    if (!strcmp("vkGetImageSparseMemoryRequirements2KHR", name)) {
11887
0
        *addr = (void *)GetImageSparseMemoryRequirements2KHR;
11888
0
        return true;
11889
0
    }
11890
11891
    // ---- VK_KHR_sampler_ycbcr_conversion extension commands
11892
0
    if (!strcmp("vkCreateSamplerYcbcrConversionKHR", name)) {
11893
0
        *addr = (void *)CreateSamplerYcbcrConversionKHR;
11894
0
        return true;
11895
0
    }
11896
0
    if (!strcmp("vkDestroySamplerYcbcrConversionKHR", name)) {
11897
0
        *addr = (void *)DestroySamplerYcbcrConversionKHR;
11898
0
        return true;
11899
0
    }
11900
11901
    // ---- VK_KHR_bind_memory2 extension commands
11902
0
    if (!strcmp("vkBindBufferMemory2KHR", name)) {
11903
0
        *addr = (void *)BindBufferMemory2KHR;
11904
0
        return true;
11905
0
    }
11906
0
    if (!strcmp("vkBindImageMemory2KHR", name)) {
11907
0
        *addr = (void *)BindImageMemory2KHR;
11908
0
        return true;
11909
0
    }
11910
11911
    // ---- VK_KHR_maintenance3 extension commands
11912
0
    if (!strcmp("vkGetDescriptorSetLayoutSupportKHR", name)) {
11913
0
        *addr = (void *)GetDescriptorSetLayoutSupportKHR;
11914
0
        return true;
11915
0
    }
11916
11917
    // ---- VK_KHR_draw_indirect_count extension commands
11918
0
    if (!strcmp("vkCmdDrawIndirectCountKHR", name)) {
11919
0
        *addr = (void *)CmdDrawIndirectCountKHR;
11920
0
        return true;
11921
0
    }
11922
0
    if (!strcmp("vkCmdDrawIndexedIndirectCountKHR", name)) {
11923
0
        *addr = (void *)CmdDrawIndexedIndirectCountKHR;
11924
0
        return true;
11925
0
    }
11926
11927
    // ---- VK_KHR_timeline_semaphore extension commands
11928
0
    if (!strcmp("vkGetSemaphoreCounterValueKHR", name)) {
11929
0
        *addr = (void *)GetSemaphoreCounterValueKHR;
11930
0
        return true;
11931
0
    }
11932
0
    if (!strcmp("vkWaitSemaphoresKHR", name)) {
11933
0
        *addr = (void *)WaitSemaphoresKHR;
11934
0
        return true;
11935
0
    }
11936
0
    if (!strcmp("vkSignalSemaphoreKHR", name)) {
11937
0
        *addr = (void *)SignalSemaphoreKHR;
11938
0
        return true;
11939
0
    }
11940
11941
    // ---- VK_KHR_fragment_shading_rate extension commands
11942
0
    if (!strcmp("vkGetPhysicalDeviceFragmentShadingRatesKHR", name)) {
11943
0
        *addr = (void *)GetPhysicalDeviceFragmentShadingRatesKHR;
11944
0
        return true;
11945
0
    }
11946
0
    if (!strcmp("vkCmdSetFragmentShadingRateKHR", name)) {
11947
0
        *addr = (void *)CmdSetFragmentShadingRateKHR;
11948
0
        return true;
11949
0
    }
11950
11951
    // ---- VK_KHR_dynamic_rendering_local_read extension commands
11952
0
    if (!strcmp("vkCmdSetRenderingAttachmentLocationsKHR", name)) {
11953
0
        *addr = (void *)CmdSetRenderingAttachmentLocationsKHR;
11954
0
        return true;
11955
0
    }
11956
0
    if (!strcmp("vkCmdSetRenderingInputAttachmentIndicesKHR", name)) {
11957
0
        *addr = (void *)CmdSetRenderingInputAttachmentIndicesKHR;
11958
0
        return true;
11959
0
    }
11960
11961
    // ---- VK_KHR_present_wait extension commands
11962
0
    if (!strcmp("vkWaitForPresentKHR", name)) {
11963
0
        *addr = (void *)WaitForPresentKHR;
11964
0
        return true;
11965
0
    }
11966
11967
    // ---- VK_KHR_buffer_device_address extension commands
11968
0
    if (!strcmp("vkGetBufferDeviceAddressKHR", name)) {
11969
0
        *addr = (void *)GetBufferDeviceAddressKHR;
11970
0
        return true;
11971
0
    }
11972
0
    if (!strcmp("vkGetBufferOpaqueCaptureAddressKHR", name)) {
11973
0
        *addr = (void *)GetBufferOpaqueCaptureAddressKHR;
11974
0
        return true;
11975
0
    }
11976
0
    if (!strcmp("vkGetDeviceMemoryOpaqueCaptureAddressKHR", name)) {
11977
0
        *addr = (void *)GetDeviceMemoryOpaqueCaptureAddressKHR;
11978
0
        return true;
11979
0
    }
11980
11981
    // ---- VK_KHR_deferred_host_operations extension commands
11982
0
    if (!strcmp("vkCreateDeferredOperationKHR", name)) {
11983
0
        *addr = (void *)CreateDeferredOperationKHR;
11984
0
        return true;
11985
0
    }
11986
0
    if (!strcmp("vkDestroyDeferredOperationKHR", name)) {
11987
0
        *addr = (void *)DestroyDeferredOperationKHR;
11988
0
        return true;
11989
0
    }
11990
0
    if (!strcmp("vkGetDeferredOperationMaxConcurrencyKHR", name)) {
11991
0
        *addr = (void *)GetDeferredOperationMaxConcurrencyKHR;
11992
0
        return true;
11993
0
    }
11994
0
    if (!strcmp("vkGetDeferredOperationResultKHR", name)) {
11995
0
        *addr = (void *)GetDeferredOperationResultKHR;
11996
0
        return true;
11997
0
    }
11998
0
    if (!strcmp("vkDeferredOperationJoinKHR", name)) {
11999
0
        *addr = (void *)DeferredOperationJoinKHR;
12000
0
        return true;
12001
0
    }
12002
12003
    // ---- VK_KHR_pipeline_executable_properties extension commands
12004
0
    if (!strcmp("vkGetPipelineExecutablePropertiesKHR", name)) {
12005
0
        *addr = (void *)GetPipelineExecutablePropertiesKHR;
12006
0
        return true;
12007
0
    }
12008
0
    if (!strcmp("vkGetPipelineExecutableStatisticsKHR", name)) {
12009
0
        *addr = (void *)GetPipelineExecutableStatisticsKHR;
12010
0
        return true;
12011
0
    }
12012
0
    if (!strcmp("vkGetPipelineExecutableInternalRepresentationsKHR", name)) {
12013
0
        *addr = (void *)GetPipelineExecutableInternalRepresentationsKHR;
12014
0
        return true;
12015
0
    }
12016
12017
    // ---- VK_KHR_map_memory2 extension commands
12018
0
    if (!strcmp("vkMapMemory2KHR", name)) {
12019
0
        *addr = (void *)MapMemory2KHR;
12020
0
        return true;
12021
0
    }
12022
0
    if (!strcmp("vkUnmapMemory2KHR", name)) {
12023
0
        *addr = (void *)UnmapMemory2KHR;
12024
0
        return true;
12025
0
    }
12026
12027
    // ---- VK_KHR_video_encode_queue extension commands
12028
0
    if (!strcmp("vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR", name)) {
12029
0
        *addr = (void *)GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
12030
0
        return true;
12031
0
    }
12032
0
    if (!strcmp("vkGetEncodedVideoSessionParametersKHR", name)) {
12033
0
        *addr = (void *)GetEncodedVideoSessionParametersKHR;
12034
0
        return true;
12035
0
    }
12036
0
    if (!strcmp("vkCmdEncodeVideoKHR", name)) {
12037
0
        *addr = (void *)CmdEncodeVideoKHR;
12038
0
        return true;
12039
0
    }
12040
12041
    // ---- VK_KHR_synchronization2 extension commands
12042
0
    if (!strcmp("vkCmdSetEvent2KHR", name)) {
12043
0
        *addr = (void *)CmdSetEvent2KHR;
12044
0
        return true;
12045
0
    }
12046
0
    if (!strcmp("vkCmdResetEvent2KHR", name)) {
12047
0
        *addr = (void *)CmdResetEvent2KHR;
12048
0
        return true;
12049
0
    }
12050
0
    if (!strcmp("vkCmdWaitEvents2KHR", name)) {
12051
0
        *addr = (void *)CmdWaitEvents2KHR;
12052
0
        return true;
12053
0
    }
12054
0
    if (!strcmp("vkCmdPipelineBarrier2KHR", name)) {
12055
0
        *addr = (void *)CmdPipelineBarrier2KHR;
12056
0
        return true;
12057
0
    }
12058
0
    if (!strcmp("vkCmdWriteTimestamp2KHR", name)) {
12059
0
        *addr = (void *)CmdWriteTimestamp2KHR;
12060
0
        return true;
12061
0
    }
12062
0
    if (!strcmp("vkQueueSubmit2KHR", name)) {
12063
0
        *addr = (void *)QueueSubmit2KHR;
12064
0
        return true;
12065
0
    }
12066
12067
    // ---- VK_KHR_copy_commands2 extension commands
12068
0
    if (!strcmp("vkCmdCopyBuffer2KHR", name)) {
12069
0
        *addr = (void *)CmdCopyBuffer2KHR;
12070
0
        return true;
12071
0
    }
12072
0
    if (!strcmp("vkCmdCopyImage2KHR", name)) {
12073
0
        *addr = (void *)CmdCopyImage2KHR;
12074
0
        return true;
12075
0
    }
12076
0
    if (!strcmp("vkCmdCopyBufferToImage2KHR", name)) {
12077
0
        *addr = (void *)CmdCopyBufferToImage2KHR;
12078
0
        return true;
12079
0
    }
12080
0
    if (!strcmp("vkCmdCopyImageToBuffer2KHR", name)) {
12081
0
        *addr = (void *)CmdCopyImageToBuffer2KHR;
12082
0
        return true;
12083
0
    }
12084
0
    if (!strcmp("vkCmdBlitImage2KHR", name)) {
12085
0
        *addr = (void *)CmdBlitImage2KHR;
12086
0
        return true;
12087
0
    }
12088
0
    if (!strcmp("vkCmdResolveImage2KHR", name)) {
12089
0
        *addr = (void *)CmdResolveImage2KHR;
12090
0
        return true;
12091
0
    }
12092
12093
    // ---- VK_KHR_ray_tracing_maintenance1 extension commands
12094
0
    if (!strcmp("vkCmdTraceRaysIndirect2KHR", name)) {
12095
0
        *addr = (void *)CmdTraceRaysIndirect2KHR;
12096
0
        return true;
12097
0
    }
12098
12099
    // ---- VK_KHR_maintenance4 extension commands
12100
0
    if (!strcmp("vkGetDeviceBufferMemoryRequirementsKHR", name)) {
12101
0
        *addr = (void *)GetDeviceBufferMemoryRequirementsKHR;
12102
0
        return true;
12103
0
    }
12104
0
    if (!strcmp("vkGetDeviceImageMemoryRequirementsKHR", name)) {
12105
0
        *addr = (void *)GetDeviceImageMemoryRequirementsKHR;
12106
0
        return true;
12107
0
    }
12108
0
    if (!strcmp("vkGetDeviceImageSparseMemoryRequirementsKHR", name)) {
12109
0
        *addr = (void *)GetDeviceImageSparseMemoryRequirementsKHR;
12110
0
        return true;
12111
0
    }
12112
12113
    // ---- VK_KHR_maintenance5 extension commands
12114
0
    if (!strcmp("vkCmdBindIndexBuffer2KHR", name)) {
12115
0
        *addr = (void *)CmdBindIndexBuffer2KHR;
12116
0
        return true;
12117
0
    }
12118
0
    if (!strcmp("vkGetRenderingAreaGranularityKHR", name)) {
12119
0
        *addr = (void *)GetRenderingAreaGranularityKHR;
12120
0
        return true;
12121
0
    }
12122
0
    if (!strcmp("vkGetDeviceImageSubresourceLayoutKHR", name)) {
12123
0
        *addr = (void *)GetDeviceImageSubresourceLayoutKHR;
12124
0
        return true;
12125
0
    }
12126
0
    if (!strcmp("vkGetImageSubresourceLayout2KHR", name)) {
12127
0
        *addr = (void *)GetImageSubresourceLayout2KHR;
12128
0
        return true;
12129
0
    }
12130
12131
    // ---- VK_KHR_present_wait2 extension commands
12132
0
    if (!strcmp("vkWaitForPresent2KHR", name)) {
12133
0
        *addr = (void *)WaitForPresent2KHR;
12134
0
        return true;
12135
0
    }
12136
12137
    // ---- VK_KHR_pipeline_binary extension commands
12138
0
    if (!strcmp("vkCreatePipelineBinariesKHR", name)) {
12139
0
        *addr = (void *)CreatePipelineBinariesKHR;
12140
0
        return true;
12141
0
    }
12142
0
    if (!strcmp("vkDestroyPipelineBinaryKHR", name)) {
12143
0
        *addr = (void *)DestroyPipelineBinaryKHR;
12144
0
        return true;
12145
0
    }
12146
0
    if (!strcmp("vkGetPipelineKeyKHR", name)) {
12147
0
        *addr = (void *)GetPipelineKeyKHR;
12148
0
        return true;
12149
0
    }
12150
0
    if (!strcmp("vkGetPipelineBinaryDataKHR", name)) {
12151
0
        *addr = (void *)GetPipelineBinaryDataKHR;
12152
0
        return true;
12153
0
    }
12154
0
    if (!strcmp("vkReleaseCapturedPipelineDataKHR", name)) {
12155
0
        *addr = (void *)ReleaseCapturedPipelineDataKHR;
12156
0
        return true;
12157
0
    }
12158
12159
    // ---- VK_KHR_swapchain_maintenance1 extension commands
12160
0
    if (!strcmp("vkReleaseSwapchainImagesKHR", name)) {
12161
0
        *addr = (void *)ReleaseSwapchainImagesKHR;
12162
0
        return true;
12163
0
    }
12164
12165
    // ---- VK_KHR_cooperative_matrix extension commands
12166
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", name)) {
12167
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
12168
0
        return true;
12169
0
    }
12170
12171
    // ---- VK_KHR_line_rasterization extension commands
12172
0
    if (!strcmp("vkCmdSetLineStippleKHR", name)) {
12173
0
        *addr = (void *)CmdSetLineStippleKHR;
12174
0
        return true;
12175
0
    }
12176
12177
    // ---- VK_KHR_calibrated_timestamps extension commands
12178
0
    if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", name)) {
12179
0
        *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsKHR;
12180
0
        return true;
12181
0
    }
12182
0
    if (!strcmp("vkGetCalibratedTimestampsKHR", name)) {
12183
0
        *addr = (void *)GetCalibratedTimestampsKHR;
12184
0
        return true;
12185
0
    }
12186
12187
    // ---- VK_KHR_maintenance6 extension commands
12188
0
    if (!strcmp("vkCmdBindDescriptorSets2KHR", name)) {
12189
0
        *addr = (void *)CmdBindDescriptorSets2KHR;
12190
0
        return true;
12191
0
    }
12192
0
    if (!strcmp("vkCmdPushConstants2KHR", name)) {
12193
0
        *addr = (void *)CmdPushConstants2KHR;
12194
0
        return true;
12195
0
    }
12196
0
    if (!strcmp("vkCmdPushDescriptorSet2KHR", name)) {
12197
0
        *addr = (void *)CmdPushDescriptorSet2KHR;
12198
0
        return true;
12199
0
    }
12200
0
    if (!strcmp("vkCmdPushDescriptorSetWithTemplate2KHR", name)) {
12201
0
        *addr = (void *)CmdPushDescriptorSetWithTemplate2KHR;
12202
0
        return true;
12203
0
    }
12204
0
    if (!strcmp("vkCmdSetDescriptorBufferOffsets2EXT", name)) {
12205
0
        *addr = (void *)CmdSetDescriptorBufferOffsets2EXT;
12206
0
        return true;
12207
0
    }
12208
0
    if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplers2EXT", name)) {
12209
0
        *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplers2EXT;
12210
0
        return true;
12211
0
    }
12212
12213
    // ---- VK_KHR_copy_memory_indirect extension commands
12214
0
    if (!strcmp("vkCmdCopyMemoryIndirectKHR", name)) {
12215
0
        *addr = (void *)CmdCopyMemoryIndirectKHR;
12216
0
        return true;
12217
0
    }
12218
0
    if (!strcmp("vkCmdCopyMemoryToImageIndirectKHR", name)) {
12219
0
        *addr = (void *)CmdCopyMemoryToImageIndirectKHR;
12220
0
        return true;
12221
0
    }
12222
12223
    // ---- VK_KHR_maintenance10 extension commands
12224
0
    if (!strcmp("vkCmdEndRendering2KHR", name)) {
12225
0
        *addr = (void *)CmdEndRendering2KHR;
12226
0
        return true;
12227
0
    }
12228
12229
    // ---- VK_EXT_debug_marker extension commands
12230
0
    if (!strcmp("vkDebugMarkerSetObjectTagEXT", name)) {
12231
0
        *addr = (void *)DebugMarkerSetObjectTagEXT;
12232
0
        return true;
12233
0
    }
12234
0
    if (!strcmp("vkDebugMarkerSetObjectNameEXT", name)) {
12235
0
        *addr = (void *)DebugMarkerSetObjectNameEXT;
12236
0
        return true;
12237
0
    }
12238
0
    if (!strcmp("vkCmdDebugMarkerBeginEXT", name)) {
12239
0
        *addr = (void *)CmdDebugMarkerBeginEXT;
12240
0
        return true;
12241
0
    }
12242
0
    if (!strcmp("vkCmdDebugMarkerEndEXT", name)) {
12243
0
        *addr = (void *)CmdDebugMarkerEndEXT;
12244
0
        return true;
12245
0
    }
12246
0
    if (!strcmp("vkCmdDebugMarkerInsertEXT", name)) {
12247
0
        *addr = (void *)CmdDebugMarkerInsertEXT;
12248
0
        return true;
12249
0
    }
12250
12251
    // ---- VK_EXT_transform_feedback extension commands
12252
0
    if (!strcmp("vkCmdBindTransformFeedbackBuffersEXT", name)) {
12253
0
        *addr = (void *)CmdBindTransformFeedbackBuffersEXT;
12254
0
        return true;
12255
0
    }
12256
0
    if (!strcmp("vkCmdBeginTransformFeedbackEXT", name)) {
12257
0
        *addr = (void *)CmdBeginTransformFeedbackEXT;
12258
0
        return true;
12259
0
    }
12260
0
    if (!strcmp("vkCmdEndTransformFeedbackEXT", name)) {
12261
0
        *addr = (void *)CmdEndTransformFeedbackEXT;
12262
0
        return true;
12263
0
    }
12264
0
    if (!strcmp("vkCmdBeginQueryIndexedEXT", name)) {
12265
0
        *addr = (void *)CmdBeginQueryIndexedEXT;
12266
0
        return true;
12267
0
    }
12268
0
    if (!strcmp("vkCmdEndQueryIndexedEXT", name)) {
12269
0
        *addr = (void *)CmdEndQueryIndexedEXT;
12270
0
        return true;
12271
0
    }
12272
0
    if (!strcmp("vkCmdDrawIndirectByteCountEXT", name)) {
12273
0
        *addr = (void *)CmdDrawIndirectByteCountEXT;
12274
0
        return true;
12275
0
    }
12276
12277
    // ---- VK_NVX_binary_import extension commands
12278
0
    if (!strcmp("vkCreateCuModuleNVX", name)) {
12279
0
        *addr = (void *)CreateCuModuleNVX;
12280
0
        return true;
12281
0
    }
12282
0
    if (!strcmp("vkCreateCuFunctionNVX", name)) {
12283
0
        *addr = (void *)CreateCuFunctionNVX;
12284
0
        return true;
12285
0
    }
12286
0
    if (!strcmp("vkDestroyCuModuleNVX", name)) {
12287
0
        *addr = (void *)DestroyCuModuleNVX;
12288
0
        return true;
12289
0
    }
12290
0
    if (!strcmp("vkDestroyCuFunctionNVX", name)) {
12291
0
        *addr = (void *)DestroyCuFunctionNVX;
12292
0
        return true;
12293
0
    }
12294
0
    if (!strcmp("vkCmdCuLaunchKernelNVX", name)) {
12295
0
        *addr = (void *)CmdCuLaunchKernelNVX;
12296
0
        return true;
12297
0
    }
12298
12299
    // ---- VK_NVX_image_view_handle extension commands
12300
0
    if (!strcmp("vkGetImageViewHandleNVX", name)) {
12301
0
        *addr = (void *)GetImageViewHandleNVX;
12302
0
        return true;
12303
0
    }
12304
0
    if (!strcmp("vkGetImageViewHandle64NVX", name)) {
12305
0
        *addr = (void *)GetImageViewHandle64NVX;
12306
0
        return true;
12307
0
    }
12308
0
    if (!strcmp("vkGetImageViewAddressNVX", name)) {
12309
0
        *addr = (void *)GetImageViewAddressNVX;
12310
0
        return true;
12311
0
    }
12312
12313
    // ---- VK_AMD_draw_indirect_count extension commands
12314
0
    if (!strcmp("vkCmdDrawIndirectCountAMD", name)) {
12315
0
        *addr = (void *)CmdDrawIndirectCountAMD;
12316
0
        return true;
12317
0
    }
12318
0
    if (!strcmp("vkCmdDrawIndexedIndirectCountAMD", name)) {
12319
0
        *addr = (void *)CmdDrawIndexedIndirectCountAMD;
12320
0
        return true;
12321
0
    }
12322
12323
    // ---- VK_AMD_shader_info extension commands
12324
0
    if (!strcmp("vkGetShaderInfoAMD", name)) {
12325
0
        *addr = (void *)GetShaderInfoAMD;
12326
0
        return true;
12327
0
    }
12328
12329
    // ---- VK_NV_external_memory_capabilities extension commands
12330
0
    if (!strcmp("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", name)) {
12331
0
        *addr = (ptr_instance->enabled_extensions.nv_external_memory_capabilities == 1)
12332
0
                     ? (void *)GetPhysicalDeviceExternalImageFormatPropertiesNV
12333
0
                     : NULL;
12334
0
        return true;
12335
0
    }
12336
12337
    // ---- VK_NV_external_memory_win32 extension commands
12338
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12339
    if (!strcmp("vkGetMemoryWin32HandleNV", name)) {
12340
        *addr = (void *)GetMemoryWin32HandleNV;
12341
        return true;
12342
    }
12343
#endif // VK_USE_PLATFORM_WIN32_KHR
12344
12345
    // ---- VK_EXT_conditional_rendering extension commands
12346
0
    if (!strcmp("vkCmdBeginConditionalRenderingEXT", name)) {
12347
0
        *addr = (void *)CmdBeginConditionalRenderingEXT;
12348
0
        return true;
12349
0
    }
12350
0
    if (!strcmp("vkCmdEndConditionalRenderingEXT", name)) {
12351
0
        *addr = (void *)CmdEndConditionalRenderingEXT;
12352
0
        return true;
12353
0
    }
12354
12355
    // ---- VK_NV_clip_space_w_scaling extension commands
12356
0
    if (!strcmp("vkCmdSetViewportWScalingNV", name)) {
12357
0
        *addr = (void *)CmdSetViewportWScalingNV;
12358
0
        return true;
12359
0
    }
12360
12361
    // ---- VK_EXT_direct_mode_display extension commands
12362
0
    if (!strcmp("vkReleaseDisplayEXT", name)) {
12363
0
        *addr = (ptr_instance->enabled_extensions.ext_direct_mode_display == 1)
12364
0
                     ? (void *)ReleaseDisplayEXT
12365
0
                     : NULL;
12366
0
        return true;
12367
0
    }
12368
12369
    // ---- VK_EXT_acquire_xlib_display extension commands
12370
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
12371
0
    if (!strcmp("vkAcquireXlibDisplayEXT", name)) {
12372
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_xlib_display == 1)
12373
0
                     ? (void *)AcquireXlibDisplayEXT
12374
0
                     : NULL;
12375
0
        return true;
12376
0
    }
12377
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
12378
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
12379
0
    if (!strcmp("vkGetRandROutputDisplayEXT", name)) {
12380
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_xlib_display == 1)
12381
0
                     ? (void *)GetRandROutputDisplayEXT
12382
0
                     : NULL;
12383
0
        return true;
12384
0
    }
12385
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
12386
12387
    // ---- VK_EXT_display_surface_counter extension commands
12388
0
    if (!strcmp("vkGetPhysicalDeviceSurfaceCapabilities2EXT", name)) {
12389
0
        *addr = (ptr_instance->enabled_extensions.ext_display_surface_counter == 1)
12390
0
                     ? (void *)GetPhysicalDeviceSurfaceCapabilities2EXT
12391
0
                     : NULL;
12392
0
        return true;
12393
0
    }
12394
12395
    // ---- VK_EXT_display_control extension commands
12396
0
    if (!strcmp("vkDisplayPowerControlEXT", name)) {
12397
0
        *addr = (void *)DisplayPowerControlEXT;
12398
0
        return true;
12399
0
    }
12400
0
    if (!strcmp("vkRegisterDeviceEventEXT", name)) {
12401
0
        *addr = (void *)RegisterDeviceEventEXT;
12402
0
        return true;
12403
0
    }
12404
0
    if (!strcmp("vkRegisterDisplayEventEXT", name)) {
12405
0
        *addr = (void *)RegisterDisplayEventEXT;
12406
0
        return true;
12407
0
    }
12408
0
    if (!strcmp("vkGetSwapchainCounterEXT", name)) {
12409
0
        *addr = (void *)GetSwapchainCounterEXT;
12410
0
        return true;
12411
0
    }
12412
12413
    // ---- VK_GOOGLE_display_timing extension commands
12414
0
    if (!strcmp("vkGetRefreshCycleDurationGOOGLE", name)) {
12415
0
        *addr = (void *)GetRefreshCycleDurationGOOGLE;
12416
0
        return true;
12417
0
    }
12418
0
    if (!strcmp("vkGetPastPresentationTimingGOOGLE", name)) {
12419
0
        *addr = (void *)GetPastPresentationTimingGOOGLE;
12420
0
        return true;
12421
0
    }
12422
12423
    // ---- VK_EXT_discard_rectangles extension commands
12424
0
    if (!strcmp("vkCmdSetDiscardRectangleEXT", name)) {
12425
0
        *addr = (void *)CmdSetDiscardRectangleEXT;
12426
0
        return true;
12427
0
    }
12428
0
    if (!strcmp("vkCmdSetDiscardRectangleEnableEXT", name)) {
12429
0
        *addr = (void *)CmdSetDiscardRectangleEnableEXT;
12430
0
        return true;
12431
0
    }
12432
0
    if (!strcmp("vkCmdSetDiscardRectangleModeEXT", name)) {
12433
0
        *addr = (void *)CmdSetDiscardRectangleModeEXT;
12434
0
        return true;
12435
0
    }
12436
12437
    // ---- VK_EXT_hdr_metadata extension commands
12438
0
    if (!strcmp("vkSetHdrMetadataEXT", name)) {
12439
0
        *addr = (void *)SetHdrMetadataEXT;
12440
0
        return true;
12441
0
    }
12442
12443
    // ---- VK_EXT_debug_utils extension commands
12444
0
    if (!strcmp("vkSetDebugUtilsObjectNameEXT", name)) {
12445
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12446
0
                     ? (void *)SetDebugUtilsObjectNameEXT
12447
0
                     : NULL;
12448
0
        return true;
12449
0
    }
12450
0
    if (!strcmp("vkSetDebugUtilsObjectTagEXT", name)) {
12451
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12452
0
                     ? (void *)SetDebugUtilsObjectTagEXT
12453
0
                     : NULL;
12454
0
        return true;
12455
0
    }
12456
0
    if (!strcmp("vkQueueBeginDebugUtilsLabelEXT", name)) {
12457
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12458
0
                     ? (void *)QueueBeginDebugUtilsLabelEXT
12459
0
                     : NULL;
12460
0
        return true;
12461
0
    }
12462
0
    if (!strcmp("vkQueueEndDebugUtilsLabelEXT", name)) {
12463
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12464
0
                     ? (void *)QueueEndDebugUtilsLabelEXT
12465
0
                     : NULL;
12466
0
        return true;
12467
0
    }
12468
0
    if (!strcmp("vkQueueInsertDebugUtilsLabelEXT", name)) {
12469
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12470
0
                     ? (void *)QueueInsertDebugUtilsLabelEXT
12471
0
                     : NULL;
12472
0
        return true;
12473
0
    }
12474
0
    if (!strcmp("vkCmdBeginDebugUtilsLabelEXT", name)) {
12475
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12476
0
                     ? (void *)CmdBeginDebugUtilsLabelEXT
12477
0
                     : NULL;
12478
0
        return true;
12479
0
    }
12480
0
    if (!strcmp("vkCmdEndDebugUtilsLabelEXT", name)) {
12481
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12482
0
                     ? (void *)CmdEndDebugUtilsLabelEXT
12483
0
                     : NULL;
12484
0
        return true;
12485
0
    }
12486
0
    if (!strcmp("vkCmdInsertDebugUtilsLabelEXT", name)) {
12487
0
        *addr = (ptr_instance->enabled_extensions.ext_debug_utils == 1)
12488
0
                     ? (void *)CmdInsertDebugUtilsLabelEXT
12489
0
                     : NULL;
12490
0
        return true;
12491
0
    }
12492
12493
    // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
12494
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
12495
    if (!strcmp("vkGetAndroidHardwareBufferPropertiesANDROID", name)) {
12496
        *addr = (void *)GetAndroidHardwareBufferPropertiesANDROID;
12497
        return true;
12498
    }
12499
#endif // VK_USE_PLATFORM_ANDROID_KHR
12500
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
12501
    if (!strcmp("vkGetMemoryAndroidHardwareBufferANDROID", name)) {
12502
        *addr = (void *)GetMemoryAndroidHardwareBufferANDROID;
12503
        return true;
12504
    }
12505
#endif // VK_USE_PLATFORM_ANDROID_KHR
12506
12507
    // ---- VK_AMDX_shader_enqueue extension commands
12508
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12509
0
    if (!strcmp("vkCreateExecutionGraphPipelinesAMDX", name)) {
12510
0
        *addr = (void *)CreateExecutionGraphPipelinesAMDX;
12511
0
        return true;
12512
0
    }
12513
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12514
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12515
0
    if (!strcmp("vkGetExecutionGraphPipelineScratchSizeAMDX", name)) {
12516
0
        *addr = (void *)GetExecutionGraphPipelineScratchSizeAMDX;
12517
0
        return true;
12518
0
    }
12519
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12520
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12521
0
    if (!strcmp("vkGetExecutionGraphPipelineNodeIndexAMDX", name)) {
12522
0
        *addr = (void *)GetExecutionGraphPipelineNodeIndexAMDX;
12523
0
        return true;
12524
0
    }
12525
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12526
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12527
0
    if (!strcmp("vkCmdInitializeGraphScratchMemoryAMDX", name)) {
12528
0
        *addr = (void *)CmdInitializeGraphScratchMemoryAMDX;
12529
0
        return true;
12530
0
    }
12531
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12532
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12533
0
    if (!strcmp("vkCmdDispatchGraphAMDX", name)) {
12534
0
        *addr = (void *)CmdDispatchGraphAMDX;
12535
0
        return true;
12536
0
    }
12537
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12538
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12539
0
    if (!strcmp("vkCmdDispatchGraphIndirectAMDX", name)) {
12540
0
        *addr = (void *)CmdDispatchGraphIndirectAMDX;
12541
0
        return true;
12542
0
    }
12543
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12544
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12545
0
    if (!strcmp("vkCmdDispatchGraphIndirectCountAMDX", name)) {
12546
0
        *addr = (void *)CmdDispatchGraphIndirectCountAMDX;
12547
0
        return true;
12548
0
    }
12549
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12550
12551
    // ---- VK_EXT_sample_locations extension commands
12552
0
    if (!strcmp("vkCmdSetSampleLocationsEXT", name)) {
12553
0
        *addr = (void *)CmdSetSampleLocationsEXT;
12554
0
        return true;
12555
0
    }
12556
0
    if (!strcmp("vkGetPhysicalDeviceMultisamplePropertiesEXT", name)) {
12557
0
        *addr = (void *)GetPhysicalDeviceMultisamplePropertiesEXT;
12558
0
        return true;
12559
0
    }
12560
12561
    // ---- VK_EXT_image_drm_format_modifier extension commands
12562
0
    if (!strcmp("vkGetImageDrmFormatModifierPropertiesEXT", name)) {
12563
0
        *addr = (void *)GetImageDrmFormatModifierPropertiesEXT;
12564
0
        return true;
12565
0
    }
12566
12567
    // ---- VK_EXT_validation_cache extension commands
12568
0
    if (!strcmp("vkCreateValidationCacheEXT", name)) {
12569
0
        *addr = (void *)CreateValidationCacheEXT;
12570
0
        return true;
12571
0
    }
12572
0
    if (!strcmp("vkDestroyValidationCacheEXT", name)) {
12573
0
        *addr = (void *)DestroyValidationCacheEXT;
12574
0
        return true;
12575
0
    }
12576
0
    if (!strcmp("vkMergeValidationCachesEXT", name)) {
12577
0
        *addr = (void *)MergeValidationCachesEXT;
12578
0
        return true;
12579
0
    }
12580
0
    if (!strcmp("vkGetValidationCacheDataEXT", name)) {
12581
0
        *addr = (void *)GetValidationCacheDataEXT;
12582
0
        return true;
12583
0
    }
12584
12585
    // ---- VK_NV_shading_rate_image extension commands
12586
0
    if (!strcmp("vkCmdBindShadingRateImageNV", name)) {
12587
0
        *addr = (void *)CmdBindShadingRateImageNV;
12588
0
        return true;
12589
0
    }
12590
0
    if (!strcmp("vkCmdSetViewportShadingRatePaletteNV", name)) {
12591
0
        *addr = (void *)CmdSetViewportShadingRatePaletteNV;
12592
0
        return true;
12593
0
    }
12594
0
    if (!strcmp("vkCmdSetCoarseSampleOrderNV", name)) {
12595
0
        *addr = (void *)CmdSetCoarseSampleOrderNV;
12596
0
        return true;
12597
0
    }
12598
12599
    // ---- VK_NV_ray_tracing extension commands
12600
0
    if (!strcmp("vkCreateAccelerationStructureNV", name)) {
12601
0
        *addr = (void *)CreateAccelerationStructureNV;
12602
0
        return true;
12603
0
    }
12604
0
    if (!strcmp("vkDestroyAccelerationStructureNV", name)) {
12605
0
        *addr = (void *)DestroyAccelerationStructureNV;
12606
0
        return true;
12607
0
    }
12608
0
    if (!strcmp("vkGetAccelerationStructureMemoryRequirementsNV", name)) {
12609
0
        *addr = (void *)GetAccelerationStructureMemoryRequirementsNV;
12610
0
        return true;
12611
0
    }
12612
0
    if (!strcmp("vkBindAccelerationStructureMemoryNV", name)) {
12613
0
        *addr = (void *)BindAccelerationStructureMemoryNV;
12614
0
        return true;
12615
0
    }
12616
0
    if (!strcmp("vkCmdBuildAccelerationStructureNV", name)) {
12617
0
        *addr = (void *)CmdBuildAccelerationStructureNV;
12618
0
        return true;
12619
0
    }
12620
0
    if (!strcmp("vkCmdCopyAccelerationStructureNV", name)) {
12621
0
        *addr = (void *)CmdCopyAccelerationStructureNV;
12622
0
        return true;
12623
0
    }
12624
0
    if (!strcmp("vkCmdTraceRaysNV", name)) {
12625
0
        *addr = (void *)CmdTraceRaysNV;
12626
0
        return true;
12627
0
    }
12628
0
    if (!strcmp("vkCreateRayTracingPipelinesNV", name)) {
12629
0
        *addr = (void *)CreateRayTracingPipelinesNV;
12630
0
        return true;
12631
0
    }
12632
12633
    // ---- VK_KHR_ray_tracing_pipeline extension commands
12634
0
    if (!strcmp("vkGetRayTracingShaderGroupHandlesKHR", name)) {
12635
0
        *addr = (void *)GetRayTracingShaderGroupHandlesKHR;
12636
0
        return true;
12637
0
    }
12638
12639
    // ---- VK_NV_ray_tracing extension commands
12640
0
    if (!strcmp("vkGetRayTracingShaderGroupHandlesNV", name)) {
12641
0
        *addr = (void *)GetRayTracingShaderGroupHandlesNV;
12642
0
        return true;
12643
0
    }
12644
0
    if (!strcmp("vkGetAccelerationStructureHandleNV", name)) {
12645
0
        *addr = (void *)GetAccelerationStructureHandleNV;
12646
0
        return true;
12647
0
    }
12648
0
    if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesNV", name)) {
12649
0
        *addr = (void *)CmdWriteAccelerationStructuresPropertiesNV;
12650
0
        return true;
12651
0
    }
12652
0
    if (!strcmp("vkCompileDeferredNV", name)) {
12653
0
        *addr = (void *)CompileDeferredNV;
12654
0
        return true;
12655
0
    }
12656
12657
    // ---- VK_EXT_external_memory_host extension commands
12658
0
    if (!strcmp("vkGetMemoryHostPointerPropertiesEXT", name)) {
12659
0
        *addr = (void *)GetMemoryHostPointerPropertiesEXT;
12660
0
        return true;
12661
0
    }
12662
12663
    // ---- VK_AMD_buffer_marker extension commands
12664
0
    if (!strcmp("vkCmdWriteBufferMarkerAMD", name)) {
12665
0
        *addr = (void *)CmdWriteBufferMarkerAMD;
12666
0
        return true;
12667
0
    }
12668
0
    if (!strcmp("vkCmdWriteBufferMarker2AMD", name)) {
12669
0
        *addr = (void *)CmdWriteBufferMarker2AMD;
12670
0
        return true;
12671
0
    }
12672
12673
    // ---- VK_EXT_calibrated_timestamps extension commands
12674
0
    if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", name)) {
12675
0
        *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsEXT;
12676
0
        return true;
12677
0
    }
12678
0
    if (!strcmp("vkGetCalibratedTimestampsEXT", name)) {
12679
0
        *addr = (void *)GetCalibratedTimestampsEXT;
12680
0
        return true;
12681
0
    }
12682
12683
    // ---- VK_NV_mesh_shader extension commands
12684
0
    if (!strcmp("vkCmdDrawMeshTasksNV", name)) {
12685
0
        *addr = (void *)CmdDrawMeshTasksNV;
12686
0
        return true;
12687
0
    }
12688
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectNV", name)) {
12689
0
        *addr = (void *)CmdDrawMeshTasksIndirectNV;
12690
0
        return true;
12691
0
    }
12692
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectCountNV", name)) {
12693
0
        *addr = (void *)CmdDrawMeshTasksIndirectCountNV;
12694
0
        return true;
12695
0
    }
12696
12697
    // ---- VK_NV_scissor_exclusive extension commands
12698
0
    if (!strcmp("vkCmdSetExclusiveScissorEnableNV", name)) {
12699
0
        *addr = (void *)CmdSetExclusiveScissorEnableNV;
12700
0
        return true;
12701
0
    }
12702
0
    if (!strcmp("vkCmdSetExclusiveScissorNV", name)) {
12703
0
        *addr = (void *)CmdSetExclusiveScissorNV;
12704
0
        return true;
12705
0
    }
12706
12707
    // ---- VK_NV_device_diagnostic_checkpoints extension commands
12708
0
    if (!strcmp("vkCmdSetCheckpointNV", name)) {
12709
0
        *addr = (void *)CmdSetCheckpointNV;
12710
0
        return true;
12711
0
    }
12712
0
    if (!strcmp("vkGetQueueCheckpointDataNV", name)) {
12713
0
        *addr = (void *)GetQueueCheckpointDataNV;
12714
0
        return true;
12715
0
    }
12716
0
    if (!strcmp("vkGetQueueCheckpointData2NV", name)) {
12717
0
        *addr = (void *)GetQueueCheckpointData2NV;
12718
0
        return true;
12719
0
    }
12720
12721
    // ---- VK_EXT_present_timing extension commands
12722
0
    if (!strcmp("vkSetSwapchainPresentTimingQueueSizeEXT", name)) {
12723
0
        *addr = (void *)SetSwapchainPresentTimingQueueSizeEXT;
12724
0
        return true;
12725
0
    }
12726
0
    if (!strcmp("vkGetSwapchainTimingPropertiesEXT", name)) {
12727
0
        *addr = (void *)GetSwapchainTimingPropertiesEXT;
12728
0
        return true;
12729
0
    }
12730
0
    if (!strcmp("vkGetSwapchainTimeDomainPropertiesEXT", name)) {
12731
0
        *addr = (void *)GetSwapchainTimeDomainPropertiesEXT;
12732
0
        return true;
12733
0
    }
12734
0
    if (!strcmp("vkGetPastPresentationTimingEXT", name)) {
12735
0
        *addr = (void *)GetPastPresentationTimingEXT;
12736
0
        return true;
12737
0
    }
12738
12739
    // ---- VK_INTEL_performance_query extension commands
12740
0
    if (!strcmp("vkInitializePerformanceApiINTEL", name)) {
12741
0
        *addr = (void *)InitializePerformanceApiINTEL;
12742
0
        return true;
12743
0
    }
12744
0
    if (!strcmp("vkUninitializePerformanceApiINTEL", name)) {
12745
0
        *addr = (void *)UninitializePerformanceApiINTEL;
12746
0
        return true;
12747
0
    }
12748
0
    if (!strcmp("vkCmdSetPerformanceMarkerINTEL", name)) {
12749
0
        *addr = (void *)CmdSetPerformanceMarkerINTEL;
12750
0
        return true;
12751
0
    }
12752
0
    if (!strcmp("vkCmdSetPerformanceStreamMarkerINTEL", name)) {
12753
0
        *addr = (void *)CmdSetPerformanceStreamMarkerINTEL;
12754
0
        return true;
12755
0
    }
12756
0
    if (!strcmp("vkCmdSetPerformanceOverrideINTEL", name)) {
12757
0
        *addr = (void *)CmdSetPerformanceOverrideINTEL;
12758
0
        return true;
12759
0
    }
12760
0
    if (!strcmp("vkAcquirePerformanceConfigurationINTEL", name)) {
12761
0
        *addr = (void *)AcquirePerformanceConfigurationINTEL;
12762
0
        return true;
12763
0
    }
12764
0
    if (!strcmp("vkReleasePerformanceConfigurationINTEL", name)) {
12765
0
        *addr = (void *)ReleasePerformanceConfigurationINTEL;
12766
0
        return true;
12767
0
    }
12768
0
    if (!strcmp("vkQueueSetPerformanceConfigurationINTEL", name)) {
12769
0
        *addr = (void *)QueueSetPerformanceConfigurationINTEL;
12770
0
        return true;
12771
0
    }
12772
0
    if (!strcmp("vkGetPerformanceParameterINTEL", name)) {
12773
0
        *addr = (void *)GetPerformanceParameterINTEL;
12774
0
        return true;
12775
0
    }
12776
12777
    // ---- VK_AMD_display_native_hdr extension commands
12778
0
    if (!strcmp("vkSetLocalDimmingAMD", name)) {
12779
0
        *addr = (void *)SetLocalDimmingAMD;
12780
0
        return true;
12781
0
    }
12782
12783
    // ---- VK_EXT_buffer_device_address extension commands
12784
0
    if (!strcmp("vkGetBufferDeviceAddressEXT", name)) {
12785
0
        *addr = (void *)GetBufferDeviceAddressEXT;
12786
0
        return true;
12787
0
    }
12788
12789
    // ---- VK_EXT_tooling_info extension commands
12790
0
    if (!strcmp("vkGetPhysicalDeviceToolPropertiesEXT", name)) {
12791
0
        *addr = (void *)GetPhysicalDeviceToolPropertiesEXT;
12792
0
        return true;
12793
0
    }
12794
12795
    // ---- VK_NV_cooperative_matrix extension commands
12796
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", name)) {
12797
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesNV;
12798
0
        return true;
12799
0
    }
12800
12801
    // ---- VK_NV_coverage_reduction_mode extension commands
12802
0
    if (!strcmp("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", name)) {
12803
0
        *addr = (void *)GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
12804
0
        return true;
12805
0
    }
12806
12807
    // ---- VK_EXT_full_screen_exclusive extension commands
12808
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12809
    if (!strcmp("vkGetPhysicalDeviceSurfacePresentModes2EXT", name)) {
12810
        *addr = (void *)GetPhysicalDeviceSurfacePresentModes2EXT;
12811
        return true;
12812
    }
12813
#endif // VK_USE_PLATFORM_WIN32_KHR
12814
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12815
    if (!strcmp("vkAcquireFullScreenExclusiveModeEXT", name)) {
12816
        *addr = (void *)AcquireFullScreenExclusiveModeEXT;
12817
        return true;
12818
    }
12819
#endif // VK_USE_PLATFORM_WIN32_KHR
12820
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12821
    if (!strcmp("vkReleaseFullScreenExclusiveModeEXT", name)) {
12822
        *addr = (void *)ReleaseFullScreenExclusiveModeEXT;
12823
        return true;
12824
    }
12825
#endif // VK_USE_PLATFORM_WIN32_KHR
12826
#if defined(VK_USE_PLATFORM_WIN32_KHR)
12827
    if (!strcmp("vkGetDeviceGroupSurfacePresentModes2EXT", name)) {
12828
        *addr = (void *)GetDeviceGroupSurfacePresentModes2EXT;
12829
        return true;
12830
    }
12831
#endif // VK_USE_PLATFORM_WIN32_KHR
12832
12833
    // ---- VK_EXT_line_rasterization extension commands
12834
0
    if (!strcmp("vkCmdSetLineStippleEXT", name)) {
12835
0
        *addr = (void *)CmdSetLineStippleEXT;
12836
0
        return true;
12837
0
    }
12838
12839
    // ---- VK_EXT_host_query_reset extension commands
12840
0
    if (!strcmp("vkResetQueryPoolEXT", name)) {
12841
0
        *addr = (void *)ResetQueryPoolEXT;
12842
0
        return true;
12843
0
    }
12844
12845
    // ---- VK_EXT_extended_dynamic_state extension commands
12846
0
    if (!strcmp("vkCmdSetCullModeEXT", name)) {
12847
0
        *addr = (void *)CmdSetCullModeEXT;
12848
0
        return true;
12849
0
    }
12850
0
    if (!strcmp("vkCmdSetFrontFaceEXT", name)) {
12851
0
        *addr = (void *)CmdSetFrontFaceEXT;
12852
0
        return true;
12853
0
    }
12854
0
    if (!strcmp("vkCmdSetPrimitiveTopologyEXT", name)) {
12855
0
        *addr = (void *)CmdSetPrimitiveTopologyEXT;
12856
0
        return true;
12857
0
    }
12858
0
    if (!strcmp("vkCmdSetViewportWithCountEXT", name)) {
12859
0
        *addr = (void *)CmdSetViewportWithCountEXT;
12860
0
        return true;
12861
0
    }
12862
0
    if (!strcmp("vkCmdSetScissorWithCountEXT", name)) {
12863
0
        *addr = (void *)CmdSetScissorWithCountEXT;
12864
0
        return true;
12865
0
    }
12866
0
    if (!strcmp("vkCmdBindVertexBuffers2EXT", name)) {
12867
0
        *addr = (void *)CmdBindVertexBuffers2EXT;
12868
0
        return true;
12869
0
    }
12870
0
    if (!strcmp("vkCmdSetDepthTestEnableEXT", name)) {
12871
0
        *addr = (void *)CmdSetDepthTestEnableEXT;
12872
0
        return true;
12873
0
    }
12874
0
    if (!strcmp("vkCmdSetDepthWriteEnableEXT", name)) {
12875
0
        *addr = (void *)CmdSetDepthWriteEnableEXT;
12876
0
        return true;
12877
0
    }
12878
0
    if (!strcmp("vkCmdSetDepthCompareOpEXT", name)) {
12879
0
        *addr = (void *)CmdSetDepthCompareOpEXT;
12880
0
        return true;
12881
0
    }
12882
0
    if (!strcmp("vkCmdSetDepthBoundsTestEnableEXT", name)) {
12883
0
        *addr = (void *)CmdSetDepthBoundsTestEnableEXT;
12884
0
        return true;
12885
0
    }
12886
0
    if (!strcmp("vkCmdSetStencilTestEnableEXT", name)) {
12887
0
        *addr = (void *)CmdSetStencilTestEnableEXT;
12888
0
        return true;
12889
0
    }
12890
0
    if (!strcmp("vkCmdSetStencilOpEXT", name)) {
12891
0
        *addr = (void *)CmdSetStencilOpEXT;
12892
0
        return true;
12893
0
    }
12894
12895
    // ---- VK_EXT_host_image_copy extension commands
12896
0
    if (!strcmp("vkCopyMemoryToImageEXT", name)) {
12897
0
        *addr = (void *)CopyMemoryToImageEXT;
12898
0
        return true;
12899
0
    }
12900
0
    if (!strcmp("vkCopyImageToMemoryEXT", name)) {
12901
0
        *addr = (void *)CopyImageToMemoryEXT;
12902
0
        return true;
12903
0
    }
12904
0
    if (!strcmp("vkCopyImageToImageEXT", name)) {
12905
0
        *addr = (void *)CopyImageToImageEXT;
12906
0
        return true;
12907
0
    }
12908
0
    if (!strcmp("vkTransitionImageLayoutEXT", name)) {
12909
0
        *addr = (void *)TransitionImageLayoutEXT;
12910
0
        return true;
12911
0
    }
12912
0
    if (!strcmp("vkGetImageSubresourceLayout2EXT", name)) {
12913
0
        *addr = (void *)GetImageSubresourceLayout2EXT;
12914
0
        return true;
12915
0
    }
12916
12917
    // ---- VK_EXT_swapchain_maintenance1 extension commands
12918
0
    if (!strcmp("vkReleaseSwapchainImagesEXT", name)) {
12919
0
        *addr = (void *)ReleaseSwapchainImagesEXT;
12920
0
        return true;
12921
0
    }
12922
12923
    // ---- VK_NV_device_generated_commands extension commands
12924
0
    if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsNV", name)) {
12925
0
        *addr = (void *)GetGeneratedCommandsMemoryRequirementsNV;
12926
0
        return true;
12927
0
    }
12928
0
    if (!strcmp("vkCmdPreprocessGeneratedCommandsNV", name)) {
12929
0
        *addr = (void *)CmdPreprocessGeneratedCommandsNV;
12930
0
        return true;
12931
0
    }
12932
0
    if (!strcmp("vkCmdExecuteGeneratedCommandsNV", name)) {
12933
0
        *addr = (void *)CmdExecuteGeneratedCommandsNV;
12934
0
        return true;
12935
0
    }
12936
0
    if (!strcmp("vkCmdBindPipelineShaderGroupNV", name)) {
12937
0
        *addr = (void *)CmdBindPipelineShaderGroupNV;
12938
0
        return true;
12939
0
    }
12940
0
    if (!strcmp("vkCreateIndirectCommandsLayoutNV", name)) {
12941
0
        *addr = (void *)CreateIndirectCommandsLayoutNV;
12942
0
        return true;
12943
0
    }
12944
0
    if (!strcmp("vkDestroyIndirectCommandsLayoutNV", name)) {
12945
0
        *addr = (void *)DestroyIndirectCommandsLayoutNV;
12946
0
        return true;
12947
0
    }
12948
12949
    // ---- VK_EXT_depth_bias_control extension commands
12950
0
    if (!strcmp("vkCmdSetDepthBias2EXT", name)) {
12951
0
        *addr = (void *)CmdSetDepthBias2EXT;
12952
0
        return true;
12953
0
    }
12954
12955
    // ---- VK_EXT_acquire_drm_display extension commands
12956
0
    if (!strcmp("vkAcquireDrmDisplayEXT", name)) {
12957
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_drm_display == 1)
12958
0
                     ? (void *)AcquireDrmDisplayEXT
12959
0
                     : NULL;
12960
0
        return true;
12961
0
    }
12962
0
    if (!strcmp("vkGetDrmDisplayEXT", name)) {
12963
0
        *addr = (ptr_instance->enabled_extensions.ext_acquire_drm_display == 1)
12964
0
                     ? (void *)GetDrmDisplayEXT
12965
0
                     : NULL;
12966
0
        return true;
12967
0
    }
12968
12969
    // ---- VK_EXT_private_data extension commands
12970
0
    if (!strcmp("vkCreatePrivateDataSlotEXT", name)) {
12971
0
        *addr = (void *)CreatePrivateDataSlotEXT;
12972
0
        return true;
12973
0
    }
12974
0
    if (!strcmp("vkDestroyPrivateDataSlotEXT", name)) {
12975
0
        *addr = (void *)DestroyPrivateDataSlotEXT;
12976
0
        return true;
12977
0
    }
12978
0
    if (!strcmp("vkSetPrivateDataEXT", name)) {
12979
0
        *addr = (void *)SetPrivateDataEXT;
12980
0
        return true;
12981
0
    }
12982
0
    if (!strcmp("vkGetPrivateDataEXT", name)) {
12983
0
        *addr = (void *)GetPrivateDataEXT;
12984
0
        return true;
12985
0
    }
12986
12987
    // ---- VK_NV_cuda_kernel_launch extension commands
12988
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12989
0
    if (!strcmp("vkCreateCudaModuleNV", name)) {
12990
0
        *addr = (void *)CreateCudaModuleNV;
12991
0
        return true;
12992
0
    }
12993
0
#endif // VK_ENABLE_BETA_EXTENSIONS
12994
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
12995
0
    if (!strcmp("vkGetCudaModuleCacheNV", name)) {
12996
0
        *addr = (void *)GetCudaModuleCacheNV;
12997
0
        return true;
12998
0
    }
12999
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13000
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13001
0
    if (!strcmp("vkCreateCudaFunctionNV", name)) {
13002
0
        *addr = (void *)CreateCudaFunctionNV;
13003
0
        return true;
13004
0
    }
13005
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13006
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13007
0
    if (!strcmp("vkDestroyCudaModuleNV", name)) {
13008
0
        *addr = (void *)DestroyCudaModuleNV;
13009
0
        return true;
13010
0
    }
13011
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13012
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13013
0
    if (!strcmp("vkDestroyCudaFunctionNV", name)) {
13014
0
        *addr = (void *)DestroyCudaFunctionNV;
13015
0
        return true;
13016
0
    }
13017
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13018
0
#if defined(VK_ENABLE_BETA_EXTENSIONS)
13019
0
    if (!strcmp("vkCmdCudaLaunchKernelNV", name)) {
13020
0
        *addr = (void *)CmdCudaLaunchKernelNV;
13021
0
        return true;
13022
0
    }
13023
0
#endif // VK_ENABLE_BETA_EXTENSIONS
13024
13025
    // ---- VK_QCOM_tile_shading extension commands
13026
0
    if (!strcmp("vkCmdDispatchTileQCOM", name)) {
13027
0
        *addr = (void *)CmdDispatchTileQCOM;
13028
0
        return true;
13029
0
    }
13030
0
    if (!strcmp("vkCmdBeginPerTileExecutionQCOM", name)) {
13031
0
        *addr = (void *)CmdBeginPerTileExecutionQCOM;
13032
0
        return true;
13033
0
    }
13034
0
    if (!strcmp("vkCmdEndPerTileExecutionQCOM", name)) {
13035
0
        *addr = (void *)CmdEndPerTileExecutionQCOM;
13036
0
        return true;
13037
0
    }
13038
13039
    // ---- VK_EXT_metal_objects extension commands
13040
#if defined(VK_USE_PLATFORM_METAL_EXT)
13041
    if (!strcmp("vkExportMetalObjectsEXT", name)) {
13042
        *addr = (void *)ExportMetalObjectsEXT;
13043
        return true;
13044
    }
13045
#endif // VK_USE_PLATFORM_METAL_EXT
13046
13047
    // ---- VK_EXT_descriptor_buffer extension commands
13048
0
    if (!strcmp("vkGetDescriptorSetLayoutSizeEXT", name)) {
13049
0
        *addr = (void *)GetDescriptorSetLayoutSizeEXT;
13050
0
        return true;
13051
0
    }
13052
0
    if (!strcmp("vkGetDescriptorSetLayoutBindingOffsetEXT", name)) {
13053
0
        *addr = (void *)GetDescriptorSetLayoutBindingOffsetEXT;
13054
0
        return true;
13055
0
    }
13056
0
    if (!strcmp("vkGetDescriptorEXT", name)) {
13057
0
        *addr = (void *)GetDescriptorEXT;
13058
0
        return true;
13059
0
    }
13060
0
    if (!strcmp("vkCmdBindDescriptorBuffersEXT", name)) {
13061
0
        *addr = (void *)CmdBindDescriptorBuffersEXT;
13062
0
        return true;
13063
0
    }
13064
0
    if (!strcmp("vkCmdSetDescriptorBufferOffsetsEXT", name)) {
13065
0
        *addr = (void *)CmdSetDescriptorBufferOffsetsEXT;
13066
0
        return true;
13067
0
    }
13068
0
    if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplersEXT", name)) {
13069
0
        *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplersEXT;
13070
0
        return true;
13071
0
    }
13072
0
    if (!strcmp("vkGetBufferOpaqueCaptureDescriptorDataEXT", name)) {
13073
0
        *addr = (void *)GetBufferOpaqueCaptureDescriptorDataEXT;
13074
0
        return true;
13075
0
    }
13076
0
    if (!strcmp("vkGetImageOpaqueCaptureDescriptorDataEXT", name)) {
13077
0
        *addr = (void *)GetImageOpaqueCaptureDescriptorDataEXT;
13078
0
        return true;
13079
0
    }
13080
0
    if (!strcmp("vkGetImageViewOpaqueCaptureDescriptorDataEXT", name)) {
13081
0
        *addr = (void *)GetImageViewOpaqueCaptureDescriptorDataEXT;
13082
0
        return true;
13083
0
    }
13084
0
    if (!strcmp("vkGetSamplerOpaqueCaptureDescriptorDataEXT", name)) {
13085
0
        *addr = (void *)GetSamplerOpaqueCaptureDescriptorDataEXT;
13086
0
        return true;
13087
0
    }
13088
0
    if (!strcmp("vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT", name)) {
13089
0
        *addr = (void *)GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
13090
0
        return true;
13091
0
    }
13092
13093
    // ---- VK_NV_fragment_shading_rate_enums extension commands
13094
0
    if (!strcmp("vkCmdSetFragmentShadingRateEnumNV", name)) {
13095
0
        *addr = (void *)CmdSetFragmentShadingRateEnumNV;
13096
0
        return true;
13097
0
    }
13098
13099
    // ---- VK_EXT_device_fault extension commands
13100
0
    if (!strcmp("vkGetDeviceFaultInfoEXT", name)) {
13101
0
        *addr = (void *)GetDeviceFaultInfoEXT;
13102
0
        return true;
13103
0
    }
13104
13105
    // ---- VK_NV_acquire_winrt_display extension commands
13106
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13107
    if (!strcmp("vkAcquireWinrtDisplayNV", name)) {
13108
        *addr = (void *)AcquireWinrtDisplayNV;
13109
        return true;
13110
    }
13111
#endif // VK_USE_PLATFORM_WIN32_KHR
13112
#if defined(VK_USE_PLATFORM_WIN32_KHR)
13113
    if (!strcmp("vkGetWinrtDisplayNV", name)) {
13114
        *addr = (void *)GetWinrtDisplayNV;
13115
        return true;
13116
    }
13117
#endif // VK_USE_PLATFORM_WIN32_KHR
13118
13119
    // ---- VK_EXT_vertex_input_dynamic_state extension commands
13120
0
    if (!strcmp("vkCmdSetVertexInputEXT", name)) {
13121
0
        *addr = (void *)CmdSetVertexInputEXT;
13122
0
        return true;
13123
0
    }
13124
13125
    // ---- VK_FUCHSIA_external_memory extension commands
13126
#if defined(VK_USE_PLATFORM_FUCHSIA)
13127
    if (!strcmp("vkGetMemoryZirconHandleFUCHSIA", name)) {
13128
        *addr = (void *)GetMemoryZirconHandleFUCHSIA;
13129
        return true;
13130
    }
13131
#endif // VK_USE_PLATFORM_FUCHSIA
13132
#if defined(VK_USE_PLATFORM_FUCHSIA)
13133
    if (!strcmp("vkGetMemoryZirconHandlePropertiesFUCHSIA", name)) {
13134
        *addr = (void *)GetMemoryZirconHandlePropertiesFUCHSIA;
13135
        return true;
13136
    }
13137
#endif // VK_USE_PLATFORM_FUCHSIA
13138
13139
    // ---- VK_FUCHSIA_external_semaphore extension commands
13140
#if defined(VK_USE_PLATFORM_FUCHSIA)
13141
    if (!strcmp("vkImportSemaphoreZirconHandleFUCHSIA", name)) {
13142
        *addr = (void *)ImportSemaphoreZirconHandleFUCHSIA;
13143
        return true;
13144
    }
13145
#endif // VK_USE_PLATFORM_FUCHSIA
13146
#if defined(VK_USE_PLATFORM_FUCHSIA)
13147
    if (!strcmp("vkGetSemaphoreZirconHandleFUCHSIA", name)) {
13148
        *addr = (void *)GetSemaphoreZirconHandleFUCHSIA;
13149
        return true;
13150
    }
13151
#endif // VK_USE_PLATFORM_FUCHSIA
13152
13153
    // ---- VK_FUCHSIA_buffer_collection extension commands
13154
#if defined(VK_USE_PLATFORM_FUCHSIA)
13155
    if (!strcmp("vkCreateBufferCollectionFUCHSIA", name)) {
13156
        *addr = (void *)CreateBufferCollectionFUCHSIA;
13157
        return true;
13158
    }
13159
#endif // VK_USE_PLATFORM_FUCHSIA
13160
#if defined(VK_USE_PLATFORM_FUCHSIA)
13161
    if (!strcmp("vkSetBufferCollectionImageConstraintsFUCHSIA", name)) {
13162
        *addr = (void *)SetBufferCollectionImageConstraintsFUCHSIA;
13163
        return true;
13164
    }
13165
#endif // VK_USE_PLATFORM_FUCHSIA
13166
#if defined(VK_USE_PLATFORM_FUCHSIA)
13167
    if (!strcmp("vkSetBufferCollectionBufferConstraintsFUCHSIA", name)) {
13168
        *addr = (void *)SetBufferCollectionBufferConstraintsFUCHSIA;
13169
        return true;
13170
    }
13171
#endif // VK_USE_PLATFORM_FUCHSIA
13172
#if defined(VK_USE_PLATFORM_FUCHSIA)
13173
    if (!strcmp("vkDestroyBufferCollectionFUCHSIA", name)) {
13174
        *addr = (void *)DestroyBufferCollectionFUCHSIA;
13175
        return true;
13176
    }
13177
#endif // VK_USE_PLATFORM_FUCHSIA
13178
#if defined(VK_USE_PLATFORM_FUCHSIA)
13179
    if (!strcmp("vkGetBufferCollectionPropertiesFUCHSIA", name)) {
13180
        *addr = (void *)GetBufferCollectionPropertiesFUCHSIA;
13181
        return true;
13182
    }
13183
#endif // VK_USE_PLATFORM_FUCHSIA
13184
13185
    // ---- VK_HUAWEI_subpass_shading extension commands
13186
0
    if (!strcmp("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", name)) {
13187
0
        *addr = (void *)GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
13188
0
        return true;
13189
0
    }
13190
0
    if (!strcmp("vkCmdSubpassShadingHUAWEI", name)) {
13191
0
        *addr = (void *)CmdSubpassShadingHUAWEI;
13192
0
        return true;
13193
0
    }
13194
13195
    // ---- VK_HUAWEI_invocation_mask extension commands
13196
0
    if (!strcmp("vkCmdBindInvocationMaskHUAWEI", name)) {
13197
0
        *addr = (void *)CmdBindInvocationMaskHUAWEI;
13198
0
        return true;
13199
0
    }
13200
13201
    // ---- VK_NV_external_memory_rdma extension commands
13202
0
    if (!strcmp("vkGetMemoryRemoteAddressNV", name)) {
13203
0
        *addr = (void *)GetMemoryRemoteAddressNV;
13204
0
        return true;
13205
0
    }
13206
13207
    // ---- VK_EXT_pipeline_properties extension commands
13208
0
    if (!strcmp("vkGetPipelinePropertiesEXT", name)) {
13209
0
        *addr = (void *)GetPipelinePropertiesEXT;
13210
0
        return true;
13211
0
    }
13212
13213
    // ---- VK_EXT_extended_dynamic_state2 extension commands
13214
0
    if (!strcmp("vkCmdSetPatchControlPointsEXT", name)) {
13215
0
        *addr = (void *)CmdSetPatchControlPointsEXT;
13216
0
        return true;
13217
0
    }
13218
0
    if (!strcmp("vkCmdSetRasterizerDiscardEnableEXT", name)) {
13219
0
        *addr = (void *)CmdSetRasterizerDiscardEnableEXT;
13220
0
        return true;
13221
0
    }
13222
0
    if (!strcmp("vkCmdSetDepthBiasEnableEXT", name)) {
13223
0
        *addr = (void *)CmdSetDepthBiasEnableEXT;
13224
0
        return true;
13225
0
    }
13226
0
    if (!strcmp("vkCmdSetLogicOpEXT", name)) {
13227
0
        *addr = (void *)CmdSetLogicOpEXT;
13228
0
        return true;
13229
0
    }
13230
0
    if (!strcmp("vkCmdSetPrimitiveRestartEnableEXT", name)) {
13231
0
        *addr = (void *)CmdSetPrimitiveRestartEnableEXT;
13232
0
        return true;
13233
0
    }
13234
13235
    // ---- VK_EXT_color_write_enable extension commands
13236
0
    if (!strcmp("vkCmdSetColorWriteEnableEXT", name)) {
13237
0
        *addr = (void *)CmdSetColorWriteEnableEXT;
13238
0
        return true;
13239
0
    }
13240
13241
    // ---- VK_EXT_multi_draw extension commands
13242
0
    if (!strcmp("vkCmdDrawMultiEXT", name)) {
13243
0
        *addr = (void *)CmdDrawMultiEXT;
13244
0
        return true;
13245
0
    }
13246
0
    if (!strcmp("vkCmdDrawMultiIndexedEXT", name)) {
13247
0
        *addr = (void *)CmdDrawMultiIndexedEXT;
13248
0
        return true;
13249
0
    }
13250
13251
    // ---- VK_EXT_opacity_micromap extension commands
13252
0
    if (!strcmp("vkCreateMicromapEXT", name)) {
13253
0
        *addr = (void *)CreateMicromapEXT;
13254
0
        return true;
13255
0
    }
13256
0
    if (!strcmp("vkDestroyMicromapEXT", name)) {
13257
0
        *addr = (void *)DestroyMicromapEXT;
13258
0
        return true;
13259
0
    }
13260
0
    if (!strcmp("vkCmdBuildMicromapsEXT", name)) {
13261
0
        *addr = (void *)CmdBuildMicromapsEXT;
13262
0
        return true;
13263
0
    }
13264
0
    if (!strcmp("vkBuildMicromapsEXT", name)) {
13265
0
        *addr = (void *)BuildMicromapsEXT;
13266
0
        return true;
13267
0
    }
13268
0
    if (!strcmp("vkCopyMicromapEXT", name)) {
13269
0
        *addr = (void *)CopyMicromapEXT;
13270
0
        return true;
13271
0
    }
13272
0
    if (!strcmp("vkCopyMicromapToMemoryEXT", name)) {
13273
0
        *addr = (void *)CopyMicromapToMemoryEXT;
13274
0
        return true;
13275
0
    }
13276
0
    if (!strcmp("vkCopyMemoryToMicromapEXT", name)) {
13277
0
        *addr = (void *)CopyMemoryToMicromapEXT;
13278
0
        return true;
13279
0
    }
13280
0
    if (!strcmp("vkWriteMicromapsPropertiesEXT", name)) {
13281
0
        *addr = (void *)WriteMicromapsPropertiesEXT;
13282
0
        return true;
13283
0
    }
13284
0
    if (!strcmp("vkCmdCopyMicromapEXT", name)) {
13285
0
        *addr = (void *)CmdCopyMicromapEXT;
13286
0
        return true;
13287
0
    }
13288
0
    if (!strcmp("vkCmdCopyMicromapToMemoryEXT", name)) {
13289
0
        *addr = (void *)CmdCopyMicromapToMemoryEXT;
13290
0
        return true;
13291
0
    }
13292
0
    if (!strcmp("vkCmdCopyMemoryToMicromapEXT", name)) {
13293
0
        *addr = (void *)CmdCopyMemoryToMicromapEXT;
13294
0
        return true;
13295
0
    }
13296
0
    if (!strcmp("vkCmdWriteMicromapsPropertiesEXT", name)) {
13297
0
        *addr = (void *)CmdWriteMicromapsPropertiesEXT;
13298
0
        return true;
13299
0
    }
13300
0
    if (!strcmp("vkGetDeviceMicromapCompatibilityEXT", name)) {
13301
0
        *addr = (void *)GetDeviceMicromapCompatibilityEXT;
13302
0
        return true;
13303
0
    }
13304
0
    if (!strcmp("vkGetMicromapBuildSizesEXT", name)) {
13305
0
        *addr = (void *)GetMicromapBuildSizesEXT;
13306
0
        return true;
13307
0
    }
13308
13309
    // ---- VK_HUAWEI_cluster_culling_shader extension commands
13310
0
    if (!strcmp("vkCmdDrawClusterHUAWEI", name)) {
13311
0
        *addr = (void *)CmdDrawClusterHUAWEI;
13312
0
        return true;
13313
0
    }
13314
0
    if (!strcmp("vkCmdDrawClusterIndirectHUAWEI", name)) {
13315
0
        *addr = (void *)CmdDrawClusterIndirectHUAWEI;
13316
0
        return true;
13317
0
    }
13318
13319
    // ---- VK_EXT_pageable_device_local_memory extension commands
13320
0
    if (!strcmp("vkSetDeviceMemoryPriorityEXT", name)) {
13321
0
        *addr = (void *)SetDeviceMemoryPriorityEXT;
13322
0
        return true;
13323
0
    }
13324
13325
    // ---- VK_VALVE_descriptor_set_host_mapping extension commands
13326
0
    if (!strcmp("vkGetDescriptorSetLayoutHostMappingInfoVALVE", name)) {
13327
0
        *addr = (void *)GetDescriptorSetLayoutHostMappingInfoVALVE;
13328
0
        return true;
13329
0
    }
13330
0
    if (!strcmp("vkGetDescriptorSetHostMappingVALVE", name)) {
13331
0
        *addr = (void *)GetDescriptorSetHostMappingVALVE;
13332
0
        return true;
13333
0
    }
13334
13335
    // ---- VK_NV_copy_memory_indirect extension commands
13336
0
    if (!strcmp("vkCmdCopyMemoryIndirectNV", name)) {
13337
0
        *addr = (void *)CmdCopyMemoryIndirectNV;
13338
0
        return true;
13339
0
    }
13340
0
    if (!strcmp("vkCmdCopyMemoryToImageIndirectNV", name)) {
13341
0
        *addr = (void *)CmdCopyMemoryToImageIndirectNV;
13342
0
        return true;
13343
0
    }
13344
13345
    // ---- VK_NV_memory_decompression extension commands
13346
0
    if (!strcmp("vkCmdDecompressMemoryNV", name)) {
13347
0
        *addr = (void *)CmdDecompressMemoryNV;
13348
0
        return true;
13349
0
    }
13350
0
    if (!strcmp("vkCmdDecompressMemoryIndirectCountNV", name)) {
13351
0
        *addr = (void *)CmdDecompressMemoryIndirectCountNV;
13352
0
        return true;
13353
0
    }
13354
13355
    // ---- VK_NV_device_generated_commands_compute extension commands
13356
0
    if (!strcmp("vkGetPipelineIndirectMemoryRequirementsNV", name)) {
13357
0
        *addr = (void *)GetPipelineIndirectMemoryRequirementsNV;
13358
0
        return true;
13359
0
    }
13360
0
    if (!strcmp("vkCmdUpdatePipelineIndirectBufferNV", name)) {
13361
0
        *addr = (void *)CmdUpdatePipelineIndirectBufferNV;
13362
0
        return true;
13363
0
    }
13364
0
    if (!strcmp("vkGetPipelineIndirectDeviceAddressNV", name)) {
13365
0
        *addr = (void *)GetPipelineIndirectDeviceAddressNV;
13366
0
        return true;
13367
0
    }
13368
13369
    // ---- VK_OHOS_external_memory extension commands
13370
#if defined(VK_USE_PLATFORM_OHOS)
13371
    if (!strcmp("vkGetNativeBufferPropertiesOHOS", name)) {
13372
        *addr = (void *)GetNativeBufferPropertiesOHOS;
13373
        return true;
13374
    }
13375
#endif // VK_USE_PLATFORM_OHOS
13376
#if defined(VK_USE_PLATFORM_OHOS)
13377
    if (!strcmp("vkGetMemoryNativeBufferOHOS", name)) {
13378
        *addr = (void *)GetMemoryNativeBufferOHOS;
13379
        return true;
13380
    }
13381
#endif // VK_USE_PLATFORM_OHOS
13382
13383
    // ---- VK_EXT_extended_dynamic_state3 extension commands
13384
0
    if (!strcmp("vkCmdSetDepthClampEnableEXT", name)) {
13385
0
        *addr = (void *)CmdSetDepthClampEnableEXT;
13386
0
        return true;
13387
0
    }
13388
0
    if (!strcmp("vkCmdSetPolygonModeEXT", name)) {
13389
0
        *addr = (void *)CmdSetPolygonModeEXT;
13390
0
        return true;
13391
0
    }
13392
0
    if (!strcmp("vkCmdSetRasterizationSamplesEXT", name)) {
13393
0
        *addr = (void *)CmdSetRasterizationSamplesEXT;
13394
0
        return true;
13395
0
    }
13396
0
    if (!strcmp("vkCmdSetSampleMaskEXT", name)) {
13397
0
        *addr = (void *)CmdSetSampleMaskEXT;
13398
0
        return true;
13399
0
    }
13400
0
    if (!strcmp("vkCmdSetAlphaToCoverageEnableEXT", name)) {
13401
0
        *addr = (void *)CmdSetAlphaToCoverageEnableEXT;
13402
0
        return true;
13403
0
    }
13404
0
    if (!strcmp("vkCmdSetAlphaToOneEnableEXT", name)) {
13405
0
        *addr = (void *)CmdSetAlphaToOneEnableEXT;
13406
0
        return true;
13407
0
    }
13408
0
    if (!strcmp("vkCmdSetLogicOpEnableEXT", name)) {
13409
0
        *addr = (void *)CmdSetLogicOpEnableEXT;
13410
0
        return true;
13411
0
    }
13412
0
    if (!strcmp("vkCmdSetColorBlendEnableEXT", name)) {
13413
0
        *addr = (void *)CmdSetColorBlendEnableEXT;
13414
0
        return true;
13415
0
    }
13416
0
    if (!strcmp("vkCmdSetColorBlendEquationEXT", name)) {
13417
0
        *addr = (void *)CmdSetColorBlendEquationEXT;
13418
0
        return true;
13419
0
    }
13420
0
    if (!strcmp("vkCmdSetColorWriteMaskEXT", name)) {
13421
0
        *addr = (void *)CmdSetColorWriteMaskEXT;
13422
0
        return true;
13423
0
    }
13424
0
    if (!strcmp("vkCmdSetTessellationDomainOriginEXT", name)) {
13425
0
        *addr = (void *)CmdSetTessellationDomainOriginEXT;
13426
0
        return true;
13427
0
    }
13428
0
    if (!strcmp("vkCmdSetRasterizationStreamEXT", name)) {
13429
0
        *addr = (void *)CmdSetRasterizationStreamEXT;
13430
0
        return true;
13431
0
    }
13432
0
    if (!strcmp("vkCmdSetConservativeRasterizationModeEXT", name)) {
13433
0
        *addr = (void *)CmdSetConservativeRasterizationModeEXT;
13434
0
        return true;
13435
0
    }
13436
0
    if (!strcmp("vkCmdSetExtraPrimitiveOverestimationSizeEXT", name)) {
13437
0
        *addr = (void *)CmdSetExtraPrimitiveOverestimationSizeEXT;
13438
0
        return true;
13439
0
    }
13440
0
    if (!strcmp("vkCmdSetDepthClipEnableEXT", name)) {
13441
0
        *addr = (void *)CmdSetDepthClipEnableEXT;
13442
0
        return true;
13443
0
    }
13444
0
    if (!strcmp("vkCmdSetSampleLocationsEnableEXT", name)) {
13445
0
        *addr = (void *)CmdSetSampleLocationsEnableEXT;
13446
0
        return true;
13447
0
    }
13448
0
    if (!strcmp("vkCmdSetColorBlendAdvancedEXT", name)) {
13449
0
        *addr = (void *)CmdSetColorBlendAdvancedEXT;
13450
0
        return true;
13451
0
    }
13452
0
    if (!strcmp("vkCmdSetProvokingVertexModeEXT", name)) {
13453
0
        *addr = (void *)CmdSetProvokingVertexModeEXT;
13454
0
        return true;
13455
0
    }
13456
0
    if (!strcmp("vkCmdSetLineRasterizationModeEXT", name)) {
13457
0
        *addr = (void *)CmdSetLineRasterizationModeEXT;
13458
0
        return true;
13459
0
    }
13460
0
    if (!strcmp("vkCmdSetLineStippleEnableEXT", name)) {
13461
0
        *addr = (void *)CmdSetLineStippleEnableEXT;
13462
0
        return true;
13463
0
    }
13464
0
    if (!strcmp("vkCmdSetDepthClipNegativeOneToOneEXT", name)) {
13465
0
        *addr = (void *)CmdSetDepthClipNegativeOneToOneEXT;
13466
0
        return true;
13467
0
    }
13468
0
    if (!strcmp("vkCmdSetViewportWScalingEnableNV", name)) {
13469
0
        *addr = (void *)CmdSetViewportWScalingEnableNV;
13470
0
        return true;
13471
0
    }
13472
0
    if (!strcmp("vkCmdSetViewportSwizzleNV", name)) {
13473
0
        *addr = (void *)CmdSetViewportSwizzleNV;
13474
0
        return true;
13475
0
    }
13476
0
    if (!strcmp("vkCmdSetCoverageToColorEnableNV", name)) {
13477
0
        *addr = (void *)CmdSetCoverageToColorEnableNV;
13478
0
        return true;
13479
0
    }
13480
0
    if (!strcmp("vkCmdSetCoverageToColorLocationNV", name)) {
13481
0
        *addr = (void *)CmdSetCoverageToColorLocationNV;
13482
0
        return true;
13483
0
    }
13484
0
    if (!strcmp("vkCmdSetCoverageModulationModeNV", name)) {
13485
0
        *addr = (void *)CmdSetCoverageModulationModeNV;
13486
0
        return true;
13487
0
    }
13488
0
    if (!strcmp("vkCmdSetCoverageModulationTableEnableNV", name)) {
13489
0
        *addr = (void *)CmdSetCoverageModulationTableEnableNV;
13490
0
        return true;
13491
0
    }
13492
0
    if (!strcmp("vkCmdSetCoverageModulationTableNV", name)) {
13493
0
        *addr = (void *)CmdSetCoverageModulationTableNV;
13494
0
        return true;
13495
0
    }
13496
0
    if (!strcmp("vkCmdSetShadingRateImageEnableNV", name)) {
13497
0
        *addr = (void *)CmdSetShadingRateImageEnableNV;
13498
0
        return true;
13499
0
    }
13500
0
    if (!strcmp("vkCmdSetRepresentativeFragmentTestEnableNV", name)) {
13501
0
        *addr = (void *)CmdSetRepresentativeFragmentTestEnableNV;
13502
0
        return true;
13503
0
    }
13504
0
    if (!strcmp("vkCmdSetCoverageReductionModeNV", name)) {
13505
0
        *addr = (void *)CmdSetCoverageReductionModeNV;
13506
0
        return true;
13507
0
    }
13508
13509
    // ---- VK_ARM_tensors extension commands
13510
0
    if (!strcmp("vkCreateTensorARM", name)) {
13511
0
        *addr = (void *)CreateTensorARM;
13512
0
        return true;
13513
0
    }
13514
0
    if (!strcmp("vkDestroyTensorARM", name)) {
13515
0
        *addr = (void *)DestroyTensorARM;
13516
0
        return true;
13517
0
    }
13518
0
    if (!strcmp("vkCreateTensorViewARM", name)) {
13519
0
        *addr = (void *)CreateTensorViewARM;
13520
0
        return true;
13521
0
    }
13522
0
    if (!strcmp("vkDestroyTensorViewARM", name)) {
13523
0
        *addr = (void *)DestroyTensorViewARM;
13524
0
        return true;
13525
0
    }
13526
0
    if (!strcmp("vkGetTensorMemoryRequirementsARM", name)) {
13527
0
        *addr = (void *)GetTensorMemoryRequirementsARM;
13528
0
        return true;
13529
0
    }
13530
0
    if (!strcmp("vkBindTensorMemoryARM", name)) {
13531
0
        *addr = (void *)BindTensorMemoryARM;
13532
0
        return true;
13533
0
    }
13534
0
    if (!strcmp("vkGetDeviceTensorMemoryRequirementsARM", name)) {
13535
0
        *addr = (void *)GetDeviceTensorMemoryRequirementsARM;
13536
0
        return true;
13537
0
    }
13538
0
    if (!strcmp("vkCmdCopyTensorARM", name)) {
13539
0
        *addr = (void *)CmdCopyTensorARM;
13540
0
        return true;
13541
0
    }
13542
0
    if (!strcmp("vkGetPhysicalDeviceExternalTensorPropertiesARM", name)) {
13543
0
        *addr = (void *)GetPhysicalDeviceExternalTensorPropertiesARM;
13544
0
        return true;
13545
0
    }
13546
0
    if (!strcmp("vkGetTensorOpaqueCaptureDescriptorDataARM", name)) {
13547
0
        *addr = (void *)GetTensorOpaqueCaptureDescriptorDataARM;
13548
0
        return true;
13549
0
    }
13550
0
    if (!strcmp("vkGetTensorViewOpaqueCaptureDescriptorDataARM", name)) {
13551
0
        *addr = (void *)GetTensorViewOpaqueCaptureDescriptorDataARM;
13552
0
        return true;
13553
0
    }
13554
13555
    // ---- VK_EXT_shader_module_identifier extension commands
13556
0
    if (!strcmp("vkGetShaderModuleIdentifierEXT", name)) {
13557
0
        *addr = (void *)GetShaderModuleIdentifierEXT;
13558
0
        return true;
13559
0
    }
13560
0
    if (!strcmp("vkGetShaderModuleCreateInfoIdentifierEXT", name)) {
13561
0
        *addr = (void *)GetShaderModuleCreateInfoIdentifierEXT;
13562
0
        return true;
13563
0
    }
13564
13565
    // ---- VK_NV_optical_flow extension commands
13566
0
    if (!strcmp("vkGetPhysicalDeviceOpticalFlowImageFormatsNV", name)) {
13567
0
        *addr = (void *)GetPhysicalDeviceOpticalFlowImageFormatsNV;
13568
0
        return true;
13569
0
    }
13570
0
    if (!strcmp("vkCreateOpticalFlowSessionNV", name)) {
13571
0
        *addr = (void *)CreateOpticalFlowSessionNV;
13572
0
        return true;
13573
0
    }
13574
0
    if (!strcmp("vkDestroyOpticalFlowSessionNV", name)) {
13575
0
        *addr = (void *)DestroyOpticalFlowSessionNV;
13576
0
        return true;
13577
0
    }
13578
0
    if (!strcmp("vkBindOpticalFlowSessionImageNV", name)) {
13579
0
        *addr = (void *)BindOpticalFlowSessionImageNV;
13580
0
        return true;
13581
0
    }
13582
0
    if (!strcmp("vkCmdOpticalFlowExecuteNV", name)) {
13583
0
        *addr = (void *)CmdOpticalFlowExecuteNV;
13584
0
        return true;
13585
0
    }
13586
13587
    // ---- VK_AMD_anti_lag extension commands
13588
0
    if (!strcmp("vkAntiLagUpdateAMD", name)) {
13589
0
        *addr = (void *)AntiLagUpdateAMD;
13590
0
        return true;
13591
0
    }
13592
13593
    // ---- VK_EXT_shader_object extension commands
13594
0
    if (!strcmp("vkCreateShadersEXT", name)) {
13595
0
        *addr = (void *)CreateShadersEXT;
13596
0
        return true;
13597
0
    }
13598
0
    if (!strcmp("vkDestroyShaderEXT", name)) {
13599
0
        *addr = (void *)DestroyShaderEXT;
13600
0
        return true;
13601
0
    }
13602
0
    if (!strcmp("vkGetShaderBinaryDataEXT", name)) {
13603
0
        *addr = (void *)GetShaderBinaryDataEXT;
13604
0
        return true;
13605
0
    }
13606
0
    if (!strcmp("vkCmdBindShadersEXT", name)) {
13607
0
        *addr = (void *)CmdBindShadersEXT;
13608
0
        return true;
13609
0
    }
13610
0
    if (!strcmp("vkCmdSetDepthClampRangeEXT", name)) {
13611
0
        *addr = (void *)CmdSetDepthClampRangeEXT;
13612
0
        return true;
13613
0
    }
13614
13615
    // ---- VK_QCOM_tile_properties extension commands
13616
0
    if (!strcmp("vkGetFramebufferTilePropertiesQCOM", name)) {
13617
0
        *addr = (void *)GetFramebufferTilePropertiesQCOM;
13618
0
        return true;
13619
0
    }
13620
0
    if (!strcmp("vkGetDynamicRenderingTilePropertiesQCOM", name)) {
13621
0
        *addr = (void *)GetDynamicRenderingTilePropertiesQCOM;
13622
0
        return true;
13623
0
    }
13624
13625
    // ---- VK_NV_cooperative_vector extension commands
13626
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeVectorPropertiesNV", name)) {
13627
0
        *addr = (void *)GetPhysicalDeviceCooperativeVectorPropertiesNV;
13628
0
        return true;
13629
0
    }
13630
0
    if (!strcmp("vkConvertCooperativeVectorMatrixNV", name)) {
13631
0
        *addr = (void *)ConvertCooperativeVectorMatrixNV;
13632
0
        return true;
13633
0
    }
13634
0
    if (!strcmp("vkCmdConvertCooperativeVectorMatrixNV", name)) {
13635
0
        *addr = (void *)CmdConvertCooperativeVectorMatrixNV;
13636
0
        return true;
13637
0
    }
13638
13639
    // ---- VK_NV_low_latency2 extension commands
13640
0
    if (!strcmp("vkSetLatencySleepModeNV", name)) {
13641
0
        *addr = (void *)SetLatencySleepModeNV;
13642
0
        return true;
13643
0
    }
13644
0
    if (!strcmp("vkLatencySleepNV", name)) {
13645
0
        *addr = (void *)LatencySleepNV;
13646
0
        return true;
13647
0
    }
13648
0
    if (!strcmp("vkSetLatencyMarkerNV", name)) {
13649
0
        *addr = (void *)SetLatencyMarkerNV;
13650
0
        return true;
13651
0
    }
13652
0
    if (!strcmp("vkGetLatencyTimingsNV", name)) {
13653
0
        *addr = (void *)GetLatencyTimingsNV;
13654
0
        return true;
13655
0
    }
13656
0
    if (!strcmp("vkQueueNotifyOutOfBandNV", name)) {
13657
0
        *addr = (void *)QueueNotifyOutOfBandNV;
13658
0
        return true;
13659
0
    }
13660
13661
    // ---- VK_ARM_data_graph extension commands
13662
0
    if (!strcmp("vkCreateDataGraphPipelinesARM", name)) {
13663
0
        *addr = (void *)CreateDataGraphPipelinesARM;
13664
0
        return true;
13665
0
    }
13666
0
    if (!strcmp("vkCreateDataGraphPipelineSessionARM", name)) {
13667
0
        *addr = (void *)CreateDataGraphPipelineSessionARM;
13668
0
        return true;
13669
0
    }
13670
0
    if (!strcmp("vkGetDataGraphPipelineSessionBindPointRequirementsARM", name)) {
13671
0
        *addr = (void *)GetDataGraphPipelineSessionBindPointRequirementsARM;
13672
0
        return true;
13673
0
    }
13674
0
    if (!strcmp("vkGetDataGraphPipelineSessionMemoryRequirementsARM", name)) {
13675
0
        *addr = (void *)GetDataGraphPipelineSessionMemoryRequirementsARM;
13676
0
        return true;
13677
0
    }
13678
0
    if (!strcmp("vkBindDataGraphPipelineSessionMemoryARM", name)) {
13679
0
        *addr = (void *)BindDataGraphPipelineSessionMemoryARM;
13680
0
        return true;
13681
0
    }
13682
0
    if (!strcmp("vkDestroyDataGraphPipelineSessionARM", name)) {
13683
0
        *addr = (void *)DestroyDataGraphPipelineSessionARM;
13684
0
        return true;
13685
0
    }
13686
0
    if (!strcmp("vkCmdDispatchDataGraphARM", name)) {
13687
0
        *addr = (void *)CmdDispatchDataGraphARM;
13688
0
        return true;
13689
0
    }
13690
0
    if (!strcmp("vkGetDataGraphPipelineAvailablePropertiesARM", name)) {
13691
0
        *addr = (void *)GetDataGraphPipelineAvailablePropertiesARM;
13692
0
        return true;
13693
0
    }
13694
0
    if (!strcmp("vkGetDataGraphPipelinePropertiesARM", name)) {
13695
0
        *addr = (void *)GetDataGraphPipelinePropertiesARM;
13696
0
        return true;
13697
0
    }
13698
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM", name)) {
13699
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM;
13700
0
        return true;
13701
0
    }
13702
0
    if (!strcmp("vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM", name)) {
13703
0
        *addr = (void *)GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM;
13704
0
        return true;
13705
0
    }
13706
13707
    // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
13708
0
    if (!strcmp("vkCmdSetAttachmentFeedbackLoopEnableEXT", name)) {
13709
0
        *addr = (void *)CmdSetAttachmentFeedbackLoopEnableEXT;
13710
0
        return true;
13711
0
    }
13712
13713
    // ---- VK_QNX_external_memory_screen_buffer extension commands
13714
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
13715
    if (!strcmp("vkGetScreenBufferPropertiesQNX", name)) {
13716
        *addr = (void *)GetScreenBufferPropertiesQNX;
13717
        return true;
13718
    }
13719
#endif // VK_USE_PLATFORM_SCREEN_QNX
13720
13721
    // ---- VK_QCOM_tile_memory_heap extension commands
13722
0
    if (!strcmp("vkCmdBindTileMemoryQCOM", name)) {
13723
0
        *addr = (void *)CmdBindTileMemoryQCOM;
13724
0
        return true;
13725
0
    }
13726
13727
    // ---- VK_EXT_memory_decompression extension commands
13728
0
    if (!strcmp("vkCmdDecompressMemoryEXT", name)) {
13729
0
        *addr = (void *)CmdDecompressMemoryEXT;
13730
0
        return true;
13731
0
    }
13732
0
    if (!strcmp("vkCmdDecompressMemoryIndirectCountEXT", name)) {
13733
0
        *addr = (void *)CmdDecompressMemoryIndirectCountEXT;
13734
0
        return true;
13735
0
    }
13736
13737
    // ---- VK_NV_external_compute_queue extension commands
13738
0
    if (!strcmp("vkCreateExternalComputeQueueNV", name)) {
13739
0
        *addr = (void *)CreateExternalComputeQueueNV;
13740
0
        return true;
13741
0
    }
13742
0
    if (!strcmp("vkDestroyExternalComputeQueueNV", name)) {
13743
0
        *addr = (void *)DestroyExternalComputeQueueNV;
13744
0
        return true;
13745
0
    }
13746
0
    if (!strcmp("vkGetExternalComputeQueueDataNV", name)) {
13747
0
        *addr = (void *)GetExternalComputeQueueDataNV;
13748
0
        return true;
13749
0
    }
13750
13751
    // ---- VK_NV_cluster_acceleration_structure extension commands
13752
0
    if (!strcmp("vkGetClusterAccelerationStructureBuildSizesNV", name)) {
13753
0
        *addr = (void *)GetClusterAccelerationStructureBuildSizesNV;
13754
0
        return true;
13755
0
    }
13756
0
    if (!strcmp("vkCmdBuildClusterAccelerationStructureIndirectNV", name)) {
13757
0
        *addr = (void *)CmdBuildClusterAccelerationStructureIndirectNV;
13758
0
        return true;
13759
0
    }
13760
13761
    // ---- VK_NV_partitioned_acceleration_structure extension commands
13762
0
    if (!strcmp("vkGetPartitionedAccelerationStructuresBuildSizesNV", name)) {
13763
0
        *addr = (void *)GetPartitionedAccelerationStructuresBuildSizesNV;
13764
0
        return true;
13765
0
    }
13766
0
    if (!strcmp("vkCmdBuildPartitionedAccelerationStructuresNV", name)) {
13767
0
        *addr = (void *)CmdBuildPartitionedAccelerationStructuresNV;
13768
0
        return true;
13769
0
    }
13770
13771
    // ---- VK_EXT_device_generated_commands extension commands
13772
0
    if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsEXT", name)) {
13773
0
        *addr = (void *)GetGeneratedCommandsMemoryRequirementsEXT;
13774
0
        return true;
13775
0
    }
13776
0
    if (!strcmp("vkCmdPreprocessGeneratedCommandsEXT", name)) {
13777
0
        *addr = (void *)CmdPreprocessGeneratedCommandsEXT;
13778
0
        return true;
13779
0
    }
13780
0
    if (!strcmp("vkCmdExecuteGeneratedCommandsEXT", name)) {
13781
0
        *addr = (void *)CmdExecuteGeneratedCommandsEXT;
13782
0
        return true;
13783
0
    }
13784
0
    if (!strcmp("vkCreateIndirectCommandsLayoutEXT", name)) {
13785
0
        *addr = (void *)CreateIndirectCommandsLayoutEXT;
13786
0
        return true;
13787
0
    }
13788
0
    if (!strcmp("vkDestroyIndirectCommandsLayoutEXT", name)) {
13789
0
        *addr = (void *)DestroyIndirectCommandsLayoutEXT;
13790
0
        return true;
13791
0
    }
13792
0
    if (!strcmp("vkCreateIndirectExecutionSetEXT", name)) {
13793
0
        *addr = (void *)CreateIndirectExecutionSetEXT;
13794
0
        return true;
13795
0
    }
13796
0
    if (!strcmp("vkDestroyIndirectExecutionSetEXT", name)) {
13797
0
        *addr = (void *)DestroyIndirectExecutionSetEXT;
13798
0
        return true;
13799
0
    }
13800
0
    if (!strcmp("vkUpdateIndirectExecutionSetPipelineEXT", name)) {
13801
0
        *addr = (void *)UpdateIndirectExecutionSetPipelineEXT;
13802
0
        return true;
13803
0
    }
13804
0
    if (!strcmp("vkUpdateIndirectExecutionSetShaderEXT", name)) {
13805
0
        *addr = (void *)UpdateIndirectExecutionSetShaderEXT;
13806
0
        return true;
13807
0
    }
13808
13809
    // ---- VK_OHOS_surface extension commands
13810
#if defined(VK_USE_PLATFORM_OHOS)
13811
    if (!strcmp("vkCreateSurfaceOHOS", name)) {
13812
        *addr = (ptr_instance->enabled_extensions.ohos_surface == 1)
13813
                     ? (void *)CreateSurfaceOHOS
13814
                     : NULL;
13815
        return true;
13816
    }
13817
#endif // VK_USE_PLATFORM_OHOS
13818
13819
    // ---- VK_OHOS_native_buffer extension commands
13820
#if defined(VK_USE_PLATFORM_OHOS)
13821
    if (!strcmp("vkGetSwapchainGrallocUsageOHOS", name)) {
13822
        *addr = (void *)GetSwapchainGrallocUsageOHOS;
13823
        return true;
13824
    }
13825
#endif // VK_USE_PLATFORM_OHOS
13826
#if defined(VK_USE_PLATFORM_OHOS)
13827
    if (!strcmp("vkAcquireImageOHOS", name)) {
13828
        *addr = (void *)AcquireImageOHOS;
13829
        return true;
13830
    }
13831
#endif // VK_USE_PLATFORM_OHOS
13832
#if defined(VK_USE_PLATFORM_OHOS)
13833
    if (!strcmp("vkQueueSignalReleaseImageOHOS", name)) {
13834
        *addr = (void *)QueueSignalReleaseImageOHOS;
13835
        return true;
13836
    }
13837
#endif // VK_USE_PLATFORM_OHOS
13838
13839
    // ---- VK_NV_cooperative_matrix2 extension commands
13840
0
    if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV", name)) {
13841
0
        *addr = (void *)GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
13842
0
        return true;
13843
0
    }
13844
13845
    // ---- VK_EXT_external_memory_metal extension commands
13846
#if defined(VK_USE_PLATFORM_METAL_EXT)
13847
    if (!strcmp("vkGetMemoryMetalHandleEXT", name)) {
13848
        *addr = (void *)GetMemoryMetalHandleEXT;
13849
        return true;
13850
    }
13851
#endif // VK_USE_PLATFORM_METAL_EXT
13852
#if defined(VK_USE_PLATFORM_METAL_EXT)
13853
    if (!strcmp("vkGetMemoryMetalHandlePropertiesEXT", name)) {
13854
        *addr = (void *)GetMemoryMetalHandlePropertiesEXT;
13855
        return true;
13856
    }
13857
#endif // VK_USE_PLATFORM_METAL_EXT
13858
13859
    // ---- VK_ARM_performance_counters_by_region extension commands
13860
0
    if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM", name)) {
13861
0
        *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM;
13862
0
        return true;
13863
0
    }
13864
13865
    // ---- VK_EXT_fragment_density_map_offset extension commands
13866
0
    if (!strcmp("vkCmdEndRendering2EXT", name)) {
13867
0
        *addr = (void *)CmdEndRendering2EXT;
13868
0
        return true;
13869
0
    }
13870
13871
    // ---- VK_EXT_custom_resolve extension commands
13872
0
    if (!strcmp("vkCmdBeginCustomResolveEXT", name)) {
13873
0
        *addr = (void *)CmdBeginCustomResolveEXT;
13874
0
        return true;
13875
0
    }
13876
13877
    // ---- VK_NV_compute_occupancy_priority extension commands
13878
0
    if (!strcmp("vkCmdSetComputeOccupancyPriorityNV", name)) {
13879
0
        *addr = (void *)CmdSetComputeOccupancyPriorityNV;
13880
0
        return true;
13881
0
    }
13882
13883
    // ---- VK_KHR_acceleration_structure extension commands
13884
0
    if (!strcmp("vkCreateAccelerationStructureKHR", name)) {
13885
0
        *addr = (void *)CreateAccelerationStructureKHR;
13886
0
        return true;
13887
0
    }
13888
0
    if (!strcmp("vkDestroyAccelerationStructureKHR", name)) {
13889
0
        *addr = (void *)DestroyAccelerationStructureKHR;
13890
0
        return true;
13891
0
    }
13892
0
    if (!strcmp("vkCmdBuildAccelerationStructuresKHR", name)) {
13893
0
        *addr = (void *)CmdBuildAccelerationStructuresKHR;
13894
0
        return true;
13895
0
    }
13896
0
    if (!strcmp("vkCmdBuildAccelerationStructuresIndirectKHR", name)) {
13897
0
        *addr = (void *)CmdBuildAccelerationStructuresIndirectKHR;
13898
0
        return true;
13899
0
    }
13900
0
    if (!strcmp("vkBuildAccelerationStructuresKHR", name)) {
13901
0
        *addr = (void *)BuildAccelerationStructuresKHR;
13902
0
        return true;
13903
0
    }
13904
0
    if (!strcmp("vkCopyAccelerationStructureKHR", name)) {
13905
0
        *addr = (void *)CopyAccelerationStructureKHR;
13906
0
        return true;
13907
0
    }
13908
0
    if (!strcmp("vkCopyAccelerationStructureToMemoryKHR", name)) {
13909
0
        *addr = (void *)CopyAccelerationStructureToMemoryKHR;
13910
0
        return true;
13911
0
    }
13912
0
    if (!strcmp("vkCopyMemoryToAccelerationStructureKHR", name)) {
13913
0
        *addr = (void *)CopyMemoryToAccelerationStructureKHR;
13914
0
        return true;
13915
0
    }
13916
0
    if (!strcmp("vkWriteAccelerationStructuresPropertiesKHR", name)) {
13917
0
        *addr = (void *)WriteAccelerationStructuresPropertiesKHR;
13918
0
        return true;
13919
0
    }
13920
0
    if (!strcmp("vkCmdCopyAccelerationStructureKHR", name)) {
13921
0
        *addr = (void *)CmdCopyAccelerationStructureKHR;
13922
0
        return true;
13923
0
    }
13924
0
    if (!strcmp("vkCmdCopyAccelerationStructureToMemoryKHR", name)) {
13925
0
        *addr = (void *)CmdCopyAccelerationStructureToMemoryKHR;
13926
0
        return true;
13927
0
    }
13928
0
    if (!strcmp("vkCmdCopyMemoryToAccelerationStructureKHR", name)) {
13929
0
        *addr = (void *)CmdCopyMemoryToAccelerationStructureKHR;
13930
0
        return true;
13931
0
    }
13932
0
    if (!strcmp("vkGetAccelerationStructureDeviceAddressKHR", name)) {
13933
0
        *addr = (void *)GetAccelerationStructureDeviceAddressKHR;
13934
0
        return true;
13935
0
    }
13936
0
    if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesKHR", name)) {
13937
0
        *addr = (void *)CmdWriteAccelerationStructuresPropertiesKHR;
13938
0
        return true;
13939
0
    }
13940
0
    if (!strcmp("vkGetDeviceAccelerationStructureCompatibilityKHR", name)) {
13941
0
        *addr = (void *)GetDeviceAccelerationStructureCompatibilityKHR;
13942
0
        return true;
13943
0
    }
13944
0
    if (!strcmp("vkGetAccelerationStructureBuildSizesKHR", name)) {
13945
0
        *addr = (void *)GetAccelerationStructureBuildSizesKHR;
13946
0
        return true;
13947
0
    }
13948
13949
    // ---- VK_KHR_ray_tracing_pipeline extension commands
13950
0
    if (!strcmp("vkCmdTraceRaysKHR", name)) {
13951
0
        *addr = (void *)CmdTraceRaysKHR;
13952
0
        return true;
13953
0
    }
13954
0
    if (!strcmp("vkCreateRayTracingPipelinesKHR", name)) {
13955
0
        *addr = (void *)CreateRayTracingPipelinesKHR;
13956
0
        return true;
13957
0
    }
13958
0
    if (!strcmp("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", name)) {
13959
0
        *addr = (void *)GetRayTracingCaptureReplayShaderGroupHandlesKHR;
13960
0
        return true;
13961
0
    }
13962
0
    if (!strcmp("vkCmdTraceRaysIndirectKHR", name)) {
13963
0
        *addr = (void *)CmdTraceRaysIndirectKHR;
13964
0
        return true;
13965
0
    }
13966
0
    if (!strcmp("vkGetRayTracingShaderGroupStackSizeKHR", name)) {
13967
0
        *addr = (void *)GetRayTracingShaderGroupStackSizeKHR;
13968
0
        return true;
13969
0
    }
13970
0
    if (!strcmp("vkCmdSetRayTracingPipelineStackSizeKHR", name)) {
13971
0
        *addr = (void *)CmdSetRayTracingPipelineStackSizeKHR;
13972
0
        return true;
13973
0
    }
13974
13975
    // ---- VK_EXT_mesh_shader extension commands
13976
0
    if (!strcmp("vkCmdDrawMeshTasksEXT", name)) {
13977
0
        *addr = (void *)CmdDrawMeshTasksEXT;
13978
0
        return true;
13979
0
    }
13980
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectEXT", name)) {
13981
0
        *addr = (void *)CmdDrawMeshTasksIndirectEXT;
13982
0
        return true;
13983
0
    }
13984
0
    if (!strcmp("vkCmdDrawMeshTasksIndirectCountEXT", name)) {
13985
0
        *addr = (void *)CmdDrawMeshTasksIndirectCountEXT;
13986
0
        return true;
13987
0
    }
13988
0
    return false;
13989
0
}
13990
13991
// Used to keep track of all enabled instance extensions
13992
0
void fill_out_enabled_instance_extensions(uint32_t extension_count, const char *const * extension_list, struct loader_instance_extension_enable_list* enables) {
13993
0
    for (uint32_t i = 0; i < extension_count; i++) {
13994
13995
    // ---- VK_KHR_surface extension commands
13996
0
        if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_EXTENSION_NAME)) { enables->khr_surface = 1; }
13997
13998
    // ---- VK_KHR_display extension commands
13999
0
        else if (0 == strcmp(extension_list[i], VK_KHR_DISPLAY_EXTENSION_NAME)) { enables->khr_display = 1; }
14000
14001
    // ---- VK_KHR_xlib_surface extension commands
14002
0
#if defined(VK_USE_PLATFORM_XLIB_KHR)
14003
0
        else if (0 == strcmp(extension_list[i], VK_KHR_XLIB_SURFACE_EXTENSION_NAME)) { enables->khr_xlib_surface = 1; }
14004
0
#endif // VK_USE_PLATFORM_XLIB_KHR
14005
14006
    // ---- VK_KHR_xcb_surface extension commands
14007
0
#if defined(VK_USE_PLATFORM_XCB_KHR)
14008
0
        else if (0 == strcmp(extension_list[i], VK_KHR_XCB_SURFACE_EXTENSION_NAME)) { enables->khr_xcb_surface = 1; }
14009
0
#endif // VK_USE_PLATFORM_XCB_KHR
14010
14011
    // ---- VK_KHR_wayland_surface extension commands
14012
0
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
14013
0
        else if (0 == strcmp(extension_list[i], VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME)) { enables->khr_wayland_surface = 1; }
14014
0
#endif // VK_USE_PLATFORM_WAYLAND_KHR
14015
14016
    // ---- VK_KHR_android_surface extension commands
14017
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
14018
        else if (0 == strcmp(extension_list[i], VK_KHR_ANDROID_SURFACE_EXTENSION_NAME)) { enables->khr_android_surface = 1; }
14019
#endif // VK_USE_PLATFORM_ANDROID_KHR
14020
14021
    // ---- VK_KHR_win32_surface extension commands
14022
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14023
        else if (0 == strcmp(extension_list[i], VK_KHR_WIN32_SURFACE_EXTENSION_NAME)) { enables->khr_win32_surface = 1; }
14024
#endif // VK_USE_PLATFORM_WIN32_KHR
14025
14026
    // ---- VK_KHR_get_physical_device_properties2 extension commands
14027
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) { enables->khr_get_physical_device_properties2 = 1; }
14028
14029
    // ---- VK_KHR_device_group_creation extension commands
14030
0
        else if (0 == strcmp(extension_list[i], VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)) { enables->khr_device_group_creation = 1; }
14031
14032
    // ---- VK_KHR_external_memory_capabilities extension commands
14033
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_memory_capabilities = 1; }
14034
14035
    // ---- VK_KHR_external_semaphore_capabilities extension commands
14036
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_semaphore_capabilities = 1; }
14037
14038
    // ---- VK_KHR_external_fence_capabilities extension commands
14039
0
        else if (0 == strcmp(extension_list[i], VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME)) { enables->khr_external_fence_capabilities = 1; }
14040
14041
    // ---- VK_KHR_get_surface_capabilities2 extension commands
14042
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME)) { enables->khr_get_surface_capabilities2 = 1; }
14043
14044
    // ---- VK_KHR_get_display_properties2 extension commands
14045
0
        else if (0 == strcmp(extension_list[i], VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME)) { enables->khr_get_display_properties2 = 1; }
14046
14047
    // ---- VK_KHR_surface_protected_capabilities extension commands
14048
0
        else if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME)) { enables->khr_surface_protected_capabilities = 1; }
14049
14050
    // ---- VK_KHR_portability_enumeration extension commands
14051
0
        else if (0 == strcmp(extension_list[i], VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME)) { enables->khr_portability_enumeration = 1; }
14052
14053
    // ---- VK_KHR_surface_maintenance1 extension commands
14054
0
        else if (0 == strcmp(extension_list[i], VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME)) { enables->khr_surface_maintenance1 = 1; }
14055
14056
    // ---- VK_EXT_debug_report extension commands
14057
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DEBUG_REPORT_EXTENSION_NAME)) { enables->ext_debug_report = 1; }
14058
14059
    // ---- VK_GGP_stream_descriptor_surface extension commands
14060
#if defined(VK_USE_PLATFORM_GGP)
14061
        else if (0 == strcmp(extension_list[i], VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME)) { enables->ggp_stream_descriptor_surface = 1; }
14062
#endif // VK_USE_PLATFORM_GGP
14063
14064
    // ---- VK_NV_external_memory_capabilities extension commands
14065
0
        else if (0 == strcmp(extension_list[i], VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) { enables->nv_external_memory_capabilities = 1; }
14066
14067
    // ---- VK_EXT_validation_flags extension commands
14068
0
        else if (0 == strcmp(extension_list[i], VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME)) { enables->ext_validation_flags = 1; }
14069
14070
    // ---- VK_NN_vi_surface extension commands
14071
#if defined(VK_USE_PLATFORM_VI_NN)
14072
        else if (0 == strcmp(extension_list[i], VK_NN_VI_SURFACE_EXTENSION_NAME)) { enables->nn_vi_surface = 1; }
14073
#endif // VK_USE_PLATFORM_VI_NN
14074
14075
    // ---- VK_EXT_direct_mode_display extension commands
14076
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)) { enables->ext_direct_mode_display = 1; }
14077
14078
    // ---- VK_EXT_acquire_xlib_display extension commands
14079
0
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
14080
0
        else if (0 == strcmp(extension_list[i], VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME)) { enables->ext_acquire_xlib_display = 1; }
14081
0
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
14082
14083
    // ---- VK_EXT_display_surface_counter extension commands
14084
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)) { enables->ext_display_surface_counter = 1; }
14085
14086
    // ---- VK_EXT_swapchain_colorspace extension commands
14087
0
        else if (0 == strcmp(extension_list[i], VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME)) { enables->ext_swapchain_colorspace = 1; }
14088
14089
    // ---- VK_MVK_ios_surface extension commands
14090
#if defined(VK_USE_PLATFORM_IOS_MVK)
14091
        else if (0 == strcmp(extension_list[i], VK_MVK_IOS_SURFACE_EXTENSION_NAME)) { enables->mvk_ios_surface = 1; }
14092
#endif // VK_USE_PLATFORM_IOS_MVK
14093
14094
    // ---- VK_MVK_macos_surface extension commands
14095
#if defined(VK_USE_PLATFORM_MACOS_MVK)
14096
        else if (0 == strcmp(extension_list[i], VK_MVK_MACOS_SURFACE_EXTENSION_NAME)) { enables->mvk_macos_surface = 1; }
14097
#endif // VK_USE_PLATFORM_MACOS_MVK
14098
14099
    // ---- VK_EXT_debug_utils extension commands
14100
0
        else if (0 == strcmp(extension_list[i], VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) { enables->ext_debug_utils = 1; }
14101
14102
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
14103
#if defined(VK_USE_PLATFORM_FUCHSIA)
14104
        else if (0 == strcmp(extension_list[i], VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME)) { enables->fuchsia_imagepipe_surface = 1; }
14105
#endif // VK_USE_PLATFORM_FUCHSIA
14106
14107
    // ---- VK_EXT_metal_surface extension commands
14108
#if defined(VK_USE_PLATFORM_METAL_EXT)
14109
        else if (0 == strcmp(extension_list[i], VK_EXT_METAL_SURFACE_EXTENSION_NAME)) { enables->ext_metal_surface = 1; }
14110
#endif // VK_USE_PLATFORM_METAL_EXT
14111
14112
    // ---- VK_EXT_validation_features extension commands
14113
0
        else if (0 == strcmp(extension_list[i], VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME)) { enables->ext_validation_features = 1; }
14114
14115
    // ---- VK_EXT_headless_surface extension commands
14116
0
        else if (0 == strcmp(extension_list[i], VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME)) { enables->ext_headless_surface = 1; }
14117
14118
    // ---- VK_EXT_surface_maintenance1 extension commands
14119
0
        else if (0 == strcmp(extension_list[i], VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME)) { enables->ext_surface_maintenance1 = 1; }
14120
14121
    // ---- VK_EXT_acquire_drm_display extension commands
14122
0
        else if (0 == strcmp(extension_list[i], VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME)) { enables->ext_acquire_drm_display = 1; }
14123
14124
    // ---- VK_EXT_directfb_surface extension commands
14125
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
14126
        else if (0 == strcmp(extension_list[i], VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME)) { enables->ext_directfb_surface = 1; }
14127
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
14128
14129
    // ---- VK_QNX_screen_surface extension commands
14130
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14131
        else if (0 == strcmp(extension_list[i], VK_QNX_SCREEN_SURFACE_EXTENSION_NAME)) { enables->qnx_screen_surface = 1; }
14132
#endif // VK_USE_PLATFORM_SCREEN_QNX
14133
14134
    // ---- VK_GOOGLE_surfaceless_query extension commands
14135
0
        else if (0 == strcmp(extension_list[i], VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME)) { enables->google_surfaceless_query = 1; }
14136
14137
    // ---- VK_LUNARG_direct_driver_loading extension commands
14138
0
        else if (0 == strcmp(extension_list[i], VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME)) { enables->lunarg_direct_driver_loading = 1; }
14139
14140
    // ---- VK_EXT_layer_settings extension commands
14141
0
        else if (0 == strcmp(extension_list[i], VK_EXT_LAYER_SETTINGS_EXTENSION_NAME)) { enables->ext_layer_settings = 1; }
14142
14143
    // ---- VK_NV_display_stereo extension commands
14144
0
        else if (0 == strcmp(extension_list[i], VK_NV_DISPLAY_STEREO_EXTENSION_NAME)) { enables->nv_display_stereo = 1; }
14145
14146
    // ---- VK_OHOS_surface extension commands
14147
#if defined(VK_USE_PLATFORM_OHOS)
14148
        else if (0 == strcmp(extension_list[i], VK_OHOS_SURFACE_EXTENSION_NAME)) { enables->ohos_surface = 1; }
14149
#endif // VK_USE_PLATFORM_OHOS
14150
0
    }
14151
0
}
14152
14153
// Some device commands still need a terminator because the loader needs to unwrap something about them.
14154
// In many cases, the item needing unwrapping is a VkPhysicalDevice or VkSurfaceKHR object.  But there may be other items
14155
// in the future.
14156
0
PFN_vkVoidFunction get_extension_device_proc_terminator(struct loader_device *dev, const char *name, bool* found_name) {
14157
0
    *found_name = false;
14158
0
    if (!name || name[0] != 'v' || name[1] != 'k') {
14159
0
        return NULL;
14160
0
    }
14161
0
    name += 2;
14162
    // ---- VK_KHR_swapchain extension commands
14163
0
    if (!strcmp(name, "CreateSwapchainKHR")) {
14164
0
        *found_name = true;
14165
0
        return dev->driver_extensions.khr_swapchain_enabled ?
14166
0
            (PFN_vkVoidFunction)terminator_CreateSwapchainKHR : NULL;
14167
0
    }
14168
0
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) {
14169
0
        *found_name = true;
14170
0
        return dev->driver_extensions.khr_swapchain_enabled || dev->driver_extensions.khr_device_group_enabled ?
14171
0
            (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModesKHR : NULL;
14172
0
    }
14173
    // ---- VK_KHR_display_swapchain extension commands
14174
0
    if (!strcmp(name, "CreateSharedSwapchainsKHR")) {
14175
0
        *found_name = true;
14176
0
        return dev->driver_extensions.khr_display_swapchain_enabled ?
14177
0
            (PFN_vkVoidFunction)terminator_CreateSharedSwapchainsKHR : NULL;
14178
0
    }
14179
    // ---- VK_EXT_debug_marker extension commands
14180
0
    if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) {
14181
0
        *found_name = true;
14182
0
        return dev->driver_extensions.ext_debug_marker_enabled ?
14183
0
            (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectTagEXT : NULL;
14184
0
    }
14185
0
    if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) {
14186
0
        *found_name = true;
14187
0
        return dev->driver_extensions.ext_debug_marker_enabled ?
14188
0
            (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectNameEXT : NULL;
14189
0
    }
14190
    // ---- VK_EXT_debug_utils extension commands
14191
0
    if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) {
14192
0
        *found_name = true;
14193
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14194
0
            (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectNameEXT : NULL;
14195
0
    }
14196
0
    if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) {
14197
0
        *found_name = true;
14198
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14199
0
            (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectTagEXT : NULL;
14200
0
    }
14201
0
    if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) {
14202
0
        *found_name = true;
14203
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14204
0
            (PFN_vkVoidFunction)terminator_QueueBeginDebugUtilsLabelEXT : NULL;
14205
0
    }
14206
0
    if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) {
14207
0
        *found_name = true;
14208
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14209
0
            (PFN_vkVoidFunction)terminator_QueueEndDebugUtilsLabelEXT : NULL;
14210
0
    }
14211
0
    if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) {
14212
0
        *found_name = true;
14213
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14214
0
            (PFN_vkVoidFunction)terminator_QueueInsertDebugUtilsLabelEXT : NULL;
14215
0
    }
14216
0
    if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) {
14217
0
        *found_name = true;
14218
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14219
0
            (PFN_vkVoidFunction)terminator_CmdBeginDebugUtilsLabelEXT : NULL;
14220
0
    }
14221
0
    if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) {
14222
0
        *found_name = true;
14223
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14224
0
            (PFN_vkVoidFunction)terminator_CmdEndDebugUtilsLabelEXT : NULL;
14225
0
    }
14226
0
    if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) {
14227
0
        *found_name = true;
14228
0
        return dev->driver_extensions.ext_debug_utils_enabled ?
14229
0
            (PFN_vkVoidFunction)terminator_CmdInsertDebugUtilsLabelEXT : NULL;
14230
0
    }
14231
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14232
    // ---- VK_EXT_full_screen_exclusive extension commands
14233
    if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) {
14234
        *found_name = true;
14235
        return dev->driver_extensions.ext_full_screen_exclusive_enabled ?
14236
            (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModes2EXT : NULL;
14237
    }
14238
#endif // VK_USE_PLATFORM_WIN32_KHR
14239
0
    return NULL;
14240
0
}
14241
14242
// This table contains the loader's instance dispatch table, which contains
14243
// default functions if no instance layers are activated.  This contains
14244
// pointers to "terminator functions".
14245
const VkLayerInstanceDispatchTable instance_disp = {
14246
14247
    // ---- Core Vulkan 1.0 commands
14248
    .DestroyInstance = terminator_DestroyInstance,
14249
    .EnumeratePhysicalDevices = terminator_EnumeratePhysicalDevices,
14250
    .GetPhysicalDeviceFeatures = terminator_GetPhysicalDeviceFeatures,
14251
    .GetPhysicalDeviceFormatProperties = terminator_GetPhysicalDeviceFormatProperties,
14252
    .GetPhysicalDeviceImageFormatProperties = terminator_GetPhysicalDeviceImageFormatProperties,
14253
    .GetPhysicalDeviceProperties = terminator_GetPhysicalDeviceProperties,
14254
    .GetPhysicalDeviceQueueFamilyProperties = terminator_GetPhysicalDeviceQueueFamilyProperties,
14255
    .GetPhysicalDeviceMemoryProperties = terminator_GetPhysicalDeviceMemoryProperties,
14256
    .GetInstanceProcAddr = vkGetInstanceProcAddr,
14257
    .EnumerateDeviceExtensionProperties = terminator_EnumerateDeviceExtensionProperties,
14258
    .EnumerateDeviceLayerProperties = terminator_EnumerateDeviceLayerProperties,
14259
    .GetPhysicalDeviceSparseImageFormatProperties = terminator_GetPhysicalDeviceSparseImageFormatProperties,
14260
14261
    // ---- Core Vulkan 1.1 commands
14262
    .EnumeratePhysicalDeviceGroups = terminator_EnumeratePhysicalDeviceGroups,
14263
    .GetPhysicalDeviceFeatures2 = terminator_GetPhysicalDeviceFeatures2,
14264
    .GetPhysicalDeviceProperties2 = terminator_GetPhysicalDeviceProperties2,
14265
    .GetPhysicalDeviceFormatProperties2 = terminator_GetPhysicalDeviceFormatProperties2,
14266
    .GetPhysicalDeviceImageFormatProperties2 = terminator_GetPhysicalDeviceImageFormatProperties2,
14267
    .GetPhysicalDeviceQueueFamilyProperties2 = terminator_GetPhysicalDeviceQueueFamilyProperties2,
14268
    .GetPhysicalDeviceMemoryProperties2 = terminator_GetPhysicalDeviceMemoryProperties2,
14269
    .GetPhysicalDeviceSparseImageFormatProperties2 = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
14270
    .GetPhysicalDeviceExternalBufferProperties = terminator_GetPhysicalDeviceExternalBufferProperties,
14271
    .GetPhysicalDeviceExternalFenceProperties = terminator_GetPhysicalDeviceExternalFenceProperties,
14272
    .GetPhysicalDeviceExternalSemaphoreProperties = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
14273
14274
    // ---- Core Vulkan 1.3 commands
14275
    .GetPhysicalDeviceToolProperties = terminator_GetPhysicalDeviceToolProperties,
14276
14277
    // ---- VK_KHR_surface extension commands
14278
    .DestroySurfaceKHR = terminator_DestroySurfaceKHR,
14279
    .GetPhysicalDeviceSurfaceSupportKHR = terminator_GetPhysicalDeviceSurfaceSupportKHR,
14280
    .GetPhysicalDeviceSurfaceCapabilitiesKHR = terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR,
14281
    .GetPhysicalDeviceSurfaceFormatsKHR = terminator_GetPhysicalDeviceSurfaceFormatsKHR,
14282
    .GetPhysicalDeviceSurfacePresentModesKHR = terminator_GetPhysicalDeviceSurfacePresentModesKHR,
14283
14284
    // ---- VK_KHR_swapchain extension commands
14285
    .GetPhysicalDevicePresentRectanglesKHR = terminator_GetPhysicalDevicePresentRectanglesKHR,
14286
14287
    // ---- VK_KHR_display extension commands
14288
    .GetPhysicalDeviceDisplayPropertiesKHR = terminator_GetPhysicalDeviceDisplayPropertiesKHR,
14289
    .GetPhysicalDeviceDisplayPlanePropertiesKHR = terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR,
14290
    .GetDisplayPlaneSupportedDisplaysKHR = terminator_GetDisplayPlaneSupportedDisplaysKHR,
14291
    .GetDisplayModePropertiesKHR = terminator_GetDisplayModePropertiesKHR,
14292
    .CreateDisplayModeKHR = terminator_CreateDisplayModeKHR,
14293
    .GetDisplayPlaneCapabilitiesKHR = terminator_GetDisplayPlaneCapabilitiesKHR,
14294
    .CreateDisplayPlaneSurfaceKHR = terminator_CreateDisplayPlaneSurfaceKHR,
14295
14296
    // ---- VK_KHR_xlib_surface extension commands
14297
#if defined(VK_USE_PLATFORM_XLIB_KHR)
14298
    .CreateXlibSurfaceKHR = terminator_CreateXlibSurfaceKHR,
14299
#endif // VK_USE_PLATFORM_XLIB_KHR
14300
#if defined(VK_USE_PLATFORM_XLIB_KHR)
14301
    .GetPhysicalDeviceXlibPresentationSupportKHR = terminator_GetPhysicalDeviceXlibPresentationSupportKHR,
14302
#endif // VK_USE_PLATFORM_XLIB_KHR
14303
14304
    // ---- VK_KHR_xcb_surface extension commands
14305
#if defined(VK_USE_PLATFORM_XCB_KHR)
14306
    .CreateXcbSurfaceKHR = terminator_CreateXcbSurfaceKHR,
14307
#endif // VK_USE_PLATFORM_XCB_KHR
14308
#if defined(VK_USE_PLATFORM_XCB_KHR)
14309
    .GetPhysicalDeviceXcbPresentationSupportKHR = terminator_GetPhysicalDeviceXcbPresentationSupportKHR,
14310
#endif // VK_USE_PLATFORM_XCB_KHR
14311
14312
    // ---- VK_KHR_wayland_surface extension commands
14313
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
14314
    .CreateWaylandSurfaceKHR = terminator_CreateWaylandSurfaceKHR,
14315
#endif // VK_USE_PLATFORM_WAYLAND_KHR
14316
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
14317
    .GetPhysicalDeviceWaylandPresentationSupportKHR = terminator_GetPhysicalDeviceWaylandPresentationSupportKHR,
14318
#endif // VK_USE_PLATFORM_WAYLAND_KHR
14319
14320
    // ---- VK_KHR_android_surface extension commands
14321
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
14322
    .CreateAndroidSurfaceKHR = terminator_CreateAndroidSurfaceKHR,
14323
#endif // VK_USE_PLATFORM_ANDROID_KHR
14324
14325
    // ---- VK_KHR_win32_surface extension commands
14326
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14327
    .CreateWin32SurfaceKHR = terminator_CreateWin32SurfaceKHR,
14328
#endif // VK_USE_PLATFORM_WIN32_KHR
14329
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14330
    .GetPhysicalDeviceWin32PresentationSupportKHR = terminator_GetPhysicalDeviceWin32PresentationSupportKHR,
14331
#endif // VK_USE_PLATFORM_WIN32_KHR
14332
14333
    // ---- VK_KHR_video_queue extension commands
14334
    .GetPhysicalDeviceVideoCapabilitiesKHR = terminator_GetPhysicalDeviceVideoCapabilitiesKHR,
14335
    .GetPhysicalDeviceVideoFormatPropertiesKHR = terminator_GetPhysicalDeviceVideoFormatPropertiesKHR,
14336
14337
    // ---- VK_KHR_get_physical_device_properties2 extension commands
14338
    .GetPhysicalDeviceFeatures2KHR = terminator_GetPhysicalDeviceFeatures2,
14339
    .GetPhysicalDeviceProperties2KHR = terminator_GetPhysicalDeviceProperties2,
14340
    .GetPhysicalDeviceFormatProperties2KHR = terminator_GetPhysicalDeviceFormatProperties2,
14341
    .GetPhysicalDeviceImageFormatProperties2KHR = terminator_GetPhysicalDeviceImageFormatProperties2,
14342
    .GetPhysicalDeviceQueueFamilyProperties2KHR = terminator_GetPhysicalDeviceQueueFamilyProperties2,
14343
    .GetPhysicalDeviceMemoryProperties2KHR = terminator_GetPhysicalDeviceMemoryProperties2,
14344
    .GetPhysicalDeviceSparseImageFormatProperties2KHR = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
14345
14346
    // ---- VK_KHR_device_group_creation extension commands
14347
    .EnumeratePhysicalDeviceGroupsKHR = terminator_EnumeratePhysicalDeviceGroups,
14348
14349
    // ---- VK_KHR_external_memory_capabilities extension commands
14350
    .GetPhysicalDeviceExternalBufferPropertiesKHR = terminator_GetPhysicalDeviceExternalBufferProperties,
14351
14352
    // ---- VK_KHR_external_semaphore_capabilities extension commands
14353
    .GetPhysicalDeviceExternalSemaphorePropertiesKHR = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
14354
14355
    // ---- VK_KHR_external_fence_capabilities extension commands
14356
    .GetPhysicalDeviceExternalFencePropertiesKHR = terminator_GetPhysicalDeviceExternalFenceProperties,
14357
14358
    // ---- VK_KHR_performance_query extension commands
14359
    .EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
14360
    .GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
14361
14362
    // ---- VK_KHR_get_surface_capabilities2 extension commands
14363
    .GetPhysicalDeviceSurfaceCapabilities2KHR = terminator_GetPhysicalDeviceSurfaceCapabilities2KHR,
14364
    .GetPhysicalDeviceSurfaceFormats2KHR = terminator_GetPhysicalDeviceSurfaceFormats2KHR,
14365
14366
    // ---- VK_KHR_get_display_properties2 extension commands
14367
    .GetPhysicalDeviceDisplayProperties2KHR = terminator_GetPhysicalDeviceDisplayProperties2KHR,
14368
    .GetPhysicalDeviceDisplayPlaneProperties2KHR = terminator_GetPhysicalDeviceDisplayPlaneProperties2KHR,
14369
    .GetDisplayModeProperties2KHR = terminator_GetDisplayModeProperties2KHR,
14370
    .GetDisplayPlaneCapabilities2KHR = terminator_GetDisplayPlaneCapabilities2KHR,
14371
14372
    // ---- VK_KHR_fragment_shading_rate extension commands
14373
    .GetPhysicalDeviceFragmentShadingRatesKHR = terminator_GetPhysicalDeviceFragmentShadingRatesKHR,
14374
14375
    // ---- VK_KHR_video_encode_queue extension commands
14376
    .GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR,
14377
14378
    // ---- VK_KHR_cooperative_matrix extension commands
14379
    .GetPhysicalDeviceCooperativeMatrixPropertiesKHR = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR,
14380
14381
    // ---- VK_KHR_calibrated_timestamps extension commands
14382
    .GetPhysicalDeviceCalibrateableTimeDomainsKHR = terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR,
14383
14384
    // ---- VK_EXT_debug_report extension commands
14385
    .CreateDebugReportCallbackEXT = terminator_CreateDebugReportCallbackEXT,
14386
    .DestroyDebugReportCallbackEXT = terminator_DestroyDebugReportCallbackEXT,
14387
    .DebugReportMessageEXT = terminator_DebugReportMessageEXT,
14388
14389
    // ---- VK_GGP_stream_descriptor_surface extension commands
14390
#if defined(VK_USE_PLATFORM_GGP)
14391
    .CreateStreamDescriptorSurfaceGGP = terminator_CreateStreamDescriptorSurfaceGGP,
14392
#endif // VK_USE_PLATFORM_GGP
14393
14394
    // ---- VK_NV_external_memory_capabilities extension commands
14395
    .GetPhysicalDeviceExternalImageFormatPropertiesNV = terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV,
14396
14397
    // ---- VK_NN_vi_surface extension commands
14398
#if defined(VK_USE_PLATFORM_VI_NN)
14399
    .CreateViSurfaceNN = terminator_CreateViSurfaceNN,
14400
#endif // VK_USE_PLATFORM_VI_NN
14401
14402
    // ---- VK_EXT_direct_mode_display extension commands
14403
    .ReleaseDisplayEXT = terminator_ReleaseDisplayEXT,
14404
14405
    // ---- VK_EXT_acquire_xlib_display extension commands
14406
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
14407
    .AcquireXlibDisplayEXT = terminator_AcquireXlibDisplayEXT,
14408
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
14409
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
14410
    .GetRandROutputDisplayEXT = terminator_GetRandROutputDisplayEXT,
14411
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
14412
14413
    // ---- VK_EXT_display_surface_counter extension commands
14414
    .GetPhysicalDeviceSurfaceCapabilities2EXT = terminator_GetPhysicalDeviceSurfaceCapabilities2EXT,
14415
14416
    // ---- VK_MVK_ios_surface extension commands
14417
#if defined(VK_USE_PLATFORM_IOS_MVK)
14418
    .CreateIOSSurfaceMVK = terminator_CreateIOSSurfaceMVK,
14419
#endif // VK_USE_PLATFORM_IOS_MVK
14420
14421
    // ---- VK_MVK_macos_surface extension commands
14422
#if defined(VK_USE_PLATFORM_MACOS_MVK)
14423
    .CreateMacOSSurfaceMVK = terminator_CreateMacOSSurfaceMVK,
14424
#endif // VK_USE_PLATFORM_MACOS_MVK
14425
14426
    // ---- VK_EXT_debug_utils extension commands
14427
    .CreateDebugUtilsMessengerEXT = terminator_CreateDebugUtilsMessengerEXT,
14428
    .DestroyDebugUtilsMessengerEXT = terminator_DestroyDebugUtilsMessengerEXT,
14429
    .SubmitDebugUtilsMessageEXT = terminator_SubmitDebugUtilsMessageEXT,
14430
14431
    // ---- VK_EXT_sample_locations extension commands
14432
    .GetPhysicalDeviceMultisamplePropertiesEXT = terminator_GetPhysicalDeviceMultisamplePropertiesEXT,
14433
14434
    // ---- VK_EXT_calibrated_timestamps extension commands
14435
    .GetPhysicalDeviceCalibrateableTimeDomainsEXT = terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT,
14436
14437
    // ---- VK_FUCHSIA_imagepipe_surface extension commands
14438
#if defined(VK_USE_PLATFORM_FUCHSIA)
14439
    .CreateImagePipeSurfaceFUCHSIA = terminator_CreateImagePipeSurfaceFUCHSIA,
14440
#endif // VK_USE_PLATFORM_FUCHSIA
14441
14442
    // ---- VK_EXT_metal_surface extension commands
14443
#if defined(VK_USE_PLATFORM_METAL_EXT)
14444
    .CreateMetalSurfaceEXT = terminator_CreateMetalSurfaceEXT,
14445
#endif // VK_USE_PLATFORM_METAL_EXT
14446
14447
    // ---- VK_EXT_tooling_info extension commands
14448
    .GetPhysicalDeviceToolPropertiesEXT = terminator_GetPhysicalDeviceToolPropertiesEXT,
14449
14450
    // ---- VK_NV_cooperative_matrix extension commands
14451
    .GetPhysicalDeviceCooperativeMatrixPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV,
14452
14453
    // ---- VK_NV_coverage_reduction_mode extension commands
14454
    .GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
14455
14456
    // ---- VK_EXT_full_screen_exclusive extension commands
14457
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14458
    .GetPhysicalDeviceSurfacePresentModes2EXT = terminator_GetPhysicalDeviceSurfacePresentModes2EXT,
14459
#endif // VK_USE_PLATFORM_WIN32_KHR
14460
14461
    // ---- VK_EXT_headless_surface extension commands
14462
    .CreateHeadlessSurfaceEXT = terminator_CreateHeadlessSurfaceEXT,
14463
14464
    // ---- VK_EXT_acquire_drm_display extension commands
14465
    .AcquireDrmDisplayEXT = terminator_AcquireDrmDisplayEXT,
14466
    .GetDrmDisplayEXT = terminator_GetDrmDisplayEXT,
14467
14468
    // ---- VK_NV_acquire_winrt_display extension commands
14469
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14470
    .AcquireWinrtDisplayNV = terminator_AcquireWinrtDisplayNV,
14471
#endif // VK_USE_PLATFORM_WIN32_KHR
14472
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14473
    .GetWinrtDisplayNV = terminator_GetWinrtDisplayNV,
14474
#endif // VK_USE_PLATFORM_WIN32_KHR
14475
14476
    // ---- VK_EXT_directfb_surface extension commands
14477
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
14478
    .CreateDirectFBSurfaceEXT = terminator_CreateDirectFBSurfaceEXT,
14479
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
14480
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
14481
    .GetPhysicalDeviceDirectFBPresentationSupportEXT = terminator_GetPhysicalDeviceDirectFBPresentationSupportEXT,
14482
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
14483
14484
    // ---- VK_QNX_screen_surface extension commands
14485
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14486
    .CreateScreenSurfaceQNX = terminator_CreateScreenSurfaceQNX,
14487
#endif // VK_USE_PLATFORM_SCREEN_QNX
14488
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14489
    .GetPhysicalDeviceScreenPresentationSupportQNX = terminator_GetPhysicalDeviceScreenPresentationSupportQNX,
14490
#endif // VK_USE_PLATFORM_SCREEN_QNX
14491
14492
    // ---- VK_ARM_tensors extension commands
14493
    .GetPhysicalDeviceExternalTensorPropertiesARM = terminator_GetPhysicalDeviceExternalTensorPropertiesARM,
14494
14495
    // ---- VK_NV_optical_flow extension commands
14496
    .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV,
14497
14498
    // ---- VK_NV_cooperative_vector extension commands
14499
    .GetPhysicalDeviceCooperativeVectorPropertiesNV = terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV,
14500
14501
    // ---- VK_ARM_data_graph extension commands
14502
    .GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM = terminator_GetPhysicalDeviceQueueFamilyDataGraphPropertiesARM,
14503
    .GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM = terminator_GetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM,
14504
14505
    // ---- VK_OHOS_surface extension commands
14506
#if defined(VK_USE_PLATFORM_OHOS)
14507
    .CreateSurfaceOHOS = terminator_CreateSurfaceOHOS,
14508
#endif // VK_USE_PLATFORM_OHOS
14509
14510
    // ---- VK_NV_cooperative_matrix2 extension commands
14511
    .GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV,
14512
14513
    // ---- VK_ARM_performance_counters_by_region extension commands
14514
    .EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM,
14515
};
14516
14517
// A null-terminated list of all of the instance extensions supported by the loader.
14518
// If an instance extension name is not in this list, but it is exported by one or more of the
14519
// ICDs detected by the loader, then the extension name not in the list will be filtered out
14520
// before passing the list of extensions to the application.
14521
const char *const LOADER_INSTANCE_EXTENSIONS[] = {
14522
                                                  VK_KHR_SURFACE_EXTENSION_NAME,
14523
                                                  VK_KHR_DISPLAY_EXTENSION_NAME,
14524
#if defined(VK_USE_PLATFORM_XLIB_KHR)
14525
                                                  VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
14526
#endif // VK_USE_PLATFORM_XLIB_KHR
14527
#if defined(VK_USE_PLATFORM_XCB_KHR)
14528
                                                  VK_KHR_XCB_SURFACE_EXTENSION_NAME,
14529
#endif // VK_USE_PLATFORM_XCB_KHR
14530
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
14531
                                                  VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
14532
#endif // VK_USE_PLATFORM_WAYLAND_KHR
14533
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
14534
                                                  VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
14535
#endif // VK_USE_PLATFORM_ANDROID_KHR
14536
#if defined(VK_USE_PLATFORM_WIN32_KHR)
14537
                                                  VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
14538
#endif // VK_USE_PLATFORM_WIN32_KHR
14539
                                                  VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME,
14540
                                                  VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME,
14541
                                                  VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
14542
                                                  VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME,
14543
                                                  VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME,
14544
                                                  VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME,
14545
                                                  VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME,
14546
                                                  VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME,
14547
                                                  VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME,
14548
                                                  VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
14549
                                                  VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
14550
#if defined(VK_USE_PLATFORM_GGP)
14551
                                                  VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME,
14552
#endif // VK_USE_PLATFORM_GGP
14553
                                                  VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
14554
                                                  VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME,
14555
#if defined(VK_USE_PLATFORM_VI_NN)
14556
                                                  VK_NN_VI_SURFACE_EXTENSION_NAME,
14557
#endif // VK_USE_PLATFORM_VI_NN
14558
                                                  VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME,
14559
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
14560
                                                  VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME,
14561
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
14562
                                                  VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME,
14563
                                                  VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME,
14564
#if defined(VK_USE_PLATFORM_IOS_MVK)
14565
                                                  VK_MVK_IOS_SURFACE_EXTENSION_NAME,
14566
#endif // VK_USE_PLATFORM_IOS_MVK
14567
#if defined(VK_USE_PLATFORM_MACOS_MVK)
14568
                                                  VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
14569
#endif // VK_USE_PLATFORM_MACOS_MVK
14570
                                                  VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
14571
#if defined(VK_USE_PLATFORM_FUCHSIA)
14572
                                                  VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME,
14573
#endif // VK_USE_PLATFORM_FUCHSIA
14574
#if defined(VK_USE_PLATFORM_METAL_EXT)
14575
                                                  VK_EXT_METAL_SURFACE_EXTENSION_NAME,
14576
#endif // VK_USE_PLATFORM_METAL_EXT
14577
                                                  VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME,
14578
                                                  VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME,
14579
                                                  VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
14580
                                                  VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME,
14581
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
14582
                                                  VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME,
14583
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
14584
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
14585
                                                  VK_QNX_SCREEN_SURFACE_EXTENSION_NAME,
14586
#endif // VK_USE_PLATFORM_SCREEN_QNX
14587
                                                  VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME,
14588
                                                  VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME,
14589
                                                  VK_EXT_LAYER_SETTINGS_EXTENSION_NAME,
14590
                                                  VK_NV_DISPLAY_STEREO_EXTENSION_NAME,
14591
#if defined(VK_USE_PLATFORM_OHOS)
14592
                                                  VK_OHOS_SURFACE_EXTENSION_NAME,
14593
#endif // VK_USE_PLATFORM_OHOS
14594
                                                  NULL };
14595
// clang-format on