diff --git a/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/ggml/src/ggml-vulkan/ggml-vulkan.cpp index 5587dfc28..740de5b5a 100644 --- a/ggml/src/ggml-vulkan/ggml-vulkan.cpp +++ b/ggml/src/ggml-vulkan/ggml-vulkan.cpp @@ -5189,10 +5189,16 @@ void ggml_vk_instance_init() { // See https://github.com/KhronosGroup/Vulkan-Hpp?tab=readme-ov-file#extensions--per-device-function-pointers- ggml_vk_default_dispatcher_instance.init(vkGetInstanceProcAddr); + // vkEnumerateInstanceVersion is Vulkan 1.1. A null value indicated Vulkan 1.0. + if (ggml_vk_default_dispatcher_instance.vkEnumerateInstanceVersion == nullptr) { + GGML_LOG_ERROR("ggml_vulkan: Error: Vulkan 1.2 required."); + throw vk::SystemError(vk::Result::eErrorFeatureNotPresent, "Vulkan 1.2 required"); + } + uint32_t api_version = vk::enumerateInstanceVersion(); if (api_version < VK_API_VERSION_1_2) { - std::cerr << "ggml_vulkan: Error: Vulkan 1.2 required." << std::endl; + GGML_LOG_ERROR("ggml_vulkan: Error: Vulkan 1.2 required."); throw vk::SystemError(vk::Result::eErrorFeatureNotPresent, "Vulkan 1.2 required"); }