Commit bdc00ba7 authored by Olivier Fourdan's avatar Olivier Fourdan 🛠
Browse files

xwayland/eglstream: Prefer EGLstream if available

Currently, when given the choice, Xwayland will pick the GBM backend
over the EGLstream backend if both are available, unless the command
line option “-eglstream” is specified.

The NVIDIA proprietary driver had no support for GBM until driver series
495, but starting with the driver series 495, both can be used.

But there are other requirements with the rest of the stack, typically
Mesa, egl-wayland, libglvnd as documented in the NVIDIA driver.

So if the NVIDIA driver series 495 gets installed, Xwayland will pick
the GBM backend even if EGLstream is available and may fail to render

To avoid that issue, prefer EGLstream if EGLstream and all the Wayland
interfaces are available, and fallback to GBM automatically unless
“-eglstream” was specified.

With this, the compositor, given the choice, can decide which actual
backend Xwayland would use by advertising (or not) the Wayland
"wl_eglstream_controller" interface.

This change has no impact on compositors which do not have support for
EGLstream in the first place.
Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <>
Acked-by: Michel Dänzer's avatarMichel Dänzer <>
(cherry picked from commit 6dd9709b)
parent 3206e133
Pipeline #457404 passed with stages
in 2 minutes and 41 seconds
......@@ -441,14 +441,10 @@ xwl_glamor_select_eglstream_backend(struct xwl_screen *xwl_screen)
xwl_glamor_select_backend(struct xwl_screen *xwl_screen, Bool use_eglstream)
if (use_eglstream) {
if (!xwl_glamor_select_eglstream_backend(xwl_screen))
if (!xwl_glamor_select_eglstream_backend(xwl_screen)) {
if (!use_eglstream)
else {
if (!xwl_glamor_select_gbm_backend(xwl_screen))
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment