EXA: Fix Render acceleration in copy and tiling cases.
Code shuffling in a634c9b034
broke this by
leaving pSrcPixmap = NULL.
This commit is contained in:
parent
67a78e84a8
commit
5cb9e15562
|
@ -587,7 +587,6 @@ exaComposite(CARD8 op,
|
|||
int ret = -1;
|
||||
Bool saveSrcRepeat = pSrc->repeat;
|
||||
Bool saveMaskRepeat = pMask ? pMask->repeat : 0;
|
||||
PixmapPtr pSrcPixmap = NULL;
|
||||
RegionRec region;
|
||||
|
||||
/* We currently don't support acceleration of gradients, or other pictures
|
||||
|
@ -624,7 +623,9 @@ exaComposite(CARD8 op,
|
|||
if (ret == 1)
|
||||
goto done;
|
||||
}
|
||||
else if (pSrcPixmap && !pSrc->repeat && !pSrc->transform)
|
||||
else if (pSrc->pDrawable != NULL &&
|
||||
!pSrc->repeat &&
|
||||
!pSrc->transform)
|
||||
{
|
||||
xDst += pDst->pDrawable->x;
|
||||
yDst += pDst->pDrawable->y;
|
||||
|
@ -644,7 +645,9 @@ exaComposite(CARD8 op,
|
|||
REGION_UNINIT(pDst->pDrawable->pScreen, ®ion);
|
||||
goto done;
|
||||
}
|
||||
else if (pSrcPixmap && !pSrc->transform &&
|
||||
else if (pSrc->pDrawable != NULL &&
|
||||
pSrc->pDrawable->type == DRAWABLE_PIXMAP &&
|
||||
!pSrc->transform &&
|
||||
pSrc->repeatType == RepeatNormal)
|
||||
{
|
||||
DDXPointRec srcOrg;
|
||||
|
@ -671,10 +674,11 @@ exaComposite(CARD8 op,
|
|||
width, height))
|
||||
goto done;
|
||||
|
||||
srcOrg.x = (xSrc - xDst) % pSrcPixmap->drawable.width;
|
||||
srcOrg.y = (ySrc - yDst) % pSrcPixmap->drawable.height;
|
||||
srcOrg.x = (xSrc - xDst) % pSrc->pDrawable->width;
|
||||
srcOrg.y = (ySrc - yDst) % pSrc->pDrawable->height;
|
||||
|
||||
ret = exaFillRegionTiled(pDst->pDrawable, ®ion, pSrcPixmap,
|
||||
ret = exaFillRegionTiled(pDst->pDrawable, ®ion,
|
||||
(PixmapPtr)pSrc->pDrawable,
|
||||
&srcOrg, FB_ALLONES, GXcopy);
|
||||
|
||||
REGION_UNINIT(pDst->pDrawable->pScreen, ®ion);
|
||||
|
|
Loading…
Reference in New Issue
Block a user