xf86-video-ati: Branch 'master'

Alex Deucher agd5f at kemper.freedesktop.org
Wed Aug 3 13:23:57 PDT 2011


 src/evergreen_accel.c    |    4 ++++
 src/r6xx_accel.c         |    4 ++++
 src/radeon_commonfuncs.c |    6 ++++++
 3 files changed, 14 insertions(+)

New commits:
commit 3b9fdc807dd7e52af0576299cefba596040f6f2f
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Wed Aug 3 16:20:13 2011 -0400

    r5xx+: Fix vline setup with crtc offsets
    
    On r5xx+, vline is relative to to the viewport, not
    the scanlines.  Based on initial patch and investigation
    from Herbert Pötzl (Bertl) on IRC.
    
    Signed-off-by: Alex Deucher <alexdeucher at gmail.com>

diff --git a/src/evergreen_accel.c b/src/evergreen_accel.c
index f4c70c7..5c95e20 100644
--- a/src/evergreen_accel.c
+++ b/src/evergreen_accel.c
@@ -312,6 +312,10 @@ void evergreen_cp_wait_vline_sync(ScrnInfoPtr pScrn, PixmapPtr pPix,
     if (start > crtc->mode.VDisplay)
         return;
 
+    /* on r5xx+ vline starts at viewport_y */
+    start += crtc->y;
+    stop += crtc->y;
+
     BEGIN_BATCH(11);
     /* set the VLINE range */
     EREG(EVERGREEN_VLINE_START_END, /* this is just a marker */
diff --git a/src/r6xx_accel.c b/src/r6xx_accel.c
index b5acf85..752165b 100644
--- a/src/r6xx_accel.c
+++ b/src/r6xx_accel.c
@@ -373,6 +373,10 @@ r600_cp_wait_vline_sync(ScrnInfoPtr pScrn, drmBufPtr ib, PixmapPtr pPix,
     if (start > crtc->mode.VDisplay)
         return;
 
+    /* on r5xx+ vline starts at viewport_y */
+    start += crtc->y;
+    stop += crtc->y;
+
 #if defined(XF86DRM_MODE)
     if (info->cs) {
 	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
index 2199daf..7281949 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -867,6 +867,12 @@ void FUNC_NAME(RADEONWaitForVLine)(ScrnInfoPtr pScrn, PixmapPtr pPix,
     if (start > crtc->mode.VDisplay)
 	return;
 
+    if (IS_AVIVO_VARIANT) {
+	/* on r5xx+ vline starts at viewport_y */
+	start += crtc->y;
+	stop += crtc->y;
+    }
+
 #if defined(ACCEL_CP) && defined(XF86DRM_MODE)
     if (info->cs) {
 	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;


More information about the xorg-commit mailing list