]> git.pld-linux.org Git - packages/xorg-xserver-server.git/blob - xorg-xserver-server-compositefastpath.patch
- https://bugs.freedesktop.org/show_bug.cgi?id=4320
[packages/xorg-xserver-server.git] / xorg-xserver-server-compositefastpath.patch
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);
11  
12 -    if((op == PictOpSrc) && !pMask && infoRec->pScrn->vtSema &&
13 -       infoRec->ScreenToScreenBitBlt &&
14 -        pSrc->pDrawable &&
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 &&
20 +       pSrc->pDrawable &&
21 +       DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
22 +       DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
23 +       !pSrc->transform &&
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))))))
33      {
34         XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height);
35      } else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) ||
This page took 0.068013 seconds and 3 git commands to generate.