[PATCH 1/2] present: fail flipping if we have any slave outputs.

Dave Airlie airlied at gmail.com
Tue Feb 9 06:54:22 UTC 2016

Due to the way present currently works, we don't ever
check with the secondary adapters if we can flip at all.

We shouldn't flip if the secondary adapters are attached
to the pixmap currently, however using the current check_flip
callback isn't possible as it passes the Window to the driver
(something we shouldn't be doing), so the slave driver can never
get it's own screen ptr back.

For now to fix the problem just block flips if we have any
slaves configured. We can fix the ABI up later, but this
fix can be backported to stable.

Signed-off-by: Dave Airlie <airlied at redhat.com>
 present/present.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/present/present.c b/present/present.c
index 8cf3b6f..cb3c7ea 100644
--- a/present/present.c
+++ b/present/present.c
@@ -122,6 +122,10 @@ present_check_flip(RRCrtcPtr    crtc,
     if (!screen_priv->info->flip)
         return FALSE;
+    /* Fail to flip if we have slave outputs */
+    if (!xorg_list_is_empty(&screen->output_slave_list))
+        return FALSE;
     /* Make sure the window hasn't been redirected with Composite */
     window_pixmap = screen->GetWindowPixmap(window);
     if (window_pixmap != screen->GetScreenPixmap(screen) &&

More information about the xorg-devel mailing list