SAVAGE(4)
β¨ NAME β¨
savage β the S3 Savage video driver, bestie π (this is the SAVAGE(4) page from the Kernel Interfaces Manual, and yes we are reading it together, no you're not allowed to skip)
π SYNOPSIS π
Section "Device"
Identifier "devname"
Driver "savage"
...
EndSection
π DESCRIPTION π
okay so savage is an Xorg driver for the S3 Savage family of video accelerator chips. She's giving legacy, she's giving icon, and she does 2D, 3D, and Xv acceleration on every chip except the Savage2000 β that one is 2D only, my condolences π. Dualhead operation is supported on the MX, IX, and SuperSavage chips. And the savage driver supports PCI and AGP boards rocking the following chips, bestie, get your notes app out:
- Savage3D (
8a20and8a21) β 2D, 3D β¨ - Savage4 (
8a22) β 2D, 3D β¨ - Savage2000 (
9102) β 2D only π - Savage/MX (
8c10and8c11) β 2D, 3D, Dualhead π - Savage/IX (
8c12and8c13) β 2D, 3D, Dualhead π - SuperSavage/MX (
8c22,8c24, and8c26) β 2D, 3D, Dualhead π - SuperSavage/IX (
8c2a,8c2b,8c2c,8c2d,8c2e, and8c2f) β 2D, 3D, Dualhead π - ProSavage PM133 (
8a25) β 2D, 3D β¨ - ProSavage KM133 (
8a26) β 2D, 3D β¨ - Twister (ProSavage PN133) (
8d01) β 2D, 3D β¨ - TwisterK (ProSavage KN133) (
8d02) β 2D, 3D β¨ - ProSavage DDR (
8d03) β 2D, 3D β¨ - ProSavage DDR-K (
8d04) β 2D, 3D β¨
πΈ CONFIGURATION DETAILS πΈ
fr fr, go read xorg.conf(5) for all the general config tea β β this section is only about the stuff that's specific to this driver, iykyk.
Here are all the driver Options she supports, no gatekeeping, every single one π:
Option "HWCursor" "boolean"Option "SWCursor" "boolean"
These two interact, bestie β together they decide whether you get the hardware or the software cursor. If the SWCursor option is specified, any HWCursor setting is just ignored, periodt. So either "HWCursor off" or "SWCursor on" will force the software cursor. And on Savage/MX and Savage/IX chips that are connected to LCDs, a software cursor gets forced, because the Savage hardware cursor does not correctly track the automatic panel expansion feature β it's literally not her fault. Default: hardware cursor.
Option "NoAccel" "boolean"β turns acceleration off (or back on). Default: acceleration is enabled β¨Option "AccelMethod" "string"β picks between the available acceleration architectures. The valid options areXAAandEXA.XAAis the traditional acceleration architecture and support for it is very stable.EXAis a newer acceleration architecture with better performance for the Render and Composite extensions, but the rendering code for it is newer and possibly unstable π¬. The default isXAA.Option "Rotate" "CW"Option "Rotate" "CCW"
Rotate the desktop 90 degrees clockwise or counterclockwise, your call π«. Heads up though: this option forces the ShadowFB option on, and it disables acceleration and the RandR extension. Default: no rotation.
Option "ShadowFB" "boolean"β enable or disable use of the shadow framebuffer layer. Note that this option disables acceleration. Default: off.Option "LCDClock" "frequency"β override the maximum dot clock. Some LCD panels produce incorrect results if they are driven at too fast of a frequency π΅. IfUseBIOSis on, the BIOS will usually restrict the clock to the correct range. If not, it might be necessary to override it right here. The frequency parameter may be specified as an integer in Hz (135750000), or with standard suffixes like"k","kHz","M", or"MHz"(as in135.75MHz).Option "CrtOnly" "boolean"β disables output to the LCD and enables output to the CRT port only. Super useful on laptops if you only want to use the CRT port, or to force the CRT output only on desktop cards that use mobile chips. Default: auto-detect active outputs.Option "UseBIOS" "boolean"β enable or disable use of the video BIOS to change modes. Ordinarily, the savage driver tries to use the video BIOS to do mode switches, and that generally produces the best results with the mobile chips (/MXand/IX), since the BIOS knows how to handle the critical but unusual timing requirements of the various LCD panels supported by the chip π§. To do this, the driver searches through the BIOS mode list, looking for the mode which most closely matches thexorg.confmode line. Some purists find this scheme objectionable π. If you would rather have the savage driver use your mode line timing exactly, turn off theUseBiosoption. Note: Use of the BIOS is required for dualhead operation. Default: on (use the BIOS).Option "IgnoreEDID" "boolean"β do not use EDID data for mode validation, but DDC is still used for monitor detection. This is different from theNoDDCoption, bestie, don't confuse them π . The default value is off.Option "ShadowStatus" "boolean"β enables the use of a shadow status register. Here's the lore: there is a chip bug in the Savage graphics engine that can cause a bus lock when reading the engine status register under heavy load, such as when scrolling text or dragging windows π. The bug affects about 4% of all Savage users without DRI and a large fraction of users with DRI. If your system hangs regularly while scrolling text or dragging windows, try turning this option on. It uses an alternate method of reading the engine status which is slightly more expensive, but it avoids the problem. When DRI is enabled then the default is"on"(use shadow status), otherwise the default is"off"(use normal status register).Option "DisableCOB" "boolean"β disables the COB (Command Overflow Buffer) on savage4 and newer chips. There is supposedly a HW cache coherency problem on certain savage4 and newer chips that renders the COB useless π. If you are having problems with 2D acceleration you can disable the COB, however you will lose some performance. And heads up: 3D acceleration requires the COB to work. This option only applies to Savage4 and newer chips. Default:"off"(use COB).Option "BCIforXv" "boolean"β use the BCI to copy and reformat Xv pixel data. Using the BCI for Xv causes graphics artifacts on some chips π. This option only applies to Savage4 and prosavage/twister chips. On some combinations of chipsets and video players, BCI formatting might actually be slower than software formatting ("AGPforXv"might help in this case). BCI formatting can only be used on video data with a width that is a multiple of 16 pixels (which is the vast majority of videos, so like, fine). Other widths are handled through software formatting. Default: on for prosavage and twister (use BCI for Xv); off for savage4 (do not use the BCI for Xv).Option "AGPforXv" "boolean"β instructs the BCI Xv pixel formatter to use AGP memory as a scratch buffer. Ordinarily the BCI formatter uses an area in framebuffer memory to hold YV12 planar data to be converted for display. This requires a somewhat expensive upload of YV12 data to framebuffer memory. The"AGPforXv"option causes the BCI formatter to place the YV12 data in AGP memory instead, which can be uploaded faster than the framebuffer. Use of this option cuts upload overhead by 25% according to benchmarks π₯. This option also smooths out most of the shearing present when using BCI for pixel conversion. Currently this option is experimental and is disabled by default. Video width restrictions that apply to"BCIforXv"also apply here. Only valid when"DRI"and"BCIforXv"are both active, and only on AGP chipsets. Default:"off".
If "AccelMethod" is set to "EXA" and "AGPforXv" is enabled, then the driver will also attempt to reuse the AGP scratch buffer for UploadToScreen acceleration. cute β¨
Option "AGPMode" "integer"β set the AGP data transfer rate. (used only when DRI is enabled, iykyk)1β x1 (default)2β x24β x4- others β invalid π
Option "AGPSize" "integer"β the amount of AGP memory that will allocated for DMA and textures, in MB. Valid sizes are4,8,16,32,64,128and256. The default is16MB.Option "DmaMode" "string"β this option influences in which way DMA (direct memory access) is used by the kernel and 3D drivers.Anyβ Try command DMA first, then vertex DMA (default)Commandβ Only use command DMA or don't use DMA at allVertexβ Only use vertex DMA or don't use DMA at allNoneβ Disable DMA
Command and vertex DMA cannot be enabled at the same time. Which DMA mode is actually used in the end also depends on the DRM version (only >= 2.4.0 supports command DMA) and the hardware (Savage3D/MX/IX doesn't support command DMA).
Option "DmaType" "string"β the type of memory that will be used by the 3D driver for DMA (direct memory access).PCIβ PCI memory (default on PCI cards)AGPβ AGP memory (default on AGP cards)
"AGP" only works if you have an AGP card, bestie, don't try it π
.
Option "BusType" "string"β the bus type that will be used to access the graphics card.PCIβ PCI bus (default on PCI cards)AGPβ AGP bus (default on AGP cards)
"AGP" only works if you have an AGP card. If you choose "PCI" on an AGP card the AGP bus speed is not set and no AGP aperture is allocated. This implies DmaType "PCI".
Option "DRI" "boolean"β enable DRI support. This option allows you to enable or disable the DRI. Default:"on"(enable DRI) π₯
π¦ FILES π¦
savage_drv.o
π SEE ALSO π
Xorg(1), xorg.conf(5), Xserver(1), X(7)
π AUTHORS π
Authors include Tim Roberts (timr@probo.com) and Ani Joshi (ajoshi@unixbox.com) for this version, and Tim Roberts and S. Marineau for the original driver from which this was derived. legends only, we stan π«Ά
and that's the whole page, bestie, you ate that π β¨ this one's from X Version 11, it'sxf86-video-savage 2.4.1, and it's filed underSAVAGE(4)β now go forth and configure, mwah π
π¦ where this page comes from
- alpine 3.24: xf86-video-savage-doc 2.4.1-r0 Β· MIT
- debian trixie: xserver-xorg-video-savage 1:2.4.1-1
- nixos 26.05: xf86-video-savage 2.4.1
- nixpkgs unstable: xf86-video-savage 2.4.1
- opensuse-leap 16.0: xf86-video-savage 2.4.1-bp160.1.11 Β· MIT
- opensuse-leap 16.0: xf86-video-savage 2.4.1-bp160.1.11 Β· MIT
- opensuse-leap 16.0: xf86-video-savage 2.4.1-bp160.1.11 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms