Bugzilla – Full Text Bug Listing
|Summary:||GLX doesn't work with Mesa 13+|
|Product:||ThinLinc||Reporter:||Pierre Ossman <firstname.lastname@example.org>|
|Component:||VNC||Assignee:||Samuel Mannehed <email@example.com>|
|Status:||CLOSED FIXED||QA Contact:||Bugzilla mail exporter <firstname.lastname@example.org>|
* Systems with glvnd should explicitly use mesa OpenGL instead of the fallback OpenGL. * Systems without glvnd should still work.
|Bug Depends on:||5241|
GNOME Shell crash
GNOME Classic fallback mode
Cinnamon fallback mode
I upgraded my Fedora 25 workstation and GLX stopped working. Most likely because of the new glvnd stuff. Upstream reports: https://bugzilla.redhat.com/show_bug.cgi?id=1427174 https://bugs.freedesktop.org/show_bug.cgi?id=99987 GLX tools are very unhappy: > $ glxinfo > name of display: :2 > Error: couldn't find RGB GLX visual or fbconfig Xvnc doesn't show any errors though: > (II) AIGLX: Loaded and initialized swrast > (II) GLX: Initialized DRISWRAST GL provider for screen 0
A first step here is producing a platform specific note with some more information. It should include: - Which desktop environments that work, and which that don't - What can be done to work around the issue (currently only downgrade is a known option) After that we'll move this bug to PoolTodo for the investigation of the underlying issue.
An initial platform specific note has been added, so far with just the information to downgrade Mesa.
Tested with Mesa 13 on Fedora 25: - works: LXDE, XFCE - doesn't work: Cinnamon, GNOME 3, GNOME Classic
The following commands were enough to fix the issue on my Fedora 25 workstation: > sudo dnf downgrade mesa-libEGL --allowerasing > sudo dnf downgrade mesa-dri-drivers --allowerasing > sudo dnf downgrade mesa-libgbm > sudo dnf downgrade mesa-libwayland-egl > sudo dnf downgrade mesa-libxatracker
(In reply to comment #3) > - works: LXDE, XFCE This only means that I was able to login and get a session, there are several applications that are broken in this state. No gnome applications work for instance.
At the moment, Fedora 25 is the only stable release that has Mesa 13. However, it seems like it will be included in Ubuntu 17.04: http://packages.ubuntu.com/search?keywords=mesa&searchon=names&suite=zesty§ion=all
Fedora 25: In a LXDE ThinLinc session with Mesa 13, while you do get a desktop, there are many applications that still segfaults when trying to start them: ✗ any gnome application, firefox, evolution, emacs, shotwell, rhythmbox, pcmanfm (default file viewer) There are a few applications that work however: ✓ google-chrome, libreoffice, lxterminal, xterm, slack, tlclient (:P)
Furthermore, background image doesn't work in LXDE when running Mesa 13.
Fedora 25: In a XFCE ThinLinc session with Mesa 13, aside from applications that was noted to work/be broken above (for LXDE) I listed two more applications below. Segfauls: ✗ xfce4-terminal Works: ✓ thunar (default file viewer), claws-mail ---- All in all, there are options for all essential applications I could think of. While there are a lot of problems even on LXDE and XFCE, this makes it _possible_ to run a desktop if you are prepared to use different applications. This could be useful if someone for some reason can't downgrade to mesa 12.
The following command works to downgrade all necessary packages at once btw: sudo dnf downgrade --allowerasing mesa-*
The problem can be alleviated by upgrading libepoxy to 1.4.1. The bug in libepoxy caused applications to segfault if they couldn't access OpenGL. Many applications started initializing OpenGL even if they didn't need it, and due to this bug, they couldn't start. So, with this upgrade, we no longer get segmentation faults, but we still don't get OpenGL. Unfortunately, desktop environments like GNOME can't start without OpenGL, and crashes. GNOME classic and Cinnamon offers some sort of fallback mode that isn't particularly useful. LXDE and XFCE on the other hand work well, as long as you don't run any applications that actually need OpenGL, such as totem. The upgrade for libepoxy is not yet available in any repos, but it can be downloaded for Fedora 25 here: https://koji.fedoraproject.org/koji/buildinfo?buildID=866615
Created an attachment (id=779) [details] GNOME Shell crash Screenshot of what happens when trying to start a GNOME session after upgrading libepoxy to 1.4.1.
Created an attachment (id=780) [details] GNOME Classic fallback mode Screenshot of what happens when trying to start a GNOME classic session after upgrading libepoxy to 1.4.1.
Created an attachment (id=781) [details] Cinnamon fallback mode Screenshot of what happens when trying to start a Cinnamon session after upgrading libepoxy to 1.4.1.
KDE has the same problems as GNOME on Fedora 25, but it doesn't display any error message on the crash, it just stops at a blue empty screen. No obvious errors in xinit.log. Mate works just as well as LXDE and XFCE.
(In reply to comment #6) > it seems like it will be included in Ubuntu 17.04 I have installed an Ubuntu 17.04 machine, and even though mesa 13 is installed, OpenGL things work fine! Applications such as glxgears work well. The difference seems to be GLVND which is used on Fedora but not on Ubuntu. I have reported this on the freedesktop bug. I have added more information to the platform specific notes here: https://www.cendio.com/thinlinc/docs/platforms/redhat I consider the first step done. Move to PoolTodo after verification.
As discovered on the upstream report, Fedora's Xvnc seems to work fine. So this might be resolved with an upgrade of Mesa and/or Xorg in our build.
(In reply to comment #11) > The upgrade for libepoxy is not yet available in any repos Version 1.4.1 is now available from the normal fedora 25 updates repo.
(In reply to comment #17) > As discovered on the upstream report, Fedora's Xvnc seems to work fine. So this > might be resolved with an upgrade of Mesa and/or Xorg in our build. I did a test build using xorg-server 1.19.1, and that gets glxgears up and running. Upstream also mentions that GLVND might require a newer version of the GLX extension.
This solves/works around the issue: > sudo ln -s /usr/lib64/libGLX_mesa.so.0 /usr/lib64/libGLX_indirect.so.0 Discussion ongoing upstream exactly what this does and what the consequences are.
Found the code responsible for selecting the correct GL driver: https://github.com/NVIDIA/libglvnd/blob/470fc824a38521a52707c6c0f59d827aa5e0f45a/src/GLX/libglxmapping.c#L519-L600 It relies on a GLX extension that is only present in xorg-server 1.19 to function correctly. Otherwise it needs one of multiple fallbacks: - $__GLX_VENDOR_LIBRARY_NAME - Vendor name 'indirect' It sounds like Fedora is considering using the latter to get things working for older X servers, so we may just have to sit back and wait. We could also mention the symlink until then.
The complicating factor for this fallback symlink is that NVIDIA is also claiming dibs on it, for unclear reasons. Hence why it is not obvious how this will play out.
(In reply to comment #16) > (In reply to comment #6) > > it seems like it will be included in Ubuntu 17.04 > > I have installed an Ubuntu 17.04 machine, and even though mesa 13 is installed, > OpenGL things work fine! Applications such as glxgears work well. > > The difference seems to be GLVND which is used on Fedora but not on Ubuntu. I > have reported this on the freedesktop bug. > > I have added more information to the platform specific notes here: > > https://www.cendio.com/thinlinc/docs/platforms/redhat > > I consider the first step done. Move to PoolTodo after verification. The platform specific note looks fine for now.
Fedora has now pushed out the symlink workaround for Fedora 25 and Fedora 26. Works fine. Haven't tested what happens when you install the NVIDIA driver though.
Should be fixed now since we have upgraded Xorg in bug 5241. I'll verify this.
> * Systems with glvnd should explicitly use mesa OpenGL instead of the fallback OpenGL. Yup. It's a bit difficult to explicitly test this, but I can see the "GLX_EXT_libglvnd" server extension in glxinfo. I can also do an strace and see it loading "libGLX_mesa.so.0". With older servers it will use a fallback name (libGLX_indirect.so.0, or libGLX_system.so.0). Tested on Fedora 28. > * Systems without glvnd should still work. Tested with RHEL 6 and everything OpenGL works fine.