From a00a3d198aee7c173c2c36858f4447e13c86eb7f Mon Sep 17 00:00:00 2001 From: Wang Zhenyu Date: Sat, 29 Apr 2006 10:52:45 +0800 Subject: [PATCH] fix I830BIOSAdjustFrame() sync in I830_USE_EXA case, use exaWaitSync() helper. --- src/i830_driver.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/i830_driver.c b/src/i830_driver.c index 6b03c0f5..50f20594 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -196,6 +196,7 @@ const char *I830exaSymbols[] = { "exaDriverFini", "exaOffscreenAlloc", "exaOffscreenFree", + "exaWaitSync", NULL }; #endif @@ -5257,11 +5258,18 @@ I830BIOSAdjustFrame(int scrnIndex, int x, int y, int flags) x, pI830->xoffset, y, pI830->yoffset); /* Sync the engine before adjust frame */ - if (pI830->AccelInfoRec && pI830->AccelInfoRec->NeedToSync) { +#ifdef I830_USE_XAA + if (!pI830->noAccel && !pI830->useEXA && pI830->AccelInfoRec->NeedToSync) { (*pI830->AccelInfoRec->Sync)(pScrn); pI830->AccelInfoRec->NeedToSync = FALSE; } - +#endif +#ifdef I830_USE_EXA + if (!pI830->noAccel && pI830->useEXA) { + ScreenPtr pScreen = screenInfo.screens[pScrn->scrnIndex]; + exaWaitSync(pScreen); + } +#endif if (I830IsPrimary(pScrn)) Start = pI830->FrontBuffer.Start; else {