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

That allows Wayland compositors to pass "-eglstream" regardless of the
actual hardware, if they want to enable EGLStream on GPU which support
it.

Signed-off-by: Olivier Fourdan <ofour...@redhat.com>
Reviewed-by: Lyude Paul <ly...@redhat.com>
Reviewed-by: Emil Velikov <emil.veli...@collabora.com>
---
 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 9121ef666..806d45675 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.1

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to