Difference between revisions of "ATI"

From ArchWiki
Jump to: navigation, search
m (Activate PCI-E 2.0)
(Undo revision 280214 by Tc (talk) - one case is not a reason to remove the statement)
(43 intermediate revisions by 10 users not shown)
Line 37: Line 37:
 
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.
 
**Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.
 
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.
 
**Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.
*Supports DRI1, RandR 1.2/1.3, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2 (with the latest Linux kernel, libdrm and Mesa versions).
+
*Supports DRI1, RandR 1.2/1.3/1.4, EXA acceleration and [[KMS|kernel mode-setting]]/DRI2.
  
 
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.
 
Generally, '''xf86-video-ati''' should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary '''catalyst''' driver.
Line 45: Line 45:
 
== Installation ==
 
== Installation ==
  
If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation|here]].
+
{{Note|If Catalyst/{{ic|fglrx}} has been previously installed, see [[ATI Catalyst#Uninstallation]].}}
  
=== Installing xf86-video-ati ===
+
[[pacman|Install]] the {{Pkg|xf86-video-ati}} package, available in the [[official repositories]].
 
+
[[pacman|Install]] {{Pkg|xf86-video-ati}}, available in the [[official repositories]].
+
 
+
The -git version of the driver and other needed packages (linux-git, etc) can be found in the [https://bbs.archlinux.org/viewtopic.php?id=79509&p=1 radeon repository] or the [[AUR]].
+
  
 
== Configuration ==
 
== Configuration ==
Line 72: Line 68:
 
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.
 
[[KMS]] enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.
  
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}} version 6.12.4 or later.
+
KMS for ATI video cards requires the [[Xorg]] free video user space driver {{Pkg|xf86-video-ati}}.
  
=== Enabling KMS ===
+
{{Note|
 +
* KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock.
 +
* As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option, however, some features like HDMI audio depend on KMS). If you have {{ic|1=radeon.modeset=0}} or {{ic|nomodeset}} among [[kernel parameters]], remove it. If you have {{ic|1=options radeon modeset=0}} anywhere in {{ic|/etc/modprobe.d/}}, remove it.
 +
}}
  
{{Note| Since Linux kernel v.2.6.33, KMS is '''enabled''' by default for autodetected ATI/AMD cards. This section remains for configurations outside stock. }}
+
=== Early start ===
 
+
==== Early start ====
+
  
 
''These two methods will start KMS as early as possible in the [[boot process]].''
 
''These two methods will start KMS as early as possible in the [[boot process]].''
  
1. The earliest point is to append the kernel line in your bootloader with {{ic|1= radeon.modeset=1}}. See your bootloader's page for info on how to do this.
+
1. Remove all conflicting UMS drivers from kernel command line:
 
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]].  Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS.  
 
* Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]].  Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS.  
 
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).
 
* AGP speed can be set with {{ic|<nowiki>radeon.agpmode=x</nowiki>}} kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).
Line 89: Line 86:
 
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.
 
* If you have a special kernel outside of stock {{ic|-ARCH}} (e.g. linux-zen), remember to use a separate ''mkinitcpio'' configuration file (e.g. {{ic|/etc/mkinitcpio-zen.conf}}) and not {{ic|/etc/mkinitcpio.conf}}.
 
* Remove any framebuffer related modules from your ''mkinitcpio'' file.
 
* Remove any framebuffer related modules from your ''mkinitcpio'' file.
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support, it is necessary to add {{ic|intel_agp}} (or {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}} etc.) before the {{ic|radeon}} module.
+
* Add {{ic|radeon}} to {{ic|MODULES}} array in your ''mkinitcpio'' file. For AGP support it is necessary to add the AGP driver for your chipset (e.g. {{ic|intel_agp}}, {{ic|ali_agp}}, {{ic|ati_agp}}, {{ic|amd_agp}}, {{ic|amd64_agp}}, etc.) before the {{ic|radeon}} module.
 
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].
 
* Re-generate your [[mkinitcpio#Image_creation_and_activation | initramfs]].
  
 
Finally, '''Reboot''' the system.
 
Finally, '''Reboot''' the system.
  
==== Late start ====
+
=== Late start ===
  
 
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''
 
''With this choice, KMS will be enabled when modules are loaded during the [[boot process]].''
Line 102: Line 99:
  
 
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]].  Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.
 
# Remove all {{ic|<nowiki>vga=</nowiki>}} options from the ''kernel'' line in the bootloader [[Boot Loader#Configuration files|configuration file]].  Using other framebuffer drivers (such as {{ic|[[uvesafb]]}} or {{ic|radeonfb}}) will conflict with KMS. Remove any framebuffer related modules from {{ic|/etc/mkinitcpio.conf}}. {{ic|<nowiki>video=</nowiki>}} can now be used in conjunction with KMS.
# Add {{ic|<nowiki>options radeon modeset=1</nowiki>}} to {{ic|/etc/modprobe.d/modprobe.conf}}.
 
 
# '''Reboot''' the system.
 
# '''Reboot''' the system.
 
=== Troubleshooting KMS ===
 
 
==== Disable KMS ====
 
 
As of Linux 3.9, the {{ic|radeon}} driver '''requires''' kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option).
 
 
If you have {{ic|<nowiki>radeon.modeset=0</nowiki>}} (or {{ic|nomodeset}}) in the kernel options line in the bootloader, remove it. If you have {{ic|<nowiki>options radeon modeset=0</nowiki>}} anywhere in {{ic|/etc/modprobe.d}}, remove it.
 
 
==== Renaming {{ic|xorg.conf}} ====
 
 
Renaming {{ic|/etc/X11/xorg.conf}}, which may include options that conflict with KMS, will force Xorg to autodetect hardware with sane defaults. After renaming, '''restart''' Xorg.
 
  
 
== Performance tuning ==
 
== Performance tuning ==
 
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.
 
The following options apply to {{ic|/etc/X11/xorg.conf.d/'''20-radeon.conf'''}}.
 
By design, xf86-video-ati runs at AGP 4x speed. It is generally safe to modify this. If you notice hangs, try reducing the value or removing the line entirely (you can use values 1, 2, 4, 8). If KMS is enabled, this option is not used and it is superseded by {{ic|radeon.agpmode}} kernel option.
 
 
Option "AGPMode" "8"
 
  
 
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU
 
'''ColorTiling''' is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU
Line 135: Line 115:
  
 
  Option "EnablePageFlip" "on"
 
  Option "EnablePageFlip" "on"
 
'''AGPFastWrite''' will enable fast writes for AGP cards. This one can cause instabilities, so be prepared to remove it if you cannot get into X. This option is not used when KMS is on.
 
 
Option "AGPFastWrite" "yes"
 
  
 
'''EXAVSync ''' option  attempts  to avoid tearing by stalling the engine until the display controller has passed the destination region.  It reduces tearing at the cost of  performance and has been know to cause instability on some chips.
 
'''EXAVSync ''' option  attempts  to avoid tearing by stalling the engine until the display controller has passed the destination region.  It reduces tearing at the cost of  performance and has been know to cause instability on some chips.
Line 151: Line 127:
 
Identifier  "My Graphics Card"
 
Identifier  "My Graphics Card"
 
Driver "radeon"
 
Driver "radeon"
Option "AGPMode"              "8"  #not used when KMS is on
 
Option "AGPFastWrite"          "off" #could cause instabilities enable it at your own risk
 
 
Option "SWcursor"              "off" #software cursor might be necessary on some rare occasions, hence set off by default
 
Option "SWcursor"              "off" #software cursor might be necessary on some rare occasions, hence set off by default
 
Option "EnablePageFlip"        "on"  #supported on all R/RV/RS4xx and older hardware, and set on by default
 
Option "EnablePageFlip"        "on"  #supported on all R/RV/RS4xx and older hardware, and set on by default
Line 176: Line 150:
 
=== Deactivating PCI-E 2.0 ===
 
=== Deactivating PCI-E 2.0 ===
  
As of kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.<br>
+
Since kernel 3.6, PCI-E v2.0 in '''radeon''' is turned on by default.
It can be unstable with some motherboards or not produce any performarce, it can be deactivated by adding "radeon.pcie_gen2=0" on the kernel command line.
+
 
 +
It can be unstable with some motherboards, so it can be deactivated by adding {{ic|1=radeon.pcie_gen2=0}} on the [[Kernel parameters|kernel command line]].
  
More info on [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article]
+
See [http://www.phoronix.com/scan.php?page=article&item=amd_pcie_gen2&num=1 Phoronix article] for more information.
  
 
=== Glamor ===
 
=== Glamor ===
Line 205: Line 180:
 
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].
 
* You can also use [[bumblebee]] with radeon, there is a {{AUR|bumblebee-amd-git}} package on [[AUR]].
  
==Powersaving==
+
== Powersaving ==
  
The powersaving part is totally different with and without KMS.
+
With the radeon driver, power saving is disabled by default and has to be enabled manually if desired.
  
=== With KMS enabled ===
+
You can choose between three different methods:
  
{{Note|Power saving through KMS is still a work in progress, some chips may have problems with it.}}
+
# [[#Dynamic frequency switching|dynpm]]
 +
# [[#Profile-based frequency switching|profile]]
 +
# [[#Dynamic power management|dpm]] (available since kernel 3.11)
  
With the radeon driver, power saving is disabled by default but the kernel provides a method to enable it using sysfs.
+
'''It is hard to say which is the best for you, so you have to try it yourself!'''
  
You can choose between two different methods. It's hard to say which is the best, you have to try it yourself.
+
Power management is supported on all chips that include the appropriate power state tables in the vbios (R1xx and newer). "dpm" is only supported on R6xx and newer chips.
 +
 
 +
See http://www.x.org/wiki/RadeonFeature/#index3h2 for details.
 +
 
 +
=== Old methods ===
  
 
==== Dynamic frequency switching ====
 
==== Dynamic frequency switching ====
Line 262: Line 243:
 
==== Graphical tools ====
 
==== Graphical tools ====
  
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|}}
+
* {{App|Radeon-tray|A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.|https://github.com/StuntsPT/Radeon-tray|{{AUR|radeon-tray}}}}
 
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}
 
* {{App|power-play-switcher|A gui for changing powerplay setting of the open source driver for ati radeon video cards.|https://code.google.com/p/power-play-switcher/|{{AUR|power-play-switcher}}}}
 
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}
 
* {{App|Gnome-shell-extension-Radeon-Power-Profile-Manager|A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.|https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager|{{AUR|gnome-shell-extension-radeon-ppm}} {{AUR|gnome-shell-extension-radeon-power-profile-manager-git}}}}
  
 
==== Other notes ====
 
==== Other notes ====
 
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).
 
  
 
To view the speed that the GPU is running at, perform the following command and you will get something like this output:
 
To view the speed that the GPU is running at, perform the following command and you will get something like this output:
Line 279: Line 258:
 
</nowiki>}}
 
</nowiki>}}
  
If {{ic|/sys/kernel/debug}} is empty, run this command:
+
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.
  
# mount -t debugfs none /sys/kernel/debug
+
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.
  
To permanently mount, add the following line to {{ic|/etc/fstab}}:
+
=== Dynamic power management ===
  
debugfs  /sys/kernel/debug  debugfs  defaults  0  0
+
With kernel 3.11, ASPM is activated by default but DPM is not. To activate it, add the parameter {{ic|1=radeon.dpm=1}} to the [[kernel parameters]].
  
It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.
+
Unlike [[#Dynamic frequency switching|dynpm]], the "dpm" method uses hardware on the GPU to dynamically change the clocks and voltage based on GPU load. It also enables clock and power gating.
  
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via [[lm_sensors]] tools or via sysfs in {{ic|/sys/class/hwmon}}.
+
There are 3 operation modes to choose from:
  
=== Without KMS ===
+
* {{ic|battery}} lowest power consumption
 +
* {{ic|balanced}} sane default
 +
* {{ic|performance}} highest performance
  
In your {{ic|xorg.conf}} file, add 2 lines to "Device" Section:
+
They can be changed via sysfs
        Option      "DynamicPM"          "on"
+
# echo battery > /sys/class/drm/card0/device/power_dpm_state
        Option      "ClockGating"        "on"
+
  
If the two options are enabled successfully, you will see following lines in /var/log/Xorg.0.log:
+
For testing or debugging purposes, you can force the card to run in a set performance mode:
  
        (**) RADEON(0): Option "ClockGating" "on"
+
* {{ic|auto}} default; uses all levels in the power state
        (**) RADEON(0): Option "DynamicPM" "on"
+
* {{ic|low}} enforces the lowest performance level
 +
* {{ic|high}} enforces the highest performance level
  
        Static power management enable success
+
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level
        (II) RADEON(0): Dynamic Clock Gating Enabled
+
        (II) RADEON(0): Dynamic Power Management Enabled
+
 
+
If you desire low power cost, you can add an extra line to "Device" Section of {{ic|xorg.conf}}:
+
        Option      "ForceLowPowerMode"  "on"
+
  
 
== TV out ==
 
== TV out ==
Line 377: Line 353:
 
== HDMI audio ==
 
== HDMI audio ==
  
HDMI audio is supported by the {{Pkg|xf86-video-ati}} video driver. By default, the necessary kernel module is disabled in kernel versions &gt;&#61;3.0. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix], you can add {{ic|radeon.audio&#61;1}} to your [[Kernel parameters]]. For example:
+
HDMI audio is supported in the {{Pkg|xf86-video-ati}} video driver. By default HDMI audio is disabled in the driver kernel versions &gt;&#61;3.0 because it can be problematic. However, if your Radeon card is listed in the [http://www.x.org/wiki/RadeonFeature Radeon Feature Matrix] it may work.  To enable HDMI audio add {{ic|1=radeon.audio=1}} to the [[Kernel parameters]].
  
{{hc|/boot/syslinux/syslinux.cfg|
+
* If there is no video after bootup, the driver option will have to be disabled.
LABEL arch
+
* If HDMI audio does not simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_output_does_not_work]].
    MENU LABEL Arch Linux
+
    LINUX ../vmlinuz-linux
+
    APPEND root&#61;/dev/sda1 ro radeon.audio&#61;1
+
    INITRD ../initramfs-linux.img
+
}}
+
  
If HDMI audio doesn't simply work after installing the driver, test your setup with the procedure at [[Advanced_Linux_Sound_Architecture#HDMI_Output_Does_Not_Work]].
+
'''Notes:'''
  
{{note|As of this writing (2013-05-20), drivers for the [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Southern Islands] cards don't support HDMI Audio.}}
+
* As of 2013-09-20, the driver does not support HDMI Audio for [http://www.x.org/wiki/RadeonFeature#Decoder_ring_for_engineering_vs_marketing_names Central Islands] cards.
 
+
* If the sound is distorted in PulseAudio try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.
* The {{ic|radeon.audio}} kernel module only works if [[#Kernel_mode-setting_(KMS)]] is enabled. By default, '''xf86-video-ati''' enables KMS.
+
* If the sound is distorted try [[PulseAudio#Glitches, skips or crackling|setting {{ic|1=tsched=0}}]] and make sure {{ic|rtkit}} daemon is running.
+
  
 
== Dual Head setup ==
 
== Dual Head setup ==
Line 409: Line 378:
  
 
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads"  "VGA-0"}}.
 
This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify {{ic|"ZaphodHeads"  "VGA-0"}}.
 
Moreover, this option allows you to easily select the screen you want to mark as primary.
 
  
 
== Enabling video acceleration ==
 
== Enabling video acceleration ==
Line 447: Line 414:
  
 
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.
 
In order to run without a configuration tile, it is recommended that the {{ic|xorg-input-drivers}} package group be installed.
 
Artifacts may also be related to [[kernel mode setting]]. Consider [[#Disable KMS|disabling KMS]].
 
  
 
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:
 
You may as well try disabling {{ic|EXAPixmaps}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}:
Line 467: Line 432:
  
 
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].
 
This issue is covered on the [[Xrandr#Adding_undetected_resolutions|Xrandr page]].
 
=== Slow performance with open-source drivers ===
 
 
{{Note|Make sure you are member of '''video''' group.}}
 
 
Some cards can be installed by default trying to use [[ATI#AMD/Ati cards and kernel mode-setting (KMS)|KMS]]. You can check whether this is your case running:
 
dmesg | egrep "drm|radeon"
 
 
This command might show something like this, meaning it is trying to default to KMS:
 
[drm] radeon default to kernel modesetting.
 
...
 
[drm:radeon_driver_load_kms] *ERROR* Failed to initialize radeon, disabling IOCTL
 
 
If your card is not supported by KMS (anything older than r100), then you can [[ATI#Disable KMS|disable KMS]]. This should fix the problem.
 
  
 
=== AGP is disabled (with KMS) ===
 
=== AGP is disabled (with KMS) ===
Line 495: Line 446:
 
=== Black screen with mouse cursor on resume from suspend in X ===
 
=== Black screen with mouse cursor on resume from suspend in X ===
  
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X.  Some parts of the screen may be redrawn when under the mouse cursor.  Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem.  See [[#Performance_tuning|performance tuning]] for more information.
+
Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X.  Some parts of the screen may be redrawn when under the mouse cursor.  Forcing {{ic|EXAPixmaps}} to {{ic|"enabled"}} in {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}} may fix the problem.  See [[#Performance tuning|performance tuning]] for more information.
  
 
=== No desktop effects in KDE4 with X1300 and Radeon driver ===
 
=== No desktop effects in KDE4 with X1300 and Radeon driver ===
Line 503: Line 454:
 
Add:
 
Add:
 
  DisableChecks=true
 
  DisableChecks=true
+
 
 
To the [Compositing] section. Ensure that compositing is enabled with:
 
To the [Compositing] section. Ensure that compositing is enabled with:
 
  Enabled=true
 
  Enabled=true
Line 535: Line 486:
 
There are three possible solutions:
 
There are three possible solutions:
 
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].
 
* Try add {{ic|<nowiki>pci=nomsi</nowiki>}} to your boot loader [[Kernel parameters]].
* If this doesn't work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.
+
* If this does not work, you can try adding {{ic|noapic}} instead of {{ic|<nowiki>pci=nomsi</nowiki>}}.
 
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.
 
* If none of the above work, then you can try running {{ic|<nowiki>vblank_mode=0 glxgears</nowiki>}} or {{ic|<nowiki>vblank_mode=1 glxgears</nowiki>}} to see which one works for you, then install {{ic|driconf}} via pacman and set that option in {{ic|~/.drirc}}.
 
=== Vertical colored stripes on chipset RS482 (Xpress 200M Series) with/out KMS ===
 
 
The bug :With the graphical chipset Xpress 200M Series (Radeon Xpress 1150), booting with KMS gives you sometimes, as soon as Xorg boots, a screen with many vertical colored stripes. You cannot {{ic|Alt+Sys+K}} or do anything. Take a look {{Bug|21918}} for more information,
 
How to fixed ? : disable dri  (needn't to disable kms)
 
Side effert: if i disable "dri" and use no kernel options (no "nomodeset") i see the vertical stripes at boot, only for 5 seconds, before having kdm displayed. Then, i have the same results.
 
If I start for example KDE Desktop Effects, i will see again the vertical stripes for 5 seconds...and return to kdm ! :)
 

Revision as of 07:13, 29 October 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

Owners of ATI/AMD video cards have a choice between AMD's proprietary driver (catalystAUR) and the open source driver (xf86-video-ati). This article covers the open source driver.

The open source driver is currently not on par with the proprietary driver in terms of 3D performance on newer cards or reliable TV-out support. It does, however, offer better dual-head support, excellent 2D acceleration, and provide sufficient 3D acceleration for OpenGL-accelerated window managers, such as Compiz or KWin.

If unsure, try the open source driver first, it will suit most needs and is generally less problematic (see the feature matrix for details).

Naming conventions

ATI's Radeon brand follows a naming scheme that relates each product to a market segment. Within this article, readers will see both product names (e.g. HD 4850, X1900) and code or core names (e.g. RV770, R580). Traditionally, a product series will correspond to a core series (e.g. the "X1000" product series includes the X1300, X1600, X1800, and X1900 products which utilize the "R500" core series – including the RV515, RV530, R520, and R580 cores).

For a table of core and product series, see Wikipedia:Comparison of AMD graphics processing units.

Overview

The xf86-video-ati (radeon) driver:

  • Works with Radeon chipsets up to HD 6xxx and 7xxxM (latest Northern Islands chipsets).
    • Radeons in the HD 77xx (Southern Islands) series are partially supported. Check the feature matrix for unsupported features.
    • Radeons up to the X1xxx series are fully supported, stable, and full 2D and 3D acceleration are provided.
    • Radeons from HD 2xxx to HD 6xxx have full 2D acceleration and functional 3D acceleration, but are not supported by all the features that the proprietary driver provides.
  • Supports DRI1, RandR 1.2/1.3/1.4, EXA acceleration and kernel mode-setting/DRI2.

Generally, xf86-video-ati should be your first choice, no matter which ATI card you own. In case you need to use a driver for newer ATI cards, you should consider the proprietary catalyst driver.

Note: xf86-video-ati is specified as radeon for the kernel and in xorg.conf.

Installation

Note: If Catalyst/fglrx has been previously installed, see ATI Catalyst#Uninstallation.

Install the xf86-video-ati package, available in the official repositories.

Configuration

Xorg will automatically load the driver and it will use your monitor's EDID to set the native resolution. Configuration is only required for tuning the driver.

If you want manual configuration, create /etc/X11/xorg.conf.d/20-radeon.conf, and add the following:

Section "Device"
    Identifier "Radeon"
    Driver "radeon"
EndSection

Using this section, you can enable features and tweak the driver settings.

Kernel mode-setting (KMS)

Tip: If you have problems with the resolution, check this page.

KMS enables native resolution in the framebuffer and allows for instant console (tty) switching. KMS also enables newer technologies (such as DRI2) which will help reduce artifacts and increase 3D performance, even kernel space power-saving.

KMS for ATI video cards requires the Xorg free video user space driver xf86-video-ati.

Note:
  • KMS is enabled by default for autodetected ATI/AMD cards. This section remains for configurations outside stock.
  • As of Linux 3.9, the radeon driver requires kernel mode-setting (the old user mode-setting can still be enabled as a kernel compile option, however, some features like HDMI audio depend on KMS). If you have radeon.modeset=0 or nomodeset among kernel parameters, remove it. If you have options radeon modeset=0 anywhere in /etc/modprobe.d/, remove it.

Early start

These two methods will start KMS as early as possible in the boot process.

1. Remove all conflicting UMS drivers from kernel command line:

  • Remove all vga= options from the kernel line in the bootloader configuration file. Using other framebuffer drivers (such as uvesafb or radeonfb) will conflict with KMS.
  • AGP speed can be set with radeon.agpmode=x kernel option, where x is 1, 2, 4, 8 (AGP speed) or -1 (PCI mode).

2. Otherwise, when the initramfs is loaded:

  • If you have a special kernel outside of stock -ARCH (e.g. linux-zen), remember to use a separate mkinitcpio configuration file (e.g. /etc/mkinitcpio-zen.conf) and not /etc/mkinitcpio.conf.
  • Remove any framebuffer related modules from your mkinitcpio file.
  • Add radeon to MODULES array in your mkinitcpio file. For AGP support it is necessary to add the AGP driver for your chipset (e.g. intel_agp, ali_agp, ati_agp, amd_agp, amd64_agp, etc.) before the radeon module.
  • Re-generate your initramfs.

Finally, Reboot the system.

Late start

With this choice, KMS will be enabled when modules are loaded during the boot process.

If you have a special kernel (e.g. linux-zen), remember to use appropriate mkinitcpio configuration file, e.g. /etc/mkinitcpio-zen.conf. These instructions are written for the default kernel (linux).

Note: For AGP support, it may be necessary to add intel_agp, ali_agp, ati_agp, amd_agp, or amd64_agp) to appropriate .conf files in /etc/modules-load.d.
  1. Remove all vga= options from the kernel line in the bootloader configuration file. Using other framebuffer drivers (such as uvesafb or radeonfb) will conflict with KMS. Remove any framebuffer related modules from /etc/mkinitcpio.conf. video= can now be used in conjunction with KMS.
  2. Reboot the system.

Performance tuning

The following options apply to /etc/X11/xorg.conf.d/20-radeon.conf.

ColorTiling is completely safe to enable and supposedly is enabled by default. Most users will notice increased performance but it is not yet supported on R200 and earlier cards. Can be enabled on earlier cards, but the workload is transferred to the CPU

Option "ColorTiling" "on"

Acceleration architecture; this will work only on newer cards. If you enable this and then cannot get back into X, remove it.

Option "AccelMethod" "EXA"

Page Flip is generally safe to enable. This would mostly be used on older cards, as enabling this would disable EXA. With recent drivers can be used together with EXA.

Option "EnablePageFlip" "on"

EXAVSync option attempts to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance and has been know to cause instability on some chips. Really useful when enabling Xv overlay on videos on a 3D accelerated desktop. It is not necessary when KMS (thus DRI2 acceleration) is enabled.

Option "EXAVSync" "yes"

Below is a sample config file /etc/X11/xorg.conf.d/20-radeon.conf:

Section "Device"
	Identifier  "My Graphics Card"
	Driver	"radeon"
	Option	"SWcursor"              "off" #software cursor might be necessary on some rare occasions, hence set off by default
	Option	"EnablePageFlip"        "on"  #supported on all R/RV/RS4xx and older hardware, and set on by default
	Option	"AccelMethod"           "EXA" #valid options are XAA, EXA and Glamor. EXA is the default
	Option	"RenderAccel"           "on"  #enabled by default on all radeon hardware
	Option	"ColorTiling"           "on"  #enabled by default on RV300 and later radeon cards
	Option	"EXAVSync"              "off" #default is off, otherwise on. Only works if EXA activated
	Option	"EXAPixmaps"            "on"  #when on icreases 2D performance, but may also cause artifacts on some old cards. Only works if EXA activated
	Option	"AccelDFS"              "on"  #default is off, read the radeon manpage for more information
EndSection

Defining the gartsize, if not autodetected, can be done by adding radeon.gartsize=32 into kernel parameters. Size is in megabytes and 32 is for RV280 cards.

Alternatively, do it with a modprobe option in /etc/modprobe.d/radeon.conf:

options radeon gartsize=32

For further information and other options, read the radeon manpage and the module's info page: man radeon, modinfo radeon.

A fine tool to try is driconf. It will allow you to modify several settings, like vsync, anisotropic filtering, texture compression, etc. Using this tool it is also possible to "disable Low Impact fallback" needed by some programs (e.g. Google Earth).

Deactivating PCI-E 2.0

Since kernel 3.6, PCI-E v2.0 in radeon is turned on by default.

It can be unstable with some motherboards, so it can be deactivated by adding radeon.pcie_gen2=0 on the kernel command line.

See Phoronix article for more information.

Glamor

Glamor is a 2D acceleration method implemented through OpenGL, and it should work with graphic cards whose drivers are newer or equal to R300.

Since xf86-video-ati driver-1:7.2.0-1, glamor is automaticaly enabled with radeonsi drivers (Southern Island and superior GFX cards); with other graphic cards you can use it by adding the AccelMethod glamor to your xorg.conf config file in the Device section:

 Option	"AccelMethod"           "glamor"

However, you need to add the following section before:

Section "Module"
	Load "dri2"
	Load "glamoregl" 
EndSection

Hybrid graphics/AMD Dynamic Switchable Graphics

It is the technology used on recent laptops equiped with two GPUs, one power-efficent (generally Intel integrated card) and one more powerful and more power-hungry (generally Radeon or Nvidia). There are three ways to get it work:

  • If you do not need to run any GPU-hungry application, you can plainly disable the discrete card: echo OFF > /sys/kernel/debug/vgaswitcheroo/switch. You can do more things with vgaswitcheroo (see Ubuntu wiki for more information) but ultimately at best one card is bound to one graphic session, you cannot use both on one graphic session.
  • You can use PRIME. It is the proper way to use hybrid graphics on Linux but still requires a bit of manual intervention from the user.
  • You can also use bumblebee with radeon, there is a bumblebee-amd-gitAUR package on AUR.

Powersaving

With the radeon driver, power saving is disabled by default and has to be enabled manually if desired.

You can choose between three different methods:

  1. dynpm
  2. profile
  3. dpm (available since kernel 3.11)

It is hard to say which is the best for you, so you have to try it yourself!

Power management is supported on all chips that include the appropriate power state tables in the vbios (R1xx and newer). "dpm" is only supported on R6xx and newer chips.

See http://www.x.org/wiki/RadeonFeature/#index3h2 for details.

Old methods

Dynamic frequency switching

This method dynamically changes the frequency depending on GPU load, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The re-clocking is attempted during vertical blanking periods, but due to the timing of the re-clocking functions, does not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.

It can be activated by simply running the following command:

# echo dynpm > /sys/class/drm/card0/device/power_method

Profile-based frequency switching

This method will allow you to select one of the five profiles (described below). Different profiles, for the most part, end up changing the frequency/voltage of the GPU. This method is not as aggressive, but is more stable and flicker free and works with multiple heads active.

To activate the method, run the following command:

# echo profile > /sys/class/drm/card0/device/power_method

Select one of the available profiles:

  • default uses the default clocks and does not change the power state. This is the default behaviour.
  • auto selects between mid and high power states based on the whether the system is on battery power or not. The low power state is selected when the monitors are in the DPMS-off state.
  • low forces the gpu to be in the low power state all the time. Note that low can cause display problems on some laptops, which is why auto only uses low when monitors are off.
  • mid forces the gpu to be in the mid power state all the time. The low power state is selected when the monitors are in the DPMS-off state.
  • high forces the gpu to be in the high power state all the time. The low power state is selected when the monitors are in the DPMS-off state.

As an example, we will activate the low profile (replace low with any of the aforementioned profiles as necessary):

# echo low > /sys/class/drm/card0/device/power_profile

Persistent configuration

The activation described above is not persistent, it will not last when the computer is rebooted. To make it persistent, you can use systemd-tmpfiles (example for #Dynamic frequency switching):

/etc/tmpfiles.d/radeon-pm.conf
w /sys/class/drm/card0/device/power_method - - - - dynpm

Alternatively, you may use this udev rule instead (example for #Profile-based frequency switching):

/etc/udev/rules.d/30-radeon-pm.rules
KERNEL=="dri/card0", SUBSYSTEM=="drm", DRIVERS=="radeon", ATTR{device/power_method}="profile", ATTR{device/power_profile}="low"
Note: If the above rule is failing, try removing the dri/ prefix.

Graphical tools

  • Radeon-tray — A small program to control the power profiles of your Radeon card via systray icon. It is written in PyQt4 and is suitable for non-Gnome users.
https://github.com/StuntsPT/Radeon-tray || radeon-trayAUR
  • power-play-switcher — A gui for changing powerplay setting of the open source driver for ati radeon video cards.
https://code.google.com/p/power-play-switcher/ || power-play-switcherAUR
  • Gnome-shell-extension-Radeon-Power-Profile-Manager — A small extension for Gnome-shell that will allow you to change the power profile of your radeon card when using the open source drivers.
https://github.com/StuntsPT/shell-extension-radeon-power-profile-manager || gnome-shell-extension-radeon-ppmAUR gnome-shell-extension-radeon-power-profile-manager-gitAUR

Other notes

To view the speed that the GPU is running at, perform the following command and you will get something like this output:

$ cat /sys/kernel/debug/dri/0/radeon_pm_info
  state: PM_STATE_ENABLED
  default engine clock: 300000 kHz
  current engine clock: 300720 kHz
  default memory clock: 200000 kHz

It depends on which GPU line yours is, however. Along with the radeon driver versions, kernel versions, etc. So it may not have much/any voltage regulation at all.

Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only). To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via lm_sensors tools or via sysfs in /sys/class/hwmon.

Dynamic power management

With kernel 3.11, ASPM is activated by default but DPM is not. To activate it, add the parameter radeon.dpm=1 to the kernel parameters.

Unlike dynpm, the "dpm" method uses hardware on the GPU to dynamically change the clocks and voltage based on GPU load. It also enables clock and power gating.

There are 3 operation modes to choose from:

  • battery lowest power consumption
  • balanced sane default
  • performance highest performance

They can be changed via sysfs

# echo battery > /sys/class/drm/card0/device/power_dpm_state

For testing or debugging purposes, you can force the card to run in a set performance mode:

  • auto default; uses all levels in the power state
  • low enforces the lowest performance level
  • high enforces the highest performance level
# echo low > /sys/class/drm/card0/device/power_dpm_force_performance_level

TV out

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:ATI#)

Since August 2007, there is TV-out support for all Radeons with integrated TV-out.

It is somewhat limited for now, it does not always autodetect the output correctly and only NTSC mode works.

First, check that you have an S-video output: xrandr should give you something like

Screen 0: minimum 320x200, current 1024x768, maximum 1280x1200
...
S-video disconnected (normal left inverted right x axis y axis)

Setting tv standard to use:

xrandr --output S-video --set "tv standard" ntsc

Adding a mode for it (currently it supports only 800x600):

xrandr --addmode S-video 800x600

I will go for a clone mode:

xrandr --output S-video --same-as VGA-0

So far so good. Now let us try to see what we have:

xrandr --output S-video --mode 800x600

At this point you should see a 800x600 version of your desktop on your TV.

To disable the output, do

xrandr --output S-video --off

Also you may notice that the video is being played on monitor only and not on the TV. Where the Xv overlay is sent is controlled by XV_CRTC attribute.

To send the output to the TV, I do

xvattr -a XV_CRTC -v 1
Note: you need to install xvattrAUR to execute this command.

To switch back to my monitor, I change this to 0. -1 is used for automatic switching in dualhead setups.

Please see Enabling TV-Out Statically for how to enable TV-out in your xorg configuration file.

Force TV-out in KMS

Kernel can recognize video= parameter in following form (see KMS for more details):

video=<conn>:<xres>x<yres>[M][R][-<bpp>][@<refresh>][i][m][eDd]

For example:

video=DVI-I-1:1280x1024-24@60e

Parameters with whitespaces must be quoted:

"video=9-pin DIN-1:1024x768-24@60e"

Current mkinitcpio implementation also requires # in front. For example:

root=/dev/disk/by-uuid/d950a14f-fc0c-451d-b0d4-f95c2adefee3 ro quiet radeon.modeset=1 security=none # video=DVI-I-1:1280x1024-24@60e "video=9-pin DIN-1:1024x768-24@60e"
  • Grub can pass such command line as is.
  • Lilo needs backslashes for doublequotes (append # \"video=9-pin DIN-1:1024x768-24@60e\")
  • Grub2: TODO

You can get list of your video outputs with following command:

$ ls -1 /sys/class/drm/ | grep -E '^card[[:digit:]]+-' | cut -d- -f2-

HDMI audio

HDMI audio is supported in the xf86-video-ati video driver. By default HDMI audio is disabled in the driver kernel versions >=3.0 because it can be problematic. However, if your Radeon card is listed in the Radeon Feature Matrix it may work. To enable HDMI audio add radeon.audio=1 to the Kernel parameters.

Notes:

  • As of 2013-09-20, the driver does not support HDMI Audio for Central Islands cards.
  • If the sound is distorted in PulseAudio try setting tsched=0 and make sure rtkit daemon is running.

Dual Head setup

Independent X screens

Independent dual-headed setups can be configured the usual way. However you might want to know that the radeon driver has a "ZaphodHeads" option which allows you to bind a specific device section to an output of your choice, for instance using:

       Section "Device"
       Identifier     "Device0"
       Driver         "radeon"
       Option         "ZaphodHeads"   "VGA-0"
       VendorName     "ATI"
       BusID          "PCI:1:0:0"
       Screen          0
       EndSection

This can be a life-saver, because some cards which have more than two outputs (for instance one HDMI out, one DVI, one VGA), will only select and use HDMI+DVI outputs for the dual-head setup, unless you explicitely specify "ZaphodHeads" "VGA-0".

Enabling video acceleration

Latest mesa package added support for MPEG1/2 decoding to free drivers, exported via libvdpau and are automaticaly detected.

You can force used driver by assigning environment variable LIBVA_DRIVER_NAME to vdpau and VDPAU_DRIVER to the name of driver core, e.g.:

~/.bashrc
export LIBVA_DRIVER_NAME=vdpau
export VDPAU_DRIVER=r600

for r600-based cards (all available VDPAU drivers are in /usr/lib/vdpau/).

Turn vsync off

The radeon driver will enable vsync by default, which is perfectly fine except for benchmarking. To turn it off, create ~/.drirc (or edit it if it already exists) and add the following section:

~/.drirc
<driconf>
    <device screen="0" driver="dri2">
        <application name="Default">
            <option name="vblank_mode" value="0" />
        </application>
    </device>
    <!-- Other devices ... -->
</driconf>

It is effectively dri2, not your video card code (like r600).

Troubleshooting

Artifacts upon logging in

If encountering artifacts, first try starting X without /etc/X11/xorg.conf. Recent versions of Xorg are capable of reliable auto-detection and auto-configuration for most use cases. Outdated or improperly configured xorg.conf files are known to cause trouble.

In order to run without a configuration tile, it is recommended that the xorg-input-drivers package group be installed.

You may as well try disabling EXAPixmaps in /etc/X11/xorg.conf.d/20-radeon.conf:

Section "Device"
    Identifier "Radeon"
    Driver "radeon"
    Option "EXAPixmaps" "off"
EndSection

Further tweaking could be done by disabling AccelDFS:

Option "AccelDFS" "off"

Adding undetected resolutions

e.g. When EDID fails on a DisplayPort connection.

This issue is covered on the Xrandr page.

AGP is disabled (with KMS)

If you experience poor performance and dmesg shows something like this

[drm:radeon_agp_init] *ERROR* Unable to acquire AGP: -19

then check if the agp driver for your motherboard (e.g., via_agp, intel_agp etc.) is loaded before the radeon module, see Enabling KMS.

TV showing a black border around the screen

When I connected my TV to my Radeon HD 5770 using the HDMI port, the TV showed a blurry picture with a 2-3cm border around it. This is not the case when using the proprietary driver. However, this protection against overscanning (see Wikipedia:Overscan) can be turned off using xrandr:

xrandr --output HDMI-0 --set underscan off

Black screen with mouse cursor on resume from suspend in X

Waking from suspend on cards with 32MB or less can result in a black screen with a mouse pointer in X. Some parts of the screen may be redrawn when under the mouse cursor. Forcing EXAPixmaps to "enabled" in /etc/X11/xorg.conf.d/20-radeon.conf may fix the problem. See performance tuning for more information.

No desktop effects in KDE4 with X1300 and Radeon driver

A bug in KDE4 may prevent an accurate video hardware check, thereby deactivating desktop effects despite the X1300 having more than sufficient GPU power. A workaround may be to manually override such checks in KDE4 configuration files /usr/share/kde-settings/kde-profile/default/share/config/kwinrc and/or .kde/share/config/kwinrc.

Add:

DisableChecks=true

To the [Compositing] section. Ensure that compositing is enabled with:

Enabled=true

Black screen and no console, but X works in KMS

This is a solution to no-console problem that might come up, when using two or more ATI cards on the same PC. Fujitsu Siemens Amilo PA 3553 laptop for example has this problem. This is due to fbcon console driver mapping itself to wrong framebuffer device that exist on the wrong card. This can be fixed by adding a this to the kernel boot line:

fbcon=map:1

This will tell the fbcon to map itself to the /dev/fb1 framebuffer dev and not the /dev/fb0, that in our case exist on the wrong graphics card.

Some 3D applications show textures as all black or crash

You might need texture compression support, which is not included with the open source driver. Install libtxc_dxtn (and lib32-libtxc_dxtn for multilib systems).

2D performance (e.g. scrolling) is slow

If you have problem with 2D performance, like scrolling in terminal or browser, you might need to add Option "MigrationHeuristic" "greedy" into the "Device" section of your xorg.conf file.

Bellow is a sample config file /etc/X11/xorg.conf.d/20-radeon.conf:

Section "Device"
        Identifier  "My Graphics Card"
        Driver  "radeon"
        Option  "MigrationHeuristic"  "greedy"
EndSection

ATI X1600 (RV530 series) 3D application show black windows

There are three possible solutions:

  • Try add pci=nomsi to your boot loader Kernel parameters.
  • If this does not work, you can try adding noapic instead of pci=nomsi.
  • If none of the above work, then you can try running vblank_mode=0 glxgears or vblank_mode=1 glxgears to see which one works for you, then install driconf via pacman and set that option in ~/.drirc.