xserver: Branch 'master'

Michel Dänzer daenzer at kemper.freedesktop.org
Wed Feb 1 08:31:36 UTC 2017


 present/present.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

New commits:
commit bb9128fdc86decd6f6e3b0e145011a8c08b1d2b5
Author: Qiang Yu <Qiang.Yu at amd.com>
Date:   Thu Jan 26 18:13:53 2017 +0800

    present: disable page flip only when a slave crtc is active
    
    This prevents the tearing of moving window in a composite WM
    desktop when output slave is attached but none of its crtc is
    really active.
    
    Signed-off-by: Qiang Yu <Qiang.Yu at amd.com>
    Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

diff --git a/present/present.c b/present/present.c
index ef89045..c9c68dc 100644
--- a/present/present.c
+++ b/present/present.c
@@ -118,6 +118,18 @@ present_flip_pending_pixmap(ScreenPtr screen)
 }
 
 static Bool
+present_check_output_slaves_active(ScreenPtr pScreen)
+{
+    ScreenPtr pSlave;
+
+    xorg_list_for_each_entry(pSlave, &pScreen->slave_list, slave_head) {
+        if (RRHasScanoutPixmap(pSlave))
+            return TRUE;
+    }
+    return FALSE;
+}
+
+static Bool
 present_check_flip(RRCrtcPtr    crtc,
                    WindowPtr    window,
                    PixmapPtr    pixmap,
@@ -145,7 +157,7 @@ present_check_flip(RRCrtcPtr    crtc,
         return FALSE;
 
     /* Fail to flip if we have slave outputs */
-    if (screen->output_slaves)
+    if (screen->output_slaves && present_check_output_slaves_active(screen))
         return FALSE;
 
     /* Make sure the window hasn't been redirected with Composite */


More information about the xorg-commit mailing list