Port a few forgotten fbSolidFillmmx()'es to fbFillmmx(). Use pixman_blt() instead of fbBltmmx()
in fbCopyNToN().
This commit is contained in:
parent
d06099b38e
commit
3f9adb18f1
20
fb/fbcopy.c
20
fb/fbcopy.c
|
@ -60,17 +60,17 @@ fbCopyNtoN (DrawablePtr pSrcDrawable,
|
|||
|
||||
while (nbox--)
|
||||
{
|
||||
#ifdef USE_MMX
|
||||
#ifndef FB_ACCESS_WRAPPER /* pixman_blt() doesn't support accessors yet */
|
||||
if (pm == FB_ALLONES && alu == GXcopy && !reverse &&
|
||||
!upsidedown && fbHaveMMX())
|
||||
!upsidedown)
|
||||
{
|
||||
if (!fbBltmmx (src, dst, srcStride, dstStride, srcBpp, dstBpp,
|
||||
(pbox->x1 + dx + srcXoff),
|
||||
(pbox->y1 + dy + srcYoff),
|
||||
(pbox->x1 + srcXoff),
|
||||
(pbox->y1 + srcYoff),
|
||||
(pbox->x2 - pbox->x1),
|
||||
(pbox->y2 - pbox->y1)))
|
||||
if (!pixman_blt ((uint32_t *)src, (uint32_t *)dst, srcStride, dstStride, srcBpp, dstBpp,
|
||||
(pbox->x1 + dx + srcXoff),
|
||||
(pbox->y1 + dy + srcYoff),
|
||||
(pbox->x1 + srcXoff),
|
||||
(pbox->y1 + srcYoff),
|
||||
(pbox->x2 - pbox->x1),
|
||||
(pbox->y2 - pbox->y1)))
|
||||
goto fallback;
|
||||
else
|
||||
goto next;
|
||||
|
@ -94,7 +94,7 @@ fbCopyNtoN (DrawablePtr pSrcDrawable,
|
|||
|
||||
reverse,
|
||||
upsidedown);
|
||||
#ifdef USE_MMX
|
||||
#ifndef FB_ACCESS_WRAPPER
|
||||
next:
|
||||
#endif
|
||||
pbox++;
|
||||
|
|
14
fb/fbfill.c
14
fb/fbfill.c
|
@ -221,13 +221,13 @@ fbSolidBoxClipped (DrawablePtr pDrawable,
|
|||
#ifdef USE_MMX
|
||||
if (!and && fbHaveMMX())
|
||||
{
|
||||
if (fbSolidFillmmx (pDrawable,
|
||||
partX1, partY1,
|
||||
(partX2 - partX1), (partY2 - partY1),
|
||||
xor)) {
|
||||
fbFinishAccess (pDrawable);
|
||||
return;
|
||||
}
|
||||
if (fbFillmmx (dst, dstStride, dstBpp,
|
||||
partX1 + dstXoff, partX2 + dstYoff, (partX2 - partX1), (partY2 - partY1),
|
||||
xor))
|
||||
{
|
||||
fbFinishAccess (pDrawable);
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
fbSolid (dst + (partY1 + dstYoff) * dstStride,
|
||||
|
|
|
@ -233,26 +233,27 @@ fbFillRegionSolid (DrawablePtr pDrawable,
|
|||
while (n--)
|
||||
{
|
||||
#ifdef USE_MMX
|
||||
if (!has_mmx || !fbSolidFillmmx (pDrawable,
|
||||
pbox->x1,
|
||||
pbox->y1,
|
||||
(pbox->x2 - pbox->x1),
|
||||
(pbox->y2 - pbox->y1), xor)) {
|
||||
if (!has_mmx || !fbFillmmx (dst, dstStride, dstBpp,
|
||||
pbox->x1 + dstXoff, pbox->y1 + dstYoff,
|
||||
(pbox->x2 - pbox->x1),
|
||||
(pbox->y2 - pbox->y1),
|
||||
xor))
|
||||
{
|
||||
#endif
|
||||
fbSolid (dst + (pbox->y1 + dstYoff) * dstStride,
|
||||
dstStride,
|
||||
(pbox->x1 + dstXoff) * dstBpp,
|
||||
dstBpp,
|
||||
(pbox->x2 - pbox->x1) * dstBpp,
|
||||
pbox->y2 - pbox->y1,
|
||||
and, xor);
|
||||
fbSolid (dst + (pbox->y1 + dstYoff) * dstStride,
|
||||
dstStride,
|
||||
(pbox->x1 + dstXoff) * dstBpp,
|
||||
dstBpp,
|
||||
(pbox->x2 - pbox->x1) * dstBpp,
|
||||
pbox->y2 - pbox->y1,
|
||||
and, xor);
|
||||
#ifdef USE_MMX
|
||||
}
|
||||
#endif
|
||||
fbValidateDrawable (pDrawable);
|
||||
pbox++;
|
||||
}
|
||||
|
||||
|
||||
fbFinishAccess (pDrawable);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user