From 04a19291c93aaa4feeaf7a87663eaf1ef7c1f4b8 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Tue, 5 Jun 2018 19:37:57 +0200 Subject: [PATCH] xwayland: do not disable glamor if EGLStream failed 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 Reviewed-by: Lyude Paul Reviewed-by: Emil Velikov (cherry picked from commit e16a6da79dea793a335be70ba07d5e1c1295b5eb) --- 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; }