diff options
author | Michel Dänzer <daenzer@vmware.com> | 2009-02-24 08:12:42 +0100 |
---|---|---|
committer | Michel Dänzer <daenzer@vmware.com> | 2009-02-24 08:12:42 +0100 |
commit | e2e508bc08d993fc108297e9cd2fa0ce183282bc (patch) | |
tree | 0f51e937d3075b58bef1a56b4d4361b821a1076f /src/radeon_exa_funcs.c | |
parent | 5ab8699c97c050424cf813b9a60550aba32446a2 (diff) |
Only call RADEONWaitForVLine if it might actually do anything useful.
Otherwise it and RADEONBiggerCrtcArea show up pretty high in x11perf -aa*text
profiles.
Diffstat (limited to 'src/radeon_exa_funcs.c')
-rw-r--r-- | src/radeon_exa_funcs.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c index cd97cc6e..eb16036c 100644 --- a/src/radeon_exa_funcs.c +++ b/src/radeon_exa_funcs.c @@ -129,7 +129,8 @@ FUNC_NAME(RADEONSolid)(PixmapPtr pPix, int x1, int y1, int x2, int y2) TRACE; - FUNC_NAME(RADEONWaitForVLine)(pScrn, pPix, RADEONBiggerCrtcArea(pPix), y1, y2, info->accel_state->vsync); + if (info->accel_state->vsync) + FUNC_NAME(RADEONWaitForVLine)(pScrn, pPix, RADEONBiggerCrtcArea(pPix), y1, y2); BEGIN_ACCEL(2); OUT_ACCEL_REG(RADEON_DST_Y_X, (y1 << 16) | x1); @@ -230,7 +231,8 @@ FUNC_NAME(RADEONCopy)(PixmapPtr pDst, dstY += h - 1; } - FUNC_NAME(RADEONWaitForVLine)(pScrn, pDst, RADEONBiggerCrtcArea(pDst), dstY, dstY + h, info->accel_state->vsync); + if (info->accel_state->vsync) + FUNC_NAME(RADEONWaitForVLine)(pScrn, pDst, RADEONBiggerCrtcArea(pDst), dstY, dstY + h); BEGIN_ACCEL(3); @@ -281,7 +283,8 @@ RADEONUploadToScreenCP(PixmapPtr pDst, int x, int y, int w, int h, RADEON_SWITCH_TO_2D(); - FUNC_NAME(RADEONWaitForVLine)(pScrn, pDst, RADEONBiggerCrtcArea(pDst), y, y + h, info->accel_state->vsync); + if (info->accel_state->vsync) + FUNC_NAME(RADEONWaitForVLine)(pScrn, pDst, RADEONBiggerCrtcArea(pDst), y, y + h); while ((buf = RADEONHostDataBlit(pScrn, cpp, w, dst_pitch_off, &buf_pitch, |