diff --git a/exa/exa_accel.c b/exa/exa_accel.c index 76dbc7271..142d556a0 100644 --- a/exa/exa_accel.c +++ b/exa/exa_accel.c @@ -1187,7 +1187,7 @@ exaFillRegionTiled (DrawablePtr pDrawable, PixmapPtr pPixmap; ExaPixmapPrivPtr pExaPixmap; ExaPixmapPrivPtr pTileExaPixmap = ExaGetPixmapPriv(pTile); - int xoff, yoff, tileXoff, tileYoff; + int xoff, yoff; int tileWidth, tileHeight; ExaMigrationRec pixmaps[2]; int nbox = REGION_NUM_RECTS (pRegion); @@ -1228,15 +1228,10 @@ exaFillRegionTiled (DrawablePtr pDrawable, pPixmap = exaGetOffscreenPixmap (pDrawable, &xoff, &yoff); - if (!pPixmap) + if (!pPixmap || !exaPixmapIsOffscreen(pTile)) goto fallback; - if (!exaPixmapIsOffscreen(pTile)) - goto fallback; - - if ((*pExaScr->info->PrepareCopy) (exaGetOffscreenPixmap((DrawablePtr)pTile, - &tileXoff, &tileYoff), - pPixmap, 0, 0, alu, planemask)) + if ((*pExaScr->info->PrepareCopy) (pTile, pPixmap, 1, 1, alu, planemask)) { while (nbox--) { @@ -1262,9 +1257,8 @@ exaFillRegionTiled (DrawablePtr pDrawable, w = width; width -= w; - (*pExaScr->info->Copy) (pPixmap, - tileX + tileXoff, tileY + tileYoff, - dstX, dstY, w, h); + (*pExaScr->info->Copy) (pPixmap, tileX, tileY, dstX, dstY, + w, h); dstX += w; tileX = 0; }