xserver: Branch 'master' - 2 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 2 10:40:22 UTC 2021


 hw/xwayland/xwayland-glamor.c |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

New commits:
commit 6dd9709bd85cf5de4067887818c864220b951355
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Wed Nov 17 09:56:52 2021 +0100

    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
    properly.
    
    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 <ofourdan at redhat.com>
    Acked-by: Michel Dänzer <mdaenzer at redhat.com>

diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c
index 551334cb6..24620605d 100644
--- a/hw/xwayland/xwayland-glamor.c
+++ b/hw/xwayland/xwayland-glamor.c
@@ -444,14 +444,10 @@ xwl_glamor_select_eglstream_backend(struct xwl_screen *xwl_screen)
 void
 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)
             xwl_glamor_select_gbm_backend(xwl_screen);
     }
-    else {
-        if (!xwl_glamor_select_gbm_backend(xwl_screen))
-            xwl_glamor_select_eglstream_backend(xwl_screen);
-    }
 }
 
 Bool
commit c5d1fed9fa32244739677ec5c58ea87b261e023b
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Wed Nov 17 13:09:58 2021 +0100

    xwayland/glamor: Log backend selected for debug
    
    Add (verbose) statements to trace the actual backend used with glamor.
    
    That can be useful for debugging.
    
    Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
    Reviewed-by: Michel Dänzer <mdaenzer at redhat.com>

diff --git a/hw/xwayland/xwayland-glamor.c b/hw/xwayland/xwayland-glamor.c
index 9911a66ac..551334cb6 100644
--- a/hw/xwayland/xwayland-glamor.c
+++ b/hw/xwayland/xwayland-glamor.c
@@ -412,6 +412,7 @@ xwl_glamor_select_gbm_backend(struct xwl_screen *xwl_screen)
     if (xwl_screen->gbm_backend.is_available &&
         xwl_glamor_has_wl_interfaces(xwl_screen, &xwl_screen->gbm_backend)) {
         xwl_screen->egl_backend = &xwl_screen->gbm_backend;
+        LogMessageVerb(X_INFO, 3, "glamor: Using GBM backend\n");
         return TRUE;
     }
     else
@@ -429,6 +430,7 @@ xwl_glamor_select_eglstream_backend(struct xwl_screen *xwl_screen)
     if (xwl_screen->eglstream_backend.is_available &&
         xwl_glamor_has_wl_interfaces(xwl_screen, &xwl_screen->eglstream_backend)) {
         xwl_screen->egl_backend = &xwl_screen->eglstream_backend;
+        LogMessageVerb(X_INFO, 3, "glamor: Using EGLStream backend\n");
         return TRUE;
     }
     else


More information about the xorg-commit mailing list