summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHamish Arblaster <hamarb123@gmail.com>2021-12-19 00:10:11 +0000
committerMarge Bot <emma+marge@anholt.net>2021-12-29 03:21:35 +0000
commitcafca76fa2c73f4b79bd0e99f077534e100d7826 (patch)
tree5592ccca30fc3214c8b502f6cadf76c3d2f2fb8e
parenteca7b24e74d5b2804cbd607c109ec0fe5c71a025 (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.build9
-rw-r--r--src/gallium/drivers/zink/zink_resource.c6
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)