This would very well fit into 4.2 as well.. just in case there is another revision of the packages planned.

Thomas


Thomas Winischhofer wrote:


2 weeks ago a fix for the pixmap cache was committed to CVS HEAD, with the following short description:

376. Fix an XAA pixmap cache server crash that can happen in some cases
      when the off-screen memory is heavily fragmented (David Dawes,
      based on #5752, Koike Kazuhiko, Chisato Yamauchi).

Summarized explanation: In some sitations, if memory is fragemented in a certain way (not neccessarily "heavily"), it can happen that the pixmap cache reserves a number of 512x512 slots, no 256x256 slots, and a few 128x128 slots. The cache functions cannot deal with this, and send a null pointer to XAATileCache(), causing calls to driver accelerator functions with illegal coordinates. In most of the cases, this leads to a complete machine freeze.

Since I experienced this crash frequently lately (due to implementation of RENDER acceleration into the SiS driver), I would kindly ask the folks packaging XFree86 for Debian to include the attached short patch.

Thanks,

Thomas


------------------------------------------------------------------------

diff -I.*$XFree86.*$ -I.*$Id.*$ -I.*$XConsortium.*$ -I.*$Xorg.*$ -U1 -r1.30 
-r1.31
--- programs/Xserver/hw/xfree86/xaa/xaaPCache.c 25 Sep 2000 23:56:14 -0000      
1.30
+++ programs/Xserver/hw/xfree86/xaa/xaaPCache.c 16 Aug 2003 01:11:40 -0000      
1.31
@@ -765,2 +765,3 @@
        3) Don't make more than MAX_512.
+       4) Don't have any of there are no 256x256s.
@@ -787,2 +788,9 @@
     if(Target256 < 4) Target256 = 0;
+
+    if(Num512 && Num256 < 4) {
+       while(Num512 && Num256 < Target256) {
+          SubdivideList(&List512, &List256);
+          Num256 += 4; Num512--;
+       }
+    }

--
Thomas Winischhofer
Vienna/Austria
thomas AT winischhofer DOT net          *** http://www.winischhofer.net/
twini AT xfree86 DOT org



Reply via email to