Bug #4320: Improved XAA Composite fastpath.
This commit is contained in:
parent
9a2a63ca3f
commit
9db5d2dfc3
|
@ -1,3 +1,8 @@
|
||||||
|
2006-05-11 Matthias Hopf <mhopf@suse.de>
|
||||||
|
|
||||||
|
* hw/xfree86/xaa/xaaPict.c: (XAAComposite):
|
||||||
|
Bug #4320: Improved XAA Composite fastpath.
|
||||||
|
|
||||||
2006-05-10 Adam Jackson <ajax@freedesktop.org>
|
2006-05-10 Adam Jackson <ajax@freedesktop.org>
|
||||||
|
|
||||||
* record/record.c:
|
* record/record.c:
|
||||||
|
|
|
@ -507,12 +507,19 @@ XAAComposite (CARD8 op,
|
||||||
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
|
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
|
||||||
XAA_RENDER_PROLOGUE(pScreen, Composite);
|
XAA_RENDER_PROLOGUE(pScreen, Composite);
|
||||||
|
|
||||||
if((op == PictOpSrc) && !pMask && infoRec->pScrn->vtSema &&
|
if(!pMask && infoRec->pScrn->vtSema &&
|
||||||
infoRec->ScreenToScreenBitBlt &&
|
infoRec->ScreenToScreenBitBlt &&
|
||||||
pSrc->pDrawable &&
|
pSrc->pDrawable &&
|
||||||
DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
|
DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
|
||||||
DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
|
DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
|
||||||
!pSrc->transform && !pSrc->repeat && (pSrc->format == pDst->format))
|
!pSrc->transform &&
|
||||||
|
(!pSrc->repeat || (xSrc >= 0 && ySrc >= 0 &&
|
||||||
|
xSrc+width<=pSrc->pDrawable->width &&
|
||||||
|
ySrc+height<=pSrc->pDrawable->height)) &&
|
||||||
|
((op == PictOpSrc && pSrc->format == pDst->format) ||
|
||||||
|
(op == PictOpOver && !pSrc->alphaMap && !pDst->alphaMap &&
|
||||||
|
pSrc->format==pDst->format &&
|
||||||
|
(pSrc->format==PICT_x8r8g8b8 || pSrc->format==PICT_x8b8g8r8))))
|
||||||
{
|
{
|
||||||
XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height);
|
XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height);
|
||||||
} else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) ||
|
} else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) ||
|
||||||
|
|
Loading…
Reference in New Issue