|  | 
| 7 | 7 | 
 | 
| 8 | 8 | // See https://github.com/KhronosGroup/Vulkan-Hpp?tab=readme-ov-file#extensions--per-device-function-pointers- | 
| 9 | 9 | #define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 | 
|  | 10 | +// We use VULKAN_HPP_DEFAULT_DISPATCHER, but not VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE | 
|  | 11 | +// to avoid conflicts with applications or other libraries who might use it. | 
|  | 12 | +namespace vk::detail { class DispatchLoaderDynamic; } | 
|  | 13 | +vk::detail::DispatchLoaderDynamic & ggml_vk_default_dispatcher(); | 
|  | 14 | +#define VULKAN_HPP_DEFAULT_DISPATCHER ggml_vk_default_dispatcher() | 
| 10 | 15 | 
 | 
| 11 | 16 | #include <vulkan/vulkan.hpp> | 
| 12 | 17 | 
 | 
| 13 |  | -// See https://github.com/KhronosGroup/Vulkan-Hpp?tab=readme-ov-file#extensions--per-device-function-pointers- | 
| 14 |  | -VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE | 
| 15 |  | - | 
| 16 | 18 | #include <algorithm> | 
| 17 | 19 | #include <cmath> | 
| 18 | 20 | #include <iomanip> | 
| @@ -4508,14 +4510,20 @@ static bool ggml_vk_instance_portability_enumeration_ext_available(const std::ve | 
| 4508 | 4510 | static bool ggml_vk_instance_debug_utils_ext_available(const std::vector<vk::ExtensionProperties> & instance_extensions); | 
| 4509 | 4511 | static bool ggml_vk_device_is_supported(const vk::PhysicalDevice & vkdev); | 
| 4510 | 4512 | 
 | 
|  | 4513 | +static vk::detail::DispatchLoaderDynamic ggml_vk_default_dispatcher_instance; | 
|  | 4514 | + | 
|  | 4515 | +vk::detail::DispatchLoaderDynamic & ggml_vk_default_dispatcher() { | 
|  | 4516 | +    return ggml_vk_default_dispatcher_instance; | 
|  | 4517 | +} | 
|  | 4518 | + | 
| 4511 | 4519 | static void ggml_vk_instance_init() { | 
| 4512 | 4520 |     if (vk_instance_initialized) { | 
| 4513 | 4521 |         return; | 
| 4514 | 4522 |     } | 
| 4515 | 4523 |     VK_LOG_DEBUG("ggml_vk_instance_init()"); | 
| 4516 | 4524 | 
 | 
| 4517 | 4525 |     // See https://github.com/KhronosGroup/Vulkan-Hpp?tab=readme-ov-file#extensions--per-device-function-pointers- | 
| 4518 |  | -    VULKAN_HPP_DEFAULT_DISPATCHER.init(vkGetInstanceProcAddr); | 
|  | 4526 | +    ggml_vk_default_dispatcher_instance.init(vkGetInstanceProcAddr); | 
| 4519 | 4527 | 
 | 
| 4520 | 4528 |     uint32_t api_version = vk::enumerateInstanceVersion(); | 
| 4521 | 4529 | 
 | 
|  | 
0 commit comments