summaryrefslogtreecommitdiff
path: root/present/present.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@gmail.com>2016-02-09 16:54:22 +1000
committerAdam Jackson <ajax@redhat.com>2016-03-11 11:38:37 -0500
commit47bc7fcaa567b0d9e2627b4a21b112e96f81725b (patch)
treec1b721fe07cd4e8710197050964db666f923b8d4 /present/present.c
parent316948734c2bba72d42c4cf4530932b5862c109f (diff)
present: fail flipping if we have any slave outputs
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@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'present/present.c')
-rw-r--r--present/present.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/present/present.c b/present/present.c
index 1ce16afab..55f6aa7b1 100644
--- a/present/present.c
+++ b/present/present.c
@@ -144,6 +144,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) &&