7 February 2000 This patch fixes a text corruption problem that shows up with the Rage 128 driver in 3.3.6. To use this patch you need either the XFree86 source tree or the LinkKit. This patch cannot be used to patch binaries directly. Updated binaries for most platforms should be available soon. To apply the patch to the XFree86 source tree, go the directory containing the main "xc" directory, and run: patch -p0 -E < this-file Index: xc/programs/Xserver/hw/xfree86/vga256/drivers/r128/r128_accel.c =================================================================== RCS file: /home/x-cvs/xc/programs/Xserver/hw/xfree86/vga256/drivers/r128/Attic/r128_accel.c,v retrieving revision 1.1.2.3 diff -u -r1.1.2.3 r128_accel.c --- r128_accel.c 1999/11/18 15:37:32 1.1.2.3 +++ xc/programs/Xserver/hw/xfree86/vga256/drivers/r128/r128_accel.c 2000/01/28 03:23:14 @@ -179,7 +179,7 @@ R128InfoPtr info = R128PTR(); unsigned char *R128MMIO = info->MMIO; - R128WaitForFifo(3); + R128WaitForFifo(4); OUTREG(R128_DP_GUI_MASTER_CNTL, (info->dp_gui_master_cntl | R128_GMC_BRUSH_SOLID_COLOR | R128_GMC_SRC_DATATYPE_COLOR @@ -188,6 +188,8 @@ | R128_AUX_CLIP_DIS)); OUTREG(R128_DP_BRUSH_FRGD_CLR, color); OUTREG(R128_DP_WRITE_MASK, planemask); + OUTREG(R128_DP_CNTL, (R128_DST_X_LEFT_TO_RIGHT + | R128_DST_Y_TOP_TO_BOTTOM)); } /* Subsequent XAA FillRectSolid. */ @@ -364,6 +366,9 @@ OUTREG(R128_DST_Y_X, ((info->scanline_y++ << 16) | info->scanline_x)); OUTREG(R128_DST_HEIGHT_WIDTH, info->scanline_h_w); + + /* Correct for new XAA offset calculation */ + p += ((srcAddr/8-1)/4); #if R128_FAST_COLOR_EXPAND while (left) { Index: xc/programs/Xserver/hw/xfree86/vga256/vga/vga.h =================================================================== RCS file: /home/x-cvs/xc/programs/Xserver/hw/xfree86/vga256/vga/Attic/vga.h,v retrieving revision 3.23.2.7 diff -u -r3.23.2.7 vga.h --- vga.h 1998/07/30 06:24:18 3.23.2.7 +++ xc/programs/Xserver/hw/xfree86/vga256/vga/vga.h 2000/02/05 19:31:53 @@ -30,7 +30,7 @@ #define VGA2_PATCHLEVEL "0" #define VGA16_PATCHLEVEL "0" -#define SVGA_PATCHLEVEL "0" +#define SVGA_PATCHLEVEL "1" #include "X.h" #include "misc.h"