diff options
author | marha <marha@users.sourceforge.net> | 2009-10-21 19:07:36 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-10-21 19:07:36 +0000 |
commit | 1f876171067c04fc21fccd5a3051f982fd85c0f0 (patch) | |
tree | 1f7883e3e5f5ef5cd401ee7c70dd5e679efd0615 /xorg-server/exa/exa.c | |
parent | 7687adcc34c9fc43d526f30b1cf2039b0af48841 (diff) | |
download | vcxsrv-1f876171067c04fc21fccd5a3051f982fd85c0f0.tar.gz vcxsrv-1f876171067c04fc21fccd5a3051f982fd85c0f0.tar.bz2 vcxsrv-1f876171067c04fc21fccd5a3051f982fd85c0f0.zip |
Updated to xorg-server-1.7.99.1
Diffstat (limited to 'xorg-server/exa/exa.c')
-rw-r--r-- | xorg-server/exa/exa.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/xorg-server/exa/exa.c b/xorg-server/exa/exa.c index e264d440c..46e91820b 100644 --- a/xorg-server/exa/exa.c +++ b/xorg-server/exa/exa.c @@ -774,10 +774,18 @@ ExaBlockHandler(int screenNum, pointer blockData, pointer pTimeout, ScreenPtr pScreen = screenInfo.screens[screenNum]; ExaScreenPriv(pScreen); + /* Move any deferred results from a software fallback to the driver pixmap */ + if (pExaScr->deferred_mixed_pixmap) + exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap); + unwrap(pExaScr, pScreen, BlockHandler); (*pScreen->BlockHandler) (screenNum, blockData, pTimeout, pReadmask); wrap(pExaScr, pScreen, BlockHandler, ExaBlockHandler); + /* The rest only applies to classic EXA */ + if (pExaScr->info->flags & EXA_HANDLES_PIXMAPS) + return; + /* Try and keep the offscreen memory area tidy every now and then (at most * once per second) when the server has been idle for at least 100ms. */ @@ -991,10 +999,12 @@ exaDriverInit (ScreenPtr pScreen, * Replace various fb screen functions */ if ((pExaScr->info->flags & EXA_OFFSCREEN_PIXMAPS) && - !(pExaScr->info->flags & EXA_HANDLES_PIXMAPS)) { + (!(pExaScr->info->flags & EXA_HANDLES_PIXMAPS) || + (pExaScr->info->flags & EXA_MIXED_PIXMAPS))) wrap(pExaScr, pScreen, BlockHandler, ExaBlockHandler); + if ((pExaScr->info->flags & EXA_OFFSCREEN_PIXMAPS) && + !(pExaScr->info->flags & EXA_HANDLES_PIXMAPS)) wrap(pExaScr, pScreen, WakeupHandler, ExaWakeupHandler); - } wrap(pExaScr, pScreen, CreateGC, exaCreateGC); wrap(pExaScr, pScreen, CloseScreen, exaCloseScreen); wrap(pExaScr, pScreen, GetImage, exaGetImage); |