? Makefile
? agp.diff
? cobfixes.diff
? savage.4.html
? savage._man
? streams_cleanup.diff
? streams_cleanup_big-v2.diff
? streams_cleanup_big-v3.diff
? streams_cleanup_big.diff
? twister.diff
Index: savage_accel.c
===================================================================
RCS file: /cvs/dri/xc/xc/programs/Xserver/hw/xfree86/drivers/savage/savage_accel.c,v
retrieving revision 1.19
diff -u -r1.19 savage_accel.c
--- savage_accel.c	26 Mar 2004 17:09:04 -0000	1.19
+++ savage_accel.c	30 Mar 2004 00:39:29 -0000
@@ -479,6 +479,10 @@
 	bci_enable = BCI_ENABLE;
 	tile16 = TILE_FORMAT_DESTINATION16;
 	tile32 = TILE_FORMAT_DESTINATION32;
+    } else if (psav->Chipset == S3_TWISTER){
+	bci_enable = BCI_ENABLE_TWISTER;
+	tile16 = TILE_FORMAT_DESTINATION16;
+	tile32 = TILE_FORMAT_DESTINATION32;
     } else {
 	bci_enable = BCI_ENABLE_TWISTER;
 	tile16 = TILE_DESTINATION;
Index: savage_dri.c
===================================================================
RCS file: /cvs/dri/xc/xc/programs/Xserver/hw/xfree86/drivers/savage/savage_dri.c,v
retrieving revision 1.3
diff -u -r1.3 savage_dri.c
--- savage_dri.c	23 Mar 2004 21:11:37 -0000	1.3
+++ savage_dri.c	30 Mar 2004 00:39:30 -0000
@@ -1310,8 +1310,7 @@
       else
         TileStride = (pSAVAGEDRI->width+31)&(~31);
 
-      if ((psav->Chipset == S3_TWISTER)
-         || (psav->Chipset == S3_PROSAVAGE)
+      if ((psav->Chipset == S3_PROSAVAGE)
          || (psav->Chipset == S3_PROSAVAGEDDR)
          || (psav->Chipset == S3_SUPERSAVAGE))
       { 
@@ -1319,7 +1318,8 @@
                 	                          (1<<24) | /* destination tile format */
                         	                  (pScrn->bitsPerPixel<<16) | /* bpp */
                         	                  TileStride; /* stride */
-      } else {        
+      		pSAVAGEDRI->frontPitch 		= TileStride;
+      } else {    /* twister seems to use this format */    
       		pSAVAGEDRI->frontBitmapDesc   	= 0x10000000 | /* block write disabled */
                 	                          ((pSAVAGEDRI->cpp==2)?
                         	                     BCI_BD_TILE_16:BCI_BD_TILE_32) | /*16/32 bpp tile format */
@@ -1347,8 +1347,7 @@
       else
         TileStride = (pSAVAGEDRI->width+31)&(~31);
 
-      if ((psav->Chipset == S3_TWISTER)
-         || (psav->Chipset == S3_PROSAVAGE)
+      if ((psav->Chipset == S3_PROSAVAGE)
          || (psav->Chipset == S3_PROSAVAGEDDR)
          || (psav->Chipset == S3_SUPERSAVAGE)) /* AGD: supersavage may work like savage4/MX/IX, I just don't know. */
       {        				       /* It's here since the 2D driver sets it up like prosavage */
@@ -1356,7 +1355,7 @@
                 	                          (1<<24) |
                 	                          (pScrn->bitsPerPixel<<16) |
                 	                          TileStride;
-      } else {
+      } else {    /* twister seems to use this format */    
       		pSAVAGEDRI->backBitmapDesc   	= 0x10000000 |
                 	                          ((pSAVAGEDRI->cpp==2)?
                 	                             BCI_BD_TILE_16:BCI_BD_TILE_32) |
@@ -1377,8 +1376,7 @@
       else
         TileStride = (pSAVAGEDRI->width+31)&(~31);
 
-      if ((psav->Chipset == S3_TWISTER)
-         || (psav->Chipset == S3_PROSAVAGE)
+      if ((psav->Chipset == S3_PROSAVAGE)
          || (psav->Chipset == S3_PROSAVAGEDDR)
          || (psav->Chipset == S3_SUPERSAVAGE))
       {  
@@ -1386,7 +1384,7 @@
  	     					  (1<<24) |
 	                                          (pScrn->bitsPerPixel<<16) |
 	                                          TileStride;
-      } else {
+      } else {    /* twister seems to use this format */    
 	        pSAVAGEDRI->depthBitmapDesc   	= 0x10000000 |
                 	                          ((pSAVAGEDRI->zpp==2)?
                 	                             BCI_BD_TILE_16:BCI_BD_TILE_32) |
Index: savage_driver.c
===================================================================
RCS file: /cvs/dri/xc/xc/programs/Xserver/hw/xfree86/drivers/savage/savage_driver.c,v
retrieving revision 1.22
diff -u -r1.22 savage_driver.c
--- savage_driver.c	26 Mar 2004 22:20:40 -0000	1.22
+++ savage_driver.c	30 Mar 2004 00:39:32 -0000
@@ -1310,16 +1310,14 @@
          * The Savage4 and ProSavage have COB coherency bugs which render 
          * the buffer useless.
          */
-	/*
-        psav->cobIndex = 2;
-        psav->cobSize = 0x8000 << psav->cobIndex;
-	*/
         psav->cobIndex = 0;
         psav->cobSize = 0;
     } else {
         /* We use 128kB for the COB on all other chips. */        
         psav->cobSize = 0x20000;
-	if (S3_SAVAGE3D_SERIES(psav->Chipset)) {
+	if (S3_SAVAGE3D_SERIES(psav->Chipset)
+	    || psav->Chipset == S3_TWISTER) /* twister seems to use 7 */
+	{ 
 	    psav->cobIndex = 7; /* rev.A savage4 also uses 7 */
 	} else {
 	    psav->cobIndex = 2;
