diff --git a/src/gallium/drivers/zink/meson.build b/src/gallium/drivers/zink/meson.build index 831ccaae88c..8b66bbe08e0 100644 --- a/src/gallium/drivers/zink/meson.build +++ b/src/gallium/drivers/zink/meson.build @@ -81,7 +81,15 @@ if host_machine.system() == 'darwin' # MoltenVK options if with_moltenvk_dir != '' - inc_zink_vk += include_directories(join_paths(with_moltenvk_dir, 'include')) + fs = import('fs') + moltenvk_includes = join_paths(with_moltenvk_dir, 'MoltenVK', 'include') + if not fs.is_dir(moltenvk_includes) + moltenvk_includes = join_paths(with_moltenvk_dir, 'macos', 'include') + if not fs.is_dir(moltenvk_includes) + error(f'moltenvk includes cannot be found in moltenvk-dir="@with_moltenvk_dir@"') + endif + endif + inc_zink_vk += include_directories(moltenvk_includes) else error('moltenvk-dir is required but not set.') endif diff --git a/src/gallium/drivers/zink/zink_instance.py b/src/gallium/drivers/zink/zink_instance.py index 0fbd14e5a58..6b657931bf7 100644 --- a/src/gallium/drivers/zink/zink_instance.py +++ b/src/gallium/drivers/zink/zink_instance.py @@ -72,10 +72,11 @@ header_code = """ #include -#if defined(__APPLE__) +#ifdef __APPLE__ +#include "MoltenVK/mvk_vulkan.h" // Source of MVK_VERSION -#include "MoltenVK/vk_mvk_moltenvk.h" -#endif +#include "MoltenVK/mvk_config.h" +#endif /* __APPLE__ */ struct pipe_screen; struct zink_screen; diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 293a653fef4..dbe7bf76c70 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -59,10 +59,11 @@ #define DRM_FORMAT_MOD_LINEAR 0 #endif -#if defined(__APPLE__) +#ifdef __APPLE__ +#include "MoltenVK/mvk_vulkan.h" // Source of MVK_VERSION -#include "MoltenVK/vk_mvk_moltenvk.h" -#endif +#include "MoltenVK/mvk_config.h" +#endif /* __APPLE__ */ #define ZINK_EXTERNAL_MEMORY_HANDLE 999 diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 495c835d1c2..5ccd5647b48 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -80,10 +80,14 @@ bool zink_tracing = false; #endif #endif -#if defined(__APPLE__) +#ifdef __APPLE__ +#include "MoltenVK/mvk_vulkan.h" // Source of MVK_VERSION -#include "MoltenVK/vk_mvk_moltenvk.h" -#endif +#include "MoltenVK/mvk_config.h" +#define VK_NO_PROTOTYPES +#include "MoltenVK/mvk_deprecated_api.h" +#include "MoltenVK/mvk_private_api.h" +#endif /* __APPLE__ */ #ifdef HAVE_LIBDRM #include "drm-uapi/dma-buf.h"