xserver: Branch 'master'

Keith Packard keithp at kemper.freedesktop.org
Thu Sep 18 15:33:23 PDT 2014


 present/present.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit ea7357de90792cbceca6d8d9fdc144e7df8a0fba
Author: Keith Packard <keithp at keithp.com>
Date:   Wed Sep 10 14:01:59 2014 -0700

    present: Clear pending flip pixmaps at CloseScreen
    
    If a flip is active at server reset time, the associated window will
    get destroyed which will queue an unflip operation. If that isn't
    synchronous, then it won't have finished by the time CloseScreen is
    called.
    
    Calling present_flip_idle will signal the fence and remove the
    reference to the fence and pixmap, freeing these in the X server and
    allowing a DRM client to clean up as well.
    
    This also rewords other comments in present_flip_destroy, removing
    scary words about needing synchronous operation (everything in this
    function is synchronous now) and describing what effect we actually
    need from present_set_abort_flip.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Adam Jackson <ajax at redhat.com>

diff --git a/present/present.c b/present/present.c
index 9be690c..e838da7 100644
--- a/present/present.c
+++ b/present/present.c
@@ -938,11 +938,12 @@ present_flip_destroy(ScreenPtr screen)
 {
     present_screen_priv_ptr     screen_priv = present_screen_priv(screen);
 
-    /* XXX this needs to be synchronous for server reset */
-
-    /* Do the actual cleanup once the flip has been performed by the hardware */
+    /* Reset window pixmaps back to the screen pixmap */
     if (screen_priv->flip_pending)
         present_set_abort_flip(screen);
+
+    /* Drop reference to any pending flip or unflip pixmaps. */
+    present_flip_idle(screen);
 }
 
 void


More information about the xorg-commit mailing list