From 6ebf2d6f32459a0ce1559bce28dce71b3c3c1e9b Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Mon, 9 Mar 2026 14:20:30 +0100 Subject: [PATCH] meson: Add support for buidling zink + Turnip/KGSL Rename the 'hurd' dri_platform to 'pseudo-drm' to represent non-DRM presentation platforms. This platform is now also enabled when building zink and Turnip with the KGSL backend, allowing zink to use Kopper. Acked-by: Emma Anholt Reviewed-by: Eric Engestrom Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8634 Signed-off-by: Valentine Burley Part-of: --- meson.build | 18 +++++++++--------- src/egl/meson.build | 2 +- src/gallium/auxiliary/meson.build | 2 +- src/gallium/frontends/dri/meson.build | 2 +- src/glx/meson.build | 2 +- src/x11/meson.build | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/meson.build b/meson.build index 5eaae977f67..055d30a46b5 100644 --- a/meson.build +++ b/meson.build @@ -352,7 +352,7 @@ with_vdrm = [ ].contains(true) with_dri = false -if with_gallium and system_has_kms_drm +if with_gallium and (system_has_kms_drm or (freedreno_kmds.contains('kgsl') and with_gallium_zink)) _glx = get_option('glx') _egl = get_option('egl') if _glx == 'dri' or _egl.enabled() or (_glx == 'disabled' and _egl.allowed()) @@ -413,8 +413,8 @@ elif ['windows', 'cygwin'].contains(host_machine.system()) with_dri_platform = 'windows' elif system_has_kms_drm with_dri_platform = 'drm' -elif host_machine.system() == 'gnu' - with_dri_platform = 'hurd' +elif host_machine.system() == 'gnu' or (freedreno_kmds.contains('kgsl') and with_gallium_zink) + with_dri_platform = 'pseudo-drm' else # FIXME: haiku doesn't use dri, and xlib doesn't use dri, probably should # assert here that one of those cases has been met. @@ -538,7 +538,7 @@ with_gbm = get_option('gbm') \ .allowed() with_xlib_lease = get_option('xlib-lease') \ - .require(with_platform_x11 and (system_has_kms_drm or with_dri_platform == 'apple' or with_dri_platform == 'hurd'), error_message : 'xlib-lease requires X11 and KMS/DRM support') \ + .require(with_platform_x11 and (system_has_kms_drm or with_dri_platform == 'apple' or with_dri_platform == 'pseudo-drm'), error_message : 'xlib-lease requires X11 and KMS/DRM support') \ .allowed() with_egl = get_option('egl') \ @@ -657,7 +657,7 @@ if with_vulkan_icd_dir == '' with_vulkan_icd_dir = join_paths(get_option('datadir'), 'vulkan/icd.d') endif -with_dri2 = (with_dri or with_any_vk) and (with_dri_platform == 'drm' or with_dri_platform == 'apple' or with_dri_platform == 'hurd') +with_dri2 = (with_dri or with_any_vk) and (with_dri_platform == 'drm' or with_dri_platform == 'apple' or with_dri_platform == 'pseudo-drm') if with_dri if with_glx == 'disabled' and not with_egl and not with_gbm @@ -2226,7 +2226,7 @@ if with_platform_x11 error('libdrm required for gallium video statetrackers when using x11') endif endif - if with_dri_platform == 'drm' or with_dri_platform == 'hurd' + if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' dep_xcb_dri3 = dependency('xcb-dri3', version : dep_xcb_dri3_version) dep_xcb_present = dependency('xcb-present', version : dep_xcb_present_version) if (dep_xcb_dri3.version().version_compare('>= 1.17') and @@ -2242,7 +2242,7 @@ if with_platform_x11 dep_glproto = dependency('glproto', version : dep_glproto_version) endif if with_glx == 'dri' - if with_dri_platform == 'drm' or with_dri_platform == 'hurd' + if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' if with_glx_direct dep_xxf86vm = dependency('xxf86vm') endif @@ -2352,7 +2352,7 @@ elif with_glx == 'dri' gl_priv_reqs += [ 'x11', 'xext', 'xfixes', 'x11-xcb', 'xcb', 'xcb-glx >= 1.8.1'] - if with_dri_platform == 'drm' or with_dri_platform == 'hurd' + if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' gl_priv_reqs += 'xcb-dri2 >= 1.8' if with_glx_direct gl_priv_reqs += 'xxf86vm' @@ -2486,7 +2486,7 @@ if with_egl if with_dri egl_drivers += 'builtin:egl_dri2' endif - if with_dri_platform == 'drm' or with_dri_platform == 'hurd' + if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' egl_drivers += 'builtin:egl_dri3' endif if with_platform_windows diff --git a/src/egl/meson.build b/src/egl/meson.build index acd277fa5e9..16809846236 100644 --- a/src/egl/meson.build +++ b/src/egl/meson.build @@ -108,7 +108,7 @@ if with_dri files_egl += files('drivers/dri2/platform_x11.c') incs_for_egl += inc_loader_x11 link_for_egl += libloader_x11 - if with_dri_platform == 'drm' or with_dri_platform == 'hurd' + if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' files_egl += files('drivers/dri2/platform_x11_dri3.c') endif deps_for_egl += [dep_x11_xcb, dep_xcb_xrandr, dep_xcb_xfixes, dep_xcb_shm] diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build index c3a22c2dd1e..98fd46670f2 100644 --- a/src/gallium/auxiliary/meson.build +++ b/src/gallium/auxiliary/meson.build @@ -420,7 +420,7 @@ endif if with_platform_x11 files_libgalliumvlwinsys += files('vl/vl_winsys_dri.c') links_libgalliumvlwinsys += libloader_x11 - if with_dri_platform == 'drm' or with_dri_platform == 'hurd' + if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' vlwinsys_deps += [ dep_xcb_sync, dep_xcb_present, dep_xshmfence, dep_xcb_xfixes, dep_xcb_dri3, diff --git a/src/gallium/frontends/dri/meson.build b/src/gallium/frontends/dri/meson.build index 38d8db52e30..56611820149 100644 --- a/src/gallium/frontends/dri/meson.build +++ b/src/gallium/frontends/dri/meson.build @@ -21,7 +21,7 @@ files_libdri = files( if with_platform_x11 deps_for_libdri += dep_xcb - if with_dri_platform == 'drm' or with_dri_platform == 'hurd' + if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' deps_for_libdri += [dep_xcb_dri3, dep_xcb_present, dep_xcb_sync, dep_xshmfence, dep_xcb_xfixes] files_libdri += files('loader_dri3_helper.c') diff --git a/src/glx/meson.build b/src/glx/meson.build index 42c58eed40a..914a800fafd 100644 --- a/src/glx/meson.build +++ b/src/glx/meson.build @@ -58,7 +58,7 @@ extra_libs_libglx = [] extra_deps_libgl = [] extra_ld_args_libgl = [] -if with_dri_platform == 'drm' or with_dri_platform == 'hurd' +if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' files_libglx += files('dri3_glx.c', 'dri3_priv.h') endif diff --git a/src/x11/meson.build b/src/x11/meson.build index 44a5578e772..5955a293dde 100644 --- a/src/x11/meson.build +++ b/src/x11/meson.build @@ -7,7 +7,7 @@ loader_x11_files = files( 'x11_display.c', ) -if with_dri_platform == 'drm' or with_dri_platform == 'hurd' +if with_dri_platform == 'drm' or with_dri_platform == 'pseudo-drm' loader_x11_files += files('x11_dri3.c') endif