xf86-video-ati: Branch 'master' - 2 commits

Michel Dänzer daenzer at kemper.freedesktop.org
Mon May 11 00:31:45 PDT 2015


 src/radeon_present.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

New commits:
commit 80eede245d1eda27eaba108b0761a24bfd69aff6
Author: Mario Kleiner <mario.kleiner.de at gmail.com>
Date:   Sat May 9 07:24:36 2015 +0200

    present: Fix present notify timestamps and counts.
    
    Invalid (msc,ust)=(0,0) were returned to the server
    because a wrong crtc_id was used to specify which
    crtc should deliver pageflip completion data. Fix
    it in accordance with the dri2 implementation.
    
    Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>

diff --git a/src/radeon_present.c b/src/radeon_present.c
index d9e20bc..53819e0 100644
--- a/src/radeon_present.c
+++ b/src/radeon_present.c
@@ -309,8 +309,8 @@ radeon_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc,
     ScreenPtr screen = crtc->pScreen;
     ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
     struct radeon_present_vblank_event *event;
-    drmmode_crtc_private_ptr drmmode_crtc = get_drmmode_crtc(scrn, crtc);
-    int crtc_id = drmmode_crtc->mode_crtc->crtc_id;
+    xf86CrtcPtr xf86_crtc = crtc->devPrivate;
+    int crtc_id = xf86_crtc ? drmmode_get_crtc_id(xf86_crtc) : -1;
     uint32_t handle;
     Bool ret;
 
commit e3be8b0a8cf484ff16597413a6172788178e80c8
Author: Mario Kleiner <mario.kleiner.de at gmail.com>
Date:   Sat May 9 07:24:35 2015 +0200

    present: Move check for async flips
    
    Check for and reject currently unsupported async_flip
    inside radeon_present_check_flip() instead of inside
    radeon_present_flip().
    
    This way the server can detect early that async flips
    aren't supported by the ddx and can deal with this
    correctly by using its non-vsync'ed CopyRegion fallback.
    
    Signed-off-by: Mario Kleiner <mario.kleiner.de at gmail.com>

diff --git a/src/radeon_present.c b/src/radeon_present.c
index 5b1d5ab..d9e20bc 100644
--- a/src/radeon_present.c
+++ b/src/radeon_present.c
@@ -251,6 +251,9 @@ radeon_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
     if (!info->allowPageFlip)
 	return FALSE;
 
+    if (!sync_flip)
+	return FALSE;
+
     /* The kernel driver doesn't handle flipping between BOs with different
      * tiling parameters correctly yet
      */
@@ -311,9 +314,6 @@ radeon_present_flip(RRCrtcPtr crtc, uint64_t event_id, uint64_t target_msc,
     uint32_t handle;
     Bool ret;
 
-    if (!sync_flip)
-	return FALSE;
-
     if (!radeon_present_check_flip(crtc, screen->root, pixmap, sync_flip))
 	return FALSE;
 


More information about the xorg-commit mailing list