[PATCH xserver 4/3] fixup! xwayland streams buglets

Adam Jackson ajax at redhat.com
Tue Apr 24 19:22:46 UTC 2018


- Properly disable glamor if streams setup fails
- Disable window-mode present if streams is in use

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 hw/xwayland/xwayland-present.c | 9 +++++++++
 hw/xwayland/xwayland.c         | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/hw/xwayland/xwayland-present.c b/hw/xwayland/xwayland-present.c
index c41a8a2d12..07fdc7c184 100644
--- a/hw/xwayland/xwayland-present.c
+++ b/hw/xwayland/xwayland-present.c
@@ -509,5 +509,14 @@ static present_wnmd_info_rec xwl_present_info = {
 Bool
 xwl_present_init(ScreenPtr screen)
 {
+    struct xwl_screen *xwl_screen = xwl_screen_get(screen);
+
+    /*
+     * doesn't work with the streams backend. we don't have an explicit
+     * boolean for that, but we do know gbm doesn't fill in this hook...
+     */
+    if (xwl_screen->egl_backend.post_damage != NULL)
+        return FALSE;
+
     return present_wnmd_screen_init(screen, &xwl_present_info);
 }
diff --git a/hw/xwayland/xwayland.c b/hw/xwayland/xwayland.c
index 4c0c2d3270..f7e2ce9312 100644
--- a/hw/xwayland/xwayland.c
+++ b/hw/xwayland/xwayland.c
@@ -998,7 +998,7 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv)
         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 = 1;
+                xwl_screen->glamor = 0;
             }
         } else
 #endif
-- 
2.17.0



More information about the xorg-devel mailing list