summaryrefslogtreecommitdiff
path: root/src/radeon_exa_funcs.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-02-10 17:08:37 -0500
committerAlex Deucher <alexdeucher@gmail.com>2009-02-10 17:08:37 -0500
commit0c4694c58f2ec152b19023626bc7ced891d9da65 (patch)
treeb228880177fddc61ebb80c14cffaa7f11ebc1473 /src/radeon_exa_funcs.c
parent13ab61d90bb58112bef4ce7267ef127935315f80 (diff)
Radeon EXA: wait for the engine to be idle before sw access
Really we need proper fencing with timestamps but this should help in the short term. This should help with minor corruption issues and possibly lockups.
Diffstat (limited to 'src/radeon_exa_funcs.c')
-rw-r--r--src/radeon_exa_funcs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index cd97cc6e..eb714ab6 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -408,6 +408,8 @@ RADEONDownloadFromScreenCP(PixmapPtr pSrc, int x, int y, int w, int h,
while ((drmCommandNone(info->dri->drmFD, DRM_RADEON_CP_IDLE) == -EBUSY)
&& (i++ < RADEON_TIMEOUT))
;
+ /* make sure the engine is idle */
+ RADEONWaitforIdlePoll(pScrn);
/* Kick next blit */
if (hpass)
@@ -470,10 +472,8 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
info->accel_state->exa->DownloadFromScreen = RADEONDownloadFromScreenCP;
#endif
-#if X_BYTE_ORDER == X_BIG_ENDIAN
info->accel_state->exa->PrepareAccess = RADEONPrepareAccess;
info->accel_state->exa->FinishAccess = RADEONFinishAccess;
-#endif /* X_BYTE_ORDER == X_BIG_ENDIAN */
info->accel_state->exa->flags = EXA_OFFSCREEN_PIXMAPS;
info->accel_state->exa->pixmapOffsetAlign = RADEON_BUFFER_ALIGN + 1;