summaryrefslogtreecommitdiff
path: root/src/radeon_exa_funcs.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2010-02-12 11:34:47 -0500
committerAlex Deucher <alexdeucher@gmail.com>2010-02-12 11:34:47 -0500
commit8ad4025affe1fb2f417e3a3031d74f83be5df253 (patch)
tree3559f1dc54dfc709ad2df7512b0def5807733348 /src/radeon_exa_funcs.c
parent4f9d1714a7382594b834d446bbe502663f6a2778 (diff)
radeon: consolidate crtc selector for vline wait
Use the Xv version as it takes into account the area covered by the op rather than just picking the largest crtc area.
Diffstat (limited to 'src/radeon_exa_funcs.c')
-rw-r--r--src/radeon_exa_funcs.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index 6d2522a6..a3098d8f 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -226,7 +226,9 @@ FUNC_NAME(RADEONSolid)(PixmapPtr pPix, int x1, int y1, int x2, int y2)
#endif
if (info->accel_state->vsync)
- FUNC_NAME(RADEONWaitForVLine)(pScrn, pPix, RADEONBiggerCrtcArea(pPix), y1, y2);
+ FUNC_NAME(RADEONWaitForVLine)(pScrn, pPix,
+ radeon_pick_best_crtc(pScrn, x1, y1, x2, y2),
+ y1, y2);
BEGIN_ACCEL(2);
OUT_ACCEL_REG(RADEON_DST_Y_X, (y1 << 16) | x1);
@@ -345,7 +347,9 @@ FUNC_NAME(RADEONCopy)(PixmapPtr pDst,
}
if (info->accel_state->vsync)
- FUNC_NAME(RADEONWaitForVLine)(pScrn, pDst, RADEONBiggerCrtcArea(pDst), dstY, dstY + h);
+ FUNC_NAME(RADEONWaitForVLine)(pScrn, pDst,
+ radeon_pick_best_crtc(pScrn, dstX, dstY, dstX + w, dstY + h),
+ dstY, dstY + h);
BEGIN_ACCEL(3);
@@ -381,7 +385,9 @@ RADEONUploadToScreenCP(PixmapPtr pDst, int x, int y, int w, int h,
RADEON_SWITCH_TO_2D();
if (info->accel_state->vsync)
- FUNC_NAME(RADEONWaitForVLine)(pScrn, pDst, RADEONBiggerCrtcArea(pDst), y, y + h);
+ FUNC_NAME(RADEONWaitForVLine)(pScrn, pDst,
+ radeon_pick_best_crtc(pScrn, x, y, x + w, y + h),
+ y, y + h);
while ((buf = RADEONHostDataBlit(pScrn,
cpp, w, dst_pitch_off, &buf_pitch,