[PATCH 1/2] Check for empty vline ranges after clamping.

Michel Dänzer michel at daenzer.net
Wed Feb 1 04:35:41 PST 2012


From: Michel Dänzer <michel.daenzer at amd.com>

The clamping could turn a previously non-empty range into an empty one.

Also, start == stop means the range is empty.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/evergreen_accel.c    |    5 +----
 src/r6xx_accel.c         |    5 +----
 src/radeon_commonfuncs.c |    5 +----
 3 files changed, 3 insertions(+), 12 deletions(-)

diff --git a/src/evergreen_accel.c b/src/evergreen_accel.c
index 83320c8..7c6b777 100644
--- a/src/evergreen_accel.c
+++ b/src/evergreen_accel.c
@@ -284,9 +284,6 @@ void evergreen_cp_wait_vline_sync(ScrnInfoPtr pScrn, PixmapPtr pPix,
 
     drmmode_crtc = crtc->driver_private;
 
-    if (stop < start)
-        return;
-
     if (!crtc->enabled)
         return;
 
@@ -309,7 +306,7 @@ void evergreen_cp_wait_vline_sync(ScrnInfoPtr pScrn, PixmapPtr pPix,
     start = max(start, 0);
     stop = min(stop, crtc->mode.VDisplay);
 
-    if (start > crtc->mode.VDisplay)
+    if (start >= stop)
         return;
 
     /* on r5xx+ vline starts at viewport_y */
diff --git a/src/r6xx_accel.c b/src/r6xx_accel.c
index 752165b..94678a1 100644
--- a/src/r6xx_accel.c
+++ b/src/r6xx_accel.c
@@ -345,9 +345,6 @@ r600_cp_wait_vline_sync(ScrnInfoPtr pScrn, drmBufPtr ib, PixmapPtr pPix,
     if (!crtc)
         return;
 
-    if (stop < start)
-        return;
-
     if (!crtc->enabled)
         return;
 
@@ -370,7 +367,7 @@ r600_cp_wait_vline_sync(ScrnInfoPtr pScrn, drmBufPtr ib, PixmapPtr pPix,
     start = max(start, 0);
     stop = min(stop, crtc->mode.VDisplay);
 
-    if (start > crtc->mode.VDisplay)
+    if (start >= stop)
         return;
 
     /* on r5xx+ vline starts at viewport_y */
diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
index 7281949..e2b7171 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -839,9 +839,6 @@ void FUNC_NAME(RADEONWaitForVLine)(ScrnInfoPtr pScrn, PixmapPtr pPix,
     if (!crtc)
 	return;
 
-    if (stop < start)
-	return;
-
     if (!crtc->enabled)
 	return;
 
@@ -864,7 +861,7 @@ void FUNC_NAME(RADEONWaitForVLine)(ScrnInfoPtr pScrn, PixmapPtr pPix,
     start = max(start, 0);
     stop = min(stop, crtc->mode.VDisplay);
 
-    if (start > crtc->mode.VDisplay)
+    if (start >= stop)
 	return;
 
     if (IS_AVIVO_VARIANT) {
-- 
1.7.8.3



More information about the xorg-driver-ati mailing list