savage - S3 Savage video driver
savage is an Xorg driver for the S3 Savage family video accelerator
chips. 2D, 3D, and Xv acceleration is supported on all chips except
the Savage2000 (2D only). Dualhead operation is supported on MX, IX,
and SuperSavage chips. The savage driver supports PCI and AGP boards
with the following chips:
Savage3D (8a20 and 8a21) (2D, 3D)
Savage4 (8a22) (2D, 3D)
Savage2000 (9102) (2D only)
Savage/MX (8c10 and 8c11) (2D, 3D, Dualhead)
Savage/IX (8c12 and 8c13) (2D, 3D, Dualhead)
SuperSavage/MX (8c22, 8c24, and 8c26) (2D, 3D, Dualhead)
SuperSavage/IX (8c2a, 8c2b, 8c2c, 8c2d, 8c2e, and 8c2f) (2D, 3D,
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)
Please refer to xorg.conf(5) for general configuration details. This
section only covers configuration details specific to this driver.
The following driver Options are supported:
Option "HWCursor" "boolean"
Option "SWCursor" "boolean"
These two options interact to specify hardware or software
cursor. If the SWCursor option is specified, any HWCursor
setting is ignored. Thus, either "HWCursor off" or "SWCursor
on" will force the use of the software cursor. On Savage/MX and
Savage/IX chips which are connected to LCDs, a software cursor
will be forced, because the Savage hardware cursor does not
correctly track the automatic panel expansion feature. Default:
Option "NoAccel" "boolean"
Disable or enable acceleration. Default: acceleration is
Option "AccelMethod" "string"
Chooses between available acceleration architectures. Valid
options are XAA and EXA. XAA is the traditional acceleration
architecture and support for it is very stable. EXA is 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 is XAA.
Option "Rotate" "CW"
Option "Rotate" "CCW"
Rotate the desktop 90 degrees clockwise or counterclockwise.
This option forces the ShadowFB option on, and disables
acceleration and the RandR extension. Default: no rotation.
Option "ShadowFB" "boolean"
Enable or disable use of the shadow framebuffer layer. 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.
If UseBIOS is on, the BIOS will usually restrict the clock to
the correct range. If not, it might be necessary to override it
here. The frequency parameter may be specified as an integer in
Hz (135750000), or with standard suffixes like "k", "kHz", "M",
or "MHz" (as in 135.75MHz).
Option "CrtOnly" "boolean"
This option disables output to the LCD and enables output to the
CRT port only. It is 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. This generally produces the best results with
the mobile chips (/MX and /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 the xorg.conf mode line. Some
purists find this scheme objectionable. If you would rather
have the savage driver use your mode line timing exactly, turn
off the UseBios option. 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 NoDDC option.
The default value is off.
Option "ShadowStatus" "boolean"
Enables the use of a shadow status register. 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. This uses an
alternate method of reading the engine status which is slightly
more expensive, but 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. 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). 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 a 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
Option "AGPMode" "integer"
Set AGP data transfer rate. (used only when DRI is enabled)
1 -- x1 (default)
2 -- x2
4 -- x4
others -- invalid
Option "AGPSize" "integer"
The amount of AGP memory that will allocated for DMA and
textures in MB. Valid sizes are 4, 8, 16, 32, 64, 128 and 256.
The default is 16MB.
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 all
Vertex -- Only use vertex DMA or don't use DMA at all
None -- 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.
Option "BusType" "string"
The bus type that will be used to access the graphics card.
PCI -- PCI bus (default)
AGP -- AGP bus
"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).
Xorg(1), xorg.conf(5), Xserver(1), X(7)
Authors include Tim Roberts (firstname.lastname@example.org) and Ani Joshi
(email@example.com) for this version, and Tim Roberts and S. Marineau
for the original driver from which this was derived.