diff options
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, |