diff options
Diffstat (limited to 'exa/exa_unaccel.c')
-rw-r--r-- | exa/exa_unaccel.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c index 8fb7b526e..f4d453eaa 100644 --- a/exa/exa_unaccel.c +++ b/exa/exa_unaccel.c @@ -97,14 +97,14 @@ ExaCheckPutImage (DrawablePtr pDrawable, GCPtr pGC, int depth, int x, int y, int w, int h, int leftPad, int format, char *bits) { - PixmapPtr pPixmap = exaGetDrawablePixmap(pDrawable); - int xoff, yoff; - EXA_FALLBACK(("to %p (%c)\n", pDrawable, exaDrawableLocation(pDrawable))); - exaPrepareAccess (pDrawable, EXA_PREPARE_DEST); + if (exaGCReadsDestination(pDrawable, pGC->planemask, pGC->fillStyle, + pGC->alu)) + exaPrepareAccess (pDrawable, EXA_PREPARE_DEST); + else + ExaDoPrepareAccess (pDrawable, EXA_PREPARE_DEST); fbPutImage (pDrawable, pGC, depth, x, y, w, h, leftPad, format, bits); exaFinishAccess (pDrawable, EXA_PREPARE_DEST); - exaGetDrawableDeltas(pDrawable, pPixmap, &xoff, &yoff); } RegionPtr |