On the savage list, Felix Kühling recently suggested (http://probo.probo.com/pipermail/savage40/2005-March/000331.html) using 'Option "BusType" "PCI"' as a workaround for a bug in the kernel agpgart code that causes crashes on resume. However, with this option I get crashes and graphics corruption on my Acer Aspire with a Twister chip, using the binary DRI driver snapshots. A good program for triggering the crashes is the Helios screensaver from rss-glx (http://rss-glx.sourceforge.net), this locks the system hard within a few minutes. Without the BusType option everything (except resuming from suspend) works fine. The relevant portion of my xorg.conf is Section "Device" Identifier "S3 Inc. VT8636A [ProSavage KN133] AGP4X VGA Controller (TwisterK)" Driver "savage" BusID "PCI:1:0:0" Option "HWCursor" "on" Option "AGPMode" "4" Option "BusType" "PCI" # This option causes crashes EndSection I'm using Ubuntu xorg version 6.8.2-10 and I've tried different snapshots from the past few months, all of them eventually crash after the screensaver has kicked in (ordinary 2D graphics works fine).
I've seen corruption in PCI Vertex DMA mode on my SavageIX. The Twister will use PCI Command DMA with your configuration. So my theory is that commands get corrupted on the way to the hardware so you get lockups. I suspect this is some weird hardware problem given that PCI mode works just fine on my ProSavageDDR (at least it did last time I checked ...). You may be able to work around it by disabling DMA completely. Set Option "DmaMode" "None" in xorg.conf in the Savage device section. Please let us know if this helps.
(In reply to comment #1) > The Twister will use PCI Command DMA with your configuration. So my theory is > that commands get corrupted on the way to the hardware so you get lockups. > You may be able to work around it by disabling DMA completely. Set Option > "DmaMode" "None" in xorg.conf in the Savage device section. Please let us know > if this helps. Well, it helps a bit. I haven't seen any lockups after enabling that option, but there are still graphics glitches: OpenGL screensavers that operate on a screenshot no longer work. For instance, GFlux which shows a screenshot being shaken like a carpet now only shows a solid grey colour moving about. MirrorBlob, which used to show something like a magnifying glass moving across the screen doesn't show anything at all. By the way, do you know if the agpgart bug is likely to be fixed?
(In reply to comment #2) > For instance, GFlux which shows a screenshot being shaken like a carpet now only > shows a solid grey colour moving about. MirrorBlob, which used to show something > like a magnifying glass moving across the screen doesn't show anything at all. That's probably because you don't have enough texture memory without using AGP. See if you can increase the shared graphics memory size in the BIOS setup. If you run with 32bpp color depth reducing it to 16bpp will free up more memory for textures too. Another trick is to use only one texture unit. You can configure this for specific screen savers with driconf. > > By the way, do you know if the agpgart bug is likely to be fixed? I'm not sure if anyone reported it to the kernel bugzilla. I havn't got around to it yet. It would be great if you could check this if you're interested in getting this problem fixed. See if the latest kernel version still has the problem and if it has report it to the kernel bugzilla. I'm closing this bug now as WONTFIX since I don't know how to fix the original problem (lockups with PCI DMA). Don't even know if it's fixable at all. :-/
The agpgart issue has been reported to the kernel bugzilla as http://bugme.osdl.org/show_bug.cgi?id=4607 . Please comment there if you have any more detailed information than I could give.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.