From: Michel Dänzer <[email protected]> See https://bugs.freedesktop.org/show_bug.cgi?id=35197 .
Signed-off-by: Michel Dänzer <[email protected]> --- exa/exa_unaccel.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c index 078b91c..5d26b77 100644 --- a/exa/exa_unaccel.c +++ b/exa/exa_unaccel.c @@ -319,10 +319,19 @@ ExaCheckImageGlyphBlt (DrawablePtr pDrawable, GCPtr pGC, int x, int y, unsigned int nglyph, CharInfoPtr *ppci, pointer pglyphBase) { + PixmapPtr pPixmap = exaGetDrawablePixmap(pDrawable); + ExaPixmapPriv(pPixmap); + EXA_PRE_FALLBACK_GC(pGC); EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable))); - exaPrepareAccess (pDrawable, EXA_PREPARE_DEST); + if (!pExaScr->prepare_access_reg || !pExaPixmap->pDamage || + exaGCReadsDestination(pDrawable, pGC->planemask, pGC->fillStyle, + pGC->alu, pGC->clientClipType)) + exaPrepareAccess (pDrawable, EXA_PREPARE_DEST); + else + pExaScr->prepare_access_reg(pPixmap, EXA_PREPARE_DEST, + DamagePendingRegion(pExaPixmap->pDamage)); exaPrepareAccessGC (pGC); pGC->ops->ImageGlyphBlt (pDrawable, pGC, x, y, nglyph, ppci, pglyphBase); exaFinishAccessGC (pGC); -- 1.7.5.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
