Driver Behavior and Configuration
Contents
The driver supports the following monitor configurations.
Single Head: Single monitor operation only. If a second monitor is connected, it remains dark. This is the only available display mode setting if you have only one monitor connected. This is further the only mode Quad Buffer Stereo ("Active Stereo") is working.
Clone: The contents of the primary monitor are duplicated on the second monitor. If one monitor cannot display the selected resolution, a lower resolution is automatically selected for this monitor. The original resolution is used then as it was specified as the virtual resolution. This means the second screen will do panning when the mouse moves ahead. The configuration file contains only one Screen section and one Monitor section. The Monitor specific data for the secondary display is handled by the Hsync2, Vrefresh2, and Mode2 options. Custom modes are only applied to the the primary display.
Big Desktop: There is a single big frame buffer that gets split either horizontally or vertically and each half is sent to a single monitor. The configuration file contains only one Screen section and one Monitor section. The Monitor specific data for the secondary display is handled by the Hsync2, Vrefresh2, and Mode2 options. Custom modes are only applied to the primary display.
Mirror: Both displays are driven by the primary CRTC and they operate at the same display mode. When two monitors have different capabilities, the mode validation will fall back to the highest common mode that can be supported by both monitors. Note that in some cases two displays cannot be driven by the same CRTC, then two controllers will automatically be used.
Dual Head: In this mode, the X server is configured to have two screens on two different channels of the same adapter. In other words in the configuration file there will be two Monitor sections and two Screen sections. This will create two independent desktops managed by the window manager. Since the DRI module has problems with Xinerama the driver does not support extended desktop with Xinerama.
By default any physically connected display will be initialized under Clone mode (if possible) in display priority order during X server startup. This behavior can be overridden through the use of the ForceMonitors feature. ForceMonitors can be used to set all specified displays to enabled or disabled regardless of physical connection. For example, suppose a CRT and a DFP are physically connected. It is possible through ForceMonitors to disable the DFP and force STV to on. The STV could then be physically connected at a later time for viewing. When using ForceMonitors with an unconnected CRT the default behavior will be to initialize the display in 1024x768 resolution. Since the monitor is not connected the EDID information cannot be determined, as a result the driver initializes the display safe mode. In order to override this behavior a custom mode or custom sync ranges must be set for this CRT display.
The driver supports any combination of two connected displays, such as CRT/DFP, CRT/STV, CRT/CRT, etc. More then two connected displays may operate correctly but is not officially supported at this time. The assignment of primary and secondary display is done through priority order, which is LCD, DFP on internal TMDS, DFP2, DFP on external TMDS, STV, CV, CRT on primary DAC, and CRT on secondary DAC respectively. In order to determine which displays are connected examine the var/log/XFree86.0.log (or Xorg.0.log) file and look for the Display1 through DisplayN tags. These tags will describe which displays have been detected and the respective hardware component that they have been attached to. Using the information in the log file and the priority sequence the primary and secondary displays can be derived.
When configuring the TVOUT it is important to set the TVFormat to the correct local broadcast standard. By default this value will be determined by the video BIOS but it is most likely has been assigned NTSC.
By default all VESA modes, EDID modes, and custom modes will be enumerated for mode selection. A custom mode is defined as a mode specified by a Modeline in the Monitor section of the configuration file. Custom modes take precedence over all other types of modes. If a custom mode exists at a particular resolution then only custom modes can be set at that resolution. Custom modes and custom sync range can only be applied to DFP and CRT displays. In the case of Dual Head each Monitor section will only have visibility of its own custom modes. If a CRT display is connected and it does not have EDID information then this display is enabled in 1024x768. To override this behavior use of custom sync ranges or a custom modes must be employed.
The set of all modes that will be enumerated is determined by the value of Modes and/or Mode2 depending on the DesktopSetup. Note, the Modes setting is specified in the Display sub-section whereas the Mode2 option is specified in the Device section of the configuration file. The driver only supports modes named by the following format, “<width>x<height>”. For example, “1024x768” is a valid mode and “bob” or “1024 x 768” are invalid mode names. If the first mode in the mode listing is not the largest specified mode then the X server will start as a virtual desktop with pan and scan.
The PreferredVRefresh setting is used to limit the maximum refresh rate that will be chosen when changing modes. For example, if the resolution 1024x768 has 5 different vertical refreshes, namely 100, 90, 80, 70, and 60, and the PreferredVRefresh is 85 then a refresh rate of 80 Hz will be chosen for this resolution. The default PreferredVRefresh is 85 Hz.
If custom refresh rates have been set then they will override any refresh rate information obtained from the EDID. Custom refresh rates should be used in the case of non-ddc monitors or monitors with incorrect EDID data. The easiest way to force the setting of a particular mode is to use a custom mode.
Custom modes can will also effect the way in which refresh rates are selected. If there is a custom mode set then the highest refresh rate at the custom mode resolution will be chosen. This behavior only comes into effect when there is more then one custom mode specified at a particular resolution. For example, if two custom modes are specified at 1024x768, one is 60 Hz and the other is 120 Hz, the 120 Hz mode will be chosen.
Name |
Definition |
EDID |
Extended Display Identification Data. Most modern displays will include EDID data such as sync ranges, modes, and other miscellaneous data. |
CRTC |
Hardware block on the ASIC which drives the display. |
VESA |
Video Electronics Standards Association. Defines a set of modes called VESA modes. |
DFP |
Digital Flat Panel. |
LVDS |
Low Voltage Differential Signaling. Used for laptop flat panel displays (LCD). |
CRT |
Cathode Ray Tube. |
STV |
S-Video out for TV. |
TMDS |
Transmission Minimized Differential Signaling. Used for desktop flat panel displays (DFP). |
DAC |
Digital to Analog Converter. Connected to a CRTC hardware block. |
Appendix: Configuration File Specifics
The listed options are to be specified in the Device section of the configuration file with the following syntax:
Option “<option name>” “<option value>”
Ex: Option “DesktopSetup” “c”
Option Keyword |
Parameter Type |
Description |
PreferredVRefresh |
Integer |
This option sets the maximum preferred refresh rate when the X server starts or when xrandr is used to change modes. |
DesktopSetup |
String |
Define desktop setup (dual-screen mode, clone mode, horizontal/vertical big desktop). The old method of using a hex value to represent DesktopSetup is deprecated. The new method is to use one of the following arguments {c, h, v, m, s, hr, vr, sr}. For example, Option DesktopSetup “c” would be used to set clone mode. (Note: c=clone, m = mirror, h = horizontal, v= vertical, s=single, r=reversed). Note: DesktopSetup only applies when there is only one screen configured for the card (otherwise it is the dual head case). |
ForceMonitors |
String |
Describe all displays that are to be enabled and/or disabled regardless of physical connection. The arguments allowed include one or more members of the following set { crt1, crt2, lvds, tv, tmds1, tmds2, tmds2i, nocrt1, nocrt2, nolvds, notv, notmds1, notmds2, notmds2i }. For example, Option ForceMonitors “crt1, notv” would be used to force CRT1 on and TVOUT off. |
Mode2 |
String |
Define secondary display resolution. For example, Option Mode2 “1024x768, 800x600, 640x480” would be used to suggest a resolution for the secondary display. The resolutions presented first in the list are given highest priority. |
HSync2 |
String |
Define secondary display horizontal sync range in clone mode. For example, Option HSync2 “50-75” would be used to override the horizontal sync range to the given value on the secondary display. By default the horizontal sync range is determined by the EDID data or by sensible defaults. Typically, this option is utilized in lieu of valid EDID data. |
VRefresh2 |
String |
Define secondary display vertical refresh range in clone mode. For example, Option VRefresh2 “50-75” would be used to override the vertical refresh rate on the secondary display. |
TVFormat |
String |
Define TV-out broadcast standard. Valid arguments include of the following set {NTSC-M, NTSC-JPN, , PAL-B, PAL-COMB-N, PAL-D, PAL-G, PAL-I, PAL-K, PAL-K1, PAL-L, PAL-M, PAL-N, PAL-SECAM-D, PAL-SECAM-K, PAL-SECAM-K1, PAL-SECAM-L}. For example, Option TVFormat “NTSC-JPN” would be used to set the NTSC Japan TV format. |
TVStandard |
String |
Define TV display priorities. The arguments allowed are exactly one of the following set {VIDEO, SCART, YUV}. |