XAA bug in 4.x
I discovered (another) XAA bug which has been present since 4.1.
Color 8x8 patterns which are smaller that 8x8 were incorrectly expanded
to 8x8 when written to the cache. In fact, the expansion was done from
source instead of destination; this lead to incorrect 8x8
representations of smaller patterns.
Patch attached, please apply to your 4.2 and 4.3 trees. (Patch is
against current CVS, but since the other XAA cache bug was fixed by
using the CVS version of the file, it should apply anyway)
Thanks,
Thomas
PS: Anyone considering re-syncing the SiS driver to the CVS head version
once again...?
--
Thomas Winischhofer
Vienna/Austria
thomas AT winischhofer DOT net *** http://www.winischhofer.net/
twini AT xfree86 DOT org
--- /root/xaaPCache.c 2003-10-06 20:23:46.000000000 +0200
+++ xaaPCache.c 2003-10-06 20:20:14.000000000 +0200
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c,v 1.30.10.1 2003/08/16 01:13:58 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c,v 1.32 2003/10/06 18:20:14 twini Exp $ */
#include "misc.h"
#include "xf86.h"
@@ -2052,7 +2052,7 @@
nw = w;
memcpy(dstPtr, srcPtr, w * Bpp);
while (nw != 8) {
- memcpy(dstPtr + (nw * Bpp), srcPtr, nw * Bpp);
+ memcpy(dstPtr + (nw * Bpp), dstPtr, nw * Bpp);
nw <<= 1;
}
}
Reply to: