diff options
author | Michel Dänzer <daenzer@vmware.com> | 2009-07-20 02:04:40 +0200 |
---|---|---|
committer | Michel Dänzer <daenzer@vmware.com> | 2009-07-20 02:04:40 +0200 |
commit | 00fe4a297744c81b40f0243fb56ad848a9be6a2b (patch) | |
tree | af4a9fad26466eec474e04be5d6d117cf55bbd16 /exa/exa_glyphs.c | |
parent | 7b9915b11ed9eedd0698b4563328504d686ac4ec (diff) |
EXA: Completely eliminate exaDoMigration calls for drivers that manage pixmaps.
Diffstat (limited to 'exa/exa_glyphs.c')
-rw-r--r-- | exa/exa_glyphs.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/exa/exa_glyphs.c b/exa/exa_glyphs.c index b8d2e52bf..1855de1b1 100644 --- a/exa/exa_glyphs.c +++ b/exa/exa_glyphs.c @@ -372,7 +372,6 @@ exaGlyphCacheUploadGlyph(ScreenPtr pScreen, PixmapPtr pGlyphPixmap = (PixmapPtr)pGlyphPicture->pDrawable; ExaPixmapPriv(pGlyphPixmap); PixmapPtr pCachePixmap = (PixmapPtr)cache->picture->pDrawable; - ExaMigrationRec pixmaps[1]; if (!pExaScr->info->UploadToScreen || pExaScr->swappedOut || pExaPixmap->accel_blocked) goto composite; @@ -387,11 +386,15 @@ exaGlyphCacheUploadGlyph(ScreenPtr pScreen, goto composite; /* cache pixmap must be offscreen. */ - pixmaps[0].as_dst = TRUE; - pixmaps[0].as_src = FALSE; - pixmaps[0].pPix = pCachePixmap; - pixmaps[0].pReg = NULL; - exaDoMigration (pixmaps, 1, TRUE); + if (pExaPixmap->pDamage) { + ExaMigrationRec pixmaps[1]; + + pixmaps[0].as_dst = TRUE; + pixmaps[0].as_src = FALSE; + pixmaps[0].pPix = pCachePixmap; + pixmaps[0].pReg = NULL; + exaDoMigration (pixmaps, 1, TRUE); + } if (!exaPixmapIsOffscreen(pCachePixmap)) goto composite; |