summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/evergreen_accel.c4
-rw-r--r--src/r6xx_accel.c4
-rw-r--r--src/radeon_commonfuncs.c6
3 files changed, 14 insertions, 0 deletions
diff --git a/src/evergreen_accel.c b/src/evergreen_accel.c
index f4c70c7d..5c95e201 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 b5acf85a..752165b7 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 2199daf9..72819490 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;