[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: