1 Index: hw/xfree86/xaa/xaaPict.c
2 ===================================================================
3 RCS file: /cvs/xorg/xserver/xorg/hw/xfree86/xaa/xaaPict.c,v
4 retrieving revision 1.10
5 diff -u -p -u -r1.10 xaaPict.c
6 --- hw/xfree86/xaa/xaaPict.c 3 Jul 2005 08:53:49 -0000 1.10
7 +++ hw/xfree86/xaa/xaaPict.c 2 Feb 2006 17:33:58 -0000
8 @@ -506,12 +506,21 @@ XAAComposite (CARD8 op,
9 XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
10 XAA_RENDER_PROLOGUE(pScreen, Composite);
12 - if((op == PictOpSrc) && !pMask && infoRec->pScrn->vtSema &&
13 - infoRec->ScreenToScreenBitBlt &&
15 - DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
16 - DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
17 - !pSrc->transform && !pSrc->repeat && (pSrc->format == pDst->format))
18 + if(!pMask && infoRec->pScrn->vtSema &&
19 + infoRec->ScreenToScreenBitBlt &&
21 + DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
22 + DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
24 + (!pSrc->repeat || (xSrc >= 0 && ySrc >= 0 &&
25 + xSrc+width<=pSrc->pDrawable->width &&
26 + ySrc+height<=pSrc->pDrawable->height)) &&
27 + ((op == PictOpSrc && pSrc->format == pDst->format) ||
28 + (op == PictOpOver && !pSrc->alphaMap && !pDst->alphaMap &&
29 + ((pSrc->format==PICT_x8r8g8b8 &&
30 + (pDst->format==PICT_x8r8g8b8 || pDst->format==PICT_a8r8g8b8)) ||
31 + (pSrc->format==PICT_x8b8g8r8 &&
32 + (pDst->format==PICT_x8b8g8r8 || pDst->format==PICT_a8b8g8r8))))))
34 XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height);
35 } else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) ||