From e00adef34a5ce485e2c9216a268ca05e89a5fc98 Mon Sep 17 00:00:00 2001 From: Eric Engestrom Date: Tue, 25 Jun 2019 15:44:16 +0100 Subject: [PATCH 1/1] egl: automatically compile the `drm` platform when available Signed-off-by: Eric Engestrom Reviewed-by: Emil Velikov Part-of: --- .gitlab-ci.yml | 8 ++++---- docs/egl.rst | 4 ++-- meson.build | 17 ++++++++++------- src/egl/meson.build | 2 +- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0247f057f01..dd80adb36d7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -520,7 +520,7 @@ meson-testing: -D glx=dri -D gbm=enabled -D egl=enabled - -D platforms=x11,drm + -D platforms=x11 GALLIUM_ST: > -D dri3=enabled GALLIUM_DRIVERS: "swrast,virgl" @@ -540,7 +540,7 @@ meson-gallium: -D glx=dri -D gbm=enabled -D egl=enabled - -D platforms=x11,wayland,drm + -D platforms=x11,wayland GALLIUM_ST: > -D dri3=enabled -D gallium-extra-hud=true @@ -705,7 +705,7 @@ meson-clover-old-llvm: -D glx=disabled -D egl=disabled -D gbm=disabled - -D platforms=drm + -D platforms=[] GALLIUM_DRIVERS: "i915,r600" script: - LLVM_VERSION=3.9 .gitlab-ci/meson-build.sh @@ -722,7 +722,7 @@ meson-vulkan: -D glx=disabled -D gbm=disabled -D egl=disabled - -D platforms=x11,wayland,drm + -D platforms=x11,wayland -D osmesa=none GALLIUM_ST: > -D dri3=enabled diff --git a/docs/egl.rst b/docs/egl.rst index b697be5880a..6072cd773c0 100644 --- a/docs/egl.rst +++ b/docs/egl.rst @@ -49,11 +49,11 @@ time ``-D platforms=...`` List the platforms (window systems) to support. Its argument is a - comma separated string such as ``-D platforms=x11,drm``. It decides + comma separated string such as ``-D platforms=x11,wayland``. It decides the platforms a driver may support. The first listed platform is also used by the main library to decide the native platform. - The available platforms are ``x11``, ``drm``, ``wayland``, + The available platforms are ``x11``, ``wayland``, ``android``, and ``haiku``. The ``android`` platform can either be built as a system component, part of AOSP, using ``Android.mk`` files, or cross-compiled using appropriate options. diff --git a/meson.build b/meson.build index c9b4e366ea3..faa267978bf 100644 --- a/meson.build +++ b/meson.build @@ -293,7 +293,7 @@ endif _platforms = get_option('platforms') if _platforms.contains('auto') if system_has_kms_drm - _platforms = ['x11', 'wayland', 'drm'] + _platforms = ['x11', 'wayland'] elif ['darwin', 'cygwin'].contains(host_machine.system()) _platforms = ['x11'] elif ['haiku'].contains(host_machine.system()) @@ -309,7 +309,6 @@ endif with_platform_android = _platforms.contains('android') with_platform_x11 = _platforms.contains('x11') with_platform_wayland = _platforms.contains('wayland') -with_platform_drm = _platforms.contains('drm') with_platform_haiku = _platforms.contains('haiku') with_platform_windows = _platforms.contains('windows') @@ -317,6 +316,10 @@ if _platforms.contains('surfaceless') warning('Platform `surfaceless` is now always selected; setting this option will be an error in Mesa 20.3') endif +if _platforms.contains('drm') + warning('Platform `drm` is now automatically selected; setting this option will be an error in Mesa 20.3') +endif + if _platforms.length() != 0 egl_native_platform = _platforms[0] else @@ -382,7 +385,7 @@ elif _xlib_lease == 'false' warning('xlib_lease option "false" deprecated, please use "disabled" instead.') endif if _xlib_lease == 'auto' - with_xlib_lease = with_platform_x11 and with_platform_drm + with_xlib_lease = with_platform_x11 and with_gbm else with_xlib_lease = _xlib_lease == 'enabled' endif @@ -822,10 +825,7 @@ else pre_args += '-DEGL_NO_X11' gl_pkgconfig_c_flags += '-DEGL_NO_X11' endif -if with_platform_drm - if with_egl and not with_gbm - error('EGL drm platform requires gbm') - endif +if with_gbm pre_args += '-DHAVE_DRM_PLATFORM' endif if with_platform_android @@ -1881,6 +1881,9 @@ endif lines += 'GBM: ' + (with_gbm ? 'yes' : 'no') if with_egl or with_any_vk _platforms += 'surfaceless' + if with_gbm + _platforms += 'drm' + endif lines += 'EGL/Vulkan/VL platforms: ' + ' '.join(_platforms) endif diff --git a/src/egl/meson.build b/src/egl/meson.build index 109e230144b..29d22b1cb20 100644 --- a/src/egl/meson.build +++ b/src/egl/meson.build @@ -108,7 +108,7 @@ if with_dri2 endif deps_for_egl += [dep_x11_xcb, dep_xcb_dri2, dep_xcb_xfixes] endif - if with_platform_drm + if with_gbm files_egl += files('drivers/dri2/platform_drm.c') link_for_egl += libgbm incs_for_egl += [inc_gbm, include_directories('../gbm/main')] -- 2.30.2