[PATCH xserver 4/5] xwayland: do not disable glamor if EGLStream failed

2018-06-05 Thread Olivier Fourdan
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 
---
 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

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

2018-05-24 Thread Olivier Fourdan
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 
---
 hw/xwayland/xwayland.c | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
index cc16edf27..5c61b65dc 100644
--- a/hw/xwayland/xwayland.c
+++ b/hw/xwayland/xwayland.c
@@ -997,11 +997,9 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
 if (xwl_screen->glamor) {
 #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;
-}
-} else
+if (!xwl_glamor_init_eglstream(xwl_screen))
+ErrorF("xwayland glamor: failed to setup eglstream backend\n");
+}
 #endif
 if (!xwl_glamor_init_gbm(xwl_screen)) {
 ErrorF("xwayland glamor: failed to setup GBM backend, falling back 
to sw accel\n");
-- 
2.17.0

___
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