diff options
author | Hamish Arblaster <hamarb123@gmail.com> | 2021-12-19 00:10:11 +0000 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2021-12-29 03:21:35 +0000 |
commit | cafca76fa2c73f4b79bd0e99f077534e100d7826 (patch) | |
tree | 5592ccca30fc3214c8b502f6cadf76c3d2f2fb8e | |
parent | eca7b24e74d5b2804cbd607c109ec0fe5c71a025 (diff) |
zink: Fix building on macOS
This fixes building on macOS:
Disable ZINK_USE_DMABUF on macOS, it is unsupported.
Import vk_mvk_moltenvk.h for MVK_VERSION in zink_resource.c.
Add additional build arguments (see meson.build) to build properly.
To build on macOS, you will probably need to run:
brew install bison llvm cmake libxext xquartz ninja xorgproto meson
And you also need to setup meson with something like:
-Dmoltenvk-dir=/Users/<Username>/VulkanSDK/<VersionNumber>/MoltenVK
-Dc_std=c11
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14255>
-rw-r--r-- | meson.build | 9 | ||||
-rw-r--r-- | src/gallium/drivers/zink/zink_resource.c | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/meson.build b/meson.build index f23af107966..64d9a5cfabc 100644 --- a/meson.build +++ b/meson.build @@ -426,6 +426,15 @@ if system_has_kms_drm and not with_platform_android c_args += '-DVK_USE_PLATFORM_DISPLAY_KHR' cpp_args += '-DVK_USE_PLATFORM_DISPLAY_KHR' endif +if host_machine.system() == 'darwin' + c_args += '-DVK_USE_PLATFORM_MACOS_MVK' + cpp_args += '-DVK_USE_PLATFORM_MACOS_MVK' + c_args += '-DVK_USE_PLATFORM_METAL_EXT' + cpp_args += '-DVK_USE_PLATFORM_METAL_EXT' + #macOS seems to need beta extensions to build for now: + c_args += '-DVK_ENABLE_BETA_EXTENSIONS' + cpp_args += '-DVK_ENABLE_BETA_EXTENSIONS' +endif _egl = get_option('egl') if _egl == 'true' diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index 205d32c8fb5..5b1d439f843 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -45,7 +45,7 @@ #include "util/os_file.h" #include "frontend/sw_winsys.h" -#ifndef _WIN32 +#if !defined(_WIN32) && !defined(__APPLE__) #define ZINK_USE_DMABUF #endif @@ -58,6 +58,10 @@ #define DRM_FORMAT_MOD_LINEAR 0 #endif +#if defined(__APPLE__) +// Source of MVK_VERSION +#include "MoltenVK/vk_mvk_moltenvk.h" +#endif static bool equals_ivci(const void *a, const void *b) |