xserver: Branch 'master'
Eric Anholt
anholt at kemper.freedesktop.org
Wed Feb 20 10:36:50 PST 2008
exa/exa_render.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
New commits:
commit 5cb9e15562a32c1f102d94d5e15d5fd298baff3f
Author: Eric Anholt <eric at anholt.net>
Date: Wed Feb 20 10:36:06 2008 -0800
EXA: Fix Render acceleration in copy and tiling cases.
Code shuffling in a634c9b03494ba80aeec28be19662ac96657cc23 broke this by
leaving pSrcPixmap = NULL.
diff --git a/exa/exa_render.c b/exa/exa_render.c
index a510e54..6df2a23 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -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);
More information about the xorg-commit
mailing list