Bug #5478: More use of fbSOlidFillmmx. (Jim Huang)
This commit is contained in:
parent
b0e6778265
commit
d9b8bfbfaf
|
@ -1,3 +1,9 @@
|
||||||
|
2006-04-03 Adam Jackson <ajax@freedesktop.org>
|
||||||
|
|
||||||
|
* fb/fbfill.c:
|
||||||
|
* fb/fbwindow.c:
|
||||||
|
Bug #5478: More use of fbSOlidFillmmx. (Jim Huang)
|
||||||
|
|
||||||
2006-04-03 Adam Jackson <ajax@freedesktop.org>
|
2006-04-03 Adam Jackson <ajax@freedesktop.org>
|
||||||
|
|
||||||
* fb/fbmmx.c:
|
* fb/fbmmx.c:
|
||||||
|
|
12
fb/fbfill.c
12
fb/fbfill.c
|
@ -209,7 +209,17 @@ fbSolidBoxClipped (DrawablePtr pDrawable,
|
||||||
|
|
||||||
if (partY2 <= partY1)
|
if (partY2 <= partY1)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
#ifdef USE_MMX
|
||||||
|
if (!and && fbHaveMMX())
|
||||||
|
{
|
||||||
|
if (fbSolidFillmmx (pDrawable,
|
||||||
|
partX1, partY1,
|
||||||
|
(partX2 - partX1), (partY2 - partY1),
|
||||||
|
xor))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
fbSolid (dst + (partY1 + dstYoff) * dstStride,
|
fbSolid (dst + (partY1 + dstYoff) * dstStride,
|
||||||
dstStride,
|
dstStride,
|
||||||
(partX1 + dstXoff) * dstBpp,
|
(partX1 + dstXoff) * dstBpp,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $XdotOrg: xserver/xorg/fb/fbwindow.c,v 1.9 2005/10/02 08:28:26 anholt Exp $ */
|
/* $XdotOrg: xserver/xorg/fb/fbwindow.c,v 1.10 2006/02/10 22:00:21 anholt Exp $ */
|
||||||
/*
|
/*
|
||||||
* Id: fbwindow.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
|
* Id: fbwindow.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
|
||||||
*
|
*
|
||||||
|
@ -217,10 +217,23 @@ fbFillRegionSolid (DrawablePtr pDrawable,
|
||||||
int n = REGION_NUM_RECTS(pRegion);
|
int n = REGION_NUM_RECTS(pRegion);
|
||||||
BoxPtr pbox = REGION_RECTS(pRegion);
|
BoxPtr pbox = REGION_RECTS(pRegion);
|
||||||
|
|
||||||
|
#ifdef USE_MMX
|
||||||
|
int has_mmx = 0;
|
||||||
|
if (!and && fbHaveMMX())
|
||||||
|
has_mmx = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
fbGetDrawable (pDrawable, dst, dstStride, dstBpp, dstXoff, dstYoff);
|
fbGetDrawable (pDrawable, dst, dstStride, dstBpp, dstXoff, dstYoff);
|
||||||
|
|
||||||
while (n--)
|
while (n--)
|
||||||
{
|
{
|
||||||
|
#ifdef USE_MMX
|
||||||
|
if (!has_mmx || !fbSolidFillmmx (pDrawable,
|
||||||
|
pbox->x1,
|
||||||
|
pbox->y1,
|
||||||
|
(pbox->x2 - pbox->x1),
|
||||||
|
(pbox->y2 - pbox->y1), xor)) {
|
||||||
|
#endif
|
||||||
fbSolid (dst + (pbox->y1 + dstYoff) * dstStride,
|
fbSolid (dst + (pbox->y1 + dstYoff) * dstStride,
|
||||||
dstStride,
|
dstStride,
|
||||||
(pbox->x1 + dstXoff) * dstBpp,
|
(pbox->x1 + dstXoff) * dstBpp,
|
||||||
|
@ -228,6 +241,9 @@ fbFillRegionSolid (DrawablePtr pDrawable,
|
||||||
(pbox->x2 - pbox->x1) * dstBpp,
|
(pbox->x2 - pbox->x1) * dstBpp,
|
||||||
pbox->y2 - pbox->y1,
|
pbox->y2 - pbox->y1,
|
||||||
and, xor);
|
and, xor);
|
||||||
|
#ifdef USE_MMX
|
||||||
|
}
|
||||||
|
#endif
|
||||||
fbValidateDrawable (pDrawable);
|
fbValidateDrawable (pDrawable);
|
||||||
pbox++;
|
pbox++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue