From: Joseph Kogut <joseph.kogut@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] package/mesa3d: reorder platforms to fix EGL
Date: Tue, 12 May 2020 18:49:28 -0700 [thread overview]
Message-ID: <20200513014928.1878147-1-joseph.kogut@gmail.com> (raw)
Mesa chooses the first platform specified in -Dplatforms as the default
EGL native platform. [0]
Configure Options
-D platforms=...
List the platforms (window systems) to support. Its argument is
a comma separated string such as -D platforms=x11,drm. It
decides the platforms a driver may support. The first listed
platform is also used by the main library to decide the native
platform.
This has the effect of breaking EGL applications running on X11 and
possibly Wayland when the first platform specified isn't x11 or wayland,
and EGL_PLATFORM isn't set.
Reorder the specified platforms to use x11, wayland, and drm before
surfaceless, as this is the order chosen by other common distributions,
such as Arch Linux [1], Debian [2], and Fedora [3].
Users preferring drm or surfaceless over x11 or wayland likely know how
to override the native EGL platform, and likely have x11 and wayland
disabled anyway.
[0] https://www.mesa3d.org/egl.html
[1] https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/mesa#n45
[2] https://salsa.debian.org/xorg-team/lib/mesa/-/blob/fb8c1efb57ea8106525ed01c41218164f8be7f3b/debian/rules#L38
[3] https://src.fedoraproject.org/rpms/mesa/blob/master/f/mesa.spec#_337
Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com>
---
This is a follow up to a previous email I sent the mailing list [0] about
broken EGL apps when using mesa3d with x11.
I discovered the cause of this issue is the ordering of platforms when
building mesa3d, making surfaceless the default native platform.
I suggested adding a config to specify the default native platform, but
after further review, I believe that simply reordering the enabled
platforms should be adequate.
[0] http://buildroot-busybox.2317881.n4.nabble.com/mesa3d-builds-with-ES2-report-no-ES2-enabled-EGL-configs-td255778.html
package/mesa3d/mesa3d.mk | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index 531dcf5b81..394428c053 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -167,7 +167,22 @@ endef
MESA3D_POST_INSTALL_STAGING_HOOKS += MESA3D_REMOVE_OPENGL_HEADERS
endif
-MESA3D_PLATFORMS = surfaceless
+ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_X11),y)
+MESA3D_DEPENDENCIES += \
+ xlib_libX11 \
+ xlib_libXext \
+ xlib_libXdamage \
+ xlib_libXfixes \
+ xlib_libXrandr \
+ xlib_libXxf86vm \
+ xorgproto \
+ libxcb
+MESA3D_PLATFORMS += x11
+endif
+ifeq ($(BR2_PACKAGE_WAYLAND),y)
+MESA3D_DEPENDENCIES += wayland wayland-protocols
+MESA3D_PLATFORMS += wayland
+endif
ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),y)
MESA3D_PLATFORMS += drm
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D),y)
@@ -189,22 +204,7 @@ MESA3D_PLATFORMS += drm
else ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI),y)
MESA3D_PLATFORMS += drm
endif
-ifeq ($(BR2_PACKAGE_WAYLAND),y)
-MESA3D_DEPENDENCIES += wayland wayland-protocols
-MESA3D_PLATFORMS += wayland
-endif
-ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_X11),y)
-MESA3D_DEPENDENCIES += \
- xlib_libX11 \
- xlib_libXext \
- xlib_libXdamage \
- xlib_libXfixes \
- xlib_libXrandr \
- xlib_libXxf86vm \
- xorgproto \
- libxcb
-MESA3D_PLATFORMS += x11
-endif
+MESA3D_PLATFORMS += surfaceless
MESA3D_CONF_OPTS += \
-Dplatforms=$(subst $(space),$(comma),$(MESA3D_PLATFORMS))
--
2.26.2
next reply other threads:[~2020-05-13 1:49 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-13 1:49 Joseph Kogut [this message]
2020-05-16 8:20 ` [Buildroot] [PATCH 1/1] package/mesa3d: reorder platforms to fix EGL Yann E. MORIN
2020-05-26 9:21 ` Peter Korsgaard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200513014928.1878147-1-joseph.kogut@gmail.com \
--to=joseph.kogut@gmail.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox