1 // *** THIS FILE IS GENERATED - DO NOT EDIT ***
2 // See loader_extension_generator.py for modifications
3
4 /*
5 * Copyright (c) 2015-2022 The Khronos Group Inc.
6 * Copyright (c) 2015-2022 Valve Corporation
7 * Copyright (c) 2015-2022 LunarG, Inc.
8 * Copyright (c) 2021-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
9 * Copyright (c) 2023-2023 RasterGrid Kft.
10 *
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
14 *
15 * http://www.apache.org/licenses/LICENSE-2.0
16 *
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
22 *
23 * Author: Mark Lobodzinski <mark@lunarg.com>
24 * Author: Mark Young <marky@lunarg.com>
25 */
26
27 // clang-format off
28 #include <stdio.h>
29 #include <stdlib.h>
30 #include <string.h>
31 #include "loader.h"
32 #include "vk_loader_extensions.h"
33 #include <vulkan/vk_icd.h>
34 #include "wsi.h"
35 #include "debug_utils.h"
36 #include "extension_manual.h"
37
38 // Device extension error function
vkDevExtError(VkDevice dev)39 VKAPI_ATTR VkResult VKAPI_CALL vkDevExtError(VkDevice dev) {
40 struct loader_device *found_dev;
41 // The device going in is a trampoline device
42 struct loader_icd_term *icd_term = loader_get_icd_and_device(dev, &found_dev);
43
44 if (icd_term)
45 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
46 "Bad destination in loader trampoline dispatch,"
47 "Are layers and extensions that you are calling enabled?");
48 return VK_ERROR_EXTENSION_NOT_PRESENT;
49 }
50
loader_icd_init_entries(struct loader_instance * inst,struct loader_icd_term * icd_term)51 VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst, struct loader_icd_term *icd_term) {
52 const PFN_vkGetInstanceProcAddr fp_gipa = icd_term->scanned_icd->GetInstanceProcAddr;
53
54 #define LOOKUP_GIPA(func) icd_term->dispatch.func = (PFN_vk##func)fp_gipa(icd_term->instance, "vk" #func);
55
56 #define LOOKUP_REQUIRED_GIPA(func) \
57 do { \
58 LOOKUP_GIPA(func); \
59 if (!icd_term->dispatch.func) { \
60 loader_log(inst, VULKAN_LOADER_WARN_BIT, 0, "Unable to load %s from ICD %s",\
61 "vk"#func, icd_term->scanned_icd->lib_name); \
62 return false; \
63 } \
64 } while (0)
65
66
67 // ---- Core Vulkan 1.0
68 LOOKUP_REQUIRED_GIPA(DestroyInstance);
69 LOOKUP_REQUIRED_GIPA(EnumeratePhysicalDevices);
70 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceFeatures);
71 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceFormatProperties);
72 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceImageFormatProperties);
73 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceProperties);
74 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceQueueFamilyProperties);
75 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceMemoryProperties);
76 LOOKUP_REQUIRED_GIPA(GetDeviceProcAddr);
77 LOOKUP_REQUIRED_GIPA(CreateDevice);
78 LOOKUP_REQUIRED_GIPA(EnumerateDeviceExtensionProperties);
79 LOOKUP_REQUIRED_GIPA(GetPhysicalDeviceSparseImageFormatProperties);
80
81 // ---- Core Vulkan 1.1
82 LOOKUP_GIPA(EnumeratePhysicalDeviceGroups);
83 LOOKUP_GIPA(GetPhysicalDeviceFeatures2);
84 LOOKUP_GIPA(GetPhysicalDeviceProperties2);
85 LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2);
86 LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2);
87 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2);
88 LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2);
89 LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2);
90 LOOKUP_GIPA(GetPhysicalDeviceExternalBufferProperties);
91 LOOKUP_GIPA(GetPhysicalDeviceExternalFenceProperties);
92 LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphoreProperties);
93
94 // ---- Core Vulkan 1.3
95 LOOKUP_GIPA(GetPhysicalDeviceToolProperties);
96
97 // ---- VK_KHR_surface extension commands
98 LOOKUP_GIPA(DestroySurfaceKHR);
99 LOOKUP_GIPA(GetPhysicalDeviceSurfaceSupportKHR);
100 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilitiesKHR);
101 LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormatsKHR);
102 LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModesKHR);
103
104 // ---- VK_KHR_swapchain extension commands
105 LOOKUP_GIPA(GetPhysicalDevicePresentRectanglesKHR);
106
107 // ---- VK_KHR_display extension commands
108 LOOKUP_GIPA(GetPhysicalDeviceDisplayPropertiesKHR);
109 LOOKUP_GIPA(GetPhysicalDeviceDisplayPlanePropertiesKHR);
110 LOOKUP_GIPA(GetDisplayPlaneSupportedDisplaysKHR);
111 LOOKUP_GIPA(GetDisplayModePropertiesKHR);
112 LOOKUP_GIPA(CreateDisplayModeKHR);
113 LOOKUP_GIPA(GetDisplayPlaneCapabilitiesKHR);
114 LOOKUP_GIPA(CreateDisplayPlaneSurfaceKHR);
115
116 // ---- VK_KHR_xlib_surface extension commands
117 #if defined(VK_USE_PLATFORM_XLIB_KHR)
118 LOOKUP_GIPA(CreateXlibSurfaceKHR);
119 #endif // VK_USE_PLATFORM_XLIB_KHR
120 #if defined(VK_USE_PLATFORM_XLIB_KHR)
121 LOOKUP_GIPA(GetPhysicalDeviceXlibPresentationSupportKHR);
122 #endif // VK_USE_PLATFORM_XLIB_KHR
123
124 // ---- VK_KHR_xcb_surface extension commands
125 #if defined(VK_USE_PLATFORM_XCB_KHR)
126 LOOKUP_GIPA(CreateXcbSurfaceKHR);
127 #endif // VK_USE_PLATFORM_XCB_KHR
128 #if defined(VK_USE_PLATFORM_XCB_KHR)
129 LOOKUP_GIPA(GetPhysicalDeviceXcbPresentationSupportKHR);
130 #endif // VK_USE_PLATFORM_XCB_KHR
131
132 // ---- VK_KHR_wayland_surface extension commands
133 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
134 LOOKUP_GIPA(CreateWaylandSurfaceKHR);
135 #endif // VK_USE_PLATFORM_WAYLAND_KHR
136 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
137 LOOKUP_GIPA(GetPhysicalDeviceWaylandPresentationSupportKHR);
138 #endif // VK_USE_PLATFORM_WAYLAND_KHR
139
140 // ---- VK_KHR_android_surface extension commands
141 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
142 LOOKUP_GIPA(CreateAndroidSurfaceKHR);
143 #endif // VK_USE_PLATFORM_ANDROID_KHR
144
145 // ---- VK_KHR_win32_surface extension commands
146 #if defined(VK_USE_PLATFORM_WIN32_KHR)
147 LOOKUP_GIPA(CreateWin32SurfaceKHR);
148 #endif // VK_USE_PLATFORM_WIN32_KHR
149 #if defined(VK_USE_PLATFORM_WIN32_KHR)
150 LOOKUP_GIPA(GetPhysicalDeviceWin32PresentationSupportKHR);
151 #endif // VK_USE_PLATFORM_WIN32_KHR
152
153 // ---- VK_KHR_video_queue extension commands
154 LOOKUP_GIPA(GetPhysicalDeviceVideoCapabilitiesKHR);
155 LOOKUP_GIPA(GetPhysicalDeviceVideoFormatPropertiesKHR);
156
157 // ---- VK_KHR_get_physical_device_properties2 extension commands
158 LOOKUP_GIPA(GetPhysicalDeviceFeatures2KHR);
159 LOOKUP_GIPA(GetPhysicalDeviceProperties2KHR);
160 LOOKUP_GIPA(GetPhysicalDeviceFormatProperties2KHR);
161 LOOKUP_GIPA(GetPhysicalDeviceImageFormatProperties2KHR);
162 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyProperties2KHR);
163 LOOKUP_GIPA(GetPhysicalDeviceMemoryProperties2KHR);
164 LOOKUP_GIPA(GetPhysicalDeviceSparseImageFormatProperties2KHR);
165
166 // ---- VK_KHR_device_group_creation extension commands
167 LOOKUP_GIPA(EnumeratePhysicalDeviceGroupsKHR);
168
169 // ---- VK_KHR_external_memory_capabilities extension commands
170 LOOKUP_GIPA(GetPhysicalDeviceExternalBufferPropertiesKHR);
171
172 // ---- VK_KHR_external_semaphore_capabilities extension commands
173 LOOKUP_GIPA(GetPhysicalDeviceExternalSemaphorePropertiesKHR);
174
175 // ---- VK_KHR_external_fence_capabilities extension commands
176 LOOKUP_GIPA(GetPhysicalDeviceExternalFencePropertiesKHR);
177
178 // ---- VK_KHR_performance_query extension commands
179 LOOKUP_GIPA(EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
180 LOOKUP_GIPA(GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
181
182 // ---- VK_KHR_get_surface_capabilities2 extension commands
183 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2KHR);
184 LOOKUP_GIPA(GetPhysicalDeviceSurfaceFormats2KHR);
185
186 // ---- VK_KHR_get_display_properties2 extension commands
187 LOOKUP_GIPA(GetPhysicalDeviceDisplayProperties2KHR);
188 LOOKUP_GIPA(GetPhysicalDeviceDisplayPlaneProperties2KHR);
189 LOOKUP_GIPA(GetDisplayModeProperties2KHR);
190 LOOKUP_GIPA(GetDisplayPlaneCapabilities2KHR);
191
192 // ---- VK_KHR_fragment_shading_rate extension commands
193 LOOKUP_GIPA(GetPhysicalDeviceFragmentShadingRatesKHR);
194
195 // ---- VK_KHR_video_encode_queue extension commands
196 LOOKUP_GIPA(GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR);
197
198 // ---- VK_KHR_cooperative_matrix extension commands
199 LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesKHR);
200
201 // ---- VK_KHR_calibrated_timestamps extension commands
202 LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsKHR);
203
204 // ---- VK_EXT_debug_report extension commands
205 LOOKUP_GIPA(CreateDebugReportCallbackEXT);
206 LOOKUP_GIPA(DestroyDebugReportCallbackEXT);
207 LOOKUP_GIPA(DebugReportMessageEXT);
208
209 // ---- VK_GGP_stream_descriptor_surface extension commands
210 #if defined(VK_USE_PLATFORM_GGP)
211 LOOKUP_GIPA(CreateStreamDescriptorSurfaceGGP);
212 #endif // VK_USE_PLATFORM_GGP
213
214 // ---- VK_NV_external_memory_capabilities extension commands
215 LOOKUP_GIPA(GetPhysicalDeviceExternalImageFormatPropertiesNV);
216
217 // ---- VK_NN_vi_surface extension commands
218 #if defined(VK_USE_PLATFORM_VI_NN)
219 LOOKUP_GIPA(CreateViSurfaceNN);
220 #endif // VK_USE_PLATFORM_VI_NN
221
222 // ---- VK_EXT_direct_mode_display extension commands
223 LOOKUP_GIPA(ReleaseDisplayEXT);
224
225 // ---- VK_EXT_acquire_xlib_display extension commands
226 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
227 LOOKUP_GIPA(AcquireXlibDisplayEXT);
228 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
229 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
230 LOOKUP_GIPA(GetRandROutputDisplayEXT);
231 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
232
233 // ---- VK_EXT_display_surface_counter extension commands
234 LOOKUP_GIPA(GetPhysicalDeviceSurfaceCapabilities2EXT);
235
236 // ---- VK_MVK_ios_surface extension commands
237 #if defined(VK_USE_PLATFORM_IOS_MVK)
238 LOOKUP_GIPA(CreateIOSSurfaceMVK);
239 #endif // VK_USE_PLATFORM_IOS_MVK
240
241 // ---- VK_MVK_macos_surface extension commands
242 #if defined(VK_USE_PLATFORM_MACOS_MVK)
243 LOOKUP_GIPA(CreateMacOSSurfaceMVK);
244 #endif // VK_USE_PLATFORM_MACOS_MVK
245
246 // ---- VK_EXT_debug_utils extension commands
247 LOOKUP_GIPA(CreateDebugUtilsMessengerEXT);
248 LOOKUP_GIPA(DestroyDebugUtilsMessengerEXT);
249 LOOKUP_GIPA(SubmitDebugUtilsMessageEXT);
250
251 // ---- VK_EXT_sample_locations extension commands
252 LOOKUP_GIPA(GetPhysicalDeviceMultisamplePropertiesEXT);
253
254 // ---- VK_EXT_calibrated_timestamps extension commands
255 LOOKUP_GIPA(GetPhysicalDeviceCalibrateableTimeDomainsEXT);
256
257 // ---- VK_FUCHSIA_imagepipe_surface extension commands
258 #if defined(VK_USE_PLATFORM_FUCHSIA)
259 LOOKUP_GIPA(CreateImagePipeSurfaceFUCHSIA);
260 #endif // VK_USE_PLATFORM_FUCHSIA
261
262 // ---- VK_EXT_metal_surface extension commands
263 #if defined(VK_USE_PLATFORM_METAL_EXT)
264 LOOKUP_GIPA(CreateMetalSurfaceEXT);
265 #endif // VK_USE_PLATFORM_METAL_EXT
266
267 // ---- VK_EXT_tooling_info extension commands
268 LOOKUP_GIPA(GetPhysicalDeviceToolPropertiesEXT);
269
270 // ---- VK_NV_cooperative_matrix extension commands
271 LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixPropertiesNV);
272
273 // ---- VK_NV_coverage_reduction_mode extension commands
274 LOOKUP_GIPA(GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
275
276 // ---- VK_EXT_full_screen_exclusive extension commands
277 #if defined(VK_USE_PLATFORM_WIN32_KHR)
278 LOOKUP_GIPA(GetPhysicalDeviceSurfacePresentModes2EXT);
279 #endif // VK_USE_PLATFORM_WIN32_KHR
280
281 // ---- VK_EXT_headless_surface extension commands
282 LOOKUP_GIPA(CreateHeadlessSurfaceEXT);
283
284 // ---- VK_EXT_acquire_drm_display extension commands
285 LOOKUP_GIPA(AcquireDrmDisplayEXT);
286 LOOKUP_GIPA(GetDrmDisplayEXT);
287
288 // ---- VK_NV_acquire_winrt_display extension commands
289 #if defined(VK_USE_PLATFORM_WIN32_KHR)
290 LOOKUP_GIPA(AcquireWinrtDisplayNV);
291 #endif // VK_USE_PLATFORM_WIN32_KHR
292 #if defined(VK_USE_PLATFORM_WIN32_KHR)
293 LOOKUP_GIPA(GetWinrtDisplayNV);
294 #endif // VK_USE_PLATFORM_WIN32_KHR
295
296 // ---- VK_EXT_directfb_surface extension commands
297 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
298 LOOKUP_GIPA(CreateDirectFBSurfaceEXT);
299 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
300 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
301 LOOKUP_GIPA(GetPhysicalDeviceDirectFBPresentationSupportEXT);
302 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
303
304 // ---- VK_QNX_screen_surface extension commands
305 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
306 LOOKUP_GIPA(CreateScreenSurfaceQNX);
307 #endif // VK_USE_PLATFORM_SCREEN_QNX
308 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
309 LOOKUP_GIPA(GetPhysicalDeviceScreenPresentationSupportQNX);
310 #endif // VK_USE_PLATFORM_SCREEN_QNX
311
312 // ---- VK_NV_optical_flow extension commands
313 LOOKUP_GIPA(GetPhysicalDeviceOpticalFlowImageFormatsNV);
314
315 // ---- VK_OHOS_surface extension commands
316 #if defined(VK_USE_PLATFORM_OHOS)
317 LOOKUP_GIPA(CreateSurfaceOHOS);
318 #endif // VK_USE_PLATFORM_OHOS
319
320 // ---- VK_NV_cooperative_vector extension commands
321 LOOKUP_GIPA(GetPhysicalDeviceCooperativeVectorPropertiesNV);
322
323 // ---- VK_NV_cooperative_matrix2 extension commands
324 LOOKUP_GIPA(GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV);
325
326 #undef LOOKUP_REQUIRED_GIPA
327 #undef LOOKUP_GIPA
328
329 return true;
330 };
331
332 // Init Device function pointer dispatch table with core commands
loader_init_device_dispatch_table(struct loader_dev_dispatch_table * dev_table,PFN_vkGetDeviceProcAddr gpa,VkDevice dev)333 VKAPI_ATTR void VKAPI_CALL loader_init_device_dispatch_table(struct loader_dev_dispatch_table *dev_table, PFN_vkGetDeviceProcAddr gpa,
334 VkDevice dev) {
335 VkLayerDispatchTable *table = &dev_table->core_dispatch;
336 if (table->magic != DEVICE_DISP_TABLE_MAGIC_NUMBER) { abort(); }
337 for (uint32_t i = 0; i < MAX_NUM_UNKNOWN_EXTS; i++) dev_table->ext_dispatch[i] = (PFN_vkDevExt)vkDevExtError;
338
339 // ---- Core Vulkan 1.0 commands
340 table->GetDeviceProcAddr = gpa;
341 table->DestroyDevice = (PFN_vkDestroyDevice)gpa(dev, "vkDestroyDevice");
342 table->GetDeviceQueue = (PFN_vkGetDeviceQueue)gpa(dev, "vkGetDeviceQueue");
343 table->QueueSubmit = (PFN_vkQueueSubmit)gpa(dev, "vkQueueSubmit");
344 table->QueueWaitIdle = (PFN_vkQueueWaitIdle)gpa(dev, "vkQueueWaitIdle");
345 table->DeviceWaitIdle = (PFN_vkDeviceWaitIdle)gpa(dev, "vkDeviceWaitIdle");
346 table->AllocateMemory = (PFN_vkAllocateMemory)gpa(dev, "vkAllocateMemory");
347 table->FreeMemory = (PFN_vkFreeMemory)gpa(dev, "vkFreeMemory");
348 table->MapMemory = (PFN_vkMapMemory)gpa(dev, "vkMapMemory");
349 table->UnmapMemory = (PFN_vkUnmapMemory)gpa(dev, "vkUnmapMemory");
350 table->FlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges)gpa(dev, "vkFlushMappedMemoryRanges");
351 table->InvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges)gpa(dev, "vkInvalidateMappedMemoryRanges");
352 table->GetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment)gpa(dev, "vkGetDeviceMemoryCommitment");
353 table->BindBufferMemory = (PFN_vkBindBufferMemory)gpa(dev, "vkBindBufferMemory");
354 table->BindImageMemory = (PFN_vkBindImageMemory)gpa(dev, "vkBindImageMemory");
355 table->GetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements)gpa(dev, "vkGetBufferMemoryRequirements");
356 table->GetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements)gpa(dev, "vkGetImageMemoryRequirements");
357 table->GetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements)gpa(dev, "vkGetImageSparseMemoryRequirements");
358 table->QueueBindSparse = (PFN_vkQueueBindSparse)gpa(dev, "vkQueueBindSparse");
359 table->CreateFence = (PFN_vkCreateFence)gpa(dev, "vkCreateFence");
360 table->DestroyFence = (PFN_vkDestroyFence)gpa(dev, "vkDestroyFence");
361 table->ResetFences = (PFN_vkResetFences)gpa(dev, "vkResetFences");
362 table->GetFenceStatus = (PFN_vkGetFenceStatus)gpa(dev, "vkGetFenceStatus");
363 table->WaitForFences = (PFN_vkWaitForFences)gpa(dev, "vkWaitForFences");
364 table->CreateSemaphore = (PFN_vkCreateSemaphore)gpa(dev, "vkCreateSemaphore");
365 table->DestroySemaphore = (PFN_vkDestroySemaphore)gpa(dev, "vkDestroySemaphore");
366 table->CreateEvent = (PFN_vkCreateEvent)gpa(dev, "vkCreateEvent");
367 table->DestroyEvent = (PFN_vkDestroyEvent)gpa(dev, "vkDestroyEvent");
368 table->GetEventStatus = (PFN_vkGetEventStatus)gpa(dev, "vkGetEventStatus");
369 table->SetEvent = (PFN_vkSetEvent)gpa(dev, "vkSetEvent");
370 table->ResetEvent = (PFN_vkResetEvent)gpa(dev, "vkResetEvent");
371 table->CreateQueryPool = (PFN_vkCreateQueryPool)gpa(dev, "vkCreateQueryPool");
372 table->DestroyQueryPool = (PFN_vkDestroyQueryPool)gpa(dev, "vkDestroyQueryPool");
373 table->GetQueryPoolResults = (PFN_vkGetQueryPoolResults)gpa(dev, "vkGetQueryPoolResults");
374 table->CreateBuffer = (PFN_vkCreateBuffer)gpa(dev, "vkCreateBuffer");
375 table->DestroyBuffer = (PFN_vkDestroyBuffer)gpa(dev, "vkDestroyBuffer");
376 table->CreateBufferView = (PFN_vkCreateBufferView)gpa(dev, "vkCreateBufferView");
377 table->DestroyBufferView = (PFN_vkDestroyBufferView)gpa(dev, "vkDestroyBufferView");
378 table->CreateImage = (PFN_vkCreateImage)gpa(dev, "vkCreateImage");
379 table->DestroyImage = (PFN_vkDestroyImage)gpa(dev, "vkDestroyImage");
380 table->GetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout)gpa(dev, "vkGetImageSubresourceLayout");
381 table->CreateImageView = (PFN_vkCreateImageView)gpa(dev, "vkCreateImageView");
382 table->DestroyImageView = (PFN_vkDestroyImageView)gpa(dev, "vkDestroyImageView");
383 table->CreateShaderModule = (PFN_vkCreateShaderModule)gpa(dev, "vkCreateShaderModule");
384 table->DestroyShaderModule = (PFN_vkDestroyShaderModule)gpa(dev, "vkDestroyShaderModule");
385 table->CreatePipelineCache = (PFN_vkCreatePipelineCache)gpa(dev, "vkCreatePipelineCache");
386 table->DestroyPipelineCache = (PFN_vkDestroyPipelineCache)gpa(dev, "vkDestroyPipelineCache");
387 table->GetPipelineCacheData = (PFN_vkGetPipelineCacheData)gpa(dev, "vkGetPipelineCacheData");
388 table->MergePipelineCaches = (PFN_vkMergePipelineCaches)gpa(dev, "vkMergePipelineCaches");
389 table->CreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines)gpa(dev, "vkCreateGraphicsPipelines");
390 table->CreateComputePipelines = (PFN_vkCreateComputePipelines)gpa(dev, "vkCreateComputePipelines");
391 table->DestroyPipeline = (PFN_vkDestroyPipeline)gpa(dev, "vkDestroyPipeline");
392 table->CreatePipelineLayout = (PFN_vkCreatePipelineLayout)gpa(dev, "vkCreatePipelineLayout");
393 table->DestroyPipelineLayout = (PFN_vkDestroyPipelineLayout)gpa(dev, "vkDestroyPipelineLayout");
394 table->CreateSampler = (PFN_vkCreateSampler)gpa(dev, "vkCreateSampler");
395 table->DestroySampler = (PFN_vkDestroySampler)gpa(dev, "vkDestroySampler");
396 table->CreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout)gpa(dev, "vkCreateDescriptorSetLayout");
397 table->DestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout)gpa(dev, "vkDestroyDescriptorSetLayout");
398 table->CreateDescriptorPool = (PFN_vkCreateDescriptorPool)gpa(dev, "vkCreateDescriptorPool");
399 table->DestroyDescriptorPool = (PFN_vkDestroyDescriptorPool)gpa(dev, "vkDestroyDescriptorPool");
400 table->ResetDescriptorPool = (PFN_vkResetDescriptorPool)gpa(dev, "vkResetDescriptorPool");
401 table->AllocateDescriptorSets = (PFN_vkAllocateDescriptorSets)gpa(dev, "vkAllocateDescriptorSets");
402 table->FreeDescriptorSets = (PFN_vkFreeDescriptorSets)gpa(dev, "vkFreeDescriptorSets");
403 table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets)gpa(dev, "vkUpdateDescriptorSets");
404 table->CreateFramebuffer = (PFN_vkCreateFramebuffer)gpa(dev, "vkCreateFramebuffer");
405 table->DestroyFramebuffer = (PFN_vkDestroyFramebuffer)gpa(dev, "vkDestroyFramebuffer");
406 table->CreateRenderPass = (PFN_vkCreateRenderPass)gpa(dev, "vkCreateRenderPass");
407 table->DestroyRenderPass = (PFN_vkDestroyRenderPass)gpa(dev, "vkDestroyRenderPass");
408 table->GetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity)gpa(dev, "vkGetRenderAreaGranularity");
409 table->CreateCommandPool = (PFN_vkCreateCommandPool)gpa(dev, "vkCreateCommandPool");
410 table->DestroyCommandPool = (PFN_vkDestroyCommandPool)gpa(dev, "vkDestroyCommandPool");
411 table->ResetCommandPool = (PFN_vkResetCommandPool)gpa(dev, "vkResetCommandPool");
412 table->AllocateCommandBuffers = (PFN_vkAllocateCommandBuffers)gpa(dev, "vkAllocateCommandBuffers");
413 table->FreeCommandBuffers = (PFN_vkFreeCommandBuffers)gpa(dev, "vkFreeCommandBuffers");
414 table->BeginCommandBuffer = (PFN_vkBeginCommandBuffer)gpa(dev, "vkBeginCommandBuffer");
415 table->EndCommandBuffer = (PFN_vkEndCommandBuffer)gpa(dev, "vkEndCommandBuffer");
416 table->ResetCommandBuffer = (PFN_vkResetCommandBuffer)gpa(dev, "vkResetCommandBuffer");
417 table->CmdBindPipeline = (PFN_vkCmdBindPipeline)gpa(dev, "vkCmdBindPipeline");
418 table->CmdSetViewport = (PFN_vkCmdSetViewport)gpa(dev, "vkCmdSetViewport");
419 table->CmdSetScissor = (PFN_vkCmdSetScissor)gpa(dev, "vkCmdSetScissor");
420 table->CmdSetLineWidth = (PFN_vkCmdSetLineWidth)gpa(dev, "vkCmdSetLineWidth");
421 table->CmdSetDepthBias = (PFN_vkCmdSetDepthBias)gpa(dev, "vkCmdSetDepthBias");
422 table->CmdSetBlendConstants = (PFN_vkCmdSetBlendConstants)gpa(dev, "vkCmdSetBlendConstants");
423 table->CmdSetDepthBounds = (PFN_vkCmdSetDepthBounds)gpa(dev, "vkCmdSetDepthBounds");
424 table->CmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask)gpa(dev, "vkCmdSetStencilCompareMask");
425 table->CmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask)gpa(dev, "vkCmdSetStencilWriteMask");
426 table->CmdSetStencilReference = (PFN_vkCmdSetStencilReference)gpa(dev, "vkCmdSetStencilReference");
427 table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets)gpa(dev, "vkCmdBindDescriptorSets");
428 table->CmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer)gpa(dev, "vkCmdBindIndexBuffer");
429 table->CmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers)gpa(dev, "vkCmdBindVertexBuffers");
430 table->CmdDraw = (PFN_vkCmdDraw)gpa(dev, "vkCmdDraw");
431 table->CmdDrawIndexed = (PFN_vkCmdDrawIndexed)gpa(dev, "vkCmdDrawIndexed");
432 table->CmdDrawIndirect = (PFN_vkCmdDrawIndirect)gpa(dev, "vkCmdDrawIndirect");
433 table->CmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect)gpa(dev, "vkCmdDrawIndexedIndirect");
434 table->CmdDispatch = (PFN_vkCmdDispatch)gpa(dev, "vkCmdDispatch");
435 table->CmdDispatchIndirect = (PFN_vkCmdDispatchIndirect)gpa(dev, "vkCmdDispatchIndirect");
436 table->CmdCopyBuffer = (PFN_vkCmdCopyBuffer)gpa(dev, "vkCmdCopyBuffer");
437 table->CmdCopyImage = (PFN_vkCmdCopyImage)gpa(dev, "vkCmdCopyImage");
438 table->CmdBlitImage = (PFN_vkCmdBlitImage)gpa(dev, "vkCmdBlitImage");
439 table->CmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage)gpa(dev, "vkCmdCopyBufferToImage");
440 table->CmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer)gpa(dev, "vkCmdCopyImageToBuffer");
441 table->CmdUpdateBuffer = (PFN_vkCmdUpdateBuffer)gpa(dev, "vkCmdUpdateBuffer");
442 table->CmdFillBuffer = (PFN_vkCmdFillBuffer)gpa(dev, "vkCmdFillBuffer");
443 table->CmdClearColorImage = (PFN_vkCmdClearColorImage)gpa(dev, "vkCmdClearColorImage");
444 table->CmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage)gpa(dev, "vkCmdClearDepthStencilImage");
445 table->CmdClearAttachments = (PFN_vkCmdClearAttachments)gpa(dev, "vkCmdClearAttachments");
446 table->CmdResolveImage = (PFN_vkCmdResolveImage)gpa(dev, "vkCmdResolveImage");
447 table->CmdSetEvent = (PFN_vkCmdSetEvent)gpa(dev, "vkCmdSetEvent");
448 table->CmdResetEvent = (PFN_vkCmdResetEvent)gpa(dev, "vkCmdResetEvent");
449 table->CmdWaitEvents = (PFN_vkCmdWaitEvents)gpa(dev, "vkCmdWaitEvents");
450 table->CmdPipelineBarrier = (PFN_vkCmdPipelineBarrier)gpa(dev, "vkCmdPipelineBarrier");
451 table->CmdBeginQuery = (PFN_vkCmdBeginQuery)gpa(dev, "vkCmdBeginQuery");
452 table->CmdEndQuery = (PFN_vkCmdEndQuery)gpa(dev, "vkCmdEndQuery");
453 table->CmdResetQueryPool = (PFN_vkCmdResetQueryPool)gpa(dev, "vkCmdResetQueryPool");
454 table->CmdWriteTimestamp = (PFN_vkCmdWriteTimestamp)gpa(dev, "vkCmdWriteTimestamp");
455 table->CmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults)gpa(dev, "vkCmdCopyQueryPoolResults");
456 table->CmdPushConstants = (PFN_vkCmdPushConstants)gpa(dev, "vkCmdPushConstants");
457 table->CmdBeginRenderPass = (PFN_vkCmdBeginRenderPass)gpa(dev, "vkCmdBeginRenderPass");
458 table->CmdNextSubpass = (PFN_vkCmdNextSubpass)gpa(dev, "vkCmdNextSubpass");
459 table->CmdEndRenderPass = (PFN_vkCmdEndRenderPass)gpa(dev, "vkCmdEndRenderPass");
460 table->CmdExecuteCommands = (PFN_vkCmdExecuteCommands)gpa(dev, "vkCmdExecuteCommands");
461
462 // ---- Core Vulkan 1.1 commands
463 table->BindBufferMemory2 = (PFN_vkBindBufferMemory2)gpa(dev, "vkBindBufferMemory2");
464 table->BindImageMemory2 = (PFN_vkBindImageMemory2)gpa(dev, "vkBindImageMemory2");
465 table->GetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures)gpa(dev, "vkGetDeviceGroupPeerMemoryFeatures");
466 table->CmdSetDeviceMask = (PFN_vkCmdSetDeviceMask)gpa(dev, "vkCmdSetDeviceMask");
467 table->CmdDispatchBase = (PFN_vkCmdDispatchBase)gpa(dev, "vkCmdDispatchBase");
468 table->GetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2)gpa(dev, "vkGetImageMemoryRequirements2");
469 table->GetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2)gpa(dev, "vkGetBufferMemoryRequirements2");
470 table->GetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2)gpa(dev, "vkGetImageSparseMemoryRequirements2");
471 table->TrimCommandPool = (PFN_vkTrimCommandPool)gpa(dev, "vkTrimCommandPool");
472 table->GetDeviceQueue2 = (PFN_vkGetDeviceQueue2)gpa(dev, "vkGetDeviceQueue2");
473 table->CreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion)gpa(dev, "vkCreateSamplerYcbcrConversion");
474 table->DestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion)gpa(dev, "vkDestroySamplerYcbcrConversion");
475 table->CreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate)gpa(dev, "vkCreateDescriptorUpdateTemplate");
476 table->DestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate)gpa(dev, "vkDestroyDescriptorUpdateTemplate");
477 table->UpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate)gpa(dev, "vkUpdateDescriptorSetWithTemplate");
478 table->GetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport)gpa(dev, "vkGetDescriptorSetLayoutSupport");
479
480 // ---- Core Vulkan 1.2 commands
481 table->CmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount)gpa(dev, "vkCmdDrawIndirectCount");
482 table->CmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount)gpa(dev, "vkCmdDrawIndexedIndirectCount");
483 table->CreateRenderPass2 = (PFN_vkCreateRenderPass2)gpa(dev, "vkCreateRenderPass2");
484 table->CmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2)gpa(dev, "vkCmdBeginRenderPass2");
485 table->CmdNextSubpass2 = (PFN_vkCmdNextSubpass2)gpa(dev, "vkCmdNextSubpass2");
486 table->CmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2)gpa(dev, "vkCmdEndRenderPass2");
487 table->ResetQueryPool = (PFN_vkResetQueryPool)gpa(dev, "vkResetQueryPool");
488 table->GetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue)gpa(dev, "vkGetSemaphoreCounterValue");
489 table->WaitSemaphores = (PFN_vkWaitSemaphores)gpa(dev, "vkWaitSemaphores");
490 table->SignalSemaphore = (PFN_vkSignalSemaphore)gpa(dev, "vkSignalSemaphore");
491 table->GetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress)gpa(dev, "vkGetBufferDeviceAddress");
492 table->GetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress)gpa(dev, "vkGetBufferOpaqueCaptureAddress");
493 table->GetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress)gpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddress");
494
495 // ---- Core Vulkan 1.3 commands
496 table->CreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot)gpa(dev, "vkCreatePrivateDataSlot");
497 table->DestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot)gpa(dev, "vkDestroyPrivateDataSlot");
498 table->SetPrivateData = (PFN_vkSetPrivateData)gpa(dev, "vkSetPrivateData");
499 table->GetPrivateData = (PFN_vkGetPrivateData)gpa(dev, "vkGetPrivateData");
500 table->CmdSetEvent2 = (PFN_vkCmdSetEvent2)gpa(dev, "vkCmdSetEvent2");
501 table->CmdResetEvent2 = (PFN_vkCmdResetEvent2)gpa(dev, "vkCmdResetEvent2");
502 table->CmdWaitEvents2 = (PFN_vkCmdWaitEvents2)gpa(dev, "vkCmdWaitEvents2");
503 table->CmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2)gpa(dev, "vkCmdPipelineBarrier2");
504 table->CmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2)gpa(dev, "vkCmdWriteTimestamp2");
505 table->QueueSubmit2 = (PFN_vkQueueSubmit2)gpa(dev, "vkQueueSubmit2");
506 table->CmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2)gpa(dev, "vkCmdCopyBuffer2");
507 table->CmdCopyImage2 = (PFN_vkCmdCopyImage2)gpa(dev, "vkCmdCopyImage2");
508 table->CmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2)gpa(dev, "vkCmdCopyBufferToImage2");
509 table->CmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2)gpa(dev, "vkCmdCopyImageToBuffer2");
510 table->CmdBlitImage2 = (PFN_vkCmdBlitImage2)gpa(dev, "vkCmdBlitImage2");
511 table->CmdResolveImage2 = (PFN_vkCmdResolveImage2)gpa(dev, "vkCmdResolveImage2");
512 table->CmdBeginRendering = (PFN_vkCmdBeginRendering)gpa(dev, "vkCmdBeginRendering");
513 table->CmdEndRendering = (PFN_vkCmdEndRendering)gpa(dev, "vkCmdEndRendering");
514 table->CmdSetCullMode = (PFN_vkCmdSetCullMode)gpa(dev, "vkCmdSetCullMode");
515 table->CmdSetFrontFace = (PFN_vkCmdSetFrontFace)gpa(dev, "vkCmdSetFrontFace");
516 table->CmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology)gpa(dev, "vkCmdSetPrimitiveTopology");
517 table->CmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount)gpa(dev, "vkCmdSetViewportWithCount");
518 table->CmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount)gpa(dev, "vkCmdSetScissorWithCount");
519 table->CmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2)gpa(dev, "vkCmdBindVertexBuffers2");
520 table->CmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable)gpa(dev, "vkCmdSetDepthTestEnable");
521 table->CmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable)gpa(dev, "vkCmdSetDepthWriteEnable");
522 table->CmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp)gpa(dev, "vkCmdSetDepthCompareOp");
523 table->CmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable)gpa(dev, "vkCmdSetDepthBoundsTestEnable");
524 table->CmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable)gpa(dev, "vkCmdSetStencilTestEnable");
525 table->CmdSetStencilOp = (PFN_vkCmdSetStencilOp)gpa(dev, "vkCmdSetStencilOp");
526 table->CmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable)gpa(dev, "vkCmdSetRasterizerDiscardEnable");
527 table->CmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable)gpa(dev, "vkCmdSetDepthBiasEnable");
528 table->CmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable)gpa(dev, "vkCmdSetPrimitiveRestartEnable");
529 table->GetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements)gpa(dev, "vkGetDeviceBufferMemoryRequirements");
530 table->GetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements)gpa(dev, "vkGetDeviceImageMemoryRequirements");
531 table->GetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements)gpa(dev, "vkGetDeviceImageSparseMemoryRequirements");
532
533 // ---- Core Vulkan 1.4 commands
534 table->CmdSetLineStipple = (PFN_vkCmdSetLineStipple)gpa(dev, "vkCmdSetLineStipple");
535 table->MapMemory2 = (PFN_vkMapMemory2)gpa(dev, "vkMapMemory2");
536 table->UnmapMemory2 = (PFN_vkUnmapMemory2)gpa(dev, "vkUnmapMemory2");
537 table->CmdBindIndexBuffer2 = (PFN_vkCmdBindIndexBuffer2)gpa(dev, "vkCmdBindIndexBuffer2");
538 table->GetRenderingAreaGranularity = (PFN_vkGetRenderingAreaGranularity)gpa(dev, "vkGetRenderingAreaGranularity");
539 table->GetDeviceImageSubresourceLayout = (PFN_vkGetDeviceImageSubresourceLayout)gpa(dev, "vkGetDeviceImageSubresourceLayout");
540 table->GetImageSubresourceLayout2 = (PFN_vkGetImageSubresourceLayout2)gpa(dev, "vkGetImageSubresourceLayout2");
541 table->CmdPushDescriptorSet = (PFN_vkCmdPushDescriptorSet)gpa(dev, "vkCmdPushDescriptorSet");
542 table->CmdPushDescriptorSetWithTemplate = (PFN_vkCmdPushDescriptorSetWithTemplate)gpa(dev, "vkCmdPushDescriptorSetWithTemplate");
543 table->CmdSetRenderingAttachmentLocations = (PFN_vkCmdSetRenderingAttachmentLocations)gpa(dev, "vkCmdSetRenderingAttachmentLocations");
544 table->CmdSetRenderingInputAttachmentIndices = (PFN_vkCmdSetRenderingInputAttachmentIndices)gpa(dev, "vkCmdSetRenderingInputAttachmentIndices");
545 table->CmdBindDescriptorSets2 = (PFN_vkCmdBindDescriptorSets2)gpa(dev, "vkCmdBindDescriptorSets2");
546 table->CmdPushConstants2 = (PFN_vkCmdPushConstants2)gpa(dev, "vkCmdPushConstants2");
547 table->CmdPushDescriptorSet2 = (PFN_vkCmdPushDescriptorSet2)gpa(dev, "vkCmdPushDescriptorSet2");
548 table->CmdPushDescriptorSetWithTemplate2 = (PFN_vkCmdPushDescriptorSetWithTemplate2)gpa(dev, "vkCmdPushDescriptorSetWithTemplate2");
549 table->CopyMemoryToImage = (PFN_vkCopyMemoryToImage)gpa(dev, "vkCopyMemoryToImage");
550 table->CopyImageToMemory = (PFN_vkCopyImageToMemory)gpa(dev, "vkCopyImageToMemory");
551 table->CopyImageToImage = (PFN_vkCopyImageToImage)gpa(dev, "vkCopyImageToImage");
552 table->TransitionImageLayout = (PFN_vkTransitionImageLayout)gpa(dev, "vkTransitionImageLayout");
553 }
554
555 // Init Device function pointer dispatch table with extension commands
loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table * dev_table,PFN_vkGetInstanceProcAddr gipa,PFN_vkGetDeviceProcAddr gdpa,VkInstance inst,VkDevice dev)556 VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table *dev_table,
557 PFN_vkGetInstanceProcAddr gipa,
558 PFN_vkGetDeviceProcAddr gdpa,
559 VkInstance inst,
560 VkDevice dev) {
561 VkLayerDispatchTable *table = &dev_table->core_dispatch;
562 table->magic = DEVICE_DISP_TABLE_MAGIC_NUMBER;
563
564 // ---- VK_KHR_swapchain extension commands
565 table->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gdpa(dev, "vkCreateSwapchainKHR");
566 table->DestroySwapchainKHR = (PFN_vkDestroySwapchainKHR)gdpa(dev, "vkDestroySwapchainKHR");
567 table->GetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR)gdpa(dev, "vkGetSwapchainImagesKHR");
568 table->AcquireNextImageKHR = (PFN_vkAcquireNextImageKHR)gdpa(dev, "vkAcquireNextImageKHR");
569 table->QueuePresentKHR = (PFN_vkQueuePresentKHR)gdpa(dev, "vkQueuePresentKHR");
570 table->GetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR)gdpa(dev, "vkGetDeviceGroupPresentCapabilitiesKHR");
571 table->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gdpa(dev, "vkGetDeviceGroupSurfacePresentModesKHR");
572 table->AcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR)gdpa(dev, "vkAcquireNextImage2KHR");
573
574 // ---- VK_KHR_display_swapchain extension commands
575 table->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gdpa(dev, "vkCreateSharedSwapchainsKHR");
576
577 // ---- VK_KHR_video_queue extension commands
578 table->CreateVideoSessionKHR = (PFN_vkCreateVideoSessionKHR)gdpa(dev, "vkCreateVideoSessionKHR");
579 table->DestroyVideoSessionKHR = (PFN_vkDestroyVideoSessionKHR)gdpa(dev, "vkDestroyVideoSessionKHR");
580 table->GetVideoSessionMemoryRequirementsKHR = (PFN_vkGetVideoSessionMemoryRequirementsKHR)gdpa(dev, "vkGetVideoSessionMemoryRequirementsKHR");
581 table->BindVideoSessionMemoryKHR = (PFN_vkBindVideoSessionMemoryKHR)gdpa(dev, "vkBindVideoSessionMemoryKHR");
582 table->CreateVideoSessionParametersKHR = (PFN_vkCreateVideoSessionParametersKHR)gdpa(dev, "vkCreateVideoSessionParametersKHR");
583 table->UpdateVideoSessionParametersKHR = (PFN_vkUpdateVideoSessionParametersKHR)gdpa(dev, "vkUpdateVideoSessionParametersKHR");
584 table->DestroyVideoSessionParametersKHR = (PFN_vkDestroyVideoSessionParametersKHR)gdpa(dev, "vkDestroyVideoSessionParametersKHR");
585 table->CmdBeginVideoCodingKHR = (PFN_vkCmdBeginVideoCodingKHR)gdpa(dev, "vkCmdBeginVideoCodingKHR");
586 table->CmdEndVideoCodingKHR = (PFN_vkCmdEndVideoCodingKHR)gdpa(dev, "vkCmdEndVideoCodingKHR");
587 table->CmdControlVideoCodingKHR = (PFN_vkCmdControlVideoCodingKHR)gdpa(dev, "vkCmdControlVideoCodingKHR");
588
589 // ---- VK_KHR_video_decode_queue extension commands
590 table->CmdDecodeVideoKHR = (PFN_vkCmdDecodeVideoKHR)gdpa(dev, "vkCmdDecodeVideoKHR");
591
592 // ---- VK_KHR_dynamic_rendering extension commands
593 table->CmdBeginRenderingKHR = (PFN_vkCmdBeginRenderingKHR)gdpa(dev, "vkCmdBeginRenderingKHR");
594 table->CmdEndRenderingKHR = (PFN_vkCmdEndRenderingKHR)gdpa(dev, "vkCmdEndRenderingKHR");
595
596 // ---- VK_KHR_device_group extension commands
597 table->GetDeviceGroupPeerMemoryFeaturesKHR = (PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)gdpa(dev, "vkGetDeviceGroupPeerMemoryFeaturesKHR");
598 table->CmdSetDeviceMaskKHR = (PFN_vkCmdSetDeviceMaskKHR)gdpa(dev, "vkCmdSetDeviceMaskKHR");
599 table->CmdDispatchBaseKHR = (PFN_vkCmdDispatchBaseKHR)gdpa(dev, "vkCmdDispatchBaseKHR");
600
601 // ---- VK_KHR_maintenance1 extension commands
602 table->TrimCommandPoolKHR = (PFN_vkTrimCommandPoolKHR)gdpa(dev, "vkTrimCommandPoolKHR");
603
604 // ---- VK_KHR_external_memory_win32 extension commands
605 #if defined(VK_USE_PLATFORM_WIN32_KHR)
606 table->GetMemoryWin32HandleKHR = (PFN_vkGetMemoryWin32HandleKHR)gdpa(dev, "vkGetMemoryWin32HandleKHR");
607 #endif // VK_USE_PLATFORM_WIN32_KHR
608 #if defined(VK_USE_PLATFORM_WIN32_KHR)
609 table->GetMemoryWin32HandlePropertiesKHR = (PFN_vkGetMemoryWin32HandlePropertiesKHR)gdpa(dev, "vkGetMemoryWin32HandlePropertiesKHR");
610 #endif // VK_USE_PLATFORM_WIN32_KHR
611
612 // ---- VK_KHR_external_memory_fd extension commands
613 table->GetMemoryFdKHR = (PFN_vkGetMemoryFdKHR)gdpa(dev, "vkGetMemoryFdKHR");
614 table->GetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)gdpa(dev, "vkGetMemoryFdPropertiesKHR");
615
616 // ---- VK_KHR_external_semaphore_win32 extension commands
617 #if defined(VK_USE_PLATFORM_WIN32_KHR)
618 table->ImportSemaphoreWin32HandleKHR = (PFN_vkImportSemaphoreWin32HandleKHR)gdpa(dev, "vkImportSemaphoreWin32HandleKHR");
619 #endif // VK_USE_PLATFORM_WIN32_KHR
620 #if defined(VK_USE_PLATFORM_WIN32_KHR)
621 table->GetSemaphoreWin32HandleKHR = (PFN_vkGetSemaphoreWin32HandleKHR)gdpa(dev, "vkGetSemaphoreWin32HandleKHR");
622 #endif // VK_USE_PLATFORM_WIN32_KHR
623
624 // ---- VK_KHR_external_semaphore_fd extension commands
625 table->ImportSemaphoreFdKHR = (PFN_vkImportSemaphoreFdKHR)gdpa(dev, "vkImportSemaphoreFdKHR");
626 table->GetSemaphoreFdKHR = (PFN_vkGetSemaphoreFdKHR)gdpa(dev, "vkGetSemaphoreFdKHR");
627
628 // ---- VK_KHR_push_descriptor extension commands
629 table->CmdPushDescriptorSetKHR = (PFN_vkCmdPushDescriptorSetKHR)gdpa(dev, "vkCmdPushDescriptorSetKHR");
630 table->CmdPushDescriptorSetWithTemplateKHR = (PFN_vkCmdPushDescriptorSetWithTemplateKHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplateKHR");
631
632 // ---- VK_KHR_descriptor_update_template extension commands
633 table->CreateDescriptorUpdateTemplateKHR = (PFN_vkCreateDescriptorUpdateTemplateKHR)gdpa(dev, "vkCreateDescriptorUpdateTemplateKHR");
634 table->DestroyDescriptorUpdateTemplateKHR = (PFN_vkDestroyDescriptorUpdateTemplateKHR)gdpa(dev, "vkDestroyDescriptorUpdateTemplateKHR");
635 table->UpdateDescriptorSetWithTemplateKHR = (PFN_vkUpdateDescriptorSetWithTemplateKHR)gdpa(dev, "vkUpdateDescriptorSetWithTemplateKHR");
636
637 // ---- VK_KHR_create_renderpass2 extension commands
638 table->CreateRenderPass2KHR = (PFN_vkCreateRenderPass2KHR)gdpa(dev, "vkCreateRenderPass2KHR");
639 table->CmdBeginRenderPass2KHR = (PFN_vkCmdBeginRenderPass2KHR)gdpa(dev, "vkCmdBeginRenderPass2KHR");
640 table->CmdNextSubpass2KHR = (PFN_vkCmdNextSubpass2KHR)gdpa(dev, "vkCmdNextSubpass2KHR");
641 table->CmdEndRenderPass2KHR = (PFN_vkCmdEndRenderPass2KHR)gdpa(dev, "vkCmdEndRenderPass2KHR");
642
643 // ---- VK_KHR_shared_presentable_image extension commands
644 table->GetSwapchainStatusKHR = (PFN_vkGetSwapchainStatusKHR)gdpa(dev, "vkGetSwapchainStatusKHR");
645
646 // ---- VK_KHR_external_fence_win32 extension commands
647 #if defined(VK_USE_PLATFORM_WIN32_KHR)
648 table->ImportFenceWin32HandleKHR = (PFN_vkImportFenceWin32HandleKHR)gdpa(dev, "vkImportFenceWin32HandleKHR");
649 #endif // VK_USE_PLATFORM_WIN32_KHR
650 #if defined(VK_USE_PLATFORM_WIN32_KHR)
651 table->GetFenceWin32HandleKHR = (PFN_vkGetFenceWin32HandleKHR)gdpa(dev, "vkGetFenceWin32HandleKHR");
652 #endif // VK_USE_PLATFORM_WIN32_KHR
653
654 // ---- VK_KHR_external_fence_fd extension commands
655 table->ImportFenceFdKHR = (PFN_vkImportFenceFdKHR)gdpa(dev, "vkImportFenceFdKHR");
656 table->GetFenceFdKHR = (PFN_vkGetFenceFdKHR)gdpa(dev, "vkGetFenceFdKHR");
657
658 // ---- VK_KHR_performance_query extension commands
659 table->AcquireProfilingLockKHR = (PFN_vkAcquireProfilingLockKHR)gdpa(dev, "vkAcquireProfilingLockKHR");
660 table->ReleaseProfilingLockKHR = (PFN_vkReleaseProfilingLockKHR)gdpa(dev, "vkReleaseProfilingLockKHR");
661
662 // ---- VK_KHR_get_memory_requirements2 extension commands
663 table->GetImageMemoryRequirements2KHR = (PFN_vkGetImageMemoryRequirements2KHR)gdpa(dev, "vkGetImageMemoryRequirements2KHR");
664 table->GetBufferMemoryRequirements2KHR = (PFN_vkGetBufferMemoryRequirements2KHR)gdpa(dev, "vkGetBufferMemoryRequirements2KHR");
665 table->GetImageSparseMemoryRequirements2KHR = (PFN_vkGetImageSparseMemoryRequirements2KHR)gdpa(dev, "vkGetImageSparseMemoryRequirements2KHR");
666
667 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
668 table->CreateSamplerYcbcrConversionKHR = (PFN_vkCreateSamplerYcbcrConversionKHR)gdpa(dev, "vkCreateSamplerYcbcrConversionKHR");
669 table->DestroySamplerYcbcrConversionKHR = (PFN_vkDestroySamplerYcbcrConversionKHR)gdpa(dev, "vkDestroySamplerYcbcrConversionKHR");
670
671 // ---- VK_KHR_bind_memory2 extension commands
672 table->BindBufferMemory2KHR = (PFN_vkBindBufferMemory2KHR)gdpa(dev, "vkBindBufferMemory2KHR");
673 table->BindImageMemory2KHR = (PFN_vkBindImageMemory2KHR)gdpa(dev, "vkBindImageMemory2KHR");
674
675 // ---- VK_KHR_maintenance3 extension commands
676 table->GetDescriptorSetLayoutSupportKHR = (PFN_vkGetDescriptorSetLayoutSupportKHR)gdpa(dev, "vkGetDescriptorSetLayoutSupportKHR");
677
678 // ---- VK_KHR_draw_indirect_count extension commands
679 table->CmdDrawIndirectCountKHR = (PFN_vkCmdDrawIndirectCountKHR)gdpa(dev, "vkCmdDrawIndirectCountKHR");
680 table->CmdDrawIndexedIndirectCountKHR = (PFN_vkCmdDrawIndexedIndirectCountKHR)gdpa(dev, "vkCmdDrawIndexedIndirectCountKHR");
681
682 // ---- VK_KHR_timeline_semaphore extension commands
683 table->GetSemaphoreCounterValueKHR = (PFN_vkGetSemaphoreCounterValueKHR)gdpa(dev, "vkGetSemaphoreCounterValueKHR");
684 table->WaitSemaphoresKHR = (PFN_vkWaitSemaphoresKHR)gdpa(dev, "vkWaitSemaphoresKHR");
685 table->SignalSemaphoreKHR = (PFN_vkSignalSemaphoreKHR)gdpa(dev, "vkSignalSemaphoreKHR");
686
687 // ---- VK_KHR_fragment_shading_rate extension commands
688 table->CmdSetFragmentShadingRateKHR = (PFN_vkCmdSetFragmentShadingRateKHR)gdpa(dev, "vkCmdSetFragmentShadingRateKHR");
689
690 // ---- VK_KHR_dynamic_rendering_local_read extension commands
691 table->CmdSetRenderingAttachmentLocationsKHR = (PFN_vkCmdSetRenderingAttachmentLocationsKHR)gdpa(dev, "vkCmdSetRenderingAttachmentLocationsKHR");
692 table->CmdSetRenderingInputAttachmentIndicesKHR = (PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)gdpa(dev, "vkCmdSetRenderingInputAttachmentIndicesKHR");
693
694 // ---- VK_KHR_present_wait extension commands
695 table->WaitForPresentKHR = (PFN_vkWaitForPresentKHR)gdpa(dev, "vkWaitForPresentKHR");
696
697 // ---- VK_KHR_buffer_device_address extension commands
698 table->GetBufferDeviceAddressKHR = (PFN_vkGetBufferDeviceAddressKHR)gdpa(dev, "vkGetBufferDeviceAddressKHR");
699 table->GetBufferOpaqueCaptureAddressKHR = (PFN_vkGetBufferOpaqueCaptureAddressKHR)gdpa(dev, "vkGetBufferOpaqueCaptureAddressKHR");
700 table->GetDeviceMemoryOpaqueCaptureAddressKHR = (PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)gdpa(dev, "vkGetDeviceMemoryOpaqueCaptureAddressKHR");
701
702 // ---- VK_KHR_deferred_host_operations extension commands
703 table->CreateDeferredOperationKHR = (PFN_vkCreateDeferredOperationKHR)gdpa(dev, "vkCreateDeferredOperationKHR");
704 table->DestroyDeferredOperationKHR = (PFN_vkDestroyDeferredOperationKHR)gdpa(dev, "vkDestroyDeferredOperationKHR");
705 table->GetDeferredOperationMaxConcurrencyKHR = (PFN_vkGetDeferredOperationMaxConcurrencyKHR)gdpa(dev, "vkGetDeferredOperationMaxConcurrencyKHR");
706 table->GetDeferredOperationResultKHR = (PFN_vkGetDeferredOperationResultKHR)gdpa(dev, "vkGetDeferredOperationResultKHR");
707 table->DeferredOperationJoinKHR = (PFN_vkDeferredOperationJoinKHR)gdpa(dev, "vkDeferredOperationJoinKHR");
708
709 // ---- VK_KHR_pipeline_executable_properties extension commands
710 table->GetPipelineExecutablePropertiesKHR = (PFN_vkGetPipelineExecutablePropertiesKHR)gdpa(dev, "vkGetPipelineExecutablePropertiesKHR");
711 table->GetPipelineExecutableStatisticsKHR = (PFN_vkGetPipelineExecutableStatisticsKHR)gdpa(dev, "vkGetPipelineExecutableStatisticsKHR");
712 table->GetPipelineExecutableInternalRepresentationsKHR = (PFN_vkGetPipelineExecutableInternalRepresentationsKHR)gdpa(dev, "vkGetPipelineExecutableInternalRepresentationsKHR");
713
714 // ---- VK_KHR_map_memory2 extension commands
715 table->MapMemory2KHR = (PFN_vkMapMemory2KHR)gdpa(dev, "vkMapMemory2KHR");
716 table->UnmapMemory2KHR = (PFN_vkUnmapMemory2KHR)gdpa(dev, "vkUnmapMemory2KHR");
717
718 // ---- VK_KHR_video_encode_queue extension commands
719 table->GetEncodedVideoSessionParametersKHR = (PFN_vkGetEncodedVideoSessionParametersKHR)gdpa(dev, "vkGetEncodedVideoSessionParametersKHR");
720 table->CmdEncodeVideoKHR = (PFN_vkCmdEncodeVideoKHR)gdpa(dev, "vkCmdEncodeVideoKHR");
721
722 // ---- VK_KHR_synchronization2 extension commands
723 table->CmdSetEvent2KHR = (PFN_vkCmdSetEvent2KHR)gdpa(dev, "vkCmdSetEvent2KHR");
724 table->CmdResetEvent2KHR = (PFN_vkCmdResetEvent2KHR)gdpa(dev, "vkCmdResetEvent2KHR");
725 table->CmdWaitEvents2KHR = (PFN_vkCmdWaitEvents2KHR)gdpa(dev, "vkCmdWaitEvents2KHR");
726 table->CmdPipelineBarrier2KHR = (PFN_vkCmdPipelineBarrier2KHR)gdpa(dev, "vkCmdPipelineBarrier2KHR");
727 table->CmdWriteTimestamp2KHR = (PFN_vkCmdWriteTimestamp2KHR)gdpa(dev, "vkCmdWriteTimestamp2KHR");
728 table->QueueSubmit2KHR = (PFN_vkQueueSubmit2KHR)gdpa(dev, "vkQueueSubmit2KHR");
729
730 // ---- VK_KHR_copy_commands2 extension commands
731 table->CmdCopyBuffer2KHR = (PFN_vkCmdCopyBuffer2KHR)gdpa(dev, "vkCmdCopyBuffer2KHR");
732 table->CmdCopyImage2KHR = (PFN_vkCmdCopyImage2KHR)gdpa(dev, "vkCmdCopyImage2KHR");
733 table->CmdCopyBufferToImage2KHR = (PFN_vkCmdCopyBufferToImage2KHR)gdpa(dev, "vkCmdCopyBufferToImage2KHR");
734 table->CmdCopyImageToBuffer2KHR = (PFN_vkCmdCopyImageToBuffer2KHR)gdpa(dev, "vkCmdCopyImageToBuffer2KHR");
735 table->CmdBlitImage2KHR = (PFN_vkCmdBlitImage2KHR)gdpa(dev, "vkCmdBlitImage2KHR");
736 table->CmdResolveImage2KHR = (PFN_vkCmdResolveImage2KHR)gdpa(dev, "vkCmdResolveImage2KHR");
737
738 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
739 table->CmdTraceRaysIndirect2KHR = (PFN_vkCmdTraceRaysIndirect2KHR)gdpa(dev, "vkCmdTraceRaysIndirect2KHR");
740
741 // ---- VK_KHR_maintenance4 extension commands
742 table->GetDeviceBufferMemoryRequirementsKHR = (PFN_vkGetDeviceBufferMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceBufferMemoryRequirementsKHR");
743 table->GetDeviceImageMemoryRequirementsKHR = (PFN_vkGetDeviceImageMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageMemoryRequirementsKHR");
744 table->GetDeviceImageSparseMemoryRequirementsKHR = (PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)gdpa(dev, "vkGetDeviceImageSparseMemoryRequirementsKHR");
745
746 // ---- VK_KHR_maintenance5 extension commands
747 table->CmdBindIndexBuffer2KHR = (PFN_vkCmdBindIndexBuffer2KHR)gdpa(dev, "vkCmdBindIndexBuffer2KHR");
748 table->GetRenderingAreaGranularityKHR = (PFN_vkGetRenderingAreaGranularityKHR)gdpa(dev, "vkGetRenderingAreaGranularityKHR");
749 table->GetDeviceImageSubresourceLayoutKHR = (PFN_vkGetDeviceImageSubresourceLayoutKHR)gdpa(dev, "vkGetDeviceImageSubresourceLayoutKHR");
750 table->GetImageSubresourceLayout2KHR = (PFN_vkGetImageSubresourceLayout2KHR)gdpa(dev, "vkGetImageSubresourceLayout2KHR");
751
752 // ---- VK_KHR_pipeline_binary extension commands
753 table->CreatePipelineBinariesKHR = (PFN_vkCreatePipelineBinariesKHR)gdpa(dev, "vkCreatePipelineBinariesKHR");
754 table->DestroyPipelineBinaryKHR = (PFN_vkDestroyPipelineBinaryKHR)gdpa(dev, "vkDestroyPipelineBinaryKHR");
755 table->GetPipelineKeyKHR = (PFN_vkGetPipelineKeyKHR)gdpa(dev, "vkGetPipelineKeyKHR");
756 table->GetPipelineBinaryDataKHR = (PFN_vkGetPipelineBinaryDataKHR)gdpa(dev, "vkGetPipelineBinaryDataKHR");
757 table->ReleaseCapturedPipelineDataKHR = (PFN_vkReleaseCapturedPipelineDataKHR)gdpa(dev, "vkReleaseCapturedPipelineDataKHR");
758
759 // ---- VK_KHR_line_rasterization extension commands
760 table->CmdSetLineStippleKHR = (PFN_vkCmdSetLineStippleKHR)gdpa(dev, "vkCmdSetLineStippleKHR");
761
762 // ---- VK_KHR_calibrated_timestamps extension commands
763 table->GetCalibratedTimestampsKHR = (PFN_vkGetCalibratedTimestampsKHR)gdpa(dev, "vkGetCalibratedTimestampsKHR");
764
765 // ---- VK_KHR_maintenance6 extension commands
766 table->CmdBindDescriptorSets2KHR = (PFN_vkCmdBindDescriptorSets2KHR)gdpa(dev, "vkCmdBindDescriptorSets2KHR");
767 table->CmdPushConstants2KHR = (PFN_vkCmdPushConstants2KHR)gdpa(dev, "vkCmdPushConstants2KHR");
768 table->CmdPushDescriptorSet2KHR = (PFN_vkCmdPushDescriptorSet2KHR)gdpa(dev, "vkCmdPushDescriptorSet2KHR");
769 table->CmdPushDescriptorSetWithTemplate2KHR = (PFN_vkCmdPushDescriptorSetWithTemplate2KHR)gdpa(dev, "vkCmdPushDescriptorSetWithTemplate2KHR");
770 table->CmdSetDescriptorBufferOffsets2EXT = (PFN_vkCmdSetDescriptorBufferOffsets2EXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsets2EXT");
771 table->CmdBindDescriptorBufferEmbeddedSamplers2EXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT");
772
773 // ---- VK_EXT_debug_marker extension commands
774 table->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gdpa(dev, "vkDebugMarkerSetObjectTagEXT");
775 table->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gdpa(dev, "vkDebugMarkerSetObjectNameEXT");
776 table->CmdDebugMarkerBeginEXT = (PFN_vkCmdDebugMarkerBeginEXT)gdpa(dev, "vkCmdDebugMarkerBeginEXT");
777 table->CmdDebugMarkerEndEXT = (PFN_vkCmdDebugMarkerEndEXT)gdpa(dev, "vkCmdDebugMarkerEndEXT");
778 table->CmdDebugMarkerInsertEXT = (PFN_vkCmdDebugMarkerInsertEXT)gdpa(dev, "vkCmdDebugMarkerInsertEXT");
779
780 // ---- VK_EXT_transform_feedback extension commands
781 table->CmdBindTransformFeedbackBuffersEXT = (PFN_vkCmdBindTransformFeedbackBuffersEXT)gdpa(dev, "vkCmdBindTransformFeedbackBuffersEXT");
782 table->CmdBeginTransformFeedbackEXT = (PFN_vkCmdBeginTransformFeedbackEXT)gdpa(dev, "vkCmdBeginTransformFeedbackEXT");
783 table->CmdEndTransformFeedbackEXT = (PFN_vkCmdEndTransformFeedbackEXT)gdpa(dev, "vkCmdEndTransformFeedbackEXT");
784 table->CmdBeginQueryIndexedEXT = (PFN_vkCmdBeginQueryIndexedEXT)gdpa(dev, "vkCmdBeginQueryIndexedEXT");
785 table->CmdEndQueryIndexedEXT = (PFN_vkCmdEndQueryIndexedEXT)gdpa(dev, "vkCmdEndQueryIndexedEXT");
786 table->CmdDrawIndirectByteCountEXT = (PFN_vkCmdDrawIndirectByteCountEXT)gdpa(dev, "vkCmdDrawIndirectByteCountEXT");
787
788 // ---- VK_NVX_binary_import extension commands
789 table->CreateCuModuleNVX = (PFN_vkCreateCuModuleNVX)gdpa(dev, "vkCreateCuModuleNVX");
790 table->CreateCuFunctionNVX = (PFN_vkCreateCuFunctionNVX)gdpa(dev, "vkCreateCuFunctionNVX");
791 table->DestroyCuModuleNVX = (PFN_vkDestroyCuModuleNVX)gdpa(dev, "vkDestroyCuModuleNVX");
792 table->DestroyCuFunctionNVX = (PFN_vkDestroyCuFunctionNVX)gdpa(dev, "vkDestroyCuFunctionNVX");
793 table->CmdCuLaunchKernelNVX = (PFN_vkCmdCuLaunchKernelNVX)gdpa(dev, "vkCmdCuLaunchKernelNVX");
794
795 // ---- VK_NVX_image_view_handle extension commands
796 table->GetImageViewHandleNVX = (PFN_vkGetImageViewHandleNVX)gdpa(dev, "vkGetImageViewHandleNVX");
797 table->GetImageViewHandle64NVX = (PFN_vkGetImageViewHandle64NVX)gdpa(dev, "vkGetImageViewHandle64NVX");
798 table->GetImageViewAddressNVX = (PFN_vkGetImageViewAddressNVX)gdpa(dev, "vkGetImageViewAddressNVX");
799
800 // ---- VK_AMD_draw_indirect_count extension commands
801 table->CmdDrawIndirectCountAMD = (PFN_vkCmdDrawIndirectCountAMD)gdpa(dev, "vkCmdDrawIndirectCountAMD");
802 table->CmdDrawIndexedIndirectCountAMD = (PFN_vkCmdDrawIndexedIndirectCountAMD)gdpa(dev, "vkCmdDrawIndexedIndirectCountAMD");
803
804 // ---- VK_AMD_shader_info extension commands
805 table->GetShaderInfoAMD = (PFN_vkGetShaderInfoAMD)gdpa(dev, "vkGetShaderInfoAMD");
806
807 // ---- VK_NV_external_memory_win32 extension commands
808 #if defined(VK_USE_PLATFORM_WIN32_KHR)
809 table->GetMemoryWin32HandleNV = (PFN_vkGetMemoryWin32HandleNV)gdpa(dev, "vkGetMemoryWin32HandleNV");
810 #endif // VK_USE_PLATFORM_WIN32_KHR
811
812 // ---- VK_EXT_conditional_rendering extension commands
813 table->CmdBeginConditionalRenderingEXT = (PFN_vkCmdBeginConditionalRenderingEXT)gdpa(dev, "vkCmdBeginConditionalRenderingEXT");
814 table->CmdEndConditionalRenderingEXT = (PFN_vkCmdEndConditionalRenderingEXT)gdpa(dev, "vkCmdEndConditionalRenderingEXT");
815
816 // ---- VK_NV_clip_space_w_scaling extension commands
817 table->CmdSetViewportWScalingNV = (PFN_vkCmdSetViewportWScalingNV)gdpa(dev, "vkCmdSetViewportWScalingNV");
818
819 // ---- VK_EXT_display_control extension commands
820 table->DisplayPowerControlEXT = (PFN_vkDisplayPowerControlEXT)gdpa(dev, "vkDisplayPowerControlEXT");
821 table->RegisterDeviceEventEXT = (PFN_vkRegisterDeviceEventEXT)gdpa(dev, "vkRegisterDeviceEventEXT");
822 table->RegisterDisplayEventEXT = (PFN_vkRegisterDisplayEventEXT)gdpa(dev, "vkRegisterDisplayEventEXT");
823 table->GetSwapchainCounterEXT = (PFN_vkGetSwapchainCounterEXT)gdpa(dev, "vkGetSwapchainCounterEXT");
824
825 // ---- VK_GOOGLE_display_timing extension commands
826 table->GetRefreshCycleDurationGOOGLE = (PFN_vkGetRefreshCycleDurationGOOGLE)gdpa(dev, "vkGetRefreshCycleDurationGOOGLE");
827 table->GetPastPresentationTimingGOOGLE = (PFN_vkGetPastPresentationTimingGOOGLE)gdpa(dev, "vkGetPastPresentationTimingGOOGLE");
828
829 // ---- VK_EXT_discard_rectangles extension commands
830 table->CmdSetDiscardRectangleEXT = (PFN_vkCmdSetDiscardRectangleEXT)gdpa(dev, "vkCmdSetDiscardRectangleEXT");
831 table->CmdSetDiscardRectangleEnableEXT = (PFN_vkCmdSetDiscardRectangleEnableEXT)gdpa(dev, "vkCmdSetDiscardRectangleEnableEXT");
832 table->CmdSetDiscardRectangleModeEXT = (PFN_vkCmdSetDiscardRectangleModeEXT)gdpa(dev, "vkCmdSetDiscardRectangleModeEXT");
833
834 // ---- VK_EXT_hdr_metadata extension commands
835 table->SetHdrMetadataEXT = (PFN_vkSetHdrMetadataEXT)gdpa(dev, "vkSetHdrMetadataEXT");
836
837 // ---- VK_EXT_debug_utils extension commands
838 table->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gipa(inst, "vkSetDebugUtilsObjectNameEXT");
839 table->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gipa(inst, "vkSetDebugUtilsObjectTagEXT");
840 table->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gipa(inst, "vkQueueBeginDebugUtilsLabelEXT");
841 table->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gipa(inst, "vkQueueEndDebugUtilsLabelEXT");
842 table->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gipa(inst, "vkQueueInsertDebugUtilsLabelEXT");
843 table->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gipa(inst, "vkCmdBeginDebugUtilsLabelEXT");
844 table->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gipa(inst, "vkCmdEndDebugUtilsLabelEXT");
845 table->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gipa(inst, "vkCmdInsertDebugUtilsLabelEXT");
846
847 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
848 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
849 table->GetAndroidHardwareBufferPropertiesANDROID = (PFN_vkGetAndroidHardwareBufferPropertiesANDROID)gdpa(dev, "vkGetAndroidHardwareBufferPropertiesANDROID");
850 #endif // VK_USE_PLATFORM_ANDROID_KHR
851 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
852 table->GetMemoryAndroidHardwareBufferANDROID = (PFN_vkGetMemoryAndroidHardwareBufferANDROID)gdpa(dev, "vkGetMemoryAndroidHardwareBufferANDROID");
853 #endif // VK_USE_PLATFORM_ANDROID_KHR
854
855 // ---- VK_AMDX_shader_enqueue extension commands
856 #if defined(VK_ENABLE_BETA_EXTENSIONS)
857 table->CreateExecutionGraphPipelinesAMDX = (PFN_vkCreateExecutionGraphPipelinesAMDX)gdpa(dev, "vkCreateExecutionGraphPipelinesAMDX");
858 #endif // VK_ENABLE_BETA_EXTENSIONS
859 #if defined(VK_ENABLE_BETA_EXTENSIONS)
860 table->GetExecutionGraphPipelineScratchSizeAMDX = (PFN_vkGetExecutionGraphPipelineScratchSizeAMDX)gdpa(dev, "vkGetExecutionGraphPipelineScratchSizeAMDX");
861 #endif // VK_ENABLE_BETA_EXTENSIONS
862 #if defined(VK_ENABLE_BETA_EXTENSIONS)
863 table->GetExecutionGraphPipelineNodeIndexAMDX = (PFN_vkGetExecutionGraphPipelineNodeIndexAMDX)gdpa(dev, "vkGetExecutionGraphPipelineNodeIndexAMDX");
864 #endif // VK_ENABLE_BETA_EXTENSIONS
865 #if defined(VK_ENABLE_BETA_EXTENSIONS)
866 table->CmdInitializeGraphScratchMemoryAMDX = (PFN_vkCmdInitializeGraphScratchMemoryAMDX)gdpa(dev, "vkCmdInitializeGraphScratchMemoryAMDX");
867 #endif // VK_ENABLE_BETA_EXTENSIONS
868 #if defined(VK_ENABLE_BETA_EXTENSIONS)
869 table->CmdDispatchGraphAMDX = (PFN_vkCmdDispatchGraphAMDX)gdpa(dev, "vkCmdDispatchGraphAMDX");
870 #endif // VK_ENABLE_BETA_EXTENSIONS
871 #if defined(VK_ENABLE_BETA_EXTENSIONS)
872 table->CmdDispatchGraphIndirectAMDX = (PFN_vkCmdDispatchGraphIndirectAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectAMDX");
873 #endif // VK_ENABLE_BETA_EXTENSIONS
874 #if defined(VK_ENABLE_BETA_EXTENSIONS)
875 table->CmdDispatchGraphIndirectCountAMDX = (PFN_vkCmdDispatchGraphIndirectCountAMDX)gdpa(dev, "vkCmdDispatchGraphIndirectCountAMDX");
876 #endif // VK_ENABLE_BETA_EXTENSIONS
877
878 // ---- VK_EXT_sample_locations extension commands
879 table->CmdSetSampleLocationsEXT = (PFN_vkCmdSetSampleLocationsEXT)gdpa(dev, "vkCmdSetSampleLocationsEXT");
880
881 // ---- VK_EXT_image_drm_format_modifier extension commands
882 table->GetImageDrmFormatModifierPropertiesEXT = (PFN_vkGetImageDrmFormatModifierPropertiesEXT)gdpa(dev, "vkGetImageDrmFormatModifierPropertiesEXT");
883
884 // ---- VK_EXT_validation_cache extension commands
885 table->CreateValidationCacheEXT = (PFN_vkCreateValidationCacheEXT)gdpa(dev, "vkCreateValidationCacheEXT");
886 table->DestroyValidationCacheEXT = (PFN_vkDestroyValidationCacheEXT)gdpa(dev, "vkDestroyValidationCacheEXT");
887 table->MergeValidationCachesEXT = (PFN_vkMergeValidationCachesEXT)gdpa(dev, "vkMergeValidationCachesEXT");
888 table->GetValidationCacheDataEXT = (PFN_vkGetValidationCacheDataEXT)gdpa(dev, "vkGetValidationCacheDataEXT");
889
890 // ---- VK_NV_shading_rate_image extension commands
891 table->CmdBindShadingRateImageNV = (PFN_vkCmdBindShadingRateImageNV)gdpa(dev, "vkCmdBindShadingRateImageNV");
892 table->CmdSetViewportShadingRatePaletteNV = (PFN_vkCmdSetViewportShadingRatePaletteNV)gdpa(dev, "vkCmdSetViewportShadingRatePaletteNV");
893 table->CmdSetCoarseSampleOrderNV = (PFN_vkCmdSetCoarseSampleOrderNV)gdpa(dev, "vkCmdSetCoarseSampleOrderNV");
894
895 // ---- VK_NV_ray_tracing extension commands
896 table->CreateAccelerationStructureNV = (PFN_vkCreateAccelerationStructureNV)gdpa(dev, "vkCreateAccelerationStructureNV");
897 table->DestroyAccelerationStructureNV = (PFN_vkDestroyAccelerationStructureNV)gdpa(dev, "vkDestroyAccelerationStructureNV");
898 table->GetAccelerationStructureMemoryRequirementsNV = (PFN_vkGetAccelerationStructureMemoryRequirementsNV)gdpa(dev, "vkGetAccelerationStructureMemoryRequirementsNV");
899 table->BindAccelerationStructureMemoryNV = (PFN_vkBindAccelerationStructureMemoryNV)gdpa(dev, "vkBindAccelerationStructureMemoryNV");
900 table->CmdBuildAccelerationStructureNV = (PFN_vkCmdBuildAccelerationStructureNV)gdpa(dev, "vkCmdBuildAccelerationStructureNV");
901 table->CmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)gdpa(dev, "vkCmdCopyAccelerationStructureNV");
902 table->CmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)gdpa(dev, "vkCmdTraceRaysNV");
903 table->CreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)gdpa(dev, "vkCreateRayTracingPipelinesNV");
904 table->GetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingShaderGroupHandlesKHR");
905 table->GetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)gdpa(dev, "vkGetRayTracingShaderGroupHandlesNV");
906 table->GetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)gdpa(dev, "vkGetAccelerationStructureHandleNV");
907 table->CmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesNV");
908 table->CompileDeferredNV = (PFN_vkCompileDeferredNV)gdpa(dev, "vkCompileDeferredNV");
909
910 // ---- VK_EXT_external_memory_host extension commands
911 table->GetMemoryHostPointerPropertiesEXT = (PFN_vkGetMemoryHostPointerPropertiesEXT)gdpa(dev, "vkGetMemoryHostPointerPropertiesEXT");
912
913 // ---- VK_AMD_buffer_marker extension commands
914 table->CmdWriteBufferMarkerAMD = (PFN_vkCmdWriteBufferMarkerAMD)gdpa(dev, "vkCmdWriteBufferMarkerAMD");
915 table->CmdWriteBufferMarker2AMD = (PFN_vkCmdWriteBufferMarker2AMD)gdpa(dev, "vkCmdWriteBufferMarker2AMD");
916
917 // ---- VK_EXT_calibrated_timestamps extension commands
918 table->GetCalibratedTimestampsEXT = (PFN_vkGetCalibratedTimestampsEXT)gdpa(dev, "vkGetCalibratedTimestampsEXT");
919
920 // ---- VK_NV_mesh_shader extension commands
921 table->CmdDrawMeshTasksNV = (PFN_vkCmdDrawMeshTasksNV)gdpa(dev, "vkCmdDrawMeshTasksNV");
922 table->CmdDrawMeshTasksIndirectNV = (PFN_vkCmdDrawMeshTasksIndirectNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectNV");
923 table->CmdDrawMeshTasksIndirectCountNV = (PFN_vkCmdDrawMeshTasksIndirectCountNV)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountNV");
924
925 // ---- VK_NV_scissor_exclusive extension commands
926 table->CmdSetExclusiveScissorEnableNV = (PFN_vkCmdSetExclusiveScissorEnableNV)gdpa(dev, "vkCmdSetExclusiveScissorEnableNV");
927 table->CmdSetExclusiveScissorNV = (PFN_vkCmdSetExclusiveScissorNV)gdpa(dev, "vkCmdSetExclusiveScissorNV");
928
929 // ---- VK_NV_device_diagnostic_checkpoints extension commands
930 table->CmdSetCheckpointNV = (PFN_vkCmdSetCheckpointNV)gdpa(dev, "vkCmdSetCheckpointNV");
931 table->GetQueueCheckpointDataNV = (PFN_vkGetQueueCheckpointDataNV)gdpa(dev, "vkGetQueueCheckpointDataNV");
932 table->GetQueueCheckpointData2NV = (PFN_vkGetQueueCheckpointData2NV)gdpa(dev, "vkGetQueueCheckpointData2NV");
933
934 // ---- VK_INTEL_performance_query extension commands
935 table->InitializePerformanceApiINTEL = (PFN_vkInitializePerformanceApiINTEL)gdpa(dev, "vkInitializePerformanceApiINTEL");
936 table->UninitializePerformanceApiINTEL = (PFN_vkUninitializePerformanceApiINTEL)gdpa(dev, "vkUninitializePerformanceApiINTEL");
937 table->CmdSetPerformanceMarkerINTEL = (PFN_vkCmdSetPerformanceMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceMarkerINTEL");
938 table->CmdSetPerformanceStreamMarkerINTEL = (PFN_vkCmdSetPerformanceStreamMarkerINTEL)gdpa(dev, "vkCmdSetPerformanceStreamMarkerINTEL");
939 table->CmdSetPerformanceOverrideINTEL = (PFN_vkCmdSetPerformanceOverrideINTEL)gdpa(dev, "vkCmdSetPerformanceOverrideINTEL");
940 table->AcquirePerformanceConfigurationINTEL = (PFN_vkAcquirePerformanceConfigurationINTEL)gdpa(dev, "vkAcquirePerformanceConfigurationINTEL");
941 table->ReleasePerformanceConfigurationINTEL = (PFN_vkReleasePerformanceConfigurationINTEL)gdpa(dev, "vkReleasePerformanceConfigurationINTEL");
942 table->QueueSetPerformanceConfigurationINTEL = (PFN_vkQueueSetPerformanceConfigurationINTEL)gdpa(dev, "vkQueueSetPerformanceConfigurationINTEL");
943 table->GetPerformanceParameterINTEL = (PFN_vkGetPerformanceParameterINTEL)gdpa(dev, "vkGetPerformanceParameterINTEL");
944
945 // ---- VK_AMD_display_native_hdr extension commands
946 table->SetLocalDimmingAMD = (PFN_vkSetLocalDimmingAMD)gdpa(dev, "vkSetLocalDimmingAMD");
947
948 // ---- VK_EXT_buffer_device_address extension commands
949 table->GetBufferDeviceAddressEXT = (PFN_vkGetBufferDeviceAddressEXT)gdpa(dev, "vkGetBufferDeviceAddressEXT");
950
951 // ---- VK_EXT_full_screen_exclusive extension commands
952 #if defined(VK_USE_PLATFORM_WIN32_KHR)
953 table->AcquireFullScreenExclusiveModeEXT = (PFN_vkAcquireFullScreenExclusiveModeEXT)gdpa(dev, "vkAcquireFullScreenExclusiveModeEXT");
954 #endif // VK_USE_PLATFORM_WIN32_KHR
955 #if defined(VK_USE_PLATFORM_WIN32_KHR)
956 table->ReleaseFullScreenExclusiveModeEXT = (PFN_vkReleaseFullScreenExclusiveModeEXT)gdpa(dev, "vkReleaseFullScreenExclusiveModeEXT");
957 #endif // VK_USE_PLATFORM_WIN32_KHR
958 #if defined(VK_USE_PLATFORM_WIN32_KHR)
959 table->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gdpa(dev, "vkGetDeviceGroupSurfacePresentModes2EXT");
960 #endif // VK_USE_PLATFORM_WIN32_KHR
961
962 // ---- VK_EXT_line_rasterization extension commands
963 table->CmdSetLineStippleEXT = (PFN_vkCmdSetLineStippleEXT)gdpa(dev, "vkCmdSetLineStippleEXT");
964
965 // ---- VK_EXT_host_query_reset extension commands
966 table->ResetQueryPoolEXT = (PFN_vkResetQueryPoolEXT)gdpa(dev, "vkResetQueryPoolEXT");
967
968 // ---- VK_EXT_extended_dynamic_state extension commands
969 table->CmdSetCullModeEXT = (PFN_vkCmdSetCullModeEXT)gdpa(dev, "vkCmdSetCullModeEXT");
970 table->CmdSetFrontFaceEXT = (PFN_vkCmdSetFrontFaceEXT)gdpa(dev, "vkCmdSetFrontFaceEXT");
971 table->CmdSetPrimitiveTopologyEXT = (PFN_vkCmdSetPrimitiveTopologyEXT)gdpa(dev, "vkCmdSetPrimitiveTopologyEXT");
972 table->CmdSetViewportWithCountEXT = (PFN_vkCmdSetViewportWithCountEXT)gdpa(dev, "vkCmdSetViewportWithCountEXT");
973 table->CmdSetScissorWithCountEXT = (PFN_vkCmdSetScissorWithCountEXT)gdpa(dev, "vkCmdSetScissorWithCountEXT");
974 table->CmdBindVertexBuffers2EXT = (PFN_vkCmdBindVertexBuffers2EXT)gdpa(dev, "vkCmdBindVertexBuffers2EXT");
975 table->CmdSetDepthTestEnableEXT = (PFN_vkCmdSetDepthTestEnableEXT)gdpa(dev, "vkCmdSetDepthTestEnableEXT");
976 table->CmdSetDepthWriteEnableEXT = (PFN_vkCmdSetDepthWriteEnableEXT)gdpa(dev, "vkCmdSetDepthWriteEnableEXT");
977 table->CmdSetDepthCompareOpEXT = (PFN_vkCmdSetDepthCompareOpEXT)gdpa(dev, "vkCmdSetDepthCompareOpEXT");
978 table->CmdSetDepthBoundsTestEnableEXT = (PFN_vkCmdSetDepthBoundsTestEnableEXT)gdpa(dev, "vkCmdSetDepthBoundsTestEnableEXT");
979 table->CmdSetStencilTestEnableEXT = (PFN_vkCmdSetStencilTestEnableEXT)gdpa(dev, "vkCmdSetStencilTestEnableEXT");
980 table->CmdSetStencilOpEXT = (PFN_vkCmdSetStencilOpEXT)gdpa(dev, "vkCmdSetStencilOpEXT");
981
982 // ---- VK_EXT_host_image_copy extension commands
983 table->CopyMemoryToImageEXT = (PFN_vkCopyMemoryToImageEXT)gdpa(dev, "vkCopyMemoryToImageEXT");
984 table->CopyImageToMemoryEXT = (PFN_vkCopyImageToMemoryEXT)gdpa(dev, "vkCopyImageToMemoryEXT");
985 table->CopyImageToImageEXT = (PFN_vkCopyImageToImageEXT)gdpa(dev, "vkCopyImageToImageEXT");
986 table->TransitionImageLayoutEXT = (PFN_vkTransitionImageLayoutEXT)gdpa(dev, "vkTransitionImageLayoutEXT");
987 table->GetImageSubresourceLayout2EXT = (PFN_vkGetImageSubresourceLayout2EXT)gdpa(dev, "vkGetImageSubresourceLayout2EXT");
988
989 // ---- VK_EXT_swapchain_maintenance1 extension commands
990 table->ReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT)gdpa(dev, "vkReleaseSwapchainImagesEXT");
991
992 // ---- VK_NV_device_generated_commands extension commands
993 table->GetGeneratedCommandsMemoryRequirementsNV = (PFN_vkGetGeneratedCommandsMemoryRequirementsNV)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsNV");
994 table->CmdPreprocessGeneratedCommandsNV = (PFN_vkCmdPreprocessGeneratedCommandsNV)gdpa(dev, "vkCmdPreprocessGeneratedCommandsNV");
995 table->CmdExecuteGeneratedCommandsNV = (PFN_vkCmdExecuteGeneratedCommandsNV)gdpa(dev, "vkCmdExecuteGeneratedCommandsNV");
996 table->CmdBindPipelineShaderGroupNV = (PFN_vkCmdBindPipelineShaderGroupNV)gdpa(dev, "vkCmdBindPipelineShaderGroupNV");
997 table->CreateIndirectCommandsLayoutNV = (PFN_vkCreateIndirectCommandsLayoutNV)gdpa(dev, "vkCreateIndirectCommandsLayoutNV");
998 table->DestroyIndirectCommandsLayoutNV = (PFN_vkDestroyIndirectCommandsLayoutNV)gdpa(dev, "vkDestroyIndirectCommandsLayoutNV");
999
1000 // ---- VK_EXT_depth_bias_control extension commands
1001 table->CmdSetDepthBias2EXT = (PFN_vkCmdSetDepthBias2EXT)gdpa(dev, "vkCmdSetDepthBias2EXT");
1002
1003 // ---- VK_EXT_private_data extension commands
1004 table->CreatePrivateDataSlotEXT = (PFN_vkCreatePrivateDataSlotEXT)gdpa(dev, "vkCreatePrivateDataSlotEXT");
1005 table->DestroyPrivateDataSlotEXT = (PFN_vkDestroyPrivateDataSlotEXT)gdpa(dev, "vkDestroyPrivateDataSlotEXT");
1006 table->SetPrivateDataEXT = (PFN_vkSetPrivateDataEXT)gdpa(dev, "vkSetPrivateDataEXT");
1007 table->GetPrivateDataEXT = (PFN_vkGetPrivateDataEXT)gdpa(dev, "vkGetPrivateDataEXT");
1008
1009 // ---- VK_NV_cuda_kernel_launch extension commands
1010 table->CreateCudaModuleNV = (PFN_vkCreateCudaModuleNV)gdpa(dev, "vkCreateCudaModuleNV");
1011 table->GetCudaModuleCacheNV = (PFN_vkGetCudaModuleCacheNV)gdpa(dev, "vkGetCudaModuleCacheNV");
1012 table->CreateCudaFunctionNV = (PFN_vkCreateCudaFunctionNV)gdpa(dev, "vkCreateCudaFunctionNV");
1013 table->DestroyCudaModuleNV = (PFN_vkDestroyCudaModuleNV)gdpa(dev, "vkDestroyCudaModuleNV");
1014 table->DestroyCudaFunctionNV = (PFN_vkDestroyCudaFunctionNV)gdpa(dev, "vkDestroyCudaFunctionNV");
1015 table->CmdCudaLaunchKernelNV = (PFN_vkCmdCudaLaunchKernelNV)gdpa(dev, "vkCmdCudaLaunchKernelNV");
1016
1017 // ---- VK_EXT_metal_objects extension commands
1018 #if defined(VK_USE_PLATFORM_METAL_EXT)
1019 table->ExportMetalObjectsEXT = (PFN_vkExportMetalObjectsEXT)gdpa(dev, "vkExportMetalObjectsEXT");
1020 #endif // VK_USE_PLATFORM_METAL_EXT
1021
1022 // ---- VK_EXT_descriptor_buffer extension commands
1023 table->GetDescriptorSetLayoutSizeEXT = (PFN_vkGetDescriptorSetLayoutSizeEXT)gdpa(dev, "vkGetDescriptorSetLayoutSizeEXT");
1024 table->GetDescriptorSetLayoutBindingOffsetEXT = (PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)gdpa(dev, "vkGetDescriptorSetLayoutBindingOffsetEXT");
1025 table->GetDescriptorEXT = (PFN_vkGetDescriptorEXT)gdpa(dev, "vkGetDescriptorEXT");
1026 table->CmdBindDescriptorBuffersEXT = (PFN_vkCmdBindDescriptorBuffersEXT)gdpa(dev, "vkCmdBindDescriptorBuffersEXT");
1027 table->CmdSetDescriptorBufferOffsetsEXT = (PFN_vkCmdSetDescriptorBufferOffsetsEXT)gdpa(dev, "vkCmdSetDescriptorBufferOffsetsEXT");
1028 table->CmdBindDescriptorBufferEmbeddedSamplersEXT = (PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)gdpa(dev, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT");
1029 table->GetBufferOpaqueCaptureDescriptorDataEXT = (PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetBufferOpaqueCaptureDescriptorDataEXT");
1030 table->GetImageOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageOpaqueCaptureDescriptorDataEXT");
1031 table->GetImageViewOpaqueCaptureDescriptorDataEXT = (PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetImageViewOpaqueCaptureDescriptorDataEXT");
1032 table->GetSamplerOpaqueCaptureDescriptorDataEXT = (PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetSamplerOpaqueCaptureDescriptorDataEXT");
1033 table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT = (PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)gdpa(dev, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT");
1034
1035 // ---- VK_NV_fragment_shading_rate_enums extension commands
1036 table->CmdSetFragmentShadingRateEnumNV = (PFN_vkCmdSetFragmentShadingRateEnumNV)gdpa(dev, "vkCmdSetFragmentShadingRateEnumNV");
1037
1038 // ---- VK_EXT_device_fault extension commands
1039 table->GetDeviceFaultInfoEXT = (PFN_vkGetDeviceFaultInfoEXT)gdpa(dev, "vkGetDeviceFaultInfoEXT");
1040
1041 // ---- VK_EXT_vertex_input_dynamic_state extension commands
1042 table->CmdSetVertexInputEXT = (PFN_vkCmdSetVertexInputEXT)gdpa(dev, "vkCmdSetVertexInputEXT");
1043
1044 // ---- VK_FUCHSIA_external_memory extension commands
1045 #if defined(VK_USE_PLATFORM_FUCHSIA)
1046 table->GetMemoryZirconHandleFUCHSIA = (PFN_vkGetMemoryZirconHandleFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandleFUCHSIA");
1047 #endif // VK_USE_PLATFORM_FUCHSIA
1048 #if defined(VK_USE_PLATFORM_FUCHSIA)
1049 table->GetMemoryZirconHandlePropertiesFUCHSIA = (PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA)gdpa(dev, "vkGetMemoryZirconHandlePropertiesFUCHSIA");
1050 #endif // VK_USE_PLATFORM_FUCHSIA
1051
1052 // ---- VK_FUCHSIA_external_semaphore extension commands
1053 #if defined(VK_USE_PLATFORM_FUCHSIA)
1054 table->ImportSemaphoreZirconHandleFUCHSIA = (PFN_vkImportSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkImportSemaphoreZirconHandleFUCHSIA");
1055 #endif // VK_USE_PLATFORM_FUCHSIA
1056 #if defined(VK_USE_PLATFORM_FUCHSIA)
1057 table->GetSemaphoreZirconHandleFUCHSIA = (PFN_vkGetSemaphoreZirconHandleFUCHSIA)gdpa(dev, "vkGetSemaphoreZirconHandleFUCHSIA");
1058 #endif // VK_USE_PLATFORM_FUCHSIA
1059
1060 // ---- VK_FUCHSIA_buffer_collection extension commands
1061 #if defined(VK_USE_PLATFORM_FUCHSIA)
1062 table->CreateBufferCollectionFUCHSIA = (PFN_vkCreateBufferCollectionFUCHSIA)gdpa(dev, "vkCreateBufferCollectionFUCHSIA");
1063 #endif // VK_USE_PLATFORM_FUCHSIA
1064 #if defined(VK_USE_PLATFORM_FUCHSIA)
1065 table->SetBufferCollectionImageConstraintsFUCHSIA = (PFN_vkSetBufferCollectionImageConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionImageConstraintsFUCHSIA");
1066 #endif // VK_USE_PLATFORM_FUCHSIA
1067 #if defined(VK_USE_PLATFORM_FUCHSIA)
1068 table->SetBufferCollectionBufferConstraintsFUCHSIA = (PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA)gdpa(dev, "vkSetBufferCollectionBufferConstraintsFUCHSIA");
1069 #endif // VK_USE_PLATFORM_FUCHSIA
1070 #if defined(VK_USE_PLATFORM_FUCHSIA)
1071 table->DestroyBufferCollectionFUCHSIA = (PFN_vkDestroyBufferCollectionFUCHSIA)gdpa(dev, "vkDestroyBufferCollectionFUCHSIA");
1072 #endif // VK_USE_PLATFORM_FUCHSIA
1073 #if defined(VK_USE_PLATFORM_FUCHSIA)
1074 table->GetBufferCollectionPropertiesFUCHSIA = (PFN_vkGetBufferCollectionPropertiesFUCHSIA)gdpa(dev, "vkGetBufferCollectionPropertiesFUCHSIA");
1075 #endif // VK_USE_PLATFORM_FUCHSIA
1076
1077 // ---- VK_HUAWEI_subpass_shading extension commands
1078 table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = (PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)gdpa(dev, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI");
1079 table->CmdSubpassShadingHUAWEI = (PFN_vkCmdSubpassShadingHUAWEI)gdpa(dev, "vkCmdSubpassShadingHUAWEI");
1080
1081 // ---- VK_HUAWEI_invocation_mask extension commands
1082 table->CmdBindInvocationMaskHUAWEI = (PFN_vkCmdBindInvocationMaskHUAWEI)gdpa(dev, "vkCmdBindInvocationMaskHUAWEI");
1083
1084 // ---- VK_NV_external_memory_rdma extension commands
1085 table->GetMemoryRemoteAddressNV = (PFN_vkGetMemoryRemoteAddressNV)gdpa(dev, "vkGetMemoryRemoteAddressNV");
1086
1087 // ---- VK_EXT_pipeline_properties extension commands
1088 table->GetPipelinePropertiesEXT = (PFN_vkGetPipelinePropertiesEXT)gdpa(dev, "vkGetPipelinePropertiesEXT");
1089
1090 // ---- VK_EXT_extended_dynamic_state2 extension commands
1091 table->CmdSetPatchControlPointsEXT = (PFN_vkCmdSetPatchControlPointsEXT)gdpa(dev, "vkCmdSetPatchControlPointsEXT");
1092 table->CmdSetRasterizerDiscardEnableEXT = (PFN_vkCmdSetRasterizerDiscardEnableEXT)gdpa(dev, "vkCmdSetRasterizerDiscardEnableEXT");
1093 table->CmdSetDepthBiasEnableEXT = (PFN_vkCmdSetDepthBiasEnableEXT)gdpa(dev, "vkCmdSetDepthBiasEnableEXT");
1094 table->CmdSetLogicOpEXT = (PFN_vkCmdSetLogicOpEXT)gdpa(dev, "vkCmdSetLogicOpEXT");
1095 table->CmdSetPrimitiveRestartEnableEXT = (PFN_vkCmdSetPrimitiveRestartEnableEXT)gdpa(dev, "vkCmdSetPrimitiveRestartEnableEXT");
1096
1097 // ---- VK_EXT_color_write_enable extension commands
1098 table->CmdSetColorWriteEnableEXT = (PFN_vkCmdSetColorWriteEnableEXT)gdpa(dev, "vkCmdSetColorWriteEnableEXT");
1099
1100 // ---- VK_EXT_multi_draw extension commands
1101 table->CmdDrawMultiEXT = (PFN_vkCmdDrawMultiEXT)gdpa(dev, "vkCmdDrawMultiEXT");
1102 table->CmdDrawMultiIndexedEXT = (PFN_vkCmdDrawMultiIndexedEXT)gdpa(dev, "vkCmdDrawMultiIndexedEXT");
1103
1104 // ---- VK_EXT_opacity_micromap extension commands
1105 table->CreateMicromapEXT = (PFN_vkCreateMicromapEXT)gdpa(dev, "vkCreateMicromapEXT");
1106 table->DestroyMicromapEXT = (PFN_vkDestroyMicromapEXT)gdpa(dev, "vkDestroyMicromapEXT");
1107 table->CmdBuildMicromapsEXT = (PFN_vkCmdBuildMicromapsEXT)gdpa(dev, "vkCmdBuildMicromapsEXT");
1108 table->BuildMicromapsEXT = (PFN_vkBuildMicromapsEXT)gdpa(dev, "vkBuildMicromapsEXT");
1109 table->CopyMicromapEXT = (PFN_vkCopyMicromapEXT)gdpa(dev, "vkCopyMicromapEXT");
1110 table->CopyMicromapToMemoryEXT = (PFN_vkCopyMicromapToMemoryEXT)gdpa(dev, "vkCopyMicromapToMemoryEXT");
1111 table->CopyMemoryToMicromapEXT = (PFN_vkCopyMemoryToMicromapEXT)gdpa(dev, "vkCopyMemoryToMicromapEXT");
1112 table->WriteMicromapsPropertiesEXT = (PFN_vkWriteMicromapsPropertiesEXT)gdpa(dev, "vkWriteMicromapsPropertiesEXT");
1113 table->CmdCopyMicromapEXT = (PFN_vkCmdCopyMicromapEXT)gdpa(dev, "vkCmdCopyMicromapEXT");
1114 table->CmdCopyMicromapToMemoryEXT = (PFN_vkCmdCopyMicromapToMemoryEXT)gdpa(dev, "vkCmdCopyMicromapToMemoryEXT");
1115 table->CmdCopyMemoryToMicromapEXT = (PFN_vkCmdCopyMemoryToMicromapEXT)gdpa(dev, "vkCmdCopyMemoryToMicromapEXT");
1116 table->CmdWriteMicromapsPropertiesEXT = (PFN_vkCmdWriteMicromapsPropertiesEXT)gdpa(dev, "vkCmdWriteMicromapsPropertiesEXT");
1117 table->GetDeviceMicromapCompatibilityEXT = (PFN_vkGetDeviceMicromapCompatibilityEXT)gdpa(dev, "vkGetDeviceMicromapCompatibilityEXT");
1118 table->GetMicromapBuildSizesEXT = (PFN_vkGetMicromapBuildSizesEXT)gdpa(dev, "vkGetMicromapBuildSizesEXT");
1119
1120 // ---- VK_HUAWEI_cluster_culling_shader extension commands
1121 table->CmdDrawClusterHUAWEI = (PFN_vkCmdDrawClusterHUAWEI)gdpa(dev, "vkCmdDrawClusterHUAWEI");
1122 table->CmdDrawClusterIndirectHUAWEI = (PFN_vkCmdDrawClusterIndirectHUAWEI)gdpa(dev, "vkCmdDrawClusterIndirectHUAWEI");
1123
1124 // ---- VK_EXT_pageable_device_local_memory extension commands
1125 table->SetDeviceMemoryPriorityEXT = (PFN_vkSetDeviceMemoryPriorityEXT)gdpa(dev, "vkSetDeviceMemoryPriorityEXT");
1126
1127 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
1128 table->GetDescriptorSetLayoutHostMappingInfoVALVE = (PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)gdpa(dev, "vkGetDescriptorSetLayoutHostMappingInfoVALVE");
1129 table->GetDescriptorSetHostMappingVALVE = (PFN_vkGetDescriptorSetHostMappingVALVE)gdpa(dev, "vkGetDescriptorSetHostMappingVALVE");
1130
1131 // ---- VK_NV_copy_memory_indirect extension commands
1132 table->CmdCopyMemoryIndirectNV = (PFN_vkCmdCopyMemoryIndirectNV)gdpa(dev, "vkCmdCopyMemoryIndirectNV");
1133 table->CmdCopyMemoryToImageIndirectNV = (PFN_vkCmdCopyMemoryToImageIndirectNV)gdpa(dev, "vkCmdCopyMemoryToImageIndirectNV");
1134
1135 // ---- VK_NV_memory_decompression extension commands
1136 table->CmdDecompressMemoryNV = (PFN_vkCmdDecompressMemoryNV)gdpa(dev, "vkCmdDecompressMemoryNV");
1137 table->CmdDecompressMemoryIndirectCountNV = (PFN_vkCmdDecompressMemoryIndirectCountNV)gdpa(dev, "vkCmdDecompressMemoryIndirectCountNV");
1138
1139 // ---- VK_NV_device_generated_commands_compute extension commands
1140 table->GetPipelineIndirectMemoryRequirementsNV = (PFN_vkGetPipelineIndirectMemoryRequirementsNV)gdpa(dev, "vkGetPipelineIndirectMemoryRequirementsNV");
1141 table->CmdUpdatePipelineIndirectBufferNV = (PFN_vkCmdUpdatePipelineIndirectBufferNV)gdpa(dev, "vkCmdUpdatePipelineIndirectBufferNV");
1142 table->GetPipelineIndirectDeviceAddressNV = (PFN_vkGetPipelineIndirectDeviceAddressNV)gdpa(dev, "vkGetPipelineIndirectDeviceAddressNV");
1143
1144 // ---- VK_EXT_extended_dynamic_state3 extension commands
1145 table->CmdSetDepthClampEnableEXT = (PFN_vkCmdSetDepthClampEnableEXT)gdpa(dev, "vkCmdSetDepthClampEnableEXT");
1146 table->CmdSetPolygonModeEXT = (PFN_vkCmdSetPolygonModeEXT)gdpa(dev, "vkCmdSetPolygonModeEXT");
1147 table->CmdSetRasterizationSamplesEXT = (PFN_vkCmdSetRasterizationSamplesEXT)gdpa(dev, "vkCmdSetRasterizationSamplesEXT");
1148 table->CmdSetSampleMaskEXT = (PFN_vkCmdSetSampleMaskEXT)gdpa(dev, "vkCmdSetSampleMaskEXT");
1149 table->CmdSetAlphaToCoverageEnableEXT = (PFN_vkCmdSetAlphaToCoverageEnableEXT)gdpa(dev, "vkCmdSetAlphaToCoverageEnableEXT");
1150 table->CmdSetAlphaToOneEnableEXT = (PFN_vkCmdSetAlphaToOneEnableEXT)gdpa(dev, "vkCmdSetAlphaToOneEnableEXT");
1151 table->CmdSetLogicOpEnableEXT = (PFN_vkCmdSetLogicOpEnableEXT)gdpa(dev, "vkCmdSetLogicOpEnableEXT");
1152 table->CmdSetColorBlendEnableEXT = (PFN_vkCmdSetColorBlendEnableEXT)gdpa(dev, "vkCmdSetColorBlendEnableEXT");
1153 table->CmdSetColorBlendEquationEXT = (PFN_vkCmdSetColorBlendEquationEXT)gdpa(dev, "vkCmdSetColorBlendEquationEXT");
1154 table->CmdSetColorWriteMaskEXT = (PFN_vkCmdSetColorWriteMaskEXT)gdpa(dev, "vkCmdSetColorWriteMaskEXT");
1155 table->CmdSetTessellationDomainOriginEXT = (PFN_vkCmdSetTessellationDomainOriginEXT)gdpa(dev, "vkCmdSetTessellationDomainOriginEXT");
1156 table->CmdSetRasterizationStreamEXT = (PFN_vkCmdSetRasterizationStreamEXT)gdpa(dev, "vkCmdSetRasterizationStreamEXT");
1157 table->CmdSetConservativeRasterizationModeEXT = (PFN_vkCmdSetConservativeRasterizationModeEXT)gdpa(dev, "vkCmdSetConservativeRasterizationModeEXT");
1158 table->CmdSetExtraPrimitiveOverestimationSizeEXT = (PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)gdpa(dev, "vkCmdSetExtraPrimitiveOverestimationSizeEXT");
1159 table->CmdSetDepthClipEnableEXT = (PFN_vkCmdSetDepthClipEnableEXT)gdpa(dev, "vkCmdSetDepthClipEnableEXT");
1160 table->CmdSetSampleLocationsEnableEXT = (PFN_vkCmdSetSampleLocationsEnableEXT)gdpa(dev, "vkCmdSetSampleLocationsEnableEXT");
1161 table->CmdSetColorBlendAdvancedEXT = (PFN_vkCmdSetColorBlendAdvancedEXT)gdpa(dev, "vkCmdSetColorBlendAdvancedEXT");
1162 table->CmdSetProvokingVertexModeEXT = (PFN_vkCmdSetProvokingVertexModeEXT)gdpa(dev, "vkCmdSetProvokingVertexModeEXT");
1163 table->CmdSetLineRasterizationModeEXT = (PFN_vkCmdSetLineRasterizationModeEXT)gdpa(dev, "vkCmdSetLineRasterizationModeEXT");
1164 table->CmdSetLineStippleEnableEXT = (PFN_vkCmdSetLineStippleEnableEXT)gdpa(dev, "vkCmdSetLineStippleEnableEXT");
1165 table->CmdSetDepthClipNegativeOneToOneEXT = (PFN_vkCmdSetDepthClipNegativeOneToOneEXT)gdpa(dev, "vkCmdSetDepthClipNegativeOneToOneEXT");
1166 table->CmdSetViewportWScalingEnableNV = (PFN_vkCmdSetViewportWScalingEnableNV)gdpa(dev, "vkCmdSetViewportWScalingEnableNV");
1167 table->CmdSetViewportSwizzleNV = (PFN_vkCmdSetViewportSwizzleNV)gdpa(dev, "vkCmdSetViewportSwizzleNV");
1168 table->CmdSetCoverageToColorEnableNV = (PFN_vkCmdSetCoverageToColorEnableNV)gdpa(dev, "vkCmdSetCoverageToColorEnableNV");
1169 table->CmdSetCoverageToColorLocationNV = (PFN_vkCmdSetCoverageToColorLocationNV)gdpa(dev, "vkCmdSetCoverageToColorLocationNV");
1170 table->CmdSetCoverageModulationModeNV = (PFN_vkCmdSetCoverageModulationModeNV)gdpa(dev, "vkCmdSetCoverageModulationModeNV");
1171 table->CmdSetCoverageModulationTableEnableNV = (PFN_vkCmdSetCoverageModulationTableEnableNV)gdpa(dev, "vkCmdSetCoverageModulationTableEnableNV");
1172 table->CmdSetCoverageModulationTableNV = (PFN_vkCmdSetCoverageModulationTableNV)gdpa(dev, "vkCmdSetCoverageModulationTableNV");
1173 table->CmdSetShadingRateImageEnableNV = (PFN_vkCmdSetShadingRateImageEnableNV)gdpa(dev, "vkCmdSetShadingRateImageEnableNV");
1174 table->CmdSetRepresentativeFragmentTestEnableNV = (PFN_vkCmdSetRepresentativeFragmentTestEnableNV)gdpa(dev, "vkCmdSetRepresentativeFragmentTestEnableNV");
1175 table->CmdSetCoverageReductionModeNV = (PFN_vkCmdSetCoverageReductionModeNV)gdpa(dev, "vkCmdSetCoverageReductionModeNV");
1176
1177 // ---- VK_EXT_shader_module_identifier extension commands
1178 table->GetShaderModuleIdentifierEXT = (PFN_vkGetShaderModuleIdentifierEXT)gdpa(dev, "vkGetShaderModuleIdentifierEXT");
1179 table->GetShaderModuleCreateInfoIdentifierEXT = (PFN_vkGetShaderModuleCreateInfoIdentifierEXT)gdpa(dev, "vkGetShaderModuleCreateInfoIdentifierEXT");
1180
1181 // ---- VK_NV_optical_flow extension commands
1182 table->CreateOpticalFlowSessionNV = (PFN_vkCreateOpticalFlowSessionNV)gdpa(dev, "vkCreateOpticalFlowSessionNV");
1183 table->DestroyOpticalFlowSessionNV = (PFN_vkDestroyOpticalFlowSessionNV)gdpa(dev, "vkDestroyOpticalFlowSessionNV");
1184 table->BindOpticalFlowSessionImageNV = (PFN_vkBindOpticalFlowSessionImageNV)gdpa(dev, "vkBindOpticalFlowSessionImageNV");
1185 table->CmdOpticalFlowExecuteNV = (PFN_vkCmdOpticalFlowExecuteNV)gdpa(dev, "vkCmdOpticalFlowExecuteNV");
1186
1187 // ---- VK_AMD_anti_lag extension commands
1188 table->AntiLagUpdateAMD = (PFN_vkAntiLagUpdateAMD)gdpa(dev, "vkAntiLagUpdateAMD");
1189
1190 // ---- VK_EXT_shader_object extension commands
1191 table->CreateShadersEXT = (PFN_vkCreateShadersEXT)gdpa(dev, "vkCreateShadersEXT");
1192 table->DestroyShaderEXT = (PFN_vkDestroyShaderEXT)gdpa(dev, "vkDestroyShaderEXT");
1193 table->GetShaderBinaryDataEXT = (PFN_vkGetShaderBinaryDataEXT)gdpa(dev, "vkGetShaderBinaryDataEXT");
1194 table->CmdBindShadersEXT = (PFN_vkCmdBindShadersEXT)gdpa(dev, "vkCmdBindShadersEXT");
1195 table->CmdSetDepthClampRangeEXT = (PFN_vkCmdSetDepthClampRangeEXT)gdpa(dev, "vkCmdSetDepthClampRangeEXT");
1196
1197 // ---- VK_QCOM_tile_properties extension commands
1198 table->GetFramebufferTilePropertiesQCOM = (PFN_vkGetFramebufferTilePropertiesQCOM)gdpa(dev, "vkGetFramebufferTilePropertiesQCOM");
1199 table->GetDynamicRenderingTilePropertiesQCOM = (PFN_vkGetDynamicRenderingTilePropertiesQCOM)gdpa(dev, "vkGetDynamicRenderingTilePropertiesQCOM");
1200
1201 // ---- VK_NV_cooperative_vector extension commands
1202 table->ConvertCooperativeVectorMatrixNV = (PFN_vkConvertCooperativeVectorMatrixNV)gdpa(dev, "vkConvertCooperativeVectorMatrixNV");
1203 table->CmdConvertCooperativeVectorMatrixNV = (PFN_vkCmdConvertCooperativeVectorMatrixNV)gdpa(dev, "vkCmdConvertCooperativeVectorMatrixNV");
1204
1205 // ---- VK_NV_low_latency2 extension commands
1206 table->SetLatencySleepModeNV = (PFN_vkSetLatencySleepModeNV)gdpa(dev, "vkSetLatencySleepModeNV");
1207 table->LatencySleepNV = (PFN_vkLatencySleepNV)gdpa(dev, "vkLatencySleepNV");
1208 table->SetLatencyMarkerNV = (PFN_vkSetLatencyMarkerNV)gdpa(dev, "vkSetLatencyMarkerNV");
1209 table->GetLatencyTimingsNV = (PFN_vkGetLatencyTimingsNV)gdpa(dev, "vkGetLatencyTimingsNV");
1210 table->QueueNotifyOutOfBandNV = (PFN_vkQueueNotifyOutOfBandNV)gdpa(dev, "vkQueueNotifyOutOfBandNV");
1211
1212 // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
1213 table->CmdSetAttachmentFeedbackLoopEnableEXT = (PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)gdpa(dev, "vkCmdSetAttachmentFeedbackLoopEnableEXT");
1214
1215 // ---- VK_QNX_external_memory_screen_buffer extension commands
1216 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
1217 table->GetScreenBufferPropertiesQNX = (PFN_vkGetScreenBufferPropertiesQNX)gdpa(dev, "vkGetScreenBufferPropertiesQNX");
1218 #endif // VK_USE_PLATFORM_SCREEN_QNX
1219
1220 // ---- VK_NV_cluster_acceleration_structure extension commands
1221 table->GetClusterAccelerationStructureBuildSizesNV = (PFN_vkGetClusterAccelerationStructureBuildSizesNV)gdpa(dev, "vkGetClusterAccelerationStructureBuildSizesNV");
1222 table->CmdBuildClusterAccelerationStructureIndirectNV = (PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)gdpa(dev, "vkCmdBuildClusterAccelerationStructureIndirectNV");
1223
1224 // ---- VK_NV_partitioned_acceleration_structure extension commands
1225 table->GetPartitionedAccelerationStructuresBuildSizesNV = (PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)gdpa(dev, "vkGetPartitionedAccelerationStructuresBuildSizesNV");
1226 table->CmdBuildPartitionedAccelerationStructuresNV = (PFN_vkCmdBuildPartitionedAccelerationStructuresNV)gdpa(dev, "vkCmdBuildPartitionedAccelerationStructuresNV");
1227
1228 // ---- VK_EXT_device_generated_commands extension commands
1229 table->GetGeneratedCommandsMemoryRequirementsEXT = (PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)gdpa(dev, "vkGetGeneratedCommandsMemoryRequirementsEXT");
1230 table->CmdPreprocessGeneratedCommandsEXT = (PFN_vkCmdPreprocessGeneratedCommandsEXT)gdpa(dev, "vkCmdPreprocessGeneratedCommandsEXT");
1231 table->CmdExecuteGeneratedCommandsEXT = (PFN_vkCmdExecuteGeneratedCommandsEXT)gdpa(dev, "vkCmdExecuteGeneratedCommandsEXT");
1232 table->CreateIndirectCommandsLayoutEXT = (PFN_vkCreateIndirectCommandsLayoutEXT)gdpa(dev, "vkCreateIndirectCommandsLayoutEXT");
1233 table->DestroyIndirectCommandsLayoutEXT = (PFN_vkDestroyIndirectCommandsLayoutEXT)gdpa(dev, "vkDestroyIndirectCommandsLayoutEXT");
1234 table->CreateIndirectExecutionSetEXT = (PFN_vkCreateIndirectExecutionSetEXT)gdpa(dev, "vkCreateIndirectExecutionSetEXT");
1235 table->DestroyIndirectExecutionSetEXT = (PFN_vkDestroyIndirectExecutionSetEXT)gdpa(dev, "vkDestroyIndirectExecutionSetEXT");
1236 table->UpdateIndirectExecutionSetPipelineEXT = (PFN_vkUpdateIndirectExecutionSetPipelineEXT)gdpa(dev, "vkUpdateIndirectExecutionSetPipelineEXT");
1237 table->UpdateIndirectExecutionSetShaderEXT = (PFN_vkUpdateIndirectExecutionSetShaderEXT)gdpa(dev, "vkUpdateIndirectExecutionSetShaderEXT");
1238
1239 // ---- VK_EXT_external_memory_metal extension commands
1240 #if defined(VK_USE_PLATFORM_METAL_EXT)
1241 table->GetMemoryMetalHandleEXT = (PFN_vkGetMemoryMetalHandleEXT)gdpa(dev, "vkGetMemoryMetalHandleEXT");
1242 #endif // VK_USE_PLATFORM_METAL_EXT
1243 #if defined(VK_USE_PLATFORM_METAL_EXT)
1244 table->GetMemoryMetalHandlePropertiesEXT = (PFN_vkGetMemoryMetalHandlePropertiesEXT)gdpa(dev, "vkGetMemoryMetalHandlePropertiesEXT");
1245 #endif // VK_USE_PLATFORM_METAL_EXT
1246
1247 // ---- VK_KHR_acceleration_structure extension commands
1248 table->CreateAccelerationStructureKHR = (PFN_vkCreateAccelerationStructureKHR)gdpa(dev, "vkCreateAccelerationStructureKHR");
1249 table->DestroyAccelerationStructureKHR = (PFN_vkDestroyAccelerationStructureKHR)gdpa(dev, "vkDestroyAccelerationStructureKHR");
1250 table->CmdBuildAccelerationStructuresKHR = (PFN_vkCmdBuildAccelerationStructuresKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresKHR");
1251 table->CmdBuildAccelerationStructuresIndirectKHR = (PFN_vkCmdBuildAccelerationStructuresIndirectKHR)gdpa(dev, "vkCmdBuildAccelerationStructuresIndirectKHR");
1252 table->BuildAccelerationStructuresKHR = (PFN_vkBuildAccelerationStructuresKHR)gdpa(dev, "vkBuildAccelerationStructuresKHR");
1253 table->CopyAccelerationStructureKHR = (PFN_vkCopyAccelerationStructureKHR)gdpa(dev, "vkCopyAccelerationStructureKHR");
1254 table->CopyAccelerationStructureToMemoryKHR = (PFN_vkCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCopyAccelerationStructureToMemoryKHR");
1255 table->CopyMemoryToAccelerationStructureKHR = (PFN_vkCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCopyMemoryToAccelerationStructureKHR");
1256 table->WriteAccelerationStructuresPropertiesKHR = (PFN_vkWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkWriteAccelerationStructuresPropertiesKHR");
1257 table->CmdCopyAccelerationStructureKHR = (PFN_vkCmdCopyAccelerationStructureKHR)gdpa(dev, "vkCmdCopyAccelerationStructureKHR");
1258 table->CmdCopyAccelerationStructureToMemoryKHR = (PFN_vkCmdCopyAccelerationStructureToMemoryKHR)gdpa(dev, "vkCmdCopyAccelerationStructureToMemoryKHR");
1259 table->CmdCopyMemoryToAccelerationStructureKHR = (PFN_vkCmdCopyMemoryToAccelerationStructureKHR)gdpa(dev, "vkCmdCopyMemoryToAccelerationStructureKHR");
1260 table->GetAccelerationStructureDeviceAddressKHR = (PFN_vkGetAccelerationStructureDeviceAddressKHR)gdpa(dev, "vkGetAccelerationStructureDeviceAddressKHR");
1261 table->CmdWriteAccelerationStructuresPropertiesKHR = (PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesKHR");
1262 table->GetDeviceAccelerationStructureCompatibilityKHR = (PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)gdpa(dev, "vkGetDeviceAccelerationStructureCompatibilityKHR");
1263 table->GetAccelerationStructureBuildSizesKHR = (PFN_vkGetAccelerationStructureBuildSizesKHR)gdpa(dev, "vkGetAccelerationStructureBuildSizesKHR");
1264
1265 // ---- VK_KHR_ray_tracing_pipeline extension commands
1266 table->CmdTraceRaysKHR = (PFN_vkCmdTraceRaysKHR)gdpa(dev, "vkCmdTraceRaysKHR");
1267 table->CreateRayTracingPipelinesKHR = (PFN_vkCreateRayTracingPipelinesKHR)gdpa(dev, "vkCreateRayTracingPipelinesKHR");
1268 table->GetRayTracingCaptureReplayShaderGroupHandlesKHR = (PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
1269 table->CmdTraceRaysIndirectKHR = (PFN_vkCmdTraceRaysIndirectKHR)gdpa(dev, "vkCmdTraceRaysIndirectKHR");
1270 table->GetRayTracingShaderGroupStackSizeKHR = (PFN_vkGetRayTracingShaderGroupStackSizeKHR)gdpa(dev, "vkGetRayTracingShaderGroupStackSizeKHR");
1271 table->CmdSetRayTracingPipelineStackSizeKHR = (PFN_vkCmdSetRayTracingPipelineStackSizeKHR)gdpa(dev, "vkCmdSetRayTracingPipelineStackSizeKHR");
1272
1273 // ---- VK_EXT_mesh_shader extension commands
1274 table->CmdDrawMeshTasksEXT = (PFN_vkCmdDrawMeshTasksEXT)gdpa(dev, "vkCmdDrawMeshTasksEXT");
1275 table->CmdDrawMeshTasksIndirectEXT = (PFN_vkCmdDrawMeshTasksIndirectEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectEXT");
1276 table->CmdDrawMeshTasksIndirectCountEXT = (PFN_vkCmdDrawMeshTasksIndirectCountEXT)gdpa(dev, "vkCmdDrawMeshTasksIndirectCountEXT");
1277
1278 // ---- VK_OHOS_native_buffer extension commands
1279 #if defined(VK_USE_PLATFORM_OHOS)
1280 table->GetSwapchainGrallocUsageOHOS = (PFN_vkGetSwapchainGrallocUsageOHOS)gdpa(dev, "vkGetSwapchainGrallocUsageOHOS");
1281 #endif // VK_USE_PLATFORM_OHOS
1282 #if defined(VK_USE_PLATFORM_OHOS)
1283 table->AcquireImageOHOS = (PFN_vkAcquireImageOHOS)gdpa(dev, "vkAcquireImageOHOS");
1284 #endif // VK_USE_PLATFORM_OHOS
1285 #if defined(VK_USE_PLATFORM_OHOS)
1286 table->QueueSignalReleaseImageOHOS = (PFN_vkQueueSignalReleaseImageOHOS)gdpa(dev, "vkQueueSignalReleaseImageOHOS");
1287 #endif // VK_USE_PLATFORM_OHOS
1288
1289 // ---- VK_OHOS_external_memory extension commands
1290 #if defined(VK_USE_PLATFORM_OHOS)
1291 table->GetNativeBufferPropertiesOHOS = (PFN_vkGetNativeBufferPropertiesOHOS)gdpa(dev, "vkGetNativeBufferPropertiesOHOS");
1292 #endif // VK_USE_PLATFORM_OHOS
1293 #if defined(VK_USE_PLATFORM_OHOS)
1294 table->GetMemoryNativeBufferOHOS = (PFN_vkGetMemoryNativeBufferOHOS)gdpa(dev, "vkGetMemoryNativeBufferOHOS");
1295 #endif // VK_USE_PLATFORM_OHOS
1296 }
1297
1298 // Init Instance function pointer dispatch table with core commands
loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable * table,PFN_vkGetInstanceProcAddr gpa,VkInstance inst)1299 VKAPI_ATTR void VKAPI_CALL loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1300 VkInstance inst) {
1301
1302 // ---- Core Vulkan 1.0 commands
1303 table->DestroyInstance = (PFN_vkDestroyInstance)gpa(inst, "vkDestroyInstance");
1304 table->EnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices)gpa(inst, "vkEnumeratePhysicalDevices");
1305 table->GetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures)gpa(inst, "vkGetPhysicalDeviceFeatures");
1306 table->GetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties)gpa(inst, "vkGetPhysicalDeviceFormatProperties");
1307 table->GetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties");
1308 table->GetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties)gpa(inst, "vkGetPhysicalDeviceProperties");
1309 table->GetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties");
1310 table->GetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties)gpa(inst, "vkGetPhysicalDeviceMemoryProperties");
1311 table->GetInstanceProcAddr = gpa;
1312 table->EnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties)gpa(inst, "vkEnumerateDeviceExtensionProperties");
1313 table->EnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties)gpa(inst, "vkEnumerateDeviceLayerProperties");
1314 table->GetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties");
1315
1316 // ---- Core Vulkan 1.1 commands
1317 table->EnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups)gpa(inst, "vkEnumeratePhysicalDeviceGroups");
1318 table->GetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2)gpa(inst, "vkGetPhysicalDeviceFeatures2");
1319 table->GetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2)gpa(inst, "vkGetPhysicalDeviceProperties2");
1320 table->GetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2)gpa(inst, "vkGetPhysicalDeviceFormatProperties2");
1321 table->GetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2");
1322 table->GetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2");
1323 table->GetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2");
1324 table->GetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2");
1325 table->GetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties)gpa(inst, "vkGetPhysicalDeviceExternalBufferProperties");
1326 table->GetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties)gpa(inst, "vkGetPhysicalDeviceExternalFenceProperties");
1327 table->GetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)gpa(inst, "vkGetPhysicalDeviceExternalSemaphoreProperties");
1328
1329 // ---- Core Vulkan 1.3 commands
1330 table->GetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties)gpa(inst, "vkGetPhysicalDeviceToolProperties");
1331 }
1332
1333 // Init Instance function pointer dispatch table with core commands
loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable * table,PFN_vkGetInstanceProcAddr gpa,VkInstance inst)1334 VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
1335 VkInstance inst) {
1336
1337 // ---- VK_KHR_surface extension commands
1338 table->DestroySurfaceKHR = (PFN_vkDestroySurfaceKHR)gpa(inst, "vkDestroySurfaceKHR");
1339 table->GetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceSupportKHR");
1340 table->GetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
1341 table->GetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormatsKHR");
1342 table->GetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModesKHR");
1343
1344 // ---- VK_KHR_swapchain extension commands
1345 table->GetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR)gpa(inst, "vkGetPhysicalDevicePresentRectanglesKHR");
1346
1347 // ---- VK_KHR_display extension commands
1348 table->GetPhysicalDeviceDisplayPropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPropertiesKHR");
1349 table->GetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
1350 table->GetDisplayPlaneSupportedDisplaysKHR = (PFN_vkGetDisplayPlaneSupportedDisplaysKHR)gpa(inst, "vkGetDisplayPlaneSupportedDisplaysKHR");
1351 table->GetDisplayModePropertiesKHR = (PFN_vkGetDisplayModePropertiesKHR)gpa(inst, "vkGetDisplayModePropertiesKHR");
1352 table->CreateDisplayModeKHR = (PFN_vkCreateDisplayModeKHR)gpa(inst, "vkCreateDisplayModeKHR");
1353 table->GetDisplayPlaneCapabilitiesKHR = (PFN_vkGetDisplayPlaneCapabilitiesKHR)gpa(inst, "vkGetDisplayPlaneCapabilitiesKHR");
1354 table->CreateDisplayPlaneSurfaceKHR = (PFN_vkCreateDisplayPlaneSurfaceKHR)gpa(inst, "vkCreateDisplayPlaneSurfaceKHR");
1355
1356 // ---- VK_KHR_xlib_surface extension commands
1357 #if defined(VK_USE_PLATFORM_XLIB_KHR)
1358 table->CreateXlibSurfaceKHR = (PFN_vkCreateXlibSurfaceKHR)gpa(inst, "vkCreateXlibSurfaceKHR");
1359 #endif // VK_USE_PLATFORM_XLIB_KHR
1360 #if defined(VK_USE_PLATFORM_XLIB_KHR)
1361 table->GetPhysicalDeviceXlibPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXlibPresentationSupportKHR");
1362 #endif // VK_USE_PLATFORM_XLIB_KHR
1363
1364 // ---- VK_KHR_xcb_surface extension commands
1365 #if defined(VK_USE_PLATFORM_XCB_KHR)
1366 table->CreateXcbSurfaceKHR = (PFN_vkCreateXcbSurfaceKHR)gpa(inst, "vkCreateXcbSurfaceKHR");
1367 #endif // VK_USE_PLATFORM_XCB_KHR
1368 #if defined(VK_USE_PLATFORM_XCB_KHR)
1369 table->GetPhysicalDeviceXcbPresentationSupportKHR = (PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceXcbPresentationSupportKHR");
1370 #endif // VK_USE_PLATFORM_XCB_KHR
1371
1372 // ---- VK_KHR_wayland_surface extension commands
1373 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1374 table->CreateWaylandSurfaceKHR = (PFN_vkCreateWaylandSurfaceKHR)gpa(inst, "vkCreateWaylandSurfaceKHR");
1375 #endif // VK_USE_PLATFORM_WAYLAND_KHR
1376 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1377 table->GetPhysicalDeviceWaylandPresentationSupportKHR = (PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWaylandPresentationSupportKHR");
1378 #endif // VK_USE_PLATFORM_WAYLAND_KHR
1379
1380 // ---- VK_KHR_android_surface extension commands
1381 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
1382 table->CreateAndroidSurfaceKHR = (PFN_vkCreateAndroidSurfaceKHR)gpa(inst, "vkCreateAndroidSurfaceKHR");
1383 #endif // VK_USE_PLATFORM_ANDROID_KHR
1384
1385 // ---- VK_KHR_win32_surface extension commands
1386 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1387 table->CreateWin32SurfaceKHR = (PFN_vkCreateWin32SurfaceKHR)gpa(inst, "vkCreateWin32SurfaceKHR");
1388 #endif // VK_USE_PLATFORM_WIN32_KHR
1389 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1390 table->GetPhysicalDeviceWin32PresentationSupportKHR = (PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)gpa(inst, "vkGetPhysicalDeviceWin32PresentationSupportKHR");
1391 #endif // VK_USE_PLATFORM_WIN32_KHR
1392
1393 // ---- VK_KHR_video_queue extension commands
1394 table->GetPhysicalDeviceVideoCapabilitiesKHR = (PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoCapabilitiesKHR");
1395 table->GetPhysicalDeviceVideoFormatPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoFormatPropertiesKHR");
1396
1397 // ---- VK_KHR_get_physical_device_properties2 extension commands
1398 table->GetPhysicalDeviceFeatures2KHR = (PFN_vkGetPhysicalDeviceFeatures2KHR)gpa(inst, "vkGetPhysicalDeviceFeatures2KHR");
1399 table->GetPhysicalDeviceProperties2KHR = (PFN_vkGetPhysicalDeviceProperties2KHR)gpa(inst, "vkGetPhysicalDeviceProperties2KHR");
1400 table->GetPhysicalDeviceFormatProperties2KHR = (PFN_vkGetPhysicalDeviceFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceFormatProperties2KHR");
1401 table->GetPhysicalDeviceImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceImageFormatProperties2KHR");
1402 table->GetPhysicalDeviceQueueFamilyProperties2KHR = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyProperties2KHR");
1403 table->GetPhysicalDeviceMemoryProperties2KHR = (PFN_vkGetPhysicalDeviceMemoryProperties2KHR)gpa(inst, "vkGetPhysicalDeviceMemoryProperties2KHR");
1404 table->GetPhysicalDeviceSparseImageFormatProperties2KHR = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)gpa(inst, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
1405
1406 // ---- VK_KHR_device_group_creation extension commands
1407 table->EnumeratePhysicalDeviceGroupsKHR = (PFN_vkEnumeratePhysicalDeviceGroupsKHR)gpa(inst, "vkEnumeratePhysicalDeviceGroupsKHR");
1408
1409 // ---- VK_KHR_external_memory_capabilities extension commands
1410 table->GetPhysicalDeviceExternalBufferPropertiesKHR = (PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalBufferPropertiesKHR");
1411
1412 // ---- VK_KHR_external_semaphore_capabilities extension commands
1413 table->GetPhysicalDeviceExternalSemaphorePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
1414
1415 // ---- VK_KHR_external_fence_capabilities extension commands
1416 table->GetPhysicalDeviceExternalFencePropertiesKHR = (PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)gpa(inst, "vkGetPhysicalDeviceExternalFencePropertiesKHR");
1417
1418 // ---- VK_KHR_performance_query extension commands
1419 table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = (PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)gpa(inst, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
1420 table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = (PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)gpa(inst, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
1421
1422 // ---- VK_KHR_get_surface_capabilities2 extension commands
1423 table->GetPhysicalDeviceSurfaceCapabilities2KHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2KHR");
1424 table->GetPhysicalDeviceSurfaceFormats2KHR = (PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)gpa(inst, "vkGetPhysicalDeviceSurfaceFormats2KHR");
1425
1426 // ---- VK_KHR_get_display_properties2 extension commands
1427 table->GetPhysicalDeviceDisplayProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayProperties2KHR");
1428 table->GetPhysicalDeviceDisplayPlaneProperties2KHR = (PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)gpa(inst, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
1429 table->GetDisplayModeProperties2KHR = (PFN_vkGetDisplayModeProperties2KHR)gpa(inst, "vkGetDisplayModeProperties2KHR");
1430 table->GetDisplayPlaneCapabilities2KHR = (PFN_vkGetDisplayPlaneCapabilities2KHR)gpa(inst, "vkGetDisplayPlaneCapabilities2KHR");
1431
1432 // ---- VK_KHR_fragment_shading_rate extension commands
1433 table->GetPhysicalDeviceFragmentShadingRatesKHR = (PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)gpa(inst, "vkGetPhysicalDeviceFragmentShadingRatesKHR");
1434
1435 // ---- VK_KHR_video_encode_queue extension commands
1436 table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = (PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
1437
1438 // ---- VK_KHR_cooperative_matrix extension commands
1439 table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR");
1440
1441 // ---- VK_KHR_calibrated_timestamps extension commands
1442 table->GetPhysicalDeviceCalibrateableTimeDomainsKHR = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR");
1443
1444 // ---- VK_EXT_debug_report extension commands
1445 table->CreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)gpa(inst, "vkCreateDebugReportCallbackEXT");
1446 table->DestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)gpa(inst, "vkDestroyDebugReportCallbackEXT");
1447 table->DebugReportMessageEXT = (PFN_vkDebugReportMessageEXT)gpa(inst, "vkDebugReportMessageEXT");
1448
1449 // ---- VK_GGP_stream_descriptor_surface extension commands
1450 #if defined(VK_USE_PLATFORM_GGP)
1451 table->CreateStreamDescriptorSurfaceGGP = (PFN_vkCreateStreamDescriptorSurfaceGGP)gpa(inst, "vkCreateStreamDescriptorSurfaceGGP");
1452 #endif // VK_USE_PLATFORM_GGP
1453
1454 // ---- VK_NV_external_memory_capabilities extension commands
1455 table->GetPhysicalDeviceExternalImageFormatPropertiesNV = (PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)gpa(inst, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
1456
1457 // ---- VK_NN_vi_surface extension commands
1458 #if defined(VK_USE_PLATFORM_VI_NN)
1459 table->CreateViSurfaceNN = (PFN_vkCreateViSurfaceNN)gpa(inst, "vkCreateViSurfaceNN");
1460 #endif // VK_USE_PLATFORM_VI_NN
1461
1462 // ---- VK_EXT_direct_mode_display extension commands
1463 table->ReleaseDisplayEXT = (PFN_vkReleaseDisplayEXT)gpa(inst, "vkReleaseDisplayEXT");
1464
1465 // ---- VK_EXT_acquire_xlib_display extension commands
1466 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1467 table->AcquireXlibDisplayEXT = (PFN_vkAcquireXlibDisplayEXT)gpa(inst, "vkAcquireXlibDisplayEXT");
1468 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1469 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
1470 table->GetRandROutputDisplayEXT = (PFN_vkGetRandROutputDisplayEXT)gpa(inst, "vkGetRandROutputDisplayEXT");
1471 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
1472
1473 // ---- VK_EXT_display_surface_counter extension commands
1474 table->GetPhysicalDeviceSurfaceCapabilities2EXT = (PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)gpa(inst, "vkGetPhysicalDeviceSurfaceCapabilities2EXT");
1475
1476 // ---- VK_MVK_ios_surface extension commands
1477 #if defined(VK_USE_PLATFORM_IOS_MVK)
1478 table->CreateIOSSurfaceMVK = (PFN_vkCreateIOSSurfaceMVK)gpa(inst, "vkCreateIOSSurfaceMVK");
1479 #endif // VK_USE_PLATFORM_IOS_MVK
1480
1481 // ---- VK_MVK_macos_surface extension commands
1482 #if defined(VK_USE_PLATFORM_MACOS_MVK)
1483 table->CreateMacOSSurfaceMVK = (PFN_vkCreateMacOSSurfaceMVK)gpa(inst, "vkCreateMacOSSurfaceMVK");
1484 #endif // VK_USE_PLATFORM_MACOS_MVK
1485
1486 // ---- VK_EXT_debug_utils extension commands
1487 table->CreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)gpa(inst, "vkCreateDebugUtilsMessengerEXT");
1488 table->DestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)gpa(inst, "vkDestroyDebugUtilsMessengerEXT");
1489 table->SubmitDebugUtilsMessageEXT = (PFN_vkSubmitDebugUtilsMessageEXT)gpa(inst, "vkSubmitDebugUtilsMessageEXT");
1490
1491 // ---- VK_EXT_sample_locations extension commands
1492 table->GetPhysicalDeviceMultisamplePropertiesEXT = (PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)gpa(inst, "vkGetPhysicalDeviceMultisamplePropertiesEXT");
1493
1494 // ---- VK_EXT_calibrated_timestamps extension commands
1495 table->GetPhysicalDeviceCalibrateableTimeDomainsEXT = (PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)gpa(inst, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
1496
1497 // ---- VK_FUCHSIA_imagepipe_surface extension commands
1498 #if defined(VK_USE_PLATFORM_FUCHSIA)
1499 table->CreateImagePipeSurfaceFUCHSIA = (PFN_vkCreateImagePipeSurfaceFUCHSIA)gpa(inst, "vkCreateImagePipeSurfaceFUCHSIA");
1500 #endif // VK_USE_PLATFORM_FUCHSIA
1501
1502 // ---- VK_EXT_metal_surface extension commands
1503 #if defined(VK_USE_PLATFORM_METAL_EXT)
1504 table->CreateMetalSurfaceEXT = (PFN_vkCreateMetalSurfaceEXT)gpa(inst, "vkCreateMetalSurfaceEXT");
1505 #endif // VK_USE_PLATFORM_METAL_EXT
1506
1507 // ---- VK_EXT_tooling_info extension commands
1508 table->GetPhysicalDeviceToolPropertiesEXT = (PFN_vkGetPhysicalDeviceToolPropertiesEXT)gpa(inst, "vkGetPhysicalDeviceToolPropertiesEXT");
1509
1510 // ---- VK_NV_cooperative_matrix extension commands
1511 table->GetPhysicalDeviceCooperativeMatrixPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
1512
1513 // ---- VK_NV_coverage_reduction_mode extension commands
1514 table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = (PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)gpa(inst, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
1515
1516 // ---- VK_EXT_full_screen_exclusive extension commands
1517 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1518 table->GetPhysicalDeviceSurfacePresentModes2EXT = (PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)gpa(inst, "vkGetPhysicalDeviceSurfacePresentModes2EXT");
1519 #endif // VK_USE_PLATFORM_WIN32_KHR
1520
1521 // ---- VK_EXT_headless_surface extension commands
1522 table->CreateHeadlessSurfaceEXT = (PFN_vkCreateHeadlessSurfaceEXT)gpa(inst, "vkCreateHeadlessSurfaceEXT");
1523
1524 // ---- VK_EXT_acquire_drm_display extension commands
1525 table->AcquireDrmDisplayEXT = (PFN_vkAcquireDrmDisplayEXT)gpa(inst, "vkAcquireDrmDisplayEXT");
1526 table->GetDrmDisplayEXT = (PFN_vkGetDrmDisplayEXT)gpa(inst, "vkGetDrmDisplayEXT");
1527
1528 // ---- VK_NV_acquire_winrt_display extension commands
1529 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1530 table->AcquireWinrtDisplayNV = (PFN_vkAcquireWinrtDisplayNV)gpa(inst, "vkAcquireWinrtDisplayNV");
1531 #endif // VK_USE_PLATFORM_WIN32_KHR
1532 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1533 table->GetWinrtDisplayNV = (PFN_vkGetWinrtDisplayNV)gpa(inst, "vkGetWinrtDisplayNV");
1534 #endif // VK_USE_PLATFORM_WIN32_KHR
1535
1536 // ---- VK_EXT_directfb_surface extension commands
1537 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1538 table->CreateDirectFBSurfaceEXT = (PFN_vkCreateDirectFBSurfaceEXT)gpa(inst, "vkCreateDirectFBSurfaceEXT");
1539 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
1540 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
1541 table->GetPhysicalDeviceDirectFBPresentationSupportEXT = (PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)gpa(inst, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
1542 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
1543
1544 // ---- VK_QNX_screen_surface extension commands
1545 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
1546 table->CreateScreenSurfaceQNX = (PFN_vkCreateScreenSurfaceQNX)gpa(inst, "vkCreateScreenSurfaceQNX");
1547 #endif // VK_USE_PLATFORM_SCREEN_QNX
1548 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
1549 table->GetPhysicalDeviceScreenPresentationSupportQNX = (PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)gpa(inst, "vkGetPhysicalDeviceScreenPresentationSupportQNX");
1550 #endif // VK_USE_PLATFORM_SCREEN_QNX
1551
1552 // ---- VK_NV_optical_flow extension commands
1553 table->GetPhysicalDeviceOpticalFlowImageFormatsNV = (PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)gpa(inst, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV");
1554
1555 #if defined(VK_USE_PLATFORM_OHOS)
1556 table->CreateSurfaceOHOS = (PFN_vkCreateSurfaceOHOS)gpa(inst, "vkCreateSurfaceOHOS");
1557 #endif // VK_USE_PLATFORM_OHOS
1558
1559 // ---- VK_NV_cooperative_vector extension commands
1560 table->GetPhysicalDeviceCooperativeVectorPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeVectorPropertiesNV");
1561
1562 // ---- VK_NV_cooperative_matrix2 extension commands
1563 table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)gpa(inst, "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
1564 }
1565
1566 // Functions that required a terminator need to have a separate dispatch table which contains their corresponding
1567 // device function. This is used in the terminators themselves.
init_extension_device_proc_terminator_dispatch(struct loader_device * dev)1568 void init_extension_device_proc_terminator_dispatch(struct loader_device *dev) {
1569 struct loader_device_terminator_dispatch* dispatch = &dev->loader_dispatch.extension_terminator_dispatch;
1570 PFN_vkGetDeviceProcAddr gpda = (PFN_vkGetDeviceProcAddr)dev->phys_dev_term->this_icd_term->dispatch.GetDeviceProcAddr;
1571 // ---- VK_KHR_swapchain extension commands
1572 if (dev->driver_extensions.khr_swapchain_enabled)
1573 dispatch->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gpda(dev->icd_device, "vkCreateSwapchainKHR");
1574 if (dev->driver_extensions.khr_swapchain_enabled)
1575 dispatch->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModesKHR");
1576 // ---- VK_KHR_display_swapchain extension commands
1577 if (dev->driver_extensions.khr_display_swapchain_enabled)
1578 dispatch->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gpda(dev->icd_device, "vkCreateSharedSwapchainsKHR");
1579 // ---- VK_EXT_debug_marker extension commands
1580 if (dev->driver_extensions.ext_debug_marker_enabled)
1581 dispatch->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectTagEXT");
1582 if (dev->driver_extensions.ext_debug_marker_enabled)
1583 dispatch->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectNameEXT");
1584 // ---- VK_EXT_debug_utils extension commands
1585 if (dev->driver_extensions.ext_debug_utils_enabled)
1586 dispatch->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectNameEXT");
1587 if (dev->driver_extensions.ext_debug_utils_enabled)
1588 dispatch->SetDebugUtilsObjectTagEXT = (PFN_vkSetDebugUtilsObjectTagEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectTagEXT");
1589 if (dev->driver_extensions.ext_debug_utils_enabled)
1590 dispatch->QueueBeginDebugUtilsLabelEXT = (PFN_vkQueueBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueBeginDebugUtilsLabelEXT");
1591 if (dev->driver_extensions.ext_debug_utils_enabled)
1592 dispatch->QueueEndDebugUtilsLabelEXT = (PFN_vkQueueEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueEndDebugUtilsLabelEXT");
1593 if (dev->driver_extensions.ext_debug_utils_enabled)
1594 dispatch->QueueInsertDebugUtilsLabelEXT = (PFN_vkQueueInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkQueueInsertDebugUtilsLabelEXT");
1595 if (dev->driver_extensions.ext_debug_utils_enabled)
1596 dispatch->CmdBeginDebugUtilsLabelEXT = (PFN_vkCmdBeginDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdBeginDebugUtilsLabelEXT");
1597 if (dev->driver_extensions.ext_debug_utils_enabled)
1598 dispatch->CmdEndDebugUtilsLabelEXT = (PFN_vkCmdEndDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdEndDebugUtilsLabelEXT");
1599 if (dev->driver_extensions.ext_debug_utils_enabled)
1600 dispatch->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdInsertDebugUtilsLabelEXT");
1601 #if defined(VK_USE_PLATFORM_WIN32_KHR)
1602 // ---- VK_EXT_full_screen_exclusive extension commands
1603 if (dev->driver_extensions.ext_full_screen_exclusive_enabled && (dev->driver_extensions.khr_device_group_enabled || dev->driver_extensions.version_1_1_enabled))
1604 dispatch->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModes2EXT");
1605 #endif // VK_USE_PLATFORM_WIN32_KHR
1606 }
1607
1608 // These are prototypes for functions that need their trampoline called in all circumstances.
1609 // They are used in loader_lookup_device_dispatch_table but are defined afterwards.
1610 // ---- VK_EXT_debug_marker extension commands
1611 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
1612 VkDevice device,
1613 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
1614 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
1615 VkDevice device,
1616 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
1617 // ---- VK_EXT_debug_utils extension commands
1618 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
1619 VkDevice device,
1620 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
1621 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
1622 VkDevice device,
1623 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
1624
1625 // Device command lookup function
loader_lookup_device_dispatch_table(const VkLayerDispatchTable * table,const char * name,bool * found_name)1626 VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDispatchTable *table, const char *name, bool* found_name) {
1627 if (!name || name[0] != 'v' || name[1] != 'k') {
1628 *found_name = false;
1629 return NULL;
1630 }
1631
1632 name += 2;
1633 *found_name = true;
1634 struct loader_device* dev = (struct loader_device *)table;
1635 const struct loader_instance* inst = dev->phys_dev_term->this_icd_term->this_instance;
1636 uint32_t api_version = VK_MAKE_API_VERSION(0, inst->app_api_version.major, inst->app_api_version.minor, inst->app_api_version.patch);
1637
1638
1639 // ---- Core Vulkan 1.0 commands
1640 if (!strcmp(name, "GetDeviceProcAddr")) {
1641 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1642 return (void *)table->GetDeviceProcAddr;
1643 }
1644 if (!strcmp(name, "DestroyDevice")) {
1645 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1646 return (void *)table->DestroyDevice;
1647 }
1648 if (!strcmp(name, "GetDeviceQueue")) {
1649 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1650 return (void *)table->GetDeviceQueue;
1651 }
1652 if (!strcmp(name, "QueueSubmit")) {
1653 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1654 return (void *)table->QueueSubmit;
1655 }
1656 if (!strcmp(name, "QueueWaitIdle")) {
1657 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1658 return (void *)table->QueueWaitIdle;
1659 }
1660 if (!strcmp(name, "DeviceWaitIdle")) {
1661 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1662 return (void *)table->DeviceWaitIdle;
1663 }
1664 if (!strcmp(name, "AllocateMemory")) {
1665 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1666 return (void *)table->AllocateMemory;
1667 }
1668 if (!strcmp(name, "FreeMemory")) {
1669 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1670 return (void *)table->FreeMemory;
1671 }
1672 if (!strcmp(name, "MapMemory")) {
1673 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1674 return (void *)table->MapMemory;
1675 }
1676 if (!strcmp(name, "UnmapMemory")) {
1677 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1678 return (void *)table->UnmapMemory;
1679 }
1680 if (!strcmp(name, "FlushMappedMemoryRanges")) {
1681 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1682 return (void *)table->FlushMappedMemoryRanges;
1683 }
1684 if (!strcmp(name, "InvalidateMappedMemoryRanges")) {
1685 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1686 return (void *)table->InvalidateMappedMemoryRanges;
1687 }
1688 if (!strcmp(name, "GetDeviceMemoryCommitment")) {
1689 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1690 return (void *)table->GetDeviceMemoryCommitment;
1691 }
1692 if (!strcmp(name, "BindBufferMemory")) {
1693 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1694 return (void *)table->BindBufferMemory;
1695 }
1696 if (!strcmp(name, "BindImageMemory")) {
1697 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1698 return (void *)table->BindImageMemory;
1699 }
1700 if (!strcmp(name, "GetBufferMemoryRequirements")) {
1701 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1702 return (void *)table->GetBufferMemoryRequirements;
1703 }
1704 if (!strcmp(name, "GetImageMemoryRequirements")) {
1705 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1706 return (void *)table->GetImageMemoryRequirements;
1707 }
1708 if (!strcmp(name, "GetImageSparseMemoryRequirements")) {
1709 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1710 return (void *)table->GetImageSparseMemoryRequirements;
1711 }
1712 if (!strcmp(name, "QueueBindSparse")) {
1713 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1714 return (void *)table->QueueBindSparse;
1715 }
1716 if (!strcmp(name, "CreateFence")) {
1717 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1718 return (void *)table->CreateFence;
1719 }
1720 if (!strcmp(name, "DestroyFence")) {
1721 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1722 return (void *)table->DestroyFence;
1723 }
1724 if (!strcmp(name, "ResetFences")) {
1725 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1726 return (void *)table->ResetFences;
1727 }
1728 if (!strcmp(name, "GetFenceStatus")) {
1729 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1730 return (void *)table->GetFenceStatus;
1731 }
1732 if (!strcmp(name, "WaitForFences")) {
1733 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1734 return (void *)table->WaitForFences;
1735 }
1736 if (!strcmp(name, "CreateSemaphore")) {
1737 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1738 return (void *)table->CreateSemaphore;
1739 }
1740 if (!strcmp(name, "DestroySemaphore")) {
1741 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1742 return (void *)table->DestroySemaphore;
1743 }
1744 if (!strcmp(name, "CreateEvent")) {
1745 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1746 return (void *)table->CreateEvent;
1747 }
1748 if (!strcmp(name, "DestroyEvent")) {
1749 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1750 return (void *)table->DestroyEvent;
1751 }
1752 if (!strcmp(name, "GetEventStatus")) {
1753 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1754 return (void *)table->GetEventStatus;
1755 }
1756 if (!strcmp(name, "SetEvent")) {
1757 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1758 return (void *)table->SetEvent;
1759 }
1760 if (!strcmp(name, "ResetEvent")) {
1761 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1762 return (void *)table->ResetEvent;
1763 }
1764 if (!strcmp(name, "CreateQueryPool")) {
1765 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1766 return (void *)table->CreateQueryPool;
1767 }
1768 if (!strcmp(name, "DestroyQueryPool")) {
1769 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1770 return (void *)table->DestroyQueryPool;
1771 }
1772 if (!strcmp(name, "GetQueryPoolResults")) {
1773 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1774 return (void *)table->GetQueryPoolResults;
1775 }
1776 if (!strcmp(name, "CreateBuffer")) {
1777 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1778 return (void *)table->CreateBuffer;
1779 }
1780 if (!strcmp(name, "DestroyBuffer")) {
1781 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1782 return (void *)table->DestroyBuffer;
1783 }
1784 if (!strcmp(name, "CreateBufferView")) {
1785 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1786 return (void *)table->CreateBufferView;
1787 }
1788 if (!strcmp(name, "DestroyBufferView")) {
1789 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1790 return (void *)table->DestroyBufferView;
1791 }
1792 if (!strcmp(name, "CreateImage")) {
1793 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1794 return (void *)table->CreateImage;
1795 }
1796 if (!strcmp(name, "DestroyImage")) {
1797 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1798 return (void *)table->DestroyImage;
1799 }
1800 if (!strcmp(name, "GetImageSubresourceLayout")) {
1801 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1802 return (void *)table->GetImageSubresourceLayout;
1803 }
1804 if (!strcmp(name, "CreateImageView")) {
1805 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1806 return (void *)table->CreateImageView;
1807 }
1808 if (!strcmp(name, "DestroyImageView")) {
1809 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1810 return (void *)table->DestroyImageView;
1811 }
1812 if (!strcmp(name, "CreateShaderModule")) {
1813 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1814 return (void *)table->CreateShaderModule;
1815 }
1816 if (!strcmp(name, "DestroyShaderModule")) {
1817 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1818 return (void *)table->DestroyShaderModule;
1819 }
1820 if (!strcmp(name, "CreatePipelineCache")) {
1821 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1822 return (void *)table->CreatePipelineCache;
1823 }
1824 if (!strcmp(name, "DestroyPipelineCache")) {
1825 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1826 return (void *)table->DestroyPipelineCache;
1827 }
1828 if (!strcmp(name, "GetPipelineCacheData")) {
1829 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1830 return (void *)table->GetPipelineCacheData;
1831 }
1832 if (!strcmp(name, "MergePipelineCaches")) {
1833 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1834 return (void *)table->MergePipelineCaches;
1835 }
1836 if (!strcmp(name, "CreateGraphicsPipelines")) {
1837 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1838 return (void *)table->CreateGraphicsPipelines;
1839 }
1840 if (!strcmp(name, "CreateComputePipelines")) {
1841 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1842 return (void *)table->CreateComputePipelines;
1843 }
1844 if (!strcmp(name, "DestroyPipeline")) {
1845 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1846 return (void *)table->DestroyPipeline;
1847 }
1848 if (!strcmp(name, "CreatePipelineLayout")) {
1849 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1850 return (void *)table->CreatePipelineLayout;
1851 }
1852 if (!strcmp(name, "DestroyPipelineLayout")) {
1853 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1854 return (void *)table->DestroyPipelineLayout;
1855 }
1856 if (!strcmp(name, "CreateSampler")) {
1857 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1858 return (void *)table->CreateSampler;
1859 }
1860 if (!strcmp(name, "DestroySampler")) {
1861 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1862 return (void *)table->DestroySampler;
1863 }
1864 if (!strcmp(name, "CreateDescriptorSetLayout")) {
1865 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1866 return (void *)table->CreateDescriptorSetLayout;
1867 }
1868 if (!strcmp(name, "DestroyDescriptorSetLayout")) {
1869 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1870 return (void *)table->DestroyDescriptorSetLayout;
1871 }
1872 if (!strcmp(name, "CreateDescriptorPool")) {
1873 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1874 return (void *)table->CreateDescriptorPool;
1875 }
1876 if (!strcmp(name, "DestroyDescriptorPool")) {
1877 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1878 return (void *)table->DestroyDescriptorPool;
1879 }
1880 if (!strcmp(name, "ResetDescriptorPool")) {
1881 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1882 return (void *)table->ResetDescriptorPool;
1883 }
1884 if (!strcmp(name, "AllocateDescriptorSets")) {
1885 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1886 return (void *)table->AllocateDescriptorSets;
1887 }
1888 if (!strcmp(name, "FreeDescriptorSets")) {
1889 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1890 return (void *)table->FreeDescriptorSets;
1891 }
1892 if (!strcmp(name, "UpdateDescriptorSets")) {
1893 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1894 return (void *)table->UpdateDescriptorSets;
1895 }
1896 if (!strcmp(name, "CreateFramebuffer")) {
1897 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1898 return (void *)table->CreateFramebuffer;
1899 }
1900 if (!strcmp(name, "DestroyFramebuffer")) {
1901 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1902 return (void *)table->DestroyFramebuffer;
1903 }
1904 if (!strcmp(name, "CreateRenderPass")) {
1905 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1906 return (void *)table->CreateRenderPass;
1907 }
1908 if (!strcmp(name, "DestroyRenderPass")) {
1909 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1910 return (void *)table->DestroyRenderPass;
1911 }
1912 if (!strcmp(name, "GetRenderAreaGranularity")) {
1913 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1914 return (void *)table->GetRenderAreaGranularity;
1915 }
1916 if (!strcmp(name, "CreateCommandPool")) {
1917 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1918 return (void *)table->CreateCommandPool;
1919 }
1920 if (!strcmp(name, "DestroyCommandPool")) {
1921 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1922 return (void *)table->DestroyCommandPool;
1923 }
1924 if (!strcmp(name, "ResetCommandPool")) {
1925 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1926 return (void *)table->ResetCommandPool;
1927 }
1928 if (!strcmp(name, "AllocateCommandBuffers")) {
1929 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1930 return (void *)table->AllocateCommandBuffers;
1931 }
1932 if (!strcmp(name, "FreeCommandBuffers")) {
1933 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1934 return (void *)table->FreeCommandBuffers;
1935 }
1936 if (!strcmp(name, "BeginCommandBuffer")) {
1937 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1938 return (void *)table->BeginCommandBuffer;
1939 }
1940 if (!strcmp(name, "EndCommandBuffer")) {
1941 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1942 return (void *)table->EndCommandBuffer;
1943 }
1944 if (!strcmp(name, "ResetCommandBuffer")) {
1945 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1946 return (void *)table->ResetCommandBuffer;
1947 }
1948 if (!strcmp(name, "CmdBindPipeline")) {
1949 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1950 return (void *)table->CmdBindPipeline;
1951 }
1952 if (!strcmp(name, "CmdSetViewport")) {
1953 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1954 return (void *)table->CmdSetViewport;
1955 }
1956 if (!strcmp(name, "CmdSetScissor")) {
1957 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1958 return (void *)table->CmdSetScissor;
1959 }
1960 if (!strcmp(name, "CmdSetLineWidth")) {
1961 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1962 return (void *)table->CmdSetLineWidth;
1963 }
1964 if (!strcmp(name, "CmdSetDepthBias")) {
1965 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1966 return (void *)table->CmdSetDepthBias;
1967 }
1968 if (!strcmp(name, "CmdSetBlendConstants")) {
1969 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1970 return (void *)table->CmdSetBlendConstants;
1971 }
1972 if (!strcmp(name, "CmdSetDepthBounds")) {
1973 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1974 return (void *)table->CmdSetDepthBounds;
1975 }
1976 if (!strcmp(name, "CmdSetStencilCompareMask")) {
1977 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1978 return (void *)table->CmdSetStencilCompareMask;
1979 }
1980 if (!strcmp(name, "CmdSetStencilWriteMask")) {
1981 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1982 return (void *)table->CmdSetStencilWriteMask;
1983 }
1984 if (!strcmp(name, "CmdSetStencilReference")) {
1985 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1986 return (void *)table->CmdSetStencilReference;
1987 }
1988 if (!strcmp(name, "CmdBindDescriptorSets")) {
1989 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1990 return (void *)table->CmdBindDescriptorSets;
1991 }
1992 if (!strcmp(name, "CmdBindIndexBuffer")) {
1993 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1994 return (void *)table->CmdBindIndexBuffer;
1995 }
1996 if (!strcmp(name, "CmdBindVertexBuffers")) {
1997 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
1998 return (void *)table->CmdBindVertexBuffers;
1999 }
2000 if (!strcmp(name, "CmdDraw")) {
2001 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2002 return (void *)table->CmdDraw;
2003 }
2004 if (!strcmp(name, "CmdDrawIndexed")) {
2005 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2006 return (void *)table->CmdDrawIndexed;
2007 }
2008 if (!strcmp(name, "CmdDrawIndirect")) {
2009 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2010 return (void *)table->CmdDrawIndirect;
2011 }
2012 if (!strcmp(name, "CmdDrawIndexedIndirect")) {
2013 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2014 return (void *)table->CmdDrawIndexedIndirect;
2015 }
2016 if (!strcmp(name, "CmdDispatch")) {
2017 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2018 return (void *)table->CmdDispatch;
2019 }
2020 if (!strcmp(name, "CmdDispatchIndirect")) {
2021 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2022 return (void *)table->CmdDispatchIndirect;
2023 }
2024 if (!strcmp(name, "CmdCopyBuffer")) {
2025 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2026 return (void *)table->CmdCopyBuffer;
2027 }
2028 if (!strcmp(name, "CmdCopyImage")) {
2029 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2030 return (void *)table->CmdCopyImage;
2031 }
2032 if (!strcmp(name, "CmdBlitImage")) {
2033 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2034 return (void *)table->CmdBlitImage;
2035 }
2036 if (!strcmp(name, "CmdCopyBufferToImage")) {
2037 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2038 return (void *)table->CmdCopyBufferToImage;
2039 }
2040 if (!strcmp(name, "CmdCopyImageToBuffer")) {
2041 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2042 return (void *)table->CmdCopyImageToBuffer;
2043 }
2044 if (!strcmp(name, "CmdUpdateBuffer")) {
2045 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2046 return (void *)table->CmdUpdateBuffer;
2047 }
2048 if (!strcmp(name, "CmdFillBuffer")) {
2049 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2050 return (void *)table->CmdFillBuffer;
2051 }
2052 if (!strcmp(name, "CmdClearColorImage")) {
2053 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2054 return (void *)table->CmdClearColorImage;
2055 }
2056 if (!strcmp(name, "CmdClearDepthStencilImage")) {
2057 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2058 return (void *)table->CmdClearDepthStencilImage;
2059 }
2060 if (!strcmp(name, "CmdClearAttachments")) {
2061 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2062 return (void *)table->CmdClearAttachments;
2063 }
2064 if (!strcmp(name, "CmdResolveImage")) {
2065 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2066 return (void *)table->CmdResolveImage;
2067 }
2068 if (!strcmp(name, "CmdSetEvent")) {
2069 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2070 return (void *)table->CmdSetEvent;
2071 }
2072 if (!strcmp(name, "CmdResetEvent")) {
2073 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2074 return (void *)table->CmdResetEvent;
2075 }
2076 if (!strcmp(name, "CmdWaitEvents")) {
2077 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2078 return (void *)table->CmdWaitEvents;
2079 }
2080 if (!strcmp(name, "CmdPipelineBarrier")) {
2081 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2082 return (void *)table->CmdPipelineBarrier;
2083 }
2084 if (!strcmp(name, "CmdBeginQuery")) {
2085 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2086 return (void *)table->CmdBeginQuery;
2087 }
2088 if (!strcmp(name, "CmdEndQuery")) {
2089 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2090 return (void *)table->CmdEndQuery;
2091 }
2092 if (!strcmp(name, "CmdResetQueryPool")) {
2093 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2094 return (void *)table->CmdResetQueryPool;
2095 }
2096 if (!strcmp(name, "CmdWriteTimestamp")) {
2097 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2098 return (void *)table->CmdWriteTimestamp;
2099 }
2100 if (!strcmp(name, "CmdCopyQueryPoolResults")) {
2101 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2102 return (void *)table->CmdCopyQueryPoolResults;
2103 }
2104 if (!strcmp(name, "CmdPushConstants")) {
2105 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2106 return (void *)table->CmdPushConstants;
2107 }
2108 if (!strcmp(name, "CmdBeginRenderPass")) {
2109 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2110 return (void *)table->CmdBeginRenderPass;
2111 }
2112 if (!strcmp(name, "CmdNextSubpass")) {
2113 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2114 return (void *)table->CmdNextSubpass;
2115 }
2116 if (!strcmp(name, "CmdEndRenderPass")) {
2117 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2118 return (void *)table->CmdEndRenderPass;
2119 }
2120 if (!strcmp(name, "CmdExecuteCommands")) {
2121 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_0) return NULL;
2122 return (void *)table->CmdExecuteCommands;
2123 }
2124
2125 // ---- Core Vulkan 1.1 commands
2126 if (!strcmp(name, "BindBufferMemory2")) {
2127 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2128 return (void *)table->BindBufferMemory2;
2129 }
2130 if (!strcmp(name, "BindImageMemory2")) {
2131 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2132 return (void *)table->BindImageMemory2;
2133 }
2134 if (!strcmp(name, "GetDeviceGroupPeerMemoryFeatures")) {
2135 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2136 return (void *)table->GetDeviceGroupPeerMemoryFeatures;
2137 }
2138 if (!strcmp(name, "CmdSetDeviceMask")) {
2139 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2140 return (void *)table->CmdSetDeviceMask;
2141 }
2142 if (!strcmp(name, "CmdDispatchBase")) {
2143 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2144 return (void *)table->CmdDispatchBase;
2145 }
2146 if (!strcmp(name, "GetImageMemoryRequirements2")) {
2147 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2148 return (void *)table->GetImageMemoryRequirements2;
2149 }
2150 if (!strcmp(name, "GetBufferMemoryRequirements2")) {
2151 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2152 return (void *)table->GetBufferMemoryRequirements2;
2153 }
2154 if (!strcmp(name, "GetImageSparseMemoryRequirements2")) {
2155 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2156 return (void *)table->GetImageSparseMemoryRequirements2;
2157 }
2158 if (!strcmp(name, "TrimCommandPool")) {
2159 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2160 return (void *)table->TrimCommandPool;
2161 }
2162 if (!strcmp(name, "GetDeviceQueue2")) {
2163 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2164 return (void *)table->GetDeviceQueue2;
2165 }
2166 if (!strcmp(name, "CreateSamplerYcbcrConversion")) {
2167 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2168 return (void *)table->CreateSamplerYcbcrConversion;
2169 }
2170 if (!strcmp(name, "DestroySamplerYcbcrConversion")) {
2171 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2172 return (void *)table->DestroySamplerYcbcrConversion;
2173 }
2174 if (!strcmp(name, "CreateDescriptorUpdateTemplate")) {
2175 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2176 return (void *)table->CreateDescriptorUpdateTemplate;
2177 }
2178 if (!strcmp(name, "DestroyDescriptorUpdateTemplate")) {
2179 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2180 return (void *)table->DestroyDescriptorUpdateTemplate;
2181 }
2182 if (!strcmp(name, "UpdateDescriptorSetWithTemplate")) {
2183 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2184 return (void *)table->UpdateDescriptorSetWithTemplate;
2185 }
2186 if (!strcmp(name, "GetDescriptorSetLayoutSupport")) {
2187 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_1) return NULL;
2188 return (void *)table->GetDescriptorSetLayoutSupport;
2189 }
2190
2191 // ---- Core Vulkan 1.2 commands
2192 if (!strcmp(name, "CmdDrawIndirectCount")) {
2193 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2194 return (void *)table->CmdDrawIndirectCount;
2195 }
2196 if (!strcmp(name, "CmdDrawIndexedIndirectCount")) {
2197 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2198 return (void *)table->CmdDrawIndexedIndirectCount;
2199 }
2200 if (!strcmp(name, "CreateRenderPass2")) {
2201 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2202 return (void *)table->CreateRenderPass2;
2203 }
2204 if (!strcmp(name, "CmdBeginRenderPass2")) {
2205 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2206 return (void *)table->CmdBeginRenderPass2;
2207 }
2208 if (!strcmp(name, "CmdNextSubpass2")) {
2209 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2210 return (void *)table->CmdNextSubpass2;
2211 }
2212 if (!strcmp(name, "CmdEndRenderPass2")) {
2213 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2214 return (void *)table->CmdEndRenderPass2;
2215 }
2216 if (!strcmp(name, "ResetQueryPool")) {
2217 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2218 return (void *)table->ResetQueryPool;
2219 }
2220 if (!strcmp(name, "GetSemaphoreCounterValue")) {
2221 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2222 return (void *)table->GetSemaphoreCounterValue;
2223 }
2224 if (!strcmp(name, "WaitSemaphores")) {
2225 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2226 return (void *)table->WaitSemaphores;
2227 }
2228 if (!strcmp(name, "SignalSemaphore")) {
2229 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2230 return (void *)table->SignalSemaphore;
2231 }
2232 if (!strcmp(name, "GetBufferDeviceAddress")) {
2233 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2234 return (void *)table->GetBufferDeviceAddress;
2235 }
2236 if (!strcmp(name, "GetBufferOpaqueCaptureAddress")) {
2237 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2238 return (void *)table->GetBufferOpaqueCaptureAddress;
2239 }
2240 if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddress")) {
2241 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_2) return NULL;
2242 return (void *)table->GetDeviceMemoryOpaqueCaptureAddress;
2243 }
2244
2245 // ---- Core Vulkan 1.3 commands
2246 if (!strcmp(name, "CreatePrivateDataSlot")) {
2247 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2248 return (void *)table->CreatePrivateDataSlot;
2249 }
2250 if (!strcmp(name, "DestroyPrivateDataSlot")) {
2251 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2252 return (void *)table->DestroyPrivateDataSlot;
2253 }
2254 if (!strcmp(name, "SetPrivateData")) {
2255 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2256 return (void *)table->SetPrivateData;
2257 }
2258 if (!strcmp(name, "GetPrivateData")) {
2259 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2260 return (void *)table->GetPrivateData;
2261 }
2262 if (!strcmp(name, "CmdSetEvent2")) {
2263 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2264 return (void *)table->CmdSetEvent2;
2265 }
2266 if (!strcmp(name, "CmdResetEvent2")) {
2267 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2268 return (void *)table->CmdResetEvent2;
2269 }
2270 if (!strcmp(name, "CmdWaitEvents2")) {
2271 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2272 return (void *)table->CmdWaitEvents2;
2273 }
2274 if (!strcmp(name, "CmdPipelineBarrier2")) {
2275 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2276 return (void *)table->CmdPipelineBarrier2;
2277 }
2278 if (!strcmp(name, "CmdWriteTimestamp2")) {
2279 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2280 return (void *)table->CmdWriteTimestamp2;
2281 }
2282 if (!strcmp(name, "QueueSubmit2")) {
2283 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2284 return (void *)table->QueueSubmit2;
2285 }
2286 if (!strcmp(name, "CmdCopyBuffer2")) {
2287 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2288 return (void *)table->CmdCopyBuffer2;
2289 }
2290 if (!strcmp(name, "CmdCopyImage2")) {
2291 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2292 return (void *)table->CmdCopyImage2;
2293 }
2294 if (!strcmp(name, "CmdCopyBufferToImage2")) {
2295 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2296 return (void *)table->CmdCopyBufferToImage2;
2297 }
2298 if (!strcmp(name, "CmdCopyImageToBuffer2")) {
2299 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2300 return (void *)table->CmdCopyImageToBuffer2;
2301 }
2302 if (!strcmp(name, "CmdBlitImage2")) {
2303 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2304 return (void *)table->CmdBlitImage2;
2305 }
2306 if (!strcmp(name, "CmdResolveImage2")) {
2307 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2308 return (void *)table->CmdResolveImage2;
2309 }
2310 if (!strcmp(name, "CmdBeginRendering")) {
2311 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2312 return (void *)table->CmdBeginRendering;
2313 }
2314 if (!strcmp(name, "CmdEndRendering")) {
2315 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2316 return (void *)table->CmdEndRendering;
2317 }
2318 if (!strcmp(name, "CmdSetCullMode")) {
2319 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2320 return (void *)table->CmdSetCullMode;
2321 }
2322 if (!strcmp(name, "CmdSetFrontFace")) {
2323 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2324 return (void *)table->CmdSetFrontFace;
2325 }
2326 if (!strcmp(name, "CmdSetPrimitiveTopology")) {
2327 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2328 return (void *)table->CmdSetPrimitiveTopology;
2329 }
2330 if (!strcmp(name, "CmdSetViewportWithCount")) {
2331 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2332 return (void *)table->CmdSetViewportWithCount;
2333 }
2334 if (!strcmp(name, "CmdSetScissorWithCount")) {
2335 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2336 return (void *)table->CmdSetScissorWithCount;
2337 }
2338 if (!strcmp(name, "CmdBindVertexBuffers2")) {
2339 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2340 return (void *)table->CmdBindVertexBuffers2;
2341 }
2342 if (!strcmp(name, "CmdSetDepthTestEnable")) {
2343 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2344 return (void *)table->CmdSetDepthTestEnable;
2345 }
2346 if (!strcmp(name, "CmdSetDepthWriteEnable")) {
2347 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2348 return (void *)table->CmdSetDepthWriteEnable;
2349 }
2350 if (!strcmp(name, "CmdSetDepthCompareOp")) {
2351 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2352 return (void *)table->CmdSetDepthCompareOp;
2353 }
2354 if (!strcmp(name, "CmdSetDepthBoundsTestEnable")) {
2355 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2356 return (void *)table->CmdSetDepthBoundsTestEnable;
2357 }
2358 if (!strcmp(name, "CmdSetStencilTestEnable")) {
2359 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2360 return (void *)table->CmdSetStencilTestEnable;
2361 }
2362 if (!strcmp(name, "CmdSetStencilOp")) {
2363 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2364 return (void *)table->CmdSetStencilOp;
2365 }
2366 if (!strcmp(name, "CmdSetRasterizerDiscardEnable")) {
2367 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2368 return (void *)table->CmdSetRasterizerDiscardEnable;
2369 }
2370 if (!strcmp(name, "CmdSetDepthBiasEnable")) {
2371 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2372 return (void *)table->CmdSetDepthBiasEnable;
2373 }
2374 if (!strcmp(name, "CmdSetPrimitiveRestartEnable")) {
2375 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2376 return (void *)table->CmdSetPrimitiveRestartEnable;
2377 }
2378 if (!strcmp(name, "GetDeviceBufferMemoryRequirements")) {
2379 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2380 return (void *)table->GetDeviceBufferMemoryRequirements;
2381 }
2382 if (!strcmp(name, "GetDeviceImageMemoryRequirements")) {
2383 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2384 return (void *)table->GetDeviceImageMemoryRequirements;
2385 }
2386 if (!strcmp(name, "GetDeviceImageSparseMemoryRequirements")) {
2387 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_3) return NULL;
2388 return (void *)table->GetDeviceImageSparseMemoryRequirements;
2389 }
2390
2391 // ---- Core Vulkan 1.4 commands
2392 if (!strcmp(name, "CmdSetLineStipple")) {
2393 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2394 return (void *)table->CmdSetLineStipple;
2395 }
2396 if (!strcmp(name, "MapMemory2")) {
2397 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2398 return (void *)table->MapMemory2;
2399 }
2400 if (!strcmp(name, "UnmapMemory2")) {
2401 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2402 return (void *)table->UnmapMemory2;
2403 }
2404 if (!strcmp(name, "CmdBindIndexBuffer2")) {
2405 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2406 return (void *)table->CmdBindIndexBuffer2;
2407 }
2408 if (!strcmp(name, "GetRenderingAreaGranularity")) {
2409 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2410 return (void *)table->GetRenderingAreaGranularity;
2411 }
2412 if (!strcmp(name, "GetDeviceImageSubresourceLayout")) {
2413 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2414 return (void *)table->GetDeviceImageSubresourceLayout;
2415 }
2416 if (!strcmp(name, "GetImageSubresourceLayout2")) {
2417 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2418 return (void *)table->GetImageSubresourceLayout2;
2419 }
2420 if (!strcmp(name, "CmdPushDescriptorSet")) {
2421 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2422 return (void *)table->CmdPushDescriptorSet;
2423 }
2424 if (!strcmp(name, "CmdPushDescriptorSetWithTemplate")) {
2425 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2426 return (void *)table->CmdPushDescriptorSetWithTemplate;
2427 }
2428 if (!strcmp(name, "CmdSetRenderingAttachmentLocations")) {
2429 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2430 return (void *)table->CmdSetRenderingAttachmentLocations;
2431 }
2432 if (!strcmp(name, "CmdSetRenderingInputAttachmentIndices")) {
2433 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2434 return (void *)table->CmdSetRenderingInputAttachmentIndices;
2435 }
2436 if (!strcmp(name, "CmdBindDescriptorSets2")) {
2437 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2438 return (void *)table->CmdBindDescriptorSets2;
2439 }
2440 if (!strcmp(name, "CmdPushConstants2")) {
2441 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2442 return (void *)table->CmdPushConstants2;
2443 }
2444 if (!strcmp(name, "CmdPushDescriptorSet2")) {
2445 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2446 return (void *)table->CmdPushDescriptorSet2;
2447 }
2448 if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2")) {
2449 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2450 return (void *)table->CmdPushDescriptorSetWithTemplate2;
2451 }
2452 if (!strcmp(name, "CopyMemoryToImage")) {
2453 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2454 return (void *)table->CopyMemoryToImage;
2455 }
2456 if (!strcmp(name, "CopyImageToMemory")) {
2457 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2458 return (void *)table->CopyImageToMemory;
2459 }
2460 if (!strcmp(name, "CopyImageToImage")) {
2461 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2462 return (void *)table->CopyImageToImage;
2463 }
2464 if (!strcmp(name, "TransitionImageLayout")) {
2465 if (dev->should_ignore_device_commands_from_newer_version && api_version < VK_API_VERSION_1_4) return NULL;
2466 return (void *)table->TransitionImageLayout;
2467 }
2468
2469 // ---- VK_KHR_swapchain extension commands
2470 if (!strcmp(name, "CreateSwapchainKHR")) return (void *)table->CreateSwapchainKHR;
2471 if (!strcmp(name, "DestroySwapchainKHR")) return (void *)table->DestroySwapchainKHR;
2472 if (!strcmp(name, "GetSwapchainImagesKHR")) return (void *)table->GetSwapchainImagesKHR;
2473 if (!strcmp(name, "AcquireNextImageKHR")) return (void *)table->AcquireNextImageKHR;
2474 if (!strcmp(name, "QueuePresentKHR")) return (void *)table->QueuePresentKHR;
2475 if (!strcmp(name, "GetDeviceGroupPresentCapabilitiesKHR")) return (void *)table->GetDeviceGroupPresentCapabilitiesKHR;
2476 if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) return (void *)table->GetDeviceGroupSurfacePresentModesKHR;
2477 if (!strcmp(name, "AcquireNextImage2KHR")) return (void *)table->AcquireNextImage2KHR;
2478
2479 // ---- VK_KHR_display_swapchain extension commands
2480 if (!strcmp(name, "CreateSharedSwapchainsKHR")) return (void *)table->CreateSharedSwapchainsKHR;
2481
2482 // ---- VK_KHR_video_queue extension commands
2483 if (!strcmp(name, "CreateVideoSessionKHR")) return (void *)table->CreateVideoSessionKHR;
2484 if (!strcmp(name, "DestroyVideoSessionKHR")) return (void *)table->DestroyVideoSessionKHR;
2485 if (!strcmp(name, "GetVideoSessionMemoryRequirementsKHR")) return (void *)table->GetVideoSessionMemoryRequirementsKHR;
2486 if (!strcmp(name, "BindVideoSessionMemoryKHR")) return (void *)table->BindVideoSessionMemoryKHR;
2487 if (!strcmp(name, "CreateVideoSessionParametersKHR")) return (void *)table->CreateVideoSessionParametersKHR;
2488 if (!strcmp(name, "UpdateVideoSessionParametersKHR")) return (void *)table->UpdateVideoSessionParametersKHR;
2489 if (!strcmp(name, "DestroyVideoSessionParametersKHR")) return (void *)table->DestroyVideoSessionParametersKHR;
2490 if (!strcmp(name, "CmdBeginVideoCodingKHR")) return (void *)table->CmdBeginVideoCodingKHR;
2491 if (!strcmp(name, "CmdEndVideoCodingKHR")) return (void *)table->CmdEndVideoCodingKHR;
2492 if (!strcmp(name, "CmdControlVideoCodingKHR")) return (void *)table->CmdControlVideoCodingKHR;
2493
2494 // ---- VK_KHR_video_decode_queue extension commands
2495 if (!strcmp(name, "CmdDecodeVideoKHR")) return (void *)table->CmdDecodeVideoKHR;
2496
2497 // ---- VK_KHR_dynamic_rendering extension commands
2498 if (!strcmp(name, "CmdBeginRenderingKHR")) return (void *)table->CmdBeginRenderingKHR;
2499 if (!strcmp(name, "CmdEndRenderingKHR")) return (void *)table->CmdEndRenderingKHR;
2500
2501 // ---- VK_KHR_device_group extension commands
2502 if (!strcmp(name, "GetDeviceGroupPeerMemoryFeaturesKHR")) return (void *)table->GetDeviceGroupPeerMemoryFeaturesKHR;
2503 if (!strcmp(name, "CmdSetDeviceMaskKHR")) return (void *)table->CmdSetDeviceMaskKHR;
2504 if (!strcmp(name, "CmdDispatchBaseKHR")) return (void *)table->CmdDispatchBaseKHR;
2505
2506 // ---- VK_KHR_maintenance1 extension commands
2507 if (!strcmp(name, "TrimCommandPoolKHR")) return (void *)table->TrimCommandPoolKHR;
2508
2509 // ---- VK_KHR_external_memory_win32 extension commands
2510 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2511 if (!strcmp(name, "GetMemoryWin32HandleKHR")) return (void *)table->GetMemoryWin32HandleKHR;
2512 #endif // VK_USE_PLATFORM_WIN32_KHR
2513 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2514 if (!strcmp(name, "GetMemoryWin32HandlePropertiesKHR")) return (void *)table->GetMemoryWin32HandlePropertiesKHR;
2515 #endif // VK_USE_PLATFORM_WIN32_KHR
2516
2517 // ---- VK_KHR_external_memory_fd extension commands
2518 if (!strcmp(name, "GetMemoryFdKHR")) return (void *)table->GetMemoryFdKHR;
2519 if (!strcmp(name, "GetMemoryFdPropertiesKHR")) return (void *)table->GetMemoryFdPropertiesKHR;
2520
2521 // ---- VK_KHR_external_semaphore_win32 extension commands
2522 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2523 if (!strcmp(name, "ImportSemaphoreWin32HandleKHR")) return (void *)table->ImportSemaphoreWin32HandleKHR;
2524 #endif // VK_USE_PLATFORM_WIN32_KHR
2525 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2526 if (!strcmp(name, "GetSemaphoreWin32HandleKHR")) return (void *)table->GetSemaphoreWin32HandleKHR;
2527 #endif // VK_USE_PLATFORM_WIN32_KHR
2528
2529 // ---- VK_KHR_external_semaphore_fd extension commands
2530 if (!strcmp(name, "ImportSemaphoreFdKHR")) return (void *)table->ImportSemaphoreFdKHR;
2531 if (!strcmp(name, "GetSemaphoreFdKHR")) return (void *)table->GetSemaphoreFdKHR;
2532
2533 // ---- VK_KHR_push_descriptor extension commands
2534 if (!strcmp(name, "CmdPushDescriptorSetKHR")) return (void *)table->CmdPushDescriptorSetKHR;
2535 if (!strcmp(name, "CmdPushDescriptorSetWithTemplateKHR")) return (void *)table->CmdPushDescriptorSetWithTemplateKHR;
2536
2537 // ---- VK_KHR_descriptor_update_template extension commands
2538 if (!strcmp(name, "CreateDescriptorUpdateTemplateKHR")) return (void *)table->CreateDescriptorUpdateTemplateKHR;
2539 if (!strcmp(name, "DestroyDescriptorUpdateTemplateKHR")) return (void *)table->DestroyDescriptorUpdateTemplateKHR;
2540 if (!strcmp(name, "UpdateDescriptorSetWithTemplateKHR")) return (void *)table->UpdateDescriptorSetWithTemplateKHR;
2541
2542 // ---- VK_KHR_create_renderpass2 extension commands
2543 if (!strcmp(name, "CreateRenderPass2KHR")) return (void *)table->CreateRenderPass2KHR;
2544 if (!strcmp(name, "CmdBeginRenderPass2KHR")) return (void *)table->CmdBeginRenderPass2KHR;
2545 if (!strcmp(name, "CmdNextSubpass2KHR")) return (void *)table->CmdNextSubpass2KHR;
2546 if (!strcmp(name, "CmdEndRenderPass2KHR")) return (void *)table->CmdEndRenderPass2KHR;
2547
2548 // ---- VK_KHR_shared_presentable_image extension commands
2549 if (!strcmp(name, "GetSwapchainStatusKHR")) return (void *)table->GetSwapchainStatusKHR;
2550
2551 // ---- VK_KHR_external_fence_win32 extension commands
2552 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2553 if (!strcmp(name, "ImportFenceWin32HandleKHR")) return (void *)table->ImportFenceWin32HandleKHR;
2554 #endif // VK_USE_PLATFORM_WIN32_KHR
2555 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2556 if (!strcmp(name, "GetFenceWin32HandleKHR")) return (void *)table->GetFenceWin32HandleKHR;
2557 #endif // VK_USE_PLATFORM_WIN32_KHR
2558
2559 // ---- VK_KHR_external_fence_fd extension commands
2560 if (!strcmp(name, "ImportFenceFdKHR")) return (void *)table->ImportFenceFdKHR;
2561 if (!strcmp(name, "GetFenceFdKHR")) return (void *)table->GetFenceFdKHR;
2562
2563 // ---- VK_KHR_performance_query extension commands
2564 if (!strcmp(name, "AcquireProfilingLockKHR")) return (void *)table->AcquireProfilingLockKHR;
2565 if (!strcmp(name, "ReleaseProfilingLockKHR")) return (void *)table->ReleaseProfilingLockKHR;
2566
2567 // ---- VK_KHR_get_memory_requirements2 extension commands
2568 if (!strcmp(name, "GetImageMemoryRequirements2KHR")) return (void *)table->GetImageMemoryRequirements2KHR;
2569 if (!strcmp(name, "GetBufferMemoryRequirements2KHR")) return (void *)table->GetBufferMemoryRequirements2KHR;
2570 if (!strcmp(name, "GetImageSparseMemoryRequirements2KHR")) return (void *)table->GetImageSparseMemoryRequirements2KHR;
2571
2572 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
2573 if (!strcmp(name, "CreateSamplerYcbcrConversionKHR")) return (void *)table->CreateSamplerYcbcrConversionKHR;
2574 if (!strcmp(name, "DestroySamplerYcbcrConversionKHR")) return (void *)table->DestroySamplerYcbcrConversionKHR;
2575
2576 // ---- VK_KHR_bind_memory2 extension commands
2577 if (!strcmp(name, "BindBufferMemory2KHR")) return (void *)table->BindBufferMemory2KHR;
2578 if (!strcmp(name, "BindImageMemory2KHR")) return (void *)table->BindImageMemory2KHR;
2579
2580 // ---- VK_KHR_maintenance3 extension commands
2581 if (!strcmp(name, "GetDescriptorSetLayoutSupportKHR")) return (void *)table->GetDescriptorSetLayoutSupportKHR;
2582
2583 // ---- VK_KHR_draw_indirect_count extension commands
2584 if (!strcmp(name, "CmdDrawIndirectCountKHR")) return (void *)table->CmdDrawIndirectCountKHR;
2585 if (!strcmp(name, "CmdDrawIndexedIndirectCountKHR")) return (void *)table->CmdDrawIndexedIndirectCountKHR;
2586
2587 // ---- VK_KHR_timeline_semaphore extension commands
2588 if (!strcmp(name, "GetSemaphoreCounterValueKHR")) return (void *)table->GetSemaphoreCounterValueKHR;
2589 if (!strcmp(name, "WaitSemaphoresKHR")) return (void *)table->WaitSemaphoresKHR;
2590 if (!strcmp(name, "SignalSemaphoreKHR")) return (void *)table->SignalSemaphoreKHR;
2591
2592 // ---- VK_KHR_fragment_shading_rate extension commands
2593 if (!strcmp(name, "CmdSetFragmentShadingRateKHR")) return (void *)table->CmdSetFragmentShadingRateKHR;
2594
2595 // ---- VK_KHR_dynamic_rendering_local_read extension commands
2596 if (!strcmp(name, "CmdSetRenderingAttachmentLocationsKHR")) return (void *)table->CmdSetRenderingAttachmentLocationsKHR;
2597 if (!strcmp(name, "CmdSetRenderingInputAttachmentIndicesKHR")) return (void *)table->CmdSetRenderingInputAttachmentIndicesKHR;
2598
2599 // ---- VK_KHR_present_wait extension commands
2600 if (!strcmp(name, "WaitForPresentKHR")) return (void *)table->WaitForPresentKHR;
2601
2602 // ---- VK_KHR_buffer_device_address extension commands
2603 if (!strcmp(name, "GetBufferDeviceAddressKHR")) return (void *)table->GetBufferDeviceAddressKHR;
2604 if (!strcmp(name, "GetBufferOpaqueCaptureAddressKHR")) return (void *)table->GetBufferOpaqueCaptureAddressKHR;
2605 if (!strcmp(name, "GetDeviceMemoryOpaqueCaptureAddressKHR")) return (void *)table->GetDeviceMemoryOpaqueCaptureAddressKHR;
2606
2607 // ---- VK_KHR_deferred_host_operations extension commands
2608 if (!strcmp(name, "CreateDeferredOperationKHR")) return (void *)table->CreateDeferredOperationKHR;
2609 if (!strcmp(name, "DestroyDeferredOperationKHR")) return (void *)table->DestroyDeferredOperationKHR;
2610 if (!strcmp(name, "GetDeferredOperationMaxConcurrencyKHR")) return (void *)table->GetDeferredOperationMaxConcurrencyKHR;
2611 if (!strcmp(name, "GetDeferredOperationResultKHR")) return (void *)table->GetDeferredOperationResultKHR;
2612 if (!strcmp(name, "DeferredOperationJoinKHR")) return (void *)table->DeferredOperationJoinKHR;
2613
2614 // ---- VK_KHR_pipeline_executable_properties extension commands
2615 if (!strcmp(name, "GetPipelineExecutablePropertiesKHR")) return (void *)table->GetPipelineExecutablePropertiesKHR;
2616 if (!strcmp(name, "GetPipelineExecutableStatisticsKHR")) return (void *)table->GetPipelineExecutableStatisticsKHR;
2617 if (!strcmp(name, "GetPipelineExecutableInternalRepresentationsKHR")) return (void *)table->GetPipelineExecutableInternalRepresentationsKHR;
2618
2619 // ---- VK_KHR_map_memory2 extension commands
2620 if (!strcmp(name, "MapMemory2KHR")) return (void *)table->MapMemory2KHR;
2621 if (!strcmp(name, "UnmapMemory2KHR")) return (void *)table->UnmapMemory2KHR;
2622
2623 // ---- VK_KHR_video_encode_queue extension commands
2624 if (!strcmp(name, "GetEncodedVideoSessionParametersKHR")) return (void *)table->GetEncodedVideoSessionParametersKHR;
2625 if (!strcmp(name, "CmdEncodeVideoKHR")) return (void *)table->CmdEncodeVideoKHR;
2626
2627 // ---- VK_KHR_synchronization2 extension commands
2628 if (!strcmp(name, "CmdSetEvent2KHR")) return (void *)table->CmdSetEvent2KHR;
2629 if (!strcmp(name, "CmdResetEvent2KHR")) return (void *)table->CmdResetEvent2KHR;
2630 if (!strcmp(name, "CmdWaitEvents2KHR")) return (void *)table->CmdWaitEvents2KHR;
2631 if (!strcmp(name, "CmdPipelineBarrier2KHR")) return (void *)table->CmdPipelineBarrier2KHR;
2632 if (!strcmp(name, "CmdWriteTimestamp2KHR")) return (void *)table->CmdWriteTimestamp2KHR;
2633 if (!strcmp(name, "QueueSubmit2KHR")) return (void *)table->QueueSubmit2KHR;
2634
2635 // ---- VK_KHR_copy_commands2 extension commands
2636 if (!strcmp(name, "CmdCopyBuffer2KHR")) return (void *)table->CmdCopyBuffer2KHR;
2637 if (!strcmp(name, "CmdCopyImage2KHR")) return (void *)table->CmdCopyImage2KHR;
2638 if (!strcmp(name, "CmdCopyBufferToImage2KHR")) return (void *)table->CmdCopyBufferToImage2KHR;
2639 if (!strcmp(name, "CmdCopyImageToBuffer2KHR")) return (void *)table->CmdCopyImageToBuffer2KHR;
2640 if (!strcmp(name, "CmdBlitImage2KHR")) return (void *)table->CmdBlitImage2KHR;
2641 if (!strcmp(name, "CmdResolveImage2KHR")) return (void *)table->CmdResolveImage2KHR;
2642
2643 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
2644 if (!strcmp(name, "CmdTraceRaysIndirect2KHR")) return (void *)table->CmdTraceRaysIndirect2KHR;
2645
2646 // ---- VK_KHR_maintenance4 extension commands
2647 if (!strcmp(name, "GetDeviceBufferMemoryRequirementsKHR")) return (void *)table->GetDeviceBufferMemoryRequirementsKHR;
2648 if (!strcmp(name, "GetDeviceImageMemoryRequirementsKHR")) return (void *)table->GetDeviceImageMemoryRequirementsKHR;
2649 if (!strcmp(name, "GetDeviceImageSparseMemoryRequirementsKHR")) return (void *)table->GetDeviceImageSparseMemoryRequirementsKHR;
2650
2651 // ---- VK_KHR_maintenance5 extension commands
2652 if (!strcmp(name, "CmdBindIndexBuffer2KHR")) return (void *)table->CmdBindIndexBuffer2KHR;
2653 if (!strcmp(name, "GetRenderingAreaGranularityKHR")) return (void *)table->GetRenderingAreaGranularityKHR;
2654 if (!strcmp(name, "GetDeviceImageSubresourceLayoutKHR")) return (void *)table->GetDeviceImageSubresourceLayoutKHR;
2655 if (!strcmp(name, "GetImageSubresourceLayout2KHR")) return (void *)table->GetImageSubresourceLayout2KHR;
2656
2657 // ---- VK_KHR_pipeline_binary extension commands
2658 if (!strcmp(name, "CreatePipelineBinariesKHR")) return (void *)table->CreatePipelineBinariesKHR;
2659 if (!strcmp(name, "DestroyPipelineBinaryKHR")) return (void *)table->DestroyPipelineBinaryKHR;
2660 if (!strcmp(name, "GetPipelineKeyKHR")) return (void *)table->GetPipelineKeyKHR;
2661 if (!strcmp(name, "GetPipelineBinaryDataKHR")) return (void *)table->GetPipelineBinaryDataKHR;
2662 if (!strcmp(name, "ReleaseCapturedPipelineDataKHR")) return (void *)table->ReleaseCapturedPipelineDataKHR;
2663
2664 // ---- VK_KHR_line_rasterization extension commands
2665 if (!strcmp(name, "CmdSetLineStippleKHR")) return (void *)table->CmdSetLineStippleKHR;
2666
2667 // ---- VK_KHR_calibrated_timestamps extension commands
2668 if (!strcmp(name, "GetCalibratedTimestampsKHR")) return (void *)table->GetCalibratedTimestampsKHR;
2669
2670 // ---- VK_KHR_maintenance6 extension commands
2671 if (!strcmp(name, "CmdBindDescriptorSets2KHR")) return (void *)table->CmdBindDescriptorSets2KHR;
2672 if (!strcmp(name, "CmdPushConstants2KHR")) return (void *)table->CmdPushConstants2KHR;
2673 if (!strcmp(name, "CmdPushDescriptorSet2KHR")) return (void *)table->CmdPushDescriptorSet2KHR;
2674 if (!strcmp(name, "CmdPushDescriptorSetWithTemplate2KHR")) return (void *)table->CmdPushDescriptorSetWithTemplate2KHR;
2675 if (!strcmp(name, "CmdSetDescriptorBufferOffsets2EXT")) return (void *)table->CmdSetDescriptorBufferOffsets2EXT;
2676 if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplers2EXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplers2EXT;
2677
2678 // ---- VK_EXT_debug_marker extension commands
2679 if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectTagEXT : NULL;
2680 if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) return dev->layer_extensions.ext_debug_marker_enabled ? (void *)DebugMarkerSetObjectNameEXT : NULL;
2681 if (!strcmp(name, "CmdDebugMarkerBeginEXT")) return (void *)table->CmdDebugMarkerBeginEXT;
2682 if (!strcmp(name, "CmdDebugMarkerEndEXT")) return (void *)table->CmdDebugMarkerEndEXT;
2683 if (!strcmp(name, "CmdDebugMarkerInsertEXT")) return (void *)table->CmdDebugMarkerInsertEXT;
2684
2685 // ---- VK_EXT_transform_feedback extension commands
2686 if (!strcmp(name, "CmdBindTransformFeedbackBuffersEXT")) return (void *)table->CmdBindTransformFeedbackBuffersEXT;
2687 if (!strcmp(name, "CmdBeginTransformFeedbackEXT")) return (void *)table->CmdBeginTransformFeedbackEXT;
2688 if (!strcmp(name, "CmdEndTransformFeedbackEXT")) return (void *)table->CmdEndTransformFeedbackEXT;
2689 if (!strcmp(name, "CmdBeginQueryIndexedEXT")) return (void *)table->CmdBeginQueryIndexedEXT;
2690 if (!strcmp(name, "CmdEndQueryIndexedEXT")) return (void *)table->CmdEndQueryIndexedEXT;
2691 if (!strcmp(name, "CmdDrawIndirectByteCountEXT")) return (void *)table->CmdDrawIndirectByteCountEXT;
2692
2693 // ---- VK_NVX_binary_import extension commands
2694 if (!strcmp(name, "CreateCuModuleNVX")) return (void *)table->CreateCuModuleNVX;
2695 if (!strcmp(name, "CreateCuFunctionNVX")) return (void *)table->CreateCuFunctionNVX;
2696 if (!strcmp(name, "DestroyCuModuleNVX")) return (void *)table->DestroyCuModuleNVX;
2697 if (!strcmp(name, "DestroyCuFunctionNVX")) return (void *)table->DestroyCuFunctionNVX;
2698 if (!strcmp(name, "CmdCuLaunchKernelNVX")) return (void *)table->CmdCuLaunchKernelNVX;
2699
2700 // ---- VK_NVX_image_view_handle extension commands
2701 if (!strcmp(name, "GetImageViewHandleNVX")) return (void *)table->GetImageViewHandleNVX;
2702 if (!strcmp(name, "GetImageViewHandle64NVX")) return (void *)table->GetImageViewHandle64NVX;
2703 if (!strcmp(name, "GetImageViewAddressNVX")) return (void *)table->GetImageViewAddressNVX;
2704
2705 // ---- VK_AMD_draw_indirect_count extension commands
2706 if (!strcmp(name, "CmdDrawIndirectCountAMD")) return (void *)table->CmdDrawIndirectCountAMD;
2707 if (!strcmp(name, "CmdDrawIndexedIndirectCountAMD")) return (void *)table->CmdDrawIndexedIndirectCountAMD;
2708
2709 // ---- VK_AMD_shader_info extension commands
2710 if (!strcmp(name, "GetShaderInfoAMD")) return (void *)table->GetShaderInfoAMD;
2711
2712 // ---- VK_NV_external_memory_win32 extension commands
2713 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2714 if (!strcmp(name, "GetMemoryWin32HandleNV")) return (void *)table->GetMemoryWin32HandleNV;
2715 #endif // VK_USE_PLATFORM_WIN32_KHR
2716
2717 // ---- VK_EXT_conditional_rendering extension commands
2718 if (!strcmp(name, "CmdBeginConditionalRenderingEXT")) return (void *)table->CmdBeginConditionalRenderingEXT;
2719 if (!strcmp(name, "CmdEndConditionalRenderingEXT")) return (void *)table->CmdEndConditionalRenderingEXT;
2720
2721 // ---- VK_NV_clip_space_w_scaling extension commands
2722 if (!strcmp(name, "CmdSetViewportWScalingNV")) return (void *)table->CmdSetViewportWScalingNV;
2723
2724 // ---- VK_EXT_display_control extension commands
2725 if (!strcmp(name, "DisplayPowerControlEXT")) return (void *)table->DisplayPowerControlEXT;
2726 if (!strcmp(name, "RegisterDeviceEventEXT")) return (void *)table->RegisterDeviceEventEXT;
2727 if (!strcmp(name, "RegisterDisplayEventEXT")) return (void *)table->RegisterDisplayEventEXT;
2728 if (!strcmp(name, "GetSwapchainCounterEXT")) return (void *)table->GetSwapchainCounterEXT;
2729
2730 // ---- VK_GOOGLE_display_timing extension commands
2731 if (!strcmp(name, "GetRefreshCycleDurationGOOGLE")) return (void *)table->GetRefreshCycleDurationGOOGLE;
2732 if (!strcmp(name, "GetPastPresentationTimingGOOGLE")) return (void *)table->GetPastPresentationTimingGOOGLE;
2733
2734 // ---- VK_EXT_discard_rectangles extension commands
2735 if (!strcmp(name, "CmdSetDiscardRectangleEXT")) return (void *)table->CmdSetDiscardRectangleEXT;
2736 if (!strcmp(name, "CmdSetDiscardRectangleEnableEXT")) return (void *)table->CmdSetDiscardRectangleEnableEXT;
2737 if (!strcmp(name, "CmdSetDiscardRectangleModeEXT")) return (void *)table->CmdSetDiscardRectangleModeEXT;
2738
2739 // ---- VK_EXT_hdr_metadata extension commands
2740 if (!strcmp(name, "SetHdrMetadataEXT")) return (void *)table->SetHdrMetadataEXT;
2741
2742 // ---- VK_EXT_debug_utils extension commands
2743 if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectNameEXT : NULL;
2744 if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) return dev->layer_extensions.ext_debug_utils_enabled ? (void *)SetDebugUtilsObjectTagEXT : NULL;
2745 if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) return (void *)table->QueueBeginDebugUtilsLabelEXT;
2746 if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) return (void *)table->QueueEndDebugUtilsLabelEXT;
2747 if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) return (void *)table->QueueInsertDebugUtilsLabelEXT;
2748 if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) return (void *)table->CmdBeginDebugUtilsLabelEXT;
2749 if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) return (void *)table->CmdEndDebugUtilsLabelEXT;
2750 if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) return (void *)table->CmdInsertDebugUtilsLabelEXT;
2751
2752 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
2753 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
2754 if (!strcmp(name, "GetAndroidHardwareBufferPropertiesANDROID")) return (void *)table->GetAndroidHardwareBufferPropertiesANDROID;
2755 #endif // VK_USE_PLATFORM_ANDROID_KHR
2756 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
2757 if (!strcmp(name, "GetMemoryAndroidHardwareBufferANDROID")) return (void *)table->GetMemoryAndroidHardwareBufferANDROID;
2758 #endif // VK_USE_PLATFORM_ANDROID_KHR
2759
2760 // ---- VK_AMDX_shader_enqueue extension commands
2761 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2762 if (!strcmp(name, "CreateExecutionGraphPipelinesAMDX")) return (void *)table->CreateExecutionGraphPipelinesAMDX;
2763 #endif // VK_ENABLE_BETA_EXTENSIONS
2764 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2765 if (!strcmp(name, "GetExecutionGraphPipelineScratchSizeAMDX")) return (void *)table->GetExecutionGraphPipelineScratchSizeAMDX;
2766 #endif // VK_ENABLE_BETA_EXTENSIONS
2767 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2768 if (!strcmp(name, "GetExecutionGraphPipelineNodeIndexAMDX")) return (void *)table->GetExecutionGraphPipelineNodeIndexAMDX;
2769 #endif // VK_ENABLE_BETA_EXTENSIONS
2770 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2771 if (!strcmp(name, "CmdInitializeGraphScratchMemoryAMDX")) return (void *)table->CmdInitializeGraphScratchMemoryAMDX;
2772 #endif // VK_ENABLE_BETA_EXTENSIONS
2773 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2774 if (!strcmp(name, "CmdDispatchGraphAMDX")) return (void *)table->CmdDispatchGraphAMDX;
2775 #endif // VK_ENABLE_BETA_EXTENSIONS
2776 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2777 if (!strcmp(name, "CmdDispatchGraphIndirectAMDX")) return (void *)table->CmdDispatchGraphIndirectAMDX;
2778 #endif // VK_ENABLE_BETA_EXTENSIONS
2779 #if defined(VK_ENABLE_BETA_EXTENSIONS)
2780 if (!strcmp(name, "CmdDispatchGraphIndirectCountAMDX")) return (void *)table->CmdDispatchGraphIndirectCountAMDX;
2781 #endif // VK_ENABLE_BETA_EXTENSIONS
2782
2783 // ---- VK_EXT_sample_locations extension commands
2784 if (!strcmp(name, "CmdSetSampleLocationsEXT")) return (void *)table->CmdSetSampleLocationsEXT;
2785
2786 // ---- VK_EXT_image_drm_format_modifier extension commands
2787 if (!strcmp(name, "GetImageDrmFormatModifierPropertiesEXT")) return (void *)table->GetImageDrmFormatModifierPropertiesEXT;
2788
2789 // ---- VK_EXT_validation_cache extension commands
2790 if (!strcmp(name, "CreateValidationCacheEXT")) return (void *)table->CreateValidationCacheEXT;
2791 if (!strcmp(name, "DestroyValidationCacheEXT")) return (void *)table->DestroyValidationCacheEXT;
2792 if (!strcmp(name, "MergeValidationCachesEXT")) return (void *)table->MergeValidationCachesEXT;
2793 if (!strcmp(name, "GetValidationCacheDataEXT")) return (void *)table->GetValidationCacheDataEXT;
2794
2795 // ---- VK_NV_shading_rate_image extension commands
2796 if (!strcmp(name, "CmdBindShadingRateImageNV")) return (void *)table->CmdBindShadingRateImageNV;
2797 if (!strcmp(name, "CmdSetViewportShadingRatePaletteNV")) return (void *)table->CmdSetViewportShadingRatePaletteNV;
2798 if (!strcmp(name, "CmdSetCoarseSampleOrderNV")) return (void *)table->CmdSetCoarseSampleOrderNV;
2799
2800 // ---- VK_NV_ray_tracing extension commands
2801 if (!strcmp(name, "CreateAccelerationStructureNV")) return (void *)table->CreateAccelerationStructureNV;
2802 if (!strcmp(name, "DestroyAccelerationStructureNV")) return (void *)table->DestroyAccelerationStructureNV;
2803 if (!strcmp(name, "GetAccelerationStructureMemoryRequirementsNV")) return (void *)table->GetAccelerationStructureMemoryRequirementsNV;
2804 if (!strcmp(name, "BindAccelerationStructureMemoryNV")) return (void *)table->BindAccelerationStructureMemoryNV;
2805 if (!strcmp(name, "CmdBuildAccelerationStructureNV")) return (void *)table->CmdBuildAccelerationStructureNV;
2806 if (!strcmp(name, "CmdCopyAccelerationStructureNV")) return (void *)table->CmdCopyAccelerationStructureNV;
2807 if (!strcmp(name, "CmdTraceRaysNV")) return (void *)table->CmdTraceRaysNV;
2808 if (!strcmp(name, "CreateRayTracingPipelinesNV")) return (void *)table->CreateRayTracingPipelinesNV;
2809 if (!strcmp(name, "GetRayTracingShaderGroupHandlesKHR")) return (void *)table->GetRayTracingShaderGroupHandlesKHR;
2810 if (!strcmp(name, "GetRayTracingShaderGroupHandlesNV")) return (void *)table->GetRayTracingShaderGroupHandlesNV;
2811 if (!strcmp(name, "GetAccelerationStructureHandleNV")) return (void *)table->GetAccelerationStructureHandleNV;
2812 if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesNV")) return (void *)table->CmdWriteAccelerationStructuresPropertiesNV;
2813 if (!strcmp(name, "CompileDeferredNV")) return (void *)table->CompileDeferredNV;
2814
2815 // ---- VK_EXT_external_memory_host extension commands
2816 if (!strcmp(name, "GetMemoryHostPointerPropertiesEXT")) return (void *)table->GetMemoryHostPointerPropertiesEXT;
2817
2818 // ---- VK_AMD_buffer_marker extension commands
2819 if (!strcmp(name, "CmdWriteBufferMarkerAMD")) return (void *)table->CmdWriteBufferMarkerAMD;
2820 if (!strcmp(name, "CmdWriteBufferMarker2AMD")) return (void *)table->CmdWriteBufferMarker2AMD;
2821
2822 // ---- VK_EXT_calibrated_timestamps extension commands
2823 if (!strcmp(name, "GetCalibratedTimestampsEXT")) return (void *)table->GetCalibratedTimestampsEXT;
2824
2825 // ---- VK_NV_mesh_shader extension commands
2826 if (!strcmp(name, "CmdDrawMeshTasksNV")) return (void *)table->CmdDrawMeshTasksNV;
2827 if (!strcmp(name, "CmdDrawMeshTasksIndirectNV")) return (void *)table->CmdDrawMeshTasksIndirectNV;
2828 if (!strcmp(name, "CmdDrawMeshTasksIndirectCountNV")) return (void *)table->CmdDrawMeshTasksIndirectCountNV;
2829
2830 // ---- VK_NV_scissor_exclusive extension commands
2831 if (!strcmp(name, "CmdSetExclusiveScissorEnableNV")) return (void *)table->CmdSetExclusiveScissorEnableNV;
2832 if (!strcmp(name, "CmdSetExclusiveScissorNV")) return (void *)table->CmdSetExclusiveScissorNV;
2833
2834 // ---- VK_NV_device_diagnostic_checkpoints extension commands
2835 if (!strcmp(name, "CmdSetCheckpointNV")) return (void *)table->CmdSetCheckpointNV;
2836 if (!strcmp(name, "GetQueueCheckpointDataNV")) return (void *)table->GetQueueCheckpointDataNV;
2837 if (!strcmp(name, "GetQueueCheckpointData2NV")) return (void *)table->GetQueueCheckpointData2NV;
2838
2839 // ---- VK_INTEL_performance_query extension commands
2840 if (!strcmp(name, "InitializePerformanceApiINTEL")) return (void *)table->InitializePerformanceApiINTEL;
2841 if (!strcmp(name, "UninitializePerformanceApiINTEL")) return (void *)table->UninitializePerformanceApiINTEL;
2842 if (!strcmp(name, "CmdSetPerformanceMarkerINTEL")) return (void *)table->CmdSetPerformanceMarkerINTEL;
2843 if (!strcmp(name, "CmdSetPerformanceStreamMarkerINTEL")) return (void *)table->CmdSetPerformanceStreamMarkerINTEL;
2844 if (!strcmp(name, "CmdSetPerformanceOverrideINTEL")) return (void *)table->CmdSetPerformanceOverrideINTEL;
2845 if (!strcmp(name, "AcquirePerformanceConfigurationINTEL")) return (void *)table->AcquirePerformanceConfigurationINTEL;
2846 if (!strcmp(name, "ReleasePerformanceConfigurationINTEL")) return (void *)table->ReleasePerformanceConfigurationINTEL;
2847 if (!strcmp(name, "QueueSetPerformanceConfigurationINTEL")) return (void *)table->QueueSetPerformanceConfigurationINTEL;
2848 if (!strcmp(name, "GetPerformanceParameterINTEL")) return (void *)table->GetPerformanceParameterINTEL;
2849
2850 // ---- VK_AMD_display_native_hdr extension commands
2851 if (!strcmp(name, "SetLocalDimmingAMD")) return (void *)table->SetLocalDimmingAMD;
2852
2853 // ---- VK_EXT_buffer_device_address extension commands
2854 if (!strcmp(name, "GetBufferDeviceAddressEXT")) return (void *)table->GetBufferDeviceAddressEXT;
2855
2856 // ---- VK_EXT_full_screen_exclusive extension commands
2857 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2858 if (!strcmp(name, "AcquireFullScreenExclusiveModeEXT")) return (void *)table->AcquireFullScreenExclusiveModeEXT;
2859 #endif // VK_USE_PLATFORM_WIN32_KHR
2860 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2861 if (!strcmp(name, "ReleaseFullScreenExclusiveModeEXT")) return (void *)table->ReleaseFullScreenExclusiveModeEXT;
2862 #endif // VK_USE_PLATFORM_WIN32_KHR
2863 #if defined(VK_USE_PLATFORM_WIN32_KHR)
2864 if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) return (void *)table->GetDeviceGroupSurfacePresentModes2EXT;
2865 #endif // VK_USE_PLATFORM_WIN32_KHR
2866
2867 // ---- VK_EXT_line_rasterization extension commands
2868 if (!strcmp(name, "CmdSetLineStippleEXT")) return (void *)table->CmdSetLineStippleEXT;
2869
2870 // ---- VK_EXT_host_query_reset extension commands
2871 if (!strcmp(name, "ResetQueryPoolEXT")) return (void *)table->ResetQueryPoolEXT;
2872
2873 // ---- VK_EXT_extended_dynamic_state extension commands
2874 if (!strcmp(name, "CmdSetCullModeEXT")) return (void *)table->CmdSetCullModeEXT;
2875 if (!strcmp(name, "CmdSetFrontFaceEXT")) return (void *)table->CmdSetFrontFaceEXT;
2876 if (!strcmp(name, "CmdSetPrimitiveTopologyEXT")) return (void *)table->CmdSetPrimitiveTopologyEXT;
2877 if (!strcmp(name, "CmdSetViewportWithCountEXT")) return (void *)table->CmdSetViewportWithCountEXT;
2878 if (!strcmp(name, "CmdSetScissorWithCountEXT")) return (void *)table->CmdSetScissorWithCountEXT;
2879 if (!strcmp(name, "CmdBindVertexBuffers2EXT")) return (void *)table->CmdBindVertexBuffers2EXT;
2880 if (!strcmp(name, "CmdSetDepthTestEnableEXT")) return (void *)table->CmdSetDepthTestEnableEXT;
2881 if (!strcmp(name, "CmdSetDepthWriteEnableEXT")) return (void *)table->CmdSetDepthWriteEnableEXT;
2882 if (!strcmp(name, "CmdSetDepthCompareOpEXT")) return (void *)table->CmdSetDepthCompareOpEXT;
2883 if (!strcmp(name, "CmdSetDepthBoundsTestEnableEXT")) return (void *)table->CmdSetDepthBoundsTestEnableEXT;
2884 if (!strcmp(name, "CmdSetStencilTestEnableEXT")) return (void *)table->CmdSetStencilTestEnableEXT;
2885 if (!strcmp(name, "CmdSetStencilOpEXT")) return (void *)table->CmdSetStencilOpEXT;
2886
2887 // ---- VK_EXT_host_image_copy extension commands
2888 if (!strcmp(name, "CopyMemoryToImageEXT")) return (void *)table->CopyMemoryToImageEXT;
2889 if (!strcmp(name, "CopyImageToMemoryEXT")) return (void *)table->CopyImageToMemoryEXT;
2890 if (!strcmp(name, "CopyImageToImageEXT")) return (void *)table->CopyImageToImageEXT;
2891 if (!strcmp(name, "TransitionImageLayoutEXT")) return (void *)table->TransitionImageLayoutEXT;
2892 if (!strcmp(name, "GetImageSubresourceLayout2EXT")) return (void *)table->GetImageSubresourceLayout2EXT;
2893
2894 // ---- VK_EXT_swapchain_maintenance1 extension commands
2895 if (!strcmp(name, "ReleaseSwapchainImagesEXT")) return (void *)table->ReleaseSwapchainImagesEXT;
2896
2897 // ---- VK_NV_device_generated_commands extension commands
2898 if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsNV")) return (void *)table->GetGeneratedCommandsMemoryRequirementsNV;
2899 if (!strcmp(name, "CmdPreprocessGeneratedCommandsNV")) return (void *)table->CmdPreprocessGeneratedCommandsNV;
2900 if (!strcmp(name, "CmdExecuteGeneratedCommandsNV")) return (void *)table->CmdExecuteGeneratedCommandsNV;
2901 if (!strcmp(name, "CmdBindPipelineShaderGroupNV")) return (void *)table->CmdBindPipelineShaderGroupNV;
2902 if (!strcmp(name, "CreateIndirectCommandsLayoutNV")) return (void *)table->CreateIndirectCommandsLayoutNV;
2903 if (!strcmp(name, "DestroyIndirectCommandsLayoutNV")) return (void *)table->DestroyIndirectCommandsLayoutNV;
2904
2905 // ---- VK_EXT_depth_bias_control extension commands
2906 if (!strcmp(name, "CmdSetDepthBias2EXT")) return (void *)table->CmdSetDepthBias2EXT;
2907
2908 // ---- VK_EXT_private_data extension commands
2909 if (!strcmp(name, "CreatePrivateDataSlotEXT")) return (void *)table->CreatePrivateDataSlotEXT;
2910 if (!strcmp(name, "DestroyPrivateDataSlotEXT")) return (void *)table->DestroyPrivateDataSlotEXT;
2911 if (!strcmp(name, "SetPrivateDataEXT")) return (void *)table->SetPrivateDataEXT;
2912 if (!strcmp(name, "GetPrivateDataEXT")) return (void *)table->GetPrivateDataEXT;
2913
2914 // ---- VK_NV_cuda_kernel_launch extension commands
2915 if (!strcmp(name, "CreateCudaModuleNV")) return (void *)table->CreateCudaModuleNV;
2916 if (!strcmp(name, "GetCudaModuleCacheNV")) return (void *)table->GetCudaModuleCacheNV;
2917 if (!strcmp(name, "CreateCudaFunctionNV")) return (void *)table->CreateCudaFunctionNV;
2918 if (!strcmp(name, "DestroyCudaModuleNV")) return (void *)table->DestroyCudaModuleNV;
2919 if (!strcmp(name, "DestroyCudaFunctionNV")) return (void *)table->DestroyCudaFunctionNV;
2920 if (!strcmp(name, "CmdCudaLaunchKernelNV")) return (void *)table->CmdCudaLaunchKernelNV;
2921
2922 // ---- VK_EXT_metal_objects extension commands
2923 #if defined(VK_USE_PLATFORM_METAL_EXT)
2924 if (!strcmp(name, "ExportMetalObjectsEXT")) return (void *)table->ExportMetalObjectsEXT;
2925 #endif // VK_USE_PLATFORM_METAL_EXT
2926
2927 // ---- VK_EXT_descriptor_buffer extension commands
2928 if (!strcmp(name, "GetDescriptorSetLayoutSizeEXT")) return (void *)table->GetDescriptorSetLayoutSizeEXT;
2929 if (!strcmp(name, "GetDescriptorSetLayoutBindingOffsetEXT")) return (void *)table->GetDescriptorSetLayoutBindingOffsetEXT;
2930 if (!strcmp(name, "GetDescriptorEXT")) return (void *)table->GetDescriptorEXT;
2931 if (!strcmp(name, "CmdBindDescriptorBuffersEXT")) return (void *)table->CmdBindDescriptorBuffersEXT;
2932 if (!strcmp(name, "CmdSetDescriptorBufferOffsetsEXT")) return (void *)table->CmdSetDescriptorBufferOffsetsEXT;
2933 if (!strcmp(name, "CmdBindDescriptorBufferEmbeddedSamplersEXT")) return (void *)table->CmdBindDescriptorBufferEmbeddedSamplersEXT;
2934 if (!strcmp(name, "GetBufferOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetBufferOpaqueCaptureDescriptorDataEXT;
2935 if (!strcmp(name, "GetImageOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageOpaqueCaptureDescriptorDataEXT;
2936 if (!strcmp(name, "GetImageViewOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetImageViewOpaqueCaptureDescriptorDataEXT;
2937 if (!strcmp(name, "GetSamplerOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetSamplerOpaqueCaptureDescriptorDataEXT;
2938 if (!strcmp(name, "GetAccelerationStructureOpaqueCaptureDescriptorDataEXT")) return (void *)table->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
2939
2940 // ---- VK_NV_fragment_shading_rate_enums extension commands
2941 if (!strcmp(name, "CmdSetFragmentShadingRateEnumNV")) return (void *)table->CmdSetFragmentShadingRateEnumNV;
2942
2943 // ---- VK_EXT_device_fault extension commands
2944 if (!strcmp(name, "GetDeviceFaultInfoEXT")) return (void *)table->GetDeviceFaultInfoEXT;
2945
2946 // ---- VK_EXT_vertex_input_dynamic_state extension commands
2947 if (!strcmp(name, "CmdSetVertexInputEXT")) return (void *)table->CmdSetVertexInputEXT;
2948
2949 // ---- VK_FUCHSIA_external_memory extension commands
2950 #if defined(VK_USE_PLATFORM_FUCHSIA)
2951 if (!strcmp(name, "GetMemoryZirconHandleFUCHSIA")) return (void *)table->GetMemoryZirconHandleFUCHSIA;
2952 #endif // VK_USE_PLATFORM_FUCHSIA
2953 #if defined(VK_USE_PLATFORM_FUCHSIA)
2954 if (!strcmp(name, "GetMemoryZirconHandlePropertiesFUCHSIA")) return (void *)table->GetMemoryZirconHandlePropertiesFUCHSIA;
2955 #endif // VK_USE_PLATFORM_FUCHSIA
2956
2957 // ---- VK_FUCHSIA_external_semaphore extension commands
2958 #if defined(VK_USE_PLATFORM_FUCHSIA)
2959 if (!strcmp(name, "ImportSemaphoreZirconHandleFUCHSIA")) return (void *)table->ImportSemaphoreZirconHandleFUCHSIA;
2960 #endif // VK_USE_PLATFORM_FUCHSIA
2961 #if defined(VK_USE_PLATFORM_FUCHSIA)
2962 if (!strcmp(name, "GetSemaphoreZirconHandleFUCHSIA")) return (void *)table->GetSemaphoreZirconHandleFUCHSIA;
2963 #endif // VK_USE_PLATFORM_FUCHSIA
2964
2965 // ---- VK_FUCHSIA_buffer_collection extension commands
2966 #if defined(VK_USE_PLATFORM_FUCHSIA)
2967 if (!strcmp(name, "CreateBufferCollectionFUCHSIA")) return (void *)table->CreateBufferCollectionFUCHSIA;
2968 #endif // VK_USE_PLATFORM_FUCHSIA
2969 #if defined(VK_USE_PLATFORM_FUCHSIA)
2970 if (!strcmp(name, "SetBufferCollectionImageConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionImageConstraintsFUCHSIA;
2971 #endif // VK_USE_PLATFORM_FUCHSIA
2972 #if defined(VK_USE_PLATFORM_FUCHSIA)
2973 if (!strcmp(name, "SetBufferCollectionBufferConstraintsFUCHSIA")) return (void *)table->SetBufferCollectionBufferConstraintsFUCHSIA;
2974 #endif // VK_USE_PLATFORM_FUCHSIA
2975 #if defined(VK_USE_PLATFORM_FUCHSIA)
2976 if (!strcmp(name, "DestroyBufferCollectionFUCHSIA")) return (void *)table->DestroyBufferCollectionFUCHSIA;
2977 #endif // VK_USE_PLATFORM_FUCHSIA
2978 #if defined(VK_USE_PLATFORM_FUCHSIA)
2979 if (!strcmp(name, "GetBufferCollectionPropertiesFUCHSIA")) return (void *)table->GetBufferCollectionPropertiesFUCHSIA;
2980 #endif // VK_USE_PLATFORM_FUCHSIA
2981
2982 // ---- VK_HUAWEI_subpass_shading extension commands
2983 if (!strcmp(name, "GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) return (void *)table->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
2984 if (!strcmp(name, "CmdSubpassShadingHUAWEI")) return (void *)table->CmdSubpassShadingHUAWEI;
2985
2986 // ---- VK_HUAWEI_invocation_mask extension commands
2987 if (!strcmp(name, "CmdBindInvocationMaskHUAWEI")) return (void *)table->CmdBindInvocationMaskHUAWEI;
2988
2989 // ---- VK_NV_external_memory_rdma extension commands
2990 if (!strcmp(name, "GetMemoryRemoteAddressNV")) return (void *)table->GetMemoryRemoteAddressNV;
2991
2992 // ---- VK_EXT_pipeline_properties extension commands
2993 if (!strcmp(name, "GetPipelinePropertiesEXT")) return (void *)table->GetPipelinePropertiesEXT;
2994
2995 // ---- VK_EXT_extended_dynamic_state2 extension commands
2996 if (!strcmp(name, "CmdSetPatchControlPointsEXT")) return (void *)table->CmdSetPatchControlPointsEXT;
2997 if (!strcmp(name, "CmdSetRasterizerDiscardEnableEXT")) return (void *)table->CmdSetRasterizerDiscardEnableEXT;
2998 if (!strcmp(name, "CmdSetDepthBiasEnableEXT")) return (void *)table->CmdSetDepthBiasEnableEXT;
2999 if (!strcmp(name, "CmdSetLogicOpEXT")) return (void *)table->CmdSetLogicOpEXT;
3000 if (!strcmp(name, "CmdSetPrimitiveRestartEnableEXT")) return (void *)table->CmdSetPrimitiveRestartEnableEXT;
3001
3002 // ---- VK_EXT_color_write_enable extension commands
3003 if (!strcmp(name, "CmdSetColorWriteEnableEXT")) return (void *)table->CmdSetColorWriteEnableEXT;
3004
3005 // ---- VK_EXT_multi_draw extension commands
3006 if (!strcmp(name, "CmdDrawMultiEXT")) return (void *)table->CmdDrawMultiEXT;
3007 if (!strcmp(name, "CmdDrawMultiIndexedEXT")) return (void *)table->CmdDrawMultiIndexedEXT;
3008
3009 // ---- VK_EXT_opacity_micromap extension commands
3010 if (!strcmp(name, "CreateMicromapEXT")) return (void *)table->CreateMicromapEXT;
3011 if (!strcmp(name, "DestroyMicromapEXT")) return (void *)table->DestroyMicromapEXT;
3012 if (!strcmp(name, "CmdBuildMicromapsEXT")) return (void *)table->CmdBuildMicromapsEXT;
3013 if (!strcmp(name, "BuildMicromapsEXT")) return (void *)table->BuildMicromapsEXT;
3014 if (!strcmp(name, "CopyMicromapEXT")) return (void *)table->CopyMicromapEXT;
3015 if (!strcmp(name, "CopyMicromapToMemoryEXT")) return (void *)table->CopyMicromapToMemoryEXT;
3016 if (!strcmp(name, "CopyMemoryToMicromapEXT")) return (void *)table->CopyMemoryToMicromapEXT;
3017 if (!strcmp(name, "WriteMicromapsPropertiesEXT")) return (void *)table->WriteMicromapsPropertiesEXT;
3018 if (!strcmp(name, "CmdCopyMicromapEXT")) return (void *)table->CmdCopyMicromapEXT;
3019 if (!strcmp(name, "CmdCopyMicromapToMemoryEXT")) return (void *)table->CmdCopyMicromapToMemoryEXT;
3020 if (!strcmp(name, "CmdCopyMemoryToMicromapEXT")) return (void *)table->CmdCopyMemoryToMicromapEXT;
3021 if (!strcmp(name, "CmdWriteMicromapsPropertiesEXT")) return (void *)table->CmdWriteMicromapsPropertiesEXT;
3022 if (!strcmp(name, "GetDeviceMicromapCompatibilityEXT")) return (void *)table->GetDeviceMicromapCompatibilityEXT;
3023 if (!strcmp(name, "GetMicromapBuildSizesEXT")) return (void *)table->GetMicromapBuildSizesEXT;
3024
3025 // ---- VK_HUAWEI_cluster_culling_shader extension commands
3026 if (!strcmp(name, "CmdDrawClusterHUAWEI")) return (void *)table->CmdDrawClusterHUAWEI;
3027 if (!strcmp(name, "CmdDrawClusterIndirectHUAWEI")) return (void *)table->CmdDrawClusterIndirectHUAWEI;
3028
3029 // ---- VK_EXT_pageable_device_local_memory extension commands
3030 if (!strcmp(name, "SetDeviceMemoryPriorityEXT")) return (void *)table->SetDeviceMemoryPriorityEXT;
3031
3032 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
3033 if (!strcmp(name, "GetDescriptorSetLayoutHostMappingInfoVALVE")) return (void *)table->GetDescriptorSetLayoutHostMappingInfoVALVE;
3034 if (!strcmp(name, "GetDescriptorSetHostMappingVALVE")) return (void *)table->GetDescriptorSetHostMappingVALVE;
3035
3036 // ---- VK_NV_copy_memory_indirect extension commands
3037 if (!strcmp(name, "CmdCopyMemoryIndirectNV")) return (void *)table->CmdCopyMemoryIndirectNV;
3038 if (!strcmp(name, "CmdCopyMemoryToImageIndirectNV")) return (void *)table->CmdCopyMemoryToImageIndirectNV;
3039
3040 // ---- VK_NV_memory_decompression extension commands
3041 if (!strcmp(name, "CmdDecompressMemoryNV")) return (void *)table->CmdDecompressMemoryNV;
3042 if (!strcmp(name, "CmdDecompressMemoryIndirectCountNV")) return (void *)table->CmdDecompressMemoryIndirectCountNV;
3043
3044 // ---- VK_NV_device_generated_commands_compute extension commands
3045 if (!strcmp(name, "GetPipelineIndirectMemoryRequirementsNV")) return (void *)table->GetPipelineIndirectMemoryRequirementsNV;
3046 if (!strcmp(name, "CmdUpdatePipelineIndirectBufferNV")) return (void *)table->CmdUpdatePipelineIndirectBufferNV;
3047 if (!strcmp(name, "GetPipelineIndirectDeviceAddressNV")) return (void *)table->GetPipelineIndirectDeviceAddressNV;
3048
3049 // ---- VK_EXT_extended_dynamic_state3 extension commands
3050 if (!strcmp(name, "CmdSetDepthClampEnableEXT")) return (void *)table->CmdSetDepthClampEnableEXT;
3051 if (!strcmp(name, "CmdSetPolygonModeEXT")) return (void *)table->CmdSetPolygonModeEXT;
3052 if (!strcmp(name, "CmdSetRasterizationSamplesEXT")) return (void *)table->CmdSetRasterizationSamplesEXT;
3053 if (!strcmp(name, "CmdSetSampleMaskEXT")) return (void *)table->CmdSetSampleMaskEXT;
3054 if (!strcmp(name, "CmdSetAlphaToCoverageEnableEXT")) return (void *)table->CmdSetAlphaToCoverageEnableEXT;
3055 if (!strcmp(name, "CmdSetAlphaToOneEnableEXT")) return (void *)table->CmdSetAlphaToOneEnableEXT;
3056 if (!strcmp(name, "CmdSetLogicOpEnableEXT")) return (void *)table->CmdSetLogicOpEnableEXT;
3057 if (!strcmp(name, "CmdSetColorBlendEnableEXT")) return (void *)table->CmdSetColorBlendEnableEXT;
3058 if (!strcmp(name, "CmdSetColorBlendEquationEXT")) return (void *)table->CmdSetColorBlendEquationEXT;
3059 if (!strcmp(name, "CmdSetColorWriteMaskEXT")) return (void *)table->CmdSetColorWriteMaskEXT;
3060 if (!strcmp(name, "CmdSetTessellationDomainOriginEXT")) return (void *)table->CmdSetTessellationDomainOriginEXT;
3061 if (!strcmp(name, "CmdSetRasterizationStreamEXT")) return (void *)table->CmdSetRasterizationStreamEXT;
3062 if (!strcmp(name, "CmdSetConservativeRasterizationModeEXT")) return (void *)table->CmdSetConservativeRasterizationModeEXT;
3063 if (!strcmp(name, "CmdSetExtraPrimitiveOverestimationSizeEXT")) return (void *)table->CmdSetExtraPrimitiveOverestimationSizeEXT;
3064 if (!strcmp(name, "CmdSetDepthClipEnableEXT")) return (void *)table->CmdSetDepthClipEnableEXT;
3065 if (!strcmp(name, "CmdSetSampleLocationsEnableEXT")) return (void *)table->CmdSetSampleLocationsEnableEXT;
3066 if (!strcmp(name, "CmdSetColorBlendAdvancedEXT")) return (void *)table->CmdSetColorBlendAdvancedEXT;
3067 if (!strcmp(name, "CmdSetProvokingVertexModeEXT")) return (void *)table->CmdSetProvokingVertexModeEXT;
3068 if (!strcmp(name, "CmdSetLineRasterizationModeEXT")) return (void *)table->CmdSetLineRasterizationModeEXT;
3069 if (!strcmp(name, "CmdSetLineStippleEnableEXT")) return (void *)table->CmdSetLineStippleEnableEXT;
3070 if (!strcmp(name, "CmdSetDepthClipNegativeOneToOneEXT")) return (void *)table->CmdSetDepthClipNegativeOneToOneEXT;
3071 if (!strcmp(name, "CmdSetViewportWScalingEnableNV")) return (void *)table->CmdSetViewportWScalingEnableNV;
3072 if (!strcmp(name, "CmdSetViewportSwizzleNV")) return (void *)table->CmdSetViewportSwizzleNV;
3073 if (!strcmp(name, "CmdSetCoverageToColorEnableNV")) return (void *)table->CmdSetCoverageToColorEnableNV;
3074 if (!strcmp(name, "CmdSetCoverageToColorLocationNV")) return (void *)table->CmdSetCoverageToColorLocationNV;
3075 if (!strcmp(name, "CmdSetCoverageModulationModeNV")) return (void *)table->CmdSetCoverageModulationModeNV;
3076 if (!strcmp(name, "CmdSetCoverageModulationTableEnableNV")) return (void *)table->CmdSetCoverageModulationTableEnableNV;
3077 if (!strcmp(name, "CmdSetCoverageModulationTableNV")) return (void *)table->CmdSetCoverageModulationTableNV;
3078 if (!strcmp(name, "CmdSetShadingRateImageEnableNV")) return (void *)table->CmdSetShadingRateImageEnableNV;
3079 if (!strcmp(name, "CmdSetRepresentativeFragmentTestEnableNV")) return (void *)table->CmdSetRepresentativeFragmentTestEnableNV;
3080 if (!strcmp(name, "CmdSetCoverageReductionModeNV")) return (void *)table->CmdSetCoverageReductionModeNV;
3081
3082 // ---- VK_EXT_shader_module_identifier extension commands
3083 if (!strcmp(name, "GetShaderModuleIdentifierEXT")) return (void *)table->GetShaderModuleIdentifierEXT;
3084 if (!strcmp(name, "GetShaderModuleCreateInfoIdentifierEXT")) return (void *)table->GetShaderModuleCreateInfoIdentifierEXT;
3085
3086 // ---- VK_NV_optical_flow extension commands
3087 if (!strcmp(name, "CreateOpticalFlowSessionNV")) return (void *)table->CreateOpticalFlowSessionNV;
3088 if (!strcmp(name, "DestroyOpticalFlowSessionNV")) return (void *)table->DestroyOpticalFlowSessionNV;
3089 if (!strcmp(name, "BindOpticalFlowSessionImageNV")) return (void *)table->BindOpticalFlowSessionImageNV;
3090 if (!strcmp(name, "CmdOpticalFlowExecuteNV")) return (void *)table->CmdOpticalFlowExecuteNV;
3091
3092 // ---- VK_AMD_anti_lag extension commands
3093 if (!strcmp(name, "AntiLagUpdateAMD")) return (void *)table->AntiLagUpdateAMD;
3094
3095 // ---- VK_EXT_shader_object extension commands
3096 if (!strcmp(name, "CreateShadersEXT")) return (void *)table->CreateShadersEXT;
3097 if (!strcmp(name, "DestroyShaderEXT")) return (void *)table->DestroyShaderEXT;
3098 if (!strcmp(name, "GetShaderBinaryDataEXT")) return (void *)table->GetShaderBinaryDataEXT;
3099 if (!strcmp(name, "CmdBindShadersEXT")) return (void *)table->CmdBindShadersEXT;
3100 if (!strcmp(name, "CmdSetDepthClampRangeEXT")) return (void *)table->CmdSetDepthClampRangeEXT;
3101
3102 // ---- VK_QCOM_tile_properties extension commands
3103 if (!strcmp(name, "GetFramebufferTilePropertiesQCOM")) return (void *)table->GetFramebufferTilePropertiesQCOM;
3104 if (!strcmp(name, "GetDynamicRenderingTilePropertiesQCOM")) return (void *)table->GetDynamicRenderingTilePropertiesQCOM;
3105
3106 // ---- VK_NV_cooperative_vector extension commands
3107 if (!strcmp(name, "ConvertCooperativeVectorMatrixNV")) return (void *)table->ConvertCooperativeVectorMatrixNV;
3108 if (!strcmp(name, "CmdConvertCooperativeVectorMatrixNV")) return (void *)table->CmdConvertCooperativeVectorMatrixNV;
3109
3110 // ---- VK_NV_low_latency2 extension commands
3111 if (!strcmp(name, "SetLatencySleepModeNV")) return (void *)table->SetLatencySleepModeNV;
3112 if (!strcmp(name, "LatencySleepNV")) return (void *)table->LatencySleepNV;
3113 if (!strcmp(name, "SetLatencyMarkerNV")) return (void *)table->SetLatencyMarkerNV;
3114 if (!strcmp(name, "GetLatencyTimingsNV")) return (void *)table->GetLatencyTimingsNV;
3115 if (!strcmp(name, "QueueNotifyOutOfBandNV")) return (void *)table->QueueNotifyOutOfBandNV;
3116
3117 // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
3118 if (!strcmp(name, "CmdSetAttachmentFeedbackLoopEnableEXT")) return (void *)table->CmdSetAttachmentFeedbackLoopEnableEXT;
3119
3120 // ---- VK_QNX_external_memory_screen_buffer extension commands
3121 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
3122 if (!strcmp(name, "GetScreenBufferPropertiesQNX")) return (void *)table->GetScreenBufferPropertiesQNX;
3123 #endif // VK_USE_PLATFORM_SCREEN_QNX
3124
3125 // ---- VK_NV_cluster_acceleration_structure extension commands
3126 if (!strcmp(name, "GetClusterAccelerationStructureBuildSizesNV")) return (void *)table->GetClusterAccelerationStructureBuildSizesNV;
3127 if (!strcmp(name, "CmdBuildClusterAccelerationStructureIndirectNV")) return (void *)table->CmdBuildClusterAccelerationStructureIndirectNV;
3128
3129 // ---- VK_NV_partitioned_acceleration_structure extension commands
3130 if (!strcmp(name, "GetPartitionedAccelerationStructuresBuildSizesNV")) return (void *)table->GetPartitionedAccelerationStructuresBuildSizesNV;
3131 if (!strcmp(name, "CmdBuildPartitionedAccelerationStructuresNV")) return (void *)table->CmdBuildPartitionedAccelerationStructuresNV;
3132
3133 // ---- VK_EXT_device_generated_commands extension commands
3134 if (!strcmp(name, "GetGeneratedCommandsMemoryRequirementsEXT")) return (void *)table->GetGeneratedCommandsMemoryRequirementsEXT;
3135 if (!strcmp(name, "CmdPreprocessGeneratedCommandsEXT")) return (void *)table->CmdPreprocessGeneratedCommandsEXT;
3136 if (!strcmp(name, "CmdExecuteGeneratedCommandsEXT")) return (void *)table->CmdExecuteGeneratedCommandsEXT;
3137 if (!strcmp(name, "CreateIndirectCommandsLayoutEXT")) return (void *)table->CreateIndirectCommandsLayoutEXT;
3138 if (!strcmp(name, "DestroyIndirectCommandsLayoutEXT")) return (void *)table->DestroyIndirectCommandsLayoutEXT;
3139 if (!strcmp(name, "CreateIndirectExecutionSetEXT")) return (void *)table->CreateIndirectExecutionSetEXT;
3140 if (!strcmp(name, "DestroyIndirectExecutionSetEXT")) return (void *)table->DestroyIndirectExecutionSetEXT;
3141 if (!strcmp(name, "UpdateIndirectExecutionSetPipelineEXT")) return (void *)table->UpdateIndirectExecutionSetPipelineEXT;
3142 if (!strcmp(name, "UpdateIndirectExecutionSetShaderEXT")) return (void *)table->UpdateIndirectExecutionSetShaderEXT;
3143
3144 // ---- VK_EXT_external_memory_metal extension commands
3145 #if defined(VK_USE_PLATFORM_METAL_EXT)
3146 if (!strcmp(name, "GetMemoryMetalHandleEXT")) return (void *)table->GetMemoryMetalHandleEXT;
3147 #endif // VK_USE_PLATFORM_METAL_EXT
3148 #if defined(VK_USE_PLATFORM_METAL_EXT)
3149 if (!strcmp(name, "GetMemoryMetalHandlePropertiesEXT")) return (void *)table->GetMemoryMetalHandlePropertiesEXT;
3150 #endif // VK_USE_PLATFORM_METAL_EXT
3151
3152 // ---- VK_KHR_acceleration_structure extension commands
3153 if (!strcmp(name, "CreateAccelerationStructureKHR")) return (void *)table->CreateAccelerationStructureKHR;
3154 if (!strcmp(name, "DestroyAccelerationStructureKHR")) return (void *)table->DestroyAccelerationStructureKHR;
3155 if (!strcmp(name, "CmdBuildAccelerationStructuresKHR")) return (void *)table->CmdBuildAccelerationStructuresKHR;
3156 if (!strcmp(name, "CmdBuildAccelerationStructuresIndirectKHR")) return (void *)table->CmdBuildAccelerationStructuresIndirectKHR;
3157 if (!strcmp(name, "BuildAccelerationStructuresKHR")) return (void *)table->BuildAccelerationStructuresKHR;
3158 if (!strcmp(name, "CopyAccelerationStructureKHR")) return (void *)table->CopyAccelerationStructureKHR;
3159 if (!strcmp(name, "CopyAccelerationStructureToMemoryKHR")) return (void *)table->CopyAccelerationStructureToMemoryKHR;
3160 if (!strcmp(name, "CopyMemoryToAccelerationStructureKHR")) return (void *)table->CopyMemoryToAccelerationStructureKHR;
3161 if (!strcmp(name, "WriteAccelerationStructuresPropertiesKHR")) return (void *)table->WriteAccelerationStructuresPropertiesKHR;
3162 if (!strcmp(name, "CmdCopyAccelerationStructureKHR")) return (void *)table->CmdCopyAccelerationStructureKHR;
3163 if (!strcmp(name, "CmdCopyAccelerationStructureToMemoryKHR")) return (void *)table->CmdCopyAccelerationStructureToMemoryKHR;
3164 if (!strcmp(name, "CmdCopyMemoryToAccelerationStructureKHR")) return (void *)table->CmdCopyMemoryToAccelerationStructureKHR;
3165 if (!strcmp(name, "GetAccelerationStructureDeviceAddressKHR")) return (void *)table->GetAccelerationStructureDeviceAddressKHR;
3166 if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesKHR")) return (void *)table->CmdWriteAccelerationStructuresPropertiesKHR;
3167 if (!strcmp(name, "GetDeviceAccelerationStructureCompatibilityKHR")) return (void *)table->GetDeviceAccelerationStructureCompatibilityKHR;
3168 if (!strcmp(name, "GetAccelerationStructureBuildSizesKHR")) return (void *)table->GetAccelerationStructureBuildSizesKHR;
3169
3170 // ---- VK_KHR_ray_tracing_pipeline extension commands
3171 if (!strcmp(name, "CmdTraceRaysKHR")) return (void *)table->CmdTraceRaysKHR;
3172 if (!strcmp(name, "CreateRayTracingPipelinesKHR")) return (void *)table->CreateRayTracingPipelinesKHR;
3173 if (!strcmp(name, "GetRayTracingCaptureReplayShaderGroupHandlesKHR")) return (void *)table->GetRayTracingCaptureReplayShaderGroupHandlesKHR;
3174 if (!strcmp(name, "CmdTraceRaysIndirectKHR")) return (void *)table->CmdTraceRaysIndirectKHR;
3175 if (!strcmp(name, "GetRayTracingShaderGroupStackSizeKHR")) return (void *)table->GetRayTracingShaderGroupStackSizeKHR;
3176 if (!strcmp(name, "CmdSetRayTracingPipelineStackSizeKHR")) return (void *)table->CmdSetRayTracingPipelineStackSizeKHR;
3177
3178 // ---- VK_EXT_mesh_shader extension commands
3179 if (!strcmp(name, "CmdDrawMeshTasksEXT")) return (void *)table->CmdDrawMeshTasksEXT;
3180 if (!strcmp(name, "CmdDrawMeshTasksIndirectEXT")) return (void *)table->CmdDrawMeshTasksIndirectEXT;
3181 if (!strcmp(name, "CmdDrawMeshTasksIndirectCountEXT")) return (void *)table->CmdDrawMeshTasksIndirectCountEXT;
3182
3183 // ---- VK_OHOS_native_buffer extension commands
3184 #ifdef VK_USE_PLATFORM_OHOS
3185 if (!strcmp(name, "GetSwapchainGrallocUsageOHOS")) return (void *)table->GetSwapchainGrallocUsageOHOS;
3186 #endif // VK_USE_PLATFORM_OHOS
3187 #ifdef VK_USE_PLATFORM_OHOS
3188 if (!strcmp(name, "AcquireImageOHOS")) return (void *)table->AcquireImageOHOS;
3189 #endif // VK_USE_PLATFORM_OHOS
3190 #ifdef VK_USE_PLATFORM_OHOS
3191 if (!strcmp(name, "QueueSignalReleaseImageOHOS")) return (void *)table->QueueSignalReleaseImageOHOS;
3192 #endif // VK_USE_PLATFORM_OHOS
3193
3194 // ---- VK_OHOS_external_memory extension commands
3195 #ifdef VK_USE_PLATFORM_OHOS
3196 if (!strcmp(name, "GetNativeBufferPropertiesOHOS")) return (void *)table->GetNativeBufferPropertiesOHOS;
3197 #endif // VK_USE_PLATFORM_OHOS
3198 #ifdef VK_USE_PLATFORM_OHOS
3199 if (!strcmp(name, "GetMemoryNativeBufferOHOS")) return (void *)table->GetMemoryNativeBufferOHOS;
3200 #endif // VK_USE_PLATFORM_OHOS
3201
3202 *found_name = false;
3203 return NULL;
3204 }
3205
3206 // Instance command lookup function
loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable * table,const char * name,bool * found_name)3207 VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable *table, const char *name,
3208 bool *found_name) {
3209 if (!name || name[0] != 'v' || name[1] != 'k') {
3210 *found_name = false;
3211 return NULL;
3212 }
3213
3214 *found_name = true;
3215 name += 2;
3216
3217 // ---- Core Vulkan 1.0 commands
3218 if (!strcmp(name, "DestroyInstance")) return (void *)table->DestroyInstance;
3219 if (!strcmp(name, "EnumeratePhysicalDevices")) return (void *)table->EnumeratePhysicalDevices;
3220 if (!strcmp(name, "GetPhysicalDeviceFeatures")) return (void *)table->GetPhysicalDeviceFeatures;
3221 if (!strcmp(name, "GetPhysicalDeviceFormatProperties")) return (void *)table->GetPhysicalDeviceFormatProperties;
3222 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties")) return (void *)table->GetPhysicalDeviceImageFormatProperties;
3223 if (!strcmp(name, "GetPhysicalDeviceProperties")) return (void *)table->GetPhysicalDeviceProperties;
3224 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties;
3225 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties")) return (void *)table->GetPhysicalDeviceMemoryProperties;
3226 if (!strcmp(name, "GetInstanceProcAddr")) return (void *)table->GetInstanceProcAddr;
3227 if (!strcmp(name, "EnumerateDeviceExtensionProperties")) return (void *)table->EnumerateDeviceExtensionProperties;
3228 if (!strcmp(name, "EnumerateDeviceLayerProperties")) return (void *)table->EnumerateDeviceLayerProperties;
3229 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties;
3230
3231 // ---- Core Vulkan 1.1 commands
3232 if (!strcmp(name, "EnumeratePhysicalDeviceGroups")) return (void *)table->EnumeratePhysicalDeviceGroups;
3233 if (!strcmp(name, "GetPhysicalDeviceFeatures2")) return (void *)table->GetPhysicalDeviceFeatures2;
3234 if (!strcmp(name, "GetPhysicalDeviceProperties2")) return (void *)table->GetPhysicalDeviceProperties2;
3235 if (!strcmp(name, "GetPhysicalDeviceFormatProperties2")) return (void *)table->GetPhysicalDeviceFormatProperties2;
3236 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2")) return (void *)table->GetPhysicalDeviceImageFormatProperties2;
3237 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2;
3238 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2")) return (void *)table->GetPhysicalDeviceMemoryProperties2;
3239 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2;
3240 if (!strcmp(name, "GetPhysicalDeviceExternalBufferProperties")) return (void *)table->GetPhysicalDeviceExternalBufferProperties;
3241 if (!strcmp(name, "GetPhysicalDeviceExternalFenceProperties")) return (void *)table->GetPhysicalDeviceExternalFenceProperties;
3242 if (!strcmp(name, "GetPhysicalDeviceExternalSemaphoreProperties")) return (void *)table->GetPhysicalDeviceExternalSemaphoreProperties;
3243
3244 // ---- Core Vulkan 1.3 commands
3245 if (!strcmp(name, "GetPhysicalDeviceToolProperties")) return (void *)table->GetPhysicalDeviceToolProperties;
3246
3247 // ---- VK_KHR_surface extension commands
3248 if (!strcmp(name, "DestroySurfaceKHR")) return (void *)table->DestroySurfaceKHR;
3249 if (!strcmp(name, "GetPhysicalDeviceSurfaceSupportKHR")) return (void *)table->GetPhysicalDeviceSurfaceSupportKHR;
3250 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilitiesKHR;
3251 if (!strcmp(name, "GetPhysicalDeviceSurfaceFormatsKHR")) return (void *)table->GetPhysicalDeviceSurfaceFormatsKHR;
3252 if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModesKHR")) return (void *)table->GetPhysicalDeviceSurfacePresentModesKHR;
3253
3254 // ---- VK_KHR_swapchain extension commands
3255 if (!strcmp(name, "GetPhysicalDevicePresentRectanglesKHR")) return (void *)table->GetPhysicalDevicePresentRectanglesKHR;
3256
3257 // ---- VK_KHR_display extension commands
3258 if (!strcmp(name, "GetPhysicalDeviceDisplayPropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPropertiesKHR;
3259 if (!strcmp(name, "GetPhysicalDeviceDisplayPlanePropertiesKHR")) return (void *)table->GetPhysicalDeviceDisplayPlanePropertiesKHR;
3260 if (!strcmp(name, "GetDisplayPlaneSupportedDisplaysKHR")) return (void *)table->GetDisplayPlaneSupportedDisplaysKHR;
3261 if (!strcmp(name, "GetDisplayModePropertiesKHR")) return (void *)table->GetDisplayModePropertiesKHR;
3262 if (!strcmp(name, "CreateDisplayModeKHR")) return (void *)table->CreateDisplayModeKHR;
3263 if (!strcmp(name, "GetDisplayPlaneCapabilitiesKHR")) return (void *)table->GetDisplayPlaneCapabilitiesKHR;
3264 if (!strcmp(name, "CreateDisplayPlaneSurfaceKHR")) return (void *)table->CreateDisplayPlaneSurfaceKHR;
3265
3266 // ---- VK_KHR_xlib_surface extension commands
3267 #if defined(VK_USE_PLATFORM_XLIB_KHR)
3268 if (!strcmp(name, "CreateXlibSurfaceKHR")) return (void *)table->CreateXlibSurfaceKHR;
3269 #endif // VK_USE_PLATFORM_XLIB_KHR
3270 #if defined(VK_USE_PLATFORM_XLIB_KHR)
3271 if (!strcmp(name, "GetPhysicalDeviceXlibPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXlibPresentationSupportKHR;
3272 #endif // VK_USE_PLATFORM_XLIB_KHR
3273
3274 // ---- VK_KHR_xcb_surface extension commands
3275 #if defined(VK_USE_PLATFORM_XCB_KHR)
3276 if (!strcmp(name, "CreateXcbSurfaceKHR")) return (void *)table->CreateXcbSurfaceKHR;
3277 #endif // VK_USE_PLATFORM_XCB_KHR
3278 #if defined(VK_USE_PLATFORM_XCB_KHR)
3279 if (!strcmp(name, "GetPhysicalDeviceXcbPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceXcbPresentationSupportKHR;
3280 #endif // VK_USE_PLATFORM_XCB_KHR
3281
3282 // ---- VK_KHR_wayland_surface extension commands
3283 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3284 if (!strcmp(name, "CreateWaylandSurfaceKHR")) return (void *)table->CreateWaylandSurfaceKHR;
3285 #endif // VK_USE_PLATFORM_WAYLAND_KHR
3286 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
3287 if (!strcmp(name, "GetPhysicalDeviceWaylandPresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWaylandPresentationSupportKHR;
3288 #endif // VK_USE_PLATFORM_WAYLAND_KHR
3289
3290 // ---- VK_KHR_android_surface extension commands
3291 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
3292 if (!strcmp(name, "CreateAndroidSurfaceKHR")) return (void *)table->CreateAndroidSurfaceKHR;
3293 #endif // VK_USE_PLATFORM_ANDROID_KHR
3294
3295 // ---- VK_KHR_win32_surface extension commands
3296 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3297 if (!strcmp(name, "CreateWin32SurfaceKHR")) return (void *)table->CreateWin32SurfaceKHR;
3298 #endif // VK_USE_PLATFORM_WIN32_KHR
3299 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3300 if (!strcmp(name, "GetPhysicalDeviceWin32PresentationSupportKHR")) return (void *)table->GetPhysicalDeviceWin32PresentationSupportKHR;
3301 #endif // VK_USE_PLATFORM_WIN32_KHR
3302
3303 // ---- VK_KHR_video_queue extension commands
3304 if (!strcmp(name, "GetPhysicalDeviceVideoCapabilitiesKHR")) return (void *)table->GetPhysicalDeviceVideoCapabilitiesKHR;
3305 if (!strcmp(name, "GetPhysicalDeviceVideoFormatPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoFormatPropertiesKHR;
3306
3307 // ---- VK_KHR_get_physical_device_properties2 extension commands
3308 if (!strcmp(name, "GetPhysicalDeviceFeatures2KHR")) return (void *)table->GetPhysicalDeviceFeatures2KHR;
3309 if (!strcmp(name, "GetPhysicalDeviceProperties2KHR")) return (void *)table->GetPhysicalDeviceProperties2KHR;
3310 if (!strcmp(name, "GetPhysicalDeviceFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceFormatProperties2KHR;
3311 if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceImageFormatProperties2KHR;
3312 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties2KHR")) return (void *)table->GetPhysicalDeviceQueueFamilyProperties2KHR;
3313 if (!strcmp(name, "GetPhysicalDeviceMemoryProperties2KHR")) return (void *)table->GetPhysicalDeviceMemoryProperties2KHR;
3314 if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties2KHR")) return (void *)table->GetPhysicalDeviceSparseImageFormatProperties2KHR;
3315
3316 // ---- VK_KHR_device_group_creation extension commands
3317 if (!strcmp(name, "EnumeratePhysicalDeviceGroupsKHR")) return (void *)table->EnumeratePhysicalDeviceGroupsKHR;
3318
3319 // ---- VK_KHR_external_memory_capabilities extension commands
3320 if (!strcmp(name, "GetPhysicalDeviceExternalBufferPropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalBufferPropertiesKHR;
3321
3322 // ---- VK_KHR_external_semaphore_capabilities extension commands
3323 if (!strcmp(name, "GetPhysicalDeviceExternalSemaphorePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalSemaphorePropertiesKHR;
3324
3325 // ---- VK_KHR_external_fence_capabilities extension commands
3326 if (!strcmp(name, "GetPhysicalDeviceExternalFencePropertiesKHR")) return (void *)table->GetPhysicalDeviceExternalFencePropertiesKHR;
3327
3328 // ---- VK_KHR_performance_query extension commands
3329 if (!strcmp(name, "EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) return (void *)table->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
3330 if (!strcmp(name, "GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) return (void *)table->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
3331
3332 // ---- VK_KHR_get_surface_capabilities2 extension commands
3333 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2KHR")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2KHR;
3334 if (!strcmp(name, "GetPhysicalDeviceSurfaceFormats2KHR")) return (void *)table->GetPhysicalDeviceSurfaceFormats2KHR;
3335
3336 // ---- VK_KHR_get_display_properties2 extension commands
3337 if (!strcmp(name, "GetPhysicalDeviceDisplayProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayProperties2KHR;
3338 if (!strcmp(name, "GetPhysicalDeviceDisplayPlaneProperties2KHR")) return (void *)table->GetPhysicalDeviceDisplayPlaneProperties2KHR;
3339 if (!strcmp(name, "GetDisplayModeProperties2KHR")) return (void *)table->GetDisplayModeProperties2KHR;
3340 if (!strcmp(name, "GetDisplayPlaneCapabilities2KHR")) return (void *)table->GetDisplayPlaneCapabilities2KHR;
3341
3342 // ---- VK_KHR_fragment_shading_rate extension commands
3343 if (!strcmp(name, "GetPhysicalDeviceFragmentShadingRatesKHR")) return (void *)table->GetPhysicalDeviceFragmentShadingRatesKHR;
3344
3345 // ---- VK_KHR_video_encode_queue extension commands
3346 if (!strcmp(name, "GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR")) return (void *)table->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
3347
3348 // ---- VK_KHR_cooperative_matrix extension commands
3349 if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesKHR")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
3350
3351 // ---- VK_KHR_calibrated_timestamps extension commands
3352 if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsKHR")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsKHR;
3353
3354 // ---- VK_EXT_debug_report extension commands
3355 if (!strcmp(name, "CreateDebugReportCallbackEXT")) return (void *)table->CreateDebugReportCallbackEXT;
3356 if (!strcmp(name, "DestroyDebugReportCallbackEXT")) return (void *)table->DestroyDebugReportCallbackEXT;
3357 if (!strcmp(name, "DebugReportMessageEXT")) return (void *)table->DebugReportMessageEXT;
3358
3359 // ---- VK_GGP_stream_descriptor_surface extension commands
3360 #if defined(VK_USE_PLATFORM_GGP)
3361 if (!strcmp(name, "CreateStreamDescriptorSurfaceGGP")) return (void *)table->CreateStreamDescriptorSurfaceGGP;
3362 #endif // VK_USE_PLATFORM_GGP
3363
3364 // ---- VK_NV_external_memory_capabilities extension commands
3365 if (!strcmp(name, "GetPhysicalDeviceExternalImageFormatPropertiesNV")) return (void *)table->GetPhysicalDeviceExternalImageFormatPropertiesNV;
3366
3367 // ---- VK_NN_vi_surface extension commands
3368 #if defined(VK_USE_PLATFORM_VI_NN)
3369 if (!strcmp(name, "CreateViSurfaceNN")) return (void *)table->CreateViSurfaceNN;
3370 #endif // VK_USE_PLATFORM_VI_NN
3371
3372 // ---- VK_EXT_direct_mode_display extension commands
3373 if (!strcmp(name, "ReleaseDisplayEXT")) return (void *)table->ReleaseDisplayEXT;
3374
3375 // ---- VK_EXT_acquire_xlib_display extension commands
3376 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3377 if (!strcmp(name, "AcquireXlibDisplayEXT")) return (void *)table->AcquireXlibDisplayEXT;
3378 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3379 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
3380 if (!strcmp(name, "GetRandROutputDisplayEXT")) return (void *)table->GetRandROutputDisplayEXT;
3381 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
3382
3383 // ---- VK_EXT_display_surface_counter extension commands
3384 if (!strcmp(name, "GetPhysicalDeviceSurfaceCapabilities2EXT")) return (void *)table->GetPhysicalDeviceSurfaceCapabilities2EXT;
3385
3386 // ---- VK_MVK_ios_surface extension commands
3387 #if defined(VK_USE_PLATFORM_IOS_MVK)
3388 if (!strcmp(name, "CreateIOSSurfaceMVK")) return (void *)table->CreateIOSSurfaceMVK;
3389 #endif // VK_USE_PLATFORM_IOS_MVK
3390
3391 // ---- VK_MVK_macos_surface extension commands
3392 #if defined(VK_USE_PLATFORM_MACOS_MVK)
3393 if (!strcmp(name, "CreateMacOSSurfaceMVK")) return (void *)table->CreateMacOSSurfaceMVK;
3394 #endif // VK_USE_PLATFORM_MACOS_MVK
3395
3396 // ---- VK_EXT_debug_utils extension commands
3397 if (!strcmp(name, "CreateDebugUtilsMessengerEXT")) return (void *)table->CreateDebugUtilsMessengerEXT;
3398 if (!strcmp(name, "DestroyDebugUtilsMessengerEXT")) return (void *)table->DestroyDebugUtilsMessengerEXT;
3399 if (!strcmp(name, "SubmitDebugUtilsMessageEXT")) return (void *)table->SubmitDebugUtilsMessageEXT;
3400
3401 // ---- VK_EXT_sample_locations extension commands
3402 if (!strcmp(name, "GetPhysicalDeviceMultisamplePropertiesEXT")) return (void *)table->GetPhysicalDeviceMultisamplePropertiesEXT;
3403
3404 // ---- VK_EXT_calibrated_timestamps extension commands
3405 if (!strcmp(name, "GetPhysicalDeviceCalibrateableTimeDomainsEXT")) return (void *)table->GetPhysicalDeviceCalibrateableTimeDomainsEXT;
3406
3407 // ---- VK_FUCHSIA_imagepipe_surface extension commands
3408 #if defined(VK_USE_PLATFORM_FUCHSIA)
3409 if (!strcmp(name, "CreateImagePipeSurfaceFUCHSIA")) return (void *)table->CreateImagePipeSurfaceFUCHSIA;
3410 #endif // VK_USE_PLATFORM_FUCHSIA
3411
3412 // ---- VK_EXT_metal_surface extension commands
3413 #if defined(VK_USE_PLATFORM_METAL_EXT)
3414 if (!strcmp(name, "CreateMetalSurfaceEXT")) return (void *)table->CreateMetalSurfaceEXT;
3415 #endif // VK_USE_PLATFORM_METAL_EXT
3416
3417 // ---- VK_EXT_tooling_info extension commands
3418 if (!strcmp(name, "GetPhysicalDeviceToolPropertiesEXT")) return (void *)table->GetPhysicalDeviceToolPropertiesEXT;
3419
3420 // ---- VK_NV_cooperative_matrix extension commands
3421 if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixPropertiesNV;
3422
3423 // ---- VK_NV_coverage_reduction_mode extension commands
3424 if (!strcmp(name, "GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) return (void *)table->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
3425
3426 // ---- VK_EXT_full_screen_exclusive extension commands
3427 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3428 if (!strcmp(name, "GetPhysicalDeviceSurfacePresentModes2EXT")) return (void *)table->GetPhysicalDeviceSurfacePresentModes2EXT;
3429 #endif // VK_USE_PLATFORM_WIN32_KHR
3430
3431 // ---- VK_EXT_headless_surface extension commands
3432 if (!strcmp(name, "CreateHeadlessSurfaceEXT")) return (void *)table->CreateHeadlessSurfaceEXT;
3433
3434 // ---- VK_EXT_acquire_drm_display extension commands
3435 if (!strcmp(name, "AcquireDrmDisplayEXT")) return (void *)table->AcquireDrmDisplayEXT;
3436 if (!strcmp(name, "GetDrmDisplayEXT")) return (void *)table->GetDrmDisplayEXT;
3437
3438 // ---- VK_NV_acquire_winrt_display extension commands
3439 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3440 if (!strcmp(name, "AcquireWinrtDisplayNV")) return (void *)table->AcquireWinrtDisplayNV;
3441 #endif // VK_USE_PLATFORM_WIN32_KHR
3442 #if defined(VK_USE_PLATFORM_WIN32_KHR)
3443 if (!strcmp(name, "GetWinrtDisplayNV")) return (void *)table->GetWinrtDisplayNV;
3444 #endif // VK_USE_PLATFORM_WIN32_KHR
3445
3446 // ---- VK_EXT_directfb_surface extension commands
3447 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3448 if (!strcmp(name, "CreateDirectFBSurfaceEXT")) return (void *)table->CreateDirectFBSurfaceEXT;
3449 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
3450 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
3451 if (!strcmp(name, "GetPhysicalDeviceDirectFBPresentationSupportEXT")) return (void *)table->GetPhysicalDeviceDirectFBPresentationSupportEXT;
3452 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
3453
3454 // ---- VK_QNX_screen_surface extension commands
3455 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
3456 if (!strcmp(name, "CreateScreenSurfaceQNX")) return (void *)table->CreateScreenSurfaceQNX;
3457 #endif // VK_USE_PLATFORM_SCREEN_QNX
3458 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
3459 if (!strcmp(name, "GetPhysicalDeviceScreenPresentationSupportQNX")) return (void *)table->GetPhysicalDeviceScreenPresentationSupportQNX;
3460 #endif // VK_USE_PLATFORM_SCREEN_QNX
3461
3462 // ---- VK_NV_optical_flow extension commands
3463 if (!strcmp(name, "GetPhysicalDeviceOpticalFlowImageFormatsNV")) return (void *)table->GetPhysicalDeviceOpticalFlowImageFormatsNV;
3464
3465 // ---- VK_OHOS_surface extension commands
3466 #ifdef VK_USE_PLATFORM_OHOS
3467 if (!strcmp(name, "CreateSurfaceOHOS")) return (void *)table->CreateSurfaceOHOS;
3468 #endif // VK_USE_PLATFORM_OHOS
3469
3470 // ---- VK_NV_cooperative_vector extension commands
3471 if (!strcmp(name, "GetPhysicalDeviceCooperativeVectorPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeVectorPropertiesNV;
3472
3473 // ---- VK_NV_cooperative_matrix2 extension commands
3474 if (!strcmp(name, "GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV")) return (void *)table->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
3475
3476 *found_name = false;
3477 return NULL;
3478 }
3479
3480
3481 // ---- VK_KHR_video_queue extension trampoline/terminators
3482
GetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice,const VkVideoProfileInfoKHR * pVideoProfile,VkVideoCapabilitiesKHR * pCapabilities)3483 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoCapabilitiesKHR(
3484 VkPhysicalDevice physicalDevice,
3485 const VkVideoProfileInfoKHR* pVideoProfile,
3486 VkVideoCapabilitiesKHR* pCapabilities) {
3487 const VkLayerInstanceDispatchTable *disp;
3488 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3489 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3490 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3491 "vkGetPhysicalDeviceVideoCapabilitiesKHR: Invalid physicalDevice "
3492 "[VUID-vkGetPhysicalDeviceVideoCapabilitiesKHR-physicalDevice-parameter]");
3493 abort(); /* Intentionally fail so user can correct issue. */
3494 }
3495 disp = loader_get_instance_layer_dispatch(physicalDevice);
3496 return disp->GetPhysicalDeviceVideoCapabilitiesKHR(unwrapped_phys_dev, pVideoProfile, pCapabilities);
3497 }
3498
terminator_GetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice,const VkVideoProfileInfoKHR * pVideoProfile,VkVideoCapabilitiesKHR * pCapabilities)3499 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoCapabilitiesKHR(
3500 VkPhysicalDevice physicalDevice,
3501 const VkVideoProfileInfoKHR* pVideoProfile,
3502 VkVideoCapabilitiesKHR* pCapabilities) {
3503 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3504 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3505 if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR) {
3506 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3507 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoCapabilitiesKHR");
3508 abort(); /* Intentionally fail so user can correct issue. */
3509 }
3510 return icd_term->dispatch.GetPhysicalDeviceVideoCapabilitiesKHR(phys_dev_term->phys_dev, pVideoProfile, pCapabilities);
3511 }
3512
GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VkVideoFormatPropertiesKHR * pVideoFormatProperties)3513 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoFormatPropertiesKHR(
3514 VkPhysicalDevice physicalDevice,
3515 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
3516 uint32_t* pVideoFormatPropertyCount,
3517 VkVideoFormatPropertiesKHR* pVideoFormatProperties) {
3518 const VkLayerInstanceDispatchTable *disp;
3519 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
3520 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
3521 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3522 "vkGetPhysicalDeviceVideoFormatPropertiesKHR: Invalid physicalDevice "
3523 "[VUID-vkGetPhysicalDeviceVideoFormatPropertiesKHR-physicalDevice-parameter]");
3524 abort(); /* Intentionally fail so user can correct issue. */
3525 }
3526 disp = loader_get_instance_layer_dispatch(physicalDevice);
3527 return disp->GetPhysicalDeviceVideoFormatPropertiesKHR(unwrapped_phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3528 }
3529
terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VkVideoFormatPropertiesKHR * pVideoFormatProperties)3530 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoFormatPropertiesKHR(
3531 VkPhysicalDevice physicalDevice,
3532 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
3533 uint32_t* pVideoFormatPropertyCount,
3534 VkVideoFormatPropertiesKHR* pVideoFormatProperties) {
3535 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
3536 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
3537 if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR) {
3538 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
3539 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoFormatPropertiesKHR");
3540 abort(); /* Intentionally fail so user can correct issue. */
3541 }
3542 return icd_term->dispatch.GetPhysicalDeviceVideoFormatPropertiesKHR(phys_dev_term->phys_dev, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties);
3543 }
3544
CreateVideoSessionKHR(VkDevice device,const VkVideoSessionCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionKHR * pVideoSession)3545 VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionKHR(
3546 VkDevice device,
3547 const VkVideoSessionCreateInfoKHR* pCreateInfo,
3548 const VkAllocationCallbacks* pAllocator,
3549 VkVideoSessionKHR* pVideoSession) {
3550 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3551 if (NULL == disp) {
3552 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3553 "vkCreateVideoSessionKHR: Invalid device "
3554 "[VUID-vkCreateVideoSessionKHR-device-parameter]");
3555 abort(); /* Intentionally fail so user can correct issue. */
3556 }
3557 return disp->CreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession);
3558 }
3559
DestroyVideoSessionKHR(VkDevice device,VkVideoSessionKHR videoSession,const VkAllocationCallbacks * pAllocator)3560 VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionKHR(
3561 VkDevice device,
3562 VkVideoSessionKHR videoSession,
3563 const VkAllocationCallbacks* pAllocator) {
3564 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3565 if (NULL == disp) {
3566 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3567 "vkDestroyVideoSessionKHR: Invalid device "
3568 "[VUID-vkDestroyVideoSessionKHR-device-parameter]");
3569 abort(); /* Intentionally fail so user can correct issue. */
3570 }
3571 disp->DestroyVideoSessionKHR(device, videoSession, pAllocator);
3572 }
3573
GetVideoSessionMemoryRequirementsKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t * pMemoryRequirementsCount,VkVideoSessionMemoryRequirementsKHR * pMemoryRequirements)3574 VKAPI_ATTR VkResult VKAPI_CALL GetVideoSessionMemoryRequirementsKHR(
3575 VkDevice device,
3576 VkVideoSessionKHR videoSession,
3577 uint32_t* pMemoryRequirementsCount,
3578 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements) {
3579 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3580 if (NULL == disp) {
3581 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3582 "vkGetVideoSessionMemoryRequirementsKHR: Invalid device "
3583 "[VUID-vkGetVideoSessionMemoryRequirementsKHR-device-parameter]");
3584 abort(); /* Intentionally fail so user can correct issue. */
3585 }
3586 return disp->GetVideoSessionMemoryRequirementsKHR(device, videoSession, pMemoryRequirementsCount, pMemoryRequirements);
3587 }
3588
BindVideoSessionMemoryKHR(VkDevice device,VkVideoSessionKHR videoSession,uint32_t bindSessionMemoryInfoCount,const VkBindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos)3589 VKAPI_ATTR VkResult VKAPI_CALL BindVideoSessionMemoryKHR(
3590 VkDevice device,
3591 VkVideoSessionKHR videoSession,
3592 uint32_t bindSessionMemoryInfoCount,
3593 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos) {
3594 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3595 if (NULL == disp) {
3596 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3597 "vkBindVideoSessionMemoryKHR: Invalid device "
3598 "[VUID-vkBindVideoSessionMemoryKHR-device-parameter]");
3599 abort(); /* Intentionally fail so user can correct issue. */
3600 }
3601 return disp->BindVideoSessionMemoryKHR(device, videoSession, bindSessionMemoryInfoCount, pBindSessionMemoryInfos);
3602 }
3603
CreateVideoSessionParametersKHR(VkDevice device,const VkVideoSessionParametersCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkVideoSessionParametersKHR * pVideoSessionParameters)3604 VKAPI_ATTR VkResult VKAPI_CALL CreateVideoSessionParametersKHR(
3605 VkDevice device,
3606 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
3607 const VkAllocationCallbacks* pAllocator,
3608 VkVideoSessionParametersKHR* pVideoSessionParameters) {
3609 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3610 if (NULL == disp) {
3611 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3612 "vkCreateVideoSessionParametersKHR: Invalid device "
3613 "[VUID-vkCreateVideoSessionParametersKHR-device-parameter]");
3614 abort(); /* Intentionally fail so user can correct issue. */
3615 }
3616 return disp->CreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters);
3617 }
3618
UpdateVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkVideoSessionParametersUpdateInfoKHR * pUpdateInfo)3619 VKAPI_ATTR VkResult VKAPI_CALL UpdateVideoSessionParametersKHR(
3620 VkDevice device,
3621 VkVideoSessionParametersKHR videoSessionParameters,
3622 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) {
3623 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3624 if (NULL == disp) {
3625 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3626 "vkUpdateVideoSessionParametersKHR: Invalid device "
3627 "[VUID-vkUpdateVideoSessionParametersKHR-device-parameter]");
3628 abort(); /* Intentionally fail so user can correct issue. */
3629 }
3630 return disp->UpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo);
3631 }
3632
DestroyVideoSessionParametersKHR(VkDevice device,VkVideoSessionParametersKHR videoSessionParameters,const VkAllocationCallbacks * pAllocator)3633 VKAPI_ATTR void VKAPI_CALL DestroyVideoSessionParametersKHR(
3634 VkDevice device,
3635 VkVideoSessionParametersKHR videoSessionParameters,
3636 const VkAllocationCallbacks* pAllocator) {
3637 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3638 if (NULL == disp) {
3639 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3640 "vkDestroyVideoSessionParametersKHR: Invalid device "
3641 "[VUID-vkDestroyVideoSessionParametersKHR-device-parameter]");
3642 abort(); /* Intentionally fail so user can correct issue. */
3643 }
3644 disp->DestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator);
3645 }
3646
CmdBeginVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoBeginCodingInfoKHR * pBeginInfo)3647 VKAPI_ATTR void VKAPI_CALL CmdBeginVideoCodingKHR(
3648 VkCommandBuffer commandBuffer,
3649 const VkVideoBeginCodingInfoKHR* pBeginInfo) {
3650 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3651 if (NULL == disp) {
3652 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3653 "vkCmdBeginVideoCodingKHR: Invalid commandBuffer "
3654 "[VUID-vkCmdBeginVideoCodingKHR-commandBuffer-parameter]");
3655 abort(); /* Intentionally fail so user can correct issue. */
3656 }
3657 disp->CmdBeginVideoCodingKHR(commandBuffer, pBeginInfo);
3658 }
3659
CmdEndVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoEndCodingInfoKHR * pEndCodingInfo)3660 VKAPI_ATTR void VKAPI_CALL CmdEndVideoCodingKHR(
3661 VkCommandBuffer commandBuffer,
3662 const VkVideoEndCodingInfoKHR* pEndCodingInfo) {
3663 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3664 if (NULL == disp) {
3665 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3666 "vkCmdEndVideoCodingKHR: Invalid commandBuffer "
3667 "[VUID-vkCmdEndVideoCodingKHR-commandBuffer-parameter]");
3668 abort(); /* Intentionally fail so user can correct issue. */
3669 }
3670 disp->CmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo);
3671 }
3672
CmdControlVideoCodingKHR(VkCommandBuffer commandBuffer,const VkVideoCodingControlInfoKHR * pCodingControlInfo)3673 VKAPI_ATTR void VKAPI_CALL CmdControlVideoCodingKHR(
3674 VkCommandBuffer commandBuffer,
3675 const VkVideoCodingControlInfoKHR* pCodingControlInfo) {
3676 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3677 if (NULL == disp) {
3678 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3679 "vkCmdControlVideoCodingKHR: Invalid commandBuffer "
3680 "[VUID-vkCmdControlVideoCodingKHR-commandBuffer-parameter]");
3681 abort(); /* Intentionally fail so user can correct issue. */
3682 }
3683 disp->CmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo);
3684 }
3685
3686
3687 // ---- VK_KHR_video_decode_queue extension trampoline/terminators
3688
CmdDecodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoDecodeInfoKHR * pDecodeInfo)3689 VKAPI_ATTR void VKAPI_CALL CmdDecodeVideoKHR(
3690 VkCommandBuffer commandBuffer,
3691 const VkVideoDecodeInfoKHR* pDecodeInfo) {
3692 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3693 if (NULL == disp) {
3694 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3695 "vkCmdDecodeVideoKHR: Invalid commandBuffer "
3696 "[VUID-vkCmdDecodeVideoKHR-commandBuffer-parameter]");
3697 abort(); /* Intentionally fail so user can correct issue. */
3698 }
3699 disp->CmdDecodeVideoKHR(commandBuffer, pDecodeInfo);
3700 }
3701
3702
3703 // ---- VK_KHR_dynamic_rendering extension trampoline/terminators
3704
CmdBeginRenderingKHR(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)3705 VKAPI_ATTR void VKAPI_CALL CmdBeginRenderingKHR(
3706 VkCommandBuffer commandBuffer,
3707 const VkRenderingInfo* pRenderingInfo) {
3708 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3709 if (NULL == disp) {
3710 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3711 "vkCmdBeginRenderingKHR: Invalid commandBuffer "
3712 "[VUID-vkCmdBeginRenderingKHR-commandBuffer-parameter]");
3713 abort(); /* Intentionally fail so user can correct issue. */
3714 }
3715 disp->CmdBeginRenderingKHR(commandBuffer, pRenderingInfo);
3716 }
3717
CmdEndRenderingKHR(VkCommandBuffer commandBuffer)3718 VKAPI_ATTR void VKAPI_CALL CmdEndRenderingKHR(
3719 VkCommandBuffer commandBuffer) {
3720 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3721 if (NULL == disp) {
3722 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3723 "vkCmdEndRenderingKHR: Invalid commandBuffer "
3724 "[VUID-vkCmdEndRenderingKHR-commandBuffer-parameter]");
3725 abort(); /* Intentionally fail so user can correct issue. */
3726 }
3727 disp->CmdEndRenderingKHR(commandBuffer);
3728 }
3729
3730
3731 // ---- VK_KHR_device_group extension trampoline/terminators
3732
GetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)3733 VKAPI_ATTR void VKAPI_CALL GetDeviceGroupPeerMemoryFeaturesKHR(
3734 VkDevice device,
3735 uint32_t heapIndex,
3736 uint32_t localDeviceIndex,
3737 uint32_t remoteDeviceIndex,
3738 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
3739 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3740 if (NULL == disp) {
3741 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3742 "vkGetDeviceGroupPeerMemoryFeaturesKHR: Invalid device "
3743 "[VUID-vkGetDeviceGroupPeerMemoryFeaturesKHR-device-parameter]");
3744 abort(); /* Intentionally fail so user can correct issue. */
3745 }
3746 disp->GetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
3747 }
3748
CmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask)3749 VKAPI_ATTR void VKAPI_CALL CmdSetDeviceMaskKHR(
3750 VkCommandBuffer commandBuffer,
3751 uint32_t deviceMask) {
3752 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3753 if (NULL == disp) {
3754 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3755 "vkCmdSetDeviceMaskKHR: Invalid commandBuffer "
3756 "[VUID-vkCmdSetDeviceMaskKHR-commandBuffer-parameter]");
3757 abort(); /* Intentionally fail so user can correct issue. */
3758 }
3759 disp->CmdSetDeviceMaskKHR(commandBuffer, deviceMask);
3760 }
3761
CmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)3762 VKAPI_ATTR void VKAPI_CALL CmdDispatchBaseKHR(
3763 VkCommandBuffer commandBuffer,
3764 uint32_t baseGroupX,
3765 uint32_t baseGroupY,
3766 uint32_t baseGroupZ,
3767 uint32_t groupCountX,
3768 uint32_t groupCountY,
3769 uint32_t groupCountZ) {
3770 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3771 if (NULL == disp) {
3772 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3773 "vkCmdDispatchBaseKHR: Invalid commandBuffer "
3774 "[VUID-vkCmdDispatchBaseKHR-commandBuffer-parameter]");
3775 abort(); /* Intentionally fail so user can correct issue. */
3776 }
3777 disp->CmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
3778 }
3779
3780
3781 // ---- VK_KHR_maintenance1 extension trampoline/terminators
3782
TrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)3783 VKAPI_ATTR void VKAPI_CALL TrimCommandPoolKHR(
3784 VkDevice device,
3785 VkCommandPool commandPool,
3786 VkCommandPoolTrimFlags flags) {
3787 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3788 if (NULL == disp) {
3789 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3790 "vkTrimCommandPoolKHR: Invalid device "
3791 "[VUID-vkTrimCommandPoolKHR-device-parameter]");
3792 abort(); /* Intentionally fail so user can correct issue. */
3793 }
3794 disp->TrimCommandPoolKHR(device, commandPool, flags);
3795 }
3796
3797
3798 // ---- VK_KHR_external_memory_win32 extension trampoline/terminators
3799
3800 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3801 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleKHR(
3802 VkDevice device,
3803 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3804 HANDLE* pHandle) {
3805 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3806 if (NULL == disp) {
3807 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3808 "vkGetMemoryWin32HandleKHR: Invalid device "
3809 "[VUID-vkGetMemoryWin32HandleKHR-device-parameter]");
3810 abort(); /* Intentionally fail so user can correct issue. */
3811 }
3812 return disp->GetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
3813 }
3814
3815 #endif // VK_USE_PLATFORM_WIN32_KHR
3816 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties)3817 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandlePropertiesKHR(
3818 VkDevice device,
3819 VkExternalMemoryHandleTypeFlagBits handleType,
3820 HANDLE handle,
3821 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
3822 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3823 if (NULL == disp) {
3824 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3825 "vkGetMemoryWin32HandlePropertiesKHR: Invalid device "
3826 "[VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter]");
3827 abort(); /* Intentionally fail so user can correct issue. */
3828 }
3829 return disp->GetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
3830 }
3831
3832 #endif // VK_USE_PLATFORM_WIN32_KHR
3833
3834 // ---- VK_KHR_external_memory_fd extension trampoline/terminators
3835
GetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)3836 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdKHR(
3837 VkDevice device,
3838 const VkMemoryGetFdInfoKHR* pGetFdInfo,
3839 int* pFd) {
3840 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3841 if (NULL == disp) {
3842 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3843 "vkGetMemoryFdKHR: Invalid device "
3844 "[VUID-vkGetMemoryFdKHR-device-parameter]");
3845 abort(); /* Intentionally fail so user can correct issue. */
3846 }
3847 return disp->GetMemoryFdKHR(device, pGetFdInfo, pFd);
3848 }
3849
GetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)3850 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryFdPropertiesKHR(
3851 VkDevice device,
3852 VkExternalMemoryHandleTypeFlagBits handleType,
3853 int fd,
3854 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
3855 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3856 if (NULL == disp) {
3857 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3858 "vkGetMemoryFdPropertiesKHR: Invalid device "
3859 "[VUID-vkGetMemoryFdPropertiesKHR-device-parameter]");
3860 abort(); /* Intentionally fail so user can correct issue. */
3861 }
3862 return disp->GetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
3863 }
3864
3865
3866 // ---- VK_KHR_external_semaphore_win32 extension trampoline/terminators
3867
3868 #if defined(VK_USE_PLATFORM_WIN32_KHR)
ImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo)3869 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreWin32HandleKHR(
3870 VkDevice device,
3871 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
3872 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3873 if (NULL == disp) {
3874 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3875 "vkImportSemaphoreWin32HandleKHR: Invalid device "
3876 "[VUID-vkImportSemaphoreWin32HandleKHR-device-parameter]");
3877 abort(); /* Intentionally fail so user can correct issue. */
3878 }
3879 return disp->ImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
3880 }
3881
3882 #endif // VK_USE_PLATFORM_WIN32_KHR
3883 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3884 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreWin32HandleKHR(
3885 VkDevice device,
3886 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3887 HANDLE* pHandle) {
3888 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3889 if (NULL == disp) {
3890 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3891 "vkGetSemaphoreWin32HandleKHR: Invalid device "
3892 "[VUID-vkGetSemaphoreWin32HandleKHR-device-parameter]");
3893 abort(); /* Intentionally fail so user can correct issue. */
3894 }
3895 return disp->GetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
3896 }
3897
3898 #endif // VK_USE_PLATFORM_WIN32_KHR
3899
3900 // ---- VK_KHR_external_semaphore_fd extension trampoline/terminators
3901
ImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)3902 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreFdKHR(
3903 VkDevice device,
3904 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
3905 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3906 if (NULL == disp) {
3907 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3908 "vkImportSemaphoreFdKHR: Invalid device "
3909 "[VUID-vkImportSemaphoreFdKHR-device-parameter]");
3910 abort(); /* Intentionally fail so user can correct issue. */
3911 }
3912 return disp->ImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
3913 }
3914
GetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)3915 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreFdKHR(
3916 VkDevice device,
3917 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
3918 int* pFd) {
3919 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3920 if (NULL == disp) {
3921 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3922 "vkGetSemaphoreFdKHR: Invalid device "
3923 "[VUID-vkGetSemaphoreFdKHR-device-parameter]");
3924 abort(); /* Intentionally fail so user can correct issue. */
3925 }
3926 return disp->GetSemaphoreFdKHR(device, pGetFdInfo, pFd);
3927 }
3928
3929
3930 // ---- VK_KHR_push_descriptor extension trampoline/terminators
3931
CmdPushDescriptorSetKHR(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites)3932 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetKHR(
3933 VkCommandBuffer commandBuffer,
3934 VkPipelineBindPoint pipelineBindPoint,
3935 VkPipelineLayout layout,
3936 uint32_t set,
3937 uint32_t descriptorWriteCount,
3938 const VkWriteDescriptorSet* pDescriptorWrites) {
3939 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3940 if (NULL == disp) {
3941 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3942 "vkCmdPushDescriptorSetKHR: Invalid commandBuffer "
3943 "[VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter]");
3944 abort(); /* Intentionally fail so user can correct issue. */
3945 }
3946 disp->CmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
3947 }
3948
CmdPushDescriptorSetWithTemplateKHR(VkCommandBuffer commandBuffer,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VkPipelineLayout layout,uint32_t set,const void * pData)3949 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplateKHR(
3950 VkCommandBuffer commandBuffer,
3951 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3952 VkPipelineLayout layout,
3953 uint32_t set,
3954 const void* pData) {
3955 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
3956 if (NULL == disp) {
3957 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3958 "vkCmdPushDescriptorSetWithTemplateKHR: Invalid commandBuffer "
3959 "[VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter]");
3960 abort(); /* Intentionally fail so user can correct issue. */
3961 }
3962 disp->CmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
3963 }
3964
3965
3966 // ---- VK_KHR_descriptor_update_template extension trampoline/terminators
3967
CreateDescriptorUpdateTemplateKHR(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)3968 VKAPI_ATTR VkResult VKAPI_CALL CreateDescriptorUpdateTemplateKHR(
3969 VkDevice device,
3970 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
3971 const VkAllocationCallbacks* pAllocator,
3972 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
3973 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3974 if (NULL == disp) {
3975 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3976 "vkCreateDescriptorUpdateTemplateKHR: Invalid device "
3977 "[VUID-vkCreateDescriptorUpdateTemplateKHR-device-parameter]");
3978 abort(); /* Intentionally fail so user can correct issue. */
3979 }
3980 return disp->CreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
3981 }
3982
DestroyDescriptorUpdateTemplateKHR(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)3983 VKAPI_ATTR void VKAPI_CALL DestroyDescriptorUpdateTemplateKHR(
3984 VkDevice device,
3985 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3986 const VkAllocationCallbacks* pAllocator) {
3987 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
3988 if (NULL == disp) {
3989 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
3990 "vkDestroyDescriptorUpdateTemplateKHR: Invalid device "
3991 "[VUID-vkDestroyDescriptorUpdateTemplateKHR-device-parameter]");
3992 abort(); /* Intentionally fail so user can correct issue. */
3993 }
3994 disp->DestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
3995 }
3996
UpdateDescriptorSetWithTemplateKHR(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)3997 VKAPI_ATTR void VKAPI_CALL UpdateDescriptorSetWithTemplateKHR(
3998 VkDevice device,
3999 VkDescriptorSet descriptorSet,
4000 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
4001 const void* pData) {
4002 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4003 if (NULL == disp) {
4004 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4005 "vkUpdateDescriptorSetWithTemplateKHR: Invalid device "
4006 "[VUID-vkUpdateDescriptorSetWithTemplateKHR-device-parameter]");
4007 abort(); /* Intentionally fail so user can correct issue. */
4008 }
4009 disp->UpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
4010 }
4011
4012
4013 // ---- VK_KHR_create_renderpass2 extension trampoline/terminators
4014
CreateRenderPass2KHR(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)4015 VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass2KHR(
4016 VkDevice device,
4017 const VkRenderPassCreateInfo2* pCreateInfo,
4018 const VkAllocationCallbacks* pAllocator,
4019 VkRenderPass* pRenderPass) {
4020 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4021 if (NULL == disp) {
4022 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4023 "vkCreateRenderPass2KHR: Invalid device "
4024 "[VUID-vkCreateRenderPass2KHR-device-parameter]");
4025 abort(); /* Intentionally fail so user can correct issue. */
4026 }
4027 return disp->CreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
4028 }
4029
CmdBeginRenderPass2KHR(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)4030 VKAPI_ATTR void VKAPI_CALL CmdBeginRenderPass2KHR(
4031 VkCommandBuffer commandBuffer,
4032 const VkRenderPassBeginInfo* pRenderPassBegin,
4033 const VkSubpassBeginInfo* pSubpassBeginInfo) {
4034 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4035 if (NULL == disp) {
4036 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4037 "vkCmdBeginRenderPass2KHR: Invalid commandBuffer "
4038 "[VUID-vkCmdBeginRenderPass2KHR-commandBuffer-parameter]");
4039 abort(); /* Intentionally fail so user can correct issue. */
4040 }
4041 disp->CmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
4042 }
4043
CmdNextSubpass2KHR(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)4044 VKAPI_ATTR void VKAPI_CALL CmdNextSubpass2KHR(
4045 VkCommandBuffer commandBuffer,
4046 const VkSubpassBeginInfo* pSubpassBeginInfo,
4047 const VkSubpassEndInfo* pSubpassEndInfo) {
4048 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4049 if (NULL == disp) {
4050 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4051 "vkCmdNextSubpass2KHR: Invalid commandBuffer "
4052 "[VUID-vkCmdNextSubpass2KHR-commandBuffer-parameter]");
4053 abort(); /* Intentionally fail so user can correct issue. */
4054 }
4055 disp->CmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
4056 }
4057
CmdEndRenderPass2KHR(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)4058 VKAPI_ATTR void VKAPI_CALL CmdEndRenderPass2KHR(
4059 VkCommandBuffer commandBuffer,
4060 const VkSubpassEndInfo* pSubpassEndInfo) {
4061 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4062 if (NULL == disp) {
4063 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4064 "vkCmdEndRenderPass2KHR: Invalid commandBuffer "
4065 "[VUID-vkCmdEndRenderPass2KHR-commandBuffer-parameter]");
4066 abort(); /* Intentionally fail so user can correct issue. */
4067 }
4068 disp->CmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
4069 }
4070
4071
4072 // ---- VK_KHR_shared_presentable_image extension trampoline/terminators
4073
GetSwapchainStatusKHR(VkDevice device,VkSwapchainKHR swapchain)4074 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainStatusKHR(
4075 VkDevice device,
4076 VkSwapchainKHR swapchain) {
4077 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4078 if (NULL == disp) {
4079 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4080 "vkGetSwapchainStatusKHR: Invalid device "
4081 "[VUID-vkGetSwapchainStatusKHR-device-parameter]");
4082 abort(); /* Intentionally fail so user can correct issue. */
4083 }
4084 return disp->GetSwapchainStatusKHR(device, swapchain);
4085 }
4086
4087
4088 // ---- VK_KHR_external_fence_win32 extension trampoline/terminators
4089
4090 #if defined(VK_USE_PLATFORM_WIN32_KHR)
ImportFenceWin32HandleKHR(VkDevice device,const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo)4091 VKAPI_ATTR VkResult VKAPI_CALL ImportFenceWin32HandleKHR(
4092 VkDevice device,
4093 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
4094 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4095 if (NULL == disp) {
4096 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4097 "vkImportFenceWin32HandleKHR: Invalid device "
4098 "[VUID-vkImportFenceWin32HandleKHR-device-parameter]");
4099 abort(); /* Intentionally fail so user can correct issue. */
4100 }
4101 return disp->ImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
4102 }
4103
4104 #endif // VK_USE_PLATFORM_WIN32_KHR
4105 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetFenceWin32HandleKHR(VkDevice device,const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)4106 VKAPI_ATTR VkResult VKAPI_CALL GetFenceWin32HandleKHR(
4107 VkDevice device,
4108 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
4109 HANDLE* pHandle) {
4110 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4111 if (NULL == disp) {
4112 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4113 "vkGetFenceWin32HandleKHR: Invalid device "
4114 "[VUID-vkGetFenceWin32HandleKHR-device-parameter]");
4115 abort(); /* Intentionally fail so user can correct issue. */
4116 }
4117 return disp->GetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
4118 }
4119
4120 #endif // VK_USE_PLATFORM_WIN32_KHR
4121
4122 // ---- VK_KHR_external_fence_fd extension trampoline/terminators
4123
ImportFenceFdKHR(VkDevice device,const VkImportFenceFdInfoKHR * pImportFenceFdInfo)4124 VKAPI_ATTR VkResult VKAPI_CALL ImportFenceFdKHR(
4125 VkDevice device,
4126 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
4127 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4128 if (NULL == disp) {
4129 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4130 "vkImportFenceFdKHR: Invalid device "
4131 "[VUID-vkImportFenceFdKHR-device-parameter]");
4132 abort(); /* Intentionally fail so user can correct issue. */
4133 }
4134 return disp->ImportFenceFdKHR(device, pImportFenceFdInfo);
4135 }
4136
GetFenceFdKHR(VkDevice device,const VkFenceGetFdInfoKHR * pGetFdInfo,int * pFd)4137 VKAPI_ATTR VkResult VKAPI_CALL GetFenceFdKHR(
4138 VkDevice device,
4139 const VkFenceGetFdInfoKHR* pGetFdInfo,
4140 int* pFd) {
4141 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4142 if (NULL == disp) {
4143 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4144 "vkGetFenceFdKHR: Invalid device "
4145 "[VUID-vkGetFenceFdKHR-device-parameter]");
4146 abort(); /* Intentionally fail so user can correct issue. */
4147 }
4148 return disp->GetFenceFdKHR(device, pGetFdInfo, pFd);
4149 }
4150
4151
4152 // ---- VK_KHR_performance_query extension trampoline/terminators
4153
EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions)4154 VKAPI_ATTR VkResult VKAPI_CALL EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
4155 VkPhysicalDevice physicalDevice,
4156 uint32_t queueFamilyIndex,
4157 uint32_t* pCounterCount,
4158 VkPerformanceCounterKHR* pCounters,
4159 VkPerformanceCounterDescriptionKHR* pCounterDescriptions) {
4160 const VkLayerInstanceDispatchTable *disp;
4161 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4162 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4163 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4164 "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR: Invalid physicalDevice "
4165 "[VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter]");
4166 abort(); /* Intentionally fail so user can correct issue. */
4167 }
4168 disp = loader_get_instance_layer_dispatch(physicalDevice);
4169 return disp->EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(unwrapped_phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
4170 }
4171
terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,uint32_t * pCounterCount,VkPerformanceCounterKHR * pCounters,VkPerformanceCounterDescriptionKHR * pCounterDescriptions)4172 VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
4173 VkPhysicalDevice physicalDevice,
4174 uint32_t queueFamilyIndex,
4175 uint32_t* pCounterCount,
4176 VkPerformanceCounterKHR* pCounters,
4177 VkPerformanceCounterDescriptionKHR* pCounterDescriptions) {
4178 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4179 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4180 if (NULL == icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR) {
4181 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4182 "ICD associated with VkPhysicalDevice does not support EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
4183 abort(); /* Intentionally fail so user can correct issue. */
4184 }
4185 return icd_term->dispatch.EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(phys_dev_term->phys_dev, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions);
4186 }
4187
GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses)4188 VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
4189 VkPhysicalDevice physicalDevice,
4190 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
4191 uint32_t* pNumPasses) {
4192 const VkLayerInstanceDispatchTable *disp;
4193 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4194 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4195 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4196 "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR: Invalid physicalDevice "
4197 "[VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter]");
4198 abort(); /* Intentionally fail so user can correct issue. */
4199 }
4200 disp = loader_get_instance_layer_dispatch(physicalDevice);
4201 disp->GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(unwrapped_phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4202 }
4203
terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(VkPhysicalDevice physicalDevice,const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses)4204 VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
4205 VkPhysicalDevice physicalDevice,
4206 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
4207 uint32_t* pNumPasses) {
4208 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4209 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4210 if (NULL == icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR) {
4211 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4212 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
4213 abort(); /* Intentionally fail so user can correct issue. */
4214 }
4215 icd_term->dispatch.GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(phys_dev_term->phys_dev, pPerformanceQueryCreateInfo, pNumPasses);
4216 }
4217
AcquireProfilingLockKHR(VkDevice device,const VkAcquireProfilingLockInfoKHR * pInfo)4218 VKAPI_ATTR VkResult VKAPI_CALL AcquireProfilingLockKHR(
4219 VkDevice device,
4220 const VkAcquireProfilingLockInfoKHR* pInfo) {
4221 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4222 if (NULL == disp) {
4223 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4224 "vkAcquireProfilingLockKHR: Invalid device "
4225 "[VUID-vkAcquireProfilingLockKHR-device-parameter]");
4226 abort(); /* Intentionally fail so user can correct issue. */
4227 }
4228 return disp->AcquireProfilingLockKHR(device, pInfo);
4229 }
4230
ReleaseProfilingLockKHR(VkDevice device)4231 VKAPI_ATTR void VKAPI_CALL ReleaseProfilingLockKHR(
4232 VkDevice device) {
4233 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4234 if (NULL == disp) {
4235 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4236 "vkReleaseProfilingLockKHR: Invalid device "
4237 "[VUID-vkReleaseProfilingLockKHR-device-parameter]");
4238 abort(); /* Intentionally fail so user can correct issue. */
4239 }
4240 disp->ReleaseProfilingLockKHR(device);
4241 }
4242
4243
4244 // ---- VK_KHR_get_memory_requirements2 extension trampoline/terminators
4245
GetImageMemoryRequirements2KHR(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)4246 VKAPI_ATTR void VKAPI_CALL GetImageMemoryRequirements2KHR(
4247 VkDevice device,
4248 const VkImageMemoryRequirementsInfo2* pInfo,
4249 VkMemoryRequirements2* pMemoryRequirements) {
4250 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4251 if (NULL == disp) {
4252 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4253 "vkGetImageMemoryRequirements2KHR: Invalid device "
4254 "[VUID-vkGetImageMemoryRequirements2KHR-device-parameter]");
4255 abort(); /* Intentionally fail so user can correct issue. */
4256 }
4257 disp->GetImageMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4258 }
4259
GetBufferMemoryRequirements2KHR(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)4260 VKAPI_ATTR void VKAPI_CALL GetBufferMemoryRequirements2KHR(
4261 VkDevice device,
4262 const VkBufferMemoryRequirementsInfo2* pInfo,
4263 VkMemoryRequirements2* pMemoryRequirements) {
4264 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4265 if (NULL == disp) {
4266 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4267 "vkGetBufferMemoryRequirements2KHR: Invalid device "
4268 "[VUID-vkGetBufferMemoryRequirements2KHR-device-parameter]");
4269 abort(); /* Intentionally fail so user can correct issue. */
4270 }
4271 disp->GetBufferMemoryRequirements2KHR(device, pInfo, pMemoryRequirements);
4272 }
4273
GetImageSparseMemoryRequirements2KHR(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)4274 VKAPI_ATTR void VKAPI_CALL GetImageSparseMemoryRequirements2KHR(
4275 VkDevice device,
4276 const VkImageSparseMemoryRequirementsInfo2* pInfo,
4277 uint32_t* pSparseMemoryRequirementCount,
4278 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
4279 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4280 if (NULL == disp) {
4281 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4282 "vkGetImageSparseMemoryRequirements2KHR: Invalid device "
4283 "[VUID-vkGetImageSparseMemoryRequirements2KHR-device-parameter]");
4284 abort(); /* Intentionally fail so user can correct issue. */
4285 }
4286 disp->GetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
4287 }
4288
4289
4290 // ---- VK_KHR_sampler_ycbcr_conversion extension trampoline/terminators
4291
CreateSamplerYcbcrConversionKHR(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)4292 VKAPI_ATTR VkResult VKAPI_CALL CreateSamplerYcbcrConversionKHR(
4293 VkDevice device,
4294 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
4295 const VkAllocationCallbacks* pAllocator,
4296 VkSamplerYcbcrConversion* pYcbcrConversion) {
4297 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4298 if (NULL == disp) {
4299 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4300 "vkCreateSamplerYcbcrConversionKHR: Invalid device "
4301 "[VUID-vkCreateSamplerYcbcrConversionKHR-device-parameter]");
4302 abort(); /* Intentionally fail so user can correct issue. */
4303 }
4304 return disp->CreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
4305 }
4306
DestroySamplerYcbcrConversionKHR(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)4307 VKAPI_ATTR void VKAPI_CALL DestroySamplerYcbcrConversionKHR(
4308 VkDevice device,
4309 VkSamplerYcbcrConversion ycbcrConversion,
4310 const VkAllocationCallbacks* pAllocator) {
4311 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4312 if (NULL == disp) {
4313 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4314 "vkDestroySamplerYcbcrConversionKHR: Invalid device "
4315 "[VUID-vkDestroySamplerYcbcrConversionKHR-device-parameter]");
4316 abort(); /* Intentionally fail so user can correct issue. */
4317 }
4318 disp->DestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
4319 }
4320
4321
4322 // ---- VK_KHR_bind_memory2 extension trampoline/terminators
4323
BindBufferMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)4324 VKAPI_ATTR VkResult VKAPI_CALL BindBufferMemory2KHR(
4325 VkDevice device,
4326 uint32_t bindInfoCount,
4327 const VkBindBufferMemoryInfo* pBindInfos) {
4328 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4329 if (NULL == disp) {
4330 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4331 "vkBindBufferMemory2KHR: Invalid device "
4332 "[VUID-vkBindBufferMemory2KHR-device-parameter]");
4333 abort(); /* Intentionally fail so user can correct issue. */
4334 }
4335 return disp->BindBufferMemory2KHR(device, bindInfoCount, pBindInfos);
4336 }
4337
BindImageMemory2KHR(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)4338 VKAPI_ATTR VkResult VKAPI_CALL BindImageMemory2KHR(
4339 VkDevice device,
4340 uint32_t bindInfoCount,
4341 const VkBindImageMemoryInfo* pBindInfos) {
4342 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4343 if (NULL == disp) {
4344 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4345 "vkBindImageMemory2KHR: Invalid device "
4346 "[VUID-vkBindImageMemory2KHR-device-parameter]");
4347 abort(); /* Intentionally fail so user can correct issue. */
4348 }
4349 return disp->BindImageMemory2KHR(device, bindInfoCount, pBindInfos);
4350 }
4351
4352
4353 // ---- VK_KHR_maintenance3 extension trampoline/terminators
4354
GetDescriptorSetLayoutSupportKHR(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)4355 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSupportKHR(
4356 VkDevice device,
4357 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
4358 VkDescriptorSetLayoutSupport* pSupport) {
4359 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4360 if (NULL == disp) {
4361 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4362 "vkGetDescriptorSetLayoutSupportKHR: Invalid device "
4363 "[VUID-vkGetDescriptorSetLayoutSupportKHR-device-parameter]");
4364 abort(); /* Intentionally fail so user can correct issue. */
4365 }
4366 disp->GetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
4367 }
4368
4369
4370 // ---- VK_KHR_draw_indirect_count extension trampoline/terminators
4371
CmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4372 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountKHR(
4373 VkCommandBuffer commandBuffer,
4374 VkBuffer buffer,
4375 VkDeviceSize offset,
4376 VkBuffer countBuffer,
4377 VkDeviceSize countBufferOffset,
4378 uint32_t maxDrawCount,
4379 uint32_t stride) {
4380 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4381 if (NULL == disp) {
4382 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4383 "vkCmdDrawIndirectCountKHR: Invalid commandBuffer "
4384 "[VUID-vkCmdDrawIndirectCountKHR-commandBuffer-parameter]");
4385 abort(); /* Intentionally fail so user can correct issue. */
4386 }
4387 disp->CmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4388 }
4389
CmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)4390 VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountKHR(
4391 VkCommandBuffer commandBuffer,
4392 VkBuffer buffer,
4393 VkDeviceSize offset,
4394 VkBuffer countBuffer,
4395 VkDeviceSize countBufferOffset,
4396 uint32_t maxDrawCount,
4397 uint32_t stride) {
4398 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4399 if (NULL == disp) {
4400 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4401 "vkCmdDrawIndexedIndirectCountKHR: Invalid commandBuffer "
4402 "[VUID-vkCmdDrawIndexedIndirectCountKHR-commandBuffer-parameter]");
4403 abort(); /* Intentionally fail so user can correct issue. */
4404 }
4405 disp->CmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
4406 }
4407
4408
4409 // ---- VK_KHR_timeline_semaphore extension trampoline/terminators
4410
GetSemaphoreCounterValueKHR(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)4411 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreCounterValueKHR(
4412 VkDevice device,
4413 VkSemaphore semaphore,
4414 uint64_t* pValue) {
4415 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4416 if (NULL == disp) {
4417 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4418 "vkGetSemaphoreCounterValueKHR: Invalid device "
4419 "[VUID-vkGetSemaphoreCounterValueKHR-device-parameter]");
4420 abort(); /* Intentionally fail so user can correct issue. */
4421 }
4422 return disp->GetSemaphoreCounterValueKHR(device, semaphore, pValue);
4423 }
4424
WaitSemaphoresKHR(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)4425 VKAPI_ATTR VkResult VKAPI_CALL WaitSemaphoresKHR(
4426 VkDevice device,
4427 const VkSemaphoreWaitInfo* pWaitInfo,
4428 uint64_t timeout) {
4429 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4430 if (NULL == disp) {
4431 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4432 "vkWaitSemaphoresKHR: Invalid device "
4433 "[VUID-vkWaitSemaphoresKHR-device-parameter]");
4434 abort(); /* Intentionally fail so user can correct issue. */
4435 }
4436 return disp->WaitSemaphoresKHR(device, pWaitInfo, timeout);
4437 }
4438
SignalSemaphoreKHR(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)4439 VKAPI_ATTR VkResult VKAPI_CALL SignalSemaphoreKHR(
4440 VkDevice device,
4441 const VkSemaphoreSignalInfo* pSignalInfo) {
4442 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4443 if (NULL == disp) {
4444 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4445 "vkSignalSemaphoreKHR: Invalid device "
4446 "[VUID-vkSignalSemaphoreKHR-device-parameter]");
4447 abort(); /* Intentionally fail so user can correct issue. */
4448 }
4449 return disp->SignalSemaphoreKHR(device, pSignalInfo);
4450 }
4451
4452
4453 // ---- VK_KHR_fragment_shading_rate extension trampoline/terminators
4454
GetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates)4455 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceFragmentShadingRatesKHR(
4456 VkPhysicalDevice physicalDevice,
4457 uint32_t* pFragmentShadingRateCount,
4458 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) {
4459 const VkLayerInstanceDispatchTable *disp;
4460 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4461 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4462 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4463 "vkGetPhysicalDeviceFragmentShadingRatesKHR: Invalid physicalDevice "
4464 "[VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter]");
4465 abort(); /* Intentionally fail so user can correct issue. */
4466 }
4467 disp = loader_get_instance_layer_dispatch(physicalDevice);
4468 return disp->GetPhysicalDeviceFragmentShadingRatesKHR(unwrapped_phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4469 }
4470
terminator_GetPhysicalDeviceFragmentShadingRatesKHR(VkPhysicalDevice physicalDevice,uint32_t * pFragmentShadingRateCount,VkPhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates)4471 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceFragmentShadingRatesKHR(
4472 VkPhysicalDevice physicalDevice,
4473 uint32_t* pFragmentShadingRateCount,
4474 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) {
4475 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4476 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4477 if (NULL == icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR) {
4478 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4479 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceFragmentShadingRatesKHR");
4480 abort(); /* Intentionally fail so user can correct issue. */
4481 }
4482 return icd_term->dispatch.GetPhysicalDeviceFragmentShadingRatesKHR(phys_dev_term->phys_dev, pFragmentShadingRateCount, pFragmentShadingRates);
4483 }
4484
CmdSetFragmentShadingRateKHR(VkCommandBuffer commandBuffer,const VkExtent2D * pFragmentSize,const VkFragmentShadingRateCombinerOpKHR combinerOps[2])4485 VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateKHR(
4486 VkCommandBuffer commandBuffer,
4487 const VkExtent2D* pFragmentSize,
4488 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) {
4489 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4490 if (NULL == disp) {
4491 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4492 "vkCmdSetFragmentShadingRateKHR: Invalid commandBuffer "
4493 "[VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter]");
4494 abort(); /* Intentionally fail so user can correct issue. */
4495 }
4496 disp->CmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps);
4497 }
4498
4499
4500 // ---- VK_KHR_dynamic_rendering_local_read extension trampoline/terminators
4501
CmdSetRenderingAttachmentLocationsKHR(VkCommandBuffer commandBuffer,const VkRenderingAttachmentLocationInfo * pLocationInfo)4502 VKAPI_ATTR void VKAPI_CALL CmdSetRenderingAttachmentLocationsKHR(
4503 VkCommandBuffer commandBuffer,
4504 const VkRenderingAttachmentLocationInfo* pLocationInfo) {
4505 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4506 if (NULL == disp) {
4507 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4508 "vkCmdSetRenderingAttachmentLocationsKHR: Invalid commandBuffer "
4509 "[VUID-vkCmdSetRenderingAttachmentLocationsKHR-commandBuffer-parameter]");
4510 abort(); /* Intentionally fail so user can correct issue. */
4511 }
4512 disp->CmdSetRenderingAttachmentLocationsKHR(commandBuffer, pLocationInfo);
4513 }
4514
CmdSetRenderingInputAttachmentIndicesKHR(VkCommandBuffer commandBuffer,const VkRenderingInputAttachmentIndexInfo * pInputAttachmentIndexInfo)4515 VKAPI_ATTR void VKAPI_CALL CmdSetRenderingInputAttachmentIndicesKHR(
4516 VkCommandBuffer commandBuffer,
4517 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo) {
4518 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4519 if (NULL == disp) {
4520 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4521 "vkCmdSetRenderingInputAttachmentIndicesKHR: Invalid commandBuffer "
4522 "[VUID-vkCmdSetRenderingInputAttachmentIndicesKHR-commandBuffer-parameter]");
4523 abort(); /* Intentionally fail so user can correct issue. */
4524 }
4525 disp->CmdSetRenderingInputAttachmentIndicesKHR(commandBuffer, pInputAttachmentIndexInfo);
4526 }
4527
4528
4529 // ---- VK_KHR_present_wait extension trampoline/terminators
4530
WaitForPresentKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t presentId,uint64_t timeout)4531 VKAPI_ATTR VkResult VKAPI_CALL WaitForPresentKHR(
4532 VkDevice device,
4533 VkSwapchainKHR swapchain,
4534 uint64_t presentId,
4535 uint64_t timeout) {
4536 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4537 if (NULL == disp) {
4538 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4539 "vkWaitForPresentKHR: Invalid device "
4540 "[VUID-vkWaitForPresentKHR-device-parameter]");
4541 abort(); /* Intentionally fail so user can correct issue. */
4542 }
4543 return disp->WaitForPresentKHR(device, swapchain, presentId, timeout);
4544 }
4545
4546
4547 // ---- VK_KHR_buffer_device_address extension trampoline/terminators
4548
GetBufferDeviceAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)4549 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressKHR(
4550 VkDevice device,
4551 const VkBufferDeviceAddressInfo* pInfo) {
4552 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4553 if (NULL == disp) {
4554 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4555 "vkGetBufferDeviceAddressKHR: Invalid device "
4556 "[VUID-vkGetBufferDeviceAddressKHR-device-parameter]");
4557 abort(); /* Intentionally fail so user can correct issue. */
4558 }
4559 return disp->GetBufferDeviceAddressKHR(device, pInfo);
4560 }
4561
GetBufferOpaqueCaptureAddressKHR(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)4562 VKAPI_ATTR uint64_t VKAPI_CALL GetBufferOpaqueCaptureAddressKHR(
4563 VkDevice device,
4564 const VkBufferDeviceAddressInfo* pInfo) {
4565 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4566 if (NULL == disp) {
4567 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4568 "vkGetBufferOpaqueCaptureAddressKHR: Invalid device "
4569 "[VUID-vkGetBufferOpaqueCaptureAddressKHR-device-parameter]");
4570 abort(); /* Intentionally fail so user can correct issue. */
4571 }
4572 return disp->GetBufferOpaqueCaptureAddressKHR(device, pInfo);
4573 }
4574
GetDeviceMemoryOpaqueCaptureAddressKHR(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)4575 VKAPI_ATTR uint64_t VKAPI_CALL GetDeviceMemoryOpaqueCaptureAddressKHR(
4576 VkDevice device,
4577 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
4578 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4579 if (NULL == disp) {
4580 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4581 "vkGetDeviceMemoryOpaqueCaptureAddressKHR: Invalid device "
4582 "[VUID-vkGetDeviceMemoryOpaqueCaptureAddressKHR-device-parameter]");
4583 abort(); /* Intentionally fail so user can correct issue. */
4584 }
4585 return disp->GetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo);
4586 }
4587
4588
4589 // ---- VK_KHR_deferred_host_operations extension trampoline/terminators
4590
CreateDeferredOperationKHR(VkDevice device,const VkAllocationCallbacks * pAllocator,VkDeferredOperationKHR * pDeferredOperation)4591 VKAPI_ATTR VkResult VKAPI_CALL CreateDeferredOperationKHR(
4592 VkDevice device,
4593 const VkAllocationCallbacks* pAllocator,
4594 VkDeferredOperationKHR* pDeferredOperation) {
4595 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4596 if (NULL == disp) {
4597 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4598 "vkCreateDeferredOperationKHR: Invalid device "
4599 "[VUID-vkCreateDeferredOperationKHR-device-parameter]");
4600 abort(); /* Intentionally fail so user can correct issue. */
4601 }
4602 return disp->CreateDeferredOperationKHR(device, pAllocator, pDeferredOperation);
4603 }
4604
DestroyDeferredOperationKHR(VkDevice device,VkDeferredOperationKHR operation,const VkAllocationCallbacks * pAllocator)4605 VKAPI_ATTR void VKAPI_CALL DestroyDeferredOperationKHR(
4606 VkDevice device,
4607 VkDeferredOperationKHR operation,
4608 const VkAllocationCallbacks* pAllocator) {
4609 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4610 if (NULL == disp) {
4611 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4612 "vkDestroyDeferredOperationKHR: Invalid device "
4613 "[VUID-vkDestroyDeferredOperationKHR-device-parameter]");
4614 abort(); /* Intentionally fail so user can correct issue. */
4615 }
4616 disp->DestroyDeferredOperationKHR(device, operation, pAllocator);
4617 }
4618
GetDeferredOperationMaxConcurrencyKHR(VkDevice device,VkDeferredOperationKHR operation)4619 VKAPI_ATTR uint32_t VKAPI_CALL GetDeferredOperationMaxConcurrencyKHR(
4620 VkDevice device,
4621 VkDeferredOperationKHR operation) {
4622 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4623 if (NULL == disp) {
4624 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4625 "vkGetDeferredOperationMaxConcurrencyKHR: Invalid device "
4626 "[VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter]");
4627 abort(); /* Intentionally fail so user can correct issue. */
4628 }
4629 return disp->GetDeferredOperationMaxConcurrencyKHR(device, operation);
4630 }
4631
GetDeferredOperationResultKHR(VkDevice device,VkDeferredOperationKHR operation)4632 VKAPI_ATTR VkResult VKAPI_CALL GetDeferredOperationResultKHR(
4633 VkDevice device,
4634 VkDeferredOperationKHR operation) {
4635 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4636 if (NULL == disp) {
4637 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4638 "vkGetDeferredOperationResultKHR: Invalid device "
4639 "[VUID-vkGetDeferredOperationResultKHR-device-parameter]");
4640 abort(); /* Intentionally fail so user can correct issue. */
4641 }
4642 return disp->GetDeferredOperationResultKHR(device, operation);
4643 }
4644
DeferredOperationJoinKHR(VkDevice device,VkDeferredOperationKHR operation)4645 VKAPI_ATTR VkResult VKAPI_CALL DeferredOperationJoinKHR(
4646 VkDevice device,
4647 VkDeferredOperationKHR operation) {
4648 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4649 if (NULL == disp) {
4650 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4651 "vkDeferredOperationJoinKHR: Invalid device "
4652 "[VUID-vkDeferredOperationJoinKHR-device-parameter]");
4653 abort(); /* Intentionally fail so user can correct issue. */
4654 }
4655 return disp->DeferredOperationJoinKHR(device, operation);
4656 }
4657
4658
4659 // ---- VK_KHR_pipeline_executable_properties extension trampoline/terminators
4660
GetPipelineExecutablePropertiesKHR(VkDevice device,const VkPipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VkPipelineExecutablePropertiesKHR * pProperties)4661 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutablePropertiesKHR(
4662 VkDevice device,
4663 const VkPipelineInfoKHR* pPipelineInfo,
4664 uint32_t* pExecutableCount,
4665 VkPipelineExecutablePropertiesKHR* pProperties) {
4666 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4667 if (NULL == disp) {
4668 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4669 "vkGetPipelineExecutablePropertiesKHR: Invalid device "
4670 "[VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter]");
4671 abort(); /* Intentionally fail so user can correct issue. */
4672 }
4673 return disp->GetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties);
4674 }
4675
GetPipelineExecutableStatisticsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VkPipelineExecutableStatisticKHR * pStatistics)4676 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableStatisticsKHR(
4677 VkDevice device,
4678 const VkPipelineExecutableInfoKHR* pExecutableInfo,
4679 uint32_t* pStatisticCount,
4680 VkPipelineExecutableStatisticKHR* pStatistics) {
4681 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4682 if (NULL == disp) {
4683 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4684 "vkGetPipelineExecutableStatisticsKHR: Invalid device "
4685 "[VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter]");
4686 abort(); /* Intentionally fail so user can correct issue. */
4687 }
4688 return disp->GetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics);
4689 }
4690
GetPipelineExecutableInternalRepresentationsKHR(VkDevice device,const VkPipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations)4691 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineExecutableInternalRepresentationsKHR(
4692 VkDevice device,
4693 const VkPipelineExecutableInfoKHR* pExecutableInfo,
4694 uint32_t* pInternalRepresentationCount,
4695 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) {
4696 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4697 if (NULL == disp) {
4698 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4699 "vkGetPipelineExecutableInternalRepresentationsKHR: Invalid device "
4700 "[VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter]");
4701 abort(); /* Intentionally fail so user can correct issue. */
4702 }
4703 return disp->GetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations);
4704 }
4705
4706
4707 // ---- VK_KHR_map_memory2 extension trampoline/terminators
4708
MapMemory2KHR(VkDevice device,const VkMemoryMapInfo * pMemoryMapInfo,void ** ppData)4709 VKAPI_ATTR VkResult VKAPI_CALL MapMemory2KHR(
4710 VkDevice device,
4711 const VkMemoryMapInfo* pMemoryMapInfo,
4712 void** ppData) {
4713 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4714 if (NULL == disp) {
4715 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4716 "vkMapMemory2KHR: Invalid device "
4717 "[VUID-vkMapMemory2KHR-device-parameter]");
4718 abort(); /* Intentionally fail so user can correct issue. */
4719 }
4720 return disp->MapMemory2KHR(device, pMemoryMapInfo, ppData);
4721 }
4722
UnmapMemory2KHR(VkDevice device,const VkMemoryUnmapInfo * pMemoryUnmapInfo)4723 VKAPI_ATTR VkResult VKAPI_CALL UnmapMemory2KHR(
4724 VkDevice device,
4725 const VkMemoryUnmapInfo* pMemoryUnmapInfo) {
4726 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4727 if (NULL == disp) {
4728 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4729 "vkUnmapMemory2KHR: Invalid device "
4730 "[VUID-vkUnmapMemory2KHR-device-parameter]");
4731 abort(); /* Intentionally fail so user can correct issue. */
4732 }
4733 return disp->UnmapMemory2KHR(device, pMemoryUnmapInfo);
4734 }
4735
4736
4737 // ---- VK_KHR_video_encode_queue extension trampoline/terminators
4738
GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,VkVideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties)4739 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
4740 VkPhysicalDevice physicalDevice,
4741 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
4742 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties) {
4743 const VkLayerInstanceDispatchTable *disp;
4744 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
4745 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
4746 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4747 "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR: Invalid physicalDevice "
4748 "[VUID-vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR-physicalDevice-parameter]");
4749 abort(); /* Intentionally fail so user can correct issue. */
4750 }
4751 disp = loader_get_instance_layer_dispatch(physicalDevice);
4752 return disp->GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(unwrapped_phys_dev, pQualityLevelInfo, pQualityLevelProperties);
4753 }
4754
terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,VkVideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties)4755 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
4756 VkPhysicalDevice physicalDevice,
4757 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
4758 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties) {
4759 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
4760 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
4761 if (NULL == icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR) {
4762 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
4763 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR");
4764 abort(); /* Intentionally fail so user can correct issue. */
4765 }
4766 return icd_term->dispatch.GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(phys_dev_term->phys_dev, pQualityLevelInfo, pQualityLevelProperties);
4767 }
4768
GetEncodedVideoSessionParametersKHR(VkDevice device,const VkVideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,VkVideoEncodeSessionParametersFeedbackInfoKHR * pFeedbackInfo,size_t * pDataSize,void * pData)4769 VKAPI_ATTR VkResult VKAPI_CALL GetEncodedVideoSessionParametersKHR(
4770 VkDevice device,
4771 const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
4772 VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
4773 size_t* pDataSize,
4774 void* pData) {
4775 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4776 if (NULL == disp) {
4777 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4778 "vkGetEncodedVideoSessionParametersKHR: Invalid device "
4779 "[VUID-vkGetEncodedVideoSessionParametersKHR-device-parameter]");
4780 abort(); /* Intentionally fail so user can correct issue. */
4781 }
4782 return disp->GetEncodedVideoSessionParametersKHR(device, pVideoSessionParametersInfo, pFeedbackInfo, pDataSize, pData);
4783 }
4784
CmdEncodeVideoKHR(VkCommandBuffer commandBuffer,const VkVideoEncodeInfoKHR * pEncodeInfo)4785 VKAPI_ATTR void VKAPI_CALL CmdEncodeVideoKHR(
4786 VkCommandBuffer commandBuffer,
4787 const VkVideoEncodeInfoKHR* pEncodeInfo) {
4788 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4789 if (NULL == disp) {
4790 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4791 "vkCmdEncodeVideoKHR: Invalid commandBuffer "
4792 "[VUID-vkCmdEncodeVideoKHR-commandBuffer-parameter]");
4793 abort(); /* Intentionally fail so user can correct issue. */
4794 }
4795 disp->CmdEncodeVideoKHR(commandBuffer, pEncodeInfo);
4796 }
4797
4798
4799 // ---- VK_KHR_synchronization2 extension trampoline/terminators
4800
CmdSetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)4801 VKAPI_ATTR void VKAPI_CALL CmdSetEvent2KHR(
4802 VkCommandBuffer commandBuffer,
4803 VkEvent event,
4804 const VkDependencyInfo* pDependencyInfo) {
4805 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4806 if (NULL == disp) {
4807 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4808 "vkCmdSetEvent2KHR: Invalid commandBuffer "
4809 "[VUID-vkCmdSetEvent2KHR-commandBuffer-parameter]");
4810 abort(); /* Intentionally fail so user can correct issue. */
4811 }
4812 disp->CmdSetEvent2KHR(commandBuffer, event, pDependencyInfo);
4813 }
4814
CmdResetEvent2KHR(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)4815 VKAPI_ATTR void VKAPI_CALL CmdResetEvent2KHR(
4816 VkCommandBuffer commandBuffer,
4817 VkEvent event,
4818 VkPipelineStageFlags2 stageMask) {
4819 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4820 if (NULL == disp) {
4821 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4822 "vkCmdResetEvent2KHR: Invalid commandBuffer "
4823 "[VUID-vkCmdResetEvent2KHR-commandBuffer-parameter]");
4824 abort(); /* Intentionally fail so user can correct issue. */
4825 }
4826 disp->CmdResetEvent2KHR(commandBuffer, event, stageMask);
4827 }
4828
CmdWaitEvents2KHR(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)4829 VKAPI_ATTR void VKAPI_CALL CmdWaitEvents2KHR(
4830 VkCommandBuffer commandBuffer,
4831 uint32_t eventCount,
4832 const VkEvent* pEvents,
4833 const VkDependencyInfo* pDependencyInfos) {
4834 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4835 if (NULL == disp) {
4836 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4837 "vkCmdWaitEvents2KHR: Invalid commandBuffer "
4838 "[VUID-vkCmdWaitEvents2KHR-commandBuffer-parameter]");
4839 abort(); /* Intentionally fail so user can correct issue. */
4840 }
4841 disp->CmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos);
4842 }
4843
CmdPipelineBarrier2KHR(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)4844 VKAPI_ATTR void VKAPI_CALL CmdPipelineBarrier2KHR(
4845 VkCommandBuffer commandBuffer,
4846 const VkDependencyInfo* pDependencyInfo) {
4847 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4848 if (NULL == disp) {
4849 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4850 "vkCmdPipelineBarrier2KHR: Invalid commandBuffer "
4851 "[VUID-vkCmdPipelineBarrier2KHR-commandBuffer-parameter]");
4852 abort(); /* Intentionally fail so user can correct issue. */
4853 }
4854 disp->CmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo);
4855 }
4856
CmdWriteTimestamp2KHR(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)4857 VKAPI_ATTR void VKAPI_CALL CmdWriteTimestamp2KHR(
4858 VkCommandBuffer commandBuffer,
4859 VkPipelineStageFlags2 stage,
4860 VkQueryPool queryPool,
4861 uint32_t query) {
4862 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4863 if (NULL == disp) {
4864 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4865 "vkCmdWriteTimestamp2KHR: Invalid commandBuffer "
4866 "[VUID-vkCmdWriteTimestamp2KHR-commandBuffer-parameter]");
4867 abort(); /* Intentionally fail so user can correct issue. */
4868 }
4869 disp->CmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query);
4870 }
4871
QueueSubmit2KHR(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)4872 VKAPI_ATTR VkResult VKAPI_CALL QueueSubmit2KHR(
4873 VkQueue queue,
4874 uint32_t submitCount,
4875 const VkSubmitInfo2* pSubmits,
4876 VkFence fence) {
4877 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
4878 if (NULL == disp) {
4879 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4880 "vkQueueSubmit2KHR: Invalid queue "
4881 "[VUID-vkQueueSubmit2KHR-queue-parameter]");
4882 abort(); /* Intentionally fail so user can correct issue. */
4883 }
4884 return disp->QueueSubmit2KHR(queue, submitCount, pSubmits, fence);
4885 }
4886
4887
4888 // ---- VK_KHR_copy_commands2 extension trampoline/terminators
4889
CmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)4890 VKAPI_ATTR void VKAPI_CALL CmdCopyBuffer2KHR(
4891 VkCommandBuffer commandBuffer,
4892 const VkCopyBufferInfo2* pCopyBufferInfo) {
4893 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4894 if (NULL == disp) {
4895 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4896 "vkCmdCopyBuffer2KHR: Invalid commandBuffer "
4897 "[VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter]");
4898 abort(); /* Intentionally fail so user can correct issue. */
4899 }
4900 disp->CmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo);
4901 }
4902
CmdCopyImage2KHR(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)4903 VKAPI_ATTR void VKAPI_CALL CmdCopyImage2KHR(
4904 VkCommandBuffer commandBuffer,
4905 const VkCopyImageInfo2* pCopyImageInfo) {
4906 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4907 if (NULL == disp) {
4908 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4909 "vkCmdCopyImage2KHR: Invalid commandBuffer "
4910 "[VUID-vkCmdCopyImage2KHR-commandBuffer-parameter]");
4911 abort(); /* Intentionally fail so user can correct issue. */
4912 }
4913 disp->CmdCopyImage2KHR(commandBuffer, pCopyImageInfo);
4914 }
4915
CmdCopyBufferToImage2KHR(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)4916 VKAPI_ATTR void VKAPI_CALL CmdCopyBufferToImage2KHR(
4917 VkCommandBuffer commandBuffer,
4918 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
4919 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4920 if (NULL == disp) {
4921 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4922 "vkCmdCopyBufferToImage2KHR: Invalid commandBuffer "
4923 "[VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter]");
4924 abort(); /* Intentionally fail so user can correct issue. */
4925 }
4926 disp->CmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo);
4927 }
4928
CmdCopyImageToBuffer2KHR(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)4929 VKAPI_ATTR void VKAPI_CALL CmdCopyImageToBuffer2KHR(
4930 VkCommandBuffer commandBuffer,
4931 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
4932 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4933 if (NULL == disp) {
4934 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4935 "vkCmdCopyImageToBuffer2KHR: Invalid commandBuffer "
4936 "[VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter]");
4937 abort(); /* Intentionally fail so user can correct issue. */
4938 }
4939 disp->CmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo);
4940 }
4941
CmdBlitImage2KHR(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)4942 VKAPI_ATTR void VKAPI_CALL CmdBlitImage2KHR(
4943 VkCommandBuffer commandBuffer,
4944 const VkBlitImageInfo2* pBlitImageInfo) {
4945 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4946 if (NULL == disp) {
4947 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4948 "vkCmdBlitImage2KHR: Invalid commandBuffer "
4949 "[VUID-vkCmdBlitImage2KHR-commandBuffer-parameter]");
4950 abort(); /* Intentionally fail so user can correct issue. */
4951 }
4952 disp->CmdBlitImage2KHR(commandBuffer, pBlitImageInfo);
4953 }
4954
CmdResolveImage2KHR(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)4955 VKAPI_ATTR void VKAPI_CALL CmdResolveImage2KHR(
4956 VkCommandBuffer commandBuffer,
4957 const VkResolveImageInfo2* pResolveImageInfo) {
4958 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4959 if (NULL == disp) {
4960 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4961 "vkCmdResolveImage2KHR: Invalid commandBuffer "
4962 "[VUID-vkCmdResolveImage2KHR-commandBuffer-parameter]");
4963 abort(); /* Intentionally fail so user can correct issue. */
4964 }
4965 disp->CmdResolveImage2KHR(commandBuffer, pResolveImageInfo);
4966 }
4967
4968
4969 // ---- VK_KHR_ray_tracing_maintenance1 extension trampoline/terminators
4970
CmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,VkDeviceAddress indirectDeviceAddress)4971 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirect2KHR(
4972 VkCommandBuffer commandBuffer,
4973 VkDeviceAddress indirectDeviceAddress) {
4974 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
4975 if (NULL == disp) {
4976 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4977 "vkCmdTraceRaysIndirect2KHR: Invalid commandBuffer "
4978 "[VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-parameter]");
4979 abort(); /* Intentionally fail so user can correct issue. */
4980 }
4981 disp->CmdTraceRaysIndirect2KHR(commandBuffer, indirectDeviceAddress);
4982 }
4983
4984
4985 // ---- VK_KHR_maintenance4 extension trampoline/terminators
4986
GetDeviceBufferMemoryRequirementsKHR(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)4987 VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR(
4988 VkDevice device,
4989 const VkDeviceBufferMemoryRequirements* pInfo,
4990 VkMemoryRequirements2* pMemoryRequirements) {
4991 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
4992 if (NULL == disp) {
4993 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
4994 "vkGetDeviceBufferMemoryRequirementsKHR: Invalid device "
4995 "[VUID-vkGetDeviceBufferMemoryRequirementsKHR-device-parameter]");
4996 abort(); /* Intentionally fail so user can correct issue. */
4997 }
4998 disp->GetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
4999 }
5000
GetDeviceImageMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)5001 VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR(
5002 VkDevice device,
5003 const VkDeviceImageMemoryRequirements* pInfo,
5004 VkMemoryRequirements2* pMemoryRequirements) {
5005 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5006 if (NULL == disp) {
5007 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5008 "vkGetDeviceImageMemoryRequirementsKHR: Invalid device "
5009 "[VUID-vkGetDeviceImageMemoryRequirementsKHR-device-parameter]");
5010 abort(); /* Intentionally fail so user can correct issue. */
5011 }
5012 disp->GetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
5013 }
5014
GetDeviceImageSparseMemoryRequirementsKHR(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)5015 VKAPI_ATTR void VKAPI_CALL GetDeviceImageSparseMemoryRequirementsKHR(
5016 VkDevice device,
5017 const VkDeviceImageMemoryRequirements* pInfo,
5018 uint32_t* pSparseMemoryRequirementCount,
5019 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
5020 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5021 if (NULL == disp) {
5022 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5023 "vkGetDeviceImageSparseMemoryRequirementsKHR: Invalid device "
5024 "[VUID-vkGetDeviceImageSparseMemoryRequirementsKHR-device-parameter]");
5025 abort(); /* Intentionally fail so user can correct issue. */
5026 }
5027 disp->GetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
5028 }
5029
5030
5031 // ---- VK_KHR_maintenance5 extension trampoline/terminators
5032
CmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkDeviceSize size,VkIndexType indexType)5033 VKAPI_ATTR void VKAPI_CALL CmdBindIndexBuffer2KHR(
5034 VkCommandBuffer commandBuffer,
5035 VkBuffer buffer,
5036 VkDeviceSize offset,
5037 VkDeviceSize size,
5038 VkIndexType indexType) {
5039 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5040 if (NULL == disp) {
5041 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5042 "vkCmdBindIndexBuffer2KHR: Invalid commandBuffer "
5043 "[VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter]");
5044 abort(); /* Intentionally fail so user can correct issue. */
5045 }
5046 disp->CmdBindIndexBuffer2KHR(commandBuffer, buffer, offset, size, indexType);
5047 }
5048
GetRenderingAreaGranularityKHR(VkDevice device,const VkRenderingAreaInfo * pRenderingAreaInfo,VkExtent2D * pGranularity)5049 VKAPI_ATTR void VKAPI_CALL GetRenderingAreaGranularityKHR(
5050 VkDevice device,
5051 const VkRenderingAreaInfo* pRenderingAreaInfo,
5052 VkExtent2D* pGranularity) {
5053 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5054 if (NULL == disp) {
5055 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5056 "vkGetRenderingAreaGranularityKHR: Invalid device "
5057 "[VUID-vkGetRenderingAreaGranularityKHR-device-parameter]");
5058 abort(); /* Intentionally fail so user can correct issue. */
5059 }
5060 disp->GetRenderingAreaGranularityKHR(device, pRenderingAreaInfo, pGranularity);
5061 }
5062
GetDeviceImageSubresourceLayoutKHR(VkDevice device,const VkDeviceImageSubresourceInfo * pInfo,VkSubresourceLayout2 * pLayout)5063 VKAPI_ATTR void VKAPI_CALL GetDeviceImageSubresourceLayoutKHR(
5064 VkDevice device,
5065 const VkDeviceImageSubresourceInfo* pInfo,
5066 VkSubresourceLayout2* pLayout) {
5067 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5068 if (NULL == disp) {
5069 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5070 "vkGetDeviceImageSubresourceLayoutKHR: Invalid device "
5071 "[VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter]");
5072 abort(); /* Intentionally fail so user can correct issue. */
5073 }
5074 disp->GetDeviceImageSubresourceLayoutKHR(device, pInfo, pLayout);
5075 }
5076
GetImageSubresourceLayout2KHR(VkDevice device,VkImage image,const VkImageSubresource2 * pSubresource,VkSubresourceLayout2 * pLayout)5077 VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2KHR(
5078 VkDevice device,
5079 VkImage image,
5080 const VkImageSubresource2* pSubresource,
5081 VkSubresourceLayout2* pLayout) {
5082 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5083 if (NULL == disp) {
5084 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5085 "vkGetImageSubresourceLayout2KHR: Invalid device "
5086 "[VUID-vkGetImageSubresourceLayout2KHR-device-parameter]");
5087 abort(); /* Intentionally fail so user can correct issue. */
5088 }
5089 disp->GetImageSubresourceLayout2KHR(device, image, pSubresource, pLayout);
5090 }
5091
5092
5093 // ---- VK_KHR_pipeline_binary extension trampoline/terminators
5094
CreatePipelineBinariesKHR(VkDevice device,const VkPipelineBinaryCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineBinaryHandlesInfoKHR * pBinaries)5095 VKAPI_ATTR VkResult VKAPI_CALL CreatePipelineBinariesKHR(
5096 VkDevice device,
5097 const VkPipelineBinaryCreateInfoKHR* pCreateInfo,
5098 const VkAllocationCallbacks* pAllocator,
5099 VkPipelineBinaryHandlesInfoKHR* pBinaries) {
5100 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5101 if (NULL == disp) {
5102 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5103 "vkCreatePipelineBinariesKHR: Invalid device "
5104 "[VUID-vkCreatePipelineBinariesKHR-device-parameter]");
5105 abort(); /* Intentionally fail so user can correct issue. */
5106 }
5107 return disp->CreatePipelineBinariesKHR(device, pCreateInfo, pAllocator, pBinaries);
5108 }
5109
DestroyPipelineBinaryKHR(VkDevice device,VkPipelineBinaryKHR pipelineBinary,const VkAllocationCallbacks * pAllocator)5110 VKAPI_ATTR void VKAPI_CALL DestroyPipelineBinaryKHR(
5111 VkDevice device,
5112 VkPipelineBinaryKHR pipelineBinary,
5113 const VkAllocationCallbacks* pAllocator) {
5114 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5115 if (NULL == disp) {
5116 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5117 "vkDestroyPipelineBinaryKHR: Invalid device "
5118 "[VUID-vkDestroyPipelineBinaryKHR-device-parameter]");
5119 abort(); /* Intentionally fail so user can correct issue. */
5120 }
5121 disp->DestroyPipelineBinaryKHR(device, pipelineBinary, pAllocator);
5122 }
5123
GetPipelineKeyKHR(VkDevice device,const VkPipelineCreateInfoKHR * pPipelineCreateInfo,VkPipelineBinaryKeyKHR * pPipelineKey)5124 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineKeyKHR(
5125 VkDevice device,
5126 const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
5127 VkPipelineBinaryKeyKHR* pPipelineKey) {
5128 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5129 if (NULL == disp) {
5130 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5131 "vkGetPipelineKeyKHR: Invalid device "
5132 "[VUID-vkGetPipelineKeyKHR-device-parameter]");
5133 abort(); /* Intentionally fail so user can correct issue. */
5134 }
5135 return disp->GetPipelineKeyKHR(device, pPipelineCreateInfo, pPipelineKey);
5136 }
5137
GetPipelineBinaryDataKHR(VkDevice device,const VkPipelineBinaryDataInfoKHR * pInfo,VkPipelineBinaryKeyKHR * pPipelineBinaryKey,size_t * pPipelineBinaryDataSize,void * pPipelineBinaryData)5138 VKAPI_ATTR VkResult VKAPI_CALL GetPipelineBinaryDataKHR(
5139 VkDevice device,
5140 const VkPipelineBinaryDataInfoKHR* pInfo,
5141 VkPipelineBinaryKeyKHR* pPipelineBinaryKey,
5142 size_t* pPipelineBinaryDataSize,
5143 void* pPipelineBinaryData) {
5144 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5145 if (NULL == disp) {
5146 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5147 "vkGetPipelineBinaryDataKHR: Invalid device "
5148 "[VUID-vkGetPipelineBinaryDataKHR-device-parameter]");
5149 abort(); /* Intentionally fail so user can correct issue. */
5150 }
5151 return disp->GetPipelineBinaryDataKHR(device, pInfo, pPipelineBinaryKey, pPipelineBinaryDataSize, pPipelineBinaryData);
5152 }
5153
ReleaseCapturedPipelineDataKHR(VkDevice device,const VkReleaseCapturedPipelineDataInfoKHR * pInfo,const VkAllocationCallbacks * pAllocator)5154 VKAPI_ATTR VkResult VKAPI_CALL ReleaseCapturedPipelineDataKHR(
5155 VkDevice device,
5156 const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
5157 const VkAllocationCallbacks* pAllocator) {
5158 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5159 if (NULL == disp) {
5160 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5161 "vkReleaseCapturedPipelineDataKHR: Invalid device "
5162 "[VUID-vkReleaseCapturedPipelineDataKHR-device-parameter]");
5163 abort(); /* Intentionally fail so user can correct issue. */
5164 }
5165 return disp->ReleaseCapturedPipelineDataKHR(device, pInfo, pAllocator);
5166 }
5167
5168
5169 // ---- VK_KHR_cooperative_matrix extension trampoline/terminators
5170
GetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesKHR * pProperties)5171 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
5172 VkPhysicalDevice physicalDevice,
5173 uint32_t* pPropertyCount,
5174 VkCooperativeMatrixPropertiesKHR* pProperties) {
5175 const VkLayerInstanceDispatchTable *disp;
5176 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5177 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5178 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5179 "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR: Invalid physicalDevice "
5180 "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter]");
5181 abort(); /* Intentionally fail so user can correct issue. */
5182 }
5183 disp = loader_get_instance_layer_dispatch(physicalDevice);
5184 return disp->GetPhysicalDeviceCooperativeMatrixPropertiesKHR(unwrapped_phys_dev, pPropertyCount, pProperties);
5185 }
5186
terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesKHR * pProperties)5187 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR(
5188 VkPhysicalDevice physicalDevice,
5189 uint32_t* pPropertyCount,
5190 VkCooperativeMatrixPropertiesKHR* pProperties) {
5191 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5192 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5193 if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR) {
5194 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5195 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesKHR");
5196 abort(); /* Intentionally fail so user can correct issue. */
5197 }
5198 return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesKHR(phys_dev_term->phys_dev, pPropertyCount, pProperties);
5199 }
5200
5201
5202 // ---- VK_KHR_line_rasterization extension trampoline/terminators
5203
CmdSetLineStippleKHR(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)5204 VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleKHR(
5205 VkCommandBuffer commandBuffer,
5206 uint32_t lineStippleFactor,
5207 uint16_t lineStipplePattern) {
5208 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5209 if (NULL == disp) {
5210 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5211 "vkCmdSetLineStippleKHR: Invalid commandBuffer "
5212 "[VUID-vkCmdSetLineStippleKHR-commandBuffer-parameter]");
5213 abort(); /* Intentionally fail so user can correct issue. */
5214 }
5215 disp->CmdSetLineStippleKHR(commandBuffer, lineStippleFactor, lineStipplePattern);
5216 }
5217
5218
5219 // ---- VK_KHR_calibrated_timestamps extension trampoline/terminators
5220
GetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainKHR * pTimeDomains)5221 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsKHR(
5222 VkPhysicalDevice physicalDevice,
5223 uint32_t* pTimeDomainCount,
5224 VkTimeDomainKHR* pTimeDomains) {
5225 const VkLayerInstanceDispatchTable *disp;
5226 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
5227 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
5228 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5229 "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR: Invalid physicalDevice "
5230 "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter]");
5231 abort(); /* Intentionally fail so user can correct issue. */
5232 }
5233 disp = loader_get_instance_layer_dispatch(physicalDevice);
5234 return disp->GetPhysicalDeviceCalibrateableTimeDomainsKHR(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
5235 }
5236
terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainKHR * pTimeDomains)5237 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR(
5238 VkPhysicalDevice physicalDevice,
5239 uint32_t* pTimeDomainCount,
5240 VkTimeDomainKHR* pTimeDomains) {
5241 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
5242 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
5243 if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR) {
5244 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
5245 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsKHR");
5246 abort(); /* Intentionally fail so user can correct issue. */
5247 }
5248 return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsKHR(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
5249 }
5250
GetCalibratedTimestampsKHR(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoKHR * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation)5251 VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsKHR(
5252 VkDevice device,
5253 uint32_t timestampCount,
5254 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
5255 uint64_t* pTimestamps,
5256 uint64_t* pMaxDeviation) {
5257 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5258 if (NULL == disp) {
5259 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5260 "vkGetCalibratedTimestampsKHR: Invalid device "
5261 "[VUID-vkGetCalibratedTimestampsKHR-device-parameter]");
5262 abort(); /* Intentionally fail so user can correct issue. */
5263 }
5264 return disp->GetCalibratedTimestampsKHR(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
5265 }
5266
5267
5268 // ---- VK_KHR_maintenance6 extension trampoline/terminators
5269
CmdBindDescriptorSets2KHR(VkCommandBuffer commandBuffer,const VkBindDescriptorSetsInfo * pBindDescriptorSetsInfo)5270 VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorSets2KHR(
5271 VkCommandBuffer commandBuffer,
5272 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo) {
5273 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5274 if (NULL == disp) {
5275 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5276 "vkCmdBindDescriptorSets2KHR: Invalid commandBuffer "
5277 "[VUID-vkCmdBindDescriptorSets2KHR-commandBuffer-parameter]");
5278 abort(); /* Intentionally fail so user can correct issue. */
5279 }
5280 disp->CmdBindDescriptorSets2KHR(commandBuffer, pBindDescriptorSetsInfo);
5281 }
5282
CmdPushConstants2KHR(VkCommandBuffer commandBuffer,const VkPushConstantsInfo * pPushConstantsInfo)5283 VKAPI_ATTR void VKAPI_CALL CmdPushConstants2KHR(
5284 VkCommandBuffer commandBuffer,
5285 const VkPushConstantsInfo* pPushConstantsInfo) {
5286 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5287 if (NULL == disp) {
5288 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5289 "vkCmdPushConstants2KHR: Invalid commandBuffer "
5290 "[VUID-vkCmdPushConstants2KHR-commandBuffer-parameter]");
5291 abort(); /* Intentionally fail so user can correct issue. */
5292 }
5293 disp->CmdPushConstants2KHR(commandBuffer, pPushConstantsInfo);
5294 }
5295
CmdPushDescriptorSet2KHR(VkCommandBuffer commandBuffer,const VkPushDescriptorSetInfo * pPushDescriptorSetInfo)5296 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSet2KHR(
5297 VkCommandBuffer commandBuffer,
5298 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo) {
5299 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5300 if (NULL == disp) {
5301 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5302 "vkCmdPushDescriptorSet2KHR: Invalid commandBuffer "
5303 "[VUID-vkCmdPushDescriptorSet2KHR-commandBuffer-parameter]");
5304 abort(); /* Intentionally fail so user can correct issue. */
5305 }
5306 disp->CmdPushDescriptorSet2KHR(commandBuffer, pPushDescriptorSetInfo);
5307 }
5308
CmdPushDescriptorSetWithTemplate2KHR(VkCommandBuffer commandBuffer,const VkPushDescriptorSetWithTemplateInfo * pPushDescriptorSetWithTemplateInfo)5309 VKAPI_ATTR void VKAPI_CALL CmdPushDescriptorSetWithTemplate2KHR(
5310 VkCommandBuffer commandBuffer,
5311 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo) {
5312 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5313 if (NULL == disp) {
5314 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5315 "vkCmdPushDescriptorSetWithTemplate2KHR: Invalid commandBuffer "
5316 "[VUID-vkCmdPushDescriptorSetWithTemplate2KHR-commandBuffer-parameter]");
5317 abort(); /* Intentionally fail so user can correct issue. */
5318 }
5319 disp->CmdPushDescriptorSetWithTemplate2KHR(commandBuffer, pPushDescriptorSetWithTemplateInfo);
5320 }
5321
CmdSetDescriptorBufferOffsets2EXT(VkCommandBuffer commandBuffer,const VkSetDescriptorBufferOffsetsInfoEXT * pSetDescriptorBufferOffsetsInfo)5322 VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsets2EXT(
5323 VkCommandBuffer commandBuffer,
5324 const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo) {
5325 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5326 if (NULL == disp) {
5327 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5328 "vkCmdSetDescriptorBufferOffsets2EXT: Invalid commandBuffer "
5329 "[VUID-vkCmdSetDescriptorBufferOffsets2EXT-commandBuffer-parameter]");
5330 abort(); /* Intentionally fail so user can correct issue. */
5331 }
5332 disp->CmdSetDescriptorBufferOffsets2EXT(commandBuffer, pSetDescriptorBufferOffsetsInfo);
5333 }
5334
CmdBindDescriptorBufferEmbeddedSamplers2EXT(VkCommandBuffer commandBuffer,const VkBindDescriptorBufferEmbeddedSamplersInfoEXT * pBindDescriptorBufferEmbeddedSamplersInfo)5335 VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplers2EXT(
5336 VkCommandBuffer commandBuffer,
5337 const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo) {
5338 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5339 if (NULL == disp) {
5340 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5341 "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT: Invalid commandBuffer "
5342 "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplers2EXT-commandBuffer-parameter]");
5343 abort(); /* Intentionally fail so user can correct issue. */
5344 }
5345 disp->CmdBindDescriptorBufferEmbeddedSamplers2EXT(commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo);
5346 }
5347
5348
5349 // ---- VK_EXT_debug_marker extension trampoline/terminators
5350
DebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo)5351 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
5352 VkDevice device,
5353 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
5354 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5355 if (NULL == disp) {
5356 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5357 "vkDebugMarkerSetObjectTagEXT: Invalid device "
5358 "[VUID-vkDebugMarkerSetObjectTagEXT-device-parameter]");
5359 abort(); /* Intentionally fail so user can correct issue. */
5360 }
5361 VkDebugMarkerObjectTagInfoEXT local_tag_info;
5362 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
5363 // If this is a physical device, we have to replace it with the proper one for the next call.
5364 if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5365 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->object;
5366 local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5367 }
5368 if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5369 struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->object;
5370 local_tag_info.object = (uint64_t)(uintptr_t)instance->instance;
5371 }
5372 return disp->DebugMarkerSetObjectTagEXT(device, &local_tag_info);
5373 }
5374
terminator_DebugMarkerSetObjectTagEXT(VkDevice device,const VkDebugMarkerObjectTagInfoEXT * pTagInfo)5375 VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectTagEXT(
5376 VkDevice device,
5377 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
5378 struct loader_device *dev;
5379 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
5380 if (NULL == icd_term || NULL == dev) {
5381 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectTagEXT: Invalid device handle");
5382 abort(); /* Intentionally fail so user can correct issue. */
5383 }
5384 VkDebugMarkerObjectTagInfoEXT local_tag_info;
5385 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugMarkerObjectTagInfoEXT));
5386 // If this is a physical device, we have to replace it with the proper one for the next call.
5387 if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5388 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->object;
5389 local_tag_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5390 // 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.
5391 } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
5392 if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5393 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pTagInfo->object;
5394 if (NULL != icd_term->surface_list.list && icd_term->surface_list.capacity > icd_surface->surface_index * sizeof(VkSurfaceKHR)
5395 && icd_term->surface_list.list[icd_surface->surface_index]) {
5396 local_tag_info.object = (uint64_t)icd_term->surface_list.list[icd_surface->surface_index];
5397 }
5398 }
5399 // If this is an instance we have to replace it with the proper one for the next call.
5400 } else if (pTagInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5401 local_tag_info.object = (uint64_t)(uintptr_t)icd_term->instance;
5402 }
5403 // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5404 // debug utils but the driver does not.
5405 if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT)
5406 return VK_SUCCESS;
5407 return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectTagEXT(device, &local_tag_info);
5408 }
5409
DebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo)5410 VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
5411 VkDevice device,
5412 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
5413 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5414 if (NULL == disp) {
5415 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5416 "vkDebugMarkerSetObjectNameEXT: Invalid device "
5417 "[VUID-vkDebugMarkerSetObjectNameEXT-device-parameter]");
5418 abort(); /* Intentionally fail so user can correct issue. */
5419 }
5420 VkDebugMarkerObjectNameInfoEXT local_name_info;
5421 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
5422 // If this is a physical device, we have to replace it with the proper one for the next call.
5423 if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5424 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->object;
5425 local_name_info.object = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
5426 }
5427 if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5428 struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->object;
5429 local_name_info.object = (uint64_t)(uintptr_t)instance->instance;
5430 }
5431 return disp->DebugMarkerSetObjectNameEXT(device, &local_name_info);
5432 }
5433
terminator_DebugMarkerSetObjectNameEXT(VkDevice device,const VkDebugMarkerObjectNameInfoEXT * pNameInfo)5434 VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectNameEXT(
5435 VkDevice device,
5436 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
5437 struct loader_device *dev;
5438 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
5439 if (NULL == icd_term || NULL == dev) {
5440 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "DebugMarkerSetObjectNameEXT: Invalid device handle");
5441 abort(); /* Intentionally fail so user can correct issue. */
5442 }
5443 VkDebugMarkerObjectNameInfoEXT local_name_info;
5444 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugMarkerObjectNameInfoEXT));
5445 // If this is a physical device, we have to replace it with the proper one for the next call.
5446 if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT) {
5447 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->object;
5448 local_name_info.object = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
5449 // 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.
5450 } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT) {
5451 if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
5452 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pNameInfo->object;
5453 if (NULL != icd_term->surface_list.list && icd_term->surface_list.capacity > icd_surface->surface_index * sizeof(VkSurfaceKHR)
5454 && icd_term->surface_list.list[icd_surface->surface_index]) {
5455 local_name_info.object = (uint64_t)icd_term->surface_list.list[icd_surface->surface_index];
5456 }
5457 }
5458 // If this is an instance we have to replace it with the proper one for the next call.
5459 } else if (pNameInfo->objectType == VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT) {
5460 local_name_info.object = (uint64_t)(uintptr_t)icd_term->instance;
5461 }
5462 // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
5463 // debug utils but the driver does not.
5464 if (NULL == dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT)
5465 return VK_SUCCESS;
5466 return dev->loader_dispatch.extension_terminator_dispatch.DebugMarkerSetObjectNameEXT(device, &local_name_info);
5467 }
5468
CmdDebugMarkerBeginEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)5469 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerBeginEXT(
5470 VkCommandBuffer commandBuffer,
5471 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
5472 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5473 if (NULL == disp) {
5474 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5475 "vkCmdDebugMarkerBeginEXT: Invalid commandBuffer "
5476 "[VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter]");
5477 abort(); /* Intentionally fail so user can correct issue. */
5478 }
5479 disp->CmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
5480 }
5481
CmdDebugMarkerEndEXT(VkCommandBuffer commandBuffer)5482 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerEndEXT(
5483 VkCommandBuffer commandBuffer) {
5484 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5485 if (NULL == disp) {
5486 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5487 "vkCmdDebugMarkerEndEXT: Invalid commandBuffer "
5488 "[VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter]");
5489 abort(); /* Intentionally fail so user can correct issue. */
5490 }
5491 disp->CmdDebugMarkerEndEXT(commandBuffer);
5492 }
5493
CmdDebugMarkerInsertEXT(VkCommandBuffer commandBuffer,const VkDebugMarkerMarkerInfoEXT * pMarkerInfo)5494 VKAPI_ATTR void VKAPI_CALL CmdDebugMarkerInsertEXT(
5495 VkCommandBuffer commandBuffer,
5496 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
5497 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5498 if (NULL == disp) {
5499 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5500 "vkCmdDebugMarkerInsertEXT: Invalid commandBuffer "
5501 "[VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter]");
5502 abort(); /* Intentionally fail so user can correct issue. */
5503 }
5504 disp->CmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
5505 }
5506
5507
5508 // ---- VK_EXT_transform_feedback extension trampoline/terminators
5509
CmdBindTransformFeedbackBuffersEXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes)5510 VKAPI_ATTR void VKAPI_CALL CmdBindTransformFeedbackBuffersEXT(
5511 VkCommandBuffer commandBuffer,
5512 uint32_t firstBinding,
5513 uint32_t bindingCount,
5514 const VkBuffer* pBuffers,
5515 const VkDeviceSize* pOffsets,
5516 const VkDeviceSize* pSizes) {
5517 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5518 if (NULL == disp) {
5519 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5520 "vkCmdBindTransformFeedbackBuffersEXT: Invalid commandBuffer "
5521 "[VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter]");
5522 abort(); /* Intentionally fail so user can correct issue. */
5523 }
5524 disp->CmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes);
5525 }
5526
CmdBeginTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)5527 VKAPI_ATTR void VKAPI_CALL CmdBeginTransformFeedbackEXT(
5528 VkCommandBuffer commandBuffer,
5529 uint32_t firstCounterBuffer,
5530 uint32_t counterBufferCount,
5531 const VkBuffer* pCounterBuffers,
5532 const VkDeviceSize* pCounterBufferOffsets) {
5533 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5534 if (NULL == disp) {
5535 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5536 "vkCmdBeginTransformFeedbackEXT: Invalid commandBuffer "
5537 "[VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter]");
5538 abort(); /* Intentionally fail so user can correct issue. */
5539 }
5540 disp->CmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
5541 }
5542
CmdEndTransformFeedbackEXT(VkCommandBuffer commandBuffer,uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VkBuffer * pCounterBuffers,const VkDeviceSize * pCounterBufferOffsets)5543 VKAPI_ATTR void VKAPI_CALL CmdEndTransformFeedbackEXT(
5544 VkCommandBuffer commandBuffer,
5545 uint32_t firstCounterBuffer,
5546 uint32_t counterBufferCount,
5547 const VkBuffer* pCounterBuffers,
5548 const VkDeviceSize* pCounterBufferOffsets) {
5549 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5550 if (NULL == disp) {
5551 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5552 "vkCmdEndTransformFeedbackEXT: Invalid commandBuffer "
5553 "[VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter]");
5554 abort(); /* Intentionally fail so user can correct issue. */
5555 }
5556 disp->CmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets);
5557 }
5558
CmdBeginQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags,uint32_t index)5559 VKAPI_ATTR void VKAPI_CALL CmdBeginQueryIndexedEXT(
5560 VkCommandBuffer commandBuffer,
5561 VkQueryPool queryPool,
5562 uint32_t query,
5563 VkQueryControlFlags flags,
5564 uint32_t index) {
5565 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5566 if (NULL == disp) {
5567 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5568 "vkCmdBeginQueryIndexedEXT: Invalid commandBuffer "
5569 "[VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter]");
5570 abort(); /* Intentionally fail so user can correct issue. */
5571 }
5572 disp->CmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index);
5573 }
5574
CmdEndQueryIndexedEXT(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,uint32_t index)5575 VKAPI_ATTR void VKAPI_CALL CmdEndQueryIndexedEXT(
5576 VkCommandBuffer commandBuffer,
5577 VkQueryPool queryPool,
5578 uint32_t query,
5579 uint32_t index) {
5580 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5581 if (NULL == disp) {
5582 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5583 "vkCmdEndQueryIndexedEXT: Invalid commandBuffer "
5584 "[VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter]");
5585 abort(); /* Intentionally fail so user can correct issue. */
5586 }
5587 disp->CmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index);
5588 }
5589
CmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer,uint32_t instanceCount,uint32_t firstInstance,VkBuffer counterBuffer,VkDeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride)5590 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectByteCountEXT(
5591 VkCommandBuffer commandBuffer,
5592 uint32_t instanceCount,
5593 uint32_t firstInstance,
5594 VkBuffer counterBuffer,
5595 VkDeviceSize counterBufferOffset,
5596 uint32_t counterOffset,
5597 uint32_t vertexStride) {
5598 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5599 if (NULL == disp) {
5600 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5601 "vkCmdDrawIndirectByteCountEXT: Invalid commandBuffer "
5602 "[VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter]");
5603 abort(); /* Intentionally fail so user can correct issue. */
5604 }
5605 disp->CmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride);
5606 }
5607
5608
5609 // ---- VK_NVX_binary_import extension trampoline/terminators
5610
CreateCuModuleNVX(VkDevice device,const VkCuModuleCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuModuleNVX * pModule)5611 VKAPI_ATTR VkResult VKAPI_CALL CreateCuModuleNVX(
5612 VkDevice device,
5613 const VkCuModuleCreateInfoNVX* pCreateInfo,
5614 const VkAllocationCallbacks* pAllocator,
5615 VkCuModuleNVX* pModule) {
5616 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5617 if (NULL == disp) {
5618 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5619 "vkCreateCuModuleNVX: Invalid device "
5620 "[VUID-vkCreateCuModuleNVX-device-parameter]");
5621 abort(); /* Intentionally fail so user can correct issue. */
5622 }
5623 return disp->CreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule);
5624 }
5625
CreateCuFunctionNVX(VkDevice device,const VkCuFunctionCreateInfoNVX * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCuFunctionNVX * pFunction)5626 VKAPI_ATTR VkResult VKAPI_CALL CreateCuFunctionNVX(
5627 VkDevice device,
5628 const VkCuFunctionCreateInfoNVX* pCreateInfo,
5629 const VkAllocationCallbacks* pAllocator,
5630 VkCuFunctionNVX* pFunction) {
5631 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5632 if (NULL == disp) {
5633 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5634 "vkCreateCuFunctionNVX: Invalid device "
5635 "[VUID-vkCreateCuFunctionNVX-device-parameter]");
5636 abort(); /* Intentionally fail so user can correct issue. */
5637 }
5638 return disp->CreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction);
5639 }
5640
DestroyCuModuleNVX(VkDevice device,VkCuModuleNVX module,const VkAllocationCallbacks * pAllocator)5641 VKAPI_ATTR void VKAPI_CALL DestroyCuModuleNVX(
5642 VkDevice device,
5643 VkCuModuleNVX module,
5644 const VkAllocationCallbacks* pAllocator) {
5645 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5646 if (NULL == disp) {
5647 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5648 "vkDestroyCuModuleNVX: Invalid device "
5649 "[VUID-vkDestroyCuModuleNVX-device-parameter]");
5650 abort(); /* Intentionally fail so user can correct issue. */
5651 }
5652 disp->DestroyCuModuleNVX(device, module, pAllocator);
5653 }
5654
DestroyCuFunctionNVX(VkDevice device,VkCuFunctionNVX function,const VkAllocationCallbacks * pAllocator)5655 VKAPI_ATTR void VKAPI_CALL DestroyCuFunctionNVX(
5656 VkDevice device,
5657 VkCuFunctionNVX function,
5658 const VkAllocationCallbacks* pAllocator) {
5659 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5660 if (NULL == disp) {
5661 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5662 "vkDestroyCuFunctionNVX: Invalid device "
5663 "[VUID-vkDestroyCuFunctionNVX-device-parameter]");
5664 abort(); /* Intentionally fail so user can correct issue. */
5665 }
5666 disp->DestroyCuFunctionNVX(device, function, pAllocator);
5667 }
5668
CmdCuLaunchKernelNVX(VkCommandBuffer commandBuffer,const VkCuLaunchInfoNVX * pLaunchInfo)5669 VKAPI_ATTR void VKAPI_CALL CmdCuLaunchKernelNVX(
5670 VkCommandBuffer commandBuffer,
5671 const VkCuLaunchInfoNVX* pLaunchInfo) {
5672 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5673 if (NULL == disp) {
5674 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5675 "vkCmdCuLaunchKernelNVX: Invalid commandBuffer "
5676 "[VUID-vkCmdCuLaunchKernelNVX-commandBuffer-parameter]");
5677 abort(); /* Intentionally fail so user can correct issue. */
5678 }
5679 disp->CmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo);
5680 }
5681
5682
5683 // ---- VK_NVX_image_view_handle extension trampoline/terminators
5684
GetImageViewHandleNVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo)5685 VKAPI_ATTR uint32_t VKAPI_CALL GetImageViewHandleNVX(
5686 VkDevice device,
5687 const VkImageViewHandleInfoNVX* pInfo) {
5688 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5689 if (NULL == disp) {
5690 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5691 "vkGetImageViewHandleNVX: Invalid device "
5692 "[VUID-vkGetImageViewHandleNVX-device-parameter]");
5693 abort(); /* Intentionally fail so user can correct issue. */
5694 }
5695 return disp->GetImageViewHandleNVX(device, pInfo);
5696 }
5697
GetImageViewHandle64NVX(VkDevice device,const VkImageViewHandleInfoNVX * pInfo)5698 VKAPI_ATTR uint64_t VKAPI_CALL GetImageViewHandle64NVX(
5699 VkDevice device,
5700 const VkImageViewHandleInfoNVX* pInfo) {
5701 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5702 if (NULL == disp) {
5703 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5704 "vkGetImageViewHandle64NVX: Invalid device "
5705 "[VUID-vkGetImageViewHandle64NVX-device-parameter]");
5706 abort(); /* Intentionally fail so user can correct issue. */
5707 }
5708 return disp->GetImageViewHandle64NVX(device, pInfo);
5709 }
5710
GetImageViewAddressNVX(VkDevice device,VkImageView imageView,VkImageViewAddressPropertiesNVX * pProperties)5711 VKAPI_ATTR VkResult VKAPI_CALL GetImageViewAddressNVX(
5712 VkDevice device,
5713 VkImageView imageView,
5714 VkImageViewAddressPropertiesNVX* pProperties) {
5715 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5716 if (NULL == disp) {
5717 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5718 "vkGetImageViewAddressNVX: Invalid device "
5719 "[VUID-vkGetImageViewAddressNVX-device-parameter]");
5720 abort(); /* Intentionally fail so user can correct issue. */
5721 }
5722 return disp->GetImageViewAddressNVX(device, imageView, pProperties);
5723 }
5724
5725
5726 // ---- VK_AMD_draw_indirect_count extension trampoline/terminators
5727
CmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5728 VKAPI_ATTR void VKAPI_CALL CmdDrawIndirectCountAMD(
5729 VkCommandBuffer commandBuffer,
5730 VkBuffer buffer,
5731 VkDeviceSize offset,
5732 VkBuffer countBuffer,
5733 VkDeviceSize countBufferOffset,
5734 uint32_t maxDrawCount,
5735 uint32_t stride) {
5736 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5737 if (NULL == disp) {
5738 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5739 "vkCmdDrawIndirectCountAMD: Invalid commandBuffer "
5740 "[VUID-vkCmdDrawIndirectCountAMD-commandBuffer-parameter]");
5741 abort(); /* Intentionally fail so user can correct issue. */
5742 }
5743 disp->CmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
5744 }
5745
CmdDrawIndexedIndirectCountAMD(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)5746 VKAPI_ATTR void VKAPI_CALL CmdDrawIndexedIndirectCountAMD(
5747 VkCommandBuffer commandBuffer,
5748 VkBuffer buffer,
5749 VkDeviceSize offset,
5750 VkBuffer countBuffer,
5751 VkDeviceSize countBufferOffset,
5752 uint32_t maxDrawCount,
5753 uint32_t stride) {
5754 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5755 if (NULL == disp) {
5756 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5757 "vkCmdDrawIndexedIndirectCountAMD: Invalid commandBuffer "
5758 "[VUID-vkCmdDrawIndexedIndirectCountAMD-commandBuffer-parameter]");
5759 abort(); /* Intentionally fail so user can correct issue. */
5760 }
5761 disp->CmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
5762 }
5763
5764
5765 // ---- VK_AMD_shader_info extension trampoline/terminators
5766
GetShaderInfoAMD(VkDevice device,VkPipeline pipeline,VkShaderStageFlagBits shaderStage,VkShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo)5767 VKAPI_ATTR VkResult VKAPI_CALL GetShaderInfoAMD(
5768 VkDevice device,
5769 VkPipeline pipeline,
5770 VkShaderStageFlagBits shaderStage,
5771 VkShaderInfoTypeAMD infoType,
5772 size_t* pInfoSize,
5773 void* pInfo) {
5774 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5775 if (NULL == disp) {
5776 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5777 "vkGetShaderInfoAMD: Invalid device "
5778 "[VUID-vkGetShaderInfoAMD-device-parameter]");
5779 abort(); /* Intentionally fail so user can correct issue. */
5780 }
5781 return disp->GetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
5782 }
5783
5784
5785 // ---- VK_NV_external_memory_win32 extension trampoline/terminators
5786
5787 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetMemoryWin32HandleNV(VkDevice device,VkDeviceMemory memory,VkExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle)5788 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryWin32HandleNV(
5789 VkDevice device,
5790 VkDeviceMemory memory,
5791 VkExternalMemoryHandleTypeFlagsNV handleType,
5792 HANDLE* pHandle) {
5793 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5794 if (NULL == disp) {
5795 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5796 "vkGetMemoryWin32HandleNV: Invalid device "
5797 "[VUID-vkGetMemoryWin32HandleNV-device-parameter]");
5798 abort(); /* Intentionally fail so user can correct issue. */
5799 }
5800 return disp->GetMemoryWin32HandleNV(device, memory, handleType, pHandle);
5801 }
5802
5803 #endif // VK_USE_PLATFORM_WIN32_KHR
5804
5805 // ---- VK_EXT_conditional_rendering extension trampoline/terminators
5806
CmdBeginConditionalRenderingEXT(VkCommandBuffer commandBuffer,const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin)5807 VKAPI_ATTR void VKAPI_CALL CmdBeginConditionalRenderingEXT(
5808 VkCommandBuffer commandBuffer,
5809 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
5810 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5811 if (NULL == disp) {
5812 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5813 "vkCmdBeginConditionalRenderingEXT: Invalid commandBuffer "
5814 "[VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter]");
5815 abort(); /* Intentionally fail so user can correct issue. */
5816 }
5817 disp->CmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
5818 }
5819
CmdEndConditionalRenderingEXT(VkCommandBuffer commandBuffer)5820 VKAPI_ATTR void VKAPI_CALL CmdEndConditionalRenderingEXT(
5821 VkCommandBuffer commandBuffer) {
5822 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5823 if (NULL == disp) {
5824 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5825 "vkCmdEndConditionalRenderingEXT: Invalid commandBuffer "
5826 "[VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter]");
5827 abort(); /* Intentionally fail so user can correct issue. */
5828 }
5829 disp->CmdEndConditionalRenderingEXT(commandBuffer);
5830 }
5831
5832
5833 // ---- VK_NV_clip_space_w_scaling extension trampoline/terminators
5834
CmdSetViewportWScalingNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportWScalingNV * pViewportWScalings)5835 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingNV(
5836 VkCommandBuffer commandBuffer,
5837 uint32_t firstViewport,
5838 uint32_t viewportCount,
5839 const VkViewportWScalingNV* pViewportWScalings) {
5840 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5841 if (NULL == disp) {
5842 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5843 "vkCmdSetViewportWScalingNV: Invalid commandBuffer "
5844 "[VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter]");
5845 abort(); /* Intentionally fail so user can correct issue. */
5846 }
5847 disp->CmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
5848 }
5849
5850
5851 // ---- VK_EXT_display_control extension trampoline/terminators
5852
DisplayPowerControlEXT(VkDevice device,VkDisplayKHR display,const VkDisplayPowerInfoEXT * pDisplayPowerInfo)5853 VKAPI_ATTR VkResult VKAPI_CALL DisplayPowerControlEXT(
5854 VkDevice device,
5855 VkDisplayKHR display,
5856 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
5857 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5858 if (NULL == disp) {
5859 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5860 "vkDisplayPowerControlEXT: Invalid device "
5861 "[VUID-vkDisplayPowerControlEXT-device-parameter]");
5862 abort(); /* Intentionally fail so user can correct issue. */
5863 }
5864 return disp->DisplayPowerControlEXT(device, display, pDisplayPowerInfo);
5865 }
5866
RegisterDeviceEventEXT(VkDevice device,const VkDeviceEventInfoEXT * pDeviceEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)5867 VKAPI_ATTR VkResult VKAPI_CALL RegisterDeviceEventEXT(
5868 VkDevice device,
5869 const VkDeviceEventInfoEXT* pDeviceEventInfo,
5870 const VkAllocationCallbacks* pAllocator,
5871 VkFence* pFence) {
5872 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5873 if (NULL == disp) {
5874 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5875 "vkRegisterDeviceEventEXT: Invalid device "
5876 "[VUID-vkRegisterDeviceEventEXT-device-parameter]");
5877 abort(); /* Intentionally fail so user can correct issue. */
5878 }
5879 return disp->RegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
5880 }
5881
RegisterDisplayEventEXT(VkDevice device,VkDisplayKHR display,const VkDisplayEventInfoEXT * pDisplayEventInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)5882 VKAPI_ATTR VkResult VKAPI_CALL RegisterDisplayEventEXT(
5883 VkDevice device,
5884 VkDisplayKHR display,
5885 const VkDisplayEventInfoEXT* pDisplayEventInfo,
5886 const VkAllocationCallbacks* pAllocator,
5887 VkFence* pFence) {
5888 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5889 if (NULL == disp) {
5890 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5891 "vkRegisterDisplayEventEXT: Invalid device "
5892 "[VUID-vkRegisterDisplayEventEXT-device-parameter]");
5893 abort(); /* Intentionally fail so user can correct issue. */
5894 }
5895 return disp->RegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
5896 }
5897
GetSwapchainCounterEXT(VkDevice device,VkSwapchainKHR swapchain,VkSurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue)5898 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainCounterEXT(
5899 VkDevice device,
5900 VkSwapchainKHR swapchain,
5901 VkSurfaceCounterFlagBitsEXT counter,
5902 uint64_t* pCounterValue) {
5903 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5904 if (NULL == disp) {
5905 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5906 "vkGetSwapchainCounterEXT: Invalid device "
5907 "[VUID-vkGetSwapchainCounterEXT-device-parameter]");
5908 abort(); /* Intentionally fail so user can correct issue. */
5909 }
5910 return disp->GetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
5911 }
5912
5913
5914 // ---- VK_GOOGLE_display_timing extension trampoline/terminators
5915
GetRefreshCycleDurationGOOGLE(VkDevice device,VkSwapchainKHR swapchain,VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties)5916 VKAPI_ATTR VkResult VKAPI_CALL GetRefreshCycleDurationGOOGLE(
5917 VkDevice device,
5918 VkSwapchainKHR swapchain,
5919 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
5920 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5921 if (NULL == disp) {
5922 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5923 "vkGetRefreshCycleDurationGOOGLE: Invalid device "
5924 "[VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter]");
5925 abort(); /* Intentionally fail so user can correct issue. */
5926 }
5927 return disp->GetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
5928 }
5929
GetPastPresentationTimingGOOGLE(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VkPastPresentationTimingGOOGLE * pPresentationTimings)5930 VKAPI_ATTR VkResult VKAPI_CALL GetPastPresentationTimingGOOGLE(
5931 VkDevice device,
5932 VkSwapchainKHR swapchain,
5933 uint32_t* pPresentationTimingCount,
5934 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
5935 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5936 if (NULL == disp) {
5937 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5938 "vkGetPastPresentationTimingGOOGLE: Invalid device "
5939 "[VUID-vkGetPastPresentationTimingGOOGLE-device-parameter]");
5940 abort(); /* Intentionally fail so user can correct issue. */
5941 }
5942 return disp->GetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
5943 }
5944
5945
5946 // ---- VK_EXT_discard_rectangles extension trampoline/terminators
5947
CmdSetDiscardRectangleEXT(VkCommandBuffer commandBuffer,uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VkRect2D * pDiscardRectangles)5948 VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEXT(
5949 VkCommandBuffer commandBuffer,
5950 uint32_t firstDiscardRectangle,
5951 uint32_t discardRectangleCount,
5952 const VkRect2D* pDiscardRectangles) {
5953 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5954 if (NULL == disp) {
5955 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5956 "vkCmdSetDiscardRectangleEXT: Invalid commandBuffer "
5957 "[VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter]");
5958 abort(); /* Intentionally fail so user can correct issue. */
5959 }
5960 disp->CmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
5961 }
5962
CmdSetDiscardRectangleEnableEXT(VkCommandBuffer commandBuffer,VkBool32 discardRectangleEnable)5963 VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleEnableEXT(
5964 VkCommandBuffer commandBuffer,
5965 VkBool32 discardRectangleEnable) {
5966 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5967 if (NULL == disp) {
5968 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5969 "vkCmdSetDiscardRectangleEnableEXT: Invalid commandBuffer "
5970 "[VUID-vkCmdSetDiscardRectangleEnableEXT-commandBuffer-parameter]");
5971 abort(); /* Intentionally fail so user can correct issue. */
5972 }
5973 disp->CmdSetDiscardRectangleEnableEXT(commandBuffer, discardRectangleEnable);
5974 }
5975
CmdSetDiscardRectangleModeEXT(VkCommandBuffer commandBuffer,VkDiscardRectangleModeEXT discardRectangleMode)5976 VKAPI_ATTR void VKAPI_CALL CmdSetDiscardRectangleModeEXT(
5977 VkCommandBuffer commandBuffer,
5978 VkDiscardRectangleModeEXT discardRectangleMode) {
5979 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
5980 if (NULL == disp) {
5981 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
5982 "vkCmdSetDiscardRectangleModeEXT: Invalid commandBuffer "
5983 "[VUID-vkCmdSetDiscardRectangleModeEXT-commandBuffer-parameter]");
5984 abort(); /* Intentionally fail so user can correct issue. */
5985 }
5986 disp->CmdSetDiscardRectangleModeEXT(commandBuffer, discardRectangleMode);
5987 }
5988
5989
5990 // ---- VK_EXT_hdr_metadata extension trampoline/terminators
5991
SetHdrMetadataEXT(VkDevice device,uint32_t swapchainCount,const VkSwapchainKHR * pSwapchains,const VkHdrMetadataEXT * pMetadata)5992 VKAPI_ATTR void VKAPI_CALL SetHdrMetadataEXT(
5993 VkDevice device,
5994 uint32_t swapchainCount,
5995 const VkSwapchainKHR* pSwapchains,
5996 const VkHdrMetadataEXT* pMetadata) {
5997 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
5998 if (NULL == disp) {
5999 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6000 "vkSetHdrMetadataEXT: Invalid device "
6001 "[VUID-vkSetHdrMetadataEXT-device-parameter]");
6002 abort(); /* Intentionally fail so user can correct issue. */
6003 }
6004 disp->SetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
6005 }
6006
6007
6008 // ---- VK_EXT_debug_utils extension trampoline/terminators
6009
SetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)6010 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
6011 VkDevice device,
6012 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
6013 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6014 if (NULL == disp) {
6015 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6016 "vkSetDebugUtilsObjectNameEXT: Invalid device "
6017 "[VUID-vkSetDebugUtilsObjectNameEXT-device-parameter]");
6018 abort(); /* Intentionally fail so user can correct issue. */
6019 }
6020 VkDebugUtilsObjectNameInfoEXT local_name_info;
6021 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
6022 // If this is a physical device, we have to replace it with the proper one for the next call.
6023 if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6024 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pNameInfo->objectHandle;
6025 local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6026 }
6027 if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6028 struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pNameInfo->objectHandle;
6029 local_name_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
6030 }
6031 if (disp->SetDebugUtilsObjectNameEXT != NULL) {
6032 return disp->SetDebugUtilsObjectNameEXT(device, &local_name_info);
6033 } else {
6034 return VK_SUCCESS;
6035 }
6036 }
6037
terminator_SetDebugUtilsObjectNameEXT(VkDevice device,const VkDebugUtilsObjectNameInfoEXT * pNameInfo)6038 VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectNameEXT(
6039 VkDevice device,
6040 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
6041 struct loader_device *dev;
6042 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6043 if (NULL == icd_term || NULL == dev) {
6044 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectNameEXT: Invalid device handle");
6045 abort(); /* Intentionally fail so user can correct issue. */
6046 }
6047 VkDebugUtilsObjectNameInfoEXT local_name_info;
6048 memcpy(&local_name_info, pNameInfo, sizeof(VkDebugUtilsObjectNameInfoEXT));
6049 // If this is a physical device, we have to replace it with the proper one for the next call.
6050 if (pNameInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6051 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pNameInfo->objectHandle;
6052 local_name_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6053 // 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.
6054 } else if (pNameInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
6055 if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6056 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pNameInfo->objectHandle;
6057 if (NULL != icd_term->surface_list.list && icd_term->surface_list.capacity > icd_surface->surface_index * sizeof(VkSurfaceKHR)
6058 && icd_term->surface_list.list[icd_surface->surface_index]) {
6059 local_name_info.objectHandle = (uint64_t)icd_term->surface_list.list[icd_surface->surface_index];
6060 }
6061 }
6062 // If this is an instance we have to replace it with the proper one for the next call.
6063 } else if (pNameInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6064 local_name_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
6065 }
6066 // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6067 // debug utils but the driver does not.
6068 if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT)
6069 return VK_SUCCESS;
6070 return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectNameEXT(device, &local_name_info);
6071 }
6072
SetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)6073 VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectTagEXT(
6074 VkDevice device,
6075 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
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 "vkSetDebugUtilsObjectTagEXT: Invalid device "
6080 "[VUID-vkSetDebugUtilsObjectTagEXT-device-parameter]");
6081 abort(); /* Intentionally fail so user can correct issue. */
6082 }
6083 VkDebugUtilsObjectTagInfoEXT local_tag_info;
6084 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
6085 // If this is a physical device, we have to replace it with the proper one for the next call.
6086 if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6087 struct loader_physical_device_tramp *phys_dev_tramp = (struct loader_physical_device_tramp *)(uintptr_t)pTagInfo->objectHandle;
6088 local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_tramp->phys_dev;
6089 }
6090 if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6091 struct loader_instance* instance = (struct loader_instance *)(uintptr_t)pTagInfo->objectHandle;
6092 local_tag_info.objectHandle = (uint64_t)(uintptr_t)instance->instance;
6093 }
6094 if (disp->SetDebugUtilsObjectTagEXT != NULL) {
6095 return disp->SetDebugUtilsObjectTagEXT(device, &local_tag_info);
6096 } else {
6097 return VK_SUCCESS;
6098 }
6099 }
6100
terminator_SetDebugUtilsObjectTagEXT(VkDevice device,const VkDebugUtilsObjectTagInfoEXT * pTagInfo)6101 VKAPI_ATTR VkResult VKAPI_CALL terminator_SetDebugUtilsObjectTagEXT(
6102 VkDevice device,
6103 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
6104 struct loader_device *dev;
6105 struct loader_icd_term *icd_term = loader_get_icd_and_device(device, &dev);
6106 if (NULL == icd_term || NULL == dev) {
6107 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "SetDebugUtilsObjectTagEXT: Invalid device handle");
6108 abort(); /* Intentionally fail so user can correct issue. */
6109 }
6110 VkDebugUtilsObjectTagInfoEXT local_tag_info;
6111 memcpy(&local_tag_info, pTagInfo, sizeof(VkDebugUtilsObjectTagInfoEXT));
6112 // If this is a physical device, we have to replace it with the proper one for the next call.
6113 if (pTagInfo->objectType == VK_OBJECT_TYPE_PHYSICAL_DEVICE) {
6114 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)(uintptr_t)pTagInfo->objectHandle;
6115 local_tag_info.objectHandle = (uint64_t)(uintptr_t)phys_dev_term->phys_dev;
6116 // 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.
6117 } else if (pTagInfo->objectType == VK_OBJECT_TYPE_SURFACE_KHR) {
6118 if (NULL != dev && NULL != dev->loader_dispatch.core_dispatch.CreateSwapchainKHR) {
6119 VkIcdSurface *icd_surface = (VkIcdSurface *)(uintptr_t)pTagInfo->objectHandle;
6120 if (NULL != icd_term->surface_list.list && icd_term->surface_list.capacity > icd_surface->surface_index * sizeof(VkSurfaceKHR)
6121 && icd_term->surface_list.list[icd_surface->surface_index]) {
6122 local_tag_info.objectHandle = (uint64_t)icd_term->surface_list.list[icd_surface->surface_index];
6123 }
6124 }
6125 // If this is an instance we have to replace it with the proper one for the next call.
6126 } else if (pTagInfo->objectType == VK_OBJECT_TYPE_INSTANCE) {
6127 local_tag_info.objectHandle = (uint64_t)(uintptr_t)icd_term->instance;
6128 }
6129 // Exit early if the driver does not support the function - this can happen as a layer or the loader itself supports
6130 // debug utils but the driver does not.
6131 if (NULL == dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT)
6132 return VK_SUCCESS;
6133 return dev->loader_dispatch.extension_terminator_dispatch.SetDebugUtilsObjectTagEXT(device, &local_tag_info);
6134 }
6135
QueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)6136 VKAPI_ATTR void VKAPI_CALL QueueBeginDebugUtilsLabelEXT(
6137 VkQueue queue,
6138 const VkDebugUtilsLabelEXT* pLabelInfo) {
6139 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6140 if (NULL == disp) {
6141 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6142 "vkQueueBeginDebugUtilsLabelEXT: Invalid queue "
6143 "[VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter]");
6144 abort(); /* Intentionally fail so user can correct issue. */
6145 }
6146 if (disp->QueueBeginDebugUtilsLabelEXT != NULL) {
6147 disp->QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
6148 }
6149 }
6150
terminator_QueueBeginDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)6151 VKAPI_ATTR void VKAPI_CALL terminator_QueueBeginDebugUtilsLabelEXT(
6152 VkQueue queue,
6153 const VkDebugUtilsLabelEXT* pLabelInfo) {
6154 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6155 if (NULL == dispatch_table) {
6156 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6157 abort(); /* Intentionally fail so user can correct issue. */
6158 }
6159 // Only call down if the device supports the function
6160 if (NULL != dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT)
6161 dispatch_table->extension_terminator_dispatch.QueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
6162 }
6163
QueueEndDebugUtilsLabelEXT(VkQueue queue)6164 VKAPI_ATTR void VKAPI_CALL QueueEndDebugUtilsLabelEXT(
6165 VkQueue queue) {
6166 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6167 if (NULL == disp) {
6168 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6169 "vkQueueEndDebugUtilsLabelEXT: Invalid queue "
6170 "[VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter]");
6171 abort(); /* Intentionally fail so user can correct issue. */
6172 }
6173 if (disp->QueueEndDebugUtilsLabelEXT != NULL) {
6174 disp->QueueEndDebugUtilsLabelEXT(queue);
6175 }
6176 }
6177
terminator_QueueEndDebugUtilsLabelEXT(VkQueue queue)6178 VKAPI_ATTR void VKAPI_CALL terminator_QueueEndDebugUtilsLabelEXT(
6179 VkQueue queue) {
6180 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6181 if (NULL == dispatch_table) {
6182 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6183 abort(); /* Intentionally fail so user can correct issue. */
6184 }
6185 // Only call down if the device supports the function
6186 if (NULL != dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT)
6187 dispatch_table->extension_terminator_dispatch.QueueEndDebugUtilsLabelEXT(queue);
6188 }
6189
QueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)6190 VKAPI_ATTR void VKAPI_CALL QueueInsertDebugUtilsLabelEXT(
6191 VkQueue queue,
6192 const VkDebugUtilsLabelEXT* pLabelInfo) {
6193 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
6194 if (NULL == disp) {
6195 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6196 "vkQueueInsertDebugUtilsLabelEXT: Invalid queue "
6197 "[VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter]");
6198 abort(); /* Intentionally fail so user can correct issue. */
6199 }
6200 if (disp->QueueInsertDebugUtilsLabelEXT != NULL) {
6201 disp->QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
6202 }
6203 }
6204
terminator_QueueInsertDebugUtilsLabelEXT(VkQueue queue,const VkDebugUtilsLabelEXT * pLabelInfo)6205 VKAPI_ATTR void VKAPI_CALL terminator_QueueInsertDebugUtilsLabelEXT(
6206 VkQueue queue,
6207 const VkDebugUtilsLabelEXT* pLabelInfo) {
6208 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(queue);
6209 if (NULL == dispatch_table) {
6210 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6211 abort(); /* Intentionally fail so user can correct issue. */
6212 }
6213 // Only call down if the device supports the function
6214 if (NULL != dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT)
6215 dispatch_table->extension_terminator_dispatch.QueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
6216 }
6217
CmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)6218 VKAPI_ATTR void VKAPI_CALL CmdBeginDebugUtilsLabelEXT(
6219 VkCommandBuffer commandBuffer,
6220 const VkDebugUtilsLabelEXT* pLabelInfo) {
6221 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6222 if (NULL == disp) {
6223 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6224 "vkCmdBeginDebugUtilsLabelEXT: Invalid commandBuffer "
6225 "[VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter]");
6226 abort(); /* Intentionally fail so user can correct issue. */
6227 }
6228 if (disp->CmdBeginDebugUtilsLabelEXT != NULL) {
6229 disp->CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6230 }
6231 }
6232
terminator_CmdBeginDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)6233 VKAPI_ATTR void VKAPI_CALL terminator_CmdBeginDebugUtilsLabelEXT(
6234 VkCommandBuffer commandBuffer,
6235 const VkDebugUtilsLabelEXT* pLabelInfo) {
6236 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6237 if (NULL == dispatch_table) {
6238 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6239 abort(); /* Intentionally fail so user can correct issue. */
6240 }
6241 // Only call down if the device supports the function
6242 if (NULL != dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT)
6243 dispatch_table->extension_terminator_dispatch.CmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6244 }
6245
CmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)6246 VKAPI_ATTR void VKAPI_CALL CmdEndDebugUtilsLabelEXT(
6247 VkCommandBuffer commandBuffer) {
6248 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6249 if (NULL == disp) {
6250 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6251 "vkCmdEndDebugUtilsLabelEXT: Invalid commandBuffer "
6252 "[VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter]");
6253 abort(); /* Intentionally fail so user can correct issue. */
6254 }
6255 if (disp->CmdEndDebugUtilsLabelEXT != NULL) {
6256 disp->CmdEndDebugUtilsLabelEXT(commandBuffer);
6257 }
6258 }
6259
terminator_CmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer)6260 VKAPI_ATTR void VKAPI_CALL terminator_CmdEndDebugUtilsLabelEXT(
6261 VkCommandBuffer commandBuffer) {
6262 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6263 if (NULL == dispatch_table) {
6264 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6265 abort(); /* Intentionally fail so user can correct issue. */
6266 }
6267 // Only call down if the device supports the function
6268 if (NULL != dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT)
6269 dispatch_table->extension_terminator_dispatch.CmdEndDebugUtilsLabelEXT(commandBuffer);
6270 }
6271
CmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)6272 VKAPI_ATTR void VKAPI_CALL CmdInsertDebugUtilsLabelEXT(
6273 VkCommandBuffer commandBuffer,
6274 const VkDebugUtilsLabelEXT* pLabelInfo) {
6275 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6276 if (NULL == disp) {
6277 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6278 "vkCmdInsertDebugUtilsLabelEXT: Invalid commandBuffer "
6279 "[VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter]");
6280 abort(); /* Intentionally fail so user can correct issue. */
6281 }
6282 if (disp->CmdInsertDebugUtilsLabelEXT != NULL) {
6283 disp->CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6284 }
6285 }
6286
terminator_CmdInsertDebugUtilsLabelEXT(VkCommandBuffer commandBuffer,const VkDebugUtilsLabelEXT * pLabelInfo)6287 VKAPI_ATTR void VKAPI_CALL terminator_CmdInsertDebugUtilsLabelEXT(
6288 VkCommandBuffer commandBuffer,
6289 const VkDebugUtilsLabelEXT* pLabelInfo) {
6290 struct loader_dev_dispatch_table *dispatch_table = loader_get_dev_dispatch(commandBuffer);
6291 if (NULL == dispatch_table) {
6292 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0, "VK_EXT_debug_utils: Invalid device handle");
6293 abort(); /* Intentionally fail so user can correct issue. */
6294 }
6295 // Only call down if the device supports the function
6296 if (NULL != dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT)
6297 dispatch_table->extension_terminator_dispatch.CmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
6298 }
6299
6300
6301 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension trampoline/terminators
6302
6303 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
GetAndroidHardwareBufferPropertiesANDROID(VkDevice device,const struct AHardwareBuffer * buffer,VkAndroidHardwareBufferPropertiesANDROID * pProperties)6304 VKAPI_ATTR VkResult VKAPI_CALL GetAndroidHardwareBufferPropertiesANDROID(
6305 VkDevice device,
6306 const struct AHardwareBuffer* buffer,
6307 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
6308 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6309 if (NULL == disp) {
6310 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6311 "vkGetAndroidHardwareBufferPropertiesANDROID: Invalid device "
6312 "[VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter]");
6313 abort(); /* Intentionally fail so user can correct issue. */
6314 }
6315 return disp->GetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
6316 }
6317
6318 #endif // VK_USE_PLATFORM_ANDROID_KHR
6319 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
GetMemoryAndroidHardwareBufferANDROID(VkDevice device,const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer)6320 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryAndroidHardwareBufferANDROID(
6321 VkDevice device,
6322 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
6323 struct AHardwareBuffer** pBuffer) {
6324 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6325 if (NULL == disp) {
6326 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6327 "vkGetMemoryAndroidHardwareBufferANDROID: Invalid device "
6328 "[VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter]");
6329 abort(); /* Intentionally fail so user can correct issue. */
6330 }
6331 return disp->GetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
6332 }
6333
6334 #endif // VK_USE_PLATFORM_ANDROID_KHR
6335
6336 // ---- VK_AMDX_shader_enqueue extension trampoline/terminators
6337
6338 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CreateExecutionGraphPipelinesAMDX(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkExecutionGraphPipelineCreateInfoAMDX * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)6339 VKAPI_ATTR VkResult VKAPI_CALL CreateExecutionGraphPipelinesAMDX(
6340 VkDevice device,
6341 VkPipelineCache pipelineCache,
6342 uint32_t createInfoCount,
6343 const VkExecutionGraphPipelineCreateInfoAMDX* pCreateInfos,
6344 const VkAllocationCallbacks* pAllocator,
6345 VkPipeline* pPipelines) {
6346 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6347 if (NULL == disp) {
6348 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6349 "vkCreateExecutionGraphPipelinesAMDX: Invalid device "
6350 "[VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter]");
6351 abort(); /* Intentionally fail so user can correct issue. */
6352 }
6353 return disp->CreateExecutionGraphPipelinesAMDX(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
6354 }
6355
6356 #endif // VK_ENABLE_BETA_EXTENSIONS
6357 #if defined(VK_ENABLE_BETA_EXTENSIONS)
GetExecutionGraphPipelineScratchSizeAMDX(VkDevice device,VkPipeline executionGraph,VkExecutionGraphPipelineScratchSizeAMDX * pSizeInfo)6358 VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineScratchSizeAMDX(
6359 VkDevice device,
6360 VkPipeline executionGraph,
6361 VkExecutionGraphPipelineScratchSizeAMDX* pSizeInfo) {
6362 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6363 if (NULL == disp) {
6364 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6365 "vkGetExecutionGraphPipelineScratchSizeAMDX: Invalid device "
6366 "[VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter]");
6367 abort(); /* Intentionally fail so user can correct issue. */
6368 }
6369 return disp->GetExecutionGraphPipelineScratchSizeAMDX(device, executionGraph, pSizeInfo);
6370 }
6371
6372 #endif // VK_ENABLE_BETA_EXTENSIONS
6373 #if defined(VK_ENABLE_BETA_EXTENSIONS)
GetExecutionGraphPipelineNodeIndexAMDX(VkDevice device,VkPipeline executionGraph,const VkPipelineShaderStageNodeCreateInfoAMDX * pNodeInfo,uint32_t * pNodeIndex)6374 VKAPI_ATTR VkResult VKAPI_CALL GetExecutionGraphPipelineNodeIndexAMDX(
6375 VkDevice device,
6376 VkPipeline executionGraph,
6377 const VkPipelineShaderStageNodeCreateInfoAMDX* pNodeInfo,
6378 uint32_t* pNodeIndex) {
6379 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6380 if (NULL == disp) {
6381 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6382 "vkGetExecutionGraphPipelineNodeIndexAMDX: Invalid device "
6383 "[VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter]");
6384 abort(); /* Intentionally fail so user can correct issue. */
6385 }
6386 return disp->GetExecutionGraphPipelineNodeIndexAMDX(device, executionGraph, pNodeInfo, pNodeIndex);
6387 }
6388
6389 #endif // VK_ENABLE_BETA_EXTENSIONS
6390 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CmdInitializeGraphScratchMemoryAMDX(VkCommandBuffer commandBuffer,VkPipeline executionGraph,VkDeviceAddress scratch,VkDeviceSize scratchSize)6391 VKAPI_ATTR void VKAPI_CALL CmdInitializeGraphScratchMemoryAMDX(
6392 VkCommandBuffer commandBuffer,
6393 VkPipeline executionGraph,
6394 VkDeviceAddress scratch,
6395 VkDeviceSize scratchSize) {
6396 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6397 if (NULL == disp) {
6398 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6399 "vkCmdInitializeGraphScratchMemoryAMDX: Invalid commandBuffer "
6400 "[VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter]");
6401 abort(); /* Intentionally fail so user can correct issue. */
6402 }
6403 disp->CmdInitializeGraphScratchMemoryAMDX(commandBuffer, executionGraph, scratch, scratchSize);
6404 }
6405
6406 #endif // VK_ENABLE_BETA_EXTENSIONS
6407 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CmdDispatchGraphAMDX(VkCommandBuffer commandBuffer,VkDeviceAddress scratch,VkDeviceSize scratchSize,const VkDispatchGraphCountInfoAMDX * pCountInfo)6408 VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphAMDX(
6409 VkCommandBuffer commandBuffer,
6410 VkDeviceAddress scratch,
6411 VkDeviceSize scratchSize,
6412 const VkDispatchGraphCountInfoAMDX* pCountInfo) {
6413 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6414 if (NULL == disp) {
6415 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6416 "vkCmdDispatchGraphAMDX: Invalid commandBuffer "
6417 "[VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter]");
6418 abort(); /* Intentionally fail so user can correct issue. */
6419 }
6420 disp->CmdDispatchGraphAMDX(commandBuffer, scratch, scratchSize, pCountInfo);
6421 }
6422
6423 #endif // VK_ENABLE_BETA_EXTENSIONS
6424 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CmdDispatchGraphIndirectAMDX(VkCommandBuffer commandBuffer,VkDeviceAddress scratch,VkDeviceSize scratchSize,const VkDispatchGraphCountInfoAMDX * pCountInfo)6425 VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectAMDX(
6426 VkCommandBuffer commandBuffer,
6427 VkDeviceAddress scratch,
6428 VkDeviceSize scratchSize,
6429 const VkDispatchGraphCountInfoAMDX* pCountInfo) {
6430 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6431 if (NULL == disp) {
6432 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6433 "vkCmdDispatchGraphIndirectAMDX: Invalid commandBuffer "
6434 "[VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter]");
6435 abort(); /* Intentionally fail so user can correct issue. */
6436 }
6437 disp->CmdDispatchGraphIndirectAMDX(commandBuffer, scratch, scratchSize, pCountInfo);
6438 }
6439
6440 #endif // VK_ENABLE_BETA_EXTENSIONS
6441 #if defined(VK_ENABLE_BETA_EXTENSIONS)
CmdDispatchGraphIndirectCountAMDX(VkCommandBuffer commandBuffer,VkDeviceAddress scratch,VkDeviceSize scratchSize,VkDeviceAddress countInfo)6442 VKAPI_ATTR void VKAPI_CALL CmdDispatchGraphIndirectCountAMDX(
6443 VkCommandBuffer commandBuffer,
6444 VkDeviceAddress scratch,
6445 VkDeviceSize scratchSize,
6446 VkDeviceAddress countInfo) {
6447 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6448 if (NULL == disp) {
6449 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6450 "vkCmdDispatchGraphIndirectCountAMDX: Invalid commandBuffer "
6451 "[VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter]");
6452 abort(); /* Intentionally fail so user can correct issue. */
6453 }
6454 disp->CmdDispatchGraphIndirectCountAMDX(commandBuffer, scratch, scratchSize, countInfo);
6455 }
6456
6457 #endif // VK_ENABLE_BETA_EXTENSIONS
6458
6459 // ---- VK_EXT_sample_locations extension trampoline/terminators
6460
CmdSetSampleLocationsEXT(VkCommandBuffer commandBuffer,const VkSampleLocationsInfoEXT * pSampleLocationsInfo)6461 VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEXT(
6462 VkCommandBuffer commandBuffer,
6463 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
6464 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6465 if (NULL == disp) {
6466 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6467 "vkCmdSetSampleLocationsEXT: Invalid commandBuffer "
6468 "[VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter]");
6469 abort(); /* Intentionally fail so user can correct issue. */
6470 }
6471 disp->CmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
6472 }
6473
GetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties)6474 VKAPI_ATTR void VKAPI_CALL GetPhysicalDeviceMultisamplePropertiesEXT(
6475 VkPhysicalDevice physicalDevice,
6476 VkSampleCountFlagBits samples,
6477 VkMultisamplePropertiesEXT* pMultisampleProperties) {
6478 const VkLayerInstanceDispatchTable *disp;
6479 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6480 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6481 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6482 "vkGetPhysicalDeviceMultisamplePropertiesEXT: Invalid physicalDevice "
6483 "[VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter]");
6484 abort(); /* Intentionally fail so user can correct issue. */
6485 }
6486 disp = loader_get_instance_layer_dispatch(physicalDevice);
6487 disp->GetPhysicalDeviceMultisamplePropertiesEXT(unwrapped_phys_dev, samples, pMultisampleProperties);
6488 }
6489
terminator_GetPhysicalDeviceMultisamplePropertiesEXT(VkPhysicalDevice physicalDevice,VkSampleCountFlagBits samples,VkMultisamplePropertiesEXT * pMultisampleProperties)6490 VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMultisamplePropertiesEXT(
6491 VkPhysicalDevice physicalDevice,
6492 VkSampleCountFlagBits samples,
6493 VkMultisamplePropertiesEXT* pMultisampleProperties) {
6494 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6495 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6496 if (NULL == icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT) {
6497 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
6498 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceMultisamplePropertiesEXT");
6499 abort(); /* Intentionally fail so user can correct issue. */
6500 }
6501 icd_term->dispatch.GetPhysicalDeviceMultisamplePropertiesEXT(phys_dev_term->phys_dev, samples, pMultisampleProperties);
6502 }
6503
6504
6505 // ---- VK_EXT_image_drm_format_modifier extension trampoline/terminators
6506
GetImageDrmFormatModifierPropertiesEXT(VkDevice device,VkImage image,VkImageDrmFormatModifierPropertiesEXT * pProperties)6507 VKAPI_ATTR VkResult VKAPI_CALL GetImageDrmFormatModifierPropertiesEXT(
6508 VkDevice device,
6509 VkImage image,
6510 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
6511 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6512 if (NULL == disp) {
6513 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6514 "vkGetImageDrmFormatModifierPropertiesEXT: Invalid device "
6515 "[VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter]");
6516 abort(); /* Intentionally fail so user can correct issue. */
6517 }
6518 return disp->GetImageDrmFormatModifierPropertiesEXT(device, image, pProperties);
6519 }
6520
6521
6522 // ---- VK_EXT_validation_cache extension trampoline/terminators
6523
CreateValidationCacheEXT(VkDevice device,const VkValidationCacheCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkValidationCacheEXT * pValidationCache)6524 VKAPI_ATTR VkResult VKAPI_CALL CreateValidationCacheEXT(
6525 VkDevice device,
6526 const VkValidationCacheCreateInfoEXT* pCreateInfo,
6527 const VkAllocationCallbacks* pAllocator,
6528 VkValidationCacheEXT* pValidationCache) {
6529 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6530 if (NULL == disp) {
6531 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6532 "vkCreateValidationCacheEXT: Invalid device "
6533 "[VUID-vkCreateValidationCacheEXT-device-parameter]");
6534 abort(); /* Intentionally fail so user can correct issue. */
6535 }
6536 return disp->CreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
6537 }
6538
DestroyValidationCacheEXT(VkDevice device,VkValidationCacheEXT validationCache,const VkAllocationCallbacks * pAllocator)6539 VKAPI_ATTR void VKAPI_CALL DestroyValidationCacheEXT(
6540 VkDevice device,
6541 VkValidationCacheEXT validationCache,
6542 const VkAllocationCallbacks* pAllocator) {
6543 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6544 if (NULL == disp) {
6545 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6546 "vkDestroyValidationCacheEXT: Invalid device "
6547 "[VUID-vkDestroyValidationCacheEXT-device-parameter]");
6548 abort(); /* Intentionally fail so user can correct issue. */
6549 }
6550 disp->DestroyValidationCacheEXT(device, validationCache, pAllocator);
6551 }
6552
MergeValidationCachesEXT(VkDevice device,VkValidationCacheEXT dstCache,uint32_t srcCacheCount,const VkValidationCacheEXT * pSrcCaches)6553 VKAPI_ATTR VkResult VKAPI_CALL MergeValidationCachesEXT(
6554 VkDevice device,
6555 VkValidationCacheEXT dstCache,
6556 uint32_t srcCacheCount,
6557 const VkValidationCacheEXT* pSrcCaches) {
6558 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6559 if (NULL == disp) {
6560 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6561 "vkMergeValidationCachesEXT: Invalid device "
6562 "[VUID-vkMergeValidationCachesEXT-device-parameter]");
6563 abort(); /* Intentionally fail so user can correct issue. */
6564 }
6565 return disp->MergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
6566 }
6567
GetValidationCacheDataEXT(VkDevice device,VkValidationCacheEXT validationCache,size_t * pDataSize,void * pData)6568 VKAPI_ATTR VkResult VKAPI_CALL GetValidationCacheDataEXT(
6569 VkDevice device,
6570 VkValidationCacheEXT validationCache,
6571 size_t* pDataSize,
6572 void* pData) {
6573 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6574 if (NULL == disp) {
6575 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6576 "vkGetValidationCacheDataEXT: Invalid device "
6577 "[VUID-vkGetValidationCacheDataEXT-device-parameter]");
6578 abort(); /* Intentionally fail so user can correct issue. */
6579 }
6580 return disp->GetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
6581 }
6582
6583
6584 // ---- VK_NV_shading_rate_image extension trampoline/terminators
6585
CmdBindShadingRateImageNV(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)6586 VKAPI_ATTR void VKAPI_CALL CmdBindShadingRateImageNV(
6587 VkCommandBuffer commandBuffer,
6588 VkImageView imageView,
6589 VkImageLayout imageLayout) {
6590 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6591 if (NULL == disp) {
6592 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6593 "vkCmdBindShadingRateImageNV: Invalid commandBuffer "
6594 "[VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter]");
6595 abort(); /* Intentionally fail so user can correct issue. */
6596 }
6597 disp->CmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout);
6598 }
6599
CmdSetViewportShadingRatePaletteNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkShadingRatePaletteNV * pShadingRatePalettes)6600 VKAPI_ATTR void VKAPI_CALL CmdSetViewportShadingRatePaletteNV(
6601 VkCommandBuffer commandBuffer,
6602 uint32_t firstViewport,
6603 uint32_t viewportCount,
6604 const VkShadingRatePaletteNV* pShadingRatePalettes) {
6605 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6606 if (NULL == disp) {
6607 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6608 "vkCmdSetViewportShadingRatePaletteNV: Invalid commandBuffer "
6609 "[VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter]");
6610 abort(); /* Intentionally fail so user can correct issue. */
6611 }
6612 disp->CmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes);
6613 }
6614
CmdSetCoarseSampleOrderNV(VkCommandBuffer commandBuffer,VkCoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VkCoarseSampleOrderCustomNV * pCustomSampleOrders)6615 VKAPI_ATTR void VKAPI_CALL CmdSetCoarseSampleOrderNV(
6616 VkCommandBuffer commandBuffer,
6617 VkCoarseSampleOrderTypeNV sampleOrderType,
6618 uint32_t customSampleOrderCount,
6619 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
6620 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6621 if (NULL == disp) {
6622 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6623 "vkCmdSetCoarseSampleOrderNV: Invalid commandBuffer "
6624 "[VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter]");
6625 abort(); /* Intentionally fail so user can correct issue. */
6626 }
6627 disp->CmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders);
6628 }
6629
6630
6631 // ---- VK_NV_ray_tracing extension trampoline/terminators
6632
CreateAccelerationStructureNV(VkDevice device,const VkAccelerationStructureCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureNV * pAccelerationStructure)6633 VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureNV(
6634 VkDevice device,
6635 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
6636 const VkAllocationCallbacks* pAllocator,
6637 VkAccelerationStructureNV* pAccelerationStructure) {
6638 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6639 if (NULL == disp) {
6640 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6641 "vkCreateAccelerationStructureNV: Invalid device "
6642 "[VUID-vkCreateAccelerationStructureNV-device-parameter]");
6643 abort(); /* Intentionally fail so user can correct issue. */
6644 }
6645 return disp->CreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
6646 }
6647
DestroyAccelerationStructureNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,const VkAllocationCallbacks * pAllocator)6648 VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureNV(
6649 VkDevice device,
6650 VkAccelerationStructureNV accelerationStructure,
6651 const VkAllocationCallbacks* pAllocator) {
6652 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6653 if (NULL == disp) {
6654 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6655 "vkDestroyAccelerationStructureNV: Invalid device "
6656 "[VUID-vkDestroyAccelerationStructureNV-device-parameter]");
6657 abort(); /* Intentionally fail so user can correct issue. */
6658 }
6659 disp->DestroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
6660 }
6661
GetAccelerationStructureMemoryRequirementsNV(VkDevice device,const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2KHR * pMemoryRequirements)6662 VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureMemoryRequirementsNV(
6663 VkDevice device,
6664 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
6665 VkMemoryRequirements2KHR* pMemoryRequirements) {
6666 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6667 if (NULL == disp) {
6668 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6669 "vkGetAccelerationStructureMemoryRequirementsNV: Invalid device "
6670 "[VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter]");
6671 abort(); /* Intentionally fail so user can correct issue. */
6672 }
6673 disp->GetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
6674 }
6675
BindAccelerationStructureMemoryNV(VkDevice device,uint32_t bindInfoCount,const VkBindAccelerationStructureMemoryInfoNV * pBindInfos)6676 VKAPI_ATTR VkResult VKAPI_CALL BindAccelerationStructureMemoryNV(
6677 VkDevice device,
6678 uint32_t bindInfoCount,
6679 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
6680 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6681 if (NULL == disp) {
6682 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6683 "vkBindAccelerationStructureMemoryNV: Invalid device "
6684 "[VUID-vkBindAccelerationStructureMemoryNV-device-parameter]");
6685 abort(); /* Intentionally fail so user can correct issue. */
6686 }
6687 return disp->BindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
6688 }
6689
CmdBuildAccelerationStructureNV(VkCommandBuffer commandBuffer,const VkAccelerationStructureInfoNV * pInfo,VkBuffer instanceData,VkDeviceSize instanceOffset,VkBool32 update,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkBuffer scratch,VkDeviceSize scratchOffset)6690 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructureNV(
6691 VkCommandBuffer commandBuffer,
6692 const VkAccelerationStructureInfoNV* pInfo,
6693 VkBuffer instanceData,
6694 VkDeviceSize instanceOffset,
6695 VkBool32 update,
6696 VkAccelerationStructureNV dst,
6697 VkAccelerationStructureNV src,
6698 VkBuffer scratch,
6699 VkDeviceSize scratchOffset) {
6700 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6701 if (NULL == disp) {
6702 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6703 "vkCmdBuildAccelerationStructureNV: Invalid commandBuffer "
6704 "[VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter]");
6705 abort(); /* Intentionally fail so user can correct issue. */
6706 }
6707 disp->CmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
6708 }
6709
CmdCopyAccelerationStructureNV(VkCommandBuffer commandBuffer,VkAccelerationStructureNV dst,VkAccelerationStructureNV src,VkCopyAccelerationStructureModeKHR mode)6710 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureNV(
6711 VkCommandBuffer commandBuffer,
6712 VkAccelerationStructureNV dst,
6713 VkAccelerationStructureNV src,
6714 VkCopyAccelerationStructureModeKHR mode) {
6715 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6716 if (NULL == disp) {
6717 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6718 "vkCmdCopyAccelerationStructureNV: Invalid commandBuffer "
6719 "[VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter]");
6720 abort(); /* Intentionally fail so user can correct issue. */
6721 }
6722 disp->CmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
6723 }
6724
CmdTraceRaysNV(VkCommandBuffer commandBuffer,VkBuffer raygenShaderBindingTableBuffer,VkDeviceSize raygenShaderBindingOffset,VkBuffer missShaderBindingTableBuffer,VkDeviceSize missShaderBindingOffset,VkDeviceSize missShaderBindingStride,VkBuffer hitShaderBindingTableBuffer,VkDeviceSize hitShaderBindingOffset,VkDeviceSize hitShaderBindingStride,VkBuffer callableShaderBindingTableBuffer,VkDeviceSize callableShaderBindingOffset,VkDeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth)6725 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysNV(
6726 VkCommandBuffer commandBuffer,
6727 VkBuffer raygenShaderBindingTableBuffer,
6728 VkDeviceSize raygenShaderBindingOffset,
6729 VkBuffer missShaderBindingTableBuffer,
6730 VkDeviceSize missShaderBindingOffset,
6731 VkDeviceSize missShaderBindingStride,
6732 VkBuffer hitShaderBindingTableBuffer,
6733 VkDeviceSize hitShaderBindingOffset,
6734 VkDeviceSize hitShaderBindingStride,
6735 VkBuffer callableShaderBindingTableBuffer,
6736 VkDeviceSize callableShaderBindingOffset,
6737 VkDeviceSize callableShaderBindingStride,
6738 uint32_t width,
6739 uint32_t height,
6740 uint32_t depth) {
6741 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6742 if (NULL == disp) {
6743 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6744 "vkCmdTraceRaysNV: Invalid commandBuffer "
6745 "[VUID-vkCmdTraceRaysNV-commandBuffer-parameter]");
6746 abort(); /* Intentionally fail so user can correct issue. */
6747 }
6748 disp->CmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth);
6749 }
6750
CreateRayTracingPipelinesNV(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoNV * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)6751 VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesNV(
6752 VkDevice device,
6753 VkPipelineCache pipelineCache,
6754 uint32_t createInfoCount,
6755 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
6756 const VkAllocationCallbacks* pAllocator,
6757 VkPipeline* pPipelines) {
6758 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6759 if (NULL == disp) {
6760 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6761 "vkCreateRayTracingPipelinesNV: Invalid device "
6762 "[VUID-vkCreateRayTracingPipelinesNV-device-parameter]");
6763 abort(); /* Intentionally fail so user can correct issue. */
6764 }
6765 return disp->CreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
6766 }
6767
GetRayTracingShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)6768 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR(
6769 VkDevice device,
6770 VkPipeline pipeline,
6771 uint32_t firstGroup,
6772 uint32_t groupCount,
6773 size_t dataSize,
6774 void* pData) {
6775 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6776 if (NULL == disp) {
6777 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6778 "vkGetRayTracingShaderGroupHandlesKHR: Invalid device "
6779 "[VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter]");
6780 abort(); /* Intentionally fail so user can correct issue. */
6781 }
6782 return disp->GetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
6783 }
6784
GetRayTracingShaderGroupHandlesNV(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)6785 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV(
6786 VkDevice device,
6787 VkPipeline pipeline,
6788 uint32_t firstGroup,
6789 uint32_t groupCount,
6790 size_t dataSize,
6791 void* pData) {
6792 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6793 if (NULL == disp) {
6794 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6795 "vkGetRayTracingShaderGroupHandlesNV: Invalid device "
6796 "[VUID-vkGetRayTracingShaderGroupHandlesNV-device-parameter]");
6797 abort(); /* Intentionally fail so user can correct issue. */
6798 }
6799 return disp->GetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData);
6800 }
6801
GetAccelerationStructureHandleNV(VkDevice device,VkAccelerationStructureNV accelerationStructure,size_t dataSize,void * pData)6802 VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureHandleNV(
6803 VkDevice device,
6804 VkAccelerationStructureNV accelerationStructure,
6805 size_t dataSize,
6806 void* pData) {
6807 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6808 if (NULL == disp) {
6809 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6810 "vkGetAccelerationStructureHandleNV: Invalid device "
6811 "[VUID-vkGetAccelerationStructureHandleNV-device-parameter]");
6812 abort(); /* Intentionally fail so user can correct issue. */
6813 }
6814 return disp->GetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
6815 }
6816
CmdWriteAccelerationStructuresPropertiesNV(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureNV * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)6817 VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesNV(
6818 VkCommandBuffer commandBuffer,
6819 uint32_t accelerationStructureCount,
6820 const VkAccelerationStructureNV* pAccelerationStructures,
6821 VkQueryType queryType,
6822 VkQueryPool queryPool,
6823 uint32_t firstQuery) {
6824 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6825 if (NULL == disp) {
6826 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6827 "vkCmdWriteAccelerationStructuresPropertiesNV: Invalid commandBuffer "
6828 "[VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter]");
6829 abort(); /* Intentionally fail so user can correct issue. */
6830 }
6831 disp->CmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
6832 }
6833
CompileDeferredNV(VkDevice device,VkPipeline pipeline,uint32_t shader)6834 VKAPI_ATTR VkResult VKAPI_CALL CompileDeferredNV(
6835 VkDevice device,
6836 VkPipeline pipeline,
6837 uint32_t shader) {
6838 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6839 if (NULL == disp) {
6840 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6841 "vkCompileDeferredNV: Invalid device "
6842 "[VUID-vkCompileDeferredNV-device-parameter]");
6843 abort(); /* Intentionally fail so user can correct issue. */
6844 }
6845 return disp->CompileDeferredNV(device, pipeline, shader);
6846 }
6847
6848
6849 // ---- VK_EXT_external_memory_host extension trampoline/terminators
6850
GetMemoryHostPointerPropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties)6851 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryHostPointerPropertiesEXT(
6852 VkDevice device,
6853 VkExternalMemoryHandleTypeFlagBits handleType,
6854 const void* pHostPointer,
6855 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
6856 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6857 if (NULL == disp) {
6858 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6859 "vkGetMemoryHostPointerPropertiesEXT: Invalid device "
6860 "[VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter]");
6861 abort(); /* Intentionally fail so user can correct issue. */
6862 }
6863 return disp->GetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
6864 }
6865
6866
6867 // ---- VK_AMD_buffer_marker extension trampoline/terminators
6868
CmdWriteBufferMarkerAMD(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)6869 VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarkerAMD(
6870 VkCommandBuffer commandBuffer,
6871 VkPipelineStageFlagBits pipelineStage,
6872 VkBuffer dstBuffer,
6873 VkDeviceSize dstOffset,
6874 uint32_t marker) {
6875 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6876 if (NULL == disp) {
6877 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6878 "vkCmdWriteBufferMarkerAMD: Invalid commandBuffer "
6879 "[VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter]");
6880 abort(); /* Intentionally fail so user can correct issue. */
6881 }
6882 disp->CmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
6883 }
6884
CmdWriteBufferMarker2AMD(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkBuffer dstBuffer,VkDeviceSize dstOffset,uint32_t marker)6885 VKAPI_ATTR void VKAPI_CALL CmdWriteBufferMarker2AMD(
6886 VkCommandBuffer commandBuffer,
6887 VkPipelineStageFlags2 stage,
6888 VkBuffer dstBuffer,
6889 VkDeviceSize dstOffset,
6890 uint32_t marker) {
6891 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6892 if (NULL == disp) {
6893 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6894 "vkCmdWriteBufferMarker2AMD: Invalid commandBuffer "
6895 "[VUID-vkCmdWriteBufferMarker2AMD-commandBuffer-parameter]");
6896 abort(); /* Intentionally fail so user can correct issue. */
6897 }
6898 disp->CmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker);
6899 }
6900
6901
6902 // ---- VK_EXT_calibrated_timestamps extension trampoline/terminators
6903
GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainKHR * pTimeDomains)6904 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCalibrateableTimeDomainsEXT(
6905 VkPhysicalDevice physicalDevice,
6906 uint32_t* pTimeDomainCount,
6907 VkTimeDomainKHR* pTimeDomains) {
6908 const VkLayerInstanceDispatchTable *disp;
6909 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
6910 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
6911 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6912 "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT: Invalid physicalDevice "
6913 "[VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter]");
6914 abort(); /* Intentionally fail so user can correct issue. */
6915 }
6916 disp = loader_get_instance_layer_dispatch(physicalDevice);
6917 return disp->GetPhysicalDeviceCalibrateableTimeDomainsEXT(unwrapped_phys_dev, pTimeDomainCount, pTimeDomains);
6918 }
6919
terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(VkPhysicalDevice physicalDevice,uint32_t * pTimeDomainCount,VkTimeDomainKHR * pTimeDomains)6920 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT(
6921 VkPhysicalDevice physicalDevice,
6922 uint32_t* pTimeDomainCount,
6923 VkTimeDomainKHR* pTimeDomains) {
6924 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
6925 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
6926 if (NULL == icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT) {
6927 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
6928 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCalibrateableTimeDomainsEXT");
6929 abort(); /* Intentionally fail so user can correct issue. */
6930 }
6931 return icd_term->dispatch.GetPhysicalDeviceCalibrateableTimeDomainsEXT(phys_dev_term->phys_dev, pTimeDomainCount, pTimeDomains);
6932 }
6933
GetCalibratedTimestampsEXT(VkDevice device,uint32_t timestampCount,const VkCalibratedTimestampInfoKHR * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation)6934 VKAPI_ATTR VkResult VKAPI_CALL GetCalibratedTimestampsEXT(
6935 VkDevice device,
6936 uint32_t timestampCount,
6937 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
6938 uint64_t* pTimestamps,
6939 uint64_t* pMaxDeviation) {
6940 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
6941 if (NULL == disp) {
6942 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6943 "vkGetCalibratedTimestampsEXT: Invalid device "
6944 "[VUID-vkGetCalibratedTimestampsEXT-device-parameter]");
6945 abort(); /* Intentionally fail so user can correct issue. */
6946 }
6947 return disp->GetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation);
6948 }
6949
6950
6951 // ---- VK_NV_mesh_shader extension trampoline/terminators
6952
CmdDrawMeshTasksNV(VkCommandBuffer commandBuffer,uint32_t taskCount,uint32_t firstTask)6953 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksNV(
6954 VkCommandBuffer commandBuffer,
6955 uint32_t taskCount,
6956 uint32_t firstTask) {
6957 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6958 if (NULL == disp) {
6959 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6960 "vkCmdDrawMeshTasksNV: Invalid commandBuffer "
6961 "[VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter]");
6962 abort(); /* Intentionally fail so user can correct issue. */
6963 }
6964 disp->CmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask);
6965 }
6966
CmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)6967 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectNV(
6968 VkCommandBuffer commandBuffer,
6969 VkBuffer buffer,
6970 VkDeviceSize offset,
6971 uint32_t drawCount,
6972 uint32_t stride) {
6973 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6974 if (NULL == disp) {
6975 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6976 "vkCmdDrawMeshTasksIndirectNV: Invalid commandBuffer "
6977 "[VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter]");
6978 abort(); /* Intentionally fail so user can correct issue. */
6979 }
6980 disp->CmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride);
6981 }
6982
CmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)6983 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountNV(
6984 VkCommandBuffer commandBuffer,
6985 VkBuffer buffer,
6986 VkDeviceSize offset,
6987 VkBuffer countBuffer,
6988 VkDeviceSize countBufferOffset,
6989 uint32_t maxDrawCount,
6990 uint32_t stride) {
6991 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
6992 if (NULL == disp) {
6993 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
6994 "vkCmdDrawMeshTasksIndirectCountNV: Invalid commandBuffer "
6995 "[VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter]");
6996 abort(); /* Intentionally fail so user can correct issue. */
6997 }
6998 disp->CmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
6999 }
7000
7001
7002 // ---- VK_NV_scissor_exclusive extension trampoline/terminators
7003
CmdSetExclusiveScissorEnableNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkBool32 * pExclusiveScissorEnables)7004 VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorEnableNV(
7005 VkCommandBuffer commandBuffer,
7006 uint32_t firstExclusiveScissor,
7007 uint32_t exclusiveScissorCount,
7008 const VkBool32* pExclusiveScissorEnables) {
7009 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7010 if (NULL == disp) {
7011 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7012 "vkCmdSetExclusiveScissorEnableNV: Invalid commandBuffer "
7013 "[VUID-vkCmdSetExclusiveScissorEnableNV-commandBuffer-parameter]");
7014 abort(); /* Intentionally fail so user can correct issue. */
7015 }
7016 disp->CmdSetExclusiveScissorEnableNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissorEnables);
7017 }
7018
CmdSetExclusiveScissorNV(VkCommandBuffer commandBuffer,uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VkRect2D * pExclusiveScissors)7019 VKAPI_ATTR void VKAPI_CALL CmdSetExclusiveScissorNV(
7020 VkCommandBuffer commandBuffer,
7021 uint32_t firstExclusiveScissor,
7022 uint32_t exclusiveScissorCount,
7023 const VkRect2D* pExclusiveScissors) {
7024 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7025 if (NULL == disp) {
7026 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7027 "vkCmdSetExclusiveScissorNV: Invalid commandBuffer "
7028 "[VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter]");
7029 abort(); /* Intentionally fail so user can correct issue. */
7030 }
7031 disp->CmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors);
7032 }
7033
7034
7035 // ---- VK_NV_device_diagnostic_checkpoints extension trampoline/terminators
7036
CmdSetCheckpointNV(VkCommandBuffer commandBuffer,const void * pCheckpointMarker)7037 VKAPI_ATTR void VKAPI_CALL CmdSetCheckpointNV(
7038 VkCommandBuffer commandBuffer,
7039 const void* pCheckpointMarker) {
7040 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7041 if (NULL == disp) {
7042 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7043 "vkCmdSetCheckpointNV: Invalid commandBuffer "
7044 "[VUID-vkCmdSetCheckpointNV-commandBuffer-parameter]");
7045 abort(); /* Intentionally fail so user can correct issue. */
7046 }
7047 disp->CmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
7048 }
7049
GetQueueCheckpointDataNV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointDataNV * pCheckpointData)7050 VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointDataNV(
7051 VkQueue queue,
7052 uint32_t* pCheckpointDataCount,
7053 VkCheckpointDataNV* pCheckpointData) {
7054 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7055 if (NULL == disp) {
7056 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7057 "vkGetQueueCheckpointDataNV: Invalid queue "
7058 "[VUID-vkGetQueueCheckpointDataNV-queue-parameter]");
7059 abort(); /* Intentionally fail so user can correct issue. */
7060 }
7061 disp->GetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
7062 }
7063
GetQueueCheckpointData2NV(VkQueue queue,uint32_t * pCheckpointDataCount,VkCheckpointData2NV * pCheckpointData)7064 VKAPI_ATTR void VKAPI_CALL GetQueueCheckpointData2NV(
7065 VkQueue queue,
7066 uint32_t* pCheckpointDataCount,
7067 VkCheckpointData2NV* pCheckpointData) {
7068 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7069 if (NULL == disp) {
7070 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7071 "vkGetQueueCheckpointData2NV: Invalid queue "
7072 "[VUID-vkGetQueueCheckpointData2NV-queue-parameter]");
7073 abort(); /* Intentionally fail so user can correct issue. */
7074 }
7075 disp->GetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData);
7076 }
7077
7078
7079 // ---- VK_INTEL_performance_query extension trampoline/terminators
7080
InitializePerformanceApiINTEL(VkDevice device,const VkInitializePerformanceApiInfoINTEL * pInitializeInfo)7081 VKAPI_ATTR VkResult VKAPI_CALL InitializePerformanceApiINTEL(
7082 VkDevice device,
7083 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) {
7084 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7085 if (NULL == disp) {
7086 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7087 "vkInitializePerformanceApiINTEL: Invalid device "
7088 "[VUID-vkInitializePerformanceApiINTEL-device-parameter]");
7089 abort(); /* Intentionally fail so user can correct issue. */
7090 }
7091 return disp->InitializePerformanceApiINTEL(device, pInitializeInfo);
7092 }
7093
UninitializePerformanceApiINTEL(VkDevice device)7094 VKAPI_ATTR void VKAPI_CALL UninitializePerformanceApiINTEL(
7095 VkDevice device) {
7096 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7097 if (NULL == disp) {
7098 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7099 "vkUninitializePerformanceApiINTEL: Invalid device "
7100 "[VUID-vkUninitializePerformanceApiINTEL-device-parameter]");
7101 abort(); /* Intentionally fail so user can correct issue. */
7102 }
7103 disp->UninitializePerformanceApiINTEL(device);
7104 }
7105
CmdSetPerformanceMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceMarkerInfoINTEL * pMarkerInfo)7106 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceMarkerINTEL(
7107 VkCommandBuffer commandBuffer,
7108 const VkPerformanceMarkerInfoINTEL* pMarkerInfo) {
7109 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7110 if (NULL == disp) {
7111 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7112 "vkCmdSetPerformanceMarkerINTEL: Invalid commandBuffer "
7113 "[VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter]");
7114 abort(); /* Intentionally fail so user can correct issue. */
7115 }
7116 return disp->CmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo);
7117 }
7118
CmdSetPerformanceStreamMarkerINTEL(VkCommandBuffer commandBuffer,const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo)7119 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceStreamMarkerINTEL(
7120 VkCommandBuffer commandBuffer,
7121 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) {
7122 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7123 if (NULL == disp) {
7124 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7125 "vkCmdSetPerformanceStreamMarkerINTEL: Invalid commandBuffer "
7126 "[VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter]");
7127 abort(); /* Intentionally fail so user can correct issue. */
7128 }
7129 return disp->CmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo);
7130 }
7131
CmdSetPerformanceOverrideINTEL(VkCommandBuffer commandBuffer,const VkPerformanceOverrideInfoINTEL * pOverrideInfo)7132 VKAPI_ATTR VkResult VKAPI_CALL CmdSetPerformanceOverrideINTEL(
7133 VkCommandBuffer commandBuffer,
7134 const VkPerformanceOverrideInfoINTEL* pOverrideInfo) {
7135 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7136 if (NULL == disp) {
7137 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7138 "vkCmdSetPerformanceOverrideINTEL: Invalid commandBuffer "
7139 "[VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter]");
7140 abort(); /* Intentionally fail so user can correct issue. */
7141 }
7142 return disp->CmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo);
7143 }
7144
AcquirePerformanceConfigurationINTEL(VkDevice device,const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VkPerformanceConfigurationINTEL * pConfiguration)7145 VKAPI_ATTR VkResult VKAPI_CALL AcquirePerformanceConfigurationINTEL(
7146 VkDevice device,
7147 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
7148 VkPerformanceConfigurationINTEL* pConfiguration) {
7149 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7150 if (NULL == disp) {
7151 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7152 "vkAcquirePerformanceConfigurationINTEL: Invalid device "
7153 "[VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter]");
7154 abort(); /* Intentionally fail so user can correct issue. */
7155 }
7156 return disp->AcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration);
7157 }
7158
ReleasePerformanceConfigurationINTEL(VkDevice device,VkPerformanceConfigurationINTEL configuration)7159 VKAPI_ATTR VkResult VKAPI_CALL ReleasePerformanceConfigurationINTEL(
7160 VkDevice device,
7161 VkPerformanceConfigurationINTEL configuration) {
7162 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7163 if (NULL == disp) {
7164 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7165 "vkReleasePerformanceConfigurationINTEL: Invalid device "
7166 "[VUID-vkReleasePerformanceConfigurationINTEL-device-parameter]");
7167 abort(); /* Intentionally fail so user can correct issue. */
7168 }
7169 return disp->ReleasePerformanceConfigurationINTEL(device, configuration);
7170 }
7171
QueueSetPerformanceConfigurationINTEL(VkQueue queue,VkPerformanceConfigurationINTEL configuration)7172 VKAPI_ATTR VkResult VKAPI_CALL QueueSetPerformanceConfigurationINTEL(
7173 VkQueue queue,
7174 VkPerformanceConfigurationINTEL configuration) {
7175 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
7176 if (NULL == disp) {
7177 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7178 "vkQueueSetPerformanceConfigurationINTEL: Invalid queue "
7179 "[VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter]");
7180 abort(); /* Intentionally fail so user can correct issue. */
7181 }
7182 return disp->QueueSetPerformanceConfigurationINTEL(queue, configuration);
7183 }
7184
GetPerformanceParameterINTEL(VkDevice device,VkPerformanceParameterTypeINTEL parameter,VkPerformanceValueINTEL * pValue)7185 VKAPI_ATTR VkResult VKAPI_CALL GetPerformanceParameterINTEL(
7186 VkDevice device,
7187 VkPerformanceParameterTypeINTEL parameter,
7188 VkPerformanceValueINTEL* pValue) {
7189 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7190 if (NULL == disp) {
7191 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7192 "vkGetPerformanceParameterINTEL: Invalid device "
7193 "[VUID-vkGetPerformanceParameterINTEL-device-parameter]");
7194 abort(); /* Intentionally fail so user can correct issue. */
7195 }
7196 return disp->GetPerformanceParameterINTEL(device, parameter, pValue);
7197 }
7198
7199
7200 // ---- VK_AMD_display_native_hdr extension trampoline/terminators
7201
SetLocalDimmingAMD(VkDevice device,VkSwapchainKHR swapChain,VkBool32 localDimmingEnable)7202 VKAPI_ATTR void VKAPI_CALL SetLocalDimmingAMD(
7203 VkDevice device,
7204 VkSwapchainKHR swapChain,
7205 VkBool32 localDimmingEnable) {
7206 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7207 if (NULL == disp) {
7208 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7209 "vkSetLocalDimmingAMD: Invalid device "
7210 "[VUID-vkSetLocalDimmingAMD-device-parameter]");
7211 abort(); /* Intentionally fail so user can correct issue. */
7212 }
7213 disp->SetLocalDimmingAMD(device, swapChain, localDimmingEnable);
7214 }
7215
7216
7217 // ---- VK_EXT_buffer_device_address extension trampoline/terminators
7218
GetBufferDeviceAddressEXT(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)7219 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetBufferDeviceAddressEXT(
7220 VkDevice device,
7221 const VkBufferDeviceAddressInfo* pInfo) {
7222 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7223 if (NULL == disp) {
7224 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7225 "vkGetBufferDeviceAddressEXT: Invalid device "
7226 "[VUID-vkGetBufferDeviceAddressEXT-device-parameter]");
7227 abort(); /* Intentionally fail so user can correct issue. */
7228 }
7229 return disp->GetBufferDeviceAddressEXT(device, pInfo);
7230 }
7231
7232
7233 // ---- VK_NV_cooperative_matrix extension trampoline/terminators
7234
GetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties)7235 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixPropertiesNV(
7236 VkPhysicalDevice physicalDevice,
7237 uint32_t* pPropertyCount,
7238 VkCooperativeMatrixPropertiesNV* pProperties) {
7239 const VkLayerInstanceDispatchTable *disp;
7240 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7241 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7242 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7243 "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV: Invalid physicalDevice "
7244 "[VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter]");
7245 abort(); /* Intentionally fail so user can correct issue. */
7246 }
7247 disp = loader_get_instance_layer_dispatch(physicalDevice);
7248 return disp->GetPhysicalDeviceCooperativeMatrixPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
7249 }
7250
terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixPropertiesNV * pProperties)7251 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV(
7252 VkPhysicalDevice physicalDevice,
7253 uint32_t* pPropertyCount,
7254 VkCooperativeMatrixPropertiesNV* pProperties) {
7255 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7256 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7257 if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV) {
7258 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7259 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixPropertiesNV");
7260 abort(); /* Intentionally fail so user can correct issue. */
7261 }
7262 return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
7263 }
7264
7265
7266 // ---- VK_NV_coverage_reduction_mode extension trampoline/terminators
7267
GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations)7268 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
7269 VkPhysicalDevice physicalDevice,
7270 uint32_t* pCombinationCount,
7271 VkFramebufferMixedSamplesCombinationNV* pCombinations) {
7272 const VkLayerInstanceDispatchTable *disp;
7273 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7274 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7275 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7276 "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV: Invalid physicalDevice "
7277 "[VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter]");
7278 abort(); /* Intentionally fail so user can correct issue. */
7279 }
7280 disp = loader_get_instance_layer_dispatch(physicalDevice);
7281 return disp->GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(unwrapped_phys_dev, pCombinationCount, pCombinations);
7282 }
7283
terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(VkPhysicalDevice physicalDevice,uint32_t * pCombinationCount,VkFramebufferMixedSamplesCombinationNV * pCombinations)7284 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
7285 VkPhysicalDevice physicalDevice,
7286 uint32_t* pCombinationCount,
7287 VkFramebufferMixedSamplesCombinationNV* pCombinations) {
7288 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7289 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7290 if (NULL == icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV) {
7291 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
7292 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
7293 abort(); /* Intentionally fail so user can correct issue. */
7294 }
7295 return icd_term->dispatch.GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(phys_dev_term->phys_dev, pCombinationCount, pCombinations);
7296 }
7297
7298
7299 // ---- VK_EXT_full_screen_exclusive extension trampoline/terminators
7300
7301 #if defined(VK_USE_PLATFORM_WIN32_KHR)
AcquireFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)7302 VKAPI_ATTR VkResult VKAPI_CALL AcquireFullScreenExclusiveModeEXT(
7303 VkDevice device,
7304 VkSwapchainKHR swapchain) {
7305 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7306 if (NULL == disp) {
7307 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7308 "vkAcquireFullScreenExclusiveModeEXT: Invalid device "
7309 "[VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter]");
7310 abort(); /* Intentionally fail so user can correct issue. */
7311 }
7312 return disp->AcquireFullScreenExclusiveModeEXT(device, swapchain);
7313 }
7314
7315 #endif // VK_USE_PLATFORM_WIN32_KHR
7316 #if defined(VK_USE_PLATFORM_WIN32_KHR)
ReleaseFullScreenExclusiveModeEXT(VkDevice device,VkSwapchainKHR swapchain)7317 VKAPI_ATTR VkResult VKAPI_CALL ReleaseFullScreenExclusiveModeEXT(
7318 VkDevice device,
7319 VkSwapchainKHR swapchain) {
7320 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7321 if (NULL == disp) {
7322 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7323 "vkReleaseFullScreenExclusiveModeEXT: Invalid device "
7324 "[VUID-vkReleaseFullScreenExclusiveModeEXT-device-parameter]");
7325 abort(); /* Intentionally fail so user can correct issue. */
7326 }
7327 return disp->ReleaseFullScreenExclusiveModeEXT(device, swapchain);
7328 }
7329
7330 #endif // VK_USE_PLATFORM_WIN32_KHR
7331
7332 // ---- VK_EXT_line_rasterization extension trampoline/terminators
7333
CmdSetLineStippleEXT(VkCommandBuffer commandBuffer,uint32_t lineStippleFactor,uint16_t lineStipplePattern)7334 VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEXT(
7335 VkCommandBuffer commandBuffer,
7336 uint32_t lineStippleFactor,
7337 uint16_t lineStipplePattern) {
7338 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7339 if (NULL == disp) {
7340 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7341 "vkCmdSetLineStippleEXT: Invalid commandBuffer "
7342 "[VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter]");
7343 abort(); /* Intentionally fail so user can correct issue. */
7344 }
7345 disp->CmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
7346 }
7347
7348
7349 // ---- VK_EXT_host_query_reset extension trampoline/terminators
7350
ResetQueryPoolEXT(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)7351 VKAPI_ATTR void VKAPI_CALL ResetQueryPoolEXT(
7352 VkDevice device,
7353 VkQueryPool queryPool,
7354 uint32_t firstQuery,
7355 uint32_t queryCount) {
7356 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7357 if (NULL == disp) {
7358 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7359 "vkResetQueryPoolEXT: Invalid device "
7360 "[VUID-vkResetQueryPoolEXT-device-parameter]");
7361 abort(); /* Intentionally fail so user can correct issue. */
7362 }
7363 disp->ResetQueryPoolEXT(device, queryPool, firstQuery, queryCount);
7364 }
7365
7366
7367 // ---- VK_EXT_extended_dynamic_state extension trampoline/terminators
7368
CmdSetCullModeEXT(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)7369 VKAPI_ATTR void VKAPI_CALL CmdSetCullModeEXT(
7370 VkCommandBuffer commandBuffer,
7371 VkCullModeFlags cullMode) {
7372 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7373 if (NULL == disp) {
7374 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7375 "vkCmdSetCullModeEXT: Invalid commandBuffer "
7376 "[VUID-vkCmdSetCullModeEXT-commandBuffer-parameter]");
7377 abort(); /* Intentionally fail so user can correct issue. */
7378 }
7379 disp->CmdSetCullModeEXT(commandBuffer, cullMode);
7380 }
7381
CmdSetFrontFaceEXT(VkCommandBuffer commandBuffer,VkFrontFace frontFace)7382 VKAPI_ATTR void VKAPI_CALL CmdSetFrontFaceEXT(
7383 VkCommandBuffer commandBuffer,
7384 VkFrontFace frontFace) {
7385 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7386 if (NULL == disp) {
7387 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7388 "vkCmdSetFrontFaceEXT: Invalid commandBuffer "
7389 "[VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter]");
7390 abort(); /* Intentionally fail so user can correct issue. */
7391 }
7392 disp->CmdSetFrontFaceEXT(commandBuffer, frontFace);
7393 }
7394
CmdSetPrimitiveTopologyEXT(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)7395 VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveTopologyEXT(
7396 VkCommandBuffer commandBuffer,
7397 VkPrimitiveTopology primitiveTopology) {
7398 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7399 if (NULL == disp) {
7400 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7401 "vkCmdSetPrimitiveTopologyEXT: Invalid commandBuffer "
7402 "[VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter]");
7403 abort(); /* Intentionally fail so user can correct issue. */
7404 }
7405 disp->CmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology);
7406 }
7407
CmdSetViewportWithCountEXT(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)7408 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWithCountEXT(
7409 VkCommandBuffer commandBuffer,
7410 uint32_t viewportCount,
7411 const VkViewport* pViewports) {
7412 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7413 if (NULL == disp) {
7414 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7415 "vkCmdSetViewportWithCountEXT: Invalid commandBuffer "
7416 "[VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter]");
7417 abort(); /* Intentionally fail so user can correct issue. */
7418 }
7419 disp->CmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports);
7420 }
7421
CmdSetScissorWithCountEXT(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)7422 VKAPI_ATTR void VKAPI_CALL CmdSetScissorWithCountEXT(
7423 VkCommandBuffer commandBuffer,
7424 uint32_t scissorCount,
7425 const VkRect2D* pScissors) {
7426 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7427 if (NULL == disp) {
7428 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7429 "vkCmdSetScissorWithCountEXT: Invalid commandBuffer "
7430 "[VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter]");
7431 abort(); /* Intentionally fail so user can correct issue. */
7432 }
7433 disp->CmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors);
7434 }
7435
CmdBindVertexBuffers2EXT(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)7436 VKAPI_ATTR void VKAPI_CALL CmdBindVertexBuffers2EXT(
7437 VkCommandBuffer commandBuffer,
7438 uint32_t firstBinding,
7439 uint32_t bindingCount,
7440 const VkBuffer* pBuffers,
7441 const VkDeviceSize* pOffsets,
7442 const VkDeviceSize* pSizes,
7443 const VkDeviceSize* pStrides) {
7444 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7445 if (NULL == disp) {
7446 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7447 "vkCmdBindVertexBuffers2EXT: Invalid commandBuffer "
7448 "[VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter]");
7449 abort(); /* Intentionally fail so user can correct issue. */
7450 }
7451 disp->CmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
7452 }
7453
CmdSetDepthTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)7454 VKAPI_ATTR void VKAPI_CALL CmdSetDepthTestEnableEXT(
7455 VkCommandBuffer commandBuffer,
7456 VkBool32 depthTestEnable) {
7457 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7458 if (NULL == disp) {
7459 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7460 "vkCmdSetDepthTestEnableEXT: Invalid commandBuffer "
7461 "[VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter]");
7462 abort(); /* Intentionally fail so user can correct issue. */
7463 }
7464 disp->CmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable);
7465 }
7466
CmdSetDepthWriteEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)7467 VKAPI_ATTR void VKAPI_CALL CmdSetDepthWriteEnableEXT(
7468 VkCommandBuffer commandBuffer,
7469 VkBool32 depthWriteEnable) {
7470 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7471 if (NULL == disp) {
7472 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7473 "vkCmdSetDepthWriteEnableEXT: Invalid commandBuffer "
7474 "[VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter]");
7475 abort(); /* Intentionally fail so user can correct issue. */
7476 }
7477 disp->CmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable);
7478 }
7479
CmdSetDepthCompareOpEXT(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)7480 VKAPI_ATTR void VKAPI_CALL CmdSetDepthCompareOpEXT(
7481 VkCommandBuffer commandBuffer,
7482 VkCompareOp depthCompareOp) {
7483 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7484 if (NULL == disp) {
7485 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7486 "vkCmdSetDepthCompareOpEXT: Invalid commandBuffer "
7487 "[VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter]");
7488 abort(); /* Intentionally fail so user can correct issue. */
7489 }
7490 disp->CmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp);
7491 }
7492
CmdSetDepthBoundsTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)7493 VKAPI_ATTR void VKAPI_CALL CmdSetDepthBoundsTestEnableEXT(
7494 VkCommandBuffer commandBuffer,
7495 VkBool32 depthBoundsTestEnable) {
7496 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7497 if (NULL == disp) {
7498 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7499 "vkCmdSetDepthBoundsTestEnableEXT: Invalid commandBuffer "
7500 "[VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter]");
7501 abort(); /* Intentionally fail so user can correct issue. */
7502 }
7503 disp->CmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable);
7504 }
7505
CmdSetStencilTestEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)7506 VKAPI_ATTR void VKAPI_CALL CmdSetStencilTestEnableEXT(
7507 VkCommandBuffer commandBuffer,
7508 VkBool32 stencilTestEnable) {
7509 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7510 if (NULL == disp) {
7511 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7512 "vkCmdSetStencilTestEnableEXT: Invalid commandBuffer "
7513 "[VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter]");
7514 abort(); /* Intentionally fail so user can correct issue. */
7515 }
7516 disp->CmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable);
7517 }
7518
CmdSetStencilOpEXT(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)7519 VKAPI_ATTR void VKAPI_CALL CmdSetStencilOpEXT(
7520 VkCommandBuffer commandBuffer,
7521 VkStencilFaceFlags faceMask,
7522 VkStencilOp failOp,
7523 VkStencilOp passOp,
7524 VkStencilOp depthFailOp,
7525 VkCompareOp compareOp) {
7526 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7527 if (NULL == disp) {
7528 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7529 "vkCmdSetStencilOpEXT: Invalid commandBuffer "
7530 "[VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter]");
7531 abort(); /* Intentionally fail so user can correct issue. */
7532 }
7533 disp->CmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
7534 }
7535
7536
7537 // ---- VK_EXT_host_image_copy extension trampoline/terminators
7538
CopyMemoryToImageEXT(VkDevice device,const VkCopyMemoryToImageInfo * pCopyMemoryToImageInfo)7539 VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToImageEXT(
7540 VkDevice device,
7541 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo) {
7542 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7543 if (NULL == disp) {
7544 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7545 "vkCopyMemoryToImageEXT: Invalid device "
7546 "[VUID-vkCopyMemoryToImageEXT-device-parameter]");
7547 abort(); /* Intentionally fail so user can correct issue. */
7548 }
7549 return disp->CopyMemoryToImageEXT(device, pCopyMemoryToImageInfo);
7550 }
7551
CopyImageToMemoryEXT(VkDevice device,const VkCopyImageToMemoryInfo * pCopyImageToMemoryInfo)7552 VKAPI_ATTR VkResult VKAPI_CALL CopyImageToMemoryEXT(
7553 VkDevice device,
7554 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo) {
7555 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7556 if (NULL == disp) {
7557 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7558 "vkCopyImageToMemoryEXT: Invalid device "
7559 "[VUID-vkCopyImageToMemoryEXT-device-parameter]");
7560 abort(); /* Intentionally fail so user can correct issue. */
7561 }
7562 return disp->CopyImageToMemoryEXT(device, pCopyImageToMemoryInfo);
7563 }
7564
CopyImageToImageEXT(VkDevice device,const VkCopyImageToImageInfo * pCopyImageToImageInfo)7565 VKAPI_ATTR VkResult VKAPI_CALL CopyImageToImageEXT(
7566 VkDevice device,
7567 const VkCopyImageToImageInfo* pCopyImageToImageInfo) {
7568 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7569 if (NULL == disp) {
7570 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7571 "vkCopyImageToImageEXT: Invalid device "
7572 "[VUID-vkCopyImageToImageEXT-device-parameter]");
7573 abort(); /* Intentionally fail so user can correct issue. */
7574 }
7575 return disp->CopyImageToImageEXT(device, pCopyImageToImageInfo);
7576 }
7577
TransitionImageLayoutEXT(VkDevice device,uint32_t transitionCount,const VkHostImageLayoutTransitionInfo * pTransitions)7578 VKAPI_ATTR VkResult VKAPI_CALL TransitionImageLayoutEXT(
7579 VkDevice device,
7580 uint32_t transitionCount,
7581 const VkHostImageLayoutTransitionInfo* pTransitions) {
7582 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7583 if (NULL == disp) {
7584 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7585 "vkTransitionImageLayoutEXT: Invalid device "
7586 "[VUID-vkTransitionImageLayoutEXT-device-parameter]");
7587 abort(); /* Intentionally fail so user can correct issue. */
7588 }
7589 return disp->TransitionImageLayoutEXT(device, transitionCount, pTransitions);
7590 }
7591
GetImageSubresourceLayout2EXT(VkDevice device,VkImage image,const VkImageSubresource2 * pSubresource,VkSubresourceLayout2 * pLayout)7592 VKAPI_ATTR void VKAPI_CALL GetImageSubresourceLayout2EXT(
7593 VkDevice device,
7594 VkImage image,
7595 const VkImageSubresource2* pSubresource,
7596 VkSubresourceLayout2* pLayout) {
7597 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7598 if (NULL == disp) {
7599 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7600 "vkGetImageSubresourceLayout2EXT: Invalid device "
7601 "[VUID-vkGetImageSubresourceLayout2EXT-device-parameter]");
7602 abort(); /* Intentionally fail so user can correct issue. */
7603 }
7604 disp->GetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout);
7605 }
7606
7607
7608 // ---- VK_EXT_swapchain_maintenance1 extension trampoline/terminators
7609
ReleaseSwapchainImagesEXT(VkDevice device,const VkReleaseSwapchainImagesInfoEXT * pReleaseInfo)7610 VKAPI_ATTR VkResult VKAPI_CALL ReleaseSwapchainImagesEXT(
7611 VkDevice device,
7612 const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
7613 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7614 if (NULL == disp) {
7615 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7616 "vkReleaseSwapchainImagesEXT: Invalid device "
7617 "[VUID-vkReleaseSwapchainImagesEXT-device-parameter]");
7618 abort(); /* Intentionally fail so user can correct issue. */
7619 }
7620 return disp->ReleaseSwapchainImagesEXT(device, pReleaseInfo);
7621 }
7622
7623
7624 // ---- VK_NV_device_generated_commands extension trampoline/terminators
7625
GetGeneratedCommandsMemoryRequirementsNV(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo,VkMemoryRequirements2 * pMemoryRequirements)7626 VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsNV(
7627 VkDevice device,
7628 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
7629 VkMemoryRequirements2* pMemoryRequirements) {
7630 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7631 if (NULL == disp) {
7632 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7633 "vkGetGeneratedCommandsMemoryRequirementsNV: Invalid device "
7634 "[VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter]");
7635 abort(); /* Intentionally fail so user can correct issue. */
7636 }
7637 disp->GetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
7638 }
7639
CmdPreprocessGeneratedCommandsNV(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo)7640 VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsNV(
7641 VkCommandBuffer commandBuffer,
7642 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) {
7643 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7644 if (NULL == disp) {
7645 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7646 "vkCmdPreprocessGeneratedCommandsNV: Invalid commandBuffer "
7647 "[VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter]");
7648 abort(); /* Intentionally fail so user can correct issue. */
7649 }
7650 disp->CmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
7651 }
7652
CmdExecuteGeneratedCommandsNV(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo)7653 VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsNV(
7654 VkCommandBuffer commandBuffer,
7655 VkBool32 isPreprocessed,
7656 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) {
7657 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7658 if (NULL == disp) {
7659 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7660 "vkCmdExecuteGeneratedCommandsNV: Invalid commandBuffer "
7661 "[VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter]");
7662 abort(); /* Intentionally fail so user can correct issue. */
7663 }
7664 disp->CmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
7665 }
7666
CmdBindPipelineShaderGroupNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline,uint32_t groupIndex)7667 VKAPI_ATTR void VKAPI_CALL CmdBindPipelineShaderGroupNV(
7668 VkCommandBuffer commandBuffer,
7669 VkPipelineBindPoint pipelineBindPoint,
7670 VkPipeline pipeline,
7671 uint32_t groupIndex) {
7672 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7673 if (NULL == disp) {
7674 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7675 "vkCmdBindPipelineShaderGroupNV: Invalid commandBuffer "
7676 "[VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter]");
7677 abort(); /* Intentionally fail so user can correct issue. */
7678 }
7679 disp->CmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
7680 }
7681
CreateIndirectCommandsLayoutNV(VkDevice device,const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutNV * pIndirectCommandsLayout)7682 VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutNV(
7683 VkDevice device,
7684 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
7685 const VkAllocationCallbacks* pAllocator,
7686 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) {
7687 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7688 if (NULL == disp) {
7689 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7690 "vkCreateIndirectCommandsLayoutNV: Invalid device "
7691 "[VUID-vkCreateIndirectCommandsLayoutNV-device-parameter]");
7692 abort(); /* Intentionally fail so user can correct issue. */
7693 }
7694 return disp->CreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
7695 }
7696
DestroyIndirectCommandsLayoutNV(VkDevice device,VkIndirectCommandsLayoutNV indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)7697 VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutNV(
7698 VkDevice device,
7699 VkIndirectCommandsLayoutNV indirectCommandsLayout,
7700 const VkAllocationCallbacks* pAllocator) {
7701 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7702 if (NULL == disp) {
7703 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7704 "vkDestroyIndirectCommandsLayoutNV: Invalid device "
7705 "[VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter]");
7706 abort(); /* Intentionally fail so user can correct issue. */
7707 }
7708 disp->DestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
7709 }
7710
7711
7712 // ---- VK_EXT_depth_bias_control extension trampoline/terminators
7713
CmdSetDepthBias2EXT(VkCommandBuffer commandBuffer,const VkDepthBiasInfoEXT * pDepthBiasInfo)7714 VKAPI_ATTR void VKAPI_CALL CmdSetDepthBias2EXT(
7715 VkCommandBuffer commandBuffer,
7716 const VkDepthBiasInfoEXT* pDepthBiasInfo) {
7717 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7718 if (NULL == disp) {
7719 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7720 "vkCmdSetDepthBias2EXT: Invalid commandBuffer "
7721 "[VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter]");
7722 abort(); /* Intentionally fail so user can correct issue. */
7723 }
7724 disp->CmdSetDepthBias2EXT(commandBuffer, pDepthBiasInfo);
7725 }
7726
7727
7728 // ---- VK_EXT_acquire_drm_display extension trampoline/terminators
7729
AcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,VkDisplayKHR display)7730 VKAPI_ATTR VkResult VKAPI_CALL AcquireDrmDisplayEXT(
7731 VkPhysicalDevice physicalDevice,
7732 int32_t drmFd,
7733 VkDisplayKHR display) {
7734 const VkLayerInstanceDispatchTable *disp;
7735 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7736 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7737 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7738 "vkAcquireDrmDisplayEXT: Invalid physicalDevice "
7739 "[VUID-vkAcquireDrmDisplayEXT-physicalDevice-parameter]");
7740 abort(); /* Intentionally fail so user can correct issue. */
7741 }
7742 disp = loader_get_instance_layer_dispatch(physicalDevice);
7743 return disp->AcquireDrmDisplayEXT(unwrapped_phys_dev, drmFd, display);
7744 }
7745
terminator_AcquireDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,VkDisplayKHR display)7746 VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireDrmDisplayEXT(
7747 VkPhysicalDevice physicalDevice,
7748 int32_t drmFd,
7749 VkDisplayKHR display) {
7750 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7751 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7752 if (NULL == icd_term->dispatch.AcquireDrmDisplayEXT) {
7753 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
7754 "ICD associated with VkPhysicalDevice does not support AcquireDrmDisplayEXT");
7755 return VK_ERROR_EXTENSION_NOT_PRESENT;
7756 }
7757 return icd_term->dispatch.AcquireDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, display);
7758 }
7759
GetDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,uint32_t connectorId,VkDisplayKHR * display)7760 VKAPI_ATTR VkResult VKAPI_CALL GetDrmDisplayEXT(
7761 VkPhysicalDevice physicalDevice,
7762 int32_t drmFd,
7763 uint32_t connectorId,
7764 VkDisplayKHR* display) {
7765 const VkLayerInstanceDispatchTable *disp;
7766 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
7767 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
7768 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7769 "vkGetDrmDisplayEXT: Invalid physicalDevice "
7770 "[VUID-vkGetDrmDisplayEXT-physicalDevice-parameter]");
7771 abort(); /* Intentionally fail so user can correct issue. */
7772 }
7773 disp = loader_get_instance_layer_dispatch(physicalDevice);
7774 return disp->GetDrmDisplayEXT(unwrapped_phys_dev, drmFd, connectorId, display);
7775 }
7776
terminator_GetDrmDisplayEXT(VkPhysicalDevice physicalDevice,int32_t drmFd,uint32_t connectorId,VkDisplayKHR * display)7777 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDrmDisplayEXT(
7778 VkPhysicalDevice physicalDevice,
7779 int32_t drmFd,
7780 uint32_t connectorId,
7781 VkDisplayKHR* display) {
7782 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
7783 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
7784 if (NULL == icd_term->dispatch.GetDrmDisplayEXT) {
7785 loader_log(icd_term->this_instance, VULKAN_LOADER_ERROR_BIT, 0,
7786 "ICD associated with VkPhysicalDevice does not support GetDrmDisplayEXT");
7787 return VK_ERROR_EXTENSION_NOT_PRESENT;
7788 }
7789 return icd_term->dispatch.GetDrmDisplayEXT(phys_dev_term->phys_dev, drmFd, connectorId, display);
7790 }
7791
7792
7793 // ---- VK_EXT_private_data extension trampoline/terminators
7794
CreatePrivateDataSlotEXT(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)7795 VKAPI_ATTR VkResult VKAPI_CALL CreatePrivateDataSlotEXT(
7796 VkDevice device,
7797 const VkPrivateDataSlotCreateInfo* pCreateInfo,
7798 const VkAllocationCallbacks* pAllocator,
7799 VkPrivateDataSlot* pPrivateDataSlot) {
7800 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7801 if (NULL == disp) {
7802 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7803 "vkCreatePrivateDataSlotEXT: Invalid device "
7804 "[VUID-vkCreatePrivateDataSlotEXT-device-parameter]");
7805 abort(); /* Intentionally fail so user can correct issue. */
7806 }
7807 return disp->CreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot);
7808 }
7809
DestroyPrivateDataSlotEXT(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)7810 VKAPI_ATTR void VKAPI_CALL DestroyPrivateDataSlotEXT(
7811 VkDevice device,
7812 VkPrivateDataSlot privateDataSlot,
7813 const VkAllocationCallbacks* pAllocator) {
7814 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7815 if (NULL == disp) {
7816 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7817 "vkDestroyPrivateDataSlotEXT: Invalid device "
7818 "[VUID-vkDestroyPrivateDataSlotEXT-device-parameter]");
7819 abort(); /* Intentionally fail so user can correct issue. */
7820 }
7821 disp->DestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator);
7822 }
7823
SetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)7824 VKAPI_ATTR VkResult VKAPI_CALL SetPrivateDataEXT(
7825 VkDevice device,
7826 VkObjectType objectType,
7827 uint64_t objectHandle,
7828 VkPrivateDataSlot privateDataSlot,
7829 uint64_t data) {
7830 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7831 if (NULL == disp) {
7832 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7833 "vkSetPrivateDataEXT: Invalid device "
7834 "[VUID-vkSetPrivateDataEXT-device-parameter]");
7835 abort(); /* Intentionally fail so user can correct issue. */
7836 }
7837 return disp->SetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data);
7838 }
7839
GetPrivateDataEXT(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)7840 VKAPI_ATTR void VKAPI_CALL GetPrivateDataEXT(
7841 VkDevice device,
7842 VkObjectType objectType,
7843 uint64_t objectHandle,
7844 VkPrivateDataSlot privateDataSlot,
7845 uint64_t* pData) {
7846 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7847 if (NULL == disp) {
7848 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7849 "vkGetPrivateDataEXT: Invalid device "
7850 "[VUID-vkGetPrivateDataEXT-device-parameter]");
7851 abort(); /* Intentionally fail so user can correct issue. */
7852 }
7853 disp->GetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData);
7854 }
7855
7856
7857 // ---- VK_NV_cuda_kernel_launch extension trampoline/terminators
7858
CreateCudaModuleNV(VkDevice device,const VkCudaModuleCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCudaModuleNV * pModule)7859 VKAPI_ATTR VkResult VKAPI_CALL CreateCudaModuleNV(
7860 VkDevice device,
7861 const VkCudaModuleCreateInfoNV* pCreateInfo,
7862 const VkAllocationCallbacks* pAllocator,
7863 VkCudaModuleNV* pModule) {
7864 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7865 if (NULL == disp) {
7866 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7867 "vkCreateCudaModuleNV: Invalid device "
7868 "[VUID-vkCreateCudaModuleNV-device-parameter]");
7869 abort(); /* Intentionally fail so user can correct issue. */
7870 }
7871 return disp->CreateCudaModuleNV(device, pCreateInfo, pAllocator, pModule);
7872 }
7873
GetCudaModuleCacheNV(VkDevice device,VkCudaModuleNV module,size_t * pCacheSize,void * pCacheData)7874 VKAPI_ATTR VkResult VKAPI_CALL GetCudaModuleCacheNV(
7875 VkDevice device,
7876 VkCudaModuleNV module,
7877 size_t* pCacheSize,
7878 void* pCacheData) {
7879 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7880 if (NULL == disp) {
7881 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7882 "vkGetCudaModuleCacheNV: Invalid device "
7883 "[VUID-vkGetCudaModuleCacheNV-device-parameter]");
7884 abort(); /* Intentionally fail so user can correct issue. */
7885 }
7886 return disp->GetCudaModuleCacheNV(device, module, pCacheSize, pCacheData);
7887 }
7888
CreateCudaFunctionNV(VkDevice device,const VkCudaFunctionCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCudaFunctionNV * pFunction)7889 VKAPI_ATTR VkResult VKAPI_CALL CreateCudaFunctionNV(
7890 VkDevice device,
7891 const VkCudaFunctionCreateInfoNV* pCreateInfo,
7892 const VkAllocationCallbacks* pAllocator,
7893 VkCudaFunctionNV* pFunction) {
7894 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7895 if (NULL == disp) {
7896 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7897 "vkCreateCudaFunctionNV: Invalid device "
7898 "[VUID-vkCreateCudaFunctionNV-device-parameter]");
7899 abort(); /* Intentionally fail so user can correct issue. */
7900 }
7901 return disp->CreateCudaFunctionNV(device, pCreateInfo, pAllocator, pFunction);
7902 }
7903
DestroyCudaModuleNV(VkDevice device,VkCudaModuleNV module,const VkAllocationCallbacks * pAllocator)7904 VKAPI_ATTR void VKAPI_CALL DestroyCudaModuleNV(
7905 VkDevice device,
7906 VkCudaModuleNV module,
7907 const VkAllocationCallbacks* pAllocator) {
7908 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7909 if (NULL == disp) {
7910 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7911 "vkDestroyCudaModuleNV: Invalid device "
7912 "[VUID-vkDestroyCudaModuleNV-device-parameter]");
7913 abort(); /* Intentionally fail so user can correct issue. */
7914 }
7915 disp->DestroyCudaModuleNV(device, module, pAllocator);
7916 }
7917
DestroyCudaFunctionNV(VkDevice device,VkCudaFunctionNV function,const VkAllocationCallbacks * pAllocator)7918 VKAPI_ATTR void VKAPI_CALL DestroyCudaFunctionNV(
7919 VkDevice device,
7920 VkCudaFunctionNV function,
7921 const VkAllocationCallbacks* pAllocator) {
7922 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7923 if (NULL == disp) {
7924 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7925 "vkDestroyCudaFunctionNV: Invalid device "
7926 "[VUID-vkDestroyCudaFunctionNV-device-parameter]");
7927 abort(); /* Intentionally fail so user can correct issue. */
7928 }
7929 disp->DestroyCudaFunctionNV(device, function, pAllocator);
7930 }
7931
CmdCudaLaunchKernelNV(VkCommandBuffer commandBuffer,const VkCudaLaunchInfoNV * pLaunchInfo)7932 VKAPI_ATTR void VKAPI_CALL CmdCudaLaunchKernelNV(
7933 VkCommandBuffer commandBuffer,
7934 const VkCudaLaunchInfoNV* pLaunchInfo) {
7935 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
7936 if (NULL == disp) {
7937 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7938 "vkCmdCudaLaunchKernelNV: Invalid commandBuffer "
7939 "[VUID-vkCmdCudaLaunchKernelNV-commandBuffer-parameter]");
7940 abort(); /* Intentionally fail so user can correct issue. */
7941 }
7942 disp->CmdCudaLaunchKernelNV(commandBuffer, pLaunchInfo);
7943 }
7944
7945
7946 // ---- VK_EXT_metal_objects extension trampoline/terminators
7947
7948 #if defined(VK_USE_PLATFORM_METAL_EXT)
ExportMetalObjectsEXT(VkDevice device,VkExportMetalObjectsInfoEXT * pMetalObjectsInfo)7949 VKAPI_ATTR void VKAPI_CALL ExportMetalObjectsEXT(
7950 VkDevice device,
7951 VkExportMetalObjectsInfoEXT* pMetalObjectsInfo) {
7952 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7953 if (NULL == disp) {
7954 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7955 "vkExportMetalObjectsEXT: Invalid device "
7956 "[VUID-vkExportMetalObjectsEXT-device-parameter]");
7957 abort(); /* Intentionally fail so user can correct issue. */
7958 }
7959 disp->ExportMetalObjectsEXT(device, pMetalObjectsInfo);
7960 }
7961
7962 #endif // VK_USE_PLATFORM_METAL_EXT
7963
7964 // ---- VK_EXT_descriptor_buffer extension trampoline/terminators
7965
GetDescriptorSetLayoutSizeEXT(VkDevice device,VkDescriptorSetLayout layout,VkDeviceSize * pLayoutSizeInBytes)7966 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutSizeEXT(
7967 VkDevice device,
7968 VkDescriptorSetLayout layout,
7969 VkDeviceSize* pLayoutSizeInBytes) {
7970 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7971 if (NULL == disp) {
7972 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7973 "vkGetDescriptorSetLayoutSizeEXT: Invalid device "
7974 "[VUID-vkGetDescriptorSetLayoutSizeEXT-device-parameter]");
7975 abort(); /* Intentionally fail so user can correct issue. */
7976 }
7977 disp->GetDescriptorSetLayoutSizeEXT(device, layout, pLayoutSizeInBytes);
7978 }
7979
GetDescriptorSetLayoutBindingOffsetEXT(VkDevice device,VkDescriptorSetLayout layout,uint32_t binding,VkDeviceSize * pOffset)7980 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutBindingOffsetEXT(
7981 VkDevice device,
7982 VkDescriptorSetLayout layout,
7983 uint32_t binding,
7984 VkDeviceSize* pOffset) {
7985 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
7986 if (NULL == disp) {
7987 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
7988 "vkGetDescriptorSetLayoutBindingOffsetEXT: Invalid device "
7989 "[VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-device-parameter]");
7990 abort(); /* Intentionally fail so user can correct issue. */
7991 }
7992 disp->GetDescriptorSetLayoutBindingOffsetEXT(device, layout, binding, pOffset);
7993 }
7994
GetDescriptorEXT(VkDevice device,const VkDescriptorGetInfoEXT * pDescriptorInfo,size_t dataSize,void * pDescriptor)7995 VKAPI_ATTR void VKAPI_CALL GetDescriptorEXT(
7996 VkDevice device,
7997 const VkDescriptorGetInfoEXT* pDescriptorInfo,
7998 size_t dataSize,
7999 void* pDescriptor) {
8000 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8001 if (NULL == disp) {
8002 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8003 "vkGetDescriptorEXT: Invalid device "
8004 "[VUID-vkGetDescriptorEXT-device-parameter]");
8005 abort(); /* Intentionally fail so user can correct issue. */
8006 }
8007 disp->GetDescriptorEXT(device, pDescriptorInfo, dataSize, pDescriptor);
8008 }
8009
CmdBindDescriptorBuffersEXT(VkCommandBuffer commandBuffer,uint32_t bufferCount,const VkDescriptorBufferBindingInfoEXT * pBindingInfos)8010 VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBuffersEXT(
8011 VkCommandBuffer commandBuffer,
8012 uint32_t bufferCount,
8013 const VkDescriptorBufferBindingInfoEXT* pBindingInfos) {
8014 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8015 if (NULL == disp) {
8016 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8017 "vkCmdBindDescriptorBuffersEXT: Invalid commandBuffer "
8018 "[VUID-vkCmdBindDescriptorBuffersEXT-commandBuffer-parameter]");
8019 abort(); /* Intentionally fail so user can correct issue. */
8020 }
8021 disp->CmdBindDescriptorBuffersEXT(commandBuffer, bufferCount, pBindingInfos);
8022 }
8023
CmdSetDescriptorBufferOffsetsEXT(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t setCount,const uint32_t * pBufferIndices,const VkDeviceSize * pOffsets)8024 VKAPI_ATTR void VKAPI_CALL CmdSetDescriptorBufferOffsetsEXT(
8025 VkCommandBuffer commandBuffer,
8026 VkPipelineBindPoint pipelineBindPoint,
8027 VkPipelineLayout layout,
8028 uint32_t firstSet,
8029 uint32_t setCount,
8030 const uint32_t* pBufferIndices,
8031 const VkDeviceSize* pOffsets) {
8032 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8033 if (NULL == disp) {
8034 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8035 "vkCmdSetDescriptorBufferOffsetsEXT: Invalid commandBuffer "
8036 "[VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter]");
8037 abort(); /* Intentionally fail so user can correct issue. */
8038 }
8039 disp->CmdSetDescriptorBufferOffsetsEXT(commandBuffer, pipelineBindPoint, layout, firstSet, setCount, pBufferIndices, pOffsets);
8040 }
8041
CmdBindDescriptorBufferEmbeddedSamplersEXT(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t set)8042 VKAPI_ATTR void VKAPI_CALL CmdBindDescriptorBufferEmbeddedSamplersEXT(
8043 VkCommandBuffer commandBuffer,
8044 VkPipelineBindPoint pipelineBindPoint,
8045 VkPipelineLayout layout,
8046 uint32_t set) {
8047 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8048 if (NULL == disp) {
8049 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8050 "vkCmdBindDescriptorBufferEmbeddedSamplersEXT: Invalid commandBuffer "
8051 "[VUID-vkCmdBindDescriptorBufferEmbeddedSamplersEXT-commandBuffer-parameter]");
8052 abort(); /* Intentionally fail so user can correct issue. */
8053 }
8054 disp->CmdBindDescriptorBufferEmbeddedSamplersEXT(commandBuffer, pipelineBindPoint, layout, set);
8055 }
8056
GetBufferOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkBufferCaptureDescriptorDataInfoEXT * pInfo,void * pData)8057 VKAPI_ATTR VkResult VKAPI_CALL GetBufferOpaqueCaptureDescriptorDataEXT(
8058 VkDevice device,
8059 const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
8060 void* pData) {
8061 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8062 if (NULL == disp) {
8063 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8064 "vkGetBufferOpaqueCaptureDescriptorDataEXT: Invalid device "
8065 "[VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-device-parameter]");
8066 abort(); /* Intentionally fail so user can correct issue. */
8067 }
8068 return disp->GetBufferOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8069 }
8070
GetImageOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkImageCaptureDescriptorDataInfoEXT * pInfo,void * pData)8071 VKAPI_ATTR VkResult VKAPI_CALL GetImageOpaqueCaptureDescriptorDataEXT(
8072 VkDevice device,
8073 const VkImageCaptureDescriptorDataInfoEXT* pInfo,
8074 void* pData) {
8075 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8076 if (NULL == disp) {
8077 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8078 "vkGetImageOpaqueCaptureDescriptorDataEXT: Invalid device "
8079 "[VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-device-parameter]");
8080 abort(); /* Intentionally fail so user can correct issue. */
8081 }
8082 return disp->GetImageOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8083 }
8084
GetImageViewOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkImageViewCaptureDescriptorDataInfoEXT * pInfo,void * pData)8085 VKAPI_ATTR VkResult VKAPI_CALL GetImageViewOpaqueCaptureDescriptorDataEXT(
8086 VkDevice device,
8087 const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
8088 void* pData) {
8089 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8090 if (NULL == disp) {
8091 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8092 "vkGetImageViewOpaqueCaptureDescriptorDataEXT: Invalid device "
8093 "[VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-device-parameter]");
8094 abort(); /* Intentionally fail so user can correct issue. */
8095 }
8096 return disp->GetImageViewOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8097 }
8098
GetSamplerOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkSamplerCaptureDescriptorDataInfoEXT * pInfo,void * pData)8099 VKAPI_ATTR VkResult VKAPI_CALL GetSamplerOpaqueCaptureDescriptorDataEXT(
8100 VkDevice device,
8101 const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
8102 void* pData) {
8103 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8104 if (NULL == disp) {
8105 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8106 "vkGetSamplerOpaqueCaptureDescriptorDataEXT: Invalid device "
8107 "[VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-device-parameter]");
8108 abort(); /* Intentionally fail so user can correct issue. */
8109 }
8110 return disp->GetSamplerOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8111 }
8112
GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(VkDevice device,const VkAccelerationStructureCaptureDescriptorDataInfoEXT * pInfo,void * pData)8113 VKAPI_ATTR VkResult VKAPI_CALL GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
8114 VkDevice device,
8115 const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
8116 void* pData) {
8117 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8118 if (NULL == disp) {
8119 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8120 "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT: Invalid device "
8121 "[VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-device-parameter]");
8122 abort(); /* Intentionally fail so user can correct issue. */
8123 }
8124 return disp->GetAccelerationStructureOpaqueCaptureDescriptorDataEXT(device, pInfo, pData);
8125 }
8126
8127
8128 // ---- VK_NV_fragment_shading_rate_enums extension trampoline/terminators
8129
CmdSetFragmentShadingRateEnumNV(VkCommandBuffer commandBuffer,VkFragmentShadingRateNV shadingRate,const VkFragmentShadingRateCombinerOpKHR combinerOps[2])8130 VKAPI_ATTR void VKAPI_CALL CmdSetFragmentShadingRateEnumNV(
8131 VkCommandBuffer commandBuffer,
8132 VkFragmentShadingRateNV shadingRate,
8133 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) {
8134 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8135 if (NULL == disp) {
8136 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8137 "vkCmdSetFragmentShadingRateEnumNV: Invalid commandBuffer "
8138 "[VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter]");
8139 abort(); /* Intentionally fail so user can correct issue. */
8140 }
8141 disp->CmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps);
8142 }
8143
8144
8145 // ---- VK_EXT_device_fault extension trampoline/terminators
8146
GetDeviceFaultInfoEXT(VkDevice device,VkDeviceFaultCountsEXT * pFaultCounts,VkDeviceFaultInfoEXT * pFaultInfo)8147 VKAPI_ATTR VkResult VKAPI_CALL GetDeviceFaultInfoEXT(
8148 VkDevice device,
8149 VkDeviceFaultCountsEXT* pFaultCounts,
8150 VkDeviceFaultInfoEXT* pFaultInfo) {
8151 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8152 if (NULL == disp) {
8153 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8154 "vkGetDeviceFaultInfoEXT: Invalid device "
8155 "[VUID-vkGetDeviceFaultInfoEXT-device-parameter]");
8156 abort(); /* Intentionally fail so user can correct issue. */
8157 }
8158 return disp->GetDeviceFaultInfoEXT(device, pFaultCounts, pFaultInfo);
8159 }
8160
8161
8162 // ---- VK_NV_acquire_winrt_display extension trampoline/terminators
8163
8164 #if defined(VK_USE_PLATFORM_WIN32_KHR)
AcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display)8165 VKAPI_ATTR VkResult VKAPI_CALL AcquireWinrtDisplayNV(
8166 VkPhysicalDevice physicalDevice,
8167 VkDisplayKHR display) {
8168 const VkLayerInstanceDispatchTable *disp;
8169 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8170 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8171 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8172 "vkAcquireWinrtDisplayNV: Invalid physicalDevice "
8173 "[VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter]");
8174 abort(); /* Intentionally fail so user can correct issue. */
8175 }
8176 disp = loader_get_instance_layer_dispatch(physicalDevice);
8177 return disp->AcquireWinrtDisplayNV(unwrapped_phys_dev, display);
8178 }
8179
terminator_AcquireWinrtDisplayNV(VkPhysicalDevice physicalDevice,VkDisplayKHR display)8180 VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireWinrtDisplayNV(
8181 VkPhysicalDevice physicalDevice,
8182 VkDisplayKHR display) {
8183 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8184 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8185 if (NULL == icd_term->dispatch.AcquireWinrtDisplayNV) {
8186 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
8187 "ICD associated with VkPhysicalDevice does not support AcquireWinrtDisplayNV");
8188 abort(); /* Intentionally fail so user can correct issue. */
8189 }
8190 return icd_term->dispatch.AcquireWinrtDisplayNV(phys_dev_term->phys_dev, display);
8191 }
8192
8193 #endif // VK_USE_PLATFORM_WIN32_KHR
8194 #if defined(VK_USE_PLATFORM_WIN32_KHR)
GetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay)8195 VKAPI_ATTR VkResult VKAPI_CALL GetWinrtDisplayNV(
8196 VkPhysicalDevice physicalDevice,
8197 uint32_t deviceRelativeId,
8198 VkDisplayKHR* pDisplay) {
8199 const VkLayerInstanceDispatchTable *disp;
8200 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
8201 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
8202 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8203 "vkGetWinrtDisplayNV: Invalid physicalDevice "
8204 "[VUID-vkGetWinrtDisplayNV-physicalDevice-parameter]");
8205 abort(); /* Intentionally fail so user can correct issue. */
8206 }
8207 disp = loader_get_instance_layer_dispatch(physicalDevice);
8208 return disp->GetWinrtDisplayNV(unwrapped_phys_dev, deviceRelativeId, pDisplay);
8209 }
8210
terminator_GetWinrtDisplayNV(VkPhysicalDevice physicalDevice,uint32_t deviceRelativeId,VkDisplayKHR * pDisplay)8211 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetWinrtDisplayNV(
8212 VkPhysicalDevice physicalDevice,
8213 uint32_t deviceRelativeId,
8214 VkDisplayKHR* pDisplay) {
8215 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
8216 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
8217 if (NULL == icd_term->dispatch.GetWinrtDisplayNV) {
8218 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
8219 "ICD associated with VkPhysicalDevice does not support GetWinrtDisplayNV");
8220 abort(); /* Intentionally fail so user can correct issue. */
8221 }
8222 return icd_term->dispatch.GetWinrtDisplayNV(phys_dev_term->phys_dev, deviceRelativeId, pDisplay);
8223 }
8224
8225 #endif // VK_USE_PLATFORM_WIN32_KHR
8226
8227 // ---- VK_EXT_vertex_input_dynamic_state extension trampoline/terminators
8228
CmdSetVertexInputEXT(VkCommandBuffer commandBuffer,uint32_t vertexBindingDescriptionCount,const VkVertexInputBindingDescription2EXT * pVertexBindingDescriptions,uint32_t vertexAttributeDescriptionCount,const VkVertexInputAttributeDescription2EXT * pVertexAttributeDescriptions)8229 VKAPI_ATTR void VKAPI_CALL CmdSetVertexInputEXT(
8230 VkCommandBuffer commandBuffer,
8231 uint32_t vertexBindingDescriptionCount,
8232 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
8233 uint32_t vertexAttributeDescriptionCount,
8234 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) {
8235 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8236 if (NULL == disp) {
8237 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8238 "vkCmdSetVertexInputEXT: Invalid commandBuffer "
8239 "[VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter]");
8240 abort(); /* Intentionally fail so user can correct issue. */
8241 }
8242 disp->CmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions);
8243 }
8244
8245
8246 // ---- VK_FUCHSIA_external_memory extension trampoline/terminators
8247
8248 #if defined(VK_USE_PLATFORM_FUCHSIA)
GetMemoryZirconHandleFUCHSIA(VkDevice device,const VkMemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle)8249 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandleFUCHSIA(
8250 VkDevice device,
8251 const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
8252 zx_handle_t* pZirconHandle) {
8253 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8254 if (NULL == disp) {
8255 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8256 "vkGetMemoryZirconHandleFUCHSIA: Invalid device "
8257 "[VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter]");
8258 abort(); /* Intentionally fail so user can correct issue. */
8259 }
8260 return disp->GetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
8261 }
8262
8263 #endif // VK_USE_PLATFORM_FUCHSIA
8264 #if defined(VK_USE_PLATFORM_FUCHSIA)
GetMemoryZirconHandlePropertiesFUCHSIA(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle,VkMemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties)8265 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryZirconHandlePropertiesFUCHSIA(
8266 VkDevice device,
8267 VkExternalMemoryHandleTypeFlagBits handleType,
8268 zx_handle_t zirconHandle,
8269 VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) {
8270 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8271 if (NULL == disp) {
8272 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8273 "vkGetMemoryZirconHandlePropertiesFUCHSIA: Invalid device "
8274 "[VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter]");
8275 abort(); /* Intentionally fail so user can correct issue. */
8276 }
8277 return disp->GetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties);
8278 }
8279
8280 #endif // VK_USE_PLATFORM_FUCHSIA
8281
8282 // ---- VK_FUCHSIA_external_semaphore extension trampoline/terminators
8283
8284 #if defined(VK_USE_PLATFORM_FUCHSIA)
ImportSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo)8285 VKAPI_ATTR VkResult VKAPI_CALL ImportSemaphoreZirconHandleFUCHSIA(
8286 VkDevice device,
8287 const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) {
8288 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8289 if (NULL == disp) {
8290 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8291 "vkImportSemaphoreZirconHandleFUCHSIA: Invalid device "
8292 "[VUID-vkImportSemaphoreZirconHandleFUCHSIA-device-parameter]");
8293 abort(); /* Intentionally fail so user can correct issue. */
8294 }
8295 return disp->ImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo);
8296 }
8297
8298 #endif // VK_USE_PLATFORM_FUCHSIA
8299 #if defined(VK_USE_PLATFORM_FUCHSIA)
GetSemaphoreZirconHandleFUCHSIA(VkDevice device,const VkSemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle)8300 VKAPI_ATTR VkResult VKAPI_CALL GetSemaphoreZirconHandleFUCHSIA(
8301 VkDevice device,
8302 const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo,
8303 zx_handle_t* pZirconHandle) {
8304 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8305 if (NULL == disp) {
8306 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8307 "vkGetSemaphoreZirconHandleFUCHSIA: Invalid device "
8308 "[VUID-vkGetSemaphoreZirconHandleFUCHSIA-device-parameter]");
8309 abort(); /* Intentionally fail so user can correct issue. */
8310 }
8311 return disp->GetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle);
8312 }
8313
8314 #endif // VK_USE_PLATFORM_FUCHSIA
8315
8316 // ---- VK_FUCHSIA_buffer_collection extension trampoline/terminators
8317
8318 #if defined(VK_USE_PLATFORM_FUCHSIA)
CreateBufferCollectionFUCHSIA(VkDevice device,const VkBufferCollectionCreateInfoFUCHSIA * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferCollectionFUCHSIA * pCollection)8319 VKAPI_ATTR VkResult VKAPI_CALL CreateBufferCollectionFUCHSIA(
8320 VkDevice device,
8321 const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo,
8322 const VkAllocationCallbacks* pAllocator,
8323 VkBufferCollectionFUCHSIA* pCollection) {
8324 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8325 if (NULL == disp) {
8326 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8327 "vkCreateBufferCollectionFUCHSIA: Invalid device "
8328 "[VUID-vkCreateBufferCollectionFUCHSIA-device-parameter]");
8329 abort(); /* Intentionally fail so user can correct issue. */
8330 }
8331 return disp->CreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection);
8332 }
8333
8334 #endif // VK_USE_PLATFORM_FUCHSIA
8335 #if defined(VK_USE_PLATFORM_FUCHSIA)
SetBufferCollectionImageConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkImageConstraintsInfoFUCHSIA * pImageConstraintsInfo)8336 VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionImageConstraintsFUCHSIA(
8337 VkDevice device,
8338 VkBufferCollectionFUCHSIA collection,
8339 const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) {
8340 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8341 if (NULL == disp) {
8342 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8343 "vkSetBufferCollectionImageConstraintsFUCHSIA: Invalid device "
8344 "[VUID-vkSetBufferCollectionImageConstraintsFUCHSIA-device-parameter]");
8345 abort(); /* Intentionally fail so user can correct issue. */
8346 }
8347 return disp->SetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo);
8348 }
8349
8350 #endif // VK_USE_PLATFORM_FUCHSIA
8351 #if defined(VK_USE_PLATFORM_FUCHSIA)
SetBufferCollectionBufferConstraintsFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkBufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo)8352 VKAPI_ATTR VkResult VKAPI_CALL SetBufferCollectionBufferConstraintsFUCHSIA(
8353 VkDevice device,
8354 VkBufferCollectionFUCHSIA collection,
8355 const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) {
8356 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8357 if (NULL == disp) {
8358 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8359 "vkSetBufferCollectionBufferConstraintsFUCHSIA: Invalid device "
8360 "[VUID-vkSetBufferCollectionBufferConstraintsFUCHSIA-device-parameter]");
8361 abort(); /* Intentionally fail so user can correct issue. */
8362 }
8363 return disp->SetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo);
8364 }
8365
8366 #endif // VK_USE_PLATFORM_FUCHSIA
8367 #if defined(VK_USE_PLATFORM_FUCHSIA)
DestroyBufferCollectionFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,const VkAllocationCallbacks * pAllocator)8368 VKAPI_ATTR void VKAPI_CALL DestroyBufferCollectionFUCHSIA(
8369 VkDevice device,
8370 VkBufferCollectionFUCHSIA collection,
8371 const VkAllocationCallbacks* pAllocator) {
8372 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8373 if (NULL == disp) {
8374 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8375 "vkDestroyBufferCollectionFUCHSIA: Invalid device "
8376 "[VUID-vkDestroyBufferCollectionFUCHSIA-device-parameter]");
8377 abort(); /* Intentionally fail so user can correct issue. */
8378 }
8379 disp->DestroyBufferCollectionFUCHSIA(device, collection, pAllocator);
8380 }
8381
8382 #endif // VK_USE_PLATFORM_FUCHSIA
8383 #if defined(VK_USE_PLATFORM_FUCHSIA)
GetBufferCollectionPropertiesFUCHSIA(VkDevice device,VkBufferCollectionFUCHSIA collection,VkBufferCollectionPropertiesFUCHSIA * pProperties)8384 VKAPI_ATTR VkResult VKAPI_CALL GetBufferCollectionPropertiesFUCHSIA(
8385 VkDevice device,
8386 VkBufferCollectionFUCHSIA collection,
8387 VkBufferCollectionPropertiesFUCHSIA* pProperties) {
8388 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8389 if (NULL == disp) {
8390 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8391 "vkGetBufferCollectionPropertiesFUCHSIA: Invalid device "
8392 "[VUID-vkGetBufferCollectionPropertiesFUCHSIA-device-parameter]");
8393 abort(); /* Intentionally fail so user can correct issue. */
8394 }
8395 return disp->GetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties);
8396 }
8397
8398 #endif // VK_USE_PLATFORM_FUCHSIA
8399
8400 // ---- VK_HUAWEI_subpass_shading extension trampoline/terminators
8401
GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(VkDevice device,VkRenderPass renderpass,VkExtent2D * pMaxWorkgroupSize)8402 VKAPI_ATTR VkResult VKAPI_CALL GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
8403 VkDevice device,
8404 VkRenderPass renderpass,
8405 VkExtent2D* pMaxWorkgroupSize) {
8406 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8407 if (NULL == disp) {
8408 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8409 "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI: Invalid device "
8410 "[VUID-vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI-device-parameter]");
8411 abort(); /* Intentionally fail so user can correct issue. */
8412 }
8413 return disp->GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize);
8414 }
8415
CmdSubpassShadingHUAWEI(VkCommandBuffer commandBuffer)8416 VKAPI_ATTR void VKAPI_CALL CmdSubpassShadingHUAWEI(
8417 VkCommandBuffer commandBuffer) {
8418 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8419 if (NULL == disp) {
8420 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8421 "vkCmdSubpassShadingHUAWEI: Invalid commandBuffer "
8422 "[VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-parameter]");
8423 abort(); /* Intentionally fail so user can correct issue. */
8424 }
8425 disp->CmdSubpassShadingHUAWEI(commandBuffer);
8426 }
8427
8428
8429 // ---- VK_HUAWEI_invocation_mask extension trampoline/terminators
8430
CmdBindInvocationMaskHUAWEI(VkCommandBuffer commandBuffer,VkImageView imageView,VkImageLayout imageLayout)8431 VKAPI_ATTR void VKAPI_CALL CmdBindInvocationMaskHUAWEI(
8432 VkCommandBuffer commandBuffer,
8433 VkImageView imageView,
8434 VkImageLayout imageLayout) {
8435 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8436 if (NULL == disp) {
8437 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8438 "vkCmdBindInvocationMaskHUAWEI: Invalid commandBuffer "
8439 "[VUID-vkCmdBindInvocationMaskHUAWEI-commandBuffer-parameter]");
8440 abort(); /* Intentionally fail so user can correct issue. */
8441 }
8442 disp->CmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout);
8443 }
8444
8445
8446 // ---- VK_NV_external_memory_rdma extension trampoline/terminators
8447
GetMemoryRemoteAddressNV(VkDevice device,const VkMemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,VkRemoteAddressNV * pAddress)8448 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryRemoteAddressNV(
8449 VkDevice device,
8450 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
8451 VkRemoteAddressNV* pAddress) {
8452 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8453 if (NULL == disp) {
8454 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8455 "vkGetMemoryRemoteAddressNV: Invalid device "
8456 "[VUID-vkGetMemoryRemoteAddressNV-device-parameter]");
8457 abort(); /* Intentionally fail so user can correct issue. */
8458 }
8459 return disp->GetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress);
8460 }
8461
8462
8463 // ---- VK_EXT_pipeline_properties extension trampoline/terminators
8464
GetPipelinePropertiesEXT(VkDevice device,const VkPipelineInfoEXT * pPipelineInfo,VkBaseOutStructure * pPipelineProperties)8465 VKAPI_ATTR VkResult VKAPI_CALL GetPipelinePropertiesEXT(
8466 VkDevice device,
8467 const VkPipelineInfoEXT* pPipelineInfo,
8468 VkBaseOutStructure* pPipelineProperties) {
8469 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8470 if (NULL == disp) {
8471 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8472 "vkGetPipelinePropertiesEXT: Invalid device "
8473 "[VUID-vkGetPipelinePropertiesEXT-device-parameter]");
8474 abort(); /* Intentionally fail so user can correct issue. */
8475 }
8476 return disp->GetPipelinePropertiesEXT(device, pPipelineInfo, pPipelineProperties);
8477 }
8478
8479
8480 // ---- VK_EXT_extended_dynamic_state2 extension trampoline/terminators
8481
CmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer,uint32_t patchControlPoints)8482 VKAPI_ATTR void VKAPI_CALL CmdSetPatchControlPointsEXT(
8483 VkCommandBuffer commandBuffer,
8484 uint32_t patchControlPoints) {
8485 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8486 if (NULL == disp) {
8487 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8488 "vkCmdSetPatchControlPointsEXT: Invalid commandBuffer "
8489 "[VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter]");
8490 abort(); /* Intentionally fail so user can correct issue. */
8491 }
8492 disp->CmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints);
8493 }
8494
CmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)8495 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizerDiscardEnableEXT(
8496 VkCommandBuffer commandBuffer,
8497 VkBool32 rasterizerDiscardEnable) {
8498 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8499 if (NULL == disp) {
8500 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8501 "vkCmdSetRasterizerDiscardEnableEXT: Invalid commandBuffer "
8502 "[VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter]");
8503 abort(); /* Intentionally fail so user can correct issue. */
8504 }
8505 disp->CmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable);
8506 }
8507
CmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)8508 VKAPI_ATTR void VKAPI_CALL CmdSetDepthBiasEnableEXT(
8509 VkCommandBuffer commandBuffer,
8510 VkBool32 depthBiasEnable) {
8511 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8512 if (NULL == disp) {
8513 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8514 "vkCmdSetDepthBiasEnableEXT: Invalid commandBuffer "
8515 "[VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter]");
8516 abort(); /* Intentionally fail so user can correct issue. */
8517 }
8518 disp->CmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable);
8519 }
8520
CmdSetLogicOpEXT(VkCommandBuffer commandBuffer,VkLogicOp logicOp)8521 VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEXT(
8522 VkCommandBuffer commandBuffer,
8523 VkLogicOp logicOp) {
8524 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8525 if (NULL == disp) {
8526 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8527 "vkCmdSetLogicOpEXT: Invalid commandBuffer "
8528 "[VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter]");
8529 abort(); /* Intentionally fail so user can correct issue. */
8530 }
8531 disp->CmdSetLogicOpEXT(commandBuffer, logicOp);
8532 }
8533
CmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)8534 VKAPI_ATTR void VKAPI_CALL CmdSetPrimitiveRestartEnableEXT(
8535 VkCommandBuffer commandBuffer,
8536 VkBool32 primitiveRestartEnable) {
8537 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8538 if (NULL == disp) {
8539 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8540 "vkCmdSetPrimitiveRestartEnableEXT: Invalid commandBuffer "
8541 "[VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter]");
8542 abort(); /* Intentionally fail so user can correct issue. */
8543 }
8544 disp->CmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable);
8545 }
8546
8547
8548 // ---- VK_EXT_color_write_enable extension trampoline/terminators
8549
CmdSetColorWriteEnableEXT(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkBool32 * pColorWriteEnables)8550 VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteEnableEXT(
8551 VkCommandBuffer commandBuffer,
8552 uint32_t attachmentCount,
8553 const VkBool32* pColorWriteEnables) {
8554 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8555 if (NULL == disp) {
8556 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8557 "vkCmdSetColorWriteEnableEXT: Invalid commandBuffer "
8558 "[VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter]");
8559 abort(); /* Intentionally fail so user can correct issue. */
8560 }
8561 disp->CmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables);
8562 }
8563
8564
8565 // ---- VK_EXT_multi_draw extension trampoline/terminators
8566
CmdDrawMultiEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawInfoEXT * pVertexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride)8567 VKAPI_ATTR void VKAPI_CALL CmdDrawMultiEXT(
8568 VkCommandBuffer commandBuffer,
8569 uint32_t drawCount,
8570 const VkMultiDrawInfoEXT* pVertexInfo,
8571 uint32_t instanceCount,
8572 uint32_t firstInstance,
8573 uint32_t stride) {
8574 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8575 if (NULL == disp) {
8576 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8577 "vkCmdDrawMultiEXT: Invalid commandBuffer "
8578 "[VUID-vkCmdDrawMultiEXT-commandBuffer-parameter]");
8579 abort(); /* Intentionally fail so user can correct issue. */
8580 }
8581 disp->CmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride);
8582 }
8583
CmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer,uint32_t drawCount,const VkMultiDrawIndexedInfoEXT * pIndexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride,const int32_t * pVertexOffset)8584 VKAPI_ATTR void VKAPI_CALL CmdDrawMultiIndexedEXT(
8585 VkCommandBuffer commandBuffer,
8586 uint32_t drawCount,
8587 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
8588 uint32_t instanceCount,
8589 uint32_t firstInstance,
8590 uint32_t stride,
8591 const int32_t* pVertexOffset) {
8592 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8593 if (NULL == disp) {
8594 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8595 "vkCmdDrawMultiIndexedEXT: Invalid commandBuffer "
8596 "[VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-parameter]");
8597 abort(); /* Intentionally fail so user can correct issue. */
8598 }
8599 disp->CmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset);
8600 }
8601
8602
8603 // ---- VK_EXT_opacity_micromap extension trampoline/terminators
8604
CreateMicromapEXT(VkDevice device,const VkMicromapCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkMicromapEXT * pMicromap)8605 VKAPI_ATTR VkResult VKAPI_CALL CreateMicromapEXT(
8606 VkDevice device,
8607 const VkMicromapCreateInfoEXT* pCreateInfo,
8608 const VkAllocationCallbacks* pAllocator,
8609 VkMicromapEXT* pMicromap) {
8610 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8611 if (NULL == disp) {
8612 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8613 "vkCreateMicromapEXT: Invalid device "
8614 "[VUID-vkCreateMicromapEXT-device-parameter]");
8615 abort(); /* Intentionally fail so user can correct issue. */
8616 }
8617 return disp->CreateMicromapEXT(device, pCreateInfo, pAllocator, pMicromap);
8618 }
8619
DestroyMicromapEXT(VkDevice device,VkMicromapEXT micromap,const VkAllocationCallbacks * pAllocator)8620 VKAPI_ATTR void VKAPI_CALL DestroyMicromapEXT(
8621 VkDevice device,
8622 VkMicromapEXT micromap,
8623 const VkAllocationCallbacks* pAllocator) {
8624 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8625 if (NULL == disp) {
8626 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8627 "vkDestroyMicromapEXT: Invalid device "
8628 "[VUID-vkDestroyMicromapEXT-device-parameter]");
8629 abort(); /* Intentionally fail so user can correct issue. */
8630 }
8631 disp->DestroyMicromapEXT(device, micromap, pAllocator);
8632 }
8633
CmdBuildMicromapsEXT(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkMicromapBuildInfoEXT * pInfos)8634 VKAPI_ATTR void VKAPI_CALL CmdBuildMicromapsEXT(
8635 VkCommandBuffer commandBuffer,
8636 uint32_t infoCount,
8637 const VkMicromapBuildInfoEXT* pInfos) {
8638 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8639 if (NULL == disp) {
8640 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8641 "vkCmdBuildMicromapsEXT: Invalid commandBuffer "
8642 "[VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter]");
8643 abort(); /* Intentionally fail so user can correct issue. */
8644 }
8645 disp->CmdBuildMicromapsEXT(commandBuffer, infoCount, pInfos);
8646 }
8647
BuildMicromapsEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkMicromapBuildInfoEXT * pInfos)8648 VKAPI_ATTR VkResult VKAPI_CALL BuildMicromapsEXT(
8649 VkDevice device,
8650 VkDeferredOperationKHR deferredOperation,
8651 uint32_t infoCount,
8652 const VkMicromapBuildInfoEXT* pInfos) {
8653 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8654 if (NULL == disp) {
8655 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8656 "vkBuildMicromapsEXT: Invalid device "
8657 "[VUID-vkBuildMicromapsEXT-device-parameter]");
8658 abort(); /* Intentionally fail so user can correct issue. */
8659 }
8660 return disp->BuildMicromapsEXT(device, deferredOperation, infoCount, pInfos);
8661 }
8662
CopyMicromapEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMicromapInfoEXT * pInfo)8663 VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapEXT(
8664 VkDevice device,
8665 VkDeferredOperationKHR deferredOperation,
8666 const VkCopyMicromapInfoEXT* pInfo) {
8667 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8668 if (NULL == disp) {
8669 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8670 "vkCopyMicromapEXT: Invalid device "
8671 "[VUID-vkCopyMicromapEXT-device-parameter]");
8672 abort(); /* Intentionally fail so user can correct issue. */
8673 }
8674 return disp->CopyMicromapEXT(device, deferredOperation, pInfo);
8675 }
8676
CopyMicromapToMemoryEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMicromapToMemoryInfoEXT * pInfo)8677 VKAPI_ATTR VkResult VKAPI_CALL CopyMicromapToMemoryEXT(
8678 VkDevice device,
8679 VkDeferredOperationKHR deferredOperation,
8680 const VkCopyMicromapToMemoryInfoEXT* pInfo) {
8681 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8682 if (NULL == disp) {
8683 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8684 "vkCopyMicromapToMemoryEXT: Invalid device "
8685 "[VUID-vkCopyMicromapToMemoryEXT-device-parameter]");
8686 abort(); /* Intentionally fail so user can correct issue. */
8687 }
8688 return disp->CopyMicromapToMemoryEXT(device, deferredOperation, pInfo);
8689 }
8690
CopyMemoryToMicromapEXT(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToMicromapInfoEXT * pInfo)8691 VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToMicromapEXT(
8692 VkDevice device,
8693 VkDeferredOperationKHR deferredOperation,
8694 const VkCopyMemoryToMicromapInfoEXT* pInfo) {
8695 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8696 if (NULL == disp) {
8697 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8698 "vkCopyMemoryToMicromapEXT: Invalid device "
8699 "[VUID-vkCopyMemoryToMicromapEXT-device-parameter]");
8700 abort(); /* Intentionally fail so user can correct issue. */
8701 }
8702 return disp->CopyMemoryToMicromapEXT(device, deferredOperation, pInfo);
8703 }
8704
WriteMicromapsPropertiesEXT(VkDevice device,uint32_t micromapCount,const VkMicromapEXT * pMicromaps,VkQueryType queryType,size_t dataSize,void * pData,size_t stride)8705 VKAPI_ATTR VkResult VKAPI_CALL WriteMicromapsPropertiesEXT(
8706 VkDevice device,
8707 uint32_t micromapCount,
8708 const VkMicromapEXT* pMicromaps,
8709 VkQueryType queryType,
8710 size_t dataSize,
8711 void* pData,
8712 size_t stride) {
8713 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8714 if (NULL == disp) {
8715 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8716 "vkWriteMicromapsPropertiesEXT: Invalid device "
8717 "[VUID-vkWriteMicromapsPropertiesEXT-device-parameter]");
8718 abort(); /* Intentionally fail so user can correct issue. */
8719 }
8720 return disp->WriteMicromapsPropertiesEXT(device, micromapCount, pMicromaps, queryType, dataSize, pData, stride);
8721 }
8722
CmdCopyMicromapEXT(VkCommandBuffer commandBuffer,const VkCopyMicromapInfoEXT * pInfo)8723 VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapEXT(
8724 VkCommandBuffer commandBuffer,
8725 const VkCopyMicromapInfoEXT* pInfo) {
8726 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8727 if (NULL == disp) {
8728 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8729 "vkCmdCopyMicromapEXT: Invalid commandBuffer "
8730 "[VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter]");
8731 abort(); /* Intentionally fail so user can correct issue. */
8732 }
8733 disp->CmdCopyMicromapEXT(commandBuffer, pInfo);
8734 }
8735
CmdCopyMicromapToMemoryEXT(VkCommandBuffer commandBuffer,const VkCopyMicromapToMemoryInfoEXT * pInfo)8736 VKAPI_ATTR void VKAPI_CALL CmdCopyMicromapToMemoryEXT(
8737 VkCommandBuffer commandBuffer,
8738 const VkCopyMicromapToMemoryInfoEXT* pInfo) {
8739 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8740 if (NULL == disp) {
8741 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8742 "vkCmdCopyMicromapToMemoryEXT: Invalid commandBuffer "
8743 "[VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter]");
8744 abort(); /* Intentionally fail so user can correct issue. */
8745 }
8746 disp->CmdCopyMicromapToMemoryEXT(commandBuffer, pInfo);
8747 }
8748
CmdCopyMemoryToMicromapEXT(VkCommandBuffer commandBuffer,const VkCopyMemoryToMicromapInfoEXT * pInfo)8749 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToMicromapEXT(
8750 VkCommandBuffer commandBuffer,
8751 const VkCopyMemoryToMicromapInfoEXT* pInfo) {
8752 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8753 if (NULL == disp) {
8754 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8755 "vkCmdCopyMemoryToMicromapEXT: Invalid commandBuffer "
8756 "[VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter]");
8757 abort(); /* Intentionally fail so user can correct issue. */
8758 }
8759 disp->CmdCopyMemoryToMicromapEXT(commandBuffer, pInfo);
8760 }
8761
CmdWriteMicromapsPropertiesEXT(VkCommandBuffer commandBuffer,uint32_t micromapCount,const VkMicromapEXT * pMicromaps,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)8762 VKAPI_ATTR void VKAPI_CALL CmdWriteMicromapsPropertiesEXT(
8763 VkCommandBuffer commandBuffer,
8764 uint32_t micromapCount,
8765 const VkMicromapEXT* pMicromaps,
8766 VkQueryType queryType,
8767 VkQueryPool queryPool,
8768 uint32_t firstQuery) {
8769 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8770 if (NULL == disp) {
8771 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8772 "vkCmdWriteMicromapsPropertiesEXT: Invalid commandBuffer "
8773 "[VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter]");
8774 abort(); /* Intentionally fail so user can correct issue. */
8775 }
8776 disp->CmdWriteMicromapsPropertiesEXT(commandBuffer, micromapCount, pMicromaps, queryType, queryPool, firstQuery);
8777 }
8778
GetDeviceMicromapCompatibilityEXT(VkDevice device,const VkMicromapVersionInfoEXT * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility)8779 VKAPI_ATTR void VKAPI_CALL GetDeviceMicromapCompatibilityEXT(
8780 VkDevice device,
8781 const VkMicromapVersionInfoEXT* pVersionInfo,
8782 VkAccelerationStructureCompatibilityKHR* pCompatibility) {
8783 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8784 if (NULL == disp) {
8785 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8786 "vkGetDeviceMicromapCompatibilityEXT: Invalid device "
8787 "[VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter]");
8788 abort(); /* Intentionally fail so user can correct issue. */
8789 }
8790 disp->GetDeviceMicromapCompatibilityEXT(device, pVersionInfo, pCompatibility);
8791 }
8792
GetMicromapBuildSizesEXT(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkMicromapBuildInfoEXT * pBuildInfo,VkMicromapBuildSizesInfoEXT * pSizeInfo)8793 VKAPI_ATTR void VKAPI_CALL GetMicromapBuildSizesEXT(
8794 VkDevice device,
8795 VkAccelerationStructureBuildTypeKHR buildType,
8796 const VkMicromapBuildInfoEXT* pBuildInfo,
8797 VkMicromapBuildSizesInfoEXT* pSizeInfo) {
8798 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8799 if (NULL == disp) {
8800 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8801 "vkGetMicromapBuildSizesEXT: Invalid device "
8802 "[VUID-vkGetMicromapBuildSizesEXT-device-parameter]");
8803 abort(); /* Intentionally fail so user can correct issue. */
8804 }
8805 disp->GetMicromapBuildSizesEXT(device, buildType, pBuildInfo, pSizeInfo);
8806 }
8807
8808
8809 // ---- VK_HUAWEI_cluster_culling_shader extension trampoline/terminators
8810
CmdDrawClusterHUAWEI(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)8811 VKAPI_ATTR void VKAPI_CALL CmdDrawClusterHUAWEI(
8812 VkCommandBuffer commandBuffer,
8813 uint32_t groupCountX,
8814 uint32_t groupCountY,
8815 uint32_t groupCountZ) {
8816 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8817 if (NULL == disp) {
8818 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8819 "vkCmdDrawClusterHUAWEI: Invalid commandBuffer "
8820 "[VUID-vkCmdDrawClusterHUAWEI-commandBuffer-parameter]");
8821 abort(); /* Intentionally fail so user can correct issue. */
8822 }
8823 disp->CmdDrawClusterHUAWEI(commandBuffer, groupCountX, groupCountY, groupCountZ);
8824 }
8825
CmdDrawClusterIndirectHUAWEI(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)8826 VKAPI_ATTR void VKAPI_CALL CmdDrawClusterIndirectHUAWEI(
8827 VkCommandBuffer commandBuffer,
8828 VkBuffer buffer,
8829 VkDeviceSize offset) {
8830 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8831 if (NULL == disp) {
8832 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8833 "vkCmdDrawClusterIndirectHUAWEI: Invalid commandBuffer "
8834 "[VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-parameter]");
8835 abort(); /* Intentionally fail so user can correct issue. */
8836 }
8837 disp->CmdDrawClusterIndirectHUAWEI(commandBuffer, buffer, offset);
8838 }
8839
8840
8841 // ---- VK_EXT_pageable_device_local_memory extension trampoline/terminators
8842
SetDeviceMemoryPriorityEXT(VkDevice device,VkDeviceMemory memory,float priority)8843 VKAPI_ATTR void VKAPI_CALL SetDeviceMemoryPriorityEXT(
8844 VkDevice device,
8845 VkDeviceMemory memory,
8846 float priority) {
8847 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8848 if (NULL == disp) {
8849 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8850 "vkSetDeviceMemoryPriorityEXT: Invalid device "
8851 "[VUID-vkSetDeviceMemoryPriorityEXT-device-parameter]");
8852 abort(); /* Intentionally fail so user can correct issue. */
8853 }
8854 disp->SetDeviceMemoryPriorityEXT(device, memory, priority);
8855 }
8856
8857
8858 // ---- VK_VALVE_descriptor_set_host_mapping extension trampoline/terminators
8859
GetDescriptorSetLayoutHostMappingInfoVALVE(VkDevice device,const VkDescriptorSetBindingReferenceVALVE * pBindingReference,VkDescriptorSetLayoutHostMappingInfoVALVE * pHostMapping)8860 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetLayoutHostMappingInfoVALVE(
8861 VkDevice device,
8862 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
8863 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping) {
8864 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8865 if (NULL == disp) {
8866 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8867 "vkGetDescriptorSetLayoutHostMappingInfoVALVE: Invalid device "
8868 "[VUID-vkGetDescriptorSetLayoutHostMappingInfoVALVE-device-parameter]");
8869 abort(); /* Intentionally fail so user can correct issue. */
8870 }
8871 disp->GetDescriptorSetLayoutHostMappingInfoVALVE(device, pBindingReference, pHostMapping);
8872 }
8873
GetDescriptorSetHostMappingVALVE(VkDevice device,VkDescriptorSet descriptorSet,void ** ppData)8874 VKAPI_ATTR void VKAPI_CALL GetDescriptorSetHostMappingVALVE(
8875 VkDevice device,
8876 VkDescriptorSet descriptorSet,
8877 void** ppData) {
8878 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8879 if (NULL == disp) {
8880 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8881 "vkGetDescriptorSetHostMappingVALVE: Invalid device "
8882 "[VUID-vkGetDescriptorSetHostMappingVALVE-device-parameter]");
8883 abort(); /* Intentionally fail so user can correct issue. */
8884 }
8885 disp->GetDescriptorSetHostMappingVALVE(device, descriptorSet, ppData);
8886 }
8887
8888
8889 // ---- VK_NV_copy_memory_indirect extension trampoline/terminators
8890
CmdCopyMemoryIndirectNV(VkCommandBuffer commandBuffer,VkDeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride)8891 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryIndirectNV(
8892 VkCommandBuffer commandBuffer,
8893 VkDeviceAddress copyBufferAddress,
8894 uint32_t copyCount,
8895 uint32_t stride) {
8896 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8897 if (NULL == disp) {
8898 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8899 "vkCmdCopyMemoryIndirectNV: Invalid commandBuffer "
8900 "[VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-parameter]");
8901 abort(); /* Intentionally fail so user can correct issue. */
8902 }
8903 disp->CmdCopyMemoryIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride);
8904 }
8905
CmdCopyMemoryToImageIndirectNV(VkCommandBuffer commandBuffer,VkDeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride,VkImage dstImage,VkImageLayout dstImageLayout,const VkImageSubresourceLayers * pImageSubresources)8906 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToImageIndirectNV(
8907 VkCommandBuffer commandBuffer,
8908 VkDeviceAddress copyBufferAddress,
8909 uint32_t copyCount,
8910 uint32_t stride,
8911 VkImage dstImage,
8912 VkImageLayout dstImageLayout,
8913 const VkImageSubresourceLayers* pImageSubresources) {
8914 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8915 if (NULL == disp) {
8916 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8917 "vkCmdCopyMemoryToImageIndirectNV: Invalid commandBuffer "
8918 "[VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-parameter]");
8919 abort(); /* Intentionally fail so user can correct issue. */
8920 }
8921 disp->CmdCopyMemoryToImageIndirectNV(commandBuffer, copyBufferAddress, copyCount, stride, dstImage, dstImageLayout, pImageSubresources);
8922 }
8923
8924
8925 // ---- VK_NV_memory_decompression extension trampoline/terminators
8926
CmdDecompressMemoryNV(VkCommandBuffer commandBuffer,uint32_t decompressRegionCount,const VkDecompressMemoryRegionNV * pDecompressMemoryRegions)8927 VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryNV(
8928 VkCommandBuffer commandBuffer,
8929 uint32_t decompressRegionCount,
8930 const VkDecompressMemoryRegionNV* pDecompressMemoryRegions) {
8931 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8932 if (NULL == disp) {
8933 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8934 "vkCmdDecompressMemoryNV: Invalid commandBuffer "
8935 "[VUID-vkCmdDecompressMemoryNV-commandBuffer-parameter]");
8936 abort(); /* Intentionally fail so user can correct issue. */
8937 }
8938 disp->CmdDecompressMemoryNV(commandBuffer, decompressRegionCount, pDecompressMemoryRegions);
8939 }
8940
CmdDecompressMemoryIndirectCountNV(VkCommandBuffer commandBuffer,VkDeviceAddress indirectCommandsAddress,VkDeviceAddress indirectCommandsCountAddress,uint32_t stride)8941 VKAPI_ATTR void VKAPI_CALL CmdDecompressMemoryIndirectCountNV(
8942 VkCommandBuffer commandBuffer,
8943 VkDeviceAddress indirectCommandsAddress,
8944 VkDeviceAddress indirectCommandsCountAddress,
8945 uint32_t stride) {
8946 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8947 if (NULL == disp) {
8948 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8949 "vkCmdDecompressMemoryIndirectCountNV: Invalid commandBuffer "
8950 "[VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-parameter]");
8951 abort(); /* Intentionally fail so user can correct issue. */
8952 }
8953 disp->CmdDecompressMemoryIndirectCountNV(commandBuffer, indirectCommandsAddress, indirectCommandsCountAddress, stride);
8954 }
8955
8956
8957 // ---- VK_NV_device_generated_commands_compute extension trampoline/terminators
8958
GetPipelineIndirectMemoryRequirementsNV(VkDevice device,const VkComputePipelineCreateInfo * pCreateInfo,VkMemoryRequirements2 * pMemoryRequirements)8959 VKAPI_ATTR void VKAPI_CALL GetPipelineIndirectMemoryRequirementsNV(
8960 VkDevice device,
8961 const VkComputePipelineCreateInfo* pCreateInfo,
8962 VkMemoryRequirements2* pMemoryRequirements) {
8963 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8964 if (NULL == disp) {
8965 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8966 "vkGetPipelineIndirectMemoryRequirementsNV: Invalid device "
8967 "[VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter]");
8968 abort(); /* Intentionally fail so user can correct issue. */
8969 }
8970 disp->GetPipelineIndirectMemoryRequirementsNV(device, pCreateInfo, pMemoryRequirements);
8971 }
8972
CmdUpdatePipelineIndirectBufferNV(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)8973 VKAPI_ATTR void VKAPI_CALL CmdUpdatePipelineIndirectBufferNV(
8974 VkCommandBuffer commandBuffer,
8975 VkPipelineBindPoint pipelineBindPoint,
8976 VkPipeline pipeline) {
8977 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
8978 if (NULL == disp) {
8979 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8980 "vkCmdUpdatePipelineIndirectBufferNV: Invalid commandBuffer "
8981 "[VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter]");
8982 abort(); /* Intentionally fail so user can correct issue. */
8983 }
8984 disp->CmdUpdatePipelineIndirectBufferNV(commandBuffer, pipelineBindPoint, pipeline);
8985 }
8986
GetPipelineIndirectDeviceAddressNV(VkDevice device,const VkPipelineIndirectDeviceAddressInfoNV * pInfo)8987 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetPipelineIndirectDeviceAddressNV(
8988 VkDevice device,
8989 const VkPipelineIndirectDeviceAddressInfoNV* pInfo) {
8990 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
8991 if (NULL == disp) {
8992 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
8993 "vkGetPipelineIndirectDeviceAddressNV: Invalid device "
8994 "[VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter]");
8995 abort(); /* Intentionally fail so user can correct issue. */
8996 }
8997 return disp->GetPipelineIndirectDeviceAddressNV(device, pInfo);
8998 }
8999
9000
9001 // ---- VK_EXT_extended_dynamic_state3 extension trampoline/terminators
9002
CmdSetDepthClampEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthClampEnable)9003 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampEnableEXT(
9004 VkCommandBuffer commandBuffer,
9005 VkBool32 depthClampEnable) {
9006 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9007 if (NULL == disp) {
9008 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9009 "vkCmdSetDepthClampEnableEXT: Invalid commandBuffer "
9010 "[VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter]");
9011 abort(); /* Intentionally fail so user can correct issue. */
9012 }
9013 disp->CmdSetDepthClampEnableEXT(commandBuffer, depthClampEnable);
9014 }
9015
CmdSetPolygonModeEXT(VkCommandBuffer commandBuffer,VkPolygonMode polygonMode)9016 VKAPI_ATTR void VKAPI_CALL CmdSetPolygonModeEXT(
9017 VkCommandBuffer commandBuffer,
9018 VkPolygonMode polygonMode) {
9019 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9020 if (NULL == disp) {
9021 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9022 "vkCmdSetPolygonModeEXT: Invalid commandBuffer "
9023 "[VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter]");
9024 abort(); /* Intentionally fail so user can correct issue. */
9025 }
9026 disp->CmdSetPolygonModeEXT(commandBuffer, polygonMode);
9027 }
9028
CmdSetRasterizationSamplesEXT(VkCommandBuffer commandBuffer,VkSampleCountFlagBits rasterizationSamples)9029 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationSamplesEXT(
9030 VkCommandBuffer commandBuffer,
9031 VkSampleCountFlagBits rasterizationSamples) {
9032 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9033 if (NULL == disp) {
9034 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9035 "vkCmdSetRasterizationSamplesEXT: Invalid commandBuffer "
9036 "[VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter]");
9037 abort(); /* Intentionally fail so user can correct issue. */
9038 }
9039 disp->CmdSetRasterizationSamplesEXT(commandBuffer, rasterizationSamples);
9040 }
9041
CmdSetSampleMaskEXT(VkCommandBuffer commandBuffer,VkSampleCountFlagBits samples,const VkSampleMask * pSampleMask)9042 VKAPI_ATTR void VKAPI_CALL CmdSetSampleMaskEXT(
9043 VkCommandBuffer commandBuffer,
9044 VkSampleCountFlagBits samples,
9045 const VkSampleMask* pSampleMask) {
9046 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9047 if (NULL == disp) {
9048 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9049 "vkCmdSetSampleMaskEXT: Invalid commandBuffer "
9050 "[VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter]");
9051 abort(); /* Intentionally fail so user can correct issue. */
9052 }
9053 disp->CmdSetSampleMaskEXT(commandBuffer, samples, pSampleMask);
9054 }
9055
CmdSetAlphaToCoverageEnableEXT(VkCommandBuffer commandBuffer,VkBool32 alphaToCoverageEnable)9056 VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToCoverageEnableEXT(
9057 VkCommandBuffer commandBuffer,
9058 VkBool32 alphaToCoverageEnable) {
9059 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9060 if (NULL == disp) {
9061 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9062 "vkCmdSetAlphaToCoverageEnableEXT: Invalid commandBuffer "
9063 "[VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter]");
9064 abort(); /* Intentionally fail so user can correct issue. */
9065 }
9066 disp->CmdSetAlphaToCoverageEnableEXT(commandBuffer, alphaToCoverageEnable);
9067 }
9068
CmdSetAlphaToOneEnableEXT(VkCommandBuffer commandBuffer,VkBool32 alphaToOneEnable)9069 VKAPI_ATTR void VKAPI_CALL CmdSetAlphaToOneEnableEXT(
9070 VkCommandBuffer commandBuffer,
9071 VkBool32 alphaToOneEnable) {
9072 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9073 if (NULL == disp) {
9074 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9075 "vkCmdSetAlphaToOneEnableEXT: Invalid commandBuffer "
9076 "[VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter]");
9077 abort(); /* Intentionally fail so user can correct issue. */
9078 }
9079 disp->CmdSetAlphaToOneEnableEXT(commandBuffer, alphaToOneEnable);
9080 }
9081
CmdSetLogicOpEnableEXT(VkCommandBuffer commandBuffer,VkBool32 logicOpEnable)9082 VKAPI_ATTR void VKAPI_CALL CmdSetLogicOpEnableEXT(
9083 VkCommandBuffer commandBuffer,
9084 VkBool32 logicOpEnable) {
9085 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9086 if (NULL == disp) {
9087 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9088 "vkCmdSetLogicOpEnableEXT: Invalid commandBuffer "
9089 "[VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter]");
9090 abort(); /* Intentionally fail so user can correct issue. */
9091 }
9092 disp->CmdSetLogicOpEnableEXT(commandBuffer, logicOpEnable);
9093 }
9094
CmdSetColorBlendEnableEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkBool32 * pColorBlendEnables)9095 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEnableEXT(
9096 VkCommandBuffer commandBuffer,
9097 uint32_t firstAttachment,
9098 uint32_t attachmentCount,
9099 const VkBool32* pColorBlendEnables) {
9100 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9101 if (NULL == disp) {
9102 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9103 "vkCmdSetColorBlendEnableEXT: Invalid commandBuffer "
9104 "[VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter]");
9105 abort(); /* Intentionally fail so user can correct issue. */
9106 }
9107 disp->CmdSetColorBlendEnableEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEnables);
9108 }
9109
CmdSetColorBlendEquationEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorBlendEquationEXT * pColorBlendEquations)9110 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendEquationEXT(
9111 VkCommandBuffer commandBuffer,
9112 uint32_t firstAttachment,
9113 uint32_t attachmentCount,
9114 const VkColorBlendEquationEXT* pColorBlendEquations) {
9115 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9116 if (NULL == disp) {
9117 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9118 "vkCmdSetColorBlendEquationEXT: Invalid commandBuffer "
9119 "[VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter]");
9120 abort(); /* Intentionally fail so user can correct issue. */
9121 }
9122 disp->CmdSetColorBlendEquationEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendEquations);
9123 }
9124
CmdSetColorWriteMaskEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorComponentFlags * pColorWriteMasks)9125 VKAPI_ATTR void VKAPI_CALL CmdSetColorWriteMaskEXT(
9126 VkCommandBuffer commandBuffer,
9127 uint32_t firstAttachment,
9128 uint32_t attachmentCount,
9129 const VkColorComponentFlags* pColorWriteMasks) {
9130 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9131 if (NULL == disp) {
9132 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9133 "vkCmdSetColorWriteMaskEXT: Invalid commandBuffer "
9134 "[VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter]");
9135 abort(); /* Intentionally fail so user can correct issue. */
9136 }
9137 disp->CmdSetColorWriteMaskEXT(commandBuffer, firstAttachment, attachmentCount, pColorWriteMasks);
9138 }
9139
CmdSetTessellationDomainOriginEXT(VkCommandBuffer commandBuffer,VkTessellationDomainOrigin domainOrigin)9140 VKAPI_ATTR void VKAPI_CALL CmdSetTessellationDomainOriginEXT(
9141 VkCommandBuffer commandBuffer,
9142 VkTessellationDomainOrigin domainOrigin) {
9143 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9144 if (NULL == disp) {
9145 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9146 "vkCmdSetTessellationDomainOriginEXT: Invalid commandBuffer "
9147 "[VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter]");
9148 abort(); /* Intentionally fail so user can correct issue. */
9149 }
9150 disp->CmdSetTessellationDomainOriginEXT(commandBuffer, domainOrigin);
9151 }
9152
CmdSetRasterizationStreamEXT(VkCommandBuffer commandBuffer,uint32_t rasterizationStream)9153 VKAPI_ATTR void VKAPI_CALL CmdSetRasterizationStreamEXT(
9154 VkCommandBuffer commandBuffer,
9155 uint32_t rasterizationStream) {
9156 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9157 if (NULL == disp) {
9158 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9159 "vkCmdSetRasterizationStreamEXT: Invalid commandBuffer "
9160 "[VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter]");
9161 abort(); /* Intentionally fail so user can correct issue. */
9162 }
9163 disp->CmdSetRasterizationStreamEXT(commandBuffer, rasterizationStream);
9164 }
9165
CmdSetConservativeRasterizationModeEXT(VkCommandBuffer commandBuffer,VkConservativeRasterizationModeEXT conservativeRasterizationMode)9166 VKAPI_ATTR void VKAPI_CALL CmdSetConservativeRasterizationModeEXT(
9167 VkCommandBuffer commandBuffer,
9168 VkConservativeRasterizationModeEXT conservativeRasterizationMode) {
9169 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9170 if (NULL == disp) {
9171 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9172 "vkCmdSetConservativeRasterizationModeEXT: Invalid commandBuffer "
9173 "[VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter]");
9174 abort(); /* Intentionally fail so user can correct issue. */
9175 }
9176 disp->CmdSetConservativeRasterizationModeEXT(commandBuffer, conservativeRasterizationMode);
9177 }
9178
CmdSetExtraPrimitiveOverestimationSizeEXT(VkCommandBuffer commandBuffer,float extraPrimitiveOverestimationSize)9179 VKAPI_ATTR void VKAPI_CALL CmdSetExtraPrimitiveOverestimationSizeEXT(
9180 VkCommandBuffer commandBuffer,
9181 float extraPrimitiveOverestimationSize) {
9182 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9183 if (NULL == disp) {
9184 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9185 "vkCmdSetExtraPrimitiveOverestimationSizeEXT: Invalid commandBuffer "
9186 "[VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter]");
9187 abort(); /* Intentionally fail so user can correct issue. */
9188 }
9189 disp->CmdSetExtraPrimitiveOverestimationSizeEXT(commandBuffer, extraPrimitiveOverestimationSize);
9190 }
9191
CmdSetDepthClipEnableEXT(VkCommandBuffer commandBuffer,VkBool32 depthClipEnable)9192 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipEnableEXT(
9193 VkCommandBuffer commandBuffer,
9194 VkBool32 depthClipEnable) {
9195 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9196 if (NULL == disp) {
9197 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9198 "vkCmdSetDepthClipEnableEXT: Invalid commandBuffer "
9199 "[VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter]");
9200 abort(); /* Intentionally fail so user can correct issue. */
9201 }
9202 disp->CmdSetDepthClipEnableEXT(commandBuffer, depthClipEnable);
9203 }
9204
CmdSetSampleLocationsEnableEXT(VkCommandBuffer commandBuffer,VkBool32 sampleLocationsEnable)9205 VKAPI_ATTR void VKAPI_CALL CmdSetSampleLocationsEnableEXT(
9206 VkCommandBuffer commandBuffer,
9207 VkBool32 sampleLocationsEnable) {
9208 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9209 if (NULL == disp) {
9210 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9211 "vkCmdSetSampleLocationsEnableEXT: Invalid commandBuffer "
9212 "[VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter]");
9213 abort(); /* Intentionally fail so user can correct issue. */
9214 }
9215 disp->CmdSetSampleLocationsEnableEXT(commandBuffer, sampleLocationsEnable);
9216 }
9217
CmdSetColorBlendAdvancedEXT(VkCommandBuffer commandBuffer,uint32_t firstAttachment,uint32_t attachmentCount,const VkColorBlendAdvancedEXT * pColorBlendAdvanced)9218 VKAPI_ATTR void VKAPI_CALL CmdSetColorBlendAdvancedEXT(
9219 VkCommandBuffer commandBuffer,
9220 uint32_t firstAttachment,
9221 uint32_t attachmentCount,
9222 const VkColorBlendAdvancedEXT* pColorBlendAdvanced) {
9223 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9224 if (NULL == disp) {
9225 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9226 "vkCmdSetColorBlendAdvancedEXT: Invalid commandBuffer "
9227 "[VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter]");
9228 abort(); /* Intentionally fail so user can correct issue. */
9229 }
9230 disp->CmdSetColorBlendAdvancedEXT(commandBuffer, firstAttachment, attachmentCount, pColorBlendAdvanced);
9231 }
9232
CmdSetProvokingVertexModeEXT(VkCommandBuffer commandBuffer,VkProvokingVertexModeEXT provokingVertexMode)9233 VKAPI_ATTR void VKAPI_CALL CmdSetProvokingVertexModeEXT(
9234 VkCommandBuffer commandBuffer,
9235 VkProvokingVertexModeEXT provokingVertexMode) {
9236 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9237 if (NULL == disp) {
9238 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9239 "vkCmdSetProvokingVertexModeEXT: Invalid commandBuffer "
9240 "[VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter]");
9241 abort(); /* Intentionally fail so user can correct issue. */
9242 }
9243 disp->CmdSetProvokingVertexModeEXT(commandBuffer, provokingVertexMode);
9244 }
9245
CmdSetLineRasterizationModeEXT(VkCommandBuffer commandBuffer,VkLineRasterizationModeEXT lineRasterizationMode)9246 VKAPI_ATTR void VKAPI_CALL CmdSetLineRasterizationModeEXT(
9247 VkCommandBuffer commandBuffer,
9248 VkLineRasterizationModeEXT lineRasterizationMode) {
9249 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9250 if (NULL == disp) {
9251 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9252 "vkCmdSetLineRasterizationModeEXT: Invalid commandBuffer "
9253 "[VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter]");
9254 abort(); /* Intentionally fail so user can correct issue. */
9255 }
9256 disp->CmdSetLineRasterizationModeEXT(commandBuffer, lineRasterizationMode);
9257 }
9258
CmdSetLineStippleEnableEXT(VkCommandBuffer commandBuffer,VkBool32 stippledLineEnable)9259 VKAPI_ATTR void VKAPI_CALL CmdSetLineStippleEnableEXT(
9260 VkCommandBuffer commandBuffer,
9261 VkBool32 stippledLineEnable) {
9262 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9263 if (NULL == disp) {
9264 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9265 "vkCmdSetLineStippleEnableEXT: Invalid commandBuffer "
9266 "[VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter]");
9267 abort(); /* Intentionally fail so user can correct issue. */
9268 }
9269 disp->CmdSetLineStippleEnableEXT(commandBuffer, stippledLineEnable);
9270 }
9271
CmdSetDepthClipNegativeOneToOneEXT(VkCommandBuffer commandBuffer,VkBool32 negativeOneToOne)9272 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClipNegativeOneToOneEXT(
9273 VkCommandBuffer commandBuffer,
9274 VkBool32 negativeOneToOne) {
9275 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9276 if (NULL == disp) {
9277 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9278 "vkCmdSetDepthClipNegativeOneToOneEXT: Invalid commandBuffer "
9279 "[VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter]");
9280 abort(); /* Intentionally fail so user can correct issue. */
9281 }
9282 disp->CmdSetDepthClipNegativeOneToOneEXT(commandBuffer, negativeOneToOne);
9283 }
9284
CmdSetViewportWScalingEnableNV(VkCommandBuffer commandBuffer,VkBool32 viewportWScalingEnable)9285 VKAPI_ATTR void VKAPI_CALL CmdSetViewportWScalingEnableNV(
9286 VkCommandBuffer commandBuffer,
9287 VkBool32 viewportWScalingEnable) {
9288 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9289 if (NULL == disp) {
9290 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9291 "vkCmdSetViewportWScalingEnableNV: Invalid commandBuffer "
9292 "[VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter]");
9293 abort(); /* Intentionally fail so user can correct issue. */
9294 }
9295 disp->CmdSetViewportWScalingEnableNV(commandBuffer, viewportWScalingEnable);
9296 }
9297
CmdSetViewportSwizzleNV(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewportSwizzleNV * pViewportSwizzles)9298 VKAPI_ATTR void VKAPI_CALL CmdSetViewportSwizzleNV(
9299 VkCommandBuffer commandBuffer,
9300 uint32_t firstViewport,
9301 uint32_t viewportCount,
9302 const VkViewportSwizzleNV* pViewportSwizzles) {
9303 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9304 if (NULL == disp) {
9305 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9306 "vkCmdSetViewportSwizzleNV: Invalid commandBuffer "
9307 "[VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter]");
9308 abort(); /* Intentionally fail so user can correct issue. */
9309 }
9310 disp->CmdSetViewportSwizzleNV(commandBuffer, firstViewport, viewportCount, pViewportSwizzles);
9311 }
9312
CmdSetCoverageToColorEnableNV(VkCommandBuffer commandBuffer,VkBool32 coverageToColorEnable)9313 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorEnableNV(
9314 VkCommandBuffer commandBuffer,
9315 VkBool32 coverageToColorEnable) {
9316 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9317 if (NULL == disp) {
9318 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9319 "vkCmdSetCoverageToColorEnableNV: Invalid commandBuffer "
9320 "[VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter]");
9321 abort(); /* Intentionally fail so user can correct issue. */
9322 }
9323 disp->CmdSetCoverageToColorEnableNV(commandBuffer, coverageToColorEnable);
9324 }
9325
CmdSetCoverageToColorLocationNV(VkCommandBuffer commandBuffer,uint32_t coverageToColorLocation)9326 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageToColorLocationNV(
9327 VkCommandBuffer commandBuffer,
9328 uint32_t coverageToColorLocation) {
9329 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9330 if (NULL == disp) {
9331 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9332 "vkCmdSetCoverageToColorLocationNV: Invalid commandBuffer "
9333 "[VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter]");
9334 abort(); /* Intentionally fail so user can correct issue. */
9335 }
9336 disp->CmdSetCoverageToColorLocationNV(commandBuffer, coverageToColorLocation);
9337 }
9338
CmdSetCoverageModulationModeNV(VkCommandBuffer commandBuffer,VkCoverageModulationModeNV coverageModulationMode)9339 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationModeNV(
9340 VkCommandBuffer commandBuffer,
9341 VkCoverageModulationModeNV coverageModulationMode) {
9342 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9343 if (NULL == disp) {
9344 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9345 "vkCmdSetCoverageModulationModeNV: Invalid commandBuffer "
9346 "[VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter]");
9347 abort(); /* Intentionally fail so user can correct issue. */
9348 }
9349 disp->CmdSetCoverageModulationModeNV(commandBuffer, coverageModulationMode);
9350 }
9351
CmdSetCoverageModulationTableEnableNV(VkCommandBuffer commandBuffer,VkBool32 coverageModulationTableEnable)9352 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableEnableNV(
9353 VkCommandBuffer commandBuffer,
9354 VkBool32 coverageModulationTableEnable) {
9355 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9356 if (NULL == disp) {
9357 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9358 "vkCmdSetCoverageModulationTableEnableNV: Invalid commandBuffer "
9359 "[VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter]");
9360 abort(); /* Intentionally fail so user can correct issue. */
9361 }
9362 disp->CmdSetCoverageModulationTableEnableNV(commandBuffer, coverageModulationTableEnable);
9363 }
9364
CmdSetCoverageModulationTableNV(VkCommandBuffer commandBuffer,uint32_t coverageModulationTableCount,const float * pCoverageModulationTable)9365 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageModulationTableNV(
9366 VkCommandBuffer commandBuffer,
9367 uint32_t coverageModulationTableCount,
9368 const float* pCoverageModulationTable) {
9369 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9370 if (NULL == disp) {
9371 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9372 "vkCmdSetCoverageModulationTableNV: Invalid commandBuffer "
9373 "[VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter]");
9374 abort(); /* Intentionally fail so user can correct issue. */
9375 }
9376 disp->CmdSetCoverageModulationTableNV(commandBuffer, coverageModulationTableCount, pCoverageModulationTable);
9377 }
9378
CmdSetShadingRateImageEnableNV(VkCommandBuffer commandBuffer,VkBool32 shadingRateImageEnable)9379 VKAPI_ATTR void VKAPI_CALL CmdSetShadingRateImageEnableNV(
9380 VkCommandBuffer commandBuffer,
9381 VkBool32 shadingRateImageEnable) {
9382 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9383 if (NULL == disp) {
9384 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9385 "vkCmdSetShadingRateImageEnableNV: Invalid commandBuffer "
9386 "[VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter]");
9387 abort(); /* Intentionally fail so user can correct issue. */
9388 }
9389 disp->CmdSetShadingRateImageEnableNV(commandBuffer, shadingRateImageEnable);
9390 }
9391
CmdSetRepresentativeFragmentTestEnableNV(VkCommandBuffer commandBuffer,VkBool32 representativeFragmentTestEnable)9392 VKAPI_ATTR void VKAPI_CALL CmdSetRepresentativeFragmentTestEnableNV(
9393 VkCommandBuffer commandBuffer,
9394 VkBool32 representativeFragmentTestEnable) {
9395 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9396 if (NULL == disp) {
9397 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9398 "vkCmdSetRepresentativeFragmentTestEnableNV: Invalid commandBuffer "
9399 "[VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter]");
9400 abort(); /* Intentionally fail so user can correct issue. */
9401 }
9402 disp->CmdSetRepresentativeFragmentTestEnableNV(commandBuffer, representativeFragmentTestEnable);
9403 }
9404
CmdSetCoverageReductionModeNV(VkCommandBuffer commandBuffer,VkCoverageReductionModeNV coverageReductionMode)9405 VKAPI_ATTR void VKAPI_CALL CmdSetCoverageReductionModeNV(
9406 VkCommandBuffer commandBuffer,
9407 VkCoverageReductionModeNV coverageReductionMode) {
9408 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9409 if (NULL == disp) {
9410 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9411 "vkCmdSetCoverageReductionModeNV: Invalid commandBuffer "
9412 "[VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter]");
9413 abort(); /* Intentionally fail so user can correct issue. */
9414 }
9415 disp->CmdSetCoverageReductionModeNV(commandBuffer, coverageReductionMode);
9416 }
9417
9418
9419 // ---- VK_EXT_shader_module_identifier extension trampoline/terminators
9420
GetShaderModuleIdentifierEXT(VkDevice device,VkShaderModule shaderModule,VkShaderModuleIdentifierEXT * pIdentifier)9421 VKAPI_ATTR void VKAPI_CALL GetShaderModuleIdentifierEXT(
9422 VkDevice device,
9423 VkShaderModule shaderModule,
9424 VkShaderModuleIdentifierEXT* pIdentifier) {
9425 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9426 if (NULL == disp) {
9427 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9428 "vkGetShaderModuleIdentifierEXT: Invalid device "
9429 "[VUID-vkGetShaderModuleIdentifierEXT-device-parameter]");
9430 abort(); /* Intentionally fail so user can correct issue. */
9431 }
9432 disp->GetShaderModuleIdentifierEXT(device, shaderModule, pIdentifier);
9433 }
9434
GetShaderModuleCreateInfoIdentifierEXT(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,VkShaderModuleIdentifierEXT * pIdentifier)9435 VKAPI_ATTR void VKAPI_CALL GetShaderModuleCreateInfoIdentifierEXT(
9436 VkDevice device,
9437 const VkShaderModuleCreateInfo* pCreateInfo,
9438 VkShaderModuleIdentifierEXT* pIdentifier) {
9439 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9440 if (NULL == disp) {
9441 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9442 "vkGetShaderModuleCreateInfoIdentifierEXT: Invalid device "
9443 "[VUID-vkGetShaderModuleCreateInfoIdentifierEXT-device-parameter]");
9444 abort(); /* Intentionally fail so user can correct issue. */
9445 }
9446 disp->GetShaderModuleCreateInfoIdentifierEXT(device, pCreateInfo, pIdentifier);
9447 }
9448
9449
9450 // ---- VK_NV_optical_flow extension trampoline/terminators
9451
GetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice physicalDevice,const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,uint32_t * pFormatCount,VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties)9452 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceOpticalFlowImageFormatsNV(
9453 VkPhysicalDevice physicalDevice,
9454 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
9455 uint32_t* pFormatCount,
9456 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties) {
9457 const VkLayerInstanceDispatchTable *disp;
9458 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
9459 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
9460 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9461 "vkGetPhysicalDeviceOpticalFlowImageFormatsNV: Invalid physicalDevice "
9462 "[VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter]");
9463 abort(); /* Intentionally fail so user can correct issue. */
9464 }
9465 disp = loader_get_instance_layer_dispatch(physicalDevice);
9466 return disp->GetPhysicalDeviceOpticalFlowImageFormatsNV(unwrapped_phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
9467 }
9468
terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(VkPhysicalDevice physicalDevice,const VkOpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,uint32_t * pFormatCount,VkOpticalFlowImageFormatPropertiesNV * pImageFormatProperties)9469 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV(
9470 VkPhysicalDevice physicalDevice,
9471 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
9472 uint32_t* pFormatCount,
9473 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties) {
9474 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
9475 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
9476 if (NULL == icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV) {
9477 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
9478 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceOpticalFlowImageFormatsNV");
9479 abort(); /* Intentionally fail so user can correct issue. */
9480 }
9481 return icd_term->dispatch.GetPhysicalDeviceOpticalFlowImageFormatsNV(phys_dev_term->phys_dev, pOpticalFlowImageFormatInfo, pFormatCount, pImageFormatProperties);
9482 }
9483
CreateOpticalFlowSessionNV(VkDevice device,const VkOpticalFlowSessionCreateInfoNV * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkOpticalFlowSessionNV * pSession)9484 VKAPI_ATTR VkResult VKAPI_CALL CreateOpticalFlowSessionNV(
9485 VkDevice device,
9486 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
9487 const VkAllocationCallbacks* pAllocator,
9488 VkOpticalFlowSessionNV* pSession) {
9489 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9490 if (NULL == disp) {
9491 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9492 "vkCreateOpticalFlowSessionNV: Invalid device "
9493 "[VUID-vkCreateOpticalFlowSessionNV-device-parameter]");
9494 abort(); /* Intentionally fail so user can correct issue. */
9495 }
9496 return disp->CreateOpticalFlowSessionNV(device, pCreateInfo, pAllocator, pSession);
9497 }
9498
DestroyOpticalFlowSessionNV(VkDevice device,VkOpticalFlowSessionNV session,const VkAllocationCallbacks * pAllocator)9499 VKAPI_ATTR void VKAPI_CALL DestroyOpticalFlowSessionNV(
9500 VkDevice device,
9501 VkOpticalFlowSessionNV session,
9502 const VkAllocationCallbacks* pAllocator) {
9503 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9504 if (NULL == disp) {
9505 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9506 "vkDestroyOpticalFlowSessionNV: Invalid device "
9507 "[VUID-vkDestroyOpticalFlowSessionNV-device-parameter]");
9508 abort(); /* Intentionally fail so user can correct issue. */
9509 }
9510 disp->DestroyOpticalFlowSessionNV(device, session, pAllocator);
9511 }
9512
BindOpticalFlowSessionImageNV(VkDevice device,VkOpticalFlowSessionNV session,VkOpticalFlowSessionBindingPointNV bindingPoint,VkImageView view,VkImageLayout layout)9513 VKAPI_ATTR VkResult VKAPI_CALL BindOpticalFlowSessionImageNV(
9514 VkDevice device,
9515 VkOpticalFlowSessionNV session,
9516 VkOpticalFlowSessionBindingPointNV bindingPoint,
9517 VkImageView view,
9518 VkImageLayout layout) {
9519 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9520 if (NULL == disp) {
9521 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9522 "vkBindOpticalFlowSessionImageNV: Invalid device "
9523 "[VUID-vkBindOpticalFlowSessionImageNV-device-parameter]");
9524 abort(); /* Intentionally fail so user can correct issue. */
9525 }
9526 return disp->BindOpticalFlowSessionImageNV(device, session, bindingPoint, view, layout);
9527 }
9528
CmdOpticalFlowExecuteNV(VkCommandBuffer commandBuffer,VkOpticalFlowSessionNV session,const VkOpticalFlowExecuteInfoNV * pExecuteInfo)9529 VKAPI_ATTR void VKAPI_CALL CmdOpticalFlowExecuteNV(
9530 VkCommandBuffer commandBuffer,
9531 VkOpticalFlowSessionNV session,
9532 const VkOpticalFlowExecuteInfoNV* pExecuteInfo) {
9533 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9534 if (NULL == disp) {
9535 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9536 "vkCmdOpticalFlowExecuteNV: Invalid commandBuffer "
9537 "[VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter]");
9538 abort(); /* Intentionally fail so user can correct issue. */
9539 }
9540 disp->CmdOpticalFlowExecuteNV(commandBuffer, session, pExecuteInfo);
9541 }
9542
9543
9544 // ---- VK_AMD_anti_lag extension trampoline/terminators
9545
AntiLagUpdateAMD(VkDevice device,const VkAntiLagDataAMD * pData)9546 VKAPI_ATTR void VKAPI_CALL AntiLagUpdateAMD(
9547 VkDevice device,
9548 const VkAntiLagDataAMD* pData) {
9549 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9550 if (NULL == disp) {
9551 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9552 "vkAntiLagUpdateAMD: Invalid device "
9553 "[VUID-vkAntiLagUpdateAMD-device-parameter]");
9554 abort(); /* Intentionally fail so user can correct issue. */
9555 }
9556 disp->AntiLagUpdateAMD(device, pData);
9557 }
9558
9559
9560 // ---- VK_EXT_shader_object extension trampoline/terminators
9561
CreateShadersEXT(VkDevice device,uint32_t createInfoCount,const VkShaderCreateInfoEXT * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkShaderEXT * pShaders)9562 VKAPI_ATTR VkResult VKAPI_CALL CreateShadersEXT(
9563 VkDevice device,
9564 uint32_t createInfoCount,
9565 const VkShaderCreateInfoEXT* pCreateInfos,
9566 const VkAllocationCallbacks* pAllocator,
9567 VkShaderEXT* pShaders) {
9568 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9569 if (NULL == disp) {
9570 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9571 "vkCreateShadersEXT: Invalid device "
9572 "[VUID-vkCreateShadersEXT-device-parameter]");
9573 abort(); /* Intentionally fail so user can correct issue. */
9574 }
9575 return disp->CreateShadersEXT(device, createInfoCount, pCreateInfos, pAllocator, pShaders);
9576 }
9577
DestroyShaderEXT(VkDevice device,VkShaderEXT shader,const VkAllocationCallbacks * pAllocator)9578 VKAPI_ATTR void VKAPI_CALL DestroyShaderEXT(
9579 VkDevice device,
9580 VkShaderEXT shader,
9581 const VkAllocationCallbacks* pAllocator) {
9582 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9583 if (NULL == disp) {
9584 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9585 "vkDestroyShaderEXT: Invalid device "
9586 "[VUID-vkDestroyShaderEXT-device-parameter]");
9587 abort(); /* Intentionally fail so user can correct issue. */
9588 }
9589 disp->DestroyShaderEXT(device, shader, pAllocator);
9590 }
9591
GetShaderBinaryDataEXT(VkDevice device,VkShaderEXT shader,size_t * pDataSize,void * pData)9592 VKAPI_ATTR VkResult VKAPI_CALL GetShaderBinaryDataEXT(
9593 VkDevice device,
9594 VkShaderEXT shader,
9595 size_t* pDataSize,
9596 void* pData) {
9597 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9598 if (NULL == disp) {
9599 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9600 "vkGetShaderBinaryDataEXT: Invalid device "
9601 "[VUID-vkGetShaderBinaryDataEXT-device-parameter]");
9602 abort(); /* Intentionally fail so user can correct issue. */
9603 }
9604 return disp->GetShaderBinaryDataEXT(device, shader, pDataSize, pData);
9605 }
9606
CmdBindShadersEXT(VkCommandBuffer commandBuffer,uint32_t stageCount,const VkShaderStageFlagBits * pStages,const VkShaderEXT * pShaders)9607 VKAPI_ATTR void VKAPI_CALL CmdBindShadersEXT(
9608 VkCommandBuffer commandBuffer,
9609 uint32_t stageCount,
9610 const VkShaderStageFlagBits* pStages,
9611 const VkShaderEXT* pShaders) {
9612 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9613 if (NULL == disp) {
9614 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9615 "vkCmdBindShadersEXT: Invalid commandBuffer "
9616 "[VUID-vkCmdBindShadersEXT-commandBuffer-parameter]");
9617 abort(); /* Intentionally fail so user can correct issue. */
9618 }
9619 disp->CmdBindShadersEXT(commandBuffer, stageCount, pStages, pShaders);
9620 }
9621
CmdSetDepthClampRangeEXT(VkCommandBuffer commandBuffer,VkDepthClampModeEXT depthClampMode,const VkDepthClampRangeEXT * pDepthClampRange)9622 VKAPI_ATTR void VKAPI_CALL CmdSetDepthClampRangeEXT(
9623 VkCommandBuffer commandBuffer,
9624 VkDepthClampModeEXT depthClampMode,
9625 const VkDepthClampRangeEXT* pDepthClampRange) {
9626 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9627 if (NULL == disp) {
9628 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9629 "vkCmdSetDepthClampRangeEXT: Invalid commandBuffer "
9630 "[VUID-vkCmdSetDepthClampRangeEXT-commandBuffer-parameter]");
9631 abort(); /* Intentionally fail so user can correct issue. */
9632 }
9633 disp->CmdSetDepthClampRangeEXT(commandBuffer, depthClampMode, pDepthClampRange);
9634 }
9635
9636
9637 // ---- VK_QCOM_tile_properties extension trampoline/terminators
9638
GetFramebufferTilePropertiesQCOM(VkDevice device,VkFramebuffer framebuffer,uint32_t * pPropertiesCount,VkTilePropertiesQCOM * pProperties)9639 VKAPI_ATTR VkResult VKAPI_CALL GetFramebufferTilePropertiesQCOM(
9640 VkDevice device,
9641 VkFramebuffer framebuffer,
9642 uint32_t* pPropertiesCount,
9643 VkTilePropertiesQCOM* pProperties) {
9644 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9645 if (NULL == disp) {
9646 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9647 "vkGetFramebufferTilePropertiesQCOM: Invalid device "
9648 "[VUID-vkGetFramebufferTilePropertiesQCOM-device-parameter]");
9649 abort(); /* Intentionally fail so user can correct issue. */
9650 }
9651 return disp->GetFramebufferTilePropertiesQCOM(device, framebuffer, pPropertiesCount, pProperties);
9652 }
9653
GetDynamicRenderingTilePropertiesQCOM(VkDevice device,const VkRenderingInfo * pRenderingInfo,VkTilePropertiesQCOM * pProperties)9654 VKAPI_ATTR VkResult VKAPI_CALL GetDynamicRenderingTilePropertiesQCOM(
9655 VkDevice device,
9656 const VkRenderingInfo* pRenderingInfo,
9657 VkTilePropertiesQCOM* pProperties) {
9658 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9659 if (NULL == disp) {
9660 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9661 "vkGetDynamicRenderingTilePropertiesQCOM: Invalid device "
9662 "[VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter]");
9663 abort(); /* Intentionally fail so user can correct issue. */
9664 }
9665 return disp->GetDynamicRenderingTilePropertiesQCOM(device, pRenderingInfo, pProperties);
9666 }
9667
9668
9669 // ---- VK_NV_cooperative_vector extension trampoline/terminators
9670
GetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeVectorPropertiesNV * pProperties)9671 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeVectorPropertiesNV(
9672 VkPhysicalDevice physicalDevice,
9673 uint32_t* pPropertyCount,
9674 VkCooperativeVectorPropertiesNV* pProperties) {
9675 const VkLayerInstanceDispatchTable *disp;
9676 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
9677 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
9678 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9679 "vkGetPhysicalDeviceCooperativeVectorPropertiesNV: Invalid physicalDevice "
9680 "[VUID-vkGetPhysicalDeviceCooperativeVectorPropertiesNV-physicalDevice-parameter]");
9681 abort(); /* Intentionally fail so user can correct issue. */
9682 }
9683 disp = loader_get_instance_layer_dispatch(physicalDevice);
9684 return disp->GetPhysicalDeviceCooperativeVectorPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
9685 }
9686
terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeVectorPropertiesNV * pProperties)9687 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV(
9688 VkPhysicalDevice physicalDevice,
9689 uint32_t* pPropertyCount,
9690 VkCooperativeVectorPropertiesNV* pProperties) {
9691 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
9692 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
9693 if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV) {
9694 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
9695 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeVectorPropertiesNV");
9696 abort(); /* Intentionally fail so user can correct issue. */
9697 }
9698 return icd_term->dispatch.GetPhysicalDeviceCooperativeVectorPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
9699 }
9700
ConvertCooperativeVectorMatrixNV(VkDevice device,const VkConvertCooperativeVectorMatrixInfoNV * pInfo)9701 VKAPI_ATTR VkResult VKAPI_CALL ConvertCooperativeVectorMatrixNV(
9702 VkDevice device,
9703 const VkConvertCooperativeVectorMatrixInfoNV* pInfo) {
9704 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9705 if (NULL == disp) {
9706 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9707 "vkConvertCooperativeVectorMatrixNV: Invalid device "
9708 "[VUID-vkConvertCooperativeVectorMatrixNV-device-parameter]");
9709 abort(); /* Intentionally fail so user can correct issue. */
9710 }
9711 return disp->ConvertCooperativeVectorMatrixNV(device, pInfo);
9712 }
9713
CmdConvertCooperativeVectorMatrixNV(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkConvertCooperativeVectorMatrixInfoNV * pInfos)9714 VKAPI_ATTR void VKAPI_CALL CmdConvertCooperativeVectorMatrixNV(
9715 VkCommandBuffer commandBuffer,
9716 uint32_t infoCount,
9717 const VkConvertCooperativeVectorMatrixInfoNV* pInfos) {
9718 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9719 if (NULL == disp) {
9720 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9721 "vkCmdConvertCooperativeVectorMatrixNV: Invalid commandBuffer "
9722 "[VUID-vkCmdConvertCooperativeVectorMatrixNV-commandBuffer-parameter]");
9723 abort(); /* Intentionally fail so user can correct issue. */
9724 }
9725 disp->CmdConvertCooperativeVectorMatrixNV(commandBuffer, infoCount, pInfos);
9726 }
9727
9728
9729 // ---- VK_NV_low_latency2 extension trampoline/terminators
9730
SetLatencySleepModeNV(VkDevice device,VkSwapchainKHR swapchain,const VkLatencySleepModeInfoNV * pSleepModeInfo)9731 VKAPI_ATTR VkResult VKAPI_CALL SetLatencySleepModeNV(
9732 VkDevice device,
9733 VkSwapchainKHR swapchain,
9734 const VkLatencySleepModeInfoNV* pSleepModeInfo) {
9735 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9736 if (NULL == disp) {
9737 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9738 "vkSetLatencySleepModeNV: Invalid device "
9739 "[VUID-vkSetLatencySleepModeNV-device-parameter]");
9740 abort(); /* Intentionally fail so user can correct issue. */
9741 }
9742 return disp->SetLatencySleepModeNV(device, swapchain, pSleepModeInfo);
9743 }
9744
LatencySleepNV(VkDevice device,VkSwapchainKHR swapchain,const VkLatencySleepInfoNV * pSleepInfo)9745 VKAPI_ATTR VkResult VKAPI_CALL LatencySleepNV(
9746 VkDevice device,
9747 VkSwapchainKHR swapchain,
9748 const VkLatencySleepInfoNV* pSleepInfo) {
9749 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9750 if (NULL == disp) {
9751 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9752 "vkLatencySleepNV: Invalid device "
9753 "[VUID-vkLatencySleepNV-device-parameter]");
9754 abort(); /* Intentionally fail so user can correct issue. */
9755 }
9756 return disp->LatencySleepNV(device, swapchain, pSleepInfo);
9757 }
9758
SetLatencyMarkerNV(VkDevice device,VkSwapchainKHR swapchain,const VkSetLatencyMarkerInfoNV * pLatencyMarkerInfo)9759 VKAPI_ATTR void VKAPI_CALL SetLatencyMarkerNV(
9760 VkDevice device,
9761 VkSwapchainKHR swapchain,
9762 const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo) {
9763 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9764 if (NULL == disp) {
9765 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9766 "vkSetLatencyMarkerNV: Invalid device "
9767 "[VUID-vkSetLatencyMarkerNV-device-parameter]");
9768 abort(); /* Intentionally fail so user can correct issue. */
9769 }
9770 disp->SetLatencyMarkerNV(device, swapchain, pLatencyMarkerInfo);
9771 }
9772
GetLatencyTimingsNV(VkDevice device,VkSwapchainKHR swapchain,VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo)9773 VKAPI_ATTR void VKAPI_CALL GetLatencyTimingsNV(
9774 VkDevice device,
9775 VkSwapchainKHR swapchain,
9776 VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo) {
9777 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9778 if (NULL == disp) {
9779 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9780 "vkGetLatencyTimingsNV: Invalid device "
9781 "[VUID-vkGetLatencyTimingsNV-device-parameter]");
9782 abort(); /* Intentionally fail so user can correct issue. */
9783 }
9784 disp->GetLatencyTimingsNV(device, swapchain, pLatencyMarkerInfo);
9785 }
9786
QueueNotifyOutOfBandNV(VkQueue queue,const VkOutOfBandQueueTypeInfoNV * pQueueTypeInfo)9787 VKAPI_ATTR void VKAPI_CALL QueueNotifyOutOfBandNV(
9788 VkQueue queue,
9789 const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo) {
9790 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
9791 if (NULL == disp) {
9792 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9793 "vkQueueNotifyOutOfBandNV: Invalid queue "
9794 "[VUID-vkQueueNotifyOutOfBandNV-queue-parameter]");
9795 abort(); /* Intentionally fail so user can correct issue. */
9796 }
9797 disp->QueueNotifyOutOfBandNV(queue, pQueueTypeInfo);
9798 }
9799
9800
9801 // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension trampoline/terminators
9802
CmdSetAttachmentFeedbackLoopEnableEXT(VkCommandBuffer commandBuffer,VkImageAspectFlags aspectMask)9803 VKAPI_ATTR void VKAPI_CALL CmdSetAttachmentFeedbackLoopEnableEXT(
9804 VkCommandBuffer commandBuffer,
9805 VkImageAspectFlags aspectMask) {
9806 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9807 if (NULL == disp) {
9808 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9809 "vkCmdSetAttachmentFeedbackLoopEnableEXT: Invalid commandBuffer "
9810 "[VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter]");
9811 abort(); /* Intentionally fail so user can correct issue. */
9812 }
9813 disp->CmdSetAttachmentFeedbackLoopEnableEXT(commandBuffer, aspectMask);
9814 }
9815
9816
9817 // ---- VK_QNX_external_memory_screen_buffer extension trampoline/terminators
9818
9819 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
GetScreenBufferPropertiesQNX(VkDevice device,const struct _screen_buffer * buffer,VkScreenBufferPropertiesQNX * pProperties)9820 VKAPI_ATTR VkResult VKAPI_CALL GetScreenBufferPropertiesQNX(
9821 VkDevice device,
9822 const struct _screen_buffer* buffer,
9823 VkScreenBufferPropertiesQNX* pProperties) {
9824 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9825 if (NULL == disp) {
9826 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9827 "vkGetScreenBufferPropertiesQNX: Invalid device "
9828 "[VUID-vkGetScreenBufferPropertiesQNX-device-parameter]");
9829 abort(); /* Intentionally fail so user can correct issue. */
9830 }
9831 return disp->GetScreenBufferPropertiesQNX(device, buffer, pProperties);
9832 }
9833
9834 #endif // VK_USE_PLATFORM_SCREEN_QNX
9835
9836 // ---- VK_NV_cluster_acceleration_structure extension trampoline/terminators
9837
GetClusterAccelerationStructureBuildSizesNV(VkDevice device,const VkClusterAccelerationStructureInputInfoNV * pInfo,VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo)9838 VKAPI_ATTR void VKAPI_CALL GetClusterAccelerationStructureBuildSizesNV(
9839 VkDevice device,
9840 const VkClusterAccelerationStructureInputInfoNV* pInfo,
9841 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {
9842 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9843 if (NULL == disp) {
9844 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9845 "vkGetClusterAccelerationStructureBuildSizesNV: Invalid device "
9846 "[VUID-vkGetClusterAccelerationStructureBuildSizesNV-device-parameter]");
9847 abort(); /* Intentionally fail so user can correct issue. */
9848 }
9849 disp->GetClusterAccelerationStructureBuildSizesNV(device, pInfo, pSizeInfo);
9850 }
9851
CmdBuildClusterAccelerationStructureIndirectNV(VkCommandBuffer commandBuffer,const VkClusterAccelerationStructureCommandsInfoNV * pCommandInfos)9852 VKAPI_ATTR void VKAPI_CALL CmdBuildClusterAccelerationStructureIndirectNV(
9853 VkCommandBuffer commandBuffer,
9854 const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos) {
9855 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9856 if (NULL == disp) {
9857 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9858 "vkCmdBuildClusterAccelerationStructureIndirectNV: Invalid commandBuffer "
9859 "[VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter]");
9860 abort(); /* Intentionally fail so user can correct issue. */
9861 }
9862 disp->CmdBuildClusterAccelerationStructureIndirectNV(commandBuffer, pCommandInfos);
9863 }
9864
9865
9866 // ---- VK_NV_partitioned_acceleration_structure extension trampoline/terminators
9867
GetPartitionedAccelerationStructuresBuildSizesNV(VkDevice device,const VkPartitionedAccelerationStructureInstancesInputNV * pInfo,VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo)9868 VKAPI_ATTR void VKAPI_CALL GetPartitionedAccelerationStructuresBuildSizesNV(
9869 VkDevice device,
9870 const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
9871 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {
9872 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9873 if (NULL == disp) {
9874 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9875 "vkGetPartitionedAccelerationStructuresBuildSizesNV: Invalid device "
9876 "[VUID-vkGetPartitionedAccelerationStructuresBuildSizesNV-device-parameter]");
9877 abort(); /* Intentionally fail so user can correct issue. */
9878 }
9879 disp->GetPartitionedAccelerationStructuresBuildSizesNV(device, pInfo, pSizeInfo);
9880 }
9881
CmdBuildPartitionedAccelerationStructuresNV(VkCommandBuffer commandBuffer,const VkBuildPartitionedAccelerationStructureInfoNV * pBuildInfo)9882 VKAPI_ATTR void VKAPI_CALL CmdBuildPartitionedAccelerationStructuresNV(
9883 VkCommandBuffer commandBuffer,
9884 const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo) {
9885 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9886 if (NULL == disp) {
9887 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9888 "vkCmdBuildPartitionedAccelerationStructuresNV: Invalid commandBuffer "
9889 "[VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-parameter]");
9890 abort(); /* Intentionally fail so user can correct issue. */
9891 }
9892 disp->CmdBuildPartitionedAccelerationStructuresNV(commandBuffer, pBuildInfo);
9893 }
9894
9895
9896 // ---- VK_EXT_device_generated_commands extension trampoline/terminators
9897
GetGeneratedCommandsMemoryRequirementsEXT(VkDevice device,const VkGeneratedCommandsMemoryRequirementsInfoEXT * pInfo,VkMemoryRequirements2 * pMemoryRequirements)9898 VKAPI_ATTR void VKAPI_CALL GetGeneratedCommandsMemoryRequirementsEXT(
9899 VkDevice device,
9900 const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
9901 VkMemoryRequirements2* pMemoryRequirements) {
9902 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9903 if (NULL == disp) {
9904 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9905 "vkGetGeneratedCommandsMemoryRequirementsEXT: Invalid device "
9906 "[VUID-vkGetGeneratedCommandsMemoryRequirementsEXT-device-parameter]");
9907 abort(); /* Intentionally fail so user can correct issue. */
9908 }
9909 disp->GetGeneratedCommandsMemoryRequirementsEXT(device, pInfo, pMemoryRequirements);
9910 }
9911
CmdPreprocessGeneratedCommandsEXT(VkCommandBuffer commandBuffer,const VkGeneratedCommandsInfoEXT * pGeneratedCommandsInfo,VkCommandBuffer stateCommandBuffer)9912 VKAPI_ATTR void VKAPI_CALL CmdPreprocessGeneratedCommandsEXT(
9913 VkCommandBuffer commandBuffer,
9914 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,
9915 VkCommandBuffer stateCommandBuffer) {
9916 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9917 if (NULL == disp) {
9918 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9919 "vkCmdPreprocessGeneratedCommandsEXT: Invalid commandBuffer "
9920 "[VUID-vkCmdPreprocessGeneratedCommandsEXT-commandBuffer-parameter]");
9921 abort(); /* Intentionally fail so user can correct issue. */
9922 }
9923 disp->CmdPreprocessGeneratedCommandsEXT(commandBuffer, pGeneratedCommandsInfo, stateCommandBuffer);
9924 }
9925
CmdExecuteGeneratedCommandsEXT(VkCommandBuffer commandBuffer,VkBool32 isPreprocessed,const VkGeneratedCommandsInfoEXT * pGeneratedCommandsInfo)9926 VKAPI_ATTR void VKAPI_CALL CmdExecuteGeneratedCommandsEXT(
9927 VkCommandBuffer commandBuffer,
9928 VkBool32 isPreprocessed,
9929 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo) {
9930 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
9931 if (NULL == disp) {
9932 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9933 "vkCmdExecuteGeneratedCommandsEXT: Invalid commandBuffer "
9934 "[VUID-vkCmdExecuteGeneratedCommandsEXT-commandBuffer-parameter]");
9935 abort(); /* Intentionally fail so user can correct issue. */
9936 }
9937 disp->CmdExecuteGeneratedCommandsEXT(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
9938 }
9939
CreateIndirectCommandsLayoutEXT(VkDevice device,const VkIndirectCommandsLayoutCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectCommandsLayoutEXT * pIndirectCommandsLayout)9940 VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectCommandsLayoutEXT(
9941 VkDevice device,
9942 const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
9943 const VkAllocationCallbacks* pAllocator,
9944 VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout) {
9945 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9946 if (NULL == disp) {
9947 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9948 "vkCreateIndirectCommandsLayoutEXT: Invalid device "
9949 "[VUID-vkCreateIndirectCommandsLayoutEXT-device-parameter]");
9950 abort(); /* Intentionally fail so user can correct issue. */
9951 }
9952 return disp->CreateIndirectCommandsLayoutEXT(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
9953 }
9954
DestroyIndirectCommandsLayoutEXT(VkDevice device,VkIndirectCommandsLayoutEXT indirectCommandsLayout,const VkAllocationCallbacks * pAllocator)9955 VKAPI_ATTR void VKAPI_CALL DestroyIndirectCommandsLayoutEXT(
9956 VkDevice device,
9957 VkIndirectCommandsLayoutEXT indirectCommandsLayout,
9958 const VkAllocationCallbacks* pAllocator) {
9959 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9960 if (NULL == disp) {
9961 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9962 "vkDestroyIndirectCommandsLayoutEXT: Invalid device "
9963 "[VUID-vkDestroyIndirectCommandsLayoutEXT-device-parameter]");
9964 abort(); /* Intentionally fail so user can correct issue. */
9965 }
9966 disp->DestroyIndirectCommandsLayoutEXT(device, indirectCommandsLayout, pAllocator);
9967 }
9968
CreateIndirectExecutionSetEXT(VkDevice device,const VkIndirectExecutionSetCreateInfoEXT * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkIndirectExecutionSetEXT * pIndirectExecutionSet)9969 VKAPI_ATTR VkResult VKAPI_CALL CreateIndirectExecutionSetEXT(
9970 VkDevice device,
9971 const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,
9972 const VkAllocationCallbacks* pAllocator,
9973 VkIndirectExecutionSetEXT* pIndirectExecutionSet) {
9974 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9975 if (NULL == disp) {
9976 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9977 "vkCreateIndirectExecutionSetEXT: Invalid device "
9978 "[VUID-vkCreateIndirectExecutionSetEXT-device-parameter]");
9979 abort(); /* Intentionally fail so user can correct issue. */
9980 }
9981 return disp->CreateIndirectExecutionSetEXT(device, pCreateInfo, pAllocator, pIndirectExecutionSet);
9982 }
9983
DestroyIndirectExecutionSetEXT(VkDevice device,VkIndirectExecutionSetEXT indirectExecutionSet,const VkAllocationCallbacks * pAllocator)9984 VKAPI_ATTR void VKAPI_CALL DestroyIndirectExecutionSetEXT(
9985 VkDevice device,
9986 VkIndirectExecutionSetEXT indirectExecutionSet,
9987 const VkAllocationCallbacks* pAllocator) {
9988 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
9989 if (NULL == disp) {
9990 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
9991 "vkDestroyIndirectExecutionSetEXT: Invalid device "
9992 "[VUID-vkDestroyIndirectExecutionSetEXT-device-parameter]");
9993 abort(); /* Intentionally fail so user can correct issue. */
9994 }
9995 disp->DestroyIndirectExecutionSetEXT(device, indirectExecutionSet, pAllocator);
9996 }
9997
UpdateIndirectExecutionSetPipelineEXT(VkDevice device,VkIndirectExecutionSetEXT indirectExecutionSet,uint32_t executionSetWriteCount,const VkWriteIndirectExecutionSetPipelineEXT * pExecutionSetWrites)9998 VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetPipelineEXT(
9999 VkDevice device,
10000 VkIndirectExecutionSetEXT indirectExecutionSet,
10001 uint32_t executionSetWriteCount,
10002 const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites) {
10003 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10004 if (NULL == disp) {
10005 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10006 "vkUpdateIndirectExecutionSetPipelineEXT: Invalid device "
10007 "[VUID-vkUpdateIndirectExecutionSetPipelineEXT-device-parameter]");
10008 abort(); /* Intentionally fail so user can correct issue. */
10009 }
10010 disp->UpdateIndirectExecutionSetPipelineEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
10011 }
10012
UpdateIndirectExecutionSetShaderEXT(VkDevice device,VkIndirectExecutionSetEXT indirectExecutionSet,uint32_t executionSetWriteCount,const VkWriteIndirectExecutionSetShaderEXT * pExecutionSetWrites)10013 VKAPI_ATTR void VKAPI_CALL UpdateIndirectExecutionSetShaderEXT(
10014 VkDevice device,
10015 VkIndirectExecutionSetEXT indirectExecutionSet,
10016 uint32_t executionSetWriteCount,
10017 const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites) {
10018 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10019 if (NULL == disp) {
10020 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10021 "vkUpdateIndirectExecutionSetShaderEXT: Invalid device "
10022 "[VUID-vkUpdateIndirectExecutionSetShaderEXT-device-parameter]");
10023 abort(); /* Intentionally fail so user can correct issue. */
10024 }
10025 disp->UpdateIndirectExecutionSetShaderEXT(device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites);
10026 }
10027
10028
10029 // ---- VK_NV_cooperative_matrix2 extension trampoline/terminators
10030
GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixFlexibleDimensionsPropertiesNV * pProperties)10031 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
10032 VkPhysicalDevice physicalDevice,
10033 uint32_t* pPropertyCount,
10034 VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) {
10035 const VkLayerInstanceDispatchTable *disp;
10036 VkPhysicalDevice unwrapped_phys_dev = loader_unwrap_physical_device(physicalDevice);
10037 if (VK_NULL_HANDLE == unwrapped_phys_dev) {
10038 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10039 "vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV: Invalid physicalDevice "
10040 "[VUID-vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV-physicalDevice-parameter]");
10041 abort(); /* Intentionally fail so user can correct issue. */
10042 }
10043 disp = loader_get_instance_layer_dispatch(physicalDevice);
10044 return disp->GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(unwrapped_phys_dev, pPropertyCount, pProperties);
10045 }
10046
terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkCooperativeMatrixFlexibleDimensionsPropertiesNV * pProperties)10047 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
10048 VkPhysicalDevice physicalDevice,
10049 uint32_t* pPropertyCount,
10050 VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties) {
10051 struct loader_physical_device_term *phys_dev_term = (struct loader_physical_device_term *)physicalDevice;
10052 struct loader_icd_term *icd_term = phys_dev_term->this_icd_term;
10053 if (NULL == icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV) {
10054 loader_log(icd_term->this_instance, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT, 0,
10055 "ICD associated with VkPhysicalDevice does not support GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV");
10056 abort(); /* Intentionally fail so user can correct issue. */
10057 }
10058 return icd_term->dispatch.GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(phys_dev_term->phys_dev, pPropertyCount, pProperties);
10059 }
10060
10061
10062 // ---- VK_EXT_external_memory_metal extension trampoline/terminators
10063
10064 #if defined(VK_USE_PLATFORM_METAL_EXT)
GetMemoryMetalHandleEXT(VkDevice device,const VkMemoryGetMetalHandleInfoEXT * pGetMetalHandleInfo,void ** pHandle)10065 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandleEXT(
10066 VkDevice device,
10067 const VkMemoryGetMetalHandleInfoEXT* pGetMetalHandleInfo,
10068 void** pHandle) {
10069 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10070 if (NULL == disp) {
10071 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10072 "vkGetMemoryMetalHandleEXT: Invalid device "
10073 "[VUID-vkGetMemoryMetalHandleEXT-device-parameter]");
10074 abort(); /* Intentionally fail so user can correct issue. */
10075 }
10076 return disp->GetMemoryMetalHandleEXT(device, pGetMetalHandleInfo, pHandle);
10077 }
10078
10079 #endif // VK_USE_PLATFORM_METAL_EXT
10080 #if defined(VK_USE_PLATFORM_METAL_EXT)
GetMemoryMetalHandlePropertiesEXT(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,const void * pHandle,VkMemoryMetalHandlePropertiesEXT * pMemoryMetalHandleProperties)10081 VKAPI_ATTR VkResult VKAPI_CALL GetMemoryMetalHandlePropertiesEXT(
10082 VkDevice device,
10083 VkExternalMemoryHandleTypeFlagBits handleType,
10084 const void* pHandle,
10085 VkMemoryMetalHandlePropertiesEXT* pMemoryMetalHandleProperties) {
10086 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10087 if (NULL == disp) {
10088 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10089 "vkGetMemoryMetalHandlePropertiesEXT: Invalid device "
10090 "[VUID-vkGetMemoryMetalHandlePropertiesEXT-device-parameter]");
10091 abort(); /* Intentionally fail so user can correct issue. */
10092 }
10093 return disp->GetMemoryMetalHandlePropertiesEXT(device, handleType, pHandle, pMemoryMetalHandleProperties);
10094 }
10095
10096 #endif // VK_USE_PLATFORM_METAL_EXT
10097
10098 // ---- VK_KHR_acceleration_structure extension trampoline/terminators
10099
CreateAccelerationStructureKHR(VkDevice device,const VkAccelerationStructureCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkAccelerationStructureKHR * pAccelerationStructure)10100 VKAPI_ATTR VkResult VKAPI_CALL CreateAccelerationStructureKHR(
10101 VkDevice device,
10102 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
10103 const VkAllocationCallbacks* pAllocator,
10104 VkAccelerationStructureKHR* pAccelerationStructure) {
10105 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10106 if (NULL == disp) {
10107 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10108 "vkCreateAccelerationStructureKHR: Invalid device "
10109 "[VUID-vkCreateAccelerationStructureKHR-device-parameter]");
10110 abort(); /* Intentionally fail so user can correct issue. */
10111 }
10112 return disp->CreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
10113 }
10114
DestroyAccelerationStructureKHR(VkDevice device,VkAccelerationStructureKHR accelerationStructure,const VkAllocationCallbacks * pAllocator)10115 VKAPI_ATTR void VKAPI_CALL DestroyAccelerationStructureKHR(
10116 VkDevice device,
10117 VkAccelerationStructureKHR accelerationStructure,
10118 const VkAllocationCallbacks* pAllocator) {
10119 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10120 if (NULL == disp) {
10121 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10122 "vkDestroyAccelerationStructureKHR: Invalid device "
10123 "[VUID-vkDestroyAccelerationStructureKHR-device-parameter]");
10124 abort(); /* Intentionally fail so user can correct issue. */
10125 }
10126 disp->DestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
10127 }
10128
CmdBuildAccelerationStructuresKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos)10129 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresKHR(
10130 VkCommandBuffer commandBuffer,
10131 uint32_t infoCount,
10132 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
10133 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
10134 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10135 if (NULL == disp) {
10136 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10137 "vkCmdBuildAccelerationStructuresKHR: Invalid commandBuffer "
10138 "[VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter]");
10139 abort(); /* Intentionally fail so user can correct issue. */
10140 }
10141 disp->CmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos);
10142 }
10143
CmdBuildAccelerationStructuresIndirectKHR(VkCommandBuffer commandBuffer,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkDeviceAddress * pIndirectDeviceAddresses,const uint32_t * pIndirectStrides,const uint32_t * const * ppMaxPrimitiveCounts)10144 VKAPI_ATTR void VKAPI_CALL CmdBuildAccelerationStructuresIndirectKHR(
10145 VkCommandBuffer commandBuffer,
10146 uint32_t infoCount,
10147 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
10148 const VkDeviceAddress* pIndirectDeviceAddresses,
10149 const uint32_t* pIndirectStrides,
10150 const uint32_t* const* ppMaxPrimitiveCounts) {
10151 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10152 if (NULL == disp) {
10153 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10154 "vkCmdBuildAccelerationStructuresIndirectKHR: Invalid commandBuffer "
10155 "[VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter]");
10156 abort(); /* Intentionally fail so user can correct issue. */
10157 }
10158 disp->CmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts);
10159 }
10160
BuildAccelerationStructuresKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,uint32_t infoCount,const VkAccelerationStructureBuildGeometryInfoKHR * pInfos,const VkAccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos)10161 VKAPI_ATTR VkResult VKAPI_CALL BuildAccelerationStructuresKHR(
10162 VkDevice device,
10163 VkDeferredOperationKHR deferredOperation,
10164 uint32_t infoCount,
10165 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
10166 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) {
10167 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10168 if (NULL == disp) {
10169 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10170 "vkBuildAccelerationStructuresKHR: Invalid device "
10171 "[VUID-vkBuildAccelerationStructuresKHR-device-parameter]");
10172 abort(); /* Intentionally fail so user can correct issue. */
10173 }
10174 return disp->BuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos);
10175 }
10176
CopyAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureInfoKHR * pInfo)10177 VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureKHR(
10178 VkDevice device,
10179 VkDeferredOperationKHR deferredOperation,
10180 const VkCopyAccelerationStructureInfoKHR* pInfo) {
10181 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10182 if (NULL == disp) {
10183 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10184 "vkCopyAccelerationStructureKHR: Invalid device "
10185 "[VUID-vkCopyAccelerationStructureKHR-device-parameter]");
10186 abort(); /* Intentionally fail so user can correct issue. */
10187 }
10188 return disp->CopyAccelerationStructureKHR(device, deferredOperation, pInfo);
10189 }
10190
CopyAccelerationStructureToMemoryKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo)10191 VKAPI_ATTR VkResult VKAPI_CALL CopyAccelerationStructureToMemoryKHR(
10192 VkDevice device,
10193 VkDeferredOperationKHR deferredOperation,
10194 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
10195 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10196 if (NULL == disp) {
10197 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10198 "vkCopyAccelerationStructureToMemoryKHR: Invalid device "
10199 "[VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter]");
10200 abort(); /* Intentionally fail so user can correct issue. */
10201 }
10202 return disp->CopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo);
10203 }
10204
CopyMemoryToAccelerationStructureKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo)10205 VKAPI_ATTR VkResult VKAPI_CALL CopyMemoryToAccelerationStructureKHR(
10206 VkDevice device,
10207 VkDeferredOperationKHR deferredOperation,
10208 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
10209 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10210 if (NULL == disp) {
10211 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10212 "vkCopyMemoryToAccelerationStructureKHR: Invalid device "
10213 "[VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter]");
10214 abort(); /* Intentionally fail so user can correct issue. */
10215 }
10216 return disp->CopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo);
10217 }
10218
WriteAccelerationStructuresPropertiesKHR(VkDevice device,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,size_t dataSize,void * pData,size_t stride)10219 VKAPI_ATTR VkResult VKAPI_CALL WriteAccelerationStructuresPropertiesKHR(
10220 VkDevice device,
10221 uint32_t accelerationStructureCount,
10222 const VkAccelerationStructureKHR* pAccelerationStructures,
10223 VkQueryType queryType,
10224 size_t dataSize,
10225 void* pData,
10226 size_t stride) {
10227 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10228 if (NULL == disp) {
10229 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10230 "vkWriteAccelerationStructuresPropertiesKHR: Invalid device "
10231 "[VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter]");
10232 abort(); /* Intentionally fail so user can correct issue. */
10233 }
10234 return disp->WriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
10235 }
10236
CmdCopyAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureInfoKHR * pInfo)10237 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureKHR(
10238 VkCommandBuffer commandBuffer,
10239 const VkCopyAccelerationStructureInfoKHR* pInfo) {
10240 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10241 if (NULL == disp) {
10242 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10243 "vkCmdCopyAccelerationStructureKHR: Invalid commandBuffer "
10244 "[VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter]");
10245 abort(); /* Intentionally fail so user can correct issue. */
10246 }
10247 disp->CmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
10248 }
10249
CmdCopyAccelerationStructureToMemoryKHR(VkCommandBuffer commandBuffer,const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo)10250 VKAPI_ATTR void VKAPI_CALL CmdCopyAccelerationStructureToMemoryKHR(
10251 VkCommandBuffer commandBuffer,
10252 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) {
10253 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10254 if (NULL == disp) {
10255 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10256 "vkCmdCopyAccelerationStructureToMemoryKHR: Invalid commandBuffer "
10257 "[VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter]");
10258 abort(); /* Intentionally fail so user can correct issue. */
10259 }
10260 disp->CmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
10261 }
10262
CmdCopyMemoryToAccelerationStructureKHR(VkCommandBuffer commandBuffer,const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo)10263 VKAPI_ATTR void VKAPI_CALL CmdCopyMemoryToAccelerationStructureKHR(
10264 VkCommandBuffer commandBuffer,
10265 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) {
10266 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10267 if (NULL == disp) {
10268 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10269 "vkCmdCopyMemoryToAccelerationStructureKHR: Invalid commandBuffer "
10270 "[VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter]");
10271 abort(); /* Intentionally fail so user can correct issue. */
10272 }
10273 disp->CmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
10274 }
10275
GetAccelerationStructureDeviceAddressKHR(VkDevice device,const VkAccelerationStructureDeviceAddressInfoKHR * pInfo)10276 VKAPI_ATTR VkDeviceAddress VKAPI_CALL GetAccelerationStructureDeviceAddressKHR(
10277 VkDevice device,
10278 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) {
10279 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10280 if (NULL == disp) {
10281 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10282 "vkGetAccelerationStructureDeviceAddressKHR: Invalid device "
10283 "[VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter]");
10284 abort(); /* Intentionally fail so user can correct issue. */
10285 }
10286 return disp->GetAccelerationStructureDeviceAddressKHR(device, pInfo);
10287 }
10288
CmdWriteAccelerationStructuresPropertiesKHR(VkCommandBuffer commandBuffer,uint32_t accelerationStructureCount,const VkAccelerationStructureKHR * pAccelerationStructures,VkQueryType queryType,VkQueryPool queryPool,uint32_t firstQuery)10289 VKAPI_ATTR void VKAPI_CALL CmdWriteAccelerationStructuresPropertiesKHR(
10290 VkCommandBuffer commandBuffer,
10291 uint32_t accelerationStructureCount,
10292 const VkAccelerationStructureKHR* pAccelerationStructures,
10293 VkQueryType queryType,
10294 VkQueryPool queryPool,
10295 uint32_t firstQuery) {
10296 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10297 if (NULL == disp) {
10298 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10299 "vkCmdWriteAccelerationStructuresPropertiesKHR: Invalid commandBuffer "
10300 "[VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter]");
10301 abort(); /* Intentionally fail so user can correct issue. */
10302 }
10303 disp->CmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
10304 }
10305
GetDeviceAccelerationStructureCompatibilityKHR(VkDevice device,const VkAccelerationStructureVersionInfoKHR * pVersionInfo,VkAccelerationStructureCompatibilityKHR * pCompatibility)10306 VKAPI_ATTR void VKAPI_CALL GetDeviceAccelerationStructureCompatibilityKHR(
10307 VkDevice device,
10308 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
10309 VkAccelerationStructureCompatibilityKHR* pCompatibility) {
10310 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10311 if (NULL == disp) {
10312 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10313 "vkGetDeviceAccelerationStructureCompatibilityKHR: Invalid device "
10314 "[VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter]");
10315 abort(); /* Intentionally fail so user can correct issue. */
10316 }
10317 disp->GetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility);
10318 }
10319
GetAccelerationStructureBuildSizesKHR(VkDevice device,VkAccelerationStructureBuildTypeKHR buildType,const VkAccelerationStructureBuildGeometryInfoKHR * pBuildInfo,const uint32_t * pMaxPrimitiveCounts,VkAccelerationStructureBuildSizesInfoKHR * pSizeInfo)10320 VKAPI_ATTR void VKAPI_CALL GetAccelerationStructureBuildSizesKHR(
10321 VkDevice device,
10322 VkAccelerationStructureBuildTypeKHR buildType,
10323 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
10324 const uint32_t* pMaxPrimitiveCounts,
10325 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) {
10326 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10327 if (NULL == disp) {
10328 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10329 "vkGetAccelerationStructureBuildSizesKHR: Invalid device "
10330 "[VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter]");
10331 abort(); /* Intentionally fail so user can correct issue. */
10332 }
10333 disp->GetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo);
10334 }
10335
10336
10337 // ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
10338
CmdTraceRaysKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth)10339 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysKHR(
10340 VkCommandBuffer commandBuffer,
10341 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
10342 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
10343 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
10344 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
10345 uint32_t width,
10346 uint32_t height,
10347 uint32_t depth) {
10348 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10349 if (NULL == disp) {
10350 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10351 "vkCmdTraceRaysKHR: Invalid commandBuffer "
10352 "[VUID-vkCmdTraceRaysKHR-commandBuffer-parameter]");
10353 abort(); /* Intentionally fail so user can correct issue. */
10354 }
10355 disp->CmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
10356 }
10357
CreateRayTracingPipelinesKHR(VkDevice device,VkDeferredOperationKHR deferredOperation,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkRayTracingPipelineCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)10358 VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesKHR(
10359 VkDevice device,
10360 VkDeferredOperationKHR deferredOperation,
10361 VkPipelineCache pipelineCache,
10362 uint32_t createInfoCount,
10363 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
10364 const VkAllocationCallbacks* pAllocator,
10365 VkPipeline* pPipelines) {
10366 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10367 if (NULL == disp) {
10368 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10369 "vkCreateRayTracingPipelinesKHR: Invalid device "
10370 "[VUID-vkCreateRayTracingPipelinesKHR-device-parameter]");
10371 abort(); /* Intentionally fail so user can correct issue. */
10372 }
10373 return disp->CreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
10374 }
10375
GetRayTracingCaptureReplayShaderGroupHandlesKHR(VkDevice device,VkPipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData)10376 VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingCaptureReplayShaderGroupHandlesKHR(
10377 VkDevice device,
10378 VkPipeline pipeline,
10379 uint32_t firstGroup,
10380 uint32_t groupCount,
10381 size_t dataSize,
10382 void* pData) {
10383 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10384 if (NULL == disp) {
10385 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10386 "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR: Invalid device "
10387 "[VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter]");
10388 abort(); /* Intentionally fail so user can correct issue. */
10389 }
10390 return disp->GetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
10391 }
10392
CmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,const VkStridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VkStridedDeviceAddressRegionKHR * pCallableShaderBindingTable,VkDeviceAddress indirectDeviceAddress)10393 VKAPI_ATTR void VKAPI_CALL CmdTraceRaysIndirectKHR(
10394 VkCommandBuffer commandBuffer,
10395 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
10396 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
10397 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
10398 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
10399 VkDeviceAddress indirectDeviceAddress) {
10400 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10401 if (NULL == disp) {
10402 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10403 "vkCmdTraceRaysIndirectKHR: Invalid commandBuffer "
10404 "[VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter]");
10405 abort(); /* Intentionally fail so user can correct issue. */
10406 }
10407 disp->CmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress);
10408 }
10409
GetRayTracingShaderGroupStackSizeKHR(VkDevice device,VkPipeline pipeline,uint32_t group,VkShaderGroupShaderKHR groupShader)10410 VKAPI_ATTR VkDeviceSize VKAPI_CALL GetRayTracingShaderGroupStackSizeKHR(
10411 VkDevice device,
10412 VkPipeline pipeline,
10413 uint32_t group,
10414 VkShaderGroupShaderKHR groupShader) {
10415 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10416 if (NULL == disp) {
10417 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10418 "vkGetRayTracingShaderGroupStackSizeKHR: Invalid device "
10419 "[VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter]");
10420 abort(); /* Intentionally fail so user can correct issue. */
10421 }
10422 return disp->GetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader);
10423 }
10424
CmdSetRayTracingPipelineStackSizeKHR(VkCommandBuffer commandBuffer,uint32_t pipelineStackSize)10425 VKAPI_ATTR void VKAPI_CALL CmdSetRayTracingPipelineStackSizeKHR(
10426 VkCommandBuffer commandBuffer,
10427 uint32_t pipelineStackSize) {
10428 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10429 if (NULL == disp) {
10430 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10431 "vkCmdSetRayTracingPipelineStackSizeKHR: Invalid commandBuffer "
10432 "[VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter]");
10433 abort(); /* Intentionally fail so user can correct issue. */
10434 }
10435 disp->CmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize);
10436 }
10437
10438
10439 // ---- VK_EXT_mesh_shader extension trampoline/terminators
10440
CmdDrawMeshTasksEXT(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)10441 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksEXT(
10442 VkCommandBuffer commandBuffer,
10443 uint32_t groupCountX,
10444 uint32_t groupCountY,
10445 uint32_t groupCountZ) {
10446 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10447 if (NULL == disp) {
10448 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10449 "vkCmdDrawMeshTasksEXT: Invalid commandBuffer "
10450 "[VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter]");
10451 abort(); /* Intentionally fail so user can correct issue. */
10452 }
10453 disp->CmdDrawMeshTasksEXT(commandBuffer, groupCountX, groupCountY, groupCountZ);
10454 }
10455
CmdDrawMeshTasksIndirectEXT(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)10456 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectEXT(
10457 VkCommandBuffer commandBuffer,
10458 VkBuffer buffer,
10459 VkDeviceSize offset,
10460 uint32_t drawCount,
10461 uint32_t stride) {
10462 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10463 if (NULL == disp) {
10464 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10465 "vkCmdDrawMeshTasksIndirectEXT: Invalid commandBuffer "
10466 "[VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter]");
10467 abort(); /* Intentionally fail so user can correct issue. */
10468 }
10469 disp->CmdDrawMeshTasksIndirectEXT(commandBuffer, buffer, offset, drawCount, stride);
10470 }
10471
CmdDrawMeshTasksIndirectCountEXT(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)10472 VKAPI_ATTR void VKAPI_CALL CmdDrawMeshTasksIndirectCountEXT(
10473 VkCommandBuffer commandBuffer,
10474 VkBuffer buffer,
10475 VkDeviceSize offset,
10476 VkBuffer countBuffer,
10477 VkDeviceSize countBufferOffset,
10478 uint32_t maxDrawCount,
10479 uint32_t stride) {
10480 const VkLayerDispatchTable *disp = loader_get_dispatch(commandBuffer);
10481 if (NULL == disp) {
10482 loader_log(NULL, VULKAN_LOADER_FATAL_ERROR_BIT | VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10483 "vkCmdDrawMeshTasksIndirectCountEXT: Invalid commandBuffer "
10484 "[VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter]");
10485 abort(); /* Intentionally fail so user can correct issue. */
10486 }
10487 disp->CmdDrawMeshTasksIndirectCountEXT(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
10488 }
10489
10490 // ---- VK_OHOS_native_buffer extension trampoline/terminators
10491
10492 #ifdef VK_USE_PLATFORM_OHOS
GetSwapchainGrallocUsageOHOS(VkDevice device,VkFormat format,VkImageUsageFlags imageUsage,uint64_t * grallocUsage)10493 VKAPI_ATTR VkResult VKAPI_CALL GetSwapchainGrallocUsageOHOS(
10494 VkDevice device,
10495 VkFormat format,
10496 VkImageUsageFlags imageUsage,
10497 uint64_t* grallocUsage) {
10498 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10499 if (NULL == disp) {
10500 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10501 "vkGetSwapchainGrallocUsageOHOS: Invalid device "
10502 "[VUID-vkGetSwapchainGrallocUsageOHOS-device-parameter]");
10503 abort(); /* Intentionally fail so user can correct issue. */
10504 }
10505 return disp->GetSwapchainGrallocUsageOHOS(device, format, imageUsage, grallocUsage);
10506 }
10507
10508 #endif // VK_USE_PLATFORM_OHOS
10509 #ifdef VK_USE_PLATFORM_OHOS
AcquireImageOHOS(VkDevice device,VkImage image,int32_t nativeFenceFd,VkSemaphore semaphore,VkFence fence)10510 VKAPI_ATTR VkResult VKAPI_CALL AcquireImageOHOS(
10511 VkDevice device,
10512 VkImage image,
10513 int32_t nativeFenceFd,
10514 VkSemaphore semaphore,
10515 VkFence fence) {
10516 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10517 if (NULL == disp) {
10518 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10519 "vkAcquireImageOHOS: Invalid device "
10520 "[VUID-vkAcquireImageOHOS-device-parameter]");
10521 abort(); /* Intentionally fail so user can correct issue. */
10522 }
10523 return disp->AcquireImageOHOS(device, image, nativeFenceFd, semaphore, fence);
10524 }
10525
10526 #endif // VK_USE_PLATFORM_OHOS
10527 #ifdef VK_USE_PLATFORM_OHOS
QueueSignalReleaseImageOHOS(VkQueue queue,uint32_t waitSemaphoreCount,const VkSemaphore * pWaitSemaphores,VkImage image,int32_t * pNativeFenceFd)10528 VKAPI_ATTR VkResult VKAPI_CALL QueueSignalReleaseImageOHOS(
10529 VkQueue queue,
10530 uint32_t waitSemaphoreCount,
10531 const VkSemaphore* pWaitSemaphores,
10532 VkImage image,
10533 int32_t* pNativeFenceFd) {
10534 const VkLayerDispatchTable *disp = loader_get_dispatch(queue);
10535 if (NULL == disp) {
10536 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10537 "vkQueueSignalReleaseImageOHOS: Invalid queue "
10538 "[VUID-vkQueueSignalReleaseImageOHOS-queue-parameter]");
10539 abort(); /* Intentionally fail so user can correct issue. */
10540 }
10541 return disp->QueueSignalReleaseImageOHOS(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
10542 }
10543
10544 #endif // VK_USE_PLATFORM_OHOS
10545
10546 // ---- VK_OHOS_external_memory extension trampoline/terminators
10547
10548 #ifdef VK_USE_PLATFORM_OHOS
vkGetNativeBufferPropertiesOHOS(VkDevice device,const struct OH_NativeBuffer * buffer,VkNativeBufferPropertiesOHOS * pProperties)10549 VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeBufferPropertiesOHOS(
10550 VkDevice device,
10551 const struct OH_NativeBuffer* buffer,
10552 VkNativeBufferPropertiesOHOS* pProperties) {
10553 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10554 if (NULL == disp) {
10555 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10556 "vkGetNativeBufferPropertiesOHOS: Invalid device "
10557 "[VUID-vkGetNativeBufferPropertiesOHOS-device-parameter]");
10558 abort(); /* Intentionally fail so user can correct issue. */
10559 }
10560 return disp->GetNativeBufferPropertiesOHOS(device, buffer, pProperties);
10561 }
10562
10563 #endif // VK_USE_PLATFORM_OHOS
10564 #ifdef VK_USE_PLATFORM_OHOS
vkGetMemoryNativeBufferOHOS(VkDevice device,const VkMemoryGetNativeBufferInfoOHOS * pInfo,struct OH_NativeBuffer ** pBuffer)10565 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryNativeBufferOHOS(
10566 VkDevice device,
10567 const VkMemoryGetNativeBufferInfoOHOS* pInfo,
10568 struct OH_NativeBuffer** pBuffer) {
10569 const VkLayerDispatchTable *disp = loader_get_dispatch(device);
10570 if (NULL == disp) {
10571 loader_log(NULL, VULKAN_LOADER_ERROR_BIT | VULKAN_LOADER_VALIDATION_BIT, 0,
10572 "vkGetMemoryNativeBufferOHOS: Invalid device "
10573 "[VUID-vkGetMemoryNativeBufferOHOS-device-parameter]");
10574 abort(); /* Intentionally fail so user can correct issue. */
10575 }
10576 return disp->GetMemoryNativeBufferOHOS(device, pInfo, pBuffer);
10577 }
10578
10579 #endif // VK_USE_PLATFORM_OHOS
10580
10581 // GPA helpers for extensions
extension_instance_gpa(struct loader_instance * ptr_instance,const char * name,void ** addr)10582 bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr) {
10583 *addr = NULL;
10584
10585
10586 // ---- VK_KHR_video_queue extension commands
10587 if (!strcmp("vkGetPhysicalDeviceVideoCapabilitiesKHR", name)) {
10588 *addr = (void *)GetPhysicalDeviceVideoCapabilitiesKHR;
10589 return true;
10590 }
10591 if (!strcmp("vkGetPhysicalDeviceVideoFormatPropertiesKHR", name)) {
10592 *addr = (void *)GetPhysicalDeviceVideoFormatPropertiesKHR;
10593 return true;
10594 }
10595 if (!strcmp("vkCreateVideoSessionKHR", name)) {
10596 *addr = (void *)CreateVideoSessionKHR;
10597 return true;
10598 }
10599 if (!strcmp("vkDestroyVideoSessionKHR", name)) {
10600 *addr = (void *)DestroyVideoSessionKHR;
10601 return true;
10602 }
10603 if (!strcmp("vkGetVideoSessionMemoryRequirementsKHR", name)) {
10604 *addr = (void *)GetVideoSessionMemoryRequirementsKHR;
10605 return true;
10606 }
10607 if (!strcmp("vkBindVideoSessionMemoryKHR", name)) {
10608 *addr = (void *)BindVideoSessionMemoryKHR;
10609 return true;
10610 }
10611 if (!strcmp("vkCreateVideoSessionParametersKHR", name)) {
10612 *addr = (void *)CreateVideoSessionParametersKHR;
10613 return true;
10614 }
10615 if (!strcmp("vkUpdateVideoSessionParametersKHR", name)) {
10616 *addr = (void *)UpdateVideoSessionParametersKHR;
10617 return true;
10618 }
10619 if (!strcmp("vkDestroyVideoSessionParametersKHR", name)) {
10620 *addr = (void *)DestroyVideoSessionParametersKHR;
10621 return true;
10622 }
10623 if (!strcmp("vkCmdBeginVideoCodingKHR", name)) {
10624 *addr = (void *)CmdBeginVideoCodingKHR;
10625 return true;
10626 }
10627 if (!strcmp("vkCmdEndVideoCodingKHR", name)) {
10628 *addr = (void *)CmdEndVideoCodingKHR;
10629 return true;
10630 }
10631 if (!strcmp("vkCmdControlVideoCodingKHR", name)) {
10632 *addr = (void *)CmdControlVideoCodingKHR;
10633 return true;
10634 }
10635
10636 // ---- VK_KHR_video_decode_queue extension commands
10637 if (!strcmp("vkCmdDecodeVideoKHR", name)) {
10638 *addr = (void *)CmdDecodeVideoKHR;
10639 return true;
10640 }
10641
10642 // ---- VK_KHR_dynamic_rendering extension commands
10643 if (!strcmp("vkCmdBeginRenderingKHR", name)) {
10644 *addr = (void *)CmdBeginRenderingKHR;
10645 return true;
10646 }
10647 if (!strcmp("vkCmdEndRenderingKHR", name)) {
10648 *addr = (void *)CmdEndRenderingKHR;
10649 return true;
10650 }
10651
10652 // ---- VK_KHR_get_physical_device_properties2 extension commands
10653 if (!strcmp("vkGetPhysicalDeviceFeatures2KHR", name)) {
10654 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
10655 ? (void *)vkGetPhysicalDeviceFeatures2
10656 : NULL;
10657 return true;
10658 }
10659 if (!strcmp("vkGetPhysicalDeviceProperties2KHR", name)) {
10660 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
10661 ? (void *)vkGetPhysicalDeviceProperties2
10662 : NULL;
10663 return true;
10664 }
10665 if (!strcmp("vkGetPhysicalDeviceFormatProperties2KHR", name)) {
10666 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
10667 ? (void *)vkGetPhysicalDeviceFormatProperties2
10668 : NULL;
10669 return true;
10670 }
10671 if (!strcmp("vkGetPhysicalDeviceImageFormatProperties2KHR", name)) {
10672 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
10673 ? (void *)vkGetPhysicalDeviceImageFormatProperties2
10674 : NULL;
10675 return true;
10676 }
10677 if (!strcmp("vkGetPhysicalDeviceQueueFamilyProperties2KHR", name)) {
10678 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
10679 ? (void *)vkGetPhysicalDeviceQueueFamilyProperties2
10680 : NULL;
10681 return true;
10682 }
10683 if (!strcmp("vkGetPhysicalDeviceMemoryProperties2KHR", name)) {
10684 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
10685 ? (void *)vkGetPhysicalDeviceMemoryProperties2
10686 : NULL;
10687 return true;
10688 }
10689 if (!strcmp("vkGetPhysicalDeviceSparseImageFormatProperties2KHR", name)) {
10690 *addr = (ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 == 1)
10691 ? (void *)vkGetPhysicalDeviceSparseImageFormatProperties2
10692 : NULL;
10693 return true;
10694 }
10695
10696 // ---- VK_KHR_device_group extension commands
10697 if (!strcmp("vkGetDeviceGroupPeerMemoryFeaturesKHR", name)) {
10698 *addr = (void *)GetDeviceGroupPeerMemoryFeaturesKHR;
10699 return true;
10700 }
10701 if (!strcmp("vkCmdSetDeviceMaskKHR", name)) {
10702 *addr = (void *)CmdSetDeviceMaskKHR;
10703 return true;
10704 }
10705 if (!strcmp("vkCmdDispatchBaseKHR", name)) {
10706 *addr = (void *)CmdDispatchBaseKHR;
10707 return true;
10708 }
10709
10710 // ---- VK_KHR_maintenance1 extension commands
10711 if (!strcmp("vkTrimCommandPoolKHR", name)) {
10712 *addr = (void *)TrimCommandPoolKHR;
10713 return true;
10714 }
10715
10716 // ---- VK_KHR_device_group_creation extension commands
10717 if (!strcmp("vkEnumeratePhysicalDeviceGroupsKHR", name)) {
10718 *addr = (ptr_instance->enabled_known_extensions.khr_device_group_creation == 1)
10719 ? (void *)vkEnumeratePhysicalDeviceGroups
10720 : NULL;
10721 return true;
10722 }
10723
10724 // ---- VK_KHR_external_memory_capabilities extension commands
10725 if (!strcmp("vkGetPhysicalDeviceExternalBufferPropertiesKHR", name)) {
10726 *addr = (ptr_instance->enabled_known_extensions.khr_external_memory_capabilities == 1)
10727 ? (void *)vkGetPhysicalDeviceExternalBufferProperties
10728 : NULL;
10729 return true;
10730 }
10731
10732 // ---- VK_KHR_external_memory_win32 extension commands
10733 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10734 if (!strcmp("vkGetMemoryWin32HandleKHR", name)) {
10735 *addr = (void *)GetMemoryWin32HandleKHR;
10736 return true;
10737 }
10738 #endif // VK_USE_PLATFORM_WIN32_KHR
10739 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10740 if (!strcmp("vkGetMemoryWin32HandlePropertiesKHR", name)) {
10741 *addr = (void *)GetMemoryWin32HandlePropertiesKHR;
10742 return true;
10743 }
10744 #endif // VK_USE_PLATFORM_WIN32_KHR
10745
10746 // ---- VK_KHR_external_memory_fd extension commands
10747 if (!strcmp("vkGetMemoryFdKHR", name)) {
10748 *addr = (void *)GetMemoryFdKHR;
10749 return true;
10750 }
10751 if (!strcmp("vkGetMemoryFdPropertiesKHR", name)) {
10752 *addr = (void *)GetMemoryFdPropertiesKHR;
10753 return true;
10754 }
10755
10756 // ---- VK_KHR_external_semaphore_capabilities extension commands
10757 if (!strcmp("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR", name)) {
10758 *addr = (ptr_instance->enabled_known_extensions.khr_external_semaphore_capabilities == 1)
10759 ? (void *)vkGetPhysicalDeviceExternalSemaphoreProperties
10760 : NULL;
10761 return true;
10762 }
10763
10764 // ---- VK_KHR_external_semaphore_win32 extension commands
10765 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10766 if (!strcmp("vkImportSemaphoreWin32HandleKHR", name)) {
10767 *addr = (void *)ImportSemaphoreWin32HandleKHR;
10768 return true;
10769 }
10770 #endif // VK_USE_PLATFORM_WIN32_KHR
10771 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10772 if (!strcmp("vkGetSemaphoreWin32HandleKHR", name)) {
10773 *addr = (void *)GetSemaphoreWin32HandleKHR;
10774 return true;
10775 }
10776 #endif // VK_USE_PLATFORM_WIN32_KHR
10777
10778 // ---- VK_KHR_external_semaphore_fd extension commands
10779 if (!strcmp("vkImportSemaphoreFdKHR", name)) {
10780 *addr = (void *)ImportSemaphoreFdKHR;
10781 return true;
10782 }
10783 if (!strcmp("vkGetSemaphoreFdKHR", name)) {
10784 *addr = (void *)GetSemaphoreFdKHR;
10785 return true;
10786 }
10787
10788 // ---- VK_KHR_push_descriptor extension commands
10789 if (!strcmp("vkCmdPushDescriptorSetKHR", name)) {
10790 *addr = (void *)CmdPushDescriptorSetKHR;
10791 return true;
10792 }
10793 if (!strcmp("vkCmdPushDescriptorSetWithTemplateKHR", name)) {
10794 *addr = (void *)CmdPushDescriptorSetWithTemplateKHR;
10795 return true;
10796 }
10797
10798 // ---- VK_KHR_descriptor_update_template extension commands
10799 if (!strcmp("vkCreateDescriptorUpdateTemplateKHR", name)) {
10800 *addr = (void *)CreateDescriptorUpdateTemplateKHR;
10801 return true;
10802 }
10803 if (!strcmp("vkDestroyDescriptorUpdateTemplateKHR", name)) {
10804 *addr = (void *)DestroyDescriptorUpdateTemplateKHR;
10805 return true;
10806 }
10807 if (!strcmp("vkUpdateDescriptorSetWithTemplateKHR", name)) {
10808 *addr = (void *)UpdateDescriptorSetWithTemplateKHR;
10809 return true;
10810 }
10811
10812 // ---- VK_KHR_create_renderpass2 extension commands
10813 if (!strcmp("vkCreateRenderPass2KHR", name)) {
10814 *addr = (void *)CreateRenderPass2KHR;
10815 return true;
10816 }
10817 if (!strcmp("vkCmdBeginRenderPass2KHR", name)) {
10818 *addr = (void *)CmdBeginRenderPass2KHR;
10819 return true;
10820 }
10821 if (!strcmp("vkCmdNextSubpass2KHR", name)) {
10822 *addr = (void *)CmdNextSubpass2KHR;
10823 return true;
10824 }
10825 if (!strcmp("vkCmdEndRenderPass2KHR", name)) {
10826 *addr = (void *)CmdEndRenderPass2KHR;
10827 return true;
10828 }
10829
10830 // ---- VK_KHR_shared_presentable_image extension commands
10831 if (!strcmp("vkGetSwapchainStatusKHR", name)) {
10832 *addr = (void *)GetSwapchainStatusKHR;
10833 return true;
10834 }
10835
10836 // ---- VK_KHR_external_fence_capabilities extension commands
10837 if (!strcmp("vkGetPhysicalDeviceExternalFencePropertiesKHR", name)) {
10838 *addr = (ptr_instance->enabled_known_extensions.khr_external_fence_capabilities == 1)
10839 ? (void *)vkGetPhysicalDeviceExternalFenceProperties
10840 : NULL;
10841 return true;
10842 }
10843
10844 // ---- VK_KHR_external_fence_win32 extension commands
10845 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10846 if (!strcmp("vkImportFenceWin32HandleKHR", name)) {
10847 *addr = (void *)ImportFenceWin32HandleKHR;
10848 return true;
10849 }
10850 #endif // VK_USE_PLATFORM_WIN32_KHR
10851 #if defined(VK_USE_PLATFORM_WIN32_KHR)
10852 if (!strcmp("vkGetFenceWin32HandleKHR", name)) {
10853 *addr = (void *)GetFenceWin32HandleKHR;
10854 return true;
10855 }
10856 #endif // VK_USE_PLATFORM_WIN32_KHR
10857
10858 // ---- VK_KHR_external_fence_fd extension commands
10859 if (!strcmp("vkImportFenceFdKHR", name)) {
10860 *addr = (void *)ImportFenceFdKHR;
10861 return true;
10862 }
10863 if (!strcmp("vkGetFenceFdKHR", name)) {
10864 *addr = (void *)GetFenceFdKHR;
10865 return true;
10866 }
10867
10868 // ---- VK_KHR_performance_query extension commands
10869 if (!strcmp("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR", name)) {
10870 *addr = (void *)EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
10871 return true;
10872 }
10873 if (!strcmp("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", name)) {
10874 *addr = (void *)GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
10875 return true;
10876 }
10877 if (!strcmp("vkAcquireProfilingLockKHR", name)) {
10878 *addr = (void *)AcquireProfilingLockKHR;
10879 return true;
10880 }
10881 if (!strcmp("vkReleaseProfilingLockKHR", name)) {
10882 *addr = (void *)ReleaseProfilingLockKHR;
10883 return true;
10884 }
10885
10886 // ---- VK_KHR_get_memory_requirements2 extension commands
10887 if (!strcmp("vkGetImageMemoryRequirements2KHR", name)) {
10888 *addr = (void *)GetImageMemoryRequirements2KHR;
10889 return true;
10890 }
10891 if (!strcmp("vkGetBufferMemoryRequirements2KHR", name)) {
10892 *addr = (void *)GetBufferMemoryRequirements2KHR;
10893 return true;
10894 }
10895 if (!strcmp("vkGetImageSparseMemoryRequirements2KHR", name)) {
10896 *addr = (void *)GetImageSparseMemoryRequirements2KHR;
10897 return true;
10898 }
10899
10900 // ---- VK_KHR_sampler_ycbcr_conversion extension commands
10901 if (!strcmp("vkCreateSamplerYcbcrConversionKHR", name)) {
10902 *addr = (void *)CreateSamplerYcbcrConversionKHR;
10903 return true;
10904 }
10905 if (!strcmp("vkDestroySamplerYcbcrConversionKHR", name)) {
10906 *addr = (void *)DestroySamplerYcbcrConversionKHR;
10907 return true;
10908 }
10909
10910 // ---- VK_KHR_bind_memory2 extension commands
10911 if (!strcmp("vkBindBufferMemory2KHR", name)) {
10912 *addr = (void *)BindBufferMemory2KHR;
10913 return true;
10914 }
10915 if (!strcmp("vkBindImageMemory2KHR", name)) {
10916 *addr = (void *)BindImageMemory2KHR;
10917 return true;
10918 }
10919
10920 // ---- VK_KHR_maintenance3 extension commands
10921 if (!strcmp("vkGetDescriptorSetLayoutSupportKHR", name)) {
10922 *addr = (void *)GetDescriptorSetLayoutSupportKHR;
10923 return true;
10924 }
10925
10926 // ---- VK_KHR_draw_indirect_count extension commands
10927 if (!strcmp("vkCmdDrawIndirectCountKHR", name)) {
10928 *addr = (void *)CmdDrawIndirectCountKHR;
10929 return true;
10930 }
10931 if (!strcmp("vkCmdDrawIndexedIndirectCountKHR", name)) {
10932 *addr = (void *)CmdDrawIndexedIndirectCountKHR;
10933 return true;
10934 }
10935
10936 // ---- VK_KHR_timeline_semaphore extension commands
10937 if (!strcmp("vkGetSemaphoreCounterValueKHR", name)) {
10938 *addr = (void *)GetSemaphoreCounterValueKHR;
10939 return true;
10940 }
10941 if (!strcmp("vkWaitSemaphoresKHR", name)) {
10942 *addr = (void *)WaitSemaphoresKHR;
10943 return true;
10944 }
10945 if (!strcmp("vkSignalSemaphoreKHR", name)) {
10946 *addr = (void *)SignalSemaphoreKHR;
10947 return true;
10948 }
10949
10950 // ---- VK_KHR_fragment_shading_rate extension commands
10951 if (!strcmp("vkGetPhysicalDeviceFragmentShadingRatesKHR", name)) {
10952 *addr = (void *)GetPhysicalDeviceFragmentShadingRatesKHR;
10953 return true;
10954 }
10955 if (!strcmp("vkCmdSetFragmentShadingRateKHR", name)) {
10956 *addr = (void *)CmdSetFragmentShadingRateKHR;
10957 return true;
10958 }
10959
10960 // ---- VK_KHR_dynamic_rendering_local_read extension commands
10961 if (!strcmp("vkCmdSetRenderingAttachmentLocationsKHR", name)) {
10962 *addr = (void *)CmdSetRenderingAttachmentLocationsKHR;
10963 return true;
10964 }
10965 if (!strcmp("vkCmdSetRenderingInputAttachmentIndicesKHR", name)) {
10966 *addr = (void *)CmdSetRenderingInputAttachmentIndicesKHR;
10967 return true;
10968 }
10969
10970 // ---- VK_KHR_present_wait extension commands
10971 if (!strcmp("vkWaitForPresentKHR", name)) {
10972 *addr = (void *)WaitForPresentKHR;
10973 return true;
10974 }
10975
10976 // ---- VK_KHR_buffer_device_address extension commands
10977 if (!strcmp("vkGetBufferDeviceAddressKHR", name)) {
10978 *addr = (void *)GetBufferDeviceAddressKHR;
10979 return true;
10980 }
10981 if (!strcmp("vkGetBufferOpaqueCaptureAddressKHR", name)) {
10982 *addr = (void *)GetBufferOpaqueCaptureAddressKHR;
10983 return true;
10984 }
10985 if (!strcmp("vkGetDeviceMemoryOpaqueCaptureAddressKHR", name)) {
10986 *addr = (void *)GetDeviceMemoryOpaqueCaptureAddressKHR;
10987 return true;
10988 }
10989
10990 // ---- VK_KHR_deferred_host_operations extension commands
10991 if (!strcmp("vkCreateDeferredOperationKHR", name)) {
10992 *addr = (void *)CreateDeferredOperationKHR;
10993 return true;
10994 }
10995 if (!strcmp("vkDestroyDeferredOperationKHR", name)) {
10996 *addr = (void *)DestroyDeferredOperationKHR;
10997 return true;
10998 }
10999 if (!strcmp("vkGetDeferredOperationMaxConcurrencyKHR", name)) {
11000 *addr = (void *)GetDeferredOperationMaxConcurrencyKHR;
11001 return true;
11002 }
11003 if (!strcmp("vkGetDeferredOperationResultKHR", name)) {
11004 *addr = (void *)GetDeferredOperationResultKHR;
11005 return true;
11006 }
11007 if (!strcmp("vkDeferredOperationJoinKHR", name)) {
11008 *addr = (void *)DeferredOperationJoinKHR;
11009 return true;
11010 }
11011
11012 // ---- VK_KHR_pipeline_executable_properties extension commands
11013 if (!strcmp("vkGetPipelineExecutablePropertiesKHR", name)) {
11014 *addr = (void *)GetPipelineExecutablePropertiesKHR;
11015 return true;
11016 }
11017 if (!strcmp("vkGetPipelineExecutableStatisticsKHR", name)) {
11018 *addr = (void *)GetPipelineExecutableStatisticsKHR;
11019 return true;
11020 }
11021 if (!strcmp("vkGetPipelineExecutableInternalRepresentationsKHR", name)) {
11022 *addr = (void *)GetPipelineExecutableInternalRepresentationsKHR;
11023 return true;
11024 }
11025
11026 // ---- VK_KHR_map_memory2 extension commands
11027 if (!strcmp("vkMapMemory2KHR", name)) {
11028 *addr = (void *)MapMemory2KHR;
11029 return true;
11030 }
11031 if (!strcmp("vkUnmapMemory2KHR", name)) {
11032 *addr = (void *)UnmapMemory2KHR;
11033 return true;
11034 }
11035
11036 // ---- VK_KHR_video_encode_queue extension commands
11037 if (!strcmp("vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR", name)) {
11038 *addr = (void *)GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
11039 return true;
11040 }
11041 if (!strcmp("vkGetEncodedVideoSessionParametersKHR", name)) {
11042 *addr = (void *)GetEncodedVideoSessionParametersKHR;
11043 return true;
11044 }
11045 if (!strcmp("vkCmdEncodeVideoKHR", name)) {
11046 *addr = (void *)CmdEncodeVideoKHR;
11047 return true;
11048 }
11049
11050 // ---- VK_KHR_synchronization2 extension commands
11051 if (!strcmp("vkCmdSetEvent2KHR", name)) {
11052 *addr = (void *)CmdSetEvent2KHR;
11053 return true;
11054 }
11055 if (!strcmp("vkCmdResetEvent2KHR", name)) {
11056 *addr = (void *)CmdResetEvent2KHR;
11057 return true;
11058 }
11059 if (!strcmp("vkCmdWaitEvents2KHR", name)) {
11060 *addr = (void *)CmdWaitEvents2KHR;
11061 return true;
11062 }
11063 if (!strcmp("vkCmdPipelineBarrier2KHR", name)) {
11064 *addr = (void *)CmdPipelineBarrier2KHR;
11065 return true;
11066 }
11067 if (!strcmp("vkCmdWriteTimestamp2KHR", name)) {
11068 *addr = (void *)CmdWriteTimestamp2KHR;
11069 return true;
11070 }
11071 if (!strcmp("vkQueueSubmit2KHR", name)) {
11072 *addr = (void *)QueueSubmit2KHR;
11073 return true;
11074 }
11075
11076 // ---- VK_KHR_copy_commands2 extension commands
11077 if (!strcmp("vkCmdCopyBuffer2KHR", name)) {
11078 *addr = (void *)CmdCopyBuffer2KHR;
11079 return true;
11080 }
11081 if (!strcmp("vkCmdCopyImage2KHR", name)) {
11082 *addr = (void *)CmdCopyImage2KHR;
11083 return true;
11084 }
11085 if (!strcmp("vkCmdCopyBufferToImage2KHR", name)) {
11086 *addr = (void *)CmdCopyBufferToImage2KHR;
11087 return true;
11088 }
11089 if (!strcmp("vkCmdCopyImageToBuffer2KHR", name)) {
11090 *addr = (void *)CmdCopyImageToBuffer2KHR;
11091 return true;
11092 }
11093 if (!strcmp("vkCmdBlitImage2KHR", name)) {
11094 *addr = (void *)CmdBlitImage2KHR;
11095 return true;
11096 }
11097 if (!strcmp("vkCmdResolveImage2KHR", name)) {
11098 *addr = (void *)CmdResolveImage2KHR;
11099 return true;
11100 }
11101
11102 // ---- VK_KHR_ray_tracing_maintenance1 extension commands
11103 if (!strcmp("vkCmdTraceRaysIndirect2KHR", name)) {
11104 *addr = (void *)CmdTraceRaysIndirect2KHR;
11105 return true;
11106 }
11107
11108 // ---- VK_KHR_maintenance4 extension commands
11109 if (!strcmp("vkGetDeviceBufferMemoryRequirementsKHR", name)) {
11110 *addr = (void *)GetDeviceBufferMemoryRequirementsKHR;
11111 return true;
11112 }
11113 if (!strcmp("vkGetDeviceImageMemoryRequirementsKHR", name)) {
11114 *addr = (void *)GetDeviceImageMemoryRequirementsKHR;
11115 return true;
11116 }
11117 if (!strcmp("vkGetDeviceImageSparseMemoryRequirementsKHR", name)) {
11118 *addr = (void *)GetDeviceImageSparseMemoryRequirementsKHR;
11119 return true;
11120 }
11121
11122 // ---- VK_KHR_maintenance5 extension commands
11123 if (!strcmp("vkCmdBindIndexBuffer2KHR", name)) {
11124 *addr = (void *)CmdBindIndexBuffer2KHR;
11125 return true;
11126 }
11127 if (!strcmp("vkGetRenderingAreaGranularityKHR", name)) {
11128 *addr = (void *)GetRenderingAreaGranularityKHR;
11129 return true;
11130 }
11131 if (!strcmp("vkGetDeviceImageSubresourceLayoutKHR", name)) {
11132 *addr = (void *)GetDeviceImageSubresourceLayoutKHR;
11133 return true;
11134 }
11135 if (!strcmp("vkGetImageSubresourceLayout2KHR", name)) {
11136 *addr = (void *)GetImageSubresourceLayout2KHR;
11137 return true;
11138 }
11139
11140 // ---- VK_KHR_pipeline_binary extension commands
11141 if (!strcmp("vkCreatePipelineBinariesKHR", name)) {
11142 *addr = (void *)CreatePipelineBinariesKHR;
11143 return true;
11144 }
11145 if (!strcmp("vkDestroyPipelineBinaryKHR", name)) {
11146 *addr = (void *)DestroyPipelineBinaryKHR;
11147 return true;
11148 }
11149 if (!strcmp("vkGetPipelineKeyKHR", name)) {
11150 *addr = (void *)GetPipelineKeyKHR;
11151 return true;
11152 }
11153 if (!strcmp("vkGetPipelineBinaryDataKHR", name)) {
11154 *addr = (void *)GetPipelineBinaryDataKHR;
11155 return true;
11156 }
11157 if (!strcmp("vkReleaseCapturedPipelineDataKHR", name)) {
11158 *addr = (void *)ReleaseCapturedPipelineDataKHR;
11159 return true;
11160 }
11161
11162 // ---- VK_KHR_cooperative_matrix extension commands
11163 if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR", name)) {
11164 *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
11165 return true;
11166 }
11167
11168 // ---- VK_KHR_line_rasterization extension commands
11169 if (!strcmp("vkCmdSetLineStippleKHR", name)) {
11170 *addr = (void *)CmdSetLineStippleKHR;
11171 return true;
11172 }
11173
11174 // ---- VK_KHR_calibrated_timestamps extension commands
11175 if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsKHR", name)) {
11176 *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsKHR;
11177 return true;
11178 }
11179 if (!strcmp("vkGetCalibratedTimestampsKHR", name)) {
11180 *addr = (void *)GetCalibratedTimestampsKHR;
11181 return true;
11182 }
11183
11184 // ---- VK_KHR_maintenance6 extension commands
11185 if (!strcmp("vkCmdBindDescriptorSets2KHR", name)) {
11186 *addr = (void *)CmdBindDescriptorSets2KHR;
11187 return true;
11188 }
11189 if (!strcmp("vkCmdPushConstants2KHR", name)) {
11190 *addr = (void *)CmdPushConstants2KHR;
11191 return true;
11192 }
11193 if (!strcmp("vkCmdPushDescriptorSet2KHR", name)) {
11194 *addr = (void *)CmdPushDescriptorSet2KHR;
11195 return true;
11196 }
11197 if (!strcmp("vkCmdPushDescriptorSetWithTemplate2KHR", name)) {
11198 *addr = (void *)CmdPushDescriptorSetWithTemplate2KHR;
11199 return true;
11200 }
11201 if (!strcmp("vkCmdSetDescriptorBufferOffsets2EXT", name)) {
11202 *addr = (void *)CmdSetDescriptorBufferOffsets2EXT;
11203 return true;
11204 }
11205 if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplers2EXT", name)) {
11206 *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplers2EXT;
11207 return true;
11208 }
11209
11210 // ---- VK_EXT_debug_marker extension commands
11211 if (!strcmp("vkDebugMarkerSetObjectTagEXT", name)) {
11212 *addr = (void *)DebugMarkerSetObjectTagEXT;
11213 return true;
11214 }
11215 if (!strcmp("vkDebugMarkerSetObjectNameEXT", name)) {
11216 *addr = (void *)DebugMarkerSetObjectNameEXT;
11217 return true;
11218 }
11219 if (!strcmp("vkCmdDebugMarkerBeginEXT", name)) {
11220 *addr = (void *)CmdDebugMarkerBeginEXT;
11221 return true;
11222 }
11223 if (!strcmp("vkCmdDebugMarkerEndEXT", name)) {
11224 *addr = (void *)CmdDebugMarkerEndEXT;
11225 return true;
11226 }
11227 if (!strcmp("vkCmdDebugMarkerInsertEXT", name)) {
11228 *addr = (void *)CmdDebugMarkerInsertEXT;
11229 return true;
11230 }
11231
11232 // ---- VK_EXT_transform_feedback extension commands
11233 if (!strcmp("vkCmdBindTransformFeedbackBuffersEXT", name)) {
11234 *addr = (void *)CmdBindTransformFeedbackBuffersEXT;
11235 return true;
11236 }
11237 if (!strcmp("vkCmdBeginTransformFeedbackEXT", name)) {
11238 *addr = (void *)CmdBeginTransformFeedbackEXT;
11239 return true;
11240 }
11241 if (!strcmp("vkCmdEndTransformFeedbackEXT", name)) {
11242 *addr = (void *)CmdEndTransformFeedbackEXT;
11243 return true;
11244 }
11245 if (!strcmp("vkCmdBeginQueryIndexedEXT", name)) {
11246 *addr = (void *)CmdBeginQueryIndexedEXT;
11247 return true;
11248 }
11249 if (!strcmp("vkCmdEndQueryIndexedEXT", name)) {
11250 *addr = (void *)CmdEndQueryIndexedEXT;
11251 return true;
11252 }
11253 if (!strcmp("vkCmdDrawIndirectByteCountEXT", name)) {
11254 *addr = (void *)CmdDrawIndirectByteCountEXT;
11255 return true;
11256 }
11257
11258 // ---- VK_NVX_binary_import extension commands
11259 if (!strcmp("vkCreateCuModuleNVX", name)) {
11260 *addr = (void *)CreateCuModuleNVX;
11261 return true;
11262 }
11263 if (!strcmp("vkCreateCuFunctionNVX", name)) {
11264 *addr = (void *)CreateCuFunctionNVX;
11265 return true;
11266 }
11267 if (!strcmp("vkDestroyCuModuleNVX", name)) {
11268 *addr = (void *)DestroyCuModuleNVX;
11269 return true;
11270 }
11271 if (!strcmp("vkDestroyCuFunctionNVX", name)) {
11272 *addr = (void *)DestroyCuFunctionNVX;
11273 return true;
11274 }
11275 if (!strcmp("vkCmdCuLaunchKernelNVX", name)) {
11276 *addr = (void *)CmdCuLaunchKernelNVX;
11277 return true;
11278 }
11279
11280 // ---- VK_NVX_image_view_handle extension commands
11281 if (!strcmp("vkGetImageViewHandleNVX", name)) {
11282 *addr = (void *)GetImageViewHandleNVX;
11283 return true;
11284 }
11285 if (!strcmp("vkGetImageViewHandle64NVX", name)) {
11286 *addr = (void *)GetImageViewHandle64NVX;
11287 return true;
11288 }
11289 if (!strcmp("vkGetImageViewAddressNVX", name)) {
11290 *addr = (void *)GetImageViewAddressNVX;
11291 return true;
11292 }
11293
11294 // ---- VK_AMD_draw_indirect_count extension commands
11295 if (!strcmp("vkCmdDrawIndirectCountAMD", name)) {
11296 *addr = (void *)CmdDrawIndirectCountAMD;
11297 return true;
11298 }
11299 if (!strcmp("vkCmdDrawIndexedIndirectCountAMD", name)) {
11300 *addr = (void *)CmdDrawIndexedIndirectCountAMD;
11301 return true;
11302 }
11303
11304 // ---- VK_AMD_shader_info extension commands
11305 if (!strcmp("vkGetShaderInfoAMD", name)) {
11306 *addr = (void *)GetShaderInfoAMD;
11307 return true;
11308 }
11309
11310 // ---- VK_NV_external_memory_capabilities extension commands
11311 if (!strcmp("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", name)) {
11312 *addr = (ptr_instance->enabled_known_extensions.nv_external_memory_capabilities == 1)
11313 ? (void *)GetPhysicalDeviceExternalImageFormatPropertiesNV
11314 : NULL;
11315 return true;
11316 }
11317
11318 // ---- VK_NV_external_memory_win32 extension commands
11319 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11320 if (!strcmp("vkGetMemoryWin32HandleNV", name)) {
11321 *addr = (void *)GetMemoryWin32HandleNV;
11322 return true;
11323 }
11324 #endif // VK_USE_PLATFORM_WIN32_KHR
11325
11326 // ---- VK_EXT_conditional_rendering extension commands
11327 if (!strcmp("vkCmdBeginConditionalRenderingEXT", name)) {
11328 *addr = (void *)CmdBeginConditionalRenderingEXT;
11329 return true;
11330 }
11331 if (!strcmp("vkCmdEndConditionalRenderingEXT", name)) {
11332 *addr = (void *)CmdEndConditionalRenderingEXT;
11333 return true;
11334 }
11335
11336 // ---- VK_NV_clip_space_w_scaling extension commands
11337 if (!strcmp("vkCmdSetViewportWScalingNV", name)) {
11338 *addr = (void *)CmdSetViewportWScalingNV;
11339 return true;
11340 }
11341
11342 // ---- VK_EXT_direct_mode_display extension commands
11343 if (!strcmp("vkReleaseDisplayEXT", name)) {
11344 *addr = (ptr_instance->enabled_known_extensions.ext_direct_mode_display == 1)
11345 ? (void *)ReleaseDisplayEXT
11346 : NULL;
11347 return true;
11348 }
11349
11350 // ---- VK_EXT_acquire_xlib_display extension commands
11351 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
11352 if (!strcmp("vkAcquireXlibDisplayEXT", name)) {
11353 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_xlib_display == 1)
11354 ? (void *)AcquireXlibDisplayEXT
11355 : NULL;
11356 return true;
11357 }
11358 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
11359 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
11360 if (!strcmp("vkGetRandROutputDisplayEXT", name)) {
11361 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_xlib_display == 1)
11362 ? (void *)GetRandROutputDisplayEXT
11363 : NULL;
11364 return true;
11365 }
11366 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
11367
11368 // ---- VK_EXT_display_surface_counter extension commands
11369 if (!strcmp("vkGetPhysicalDeviceSurfaceCapabilities2EXT", name)) {
11370 *addr = (ptr_instance->enabled_known_extensions.ext_display_surface_counter == 1)
11371 ? (void *)GetPhysicalDeviceSurfaceCapabilities2EXT
11372 : NULL;
11373 return true;
11374 }
11375
11376 // ---- VK_EXT_display_control extension commands
11377 if (!strcmp("vkDisplayPowerControlEXT", name)) {
11378 *addr = (void *)DisplayPowerControlEXT;
11379 return true;
11380 }
11381 if (!strcmp("vkRegisterDeviceEventEXT", name)) {
11382 *addr = (void *)RegisterDeviceEventEXT;
11383 return true;
11384 }
11385 if (!strcmp("vkRegisterDisplayEventEXT", name)) {
11386 *addr = (void *)RegisterDisplayEventEXT;
11387 return true;
11388 }
11389 if (!strcmp("vkGetSwapchainCounterEXT", name)) {
11390 *addr = (void *)GetSwapchainCounterEXT;
11391 return true;
11392 }
11393
11394 // ---- VK_GOOGLE_display_timing extension commands
11395 if (!strcmp("vkGetRefreshCycleDurationGOOGLE", name)) {
11396 *addr = (void *)GetRefreshCycleDurationGOOGLE;
11397 return true;
11398 }
11399 if (!strcmp("vkGetPastPresentationTimingGOOGLE", name)) {
11400 *addr = (void *)GetPastPresentationTimingGOOGLE;
11401 return true;
11402 }
11403
11404 // ---- VK_EXT_discard_rectangles extension commands
11405 if (!strcmp("vkCmdSetDiscardRectangleEXT", name)) {
11406 *addr = (void *)CmdSetDiscardRectangleEXT;
11407 return true;
11408 }
11409 if (!strcmp("vkCmdSetDiscardRectangleEnableEXT", name)) {
11410 *addr = (void *)CmdSetDiscardRectangleEnableEXT;
11411 return true;
11412 }
11413 if (!strcmp("vkCmdSetDiscardRectangleModeEXT", name)) {
11414 *addr = (void *)CmdSetDiscardRectangleModeEXT;
11415 return true;
11416 }
11417
11418 // ---- VK_EXT_hdr_metadata extension commands
11419 if (!strcmp("vkSetHdrMetadataEXT", name)) {
11420 *addr = (void *)SetHdrMetadataEXT;
11421 return true;
11422 }
11423
11424 // ---- VK_EXT_debug_utils extension commands
11425 if (!strcmp("vkSetDebugUtilsObjectNameEXT", name)) {
11426 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
11427 ? (void *)SetDebugUtilsObjectNameEXT
11428 : NULL;
11429 return true;
11430 }
11431 if (!strcmp("vkSetDebugUtilsObjectTagEXT", name)) {
11432 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
11433 ? (void *)SetDebugUtilsObjectTagEXT
11434 : NULL;
11435 return true;
11436 }
11437 if (!strcmp("vkQueueBeginDebugUtilsLabelEXT", name)) {
11438 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
11439 ? (void *)QueueBeginDebugUtilsLabelEXT
11440 : NULL;
11441 return true;
11442 }
11443 if (!strcmp("vkQueueEndDebugUtilsLabelEXT", name)) {
11444 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
11445 ? (void *)QueueEndDebugUtilsLabelEXT
11446 : NULL;
11447 return true;
11448 }
11449 if (!strcmp("vkQueueInsertDebugUtilsLabelEXT", name)) {
11450 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
11451 ? (void *)QueueInsertDebugUtilsLabelEXT
11452 : NULL;
11453 return true;
11454 }
11455 if (!strcmp("vkCmdBeginDebugUtilsLabelEXT", name)) {
11456 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
11457 ? (void *)CmdBeginDebugUtilsLabelEXT
11458 : NULL;
11459 return true;
11460 }
11461 if (!strcmp("vkCmdEndDebugUtilsLabelEXT", name)) {
11462 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
11463 ? (void *)CmdEndDebugUtilsLabelEXT
11464 : NULL;
11465 return true;
11466 }
11467 if (!strcmp("vkCmdInsertDebugUtilsLabelEXT", name)) {
11468 *addr = (ptr_instance->enabled_known_extensions.ext_debug_utils == 1)
11469 ? (void *)CmdInsertDebugUtilsLabelEXT
11470 : NULL;
11471 return true;
11472 }
11473
11474 // ---- VK_ANDROID_external_memory_android_hardware_buffer extension commands
11475 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
11476 if (!strcmp("vkGetAndroidHardwareBufferPropertiesANDROID", name)) {
11477 *addr = (void *)GetAndroidHardwareBufferPropertiesANDROID;
11478 return true;
11479 }
11480 #endif // VK_USE_PLATFORM_ANDROID_KHR
11481 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
11482 if (!strcmp("vkGetMemoryAndroidHardwareBufferANDROID", name)) {
11483 *addr = (void *)GetMemoryAndroidHardwareBufferANDROID;
11484 return true;
11485 }
11486 #endif // VK_USE_PLATFORM_ANDROID_KHR
11487
11488 // ---- VK_AMDX_shader_enqueue extension commands
11489 #if defined(VK_ENABLE_BETA_EXTENSIONS)
11490 if (!strcmp("vkCreateExecutionGraphPipelinesAMDX", name)) {
11491 *addr = (void *)CreateExecutionGraphPipelinesAMDX;
11492 return true;
11493 }
11494 #endif // VK_ENABLE_BETA_EXTENSIONS
11495 #if defined(VK_ENABLE_BETA_EXTENSIONS)
11496 if (!strcmp("vkGetExecutionGraphPipelineScratchSizeAMDX", name)) {
11497 *addr = (void *)GetExecutionGraphPipelineScratchSizeAMDX;
11498 return true;
11499 }
11500 #endif // VK_ENABLE_BETA_EXTENSIONS
11501 #if defined(VK_ENABLE_BETA_EXTENSIONS)
11502 if (!strcmp("vkGetExecutionGraphPipelineNodeIndexAMDX", name)) {
11503 *addr = (void *)GetExecutionGraphPipelineNodeIndexAMDX;
11504 return true;
11505 }
11506 #endif // VK_ENABLE_BETA_EXTENSIONS
11507 #if defined(VK_ENABLE_BETA_EXTENSIONS)
11508 if (!strcmp("vkCmdInitializeGraphScratchMemoryAMDX", name)) {
11509 *addr = (void *)CmdInitializeGraphScratchMemoryAMDX;
11510 return true;
11511 }
11512 #endif // VK_ENABLE_BETA_EXTENSIONS
11513 #if defined(VK_ENABLE_BETA_EXTENSIONS)
11514 if (!strcmp("vkCmdDispatchGraphAMDX", name)) {
11515 *addr = (void *)CmdDispatchGraphAMDX;
11516 return true;
11517 }
11518 #endif // VK_ENABLE_BETA_EXTENSIONS
11519 #if defined(VK_ENABLE_BETA_EXTENSIONS)
11520 if (!strcmp("vkCmdDispatchGraphIndirectAMDX", name)) {
11521 *addr = (void *)CmdDispatchGraphIndirectAMDX;
11522 return true;
11523 }
11524 #endif // VK_ENABLE_BETA_EXTENSIONS
11525 #if defined(VK_ENABLE_BETA_EXTENSIONS)
11526 if (!strcmp("vkCmdDispatchGraphIndirectCountAMDX", name)) {
11527 *addr = (void *)CmdDispatchGraphIndirectCountAMDX;
11528 return true;
11529 }
11530 #endif // VK_ENABLE_BETA_EXTENSIONS
11531
11532 // ---- VK_EXT_sample_locations extension commands
11533 if (!strcmp("vkCmdSetSampleLocationsEXT", name)) {
11534 *addr = (void *)CmdSetSampleLocationsEXT;
11535 return true;
11536 }
11537 if (!strcmp("vkGetPhysicalDeviceMultisamplePropertiesEXT", name)) {
11538 *addr = (void *)GetPhysicalDeviceMultisamplePropertiesEXT;
11539 return true;
11540 }
11541
11542 // ---- VK_EXT_image_drm_format_modifier extension commands
11543 if (!strcmp("vkGetImageDrmFormatModifierPropertiesEXT", name)) {
11544 *addr = (void *)GetImageDrmFormatModifierPropertiesEXT;
11545 return true;
11546 }
11547
11548 // ---- VK_EXT_validation_cache extension commands
11549 if (!strcmp("vkCreateValidationCacheEXT", name)) {
11550 *addr = (void *)CreateValidationCacheEXT;
11551 return true;
11552 }
11553 if (!strcmp("vkDestroyValidationCacheEXT", name)) {
11554 *addr = (void *)DestroyValidationCacheEXT;
11555 return true;
11556 }
11557 if (!strcmp("vkMergeValidationCachesEXT", name)) {
11558 *addr = (void *)MergeValidationCachesEXT;
11559 return true;
11560 }
11561 if (!strcmp("vkGetValidationCacheDataEXT", name)) {
11562 *addr = (void *)GetValidationCacheDataEXT;
11563 return true;
11564 }
11565
11566 // ---- VK_NV_shading_rate_image extension commands
11567 if (!strcmp("vkCmdBindShadingRateImageNV", name)) {
11568 *addr = (void *)CmdBindShadingRateImageNV;
11569 return true;
11570 }
11571 if (!strcmp("vkCmdSetViewportShadingRatePaletteNV", name)) {
11572 *addr = (void *)CmdSetViewportShadingRatePaletteNV;
11573 return true;
11574 }
11575 if (!strcmp("vkCmdSetCoarseSampleOrderNV", name)) {
11576 *addr = (void *)CmdSetCoarseSampleOrderNV;
11577 return true;
11578 }
11579
11580 // ---- VK_NV_ray_tracing extension commands
11581 if (!strcmp("vkCreateAccelerationStructureNV", name)) {
11582 *addr = (void *)CreateAccelerationStructureNV;
11583 return true;
11584 }
11585 if (!strcmp("vkDestroyAccelerationStructureNV", name)) {
11586 *addr = (void *)DestroyAccelerationStructureNV;
11587 return true;
11588 }
11589 if (!strcmp("vkGetAccelerationStructureMemoryRequirementsNV", name)) {
11590 *addr = (void *)GetAccelerationStructureMemoryRequirementsNV;
11591 return true;
11592 }
11593 if (!strcmp("vkBindAccelerationStructureMemoryNV", name)) {
11594 *addr = (void *)BindAccelerationStructureMemoryNV;
11595 return true;
11596 }
11597 if (!strcmp("vkCmdBuildAccelerationStructureNV", name)) {
11598 *addr = (void *)CmdBuildAccelerationStructureNV;
11599 return true;
11600 }
11601 if (!strcmp("vkCmdCopyAccelerationStructureNV", name)) {
11602 *addr = (void *)CmdCopyAccelerationStructureNV;
11603 return true;
11604 }
11605 if (!strcmp("vkCmdTraceRaysNV", name)) {
11606 *addr = (void *)CmdTraceRaysNV;
11607 return true;
11608 }
11609 if (!strcmp("vkCreateRayTracingPipelinesNV", name)) {
11610 *addr = (void *)CreateRayTracingPipelinesNV;
11611 return true;
11612 }
11613 if (!strcmp("vkGetRayTracingShaderGroupHandlesKHR", name)) {
11614 *addr = (void *)GetRayTracingShaderGroupHandlesKHR;
11615 return true;
11616 }
11617 if (!strcmp("vkGetRayTracingShaderGroupHandlesNV", name)) {
11618 *addr = (void *)GetRayTracingShaderGroupHandlesNV;
11619 return true;
11620 }
11621 if (!strcmp("vkGetAccelerationStructureHandleNV", name)) {
11622 *addr = (void *)GetAccelerationStructureHandleNV;
11623 return true;
11624 }
11625 if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesNV", name)) {
11626 *addr = (void *)CmdWriteAccelerationStructuresPropertiesNV;
11627 return true;
11628 }
11629 if (!strcmp("vkCompileDeferredNV", name)) {
11630 *addr = (void *)CompileDeferredNV;
11631 return true;
11632 }
11633
11634 // ---- VK_EXT_external_memory_host extension commands
11635 if (!strcmp("vkGetMemoryHostPointerPropertiesEXT", name)) {
11636 *addr = (void *)GetMemoryHostPointerPropertiesEXT;
11637 return true;
11638 }
11639
11640 // ---- VK_AMD_buffer_marker extension commands
11641 if (!strcmp("vkCmdWriteBufferMarkerAMD", name)) {
11642 *addr = (void *)CmdWriteBufferMarkerAMD;
11643 return true;
11644 }
11645 if (!strcmp("vkCmdWriteBufferMarker2AMD", name)) {
11646 *addr = (void *)CmdWriteBufferMarker2AMD;
11647 return true;
11648 }
11649
11650 // ---- VK_EXT_calibrated_timestamps extension commands
11651 if (!strcmp("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT", name)) {
11652 *addr = (void *)GetPhysicalDeviceCalibrateableTimeDomainsEXT;
11653 return true;
11654 }
11655 if (!strcmp("vkGetCalibratedTimestampsEXT", name)) {
11656 *addr = (void *)GetCalibratedTimestampsEXT;
11657 return true;
11658 }
11659
11660 // ---- VK_NV_mesh_shader extension commands
11661 if (!strcmp("vkCmdDrawMeshTasksNV", name)) {
11662 *addr = (void *)CmdDrawMeshTasksNV;
11663 return true;
11664 }
11665 if (!strcmp("vkCmdDrawMeshTasksIndirectNV", name)) {
11666 *addr = (void *)CmdDrawMeshTasksIndirectNV;
11667 return true;
11668 }
11669 if (!strcmp("vkCmdDrawMeshTasksIndirectCountNV", name)) {
11670 *addr = (void *)CmdDrawMeshTasksIndirectCountNV;
11671 return true;
11672 }
11673
11674 // ---- VK_NV_scissor_exclusive extension commands
11675 if (!strcmp("vkCmdSetExclusiveScissorEnableNV", name)) {
11676 *addr = (void *)CmdSetExclusiveScissorEnableNV;
11677 return true;
11678 }
11679 if (!strcmp("vkCmdSetExclusiveScissorNV", name)) {
11680 *addr = (void *)CmdSetExclusiveScissorNV;
11681 return true;
11682 }
11683
11684 // ---- VK_NV_device_diagnostic_checkpoints extension commands
11685 if (!strcmp("vkCmdSetCheckpointNV", name)) {
11686 *addr = (void *)CmdSetCheckpointNV;
11687 return true;
11688 }
11689 if (!strcmp("vkGetQueueCheckpointDataNV", name)) {
11690 *addr = (void *)GetQueueCheckpointDataNV;
11691 return true;
11692 }
11693 if (!strcmp("vkGetQueueCheckpointData2NV", name)) {
11694 *addr = (void *)GetQueueCheckpointData2NV;
11695 return true;
11696 }
11697
11698 // ---- VK_INTEL_performance_query extension commands
11699 if (!strcmp("vkInitializePerformanceApiINTEL", name)) {
11700 *addr = (void *)InitializePerformanceApiINTEL;
11701 return true;
11702 }
11703 if (!strcmp("vkUninitializePerformanceApiINTEL", name)) {
11704 *addr = (void *)UninitializePerformanceApiINTEL;
11705 return true;
11706 }
11707 if (!strcmp("vkCmdSetPerformanceMarkerINTEL", name)) {
11708 *addr = (void *)CmdSetPerformanceMarkerINTEL;
11709 return true;
11710 }
11711 if (!strcmp("vkCmdSetPerformanceStreamMarkerINTEL", name)) {
11712 *addr = (void *)CmdSetPerformanceStreamMarkerINTEL;
11713 return true;
11714 }
11715 if (!strcmp("vkCmdSetPerformanceOverrideINTEL", name)) {
11716 *addr = (void *)CmdSetPerformanceOverrideINTEL;
11717 return true;
11718 }
11719 if (!strcmp("vkAcquirePerformanceConfigurationINTEL", name)) {
11720 *addr = (void *)AcquirePerformanceConfigurationINTEL;
11721 return true;
11722 }
11723 if (!strcmp("vkReleasePerformanceConfigurationINTEL", name)) {
11724 *addr = (void *)ReleasePerformanceConfigurationINTEL;
11725 return true;
11726 }
11727 if (!strcmp("vkQueueSetPerformanceConfigurationINTEL", name)) {
11728 *addr = (void *)QueueSetPerformanceConfigurationINTEL;
11729 return true;
11730 }
11731 if (!strcmp("vkGetPerformanceParameterINTEL", name)) {
11732 *addr = (void *)GetPerformanceParameterINTEL;
11733 return true;
11734 }
11735
11736 // ---- VK_AMD_display_native_hdr extension commands
11737 if (!strcmp("vkSetLocalDimmingAMD", name)) {
11738 *addr = (void *)SetLocalDimmingAMD;
11739 return true;
11740 }
11741
11742 // ---- VK_EXT_buffer_device_address extension commands
11743 if (!strcmp("vkGetBufferDeviceAddressEXT", name)) {
11744 *addr = (void *)GetBufferDeviceAddressEXT;
11745 return true;
11746 }
11747
11748 // ---- VK_EXT_tooling_info extension commands
11749 if (!strcmp("vkGetPhysicalDeviceToolPropertiesEXT", name)) {
11750 *addr = (void *)GetPhysicalDeviceToolPropertiesEXT;
11751 return true;
11752 }
11753
11754 // ---- VK_NV_cooperative_matrix extension commands
11755 if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV", name)) {
11756 *addr = (void *)GetPhysicalDeviceCooperativeMatrixPropertiesNV;
11757 return true;
11758 }
11759
11760 // ---- VK_NV_coverage_reduction_mode extension commands
11761 if (!strcmp("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV", name)) {
11762 *addr = (void *)GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
11763 return true;
11764 }
11765
11766 // ---- VK_EXT_full_screen_exclusive extension commands
11767 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11768 if (!strcmp("vkGetPhysicalDeviceSurfacePresentModes2EXT", name)) {
11769 *addr = (void *)GetPhysicalDeviceSurfacePresentModes2EXT;
11770 return true;
11771 }
11772 #endif // VK_USE_PLATFORM_WIN32_KHR
11773 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11774 if (!strcmp("vkAcquireFullScreenExclusiveModeEXT", name)) {
11775 *addr = (void *)AcquireFullScreenExclusiveModeEXT;
11776 return true;
11777 }
11778 #endif // VK_USE_PLATFORM_WIN32_KHR
11779 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11780 if (!strcmp("vkReleaseFullScreenExclusiveModeEXT", name)) {
11781 *addr = (void *)ReleaseFullScreenExclusiveModeEXT;
11782 return true;
11783 }
11784 #endif // VK_USE_PLATFORM_WIN32_KHR
11785 #if defined(VK_USE_PLATFORM_WIN32_KHR)
11786 if (!strcmp("vkGetDeviceGroupSurfacePresentModes2EXT", name)) {
11787 *addr = (void *)GetDeviceGroupSurfacePresentModes2EXT;
11788 return true;
11789 }
11790 #endif // VK_USE_PLATFORM_WIN32_KHR
11791
11792 // ---- VK_EXT_line_rasterization extension commands
11793 if (!strcmp("vkCmdSetLineStippleEXT", name)) {
11794 *addr = (void *)CmdSetLineStippleEXT;
11795 return true;
11796 }
11797
11798 // ---- VK_EXT_host_query_reset extension commands
11799 if (!strcmp("vkResetQueryPoolEXT", name)) {
11800 *addr = (void *)ResetQueryPoolEXT;
11801 return true;
11802 }
11803
11804 // ---- VK_EXT_extended_dynamic_state extension commands
11805 if (!strcmp("vkCmdSetCullModeEXT", name)) {
11806 *addr = (void *)CmdSetCullModeEXT;
11807 return true;
11808 }
11809 if (!strcmp("vkCmdSetFrontFaceEXT", name)) {
11810 *addr = (void *)CmdSetFrontFaceEXT;
11811 return true;
11812 }
11813 if (!strcmp("vkCmdSetPrimitiveTopologyEXT", name)) {
11814 *addr = (void *)CmdSetPrimitiveTopologyEXT;
11815 return true;
11816 }
11817 if (!strcmp("vkCmdSetViewportWithCountEXT", name)) {
11818 *addr = (void *)CmdSetViewportWithCountEXT;
11819 return true;
11820 }
11821 if (!strcmp("vkCmdSetScissorWithCountEXT", name)) {
11822 *addr = (void *)CmdSetScissorWithCountEXT;
11823 return true;
11824 }
11825 if (!strcmp("vkCmdBindVertexBuffers2EXT", name)) {
11826 *addr = (void *)CmdBindVertexBuffers2EXT;
11827 return true;
11828 }
11829 if (!strcmp("vkCmdSetDepthTestEnableEXT", name)) {
11830 *addr = (void *)CmdSetDepthTestEnableEXT;
11831 return true;
11832 }
11833 if (!strcmp("vkCmdSetDepthWriteEnableEXT", name)) {
11834 *addr = (void *)CmdSetDepthWriteEnableEXT;
11835 return true;
11836 }
11837 if (!strcmp("vkCmdSetDepthCompareOpEXT", name)) {
11838 *addr = (void *)CmdSetDepthCompareOpEXT;
11839 return true;
11840 }
11841 if (!strcmp("vkCmdSetDepthBoundsTestEnableEXT", name)) {
11842 *addr = (void *)CmdSetDepthBoundsTestEnableEXT;
11843 return true;
11844 }
11845 if (!strcmp("vkCmdSetStencilTestEnableEXT", name)) {
11846 *addr = (void *)CmdSetStencilTestEnableEXT;
11847 return true;
11848 }
11849 if (!strcmp("vkCmdSetStencilOpEXT", name)) {
11850 *addr = (void *)CmdSetStencilOpEXT;
11851 return true;
11852 }
11853
11854 // ---- VK_EXT_host_image_copy extension commands
11855 if (!strcmp("vkCopyMemoryToImageEXT", name)) {
11856 *addr = (void *)CopyMemoryToImageEXT;
11857 return true;
11858 }
11859 if (!strcmp("vkCopyImageToMemoryEXT", name)) {
11860 *addr = (void *)CopyImageToMemoryEXT;
11861 return true;
11862 }
11863 if (!strcmp("vkCopyImageToImageEXT", name)) {
11864 *addr = (void *)CopyImageToImageEXT;
11865 return true;
11866 }
11867 if (!strcmp("vkTransitionImageLayoutEXT", name)) {
11868 *addr = (void *)TransitionImageLayoutEXT;
11869 return true;
11870 }
11871 if (!strcmp("vkGetImageSubresourceLayout2EXT", name)) {
11872 *addr = (void *)GetImageSubresourceLayout2EXT;
11873 return true;
11874 }
11875
11876 // ---- VK_EXT_swapchain_maintenance1 extension commands
11877 if (!strcmp("vkReleaseSwapchainImagesEXT", name)) {
11878 *addr = (void *)ReleaseSwapchainImagesEXT;
11879 return true;
11880 }
11881
11882 // ---- VK_NV_device_generated_commands extension commands
11883 if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsNV", name)) {
11884 *addr = (void *)GetGeneratedCommandsMemoryRequirementsNV;
11885 return true;
11886 }
11887 if (!strcmp("vkCmdPreprocessGeneratedCommandsNV", name)) {
11888 *addr = (void *)CmdPreprocessGeneratedCommandsNV;
11889 return true;
11890 }
11891 if (!strcmp("vkCmdExecuteGeneratedCommandsNV", name)) {
11892 *addr = (void *)CmdExecuteGeneratedCommandsNV;
11893 return true;
11894 }
11895 if (!strcmp("vkCmdBindPipelineShaderGroupNV", name)) {
11896 *addr = (void *)CmdBindPipelineShaderGroupNV;
11897 return true;
11898 }
11899 if (!strcmp("vkCreateIndirectCommandsLayoutNV", name)) {
11900 *addr = (void *)CreateIndirectCommandsLayoutNV;
11901 return true;
11902 }
11903 if (!strcmp("vkDestroyIndirectCommandsLayoutNV", name)) {
11904 *addr = (void *)DestroyIndirectCommandsLayoutNV;
11905 return true;
11906 }
11907
11908 // ---- VK_EXT_depth_bias_control extension commands
11909 if (!strcmp("vkCmdSetDepthBias2EXT", name)) {
11910 *addr = (void *)CmdSetDepthBias2EXT;
11911 return true;
11912 }
11913
11914 // ---- VK_EXT_acquire_drm_display extension commands
11915 if (!strcmp("vkAcquireDrmDisplayEXT", name)) {
11916 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_drm_display == 1)
11917 ? (void *)AcquireDrmDisplayEXT
11918 : NULL;
11919 return true;
11920 }
11921 if (!strcmp("vkGetDrmDisplayEXT", name)) {
11922 *addr = (ptr_instance->enabled_known_extensions.ext_acquire_drm_display == 1)
11923 ? (void *)GetDrmDisplayEXT
11924 : NULL;
11925 return true;
11926 }
11927
11928 // ---- VK_EXT_private_data extension commands
11929 if (!strcmp("vkCreatePrivateDataSlotEXT", name)) {
11930 *addr = (void *)CreatePrivateDataSlotEXT;
11931 return true;
11932 }
11933 if (!strcmp("vkDestroyPrivateDataSlotEXT", name)) {
11934 *addr = (void *)DestroyPrivateDataSlotEXT;
11935 return true;
11936 }
11937 if (!strcmp("vkSetPrivateDataEXT", name)) {
11938 *addr = (void *)SetPrivateDataEXT;
11939 return true;
11940 }
11941 if (!strcmp("vkGetPrivateDataEXT", name)) {
11942 *addr = (void *)GetPrivateDataEXT;
11943 return true;
11944 }
11945
11946 // ---- VK_NV_cuda_kernel_launch extension commands
11947 if (!strcmp("vkCreateCudaModuleNV", name)) {
11948 *addr = (void *)CreateCudaModuleNV;
11949 return true;
11950 }
11951 if (!strcmp("vkGetCudaModuleCacheNV", name)) {
11952 *addr = (void *)GetCudaModuleCacheNV;
11953 return true;
11954 }
11955 if (!strcmp("vkCreateCudaFunctionNV", name)) {
11956 *addr = (void *)CreateCudaFunctionNV;
11957 return true;
11958 }
11959 if (!strcmp("vkDestroyCudaModuleNV", name)) {
11960 *addr = (void *)DestroyCudaModuleNV;
11961 return true;
11962 }
11963 if (!strcmp("vkDestroyCudaFunctionNV", name)) {
11964 *addr = (void *)DestroyCudaFunctionNV;
11965 return true;
11966 }
11967 if (!strcmp("vkCmdCudaLaunchKernelNV", name)) {
11968 *addr = (void *)CmdCudaLaunchKernelNV;
11969 return true;
11970 }
11971
11972 // ---- VK_EXT_metal_objects extension commands
11973 #if defined(VK_USE_PLATFORM_METAL_EXT)
11974 if (!strcmp("vkExportMetalObjectsEXT", name)) {
11975 *addr = (void *)ExportMetalObjectsEXT;
11976 return true;
11977 }
11978 #endif // VK_USE_PLATFORM_METAL_EXT
11979
11980 // ---- VK_EXT_descriptor_buffer extension commands
11981 if (!strcmp("vkGetDescriptorSetLayoutSizeEXT", name)) {
11982 *addr = (void *)GetDescriptorSetLayoutSizeEXT;
11983 return true;
11984 }
11985 if (!strcmp("vkGetDescriptorSetLayoutBindingOffsetEXT", name)) {
11986 *addr = (void *)GetDescriptorSetLayoutBindingOffsetEXT;
11987 return true;
11988 }
11989 if (!strcmp("vkGetDescriptorEXT", name)) {
11990 *addr = (void *)GetDescriptorEXT;
11991 return true;
11992 }
11993 if (!strcmp("vkCmdBindDescriptorBuffersEXT", name)) {
11994 *addr = (void *)CmdBindDescriptorBuffersEXT;
11995 return true;
11996 }
11997 if (!strcmp("vkCmdSetDescriptorBufferOffsetsEXT", name)) {
11998 *addr = (void *)CmdSetDescriptorBufferOffsetsEXT;
11999 return true;
12000 }
12001 if (!strcmp("vkCmdBindDescriptorBufferEmbeddedSamplersEXT", name)) {
12002 *addr = (void *)CmdBindDescriptorBufferEmbeddedSamplersEXT;
12003 return true;
12004 }
12005 if (!strcmp("vkGetBufferOpaqueCaptureDescriptorDataEXT", name)) {
12006 *addr = (void *)GetBufferOpaqueCaptureDescriptorDataEXT;
12007 return true;
12008 }
12009 if (!strcmp("vkGetImageOpaqueCaptureDescriptorDataEXT", name)) {
12010 *addr = (void *)GetImageOpaqueCaptureDescriptorDataEXT;
12011 return true;
12012 }
12013 if (!strcmp("vkGetImageViewOpaqueCaptureDescriptorDataEXT", name)) {
12014 *addr = (void *)GetImageViewOpaqueCaptureDescriptorDataEXT;
12015 return true;
12016 }
12017 if (!strcmp("vkGetSamplerOpaqueCaptureDescriptorDataEXT", name)) {
12018 *addr = (void *)GetSamplerOpaqueCaptureDescriptorDataEXT;
12019 return true;
12020 }
12021 if (!strcmp("vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT", name)) {
12022 *addr = (void *)GetAccelerationStructureOpaqueCaptureDescriptorDataEXT;
12023 return true;
12024 }
12025
12026 // ---- VK_NV_fragment_shading_rate_enums extension commands
12027 if (!strcmp("vkCmdSetFragmentShadingRateEnumNV", name)) {
12028 *addr = (void *)CmdSetFragmentShadingRateEnumNV;
12029 return true;
12030 }
12031
12032 // ---- VK_EXT_device_fault extension commands
12033 if (!strcmp("vkGetDeviceFaultInfoEXT", name)) {
12034 *addr = (void *)GetDeviceFaultInfoEXT;
12035 return true;
12036 }
12037
12038 // ---- VK_NV_acquire_winrt_display extension commands
12039 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12040 if (!strcmp("vkAcquireWinrtDisplayNV", name)) {
12041 *addr = (void *)AcquireWinrtDisplayNV;
12042 return true;
12043 }
12044 #endif // VK_USE_PLATFORM_WIN32_KHR
12045 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12046 if (!strcmp("vkGetWinrtDisplayNV", name)) {
12047 *addr = (void *)GetWinrtDisplayNV;
12048 return true;
12049 }
12050 #endif // VK_USE_PLATFORM_WIN32_KHR
12051
12052 // ---- VK_EXT_vertex_input_dynamic_state extension commands
12053 if (!strcmp("vkCmdSetVertexInputEXT", name)) {
12054 *addr = (void *)CmdSetVertexInputEXT;
12055 return true;
12056 }
12057
12058 // ---- VK_FUCHSIA_external_memory extension commands
12059 #if defined(VK_USE_PLATFORM_FUCHSIA)
12060 if (!strcmp("vkGetMemoryZirconHandleFUCHSIA", name)) {
12061 *addr = (void *)GetMemoryZirconHandleFUCHSIA;
12062 return true;
12063 }
12064 #endif // VK_USE_PLATFORM_FUCHSIA
12065 #if defined(VK_USE_PLATFORM_FUCHSIA)
12066 if (!strcmp("vkGetMemoryZirconHandlePropertiesFUCHSIA", name)) {
12067 *addr = (void *)GetMemoryZirconHandlePropertiesFUCHSIA;
12068 return true;
12069 }
12070 #endif // VK_USE_PLATFORM_FUCHSIA
12071
12072 // ---- VK_FUCHSIA_external_semaphore extension commands
12073 #if defined(VK_USE_PLATFORM_FUCHSIA)
12074 if (!strcmp("vkImportSemaphoreZirconHandleFUCHSIA", name)) {
12075 *addr = (void *)ImportSemaphoreZirconHandleFUCHSIA;
12076 return true;
12077 }
12078 #endif // VK_USE_PLATFORM_FUCHSIA
12079 #if defined(VK_USE_PLATFORM_FUCHSIA)
12080 if (!strcmp("vkGetSemaphoreZirconHandleFUCHSIA", name)) {
12081 *addr = (void *)GetSemaphoreZirconHandleFUCHSIA;
12082 return true;
12083 }
12084 #endif // VK_USE_PLATFORM_FUCHSIA
12085
12086 // ---- VK_FUCHSIA_buffer_collection extension commands
12087 #if defined(VK_USE_PLATFORM_FUCHSIA)
12088 if (!strcmp("vkCreateBufferCollectionFUCHSIA", name)) {
12089 *addr = (void *)CreateBufferCollectionFUCHSIA;
12090 return true;
12091 }
12092 #endif // VK_USE_PLATFORM_FUCHSIA
12093 #if defined(VK_USE_PLATFORM_FUCHSIA)
12094 if (!strcmp("vkSetBufferCollectionImageConstraintsFUCHSIA", name)) {
12095 *addr = (void *)SetBufferCollectionImageConstraintsFUCHSIA;
12096 return true;
12097 }
12098 #endif // VK_USE_PLATFORM_FUCHSIA
12099 #if defined(VK_USE_PLATFORM_FUCHSIA)
12100 if (!strcmp("vkSetBufferCollectionBufferConstraintsFUCHSIA", name)) {
12101 *addr = (void *)SetBufferCollectionBufferConstraintsFUCHSIA;
12102 return true;
12103 }
12104 #endif // VK_USE_PLATFORM_FUCHSIA
12105 #if defined(VK_USE_PLATFORM_FUCHSIA)
12106 if (!strcmp("vkDestroyBufferCollectionFUCHSIA", name)) {
12107 *addr = (void *)DestroyBufferCollectionFUCHSIA;
12108 return true;
12109 }
12110 #endif // VK_USE_PLATFORM_FUCHSIA
12111 #if defined(VK_USE_PLATFORM_FUCHSIA)
12112 if (!strcmp("vkGetBufferCollectionPropertiesFUCHSIA", name)) {
12113 *addr = (void *)GetBufferCollectionPropertiesFUCHSIA;
12114 return true;
12115 }
12116 #endif // VK_USE_PLATFORM_FUCHSIA
12117
12118 // ---- VK_HUAWEI_subpass_shading extension commands
12119 if (!strcmp("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", name)) {
12120 *addr = (void *)GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI;
12121 return true;
12122 }
12123 if (!strcmp("vkCmdSubpassShadingHUAWEI", name)) {
12124 *addr = (void *)CmdSubpassShadingHUAWEI;
12125 return true;
12126 }
12127
12128 // ---- VK_HUAWEI_invocation_mask extension commands
12129 if (!strcmp("vkCmdBindInvocationMaskHUAWEI", name)) {
12130 *addr = (void *)CmdBindInvocationMaskHUAWEI;
12131 return true;
12132 }
12133
12134 // ---- VK_NV_external_memory_rdma extension commands
12135 if (!strcmp("vkGetMemoryRemoteAddressNV", name)) {
12136 *addr = (void *)GetMemoryRemoteAddressNV;
12137 return true;
12138 }
12139
12140 // ---- VK_EXT_pipeline_properties extension commands
12141 if (!strcmp("vkGetPipelinePropertiesEXT", name)) {
12142 *addr = (void *)GetPipelinePropertiesEXT;
12143 return true;
12144 }
12145
12146 // ---- VK_EXT_extended_dynamic_state2 extension commands
12147 if (!strcmp("vkCmdSetPatchControlPointsEXT", name)) {
12148 *addr = (void *)CmdSetPatchControlPointsEXT;
12149 return true;
12150 }
12151 if (!strcmp("vkCmdSetRasterizerDiscardEnableEXT", name)) {
12152 *addr = (void *)CmdSetRasterizerDiscardEnableEXT;
12153 return true;
12154 }
12155 if (!strcmp("vkCmdSetDepthBiasEnableEXT", name)) {
12156 *addr = (void *)CmdSetDepthBiasEnableEXT;
12157 return true;
12158 }
12159 if (!strcmp("vkCmdSetLogicOpEXT", name)) {
12160 *addr = (void *)CmdSetLogicOpEXT;
12161 return true;
12162 }
12163 if (!strcmp("vkCmdSetPrimitiveRestartEnableEXT", name)) {
12164 *addr = (void *)CmdSetPrimitiveRestartEnableEXT;
12165 return true;
12166 }
12167
12168 // ---- VK_EXT_color_write_enable extension commands
12169 if (!strcmp("vkCmdSetColorWriteEnableEXT", name)) {
12170 *addr = (void *)CmdSetColorWriteEnableEXT;
12171 return true;
12172 }
12173
12174 // ---- VK_EXT_multi_draw extension commands
12175 if (!strcmp("vkCmdDrawMultiEXT", name)) {
12176 *addr = (void *)CmdDrawMultiEXT;
12177 return true;
12178 }
12179 if (!strcmp("vkCmdDrawMultiIndexedEXT", name)) {
12180 *addr = (void *)CmdDrawMultiIndexedEXT;
12181 return true;
12182 }
12183
12184 // ---- VK_EXT_opacity_micromap extension commands
12185 if (!strcmp("vkCreateMicromapEXT", name)) {
12186 *addr = (void *)CreateMicromapEXT;
12187 return true;
12188 }
12189 if (!strcmp("vkDestroyMicromapEXT", name)) {
12190 *addr = (void *)DestroyMicromapEXT;
12191 return true;
12192 }
12193 if (!strcmp("vkCmdBuildMicromapsEXT", name)) {
12194 *addr = (void *)CmdBuildMicromapsEXT;
12195 return true;
12196 }
12197 if (!strcmp("vkBuildMicromapsEXT", name)) {
12198 *addr = (void *)BuildMicromapsEXT;
12199 return true;
12200 }
12201 if (!strcmp("vkCopyMicromapEXT", name)) {
12202 *addr = (void *)CopyMicromapEXT;
12203 return true;
12204 }
12205 if (!strcmp("vkCopyMicromapToMemoryEXT", name)) {
12206 *addr = (void *)CopyMicromapToMemoryEXT;
12207 return true;
12208 }
12209 if (!strcmp("vkCopyMemoryToMicromapEXT", name)) {
12210 *addr = (void *)CopyMemoryToMicromapEXT;
12211 return true;
12212 }
12213 if (!strcmp("vkWriteMicromapsPropertiesEXT", name)) {
12214 *addr = (void *)WriteMicromapsPropertiesEXT;
12215 return true;
12216 }
12217 if (!strcmp("vkCmdCopyMicromapEXT", name)) {
12218 *addr = (void *)CmdCopyMicromapEXT;
12219 return true;
12220 }
12221 if (!strcmp("vkCmdCopyMicromapToMemoryEXT", name)) {
12222 *addr = (void *)CmdCopyMicromapToMemoryEXT;
12223 return true;
12224 }
12225 if (!strcmp("vkCmdCopyMemoryToMicromapEXT", name)) {
12226 *addr = (void *)CmdCopyMemoryToMicromapEXT;
12227 return true;
12228 }
12229 if (!strcmp("vkCmdWriteMicromapsPropertiesEXT", name)) {
12230 *addr = (void *)CmdWriteMicromapsPropertiesEXT;
12231 return true;
12232 }
12233 if (!strcmp("vkGetDeviceMicromapCompatibilityEXT", name)) {
12234 *addr = (void *)GetDeviceMicromapCompatibilityEXT;
12235 return true;
12236 }
12237 if (!strcmp("vkGetMicromapBuildSizesEXT", name)) {
12238 *addr = (void *)GetMicromapBuildSizesEXT;
12239 return true;
12240 }
12241
12242 // ---- VK_HUAWEI_cluster_culling_shader extension commands
12243 if (!strcmp("vkCmdDrawClusterHUAWEI", name)) {
12244 *addr = (void *)CmdDrawClusterHUAWEI;
12245 return true;
12246 }
12247 if (!strcmp("vkCmdDrawClusterIndirectHUAWEI", name)) {
12248 *addr = (void *)CmdDrawClusterIndirectHUAWEI;
12249 return true;
12250 }
12251
12252 // ---- VK_EXT_pageable_device_local_memory extension commands
12253 if (!strcmp("vkSetDeviceMemoryPriorityEXT", name)) {
12254 *addr = (void *)SetDeviceMemoryPriorityEXT;
12255 return true;
12256 }
12257
12258 // ---- VK_VALVE_descriptor_set_host_mapping extension commands
12259 if (!strcmp("vkGetDescriptorSetLayoutHostMappingInfoVALVE", name)) {
12260 *addr = (void *)GetDescriptorSetLayoutHostMappingInfoVALVE;
12261 return true;
12262 }
12263 if (!strcmp("vkGetDescriptorSetHostMappingVALVE", name)) {
12264 *addr = (void *)GetDescriptorSetHostMappingVALVE;
12265 return true;
12266 }
12267
12268 // ---- VK_NV_copy_memory_indirect extension commands
12269 if (!strcmp("vkCmdCopyMemoryIndirectNV", name)) {
12270 *addr = (void *)CmdCopyMemoryIndirectNV;
12271 return true;
12272 }
12273 if (!strcmp("vkCmdCopyMemoryToImageIndirectNV", name)) {
12274 *addr = (void *)CmdCopyMemoryToImageIndirectNV;
12275 return true;
12276 }
12277
12278 // ---- VK_NV_memory_decompression extension commands
12279 if (!strcmp("vkCmdDecompressMemoryNV", name)) {
12280 *addr = (void *)CmdDecompressMemoryNV;
12281 return true;
12282 }
12283 if (!strcmp("vkCmdDecompressMemoryIndirectCountNV", name)) {
12284 *addr = (void *)CmdDecompressMemoryIndirectCountNV;
12285 return true;
12286 }
12287
12288 // ---- VK_NV_device_generated_commands_compute extension commands
12289 if (!strcmp("vkGetPipelineIndirectMemoryRequirementsNV", name)) {
12290 *addr = (void *)GetPipelineIndirectMemoryRequirementsNV;
12291 return true;
12292 }
12293 if (!strcmp("vkCmdUpdatePipelineIndirectBufferNV", name)) {
12294 *addr = (void *)CmdUpdatePipelineIndirectBufferNV;
12295 return true;
12296 }
12297 if (!strcmp("vkGetPipelineIndirectDeviceAddressNV", name)) {
12298 *addr = (void *)GetPipelineIndirectDeviceAddressNV;
12299 return true;
12300 }
12301
12302 // ---- VK_EXT_extended_dynamic_state3 extension commands
12303 if (!strcmp("vkCmdSetDepthClampEnableEXT", name)) {
12304 *addr = (void *)CmdSetDepthClampEnableEXT;
12305 return true;
12306 }
12307 if (!strcmp("vkCmdSetPolygonModeEXT", name)) {
12308 *addr = (void *)CmdSetPolygonModeEXT;
12309 return true;
12310 }
12311 if (!strcmp("vkCmdSetRasterizationSamplesEXT", name)) {
12312 *addr = (void *)CmdSetRasterizationSamplesEXT;
12313 return true;
12314 }
12315 if (!strcmp("vkCmdSetSampleMaskEXT", name)) {
12316 *addr = (void *)CmdSetSampleMaskEXT;
12317 return true;
12318 }
12319 if (!strcmp("vkCmdSetAlphaToCoverageEnableEXT", name)) {
12320 *addr = (void *)CmdSetAlphaToCoverageEnableEXT;
12321 return true;
12322 }
12323 if (!strcmp("vkCmdSetAlphaToOneEnableEXT", name)) {
12324 *addr = (void *)CmdSetAlphaToOneEnableEXT;
12325 return true;
12326 }
12327 if (!strcmp("vkCmdSetLogicOpEnableEXT", name)) {
12328 *addr = (void *)CmdSetLogicOpEnableEXT;
12329 return true;
12330 }
12331 if (!strcmp("vkCmdSetColorBlendEnableEXT", name)) {
12332 *addr = (void *)CmdSetColorBlendEnableEXT;
12333 return true;
12334 }
12335 if (!strcmp("vkCmdSetColorBlendEquationEXT", name)) {
12336 *addr = (void *)CmdSetColorBlendEquationEXT;
12337 return true;
12338 }
12339 if (!strcmp("vkCmdSetColorWriteMaskEXT", name)) {
12340 *addr = (void *)CmdSetColorWriteMaskEXT;
12341 return true;
12342 }
12343 if (!strcmp("vkCmdSetTessellationDomainOriginEXT", name)) {
12344 *addr = (void *)CmdSetTessellationDomainOriginEXT;
12345 return true;
12346 }
12347 if (!strcmp("vkCmdSetRasterizationStreamEXT", name)) {
12348 *addr = (void *)CmdSetRasterizationStreamEXT;
12349 return true;
12350 }
12351 if (!strcmp("vkCmdSetConservativeRasterizationModeEXT", name)) {
12352 *addr = (void *)CmdSetConservativeRasterizationModeEXT;
12353 return true;
12354 }
12355 if (!strcmp("vkCmdSetExtraPrimitiveOverestimationSizeEXT", name)) {
12356 *addr = (void *)CmdSetExtraPrimitiveOverestimationSizeEXT;
12357 return true;
12358 }
12359 if (!strcmp("vkCmdSetDepthClipEnableEXT", name)) {
12360 *addr = (void *)CmdSetDepthClipEnableEXT;
12361 return true;
12362 }
12363 if (!strcmp("vkCmdSetSampleLocationsEnableEXT", name)) {
12364 *addr = (void *)CmdSetSampleLocationsEnableEXT;
12365 return true;
12366 }
12367 if (!strcmp("vkCmdSetColorBlendAdvancedEXT", name)) {
12368 *addr = (void *)CmdSetColorBlendAdvancedEXT;
12369 return true;
12370 }
12371 if (!strcmp("vkCmdSetProvokingVertexModeEXT", name)) {
12372 *addr = (void *)CmdSetProvokingVertexModeEXT;
12373 return true;
12374 }
12375 if (!strcmp("vkCmdSetLineRasterizationModeEXT", name)) {
12376 *addr = (void *)CmdSetLineRasterizationModeEXT;
12377 return true;
12378 }
12379 if (!strcmp("vkCmdSetLineStippleEnableEXT", name)) {
12380 *addr = (void *)CmdSetLineStippleEnableEXT;
12381 return true;
12382 }
12383 if (!strcmp("vkCmdSetDepthClipNegativeOneToOneEXT", name)) {
12384 *addr = (void *)CmdSetDepthClipNegativeOneToOneEXT;
12385 return true;
12386 }
12387 if (!strcmp("vkCmdSetViewportWScalingEnableNV", name)) {
12388 *addr = (void *)CmdSetViewportWScalingEnableNV;
12389 return true;
12390 }
12391 if (!strcmp("vkCmdSetViewportSwizzleNV", name)) {
12392 *addr = (void *)CmdSetViewportSwizzleNV;
12393 return true;
12394 }
12395 if (!strcmp("vkCmdSetCoverageToColorEnableNV", name)) {
12396 *addr = (void *)CmdSetCoverageToColorEnableNV;
12397 return true;
12398 }
12399 if (!strcmp("vkCmdSetCoverageToColorLocationNV", name)) {
12400 *addr = (void *)CmdSetCoverageToColorLocationNV;
12401 return true;
12402 }
12403 if (!strcmp("vkCmdSetCoverageModulationModeNV", name)) {
12404 *addr = (void *)CmdSetCoverageModulationModeNV;
12405 return true;
12406 }
12407 if (!strcmp("vkCmdSetCoverageModulationTableEnableNV", name)) {
12408 *addr = (void *)CmdSetCoverageModulationTableEnableNV;
12409 return true;
12410 }
12411 if (!strcmp("vkCmdSetCoverageModulationTableNV", name)) {
12412 *addr = (void *)CmdSetCoverageModulationTableNV;
12413 return true;
12414 }
12415 if (!strcmp("vkCmdSetShadingRateImageEnableNV", name)) {
12416 *addr = (void *)CmdSetShadingRateImageEnableNV;
12417 return true;
12418 }
12419 if (!strcmp("vkCmdSetRepresentativeFragmentTestEnableNV", name)) {
12420 *addr = (void *)CmdSetRepresentativeFragmentTestEnableNV;
12421 return true;
12422 }
12423 if (!strcmp("vkCmdSetCoverageReductionModeNV", name)) {
12424 *addr = (void *)CmdSetCoverageReductionModeNV;
12425 return true;
12426 }
12427
12428 // ---- VK_EXT_shader_module_identifier extension commands
12429 if (!strcmp("vkGetShaderModuleIdentifierEXT", name)) {
12430 *addr = (void *)GetShaderModuleIdentifierEXT;
12431 return true;
12432 }
12433 if (!strcmp("vkGetShaderModuleCreateInfoIdentifierEXT", name)) {
12434 *addr = (void *)GetShaderModuleCreateInfoIdentifierEXT;
12435 return true;
12436 }
12437
12438 // ---- VK_NV_optical_flow extension commands
12439 if (!strcmp("vkGetPhysicalDeviceOpticalFlowImageFormatsNV", name)) {
12440 *addr = (void *)GetPhysicalDeviceOpticalFlowImageFormatsNV;
12441 return true;
12442 }
12443 if (!strcmp("vkCreateOpticalFlowSessionNV", name)) {
12444 *addr = (void *)CreateOpticalFlowSessionNV;
12445 return true;
12446 }
12447 if (!strcmp("vkDestroyOpticalFlowSessionNV", name)) {
12448 *addr = (void *)DestroyOpticalFlowSessionNV;
12449 return true;
12450 }
12451 if (!strcmp("vkBindOpticalFlowSessionImageNV", name)) {
12452 *addr = (void *)BindOpticalFlowSessionImageNV;
12453 return true;
12454 }
12455 if (!strcmp("vkCmdOpticalFlowExecuteNV", name)) {
12456 *addr = (void *)CmdOpticalFlowExecuteNV;
12457 return true;
12458 }
12459
12460 // ---- VK_AMD_anti_lag extension commands
12461 if (!strcmp("vkAntiLagUpdateAMD", name)) {
12462 *addr = (void *)AntiLagUpdateAMD;
12463 return true;
12464 }
12465
12466 // ---- VK_EXT_shader_object extension commands
12467 if (!strcmp("vkCreateShadersEXT", name)) {
12468 *addr = (void *)CreateShadersEXT;
12469 return true;
12470 }
12471 if (!strcmp("vkDestroyShaderEXT", name)) {
12472 *addr = (void *)DestroyShaderEXT;
12473 return true;
12474 }
12475 if (!strcmp("vkGetShaderBinaryDataEXT", name)) {
12476 *addr = (void *)GetShaderBinaryDataEXT;
12477 return true;
12478 }
12479 if (!strcmp("vkCmdBindShadersEXT", name)) {
12480 *addr = (void *)CmdBindShadersEXT;
12481 return true;
12482 }
12483 if (!strcmp("vkCmdSetDepthClampRangeEXT", name)) {
12484 *addr = (void *)CmdSetDepthClampRangeEXT;
12485 return true;
12486 }
12487
12488 // ---- VK_QCOM_tile_properties extension commands
12489 if (!strcmp("vkGetFramebufferTilePropertiesQCOM", name)) {
12490 *addr = (void *)GetFramebufferTilePropertiesQCOM;
12491 return true;
12492 }
12493 if (!strcmp("vkGetDynamicRenderingTilePropertiesQCOM", name)) {
12494 *addr = (void *)GetDynamicRenderingTilePropertiesQCOM;
12495 return true;
12496 }
12497
12498 // ---- VK_NV_cooperative_vector extension commands
12499 if (!strcmp("vkGetPhysicalDeviceCooperativeVectorPropertiesNV", name)) {
12500 *addr = (void *)GetPhysicalDeviceCooperativeVectorPropertiesNV;
12501 return true;
12502 }
12503 if (!strcmp("vkConvertCooperativeVectorMatrixNV", name)) {
12504 *addr = (void *)ConvertCooperativeVectorMatrixNV;
12505 return true;
12506 }
12507 if (!strcmp("vkCmdConvertCooperativeVectorMatrixNV", name)) {
12508 *addr = (void *)CmdConvertCooperativeVectorMatrixNV;
12509 return true;
12510 }
12511
12512 // ---- VK_NV_low_latency2 extension commands
12513 if (!strcmp("vkSetLatencySleepModeNV", name)) {
12514 *addr = (void *)SetLatencySleepModeNV;
12515 return true;
12516 }
12517 if (!strcmp("vkLatencySleepNV", name)) {
12518 *addr = (void *)LatencySleepNV;
12519 return true;
12520 }
12521 if (!strcmp("vkSetLatencyMarkerNV", name)) {
12522 *addr = (void *)SetLatencyMarkerNV;
12523 return true;
12524 }
12525 if (!strcmp("vkGetLatencyTimingsNV", name)) {
12526 *addr = (void *)GetLatencyTimingsNV;
12527 return true;
12528 }
12529 if (!strcmp("vkQueueNotifyOutOfBandNV", name)) {
12530 *addr = (void *)QueueNotifyOutOfBandNV;
12531 return true;
12532 }
12533
12534 // ---- VK_EXT_attachment_feedback_loop_dynamic_state extension commands
12535 if (!strcmp("vkCmdSetAttachmentFeedbackLoopEnableEXT", name)) {
12536 *addr = (void *)CmdSetAttachmentFeedbackLoopEnableEXT;
12537 return true;
12538 }
12539
12540 // ---- VK_QNX_external_memory_screen_buffer extension commands
12541 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
12542 if (!strcmp("vkGetScreenBufferPropertiesQNX", name)) {
12543 *addr = (void *)GetScreenBufferPropertiesQNX;
12544 return true;
12545 }
12546 #endif // VK_USE_PLATFORM_SCREEN_QNX
12547
12548 // ---- VK_NV_cluster_acceleration_structure extension commands
12549 if (!strcmp("vkGetClusterAccelerationStructureBuildSizesNV", name)) {
12550 *addr = (void *)GetClusterAccelerationStructureBuildSizesNV;
12551 return true;
12552 }
12553 if (!strcmp("vkCmdBuildClusterAccelerationStructureIndirectNV", name)) {
12554 *addr = (void *)CmdBuildClusterAccelerationStructureIndirectNV;
12555 return true;
12556 }
12557
12558 // ---- VK_NV_partitioned_acceleration_structure extension commands
12559 if (!strcmp("vkGetPartitionedAccelerationStructuresBuildSizesNV", name)) {
12560 *addr = (void *)GetPartitionedAccelerationStructuresBuildSizesNV;
12561 return true;
12562 }
12563 if (!strcmp("vkCmdBuildPartitionedAccelerationStructuresNV", name)) {
12564 *addr = (void *)CmdBuildPartitionedAccelerationStructuresNV;
12565 return true;
12566 }
12567
12568 // ---- VK_EXT_device_generated_commands extension commands
12569 if (!strcmp("vkGetGeneratedCommandsMemoryRequirementsEXT", name)) {
12570 *addr = (void *)GetGeneratedCommandsMemoryRequirementsEXT;
12571 return true;
12572 }
12573 if (!strcmp("vkCmdPreprocessGeneratedCommandsEXT", name)) {
12574 *addr = (void *)CmdPreprocessGeneratedCommandsEXT;
12575 return true;
12576 }
12577 if (!strcmp("vkCmdExecuteGeneratedCommandsEXT", name)) {
12578 *addr = (void *)CmdExecuteGeneratedCommandsEXT;
12579 return true;
12580 }
12581 if (!strcmp("vkCreateIndirectCommandsLayoutEXT", name)) {
12582 *addr = (void *)CreateIndirectCommandsLayoutEXT;
12583 return true;
12584 }
12585 if (!strcmp("vkDestroyIndirectCommandsLayoutEXT", name)) {
12586 *addr = (void *)DestroyIndirectCommandsLayoutEXT;
12587 return true;
12588 }
12589 if (!strcmp("vkCreateIndirectExecutionSetEXT", name)) {
12590 *addr = (void *)CreateIndirectExecutionSetEXT;
12591 return true;
12592 }
12593 if (!strcmp("vkDestroyIndirectExecutionSetEXT", name)) {
12594 *addr = (void *)DestroyIndirectExecutionSetEXT;
12595 return true;
12596 }
12597 if (!strcmp("vkUpdateIndirectExecutionSetPipelineEXT", name)) {
12598 *addr = (void *)UpdateIndirectExecutionSetPipelineEXT;
12599 return true;
12600 }
12601 if (!strcmp("vkUpdateIndirectExecutionSetShaderEXT", name)) {
12602 *addr = (void *)UpdateIndirectExecutionSetShaderEXT;
12603 return true;
12604 }
12605
12606 // ---- VK_NV_cooperative_matrix2 extension commands
12607 if (!strcmp("vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV", name)) {
12608 *addr = (void *)GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV;
12609 return true;
12610 }
12611
12612 // ---- VK_EXT_external_memory_metal extension commands
12613 #if defined(VK_USE_PLATFORM_METAL_EXT)
12614 if (!strcmp("vkGetMemoryMetalHandleEXT", name)) {
12615 *addr = (void *)GetMemoryMetalHandleEXT;
12616 return true;
12617 }
12618 #endif // VK_USE_PLATFORM_METAL_EXT
12619 #if defined(VK_USE_PLATFORM_METAL_EXT)
12620 if (!strcmp("vkGetMemoryMetalHandlePropertiesEXT", name)) {
12621 *addr = (void *)GetMemoryMetalHandlePropertiesEXT;
12622 return true;
12623 }
12624 #endif // VK_USE_PLATFORM_METAL_EXT
12625
12626 // ---- VK_KHR_acceleration_structure extension commands
12627 if (!strcmp("vkCreateAccelerationStructureKHR", name)) {
12628 *addr = (void *)CreateAccelerationStructureKHR;
12629 return true;
12630 }
12631 if (!strcmp("vkDestroyAccelerationStructureKHR", name)) {
12632 *addr = (void *)DestroyAccelerationStructureKHR;
12633 return true;
12634 }
12635 if (!strcmp("vkCmdBuildAccelerationStructuresKHR", name)) {
12636 *addr = (void *)CmdBuildAccelerationStructuresKHR;
12637 return true;
12638 }
12639 if (!strcmp("vkCmdBuildAccelerationStructuresIndirectKHR", name)) {
12640 *addr = (void *)CmdBuildAccelerationStructuresIndirectKHR;
12641 return true;
12642 }
12643 if (!strcmp("vkBuildAccelerationStructuresKHR", name)) {
12644 *addr = (void *)BuildAccelerationStructuresKHR;
12645 return true;
12646 }
12647 if (!strcmp("vkCopyAccelerationStructureKHR", name)) {
12648 *addr = (void *)CopyAccelerationStructureKHR;
12649 return true;
12650 }
12651 if (!strcmp("vkCopyAccelerationStructureToMemoryKHR", name)) {
12652 *addr = (void *)CopyAccelerationStructureToMemoryKHR;
12653 return true;
12654 }
12655 if (!strcmp("vkCopyMemoryToAccelerationStructureKHR", name)) {
12656 *addr = (void *)CopyMemoryToAccelerationStructureKHR;
12657 return true;
12658 }
12659 if (!strcmp("vkWriteAccelerationStructuresPropertiesKHR", name)) {
12660 *addr = (void *)WriteAccelerationStructuresPropertiesKHR;
12661 return true;
12662 }
12663 if (!strcmp("vkCmdCopyAccelerationStructureKHR", name)) {
12664 *addr = (void *)CmdCopyAccelerationStructureKHR;
12665 return true;
12666 }
12667 if (!strcmp("vkCmdCopyAccelerationStructureToMemoryKHR", name)) {
12668 *addr = (void *)CmdCopyAccelerationStructureToMemoryKHR;
12669 return true;
12670 }
12671 if (!strcmp("vkCmdCopyMemoryToAccelerationStructureKHR", name)) {
12672 *addr = (void *)CmdCopyMemoryToAccelerationStructureKHR;
12673 return true;
12674 }
12675 if (!strcmp("vkGetAccelerationStructureDeviceAddressKHR", name)) {
12676 *addr = (void *)GetAccelerationStructureDeviceAddressKHR;
12677 return true;
12678 }
12679 if (!strcmp("vkCmdWriteAccelerationStructuresPropertiesKHR", name)) {
12680 *addr = (void *)CmdWriteAccelerationStructuresPropertiesKHR;
12681 return true;
12682 }
12683 if (!strcmp("vkGetDeviceAccelerationStructureCompatibilityKHR", name)) {
12684 *addr = (void *)GetDeviceAccelerationStructureCompatibilityKHR;
12685 return true;
12686 }
12687 if (!strcmp("vkGetAccelerationStructureBuildSizesKHR", name)) {
12688 *addr = (void *)GetAccelerationStructureBuildSizesKHR;
12689 return true;
12690 }
12691
12692 // ---- VK_KHR_ray_tracing_pipeline extension commands
12693 if (!strcmp("vkCmdTraceRaysKHR", name)) {
12694 *addr = (void *)CmdTraceRaysKHR;
12695 return true;
12696 }
12697 if (!strcmp("vkCreateRayTracingPipelinesKHR", name)) {
12698 *addr = (void *)CreateRayTracingPipelinesKHR;
12699 return true;
12700 }
12701 if (!strcmp("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", name)) {
12702 *addr = (void *)GetRayTracingCaptureReplayShaderGroupHandlesKHR;
12703 return true;
12704 }
12705 if (!strcmp("vkCmdTraceRaysIndirectKHR", name)) {
12706 *addr = (void *)CmdTraceRaysIndirectKHR;
12707 return true;
12708 }
12709 if (!strcmp("vkGetRayTracingShaderGroupStackSizeKHR", name)) {
12710 *addr = (void *)GetRayTracingShaderGroupStackSizeKHR;
12711 return true;
12712 }
12713 if (!strcmp("vkCmdSetRayTracingPipelineStackSizeKHR", name)) {
12714 *addr = (void *)CmdSetRayTracingPipelineStackSizeKHR;
12715 return true;
12716 }
12717
12718 // ---- VK_EXT_mesh_shader extension commands
12719 if (!strcmp("vkCmdDrawMeshTasksEXT", name)) {
12720 *addr = (void *)CmdDrawMeshTasksEXT;
12721 return true;
12722 }
12723 if (!strcmp("vkCmdDrawMeshTasksIndirectEXT", name)) {
12724 *addr = (void *)CmdDrawMeshTasksIndirectEXT;
12725 return true;
12726 }
12727 if (!strcmp("vkCmdDrawMeshTasksIndirectCountEXT", name)) {
12728 *addr = (void *)CmdDrawMeshTasksIndirectCountEXT;
12729 return true;
12730 }
12731
12732 // ---- VK_OHOS_native_buffer extension commands
12733 #ifdef VK_USE_PLATFORM_OHOS
12734 if (!strcmp("vkGetSwapchainGrallocUsageOHOS", name)) {
12735 *addr = (void *)GetSwapchainGrallocUsageOHOS;
12736 return true;
12737 }
12738 #endif // VK_USE_PLATFORM_OHOS
12739 #ifdef VK_USE_PLATFORM_OHOS
12740 if (!strcmp("vkAcquireImageOHOS", name)) {
12741 *addr = (void *)AcquireImageOHOS;
12742 return true;
12743 }
12744 #endif // VK_USE_PLATFORM_OHOS
12745 #ifdef VK_USE_PLATFORM_OHOS
12746 if (!strcmp("vkQueueSignalReleaseImageOHOS", name)) {
12747 *addr = (void *)QueueSignalReleaseImageOHOS;
12748 return true;
12749 }
12750 #endif // VK_USE_PLATFORM_OHOS
12751
12752 // ---- VK_OHOS_external_memory extension commands
12753 #ifdef VK_USE_PLATFORM_OHOS
12754 if (!strcmp("vkGetNativeBufferPropertiesOHOS", name)) {
12755 *addr = (void *)vkGetNativeBufferPropertiesOHOS;
12756 return true;
12757 }
12758 #endif // VK_USE_PLATFORM_OHOS
12759 #ifdef VK_USE_PLATFORM_OHOS
12760 if (!strcmp("vkGetMemoryNativeBufferOHOS", name)) {
12761 *addr = (void *)vkGetMemoryNativeBufferOHOS;
12762 return true;
12763 }
12764 #endif // VK_USE_PLATFORM_OHOS
12765
12766 return false;
12767 }
12768
12769 // A function that can be used to query enabled extensions during a vkCreateInstance call
extensions_create_instance(struct loader_instance * ptr_instance,const VkInstanceCreateInfo * pCreateInfo)12770 void extensions_create_instance(struct loader_instance *ptr_instance, const VkInstanceCreateInfo *pCreateInfo) {
12771 for (uint32_t i = 0; i < pCreateInfo->enabledExtensionCount; i++) {
12772
12773 // ---- VK_KHR_get_physical_device_properties2 extension commands
12774 if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)) {
12775 ptr_instance->enabled_known_extensions.khr_get_physical_device_properties2 = 1;
12776
12777 // ---- VK_KHR_device_group_creation extension commands
12778 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)) {
12779 ptr_instance->enabled_known_extensions.khr_device_group_creation = 1;
12780
12781 // ---- VK_KHR_external_memory_capabilities extension commands
12782 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) {
12783 ptr_instance->enabled_known_extensions.khr_external_memory_capabilities = 1;
12784
12785 // ---- VK_KHR_external_semaphore_capabilities extension commands
12786 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME)) {
12787 ptr_instance->enabled_known_extensions.khr_external_semaphore_capabilities = 1;
12788
12789 // ---- VK_KHR_external_fence_capabilities extension commands
12790 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME)) {
12791 ptr_instance->enabled_known_extensions.khr_external_fence_capabilities = 1;
12792
12793 // ---- VK_NV_external_memory_capabilities extension commands
12794 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME)) {
12795 ptr_instance->enabled_known_extensions.nv_external_memory_capabilities = 1;
12796
12797 // ---- VK_EXT_direct_mode_display extension commands
12798 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)) {
12799 ptr_instance->enabled_known_extensions.ext_direct_mode_display = 1;
12800
12801 // ---- VK_EXT_acquire_xlib_display extension commands
12802 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
12803 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME)) {
12804 ptr_instance->enabled_known_extensions.ext_acquire_xlib_display = 1;
12805 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
12806
12807 // ---- VK_EXT_display_surface_counter extension commands
12808 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)) {
12809 ptr_instance->enabled_known_extensions.ext_display_surface_counter = 1;
12810
12811 // ---- VK_EXT_debug_utils extension commands
12812 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) {
12813 ptr_instance->enabled_known_extensions.ext_debug_utils = 1;
12814
12815 // ---- VK_EXT_acquire_drm_display extension commands
12816 } else if (0 == strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME)) {
12817 ptr_instance->enabled_known_extensions.ext_acquire_drm_display = 1;
12818 }
12819 }
12820 }
12821
12822 // Some device commands still need a terminator because the loader needs to unwrap something about them.
12823 // In many cases, the item needing unwrapping is a VkPhysicalDevice or VkSurfaceKHR object. But there may be other items
12824 // in the future.
get_extension_device_proc_terminator(struct loader_device * dev,const char * name,bool * found_name)12825 PFN_vkVoidFunction get_extension_device_proc_terminator(struct loader_device *dev, const char *name, bool* found_name) {
12826 *found_name = false;
12827 if (!name || name[0] != 'v' || name[1] != 'k') {
12828 return NULL;
12829 }
12830 name += 2;
12831 // ---- VK_KHR_swapchain extension commands
12832 if (!strcmp(name, "CreateSwapchainKHR")) {
12833 *found_name = true;
12834 return dev->driver_extensions.khr_swapchain_enabled ?
12835 (PFN_vkVoidFunction)terminator_CreateSwapchainKHR : NULL;
12836 }
12837 if (!strcmp(name, "GetDeviceGroupSurfacePresentModesKHR")) {
12838 *found_name = true;
12839 return dev->driver_extensions.khr_swapchain_enabled ?
12840 (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModesKHR : NULL;
12841 }
12842 // ---- VK_KHR_display_swapchain extension commands
12843 if (!strcmp(name, "CreateSharedSwapchainsKHR")) {
12844 *found_name = true;
12845 return dev->driver_extensions.khr_display_swapchain_enabled ?
12846 (PFN_vkVoidFunction)terminator_CreateSharedSwapchainsKHR : NULL;
12847 }
12848 // ---- VK_EXT_debug_marker extension commands
12849 if (!strcmp(name, "DebugMarkerSetObjectTagEXT")) {
12850 *found_name = true;
12851 return dev->driver_extensions.ext_debug_marker_enabled ?
12852 (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectTagEXT : NULL;
12853 }
12854 if (!strcmp(name, "DebugMarkerSetObjectNameEXT")) {
12855 *found_name = true;
12856 return dev->driver_extensions.ext_debug_marker_enabled ?
12857 (PFN_vkVoidFunction)terminator_DebugMarkerSetObjectNameEXT : NULL;
12858 }
12859 // ---- VK_EXT_debug_utils extension commands
12860 if (!strcmp(name, "SetDebugUtilsObjectNameEXT")) {
12861 *found_name = true;
12862 return dev->driver_extensions.ext_debug_utils_enabled ?
12863 (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectNameEXT : NULL;
12864 }
12865 if (!strcmp(name, "SetDebugUtilsObjectTagEXT")) {
12866 *found_name = true;
12867 return dev->driver_extensions.ext_debug_utils_enabled ?
12868 (PFN_vkVoidFunction)terminator_SetDebugUtilsObjectTagEXT : NULL;
12869 }
12870 if (!strcmp(name, "QueueBeginDebugUtilsLabelEXT")) {
12871 *found_name = true;
12872 return dev->driver_extensions.ext_debug_utils_enabled ?
12873 (PFN_vkVoidFunction)terminator_QueueBeginDebugUtilsLabelEXT : NULL;
12874 }
12875 if (!strcmp(name, "QueueEndDebugUtilsLabelEXT")) {
12876 *found_name = true;
12877 return dev->driver_extensions.ext_debug_utils_enabled ?
12878 (PFN_vkVoidFunction)terminator_QueueEndDebugUtilsLabelEXT : NULL;
12879 }
12880 if (!strcmp(name, "QueueInsertDebugUtilsLabelEXT")) {
12881 *found_name = true;
12882 return dev->driver_extensions.ext_debug_utils_enabled ?
12883 (PFN_vkVoidFunction)terminator_QueueInsertDebugUtilsLabelEXT : NULL;
12884 }
12885 if (!strcmp(name, "CmdBeginDebugUtilsLabelEXT")) {
12886 *found_name = true;
12887 return dev->driver_extensions.ext_debug_utils_enabled ?
12888 (PFN_vkVoidFunction)terminator_CmdBeginDebugUtilsLabelEXT : NULL;
12889 }
12890 if (!strcmp(name, "CmdEndDebugUtilsLabelEXT")) {
12891 *found_name = true;
12892 return dev->driver_extensions.ext_debug_utils_enabled ?
12893 (PFN_vkVoidFunction)terminator_CmdEndDebugUtilsLabelEXT : NULL;
12894 }
12895 if (!strcmp(name, "CmdInsertDebugUtilsLabelEXT")) {
12896 *found_name = true;
12897 return dev->driver_extensions.ext_debug_utils_enabled ?
12898 (PFN_vkVoidFunction)terminator_CmdInsertDebugUtilsLabelEXT : NULL;
12899 }
12900 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12901 // ---- VK_EXT_full_screen_exclusive extension commands
12902 if (!strcmp(name, "GetDeviceGroupSurfacePresentModes2EXT")) {
12903 *found_name = true;
12904 return (dev->driver_extensions.ext_full_screen_exclusive_enabled && (dev->driver_extensions.khr_device_group_enabled || dev->driver_extensions.version_1_1_enabled)) ?
12905 (PFN_vkVoidFunction)terminator_GetDeviceGroupSurfacePresentModes2EXT : NULL;
12906 }
12907 #endif // VK_USE_PLATFORM_WIN32_KHR
12908 return NULL;
12909 }
12910
12911 // This table contains the loader's instance dispatch table, which contains
12912 // default functions if no instance layers are activated. This contains
12913 // pointers to "terminator functions".
12914 const VkLayerInstanceDispatchTable instance_disp = {
12915
12916 // ---- Core Vulkan 1.0 commands
12917 .DestroyInstance = terminator_DestroyInstance,
12918 .EnumeratePhysicalDevices = terminator_EnumeratePhysicalDevices,
12919 .GetPhysicalDeviceFeatures = terminator_GetPhysicalDeviceFeatures,
12920 .GetPhysicalDeviceFormatProperties = terminator_GetPhysicalDeviceFormatProperties,
12921 .GetPhysicalDeviceImageFormatProperties = terminator_GetPhysicalDeviceImageFormatProperties,
12922 .GetPhysicalDeviceProperties = terminator_GetPhysicalDeviceProperties,
12923 .GetPhysicalDeviceQueueFamilyProperties = terminator_GetPhysicalDeviceQueueFamilyProperties,
12924 .GetPhysicalDeviceMemoryProperties = terminator_GetPhysicalDeviceMemoryProperties,
12925 .GetInstanceProcAddr = vkGetInstanceProcAddr,
12926 .EnumerateDeviceExtensionProperties = terminator_EnumerateDeviceExtensionProperties,
12927 .EnumerateDeviceLayerProperties = terminator_EnumerateDeviceLayerProperties,
12928 .GetPhysicalDeviceSparseImageFormatProperties = terminator_GetPhysicalDeviceSparseImageFormatProperties,
12929
12930 // ---- Core Vulkan 1.1 commands
12931 .EnumeratePhysicalDeviceGroups = terminator_EnumeratePhysicalDeviceGroups,
12932 .GetPhysicalDeviceFeatures2 = terminator_GetPhysicalDeviceFeatures2,
12933 .GetPhysicalDeviceProperties2 = terminator_GetPhysicalDeviceProperties2,
12934 .GetPhysicalDeviceFormatProperties2 = terminator_GetPhysicalDeviceFormatProperties2,
12935 .GetPhysicalDeviceImageFormatProperties2 = terminator_GetPhysicalDeviceImageFormatProperties2,
12936 .GetPhysicalDeviceQueueFamilyProperties2 = terminator_GetPhysicalDeviceQueueFamilyProperties2,
12937 .GetPhysicalDeviceMemoryProperties2 = terminator_GetPhysicalDeviceMemoryProperties2,
12938 .GetPhysicalDeviceSparseImageFormatProperties2 = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
12939 .GetPhysicalDeviceExternalBufferProperties = terminator_GetPhysicalDeviceExternalBufferProperties,
12940 .GetPhysicalDeviceExternalFenceProperties = terminator_GetPhysicalDeviceExternalFenceProperties,
12941 .GetPhysicalDeviceExternalSemaphoreProperties = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
12942
12943 // ---- Core Vulkan 1.3 commands
12944 .GetPhysicalDeviceToolProperties = terminator_GetPhysicalDeviceToolProperties,
12945
12946 // ---- VK_KHR_surface extension commands
12947 .DestroySurfaceKHR = terminator_DestroySurfaceKHR,
12948 .GetPhysicalDeviceSurfaceSupportKHR = terminator_GetPhysicalDeviceSurfaceSupportKHR,
12949 .GetPhysicalDeviceSurfaceCapabilitiesKHR = terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR,
12950 .GetPhysicalDeviceSurfaceFormatsKHR = terminator_GetPhysicalDeviceSurfaceFormatsKHR,
12951 .GetPhysicalDeviceSurfacePresentModesKHR = terminator_GetPhysicalDeviceSurfacePresentModesKHR,
12952
12953 // ---- VK_KHR_swapchain extension commands
12954 .GetPhysicalDevicePresentRectanglesKHR = terminator_GetPhysicalDevicePresentRectanglesKHR,
12955
12956 // ---- VK_KHR_display extension commands
12957 .GetPhysicalDeviceDisplayPropertiesKHR = terminator_GetPhysicalDeviceDisplayPropertiesKHR,
12958 .GetPhysicalDeviceDisplayPlanePropertiesKHR = terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR,
12959 .GetDisplayPlaneSupportedDisplaysKHR = terminator_GetDisplayPlaneSupportedDisplaysKHR,
12960 .GetDisplayModePropertiesKHR = terminator_GetDisplayModePropertiesKHR,
12961 .CreateDisplayModeKHR = terminator_CreateDisplayModeKHR,
12962 .GetDisplayPlaneCapabilitiesKHR = terminator_GetDisplayPlaneCapabilitiesKHR,
12963 .CreateDisplayPlaneSurfaceKHR = terminator_CreateDisplayPlaneSurfaceKHR,
12964
12965 // ---- VK_KHR_xlib_surface extension commands
12966 #if defined(VK_USE_PLATFORM_XLIB_KHR)
12967 .CreateXlibSurfaceKHR = terminator_CreateXlibSurfaceKHR,
12968 #endif // VK_USE_PLATFORM_XLIB_KHR
12969 #if defined(VK_USE_PLATFORM_XLIB_KHR)
12970 .GetPhysicalDeviceXlibPresentationSupportKHR = terminator_GetPhysicalDeviceXlibPresentationSupportKHR,
12971 #endif // VK_USE_PLATFORM_XLIB_KHR
12972
12973 // ---- VK_KHR_xcb_surface extension commands
12974 #if defined(VK_USE_PLATFORM_XCB_KHR)
12975 .CreateXcbSurfaceKHR = terminator_CreateXcbSurfaceKHR,
12976 #endif // VK_USE_PLATFORM_XCB_KHR
12977 #if defined(VK_USE_PLATFORM_XCB_KHR)
12978 .GetPhysicalDeviceXcbPresentationSupportKHR = terminator_GetPhysicalDeviceXcbPresentationSupportKHR,
12979 #endif // VK_USE_PLATFORM_XCB_KHR
12980
12981 // ---- VK_KHR_wayland_surface extension commands
12982 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
12983 .CreateWaylandSurfaceKHR = terminator_CreateWaylandSurfaceKHR,
12984 #endif // VK_USE_PLATFORM_WAYLAND_KHR
12985 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
12986 .GetPhysicalDeviceWaylandPresentationSupportKHR = terminator_GetPhysicalDeviceWaylandPresentationSupportKHR,
12987 #endif // VK_USE_PLATFORM_WAYLAND_KHR
12988
12989 // ---- VK_KHR_android_surface extension commands
12990 #if defined(VK_USE_PLATFORM_ANDROID_KHR)
12991 .CreateAndroidSurfaceKHR = terminator_CreateAndroidSurfaceKHR,
12992 #endif // VK_USE_PLATFORM_ANDROID_KHR
12993
12994 // ---- VK_KHR_win32_surface extension commands
12995 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12996 .CreateWin32SurfaceKHR = terminator_CreateWin32SurfaceKHR,
12997 #endif // VK_USE_PLATFORM_WIN32_KHR
12998 #if defined(VK_USE_PLATFORM_WIN32_KHR)
12999 .GetPhysicalDeviceWin32PresentationSupportKHR = terminator_GetPhysicalDeviceWin32PresentationSupportKHR,
13000 #endif // VK_USE_PLATFORM_WIN32_KHR
13001
13002 // ---- VK_KHR_video_queue extension commands
13003 .GetPhysicalDeviceVideoCapabilitiesKHR = terminator_GetPhysicalDeviceVideoCapabilitiesKHR,
13004 .GetPhysicalDeviceVideoFormatPropertiesKHR = terminator_GetPhysicalDeviceVideoFormatPropertiesKHR,
13005
13006 // ---- VK_KHR_get_physical_device_properties2 extension commands
13007 .GetPhysicalDeviceFeatures2KHR = terminator_GetPhysicalDeviceFeatures2,
13008 .GetPhysicalDeviceProperties2KHR = terminator_GetPhysicalDeviceProperties2,
13009 .GetPhysicalDeviceFormatProperties2KHR = terminator_GetPhysicalDeviceFormatProperties2,
13010 .GetPhysicalDeviceImageFormatProperties2KHR = terminator_GetPhysicalDeviceImageFormatProperties2,
13011 .GetPhysicalDeviceQueueFamilyProperties2KHR = terminator_GetPhysicalDeviceQueueFamilyProperties2,
13012 .GetPhysicalDeviceMemoryProperties2KHR = terminator_GetPhysicalDeviceMemoryProperties2,
13013 .GetPhysicalDeviceSparseImageFormatProperties2KHR = terminator_GetPhysicalDeviceSparseImageFormatProperties2,
13014
13015 // ---- VK_KHR_device_group_creation extension commands
13016 .EnumeratePhysicalDeviceGroupsKHR = terminator_EnumeratePhysicalDeviceGroups,
13017
13018 // ---- VK_KHR_external_memory_capabilities extension commands
13019 .GetPhysicalDeviceExternalBufferPropertiesKHR = terminator_GetPhysicalDeviceExternalBufferProperties,
13020
13021 // ---- VK_KHR_external_semaphore_capabilities extension commands
13022 .GetPhysicalDeviceExternalSemaphorePropertiesKHR = terminator_GetPhysicalDeviceExternalSemaphoreProperties,
13023
13024 // ---- VK_KHR_external_fence_capabilities extension commands
13025 .GetPhysicalDeviceExternalFencePropertiesKHR = terminator_GetPhysicalDeviceExternalFenceProperties,
13026
13027 // ---- VK_KHR_performance_query extension commands
13028 .EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = terminator_EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
13029 .GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = terminator_GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
13030
13031 // ---- VK_KHR_get_surface_capabilities2 extension commands
13032 .GetPhysicalDeviceSurfaceCapabilities2KHR = terminator_GetPhysicalDeviceSurfaceCapabilities2KHR,
13033 .GetPhysicalDeviceSurfaceFormats2KHR = terminator_GetPhysicalDeviceSurfaceFormats2KHR,
13034
13035 // ---- VK_KHR_get_display_properties2 extension commands
13036 .GetPhysicalDeviceDisplayProperties2KHR = terminator_GetPhysicalDeviceDisplayProperties2KHR,
13037 .GetPhysicalDeviceDisplayPlaneProperties2KHR = terminator_GetPhysicalDeviceDisplayPlaneProperties2KHR,
13038 .GetDisplayModeProperties2KHR = terminator_GetDisplayModeProperties2KHR,
13039 .GetDisplayPlaneCapabilities2KHR = terminator_GetDisplayPlaneCapabilities2KHR,
13040
13041 // ---- VK_KHR_fragment_shading_rate extension commands
13042 .GetPhysicalDeviceFragmentShadingRatesKHR = terminator_GetPhysicalDeviceFragmentShadingRatesKHR,
13043
13044 // ---- VK_KHR_video_encode_queue extension commands
13045 .GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = terminator_GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR,
13046
13047 // ---- VK_KHR_cooperative_matrix extension commands
13048 .GetPhysicalDeviceCooperativeMatrixPropertiesKHR = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesKHR,
13049
13050 // ---- VK_KHR_calibrated_timestamps extension commands
13051 .GetPhysicalDeviceCalibrateableTimeDomainsKHR = terminator_GetPhysicalDeviceCalibrateableTimeDomainsKHR,
13052
13053 // ---- VK_EXT_debug_report extension commands
13054 .CreateDebugReportCallbackEXT = terminator_CreateDebugReportCallbackEXT,
13055 .DestroyDebugReportCallbackEXT = terminator_DestroyDebugReportCallbackEXT,
13056 .DebugReportMessageEXT = terminator_DebugReportMessageEXT,
13057
13058 // ---- VK_GGP_stream_descriptor_surface extension commands
13059 #if defined(VK_USE_PLATFORM_GGP)
13060 .CreateStreamDescriptorSurfaceGGP = terminator_CreateStreamDescriptorSurfaceGGP,
13061 #endif // VK_USE_PLATFORM_GGP
13062
13063 // ---- VK_NV_external_memory_capabilities extension commands
13064 .GetPhysicalDeviceExternalImageFormatPropertiesNV = terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV,
13065
13066 // ---- VK_NN_vi_surface extension commands
13067 #if defined(VK_USE_PLATFORM_VI_NN)
13068 .CreateViSurfaceNN = terminator_CreateViSurfaceNN,
13069 #endif // VK_USE_PLATFORM_VI_NN
13070
13071 // ---- VK_EXT_direct_mode_display extension commands
13072 .ReleaseDisplayEXT = terminator_ReleaseDisplayEXT,
13073
13074 // ---- VK_EXT_acquire_xlib_display extension commands
13075 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
13076 .AcquireXlibDisplayEXT = terminator_AcquireXlibDisplayEXT,
13077 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
13078 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
13079 .GetRandROutputDisplayEXT = terminator_GetRandROutputDisplayEXT,
13080 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
13081
13082 // ---- VK_EXT_display_surface_counter extension commands
13083 .GetPhysicalDeviceSurfaceCapabilities2EXT = terminator_GetPhysicalDeviceSurfaceCapabilities2EXT,
13084
13085 // ---- VK_MVK_ios_surface extension commands
13086 #if defined(VK_USE_PLATFORM_IOS_MVK)
13087 .CreateIOSSurfaceMVK = terminator_CreateIOSSurfaceMVK,
13088 #endif // VK_USE_PLATFORM_IOS_MVK
13089
13090 // ---- VK_MVK_macos_surface extension commands
13091 #if defined(VK_USE_PLATFORM_MACOS_MVK)
13092 .CreateMacOSSurfaceMVK = terminator_CreateMacOSSurfaceMVK,
13093 #endif // VK_USE_PLATFORM_MACOS_MVK
13094
13095 // ---- VK_EXT_debug_utils extension commands
13096 .CreateDebugUtilsMessengerEXT = terminator_CreateDebugUtilsMessengerEXT,
13097 .DestroyDebugUtilsMessengerEXT = terminator_DestroyDebugUtilsMessengerEXT,
13098 .SubmitDebugUtilsMessageEXT = terminator_SubmitDebugUtilsMessageEXT,
13099
13100 // ---- VK_EXT_sample_locations extension commands
13101 .GetPhysicalDeviceMultisamplePropertiesEXT = terminator_GetPhysicalDeviceMultisamplePropertiesEXT,
13102
13103 // ---- VK_EXT_calibrated_timestamps extension commands
13104 .GetPhysicalDeviceCalibrateableTimeDomainsEXT = terminator_GetPhysicalDeviceCalibrateableTimeDomainsEXT,
13105
13106 // ---- VK_FUCHSIA_imagepipe_surface extension commands
13107 #if defined(VK_USE_PLATFORM_FUCHSIA)
13108 .CreateImagePipeSurfaceFUCHSIA = terminator_CreateImagePipeSurfaceFUCHSIA,
13109 #endif // VK_USE_PLATFORM_FUCHSIA
13110
13111 // ---- VK_EXT_metal_surface extension commands
13112 #if defined(VK_USE_PLATFORM_METAL_EXT)
13113 .CreateMetalSurfaceEXT = terminator_CreateMetalSurfaceEXT,
13114 #endif // VK_USE_PLATFORM_METAL_EXT
13115
13116 // ---- VK_EXT_tooling_info extension commands
13117 .GetPhysicalDeviceToolPropertiesEXT = terminator_GetPhysicalDeviceToolPropertiesEXT,
13118
13119 // ---- VK_NV_cooperative_matrix extension commands
13120 .GetPhysicalDeviceCooperativeMatrixPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixPropertiesNV,
13121
13122 // ---- VK_NV_coverage_reduction_mode extension commands
13123 .GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = terminator_GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
13124
13125 // ---- VK_EXT_full_screen_exclusive extension commands
13126 #if defined(VK_USE_PLATFORM_WIN32_KHR)
13127 .GetPhysicalDeviceSurfacePresentModes2EXT = terminator_GetPhysicalDeviceSurfacePresentModes2EXT,
13128 #endif // VK_USE_PLATFORM_WIN32_KHR
13129
13130 // ---- VK_EXT_headless_surface extension commands
13131 .CreateHeadlessSurfaceEXT = terminator_CreateHeadlessSurfaceEXT,
13132
13133 // ---- VK_EXT_acquire_drm_display extension commands
13134 .AcquireDrmDisplayEXT = terminator_AcquireDrmDisplayEXT,
13135 .GetDrmDisplayEXT = terminator_GetDrmDisplayEXT,
13136
13137 // ---- VK_NV_acquire_winrt_display extension commands
13138 #if defined(VK_USE_PLATFORM_WIN32_KHR)
13139 .AcquireWinrtDisplayNV = terminator_AcquireWinrtDisplayNV,
13140 #endif // VK_USE_PLATFORM_WIN32_KHR
13141 #if defined(VK_USE_PLATFORM_WIN32_KHR)
13142 .GetWinrtDisplayNV = terminator_GetWinrtDisplayNV,
13143 #endif // VK_USE_PLATFORM_WIN32_KHR
13144
13145 // ---- VK_EXT_directfb_surface extension commands
13146 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
13147 .CreateDirectFBSurfaceEXT = terminator_CreateDirectFBSurfaceEXT,
13148 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
13149 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
13150 .GetPhysicalDeviceDirectFBPresentationSupportEXT = terminator_GetPhysicalDeviceDirectFBPresentationSupportEXT,
13151 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
13152
13153 // ---- VK_QNX_screen_surface extension commands
13154 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
13155 .CreateScreenSurfaceQNX = terminator_CreateScreenSurfaceQNX,
13156 #endif // VK_USE_PLATFORM_SCREEN_QNX
13157 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
13158 .GetPhysicalDeviceScreenPresentationSupportQNX = terminator_GetPhysicalDeviceScreenPresentationSupportQNX,
13159 #endif // VK_USE_PLATFORM_SCREEN_QNX
13160
13161 // ---- VK_NV_optical_flow extension commands
13162 .GetPhysicalDeviceOpticalFlowImageFormatsNV = terminator_GetPhysicalDeviceOpticalFlowImageFormatsNV,
13163
13164 #if defined(VK_USE_PLATFORM_OHOS)
13165 .CreateSurfaceOHOS = terminator_CreateSurfaceOHOS,
13166 #endif // VK_USE_PLATFORM_OHOS
13167
13168 // ---- VK_NV_cooperative_vector extension commands
13169 .GetPhysicalDeviceCooperativeVectorPropertiesNV = terminator_GetPhysicalDeviceCooperativeVectorPropertiesNV,
13170
13171 // ---- VK_NV_cooperative_matrix2 extension commands
13172 .GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = terminator_GetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV,
13173 };
13174
13175 // A null-terminated list of all of the instance extensions supported by the loader.
13176 // If an instance extension name is not in this list, but it is exported by one or more of the
13177 // ICDs detected by the loader, then the extension name not in the list will be filtered out
13178 // before passing the list of extensions to the application.
13179 const char *const LOADER_INSTANCE_EXTENSIONS[] = {
13180 VK_KHR_SURFACE_EXTENSION_NAME,
13181 VK_KHR_DISPLAY_EXTENSION_NAME,
13182 #if defined(VK_USE_PLATFORM_XLIB_KHR)
13183 VK_KHR_XLIB_SURFACE_EXTENSION_NAME,
13184 #endif // VK_USE_PLATFORM_XLIB_KHR
13185 #if defined(VK_USE_PLATFORM_XCB_KHR)
13186 VK_KHR_XCB_SURFACE_EXTENSION_NAME,
13187 #endif // VK_USE_PLATFORM_XCB_KHR
13188 #if defined(VK_USE_PLATFORM_WAYLAND_KHR)
13189 VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
13190 #endif // VK_USE_PLATFORM_WAYLAND_KHR
13191 #if defined(VK_USE_PLATFORM_WIN32_KHR)
13192 VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
13193 #endif // VK_USE_PLATFORM_WIN32_KHR
13194 VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME,
13195 VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME,
13196 VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
13197 VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME,
13198 VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME,
13199 VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME,
13200 VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME,
13201 VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME,
13202 VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME,
13203 VK_EXT_DEBUG_REPORT_EXTENSION_NAME,
13204 #if defined(VK_USE_PLATFORM_GGP)
13205 VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME,
13206 #endif // VK_USE_PLATFORM_GGP
13207 VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME,
13208 VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME,
13209 #if defined(VK_USE_PLATFORM_VI_NN)
13210 VK_NN_VI_SURFACE_EXTENSION_NAME,
13211 #endif // VK_USE_PLATFORM_VI_NN
13212 VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME,
13213 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
13214 VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME,
13215 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
13216 VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME,
13217 VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME,
13218 #if defined(VK_USE_PLATFORM_IOS_MVK)
13219 VK_MVK_IOS_SURFACE_EXTENSION_NAME,
13220 #endif // VK_USE_PLATFORM_IOS_MVK
13221 #if defined(VK_USE_PLATFORM_MACOS_MVK)
13222 VK_MVK_MACOS_SURFACE_EXTENSION_NAME,
13223 #endif // VK_USE_PLATFORM_MACOS_MVK
13224 VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
13225 #if defined(VK_USE_PLATFORM_FUCHSIA)
13226 VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME,
13227 #endif // VK_USE_PLATFORM_FUCHSIA
13228 #if defined(VK_USE_PLATFORM_METAL_EXT)
13229 VK_EXT_METAL_SURFACE_EXTENSION_NAME,
13230 #endif // VK_USE_PLATFORM_METAL_EXT
13231 VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME,
13232 VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME,
13233 VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME,
13234 VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME,
13235 #if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
13236 VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME,
13237 #endif // VK_USE_PLATFORM_DIRECTFB_EXT
13238 #if defined(VK_USE_PLATFORM_SCREEN_QNX)
13239 VK_QNX_SCREEN_SURFACE_EXTENSION_NAME,
13240 #endif // VK_USE_PLATFORM_SCREEN_QNX
13241 VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME,
13242 VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME,
13243 VK_EXT_LAYER_SETTINGS_EXTENSION_NAME,
13244 VK_NV_DISPLAY_STEREO_EXTENSION_NAME,
13245 #if defined(VK_USE_PLATFORM_OHOS)
13246 VK_OHOS_SURFACE_EXTENSION_NAME,
13247 #endif // VK_USE_PLATFORM_OHOS
13248 NULL };
13249 // clang-format on
13250