View | Details | Raw Unified | Return to bug 117163
Collapse All | Expand All

(-)hw/xfree86/xaa/xaaPict.c (-6 / +15 lines)
Lines 506-517 XAAComposite (CARD8 op, Link Here
506
    XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
506
    XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
507
    XAA_RENDER_PROLOGUE(pScreen, Composite);
507
    XAA_RENDER_PROLOGUE(pScreen, Composite);
508
508
509
    if((op == PictOpSrc) && !pMask && infoRec->pScrn->vtSema &&
509
    if(!pMask && infoRec->pScrn->vtSema &&
510
	infoRec->ScreenToScreenBitBlt &&
510
       infoRec->ScreenToScreenBitBlt &&
511
        pSrc->pDrawable &&
511
       pSrc->pDrawable &&
512
	DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
512
       DRAWABLE_IS_ON_CARD(pSrc->pDrawable) &&
513
	DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
513
       DRAWABLE_IS_ON_CARD(pDst->pDrawable) &&
514
	!pSrc->transform && !pSrc->repeat && (pSrc->format == pDst->format))
514
       !pSrc->transform &&
515
       (!pSrc->repeat || (xSrc >= 0 && ySrc >= 0 &&
516
			  xSrc+width<=pSrc->pDrawable->width &&
517
			  ySrc+height<=pSrc->pDrawable->height)) &&
518
       ((op == PictOpSrc && pSrc->format == pDst->format) ||
519
	(op == PictOpOver && !pSrc->alphaMap && !pDst->alphaMap &&
520
	 ((pSrc->format==PICT_x8r8g8b8 &&
521
	   (pDst->format==PICT_x8r8g8b8 || pDst->format==PICT_a8r8g8b8)) ||
522
	  (pSrc->format==PICT_x8b8g8r8 &&
523
	   (pDst->format==PICT_x8b8g8r8 || pDst->format==PICT_a8b8g8r8))))))
515
    {
524
    {
516
	XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height);
525
	XAACompositeSrcCopy(pSrc, pDst, xSrc, ySrc, xDst, yDst, width, height);
517
    } else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) ||
526
    } else if(!pSrc->pDrawable || (pMask && !pMask->pDrawable) ||

Return to bug 117163