summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Fourdan <ofourdan@redhat.com>2018-06-05 19:37:57 +0200
committerAdam Jackson <ajax@redhat.com>2018-08-01 11:01:37 -0400
commit04a19291c93aaa4feeaf7a87663eaf1ef7c1f4b8 (patch)
tree9fe61630d43efd6915c84a7ef4435210e9283660
parentde40a55235614d6114e97bd8c6f687bb555bdba8 (diff)
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 <ofourdan@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit e16a6da79dea793a335be70ba07d5e1c1295b5eb)
-rw-r--r--hw/xwayland/xwayland.c10
1 files 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;
}