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>
This commit is contained in:
Olivier Fourdan 2018-06-05 19:37:57 +02:00 committed by Adam Jackson
parent 44560af028
commit e16a6da79d

View File

@ -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;
}