xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Thu Mar 24 19:51:34 UTC 2016


 present/present.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 3b385105b2d19a1c55e9779ae88d775185eea231
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Thu Mar 24 17:42:47 2016 +0900

    present: Only requeue for next MSC after flip failure
    
    This code was added to deal with the driver present hook failing, in
    which case we need to wait for the next MSC before executing the
    presentation.
    
    However, it could also take effect in cases where the driver incorrectly
    thinks the current MSC matches the target one (e.g. due to the kernel
    interface only supporting 32-bit MSC values), in which case it could
    result in the presentation getting requeued over and over.
    
    To prevent such issues, check specifically for the target MSC
    immediately following the current MSC.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94596
    Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>

diff --git a/present/present.c b/present/present.c
index 55f6aa7..105e2bf 100644
--- a/present/present.c
+++ b/present/present.c
@@ -726,7 +726,7 @@ present_execute(present_vblank_ptr vblank, uint64_t ust, uint64_t crtc_msc)
         }
 
         /* If present_flip failed, we may have to requeue for the target MSC */
-        if (msc_is_after(vblank->target_msc, crtc_msc) &&
+        if (vblank->target_msc == crtc_msc + 1 &&
             Success == present_queue_vblank(screen,
                                             vblank->crtc,
                                             vblank->event_id,


More information about the xorg-commit mailing list