From 787a254b06388fd4d51fa44c1dba22bce6d64da3 Mon Sep 17 00:00:00 2001 From: Eve <139727413+netrunnereve@users.noreply.github.com> Date: Mon, 29 Sep 2025 23:15:06 -0400 Subject: [PATCH 1/2] make ggml_vk_default_dispatcher support older vulkan headers --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 2608cbd06892c..5fc3560b89f40 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -9,8 +9,13 @@ #define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 // We use VULKAN_HPP_DEFAULT_DISPATCHER, but not VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE // to avoid conflicts with applications or other libraries who might use it. +#if VK_HEADER_VERSION >= 301 namespace vk::detail { class DispatchLoaderDynamic; } vk::detail::DispatchLoaderDynamic & ggml_vk_default_dispatcher(); +#else +namespace vk { class DispatchLoaderDynamic; } +vk::DispatchLoaderDynamic & ggml_vk_default_dispatcher(); +#endif #define VULKAN_HPP_DEFAULT_DISPATCHER ggml_vk_default_dispatcher() #include @@ -4538,9 +4543,13 @@ static bool ggml_vk_instance_portability_enumeration_ext_available(const std::ve static bool ggml_vk_instance_debug_utils_ext_available(const std::vector & instance_extensions); static bool ggml_vk_device_is_supported(const vk::PhysicalDevice & vkdev); +#if VK_HEADER_VERSION >= 301 static vk::detail::DispatchLoaderDynamic ggml_vk_default_dispatcher_instance; - vk::detail::DispatchLoaderDynamic & ggml_vk_default_dispatcher() { +#else +static vk::DispatchLoaderDynamic ggml_vk_default_dispatcher_instance; +vk::DispatchLoaderDynamic & ggml_vk_default_dispatcher() { +#endif return ggml_vk_default_dispatcher_instance; } From ee10ca387203fcc99002e755f25e18de525bc2f6 Mon Sep 17 00:00:00 2001 From: Eve <139727413+netrunnereve@users.noreply.github.com> Date: Tue, 30 Sep 2025 13:24:44 -0400 Subject: [PATCH 2/2] simpilfy with using --- ggml/src/ggml-vulkan/ggml-vulkan.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 5fc3560b89f40..003a9010674dd 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -11,11 +11,12 @@ // to avoid conflicts with applications or other libraries who might use it. #if VK_HEADER_VERSION >= 301 namespace vk::detail { class DispatchLoaderDynamic; } -vk::detail::DispatchLoaderDynamic & ggml_vk_default_dispatcher(); +using vk::detail::DispatchLoaderDynamic; #else namespace vk { class DispatchLoaderDynamic; } -vk::DispatchLoaderDynamic & ggml_vk_default_dispatcher(); +using vk::DispatchLoaderDynamic; #endif +DispatchLoaderDynamic & ggml_vk_default_dispatcher(); #define VULKAN_HPP_DEFAULT_DISPATCHER ggml_vk_default_dispatcher() #include @@ -4543,13 +4544,8 @@ static bool ggml_vk_instance_portability_enumeration_ext_available(const std::ve static bool ggml_vk_instance_debug_utils_ext_available(const std::vector & instance_extensions); static bool ggml_vk_device_is_supported(const vk::PhysicalDevice & vkdev); -#if VK_HEADER_VERSION >= 301 -static vk::detail::DispatchLoaderDynamic ggml_vk_default_dispatcher_instance; -vk::detail::DispatchLoaderDynamic & ggml_vk_default_dispatcher() { -#else -static vk::DispatchLoaderDynamic ggml_vk_default_dispatcher_instance; -vk::DispatchLoaderDynamic & ggml_vk_default_dispatcher() { -#endif +static DispatchLoaderDynamic ggml_vk_default_dispatcher_instance; +DispatchLoaderDynamic & ggml_vk_default_dispatcher() { return ggml_vk_default_dispatcher_instance; }