Pixman merge

Make sure fbCompositeSrc_x888x8x8888mmx and fbCompositeSrc_8888x8x8888mmx
are used when possible.
This commit is contained in:
Soren Sandmann Pedersen 2007-04-26 10:24:25 -04:00
parent 3571b8e65b
commit a54ef54db1

View File

@ -1712,23 +1712,6 @@ fbComposite (CARD8 op,
} }
break; break;
} }
else
{
/* non-repeating source, repeating mask => translucent window */
if (fbCanGetSolid(pMask))
{
if (pSrc->format == PICT_x8r8g8b8 &&
pDst->format == PICT_x8r8g8b8 &&
pMask->format == PICT_a8)
{
#ifdef USE_MMX
if (fbHaveMMX())
func = fbCompositeSrc_8888x8x8888mmx;
#endif
}
}
}
}
else if (maskRepeat && else if (maskRepeat &&
pMask->pDrawable->width == 1 && pMask->pDrawable->width == 1 &&
pMask->pDrawable->height == 1) pMask->pDrawable->height == 1)
@ -1744,13 +1727,41 @@ fbComposite (CARD8 op,
if (pDst->format == pSrc->format) if (pDst->format == pSrc->format)
func = fbCompositeTrans_0888xnx0888; func = fbCompositeTrans_0888xnx0888;
break; break;
#ifdef USE_MMX
case PICT_x8r8g8b8:
if ((pDst->format == PICT_a8r8g8b8 ||
pDst->format == PICT_x8r8g8b8) &&
pMask->format == PICT_a8 && fbHaveMMX())
func = fbCompositeSrc_x888x8x8888mmx;
break;
case PICT_x8b8g8r8:
if ((pDst->format == PICT_a8b8g8r8 ||
pDst->format == PICT_x8b8g8r8) &&
pMask->format == PICT_a8 && fbHaveMMX())
func = fbCompositeSrc_x888x8x8888mmx;
break;
case PICT_a8r8g8b8:
if ((pDst->format == PICT_a8r8g8b8 ||
pDst->format == PICT_x8r8g8b8) &&
pMask->format == PICT_a8 && fbHaveMMX())
func = fbCompositeSrc_8888x8x8888mmx;
break;
case PICT_a8b8g8r8:
if ((pDst->format == PICT_a8b8g8r8 ||
pDst->format == PICT_x8b8g8r8) &&
pMask->format == PICT_a8 && fbHaveMMX())
func = fbCompositeSrc_8888x8x8888mmx;
break;
#endif
default: default:
break; break;
} }
if (func != fbCompositeGeneral) if (func != fbCompositeGeneral)
maskRepeat = FALSE; maskRepeat = FALSE;
} }
} }
}
else /* no mask */ else /* no mask */
{ {
if (fbCanGetSolid(pSrc)) if (fbCanGetSolid(pSrc))