diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2012-02-01 13:21:02 +0100 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2012-02-01 15:41:05 +0100 |
commit | 36c190671081967bac6fff48aaf66d67b639a48c (patch) | |
tree | 20cdf6c8f6608b34c8993abcb75bbbe9df8d2176 /src/radeon_commonfuncs.c | |
parent | bb0e1531ac6949d38025d7dcb19234fee33b2acf (diff) |
Fix vline range calculations.
The range passed in is in pixmap coordinates, so the CRTC offset needs to be
added to the clamping limits and subtracted from the clamped range for
pre-AVIVO display engines.
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/radeon_commonfuncs.c')
-rw-r--r-- | src/radeon_commonfuncs.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c index e2b71716..e0b026f1 100644 --- a/src/radeon_commonfuncs.c +++ b/src/radeon_commonfuncs.c @@ -858,16 +858,16 @@ void FUNC_NAME(RADEONWaitForVLine)(ScrnInfoPtr pScrn, PixmapPtr pPix, return; } - start = max(start, 0); - stop = min(stop, crtc->mode.VDisplay); + start = max(start, crtc->y); + stop = min(stop, crtc->y + crtc->mode.VDisplay); if (start >= stop) return; - if (IS_AVIVO_VARIANT) { - /* on r5xx+ vline starts at viewport_y */ - start += crtc->y; - stop += crtc->y; + if (!IS_AVIVO_VARIANT) { + /* on pre-r5xx vline starts at CRTC scanout */ + start -= crtc->y; + stop -= crtc->y; } #if defined(ACCEL_CP) && defined(XF86DRM_MODE) |