22// See loader_extension_generator.py for modifications
33
44/*
5- * Copyright (c) 2015-2022 The Khronos Group Inc.
6- * Copyright (c) 2015-2022 Valve Corporation
7- * Copyright (c) 2015-2022 LunarG, Inc.
5+ * Copyright (c) 2015-2025 The Khronos Group Inc.
6+ * Copyright (c) 2015-2025 Valve Corporation
7+ * Copyright (c) 2015-2025 LunarG, Inc.
88 * Copyright (c) 2021-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
99 * Copyright (c) 2023-2023 RasterGrid Kft.
1010 *
2222 *
2323 * Author: Mark Lobodzinski <
[email protected] >
2424 * Author: Mark Young <
[email protected] >
25+ * Author: Charles Giessen <
[email protected] >
2526 */
2627
2728// clang-format off
@@ -896,7 +897,11 @@ VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct lo
896897 table->CmdCopyAccelerationStructureNV = (PFN_vkCmdCopyAccelerationStructureNV)gdpa(dev, "vkCmdCopyAccelerationStructureNV");
897898 table->CmdTraceRaysNV = (PFN_vkCmdTraceRaysNV)gdpa(dev, "vkCmdTraceRaysNV");
898899 table->CreateRayTracingPipelinesNV = (PFN_vkCreateRayTracingPipelinesNV)gdpa(dev, "vkCreateRayTracingPipelinesNV");
900+
901+ // ---- VK_KHR_ray_tracing_pipeline extension commands
899902 table->GetRayTracingShaderGroupHandlesKHR = (PFN_vkGetRayTracingShaderGroupHandlesKHR)gdpa(dev, "vkGetRayTracingShaderGroupHandlesKHR");
903+
904+ // ---- VK_NV_ray_tracing extension commands
900905 table->GetRayTracingShaderGroupHandlesNV = (PFN_vkGetRayTracingShaderGroupHandlesNV)gdpa(dev, "vkGetRayTracingShaderGroupHandlesNV");
901906 table->GetAccelerationStructureHandleNV = (PFN_vkGetAccelerationStructureHandleNV)gdpa(dev, "vkGetAccelerationStructureHandleNV");
902907 table->CmdWriteAccelerationStructuresPropertiesNV = (PFN_vkCmdWriteAccelerationStructuresPropertiesNV)gdpa(dev, "vkCmdWriteAccelerationStructuresPropertiesNV");
@@ -1540,19 +1545,23 @@ VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayer
15401545void init_extension_device_proc_terminator_dispatch(struct loader_device *dev) {
15411546 struct loader_device_terminator_dispatch* dispatch = &dev->loader_dispatch.extension_terminator_dispatch;
15421547 PFN_vkGetDeviceProcAddr gpda = (PFN_vkGetDeviceProcAddr)dev->phys_dev_term->this_icd_term->dispatch.GetDeviceProcAddr;
1548+
15431549 // ---- VK_KHR_swapchain extension commands
15441550 if (dev->driver_extensions.khr_swapchain_enabled)
15451551 dispatch->CreateSwapchainKHR = (PFN_vkCreateSwapchainKHR)gpda(dev->icd_device, "vkCreateSwapchainKHR");
15461552 if (dev->driver_extensions.khr_swapchain_enabled)
15471553 dispatch->GetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModesKHR");
1554+
15481555 // ---- VK_KHR_display_swapchain extension commands
15491556 if (dev->driver_extensions.khr_display_swapchain_enabled)
15501557 dispatch->CreateSharedSwapchainsKHR = (PFN_vkCreateSharedSwapchainsKHR)gpda(dev->icd_device, "vkCreateSharedSwapchainsKHR");
1558+
15511559 // ---- VK_EXT_debug_marker extension commands
15521560 if (dev->driver_extensions.ext_debug_marker_enabled)
15531561 dispatch->DebugMarkerSetObjectTagEXT = (PFN_vkDebugMarkerSetObjectTagEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectTagEXT");
15541562 if (dev->driver_extensions.ext_debug_marker_enabled)
15551563 dispatch->DebugMarkerSetObjectNameEXT = (PFN_vkDebugMarkerSetObjectNameEXT)gpda(dev->icd_device, "vkDebugMarkerSetObjectNameEXT");
1564+
15561565 // ---- VK_EXT_debug_utils extension commands
15571566 if (dev->driver_extensions.ext_debug_utils_enabled)
15581567 dispatch->SetDebugUtilsObjectNameEXT = (PFN_vkSetDebugUtilsObjectNameEXT)gpda(dev->icd_device, "vkSetDebugUtilsObjectNameEXT");
@@ -1571,6 +1580,7 @@ void init_extension_device_proc_terminator_dispatch(struct loader_device *dev) {
15711580 if (dev->driver_extensions.ext_debug_utils_enabled)
15721581 dispatch->CmdInsertDebugUtilsLabelEXT = (PFN_vkCmdInsertDebugUtilsLabelEXT)gpda(dev->icd_device, "vkCmdInsertDebugUtilsLabelEXT");
15731582#if defined(VK_USE_PLATFORM_WIN32_KHR)
1583+
15741584 // ---- VK_EXT_full_screen_exclusive extension commands
15751585 if (dev->driver_extensions.ext_full_screen_exclusive_enabled && (dev->driver_extensions.khr_device_group_enabled || dev->driver_extensions.version_1_1_enabled))
15761586 dispatch->GetDeviceGroupSurfacePresentModes2EXT = (PFN_vkGetDeviceGroupSurfacePresentModes2EXT)gpda(dev->icd_device, "vkGetDeviceGroupSurfacePresentModes2EXT");
@@ -1579,13 +1589,15 @@ void init_extension_device_proc_terminator_dispatch(struct loader_device *dev) {
15791589
15801590// These are prototypes for functions that need their trampoline called in all circumstances.
15811591// They are used in loader_lookup_device_dispatch_table but are defined afterwards.
1592+
15821593 // ---- VK_EXT_debug_marker extension commands
15831594VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectTagEXT(
15841595 VkDevice device,
15851596 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
15861597VKAPI_ATTR VkResult VKAPI_CALL DebugMarkerSetObjectNameEXT(
15871598 VkDevice device,
15881599 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
1600+
15891601 // ---- VK_EXT_debug_utils extension commands
15901602VKAPI_ATTR VkResult VKAPI_CALL SetDebugUtilsObjectNameEXT(
15911603 VkDevice device,
@@ -2778,7 +2790,11 @@ VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDis
27782790 if (!strcmp(name, "CmdCopyAccelerationStructureNV")) return (void *)table->CmdCopyAccelerationStructureNV;
27792791 if (!strcmp(name, "CmdTraceRaysNV")) return (void *)table->CmdTraceRaysNV;
27802792 if (!strcmp(name, "CreateRayTracingPipelinesNV")) return (void *)table->CreateRayTracingPipelinesNV;
2793+
2794+ // ---- VK_KHR_ray_tracing_pipeline extension commands
27812795 if (!strcmp(name, "GetRayTracingShaderGroupHandlesKHR")) return (void *)table->GetRayTracingShaderGroupHandlesKHR;
2796+
2797+ // ---- VK_NV_ray_tracing extension commands
27822798 if (!strcmp(name, "GetRayTracingShaderGroupHandlesNV")) return (void *)table->GetRayTracingShaderGroupHandlesNV;
27832799 if (!strcmp(name, "GetAccelerationStructureHandleNV")) return (void *)table->GetAccelerationStructureHandleNV;
27842800 if (!strcmp(name, "CmdWriteAccelerationStructuresPropertiesNV")) return (void *)table->CmdWriteAccelerationStructuresPropertiesNV;
@@ -6709,6 +6725,9 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesNV(
67096725 return disp->CreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
67106726}
67116727
6728+
6729+ // ---- VK_KHR_ray_tracing_pipeline extension trampoline/terminators
6730+
67126731VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR(
67136732 VkDevice device,
67146733 VkPipeline pipeline,
@@ -6726,6 +6745,9 @@ VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesKHR(
67266745 return disp->GetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
67276746}
67286747
6748+
6749+ // ---- VK_NV_ray_tracing extension trampoline/terminators
6750+
67296751VKAPI_ATTR VkResult VKAPI_CALL GetRayTracingShaderGroupHandlesNV(
67306752 VkDevice device,
67316753 VkPipeline pipeline,
@@ -11463,10 +11485,14 @@ bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *na
1146311485 *addr = (void *)CreateRayTracingPipelinesNV;
1146411486 return true;
1146511487 }
11488+
11489+ // ---- VK_KHR_ray_tracing_pipeline extension commands
1146611490 if (!strcmp("vkGetRayTracingShaderGroupHandlesKHR", name)) {
1146711491 *addr = (void *)GetRayTracingShaderGroupHandlesKHR;
1146811492 return true;
1146911493 }
11494+
11495+ // ---- VK_NV_ray_tracing extension commands
1147011496 if (!strcmp("vkGetRayTracingShaderGroupHandlesNV", name)) {
1147111497 *addr = (void *)GetRayTracingShaderGroupHandlesNV;
1147211498 return true;
@@ -13002,6 +13028,9 @@ const char *const LOADER_INSTANCE_EXTENSIONS[] = {
1300213028#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
1300313029 VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME,
1300413030#endif // VK_USE_PLATFORM_WAYLAND_KHR
13031+ #if defined(VK_USE_PLATFORM_ANDROID_KHR)
13032+ VK_KHR_ANDROID_SURFACE_EXTENSION_NAME,
13033+ #endif // VK_USE_PLATFORM_ANDROID_KHR
1300513034#if defined(VK_USE_PLATFORM_WIN32_KHR)
1300613035 VK_KHR_WIN32_SURFACE_EXTENSION_NAME,
1300713036#endif // VK_USE_PLATFORM_WIN32_KHR
0 commit comments