diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-02-12 11:34:47 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2010-02-12 11:34:47 -0500 |
commit | 8ad4025affe1fb2f417e3a3031d74f83be5df253 (patch) | |
tree | 3559f1dc54dfc709ad2df7512b0def5807733348 /src/radeon_exa_funcs.c | |
parent | 4f9d1714a7382594b834d446bbe502663f6a2778 (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.c | 12 |
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, |