diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/evergreen_accel.c | 4 | ||||
-rw-r--r-- | src/r6xx_accel.c | 4 | ||||
-rw-r--r-- | src/radeon_commonfuncs.c | 6 |
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; |