openchrome - video driver for VIA Unichromes
is an Xorg driver for VIA chipsets that have an integrated
Unichrome graphics engine.
driver supports the following chipsets: CLE266,
KM400/KN400/KM400A/P4M800, CN400/PM800/PN800/PM880, K8M800,
CN700/VM800/P4M800Pro, CX700, P4M890, K8M890, P4M900/VN896/CN896, VX800, VX855
and VX900. The driver includes 2D acceleration and Xv video overlay
extensions. Flat panel, TV, and VGA outputs are supported, depending on the
3D direct rendering is available using experimental drivers from Mesa
(www.mesa3d.org). There is also an XvMC client library for hardware
acceleration of MPEG1/MPEG2 decoding (not available on the KM/N400) that uses
the Direct Rendering Infrastructure (DRI). The XvMC client library implements
a non-standard "VLD" extension to the XvMC standard. The current
Direct Rendering Manager (DRM) kernel module is available at
The driver supports free modes for Unichrome Pros (K8M800/K8N800, PM800/PN800,
and CN400). For plain Unichromes (CLE266, KM400/KN400), it currently supports
only a limited number of dotclocks, so if you are using X modelines you must
make sure that the dotclock is one of those supported. Supported dotclocks on
plain Unichromes are currently (in MHz): 25.2, 25.312, 26.591, 31.5, 31.704,
32.663, 33.750, 35.5, 36.0, 39.822, 40.0, 41.164, 46.981, 49.5, 50.0, 56.3,
57.284, 64.995, 65.0, 65.028, 74.480, 75.0, 78.8, 81.613, 94.5, 108.0, 108.28,
122.0, 122.726, 135.0, 148.5, 155.8, 157.5, 161.793, 162.0, 175.5, 189.0,
202.5, 204.8, 218.3, 229.5. On top of this, bandwidth restrictions apply for
both Unichromes and Unichrome Pros.
Please refer to xorg.conf(5) for general configuration details. This section
only covers configuration details specific to this driver.
The following driver options
- Option "AccelMethod"
- The driver supports "XAA" and "EXA"
acceleration methods. The default method is XAA, since EXA is still
experimental. Contrary to XAA, EXA implements acceleration for screen
uploads and downloads (if DRI is enabled) and for the Render/Composite
- Option "ActiveDevice"
- Specifies the active device combination. Any string
containing "CRT", "LCD", "DFP",
"TV" should be possible. "CRT" represents anything
that is connected to the VGA port, "LCD" is for laptop panels
(not TFT screens attached to the VGA port), "DFP" is for screens
connected to the DVI port, "TV" is self-explanatory. The default
is to use what is detected. The driver is currently unable to use LCD and
TV simultaneously, and will favour the LCD. The DVI port is not properly
probed and needs to be enabled with this option.
- Option "AGPMem"
- Sets the amount of AGP memory that is allocated at X server
startup. The allocated memory will be "integer" kB. This AGP
memory is used for the AGP command buffer (if the option
"EnableAGPDMA" is set to "true"), for DRI textures,
and for the EXA scratch area. The driver will allocate at least one system
page of AGP memory, or -- if the AGP command buffer is used -- at least 2
MB plus one system page. If there is no room for the EXA scratch area in
AGP space, it will be allocated from VRAM. If there is no room for DRI
textures, they will be allocated from the DRI part of VRAM (see the option
"MaxDRIMem"). The default amount of AGP is 32768 kB. Note that
the AGP aperture set in the BIOS must be able to accommodate the amount of
AGP memory specified here. Otherwise no AGP memory will be available. It
is safe to set a very large AGP aperture in the BIOS.
- Option "Center"
- Enables image centering on DVI displays. The default is
- Option "DisableIRQ"
- Disables the vertical blank IRQ. This is a workaround for
some mainboards that have problems with IRQs coming from the Unichrome
engine. With IRQs disabled, DRI clients have no way to synchronize their
drawing to Vblank. (IRQ is disabled by default on the KM400 and K8M800
- Option "DisableVQ"
- Disables the use of the virtual command queue. The queue is
enabled by default.
- Option "EnableAGPDMA"
- Enables the AGP DMA functionality in DRM. This requires
that DRI is enabled and will force 2D and 3D acceleration to use AGP DMA.
The XvMC DRI client will also make use of this on the CLE266 to consume
much less CPU. (This option is enabled by default, except on the K8M890
- Option "ExaNoComposite"
- If EXA is enabled (using the option
"AccelMethod"), this option enables acceleration of compositing.
Since EXA, and in particular its composite acceleration, is still
experimental, this is a way to disable a misbehaving composite
- Option "ExaScratchSize"
- Sets the size of the EXA scratch area to
"integer" kB. This area is used by EXA as a last place to look
for available space for pixmaps. Too little space will slow compositing
down. This option should be set to the size of the largest pixmap used. If
you have a screen width of over 1024 pixels and use 24 bpp, set this to
8192. Otherwise you can leave this at the default 4096. The space will be
allocated from AGP memory if available, otherwise from VRAM.
- Option "LCDDualEdge"
- Enables the use of dual-edge mode to set the LCD. The
default is disabled.
- Option "MaxDRIMem"
- Sets the maximum amount of VRAM memory allocated for DRI
clients to "integer" kB. Normally DRI clients get half the
available VRAM size, but in some cases it may make sense to limit this
amount. For example, if you are using a composite manager and you want to
give as much memory as possible to the EXA pixmap storage area.
- Option "MigrationHeuristic"
- Sets the heuristic for EXA pixmap migration. This is an EXA
core option, and starting from Xorg server version 1.3.0 this defaults to
"always". The openchrome driver performs best with
"greedy", so you should really add this option to your
configuration file. The third possibility is "smart".
- Option "NoAccel"
- Disables the use of hardware acceleration. Acceleration is
enabled by default.
- Option "NoAGPFor2D"
- Disables the use of AGP DMA for 2D acceleration, even when
AGP DMA is enabled. The default is enabled.
- Option "NoXVDMA"
- If DRI is enabled, Xv normally uses PCI DMA to transfer
video images from system to frame-buffer memory. This is somewhat slower
than direct copies due to the limitations of the PCI bus, but on the other
hand it decreases CPU usage significantly, particularly on computers with
fast processors. Some video players are buggy and will display rendering
artifacts when PCI DMA is used. If you experience this, or don't want your
PCI bus to be stressed with Xv images, set this option to
"true". This option has no effect when DRI is not enabled.
- Option "PanelSize"
- Specifies the size (width x height) of the LCD panel
attached to the system. The sizes 640x480, 800x600, 1024x768, 1280x1024,
and 1400x1050 are supported.
- Option "RotationType"
- Enabled rotation by using RandR. The driver only support
unaccelerated RandR rotations "SWRandR". Hardware rotations
"HWRandR" is currently unimplemented.
- Option "Rotate"
- Rotates the display either clockwise ("CW"),
counterclockwise ("CCW") and upside-down ("UD").
Rotation is only supported unaccelerated. Adding option
"Rotate", enables RandR rotation feature. The RandR allows
clients to dynamically change X screens.
- Option "ShadowFB"
- Enables the use of a shadow frame buffer. This is required
when rotating the display, but otherwise defaults to disabled.
- Option "SWCursor"
- Enables the use of a software cursor. The default is
disabled: the hardware cursor is used.
- Option "TVDeflicker"
- Specifies the deflicker setting for TV output. Valid values
are "0", "1", and "2". Here 0 means no
deflicker, 1 means 1:1:1 deflicker, and 2 means 1:2:1 deflicker.
- Option "TVDotCrawl"
- Enables dot-crawl suppression. The default is
- Option "TVOutput"
- Specifies which TV output to use. The driver supports
"S-Video", "Composite", "SC",
"RGB", and "YCbCr" outputs. Note that on some EPIA
boards the composite-video port is shared with audio-out and is selected
via a jumper.
- Option "TVPort"
- Specifies TV port. The driver currently supports
"DVP0", "DVP1", "DFPHigh" and
- Option "TVType"
- Specifies TV output format. The driver currently supports
"NTSC" and "PAL" timings only.
- Option "VBEModes"
- Enables the use of VBE BIOS calls for setting the display
mode. This mimics the behaviour of the vesa driver but still provides
acceleration and other features. This option may be used if your hardware
works with the vesa driver but not with the openchrome driver. It may not
work on 64-bit systems. Using "VBEModes" may speed up driver
acceleration significantly due to a more aggressive hardware setting,
particularly on systems with low memory bandwidth. Your refresh rate may
be limited to 60 Hz on some systems.
- Option "VBESaveRestore"
- Enables the use of VBE BIOS calls for saving and restoring
the display state when the X server is launched. This can be extremely
slow on some hardware, and the system may appear to have locked for 10
seconds or so. The default is to use the driver builtin function. This
option only works if option "VBEModes" is enabled.
- Option "VideoRAM"
- Overrides the VideoRAM autodetection. This should never be
Unichromes tend to be paired with several different TV encoders.
- VIA Technologies VT1621
- Still untested, as no combination with a Unichrome is known
or available. Supports the following normal modes: "640x480" and
"800x600". Use "640x480Over" and
"800x600Over" for vertical overscan. These modes are made
available by the driver; modelines provided in xorg.conf will be
- VIA Technologies VT1622, VT1622A, VT1623
- Supports the following modes: "640x480",
"800x600", "1024x768", "848x480",
"720x480" (NTSC only) and "720x576" (PAL only). Use
"1024x768Over", "848x480Over", "720x480Over"
(NTSC) and "720x576Over" (PAL) for vertical overscan. The modes
"720x480Noscale" (NTSC) and "720x576Noscale" (PAL)
(available on VT1622 only) provide cleaner TV output (unscaled with only
minimal overscan). These modes are made available by the driver; modelines
provided in xorg.conf will be ignored.
Xorg(1), xorg.conf(5), Xserver(1), X(7), EXA(5), Xv(5)
Authors include: ...