diff --git a/ggml-vulkan.cpp b/ggml-vulkan.cpp index 14fb89e096f25..94c973458a76e 100644 --- a/ggml-vulkan.cpp +++ b/ggml-vulkan.cpp @@ -977,9 +977,15 @@ void ggml_vk_init() { const std::vector extensions = { #ifdef GGML_VULKAN_VALIDATE "VK_EXT_validation_features", +#endif +#ifdef __APPLE__ + "VK_KHR_portability_enumeration", #endif }; vk::InstanceCreateInfo instance_create_info(vk::InstanceCreateFlags(), &app_info, layers, extensions); +#ifdef __APPLE__ + instance_create_info.flags = vk::InstanceCreateFlagBits::eEnumeratePortabilityKHR; +#endif #ifdef GGML_VULKAN_VALIDATE const std::vector features_enable = { vk::ValidationFeatureEnableEXT::eBestPractices }; vk::ValidationFeaturesEXT validation_features = { diff --git a/ggml.c b/ggml.c index ee994c8757d9d..d5cb10d18cf8a 100644 --- a/ggml.c +++ b/ggml.c @@ -270,6 +270,8 @@ inline static void * ggml_calloc(size_t num, size_t size) { #include #if defined(GGML_USE_CLBLAST) // allow usage of CLBlast alongside Accelerate functions #include "ggml-opencl.h" +#elif defined(GGML_USE_VULKAN) && __APPLE__ +#include "ggml-vulkan.h" #endif #elif defined(GGML_USE_OPENBLAS) #if defined(GGML_BLAS_USE_MKL)