fglrx(4) proprietary ATI RADEON and FireGL display driver

SYNOPSIS

Section "Device"
Identifier "devname"
Driver "fglrx"
...
EndSection

DESCRIPTION

fglrx is a X.org(7x) driver for ATI (MOBILITY(TM)) RADEON® and (MOBILITY(TM)) FireGL(TM) based video cards. The driver provides hardware acceleration for 3D graphics and video playback. It includes support for dual displays, TV Output and as of version 8.21.7 also OpenGL 2.0 (GLSL).

SUPPORTED HARDWARE

Radeon HD 2400 and later AGP or PCI Express cards, as well as the FireGL 2007 series and later. Click on the 'See Release Notes' link at http://support.amd.com/us/gpudownload/linux/Pages/radeon_linux.aspx for the latest information on hardware supported by the ATI Catalyst driver.

CONFIGURATION DETAILS

Please refer to xorg.conf(5x) for general configuration details. This section only covers configuration details specific to this driver. The driver auto-detects a lot of device information necessary to initialize the card. However, if you have problems with auto-detection, you can specify:

VideoRam in kilobytes
ChipID PCI device ID

See xorg.conf(5x) for more information about these options. With the ChipID option, you can force the driver to recognize your model as a different one by overriding the Chip-ID. This could be useful, if your card is not supported by default. Look up the PCI ID of your card with lspci -n (see lspci(8)) and then search for the ID of a similar but supported model in the file pci.ids (update-pciids(8)), which is also available online at m[blue]http://pciids.sourceforge.net/pci.idsm[]. ATI itself provides a similar list at m[blue]http://www.ati.com/developer/vendorid.htmlm[].

In addition, the following driver options are supported:

Option "AGPMask" "integer"

This option applies to AGPv1/2. To handle an AGPv3 interface, you will additionally need Option "AGPv3Mask".
"0x00000001" Disable AGP 1x (forces 2x or 4x).
"0x00000002" Disable AGP 2x (forces 1x or 4x).
"0x00000004" Disable AGP 4x (forces 1x or 2x).
"0x00000010" Disable fast-writes.
"0x00000200" Disable sidebanding.

To combine several settings, only add the values. Let me show an example: "0x00000216" means: force AGP 1x (disable AGP 2x and 4x), disable fast-writes and sidebanding.

You can check, if fast-writes has been disabled by searching your kernel log for 'AgpCommand = hex-integer'. The second last hex digit should be 0 (zero) if fast-writes is off, or 1 (one) if it is on.

Option "AGPv3Mask" "integer"

This option only applies to AGPv3.


Important
It is used in addition to Option "AGPMask". That means, that you turn off fast-writes or sidebanding with Option "AGPMask".

"0x00000001" Disable AGP 4x (forces 8x).
"0x00000002" Disable AGP 8x (forces 4x).

Option "AGP8XDisableFix" "boolean"

Needs to be documented.

Option "ASICClock" "integer"

Needs to be documented.

Option "BackingStore" "boolean"

Enable or disable the "Backing store" mechanism. If this option is enabled, the X-server stores (parts of) the window content. The default is: "off".

Option "BlockSignalsOnLock" "boolean"

To allow the debugging (using gdb(1), totalview(1) and others) of multi-threaded OpenGL applications it can become necessary to disable the blocking of task interruption signals. The default is: "on".

"off"

The driver will not use signal blocking. This introduces the risk of suffering memory leaks in combination with specific user activity.


Caution
Only use it, if you really know what you are doing.

"on"

The default value. The driver does not block signals for locking.

As of now it is uncertain which is the real origin of the problem. As of now it does look like the debugger application is getting in some trouble because of not getting back the debugging control after the lock condition was removed by the driver. This might be further investigated.

Option "BufferTiling" "boolean"

Needs to be documented.

Option "BusType" "string"

This option allows one to overwrite the detected bus type. Use it, when the drivers bus detection is incorrect or when you want to force an AGP card to PCI bus. The default situation is, that the driver auto-detects the bus type. Possible values for this option are:
"AGP" AGP bus.
"PCI" PCI bus.
"PCIE" PCI Express bus (fallback: PCI).


Caution
NEVER try to force a PCI card to AGP bus.

Option "Capabilities" "integer"

... hex ... Needs to be documented.
"0x00000000" Default.
"0x00000800" Disable VSync.
"0x00008000" Maya, Houdini 4.0, Houdini 5.0, Houdini 5.5.
"0x20008000" SOFTIMAGE|XSI, SOFTIMAGE|3D.

Option "CapabilitiesEx" "integer"

... hex ... Needs to be documented.

Option "CenterMode" "boolean"

The Center-Mode allows "real" screen display in non-"panel native modes" (e.g. a resolution of 1280x1024 on a 1600x1200 LCD): one pixel of the frame buffer is one pixel on the screen. The display is centered on the screen and the surrounding screen area remains black. Note that some panels may not work in Center-Mode, so the screen remains black then. The default is: "off".

Option "ClientDriverName" "string"

Needs to be documented.

Option "Dac6Bit" "boolean"

Enables or disables the use of 6 bits per color component when in 8 bpp mode (emulates VGA mode). By default, all 8 bits per color component are used. The default is: "off".

Option "DefaultVisualTrueColor" "boolean"

Set the X-server to use a TrueColor visual as default. You can check the result with xpdyinfo(1). The default is: "off".

Option "DesktopSetup" "integer"
Option "DesktopSetup" "string"

This option defines the desktop setup. The driver can work with the following modes:
"0x00000000" "single" Single head mode.
"0x00000100" "clone" Clone mode.
"0x00000101" "mirror" Mirror mode.
"0x00000200" "horizontal" Big Desktop mode.
"0x00000201" "horizontal,reverse" Big Desktop mode.
"0x00000300" "vertical,reverse" Big Desktop mode.
"0x00000301" "vertical" Big Desktop mode.
"0x00000000"

Dual head mode.

The modes are:

Single head mode:

Single monitor operation only. If a second monitor is connected, it remains dark. Only in this mode a full overlay functionality is available.

Clone mode:

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.

Mirror mode:

The contents of the primary monitor are duplicated on the second monitor. Both monitors have an identical refresh rate and resolution.


Important
This mode is not supported on RADEON X1x00 and FireGL V3300, V3400, V5200, V7200, V7300, V7350 cards.

Big Desktop mode(s):

There is a single big frame buffer that gets split either horizontally or vertically and each half is sent to a single monitor. Both monitors have to operate with the same video mode settings and only one window manager can be used. The orientation is set with:
"0x00000200" Primary display is left.
"0x00000201" Primary display is right.
"0x00000300" Primary display is top.
"0x00000301" Primary display is bottom.

Dual head mode:

A dual head setup uses separate frame buffers, independent displays and video modes for each monitor. Two window managers can be used.


Note
A connected digital display is always the primary display. If two display devices are connected, the primary head is: the bottom DVI port on FireGL X1, LCD output on MOBILITY RADEON M9 and the only DVI port on other cards. The secondary head is: the top DVI port on FireGL X1 and the VGA port on all other cards.

Option "DisableOvScaler" "boolean"

Needs to be documented.

Option "DRM_bufsize" "integer"

Needs to be documented. (number of DRM buffers - default 100, max 127)

Option "DRM_nbufs" "integer"

Needs to be documented. (DRM buffer size, default 65536 Byte, value in Byte)

Option "EnableDepthMoves" "boolean"

Needs to be documented.

Option "EnableHPV" "boolean"

Needs to be documented.

Option "EnableLogo" "boolean"

Needs to be documented.

Option "EnableMonitor" "string"

Needs to be documented.

Option "EnableOpaqueOverlayVisual" "boolean"

Enable a depth 8 PseudoColor visual in the overlay planes that does not reserve index 255 for transparency.

Option "EnablePrivateBackZ" "boolean"

Needs to be documented.

Option "ForceGenericCPU" "boolean"

Needs to be documented.

Option "ForceMonitors" "string[,string,...]"

... Available values are: crt1, crt2, lvds, tmds1, tmds2, tmds2i, tv, nocrt1, nocrt2, nolvds, notmds1, notmds2, notmds2i, notv.

Option "FSAAEnable" "boolean"

...

Option "FSAADisableGamma" "boolean"

By default the Full scene Anti Aliasing (FSAA) gamma is set to 2.2, which is typical for CRT displays. Use this option to disable FSAA gamma. The default is: "no".

Option "FSAACustomizeMSPos" "boolean"

Use this option, if you want to customize the sample points, set with Option "FSAAScale". The default is: "no".

Option "FSAAMSPosX0" "real"
Option "FSAAMSPosY0" "real"
Option "FSAAMSPosX1" "real"
Option "FSAAMSPosY1" "real"
Option "FSAAMSPosX2" "real"
Option "FSAAMSPosY2" "real"
Option "FSAAMSPosX3" "real"
Option "FSAAMSPosY3" "real"
Option "FSAAMSPosX4" "real"
Option "FSAAMSPosY4" "real"
Option "FSAAMSPosX5" "real"
Option "FSAAMSPosY5" "real"

Use this to customize the 1st, 2nd, ... 6th sample point. Depending on your setting for Option "FSAAScale", you have to set 2, 4 or all 6 points. The pixel size is 1x1, so the range for these values is "0..1".


Note
These options are only relevant, if Option "FSAACustomizeMSPos" is enabled.

Option "FSAAScale" "integer"

Set, enable or disable Full Scene Anti Aliasing (FSAA) for cards using a multi-sampling technique to implement anti-aliasing. Possible values are:
"1" Disable FSAA (default).
"2" Uses 2 multi sample points.
"4" Uses 4 multi sample points.
"6" Uses 6 multi sample points.

Option "GammaCorrectionI" "integer"
Option "GammaCorrectionII" "integer"

Adjust the gamma correction factor. This setting can be made individual for each monitor. Normally the first is for the VGA device and the second is for the DVI device.

Option "HSync2" "frequency"

Horizontal sync range of the second monitor in e.g. big desktop mode.


Note
You can skip this value, if you define an appropriate HorizSync line in the related Section "Monitor".

Option "IgnoreEDID" "boolean"

Do not use EDID data for mode validation, but DDC is still used for monitor detection. This is different from Option "NoDDC". The default is: "off".

If the server is ignoring your modlines, set this option to "on" and try again.

Option "KernelModuleParm" "string"

If you change this option during runtime, you have to remove and reload the fglrx kernel module with rmmod fglrx && modprobe fglrx (see modprobe(8), rmmod(8)). Possible values you can provide with this option are (separate them by semicolon):
"agplock=0" Disable AGP locked user pages.
"agplock=1" Enable AGP locked user pages (default).
"agpgart=0" Use built-in AGP GART support.
"agpgart=2" Same, but only if no agpgart module is loaded.
"agpgart=3" Disable built-in AGP GART support.
"agp_try_unsupported=1" Try unsupported chipsets [1].
"debug=0" Turn debugging off.
"debug=1" Turn debugging on.
"debug=0x00040003" ???
"maxlockedmem=256" Maximum locked DMA (Direct Memory Access) memory in MB.
"noauth" ???
"su_flags=0xdead0003" Recognize card as FireGL model and enable 3DNow.


Note
If neither the built-in nor the kernel AGPGart support work, you can use [1] as a fallback.

Option "MaxGARTSize" "integer"

Configure the ATI AGP GART (Graphic Address Remapping Table) size.

Option "Mode2" "resolution1" "resolution2" "..."

...

Option "mtrr" "boolean"

Enable or disable DRI Memory Type Range Registers (MTRR) mapper. Be aware, that the driver has its own code for MTRR. The default is: "off".

Option "no_accel" "boolean"

Enables or disables all hardware acceleration (XAA). The default is: "off".

Option "no_dri" "boolean"

Enables or disables DRI extension. The default is: "off".

Option "NoDDC" "boolean"

Disable probing of DDC-information from your monitor. The default is: "off".

Option "NoTV" "boolean"

Enable or disable TV-Out for a monitor.

Option "OpenGLOverlay" "boolean"

If you enable this option, Option "VideoOverlay" will be disabled automatically.

Option "PBuffer" "integer"

...
"0" PBuffer area disabled.
"1" Size of PBuffer area 1280x1024.
"2" Size of PBuffer area 1600x1200.
"3" Size of PBuffer area 1920x1200.
"4" Size of PBuffer area 2048x1536.

Option "PowerState" "integer"

...

Option "PseudoColorVisuals" "boolean"

Enabling this options allows the usage of pseudo color visuals at the same time with true color visuals using the overlay technique. The default is: "off".

Option "RingSize" "integer"

Needs to be documented. (ring buffer size, default = "1", values in MB)

Option "ScreenOverlap" "integer"

This option is intended to allow image overlapping with e.g. two video projectors. It only applies to big desktops (see Option "DesktopSetup").

Option "SilkenMouse" "boolean"

Enable or disable the hardware cursor to be updated asynchronously by the signal handler associated with mouse events. The default is: "on".

Option "Stereo" "boolean"

To enable Stereo mode of Quad Buffer Stereo ("Active Stereo") capable cards, set this value to "on" and disable Option "VideoOverlay" and Option "OpenGLOverlay". The default is: "off".

If you enable Stereo Quad Buffering then you should not use virtual desktops bigger than the selected resolution. Further the stereo feature will only initialize if your adapter is in text-mode when launching X and the respective display mode. The adapter can not switch between multiple resolutions while keeping the stereo setup. For that reason it is highly recommended that you have only one single modes in your config file at Section "Screen" -> SubSection "Display".

Option "StereoSyncEnable" "integer"

...

Option "SWCursor" "boolean"

Disable or enable the use of a software cursor. The default is: "off".

Option "TMDSCoherentMode" "boolean"

Internal TMDS transmitter can be programmed in 2 different ways to get best signal qualities depending on connected transmitter chips in the panel. The noise must appear in 1600x1200 mode, but can also come up in 1280x1024x75Hz. You can enable or disable the coherent mode using this option. The default is: "on".

Option "TVFormat" "string"

Choose the TV format. Available values are: NTSC-JPN, NTSC-M, NTSC-N, PAL-B, PAL-CN, PAL-D, PAL-G, PAL-H, PAL-I, PAL-K, PAL-K1, PAL-L, PAL-M, PAL-N, PAL-SCART

Option "TVOverscan" "boolean"

Enable or disable TV overscan. Available values are: on, off. The default is: "on".


Note
Not all TV formats support overscan. Try to toggle overscan off before changing Option "TVFormat" if an error occurs.

Option "TVStandard" "string"

Choose the TV standard. Available values are: VIDEO, SCART, YUF

Option "TVColorAdj" "integer"

...

Option "TVHPosAdj" "integer"

Define the horizontal pixel offset from the center of the screen. The range for integer depends on the ASIC. Try to use aticonfig(1x) with option --tv-info to get a valid range.

Option "TVVPosAdj" "integer"

Define the vertical pixel offset from the center of the screen. The range for integer depends on the ASIC. Try to use aticonfig(1x) with option --tv-info to get a valid range.

Option "TVHSizeAdj" "integer"

Define the height of the TV geometry (as percentage unit). As a rule of thumb the value is valid in the range of [1..100], but it depends on what has been chosen for Option "TVFormat".

Option "TVVSizeAdj" "integer"

Define the width of the TV geometry (as percentage unit). As a rule of thumb the value is valid in the range of [1..100], but it depends on what has been chosen for Option "TVFormat".

Option "TVHStartAdj" "integer"

...

Option "UseFastTLS" "integer"

Use this option to set the method to maintain the so called Thread Local Storage (TLS) locations. The default is: "0".

"0"

Fast operations. Provides the highest possible OpenGL performance. The method makes use of a quite limited resource. This is the default.

"1"

Fast operations.

"2"

Compatible mode. Fast operations are turned off. This method is some 10% slower and uses a less limited resource. Preferred for Wine(X), emulators and other VM manipulating programs.

If you do spot an immediate segmentation fault after launching a program that makes use of OpenGL and further when the fault can be traced down to the OpenGL implementation of the graphics driver, then you should try to tune the TLS settings.

Option "UseInternalAGPGART" "boolean"

Enable or disable the usage of an internal agpgart module. If you set this option to "yes", the driver will not use the kernel's AGPGart module. Instead it will make use of the "built-in" AGP support. The default is "no", as long as the graphics driver's kernel module detects the presence of an agpgart kernel module.


Warning
If you set this option to "yes" you must ensure, that you don't have the kernel AGP support compiled in. Instead compile it as modules.

The AGP support in the driver may not always work, depending on the type of motherboard and/or card that you have. But there is a possibility, which maybe still works. Refer to the "agp_try_unsupported=1" value for Option "KernelModuleParm".

Option "VideoOverlay" "boolean"

... Video Overlay for the Xv extension ... If you want enable this option, Option "OpenGLOverlay" must not be enabled.

Option "VRefresh2" "frequency"

Vertical refresh rate range for the second monitor in e.g. big desktop mode.


Note
You can skip this value, if you define an appropriate VertRefresh line in the related Section "Monitor".

The following options are obsolete. Don't use them or use their proper replacement.

Option "EnablePageFlip" "boolean"

Obsoleted with driver version xxx.

DIAGNOSTICS

The following diagnostics may be issued in Xorg.0.log:

(II) fglrx(0): Composite extension enabled, disabling direct rendering

At the moment, the driver will automatically disable direct rendering if you enable the Composite extension. To get 3D acceleration back, simply comment or remove the line in your xorg.conf(5x) that loads the Composite extension..

(WW) fglrx: No matching Device section for instance (BusID PCI:x:x:x) found

You may see this message if you aren't using the secondary monitor connector on your card. X is just saying that you haven't given any configuration details for it, but this doesn't matter if you only have a single monitor in use. Note that the number represented by the "x" will vary depending on your system.

(WW) fglrx(0): board is an unknown third party board, chipset is supported

Don't care. The driver detected, that you have a "Powered-by-ATI" and not a "Built-by-ATI" board.

(WW) fglrx(0): Direct rendering is not supported when Xinerama is enabled

...

(WW) fglrx(0): Only single display is connected, DesktopOption will be ignored

...

(WW) fglrx(0): Option "..." is not used

Don't care. Some options became obsolete over time. Others are maybe not supported by your hardware.

(WW) fglrx(0): Specified desktop setup not supported: 8

...

(WW) fglrx(0): * DRI initialization failed!

... various reasons (e.g. running the driver without the kernel module) ...

(EE) fglrx(0): Failed to initialize UMM driver.

...

(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"
(EE) fglrx(0): cannot init AGP

This error can have many causes, but the most common is, that AGP support was not compiled into the kernel or it was compiled as module but not loaded. On 2.6 kernels make sure you've loaded the generic and the specific AGPGart module (see modprobe(8)). For example: If you have a VIA motherboard, load the "agpgart" and "via-agp" modules. If you have a nForce board, you would load "agpgart" and "nvidia-agp" ... and so on for the other chipset types.

(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENOMEM"
(EE) fglrx(0): cannot init AGP

This error is generally more difficult to diagnose and fix. A few things you could try:

• If you are using the kernel AGP support (Option "UseInternalAGPGART" is set to "no"), ensure that you have the necessary modules loaded (see also the error message above). If you are not using the kernel AGP support (Option "UseInternalAGPGART" is set to "yes"), ensure that you don't have your kernel AGP settings compiled in.

• Set Option "UseFastTLS" to "2" in your xorg.conf(5x).

• Try Option "KernelModuleParm" with "agplock=0" in your xorg.conf(5x).

• Increase your AGP aperture size in the BIOS (particularly for nForce2 boards).

• Users of nForce2 boards can also try disabling the AGP 8x support in the BIOS.

If that all didn't work, check the output of dmesg(8). Verify, that your kernel configuration is correct and if so, try a newer kernel.

(EE) fglrx(0): incompatible kernel module detected [..]

The version of the fglrx kernel module you have loaded does not match the version of the driver you have installed. This can happen if you change the driver version without unloading and reloading the fglrx module (or rebooting). To fix this error, you can simply reboot or unload the old module and load the new one: rmmod fglrx && modprobe fglrx (see modprobe(8), rmmod(8)).

(EE) AIGLX error: dlsym for __driCreateNewScreen_xxx failed (..)
(EE) AIGLX: reverting to software rendering

This error only occurs for X.org(7) versions, which use AIGLX rather than XGL. Disable AIGLX with Option "AIGLX" "off" in Section "ServerFlags" in your xorg.conf(5x)

BUGS

Known issues with the current driver can be found at m[blue]http://www2.ati.com/drivers/linux/linux_8.32.5.html#183417m[].

Report any further issues to m[blue]http://support.ati.comm[]. There is also an unofficial BTS at m[blue]http://ati.cchtml.comm[], which is known by the ATI driver team.

AUTHORS

Daniel Leidert <[email protected]>

Author.

Flavio Stanchina <[email protected]>

Author and Debian package maintainer.

Mathieu Malaterre <[email protected]>

Author.

Matthijs Kooijman <[email protected]>

Debian Bug report m[blue]http://bugs.debian.org/360819m[].

Gentoo ATI Radeon FAQ

Many things in DIAGNOSTICS. Information about several options.

COPYRIGHT


Copyright © 2005-2007 Daniel Leidert
Copyright © 2005-2006 Flavio Stanchina

See the file /usr/share/doc/fglrx_man/COPYING for license and warranty information.