From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yann E. MORIN Date: Sat, 16 May 2020 10:20:28 +0200 Subject: [Buildroot] [PATCH 1/1] package/mesa3d: reorder platforms to fix EGL In-Reply-To: <20200513014928.1878147-1-joseph.kogut@gmail.com> References: <20200513014928.1878147-1-joseph.kogut@gmail.com> Message-ID: <20200516082028.GK12536@scaer> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Joseph, All, On 2020-05-12 18:49 -0700, Joseph Kogut spake thusly: > 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 I hesitated between master and next, but this can be considered a runtime fix, so I applied to master, thanks. Regards, Yann E. MORIN. > --- > > 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 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'