[PATCH v2 xserver 4/5] xwayland: Do not disable glamor if eglstream failed

Olivier Fourdan ofourdan at redhat.com
Thu May 24 14:33:05 UTC 2018


EGL stream requires glamor, but the opposite is not true. So if someone
passes "-eglstream" with a GPU which does not support EGL stream, we
could maybe still try GBM and be lucky.

That allows Wayland compositor to pass "eglstream" regardless of the
actual hardware, if they want to enable EGL stream on GPU which support
it.

Signed-off-by: Olivier Fourdan <ofourdan at redhat.com>
---
 v2: Try GBM only if EGL streams actually failed (or wasn't requested)

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

diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
index cc16edf27..a08d58451 100644
--- a/hw/xwayland/xwayland.c
+++ b/hw/xwayland/xwayland.c
@@ -939,9 +939,7 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
     struct xwl_screen *xwl_screen;
     Pixel red_mask, blue_mask, green_mask;
     int ret, bpc, green_bpc, i;
-#ifdef XWL_HAS_EGLSTREAM
     Bool use_eglstreams = FALSE;
-#endif
 
     xwl_screen = calloc(1, sizeof *xwl_screen);
     if (xwl_screen == NULL)
@@ -998,12 +996,12 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
 #ifdef XWL_HAS_EGLSTREAM
         if (use_eglstreams) {
             if (!xwl_glamor_init_eglstream(xwl_screen)) {
-                ErrorF("xwayland glamor: failed to setup eglstream backend, falling back to swaccel\n");
-                xwl_screen->glamor = 0;
+                ErrorF("xwayland glamor: failed to setup eglstream backend\n");
+                use_eglstreams = FALSE;
             }
-        } else
+        }
 #endif
-        if (!xwl_glamor_init_gbm(xwl_screen)) {
+        if (!use_eglstreams && !xwl_glamor_init_gbm(xwl_screen)) {
             ErrorF("xwayland glamor: failed to setup GBM backend, falling back to sw accel\n");
             xwl_screen->glamor = 0;
         }
-- 
2.17.0



More information about the xorg-devel mailing list