Difference between revisions of "AMD Catalyst"

From ArchWiki
Jump to: navigation, search
(Troubleshooting)
m (upgrade links to HTTPS)
 
(448 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
[[Category: Graphics (English)]]
+
[[Category:Graphics]]
[[Category: X Server (English)]]
+
[[Category:X server]]
{{i18n|ATI Catalyst}}
+
[[es:AMD Catalyst]]
 +
[[fr:ATI#Catalyst]]
 +
[[it:AMD Catalyst]]
 +
[[ja:AMD Catalyst]]
 +
[[ru:AMD Catalyst]]
 +
[[zh-hans:AMD Catalyst]]
 +
{{Related articles start}}
 +
{{Related|ATI}}
 +
{{Related|Xorg}}
 +
{{Related articles end}}
  
{{Article summary start}}
+
Owners of ATI/AMD video cards have a choice between AMD's proprietary driver ({{AUR|catalyst}}) and the open source driver ([[ATI]] for older or [[AMDGPU]] for newer cards). This article covers the proprietary driver.
{{Article summary text|An overview of ATI's proprietary Linux "Catalyst" video card driver.}}
 
{{Article summary heading|Related}}
 
{{Article summary wiki|ATI}}
 
{{Article summary wiki|Intel}}
 
{{Article summary wiki|NVIDIA}}
 
{{Article summary wiki|Xorg}}
 
{{Article summary heading|Resources}}
 
{{Article summary link|cchtml.com - Unofficial Wiki for the ATI Linux Driver|http://wiki.cchtml.com/index.php/Main_Page}}
 
{{Article summary link|Unofficial ATI Linux Driver Bugzilla|http://ati.cchtml.com/query.cgi}}
 
{{Article summary end}}
 
  
Owners of '''ATI/AMD''' video cards have a choice between ATI's proprietary driver ({{AUR|catalyst}}) and the [[ATI|open source driver]] ({{Pkg|xf86-video-ati}}). This article covers the proprietary driver.
+
AMD's Linux driver package ''catalyst'' was previously named ''fglrx'' ('''F'''ire'''GL''' and '''R'''adeon '''X'''). Only the package name has changed, while the kernel module retains its original ''fglrx.ko'' filename. Therefore, any mention of fglrx below is specifically in reference to the ''kernel module'', '''not the package'''.
  
ATI's Linux driver package ''fglrx'' ('''F'''ire'''GL''' and '''R'''adeon '''X''') is now known as ''Catalyst'' to fall in line with the naming scheme of the Windows driver. Only the package name has changed, while the kernel module retains its original ''fglrx.ko'' filename.  Therefore, any mention of fglrx below is specifically in reference to the ''kernel module'', '''not the package'''.
+
'''Catalyst packages are no longer offered in the official repositories. It is no longer updated by AMD and does not support the latest Xorg, so installing an old Xorg is required.'''
  
Catalyst was once a precompiled package offered by Arch in the ''[extra]'' repository, but as of March 2009, official Arch support [http://www.archlinux.org/news/ati-catalyst-support-dropped/ has been dropped] because of dissatisfaction with the quality and speed of development.
+
Compared with the open source driver, Catalyst performs generally worse in 2D rendering and generally equal in 3D rendering, also having better power management, but it lacks efficient multi-head support. Catalyst does support OpenCL 2.0 though and that's the main difference between Catalyst and open source drivers. Supported devices are [[wikipedia:Radeon|ATI/AMD Radeon]] video cards with R600 to Volcanic Islands chipsets (Radeon HD 2xxx to Rx 300 cards). See the [https://support.amd.com/en-us/kb-articles/Pages/AMDRadeonSoftwareCrimsonEdition15-12LINReleaseNotes.aspx Release notes], [https://www.x.org/wiki/RadeonFeature/#index5h2 Xorg decoder ring] or [[wikipedia:List of AMD graphics processing units|this table]], to translate ''model'' names (HD2400, HD6990) to/from ''chip'' names (R600, ''Northern Islands'' respectively).
  
Compared to the open source driver, Catalyst performs worse in 2D graphics, but has a better support for 3D rendering. Supported devices are [http://en.wikipedia.org/wiki/Radeon ATI/AMD Radeon] video cards with chipset R600 and newer (as of Catalyst 9.4). See [http://en.wikipedia.org/wiki/Comparison_of_AMD_graphics_processing_units this table] to translate ''model'' names (X1900, HD4850) to/from ''chip'' names (R580, RV770 respectively).
+
== Selecting the right driver ==
 +
 
 +
Depending on the card you have, find the right driver in [[Xorg#AMD]]. This page has instructions for '''Catalyst''' and '''Catalyst legacy'''.
  
 
== Installation ==
 
== Installation ==
{{Note|
 
'''Catalyst 12.1 news''':
 
  
- supports up to 3.3 rc1 kernel (last tested);
+
There are three ways of installing Catalyst on your system. One way is to use [https://aur.archlinux.org/account/Vi0l0/ Vi0L0's] (Arch's unofficial Catalyst maintainer) repository. This repository contains all the necessary packages. The second method you can use is the AUR; PKGBUILDs offered here are also made by Vi0L0 and are the same he uses to built packages for his repository. Lastly, you can install the driver directly from AMD.
 +
 
 +
Before choosing the method you prefer, you will have to see which driver you need. For Radeon HD 5xxx to Rx 300, there is the regular Catalyst driver. The Radeon HD 2xxx, 3xxx and 4xxx cards need the '''legacy''' Catalyst driver.  Regardless of the driver you need, you will also need the Catalyst utilities.
 +
 
 +
{{Note|After the instructions for every method of installing, you will find general instructions '''everyone''' has to perform, regardless of the method you used.}}
 +
 
 +
=== Installing the driver ===
 +
 
 +
==== Installing from the unofficial repository ====
  
- it supports xorg-server 1.11.x, although because of xv video output bug it's better to use [xorg110] repository;
+
If you do not fancy building the packages from the [[AUR]], this is the way to go. The repository is maintained by our unofficial Catalyst maintainer, [[User:Vi0L0|Vi0l0]]. All packages are signed and are considered safe to use. As you will see later on in this article, Vi0L0 is also responsible for many other packages that will help you get your system working with your ATI graphic cards.
  
- it includes OpenCL binaries for the SDK;
+
Vi0L0 has three different Catalyst repositories, each having different drivers:
 +
* [[Unofficial user repositories#catalyst|catalyst]] for the regular Catalyst driver needed by Radeon HD 5xxx to Rx 300, it contains the latest beta release (Catalyst 15.12).
 +
* ''catalyst-stable'' for the regular Catalyst driver needed by Radeon HD 5xxx to Rx 300, with the latest stable release (Catalyst 15.9).
 +
* [[Unofficial user repositories#catalyst-hd234k|catalyst-hd234k]] for the legacy Catalyst driver needed by Radeon HD 2xxx, 3xxx and 4xxx cards (Catalyst 12.4).
  
- GNOME3 support still does not look good;
+
To enable one of these, follow the instructions in [[Unofficial user repositories]]. Remember to add the chosen repository '''above all other repositories''' in {{ic|pacman.conf}}.
  
- radeon hd 7970 official support.
+
{{Note|The ''catalyst'' and ''catalyst-stable'' repositories share the same URL. To enable ''catalyst-stable'', follow the instructions for enabling ''catalyst'' and replace {{ic|[catalyst]}} with {{ic|[catalyst-stable]}} in {{ic|pacman.conf}}. If you need to stick with an old version, there are also some versioned repositories using the same URL (for example ''catalyst-stable-13.4'').}}
}}
 
  
Almost''[*]'' all catalyst's packages mentioned below (like catalyst-utils) are available on [[AUR]] (read [[#Installing_from_AUR| Installing from AUR]] for more details) and on [[#.5Bcatalyst.5D_repository| unofficial [catalyst] repository]].
+
Once you have added some Catalyst repository, update pacman's database and [[install]] these packages (see [[#Tools]] for more information):
  
To install AMD's fglrx driver for the {{ic|linux}} package, you need to install either '''catalyst''' (driver for stock kernel) + '''catalyst-utils''' (required libraries/utilities) packages or '''catalyst-total''' package.
+
* ''catalyst-hook''
 +
* ''catalyst-utils''
 +
* ''catalyst-libgl''
 +
* ''opencl-catalyst'' - optional, needed for OpenCL support
 +
* ''lib32-catalyst-utils'' - optional, needed for 32-bit OpenGL support on 64-bit systems
 +
* ''lib32-catalyst-libgl'' - optional, needed for 32-bit OpenGL support on 64-bit systems
 +
* ''lib32-opencl-catalyst'' - optional, needed for 32-bit OpenCL support on 64-bit systems
  
''[*]''catalyst-total is available only on AUR, as it was designed to be the fastest way of building catalyst drivers for AUR users
+
{{Note|If pacman asks you about removing '''libgl''' you can safely do so.}}
  
If you are using '''x86_64''' architecture and want '''32-bit OpenGL support''' - install '''lib32-catalyst-utils''', just make sure that you did uncomment [multilib] repository in /etc/pacman.conf before installing this package - note: if you are using catalyst-total then you do not need this package.
+
{{Warning|catalyst package was removed from Vi0L0's repository, its place was taken by catalyst-hook.}}
  
Please note that there are some '''additional packages''' which can be useful, every one of them '''can replace catalyst package''' and provide fglrx modules for '''multiple kernels''' installed on your system, these packages are:
+
==== Installing from the AUR ====
 +
The second way to install Catalyst is from the [[AUR]]. If you want to build the packages specifically for your computer, this is the way to go. Note that this is also the most tedious way to install Catalyst; it requires the most work and also requires manual updates upon every kernel update.
  
- '''catalyst-generator''' - able to generate fglrx modules packed into pacman's packages - most secure and KISS-compatible package in this side-note, althought it has to be operated manually;
+
{{Warning|If you install the Catalyst package from the AUR, you will have to rebuild Catalyst every time the kernel is updated. Otherwise X '''will''' fail to start.}}
  
- '''catalyst-hook''' - mkinitcpio' hook which will automatically update fglrx modules with every kernel's update;
+
All packages mentioned above in Vi0L0's unofficial repository are also available on the [[AUR]]:
 +
* {{AUR|catalyst}}
 +
* {{AUR|catalyst-generator}}
 +
* {{AUR|catalyst-hook}}
 +
* {{AUR|catalyst-utils}}
 +
* {{AUR|lib32-catalyst-utils}}
  
- '''catalyst-daemon''' - that delivers 'automatic update of fglrx modules with every kernel's update' functionality done by init script.
+
The AUR also holds some packages that are '''not''' found in any of the repositories. These packages contain the so-called ''Catalyst-total'' packages and the beta versions:
 +
* {{AUR|catalyst-total}}
 +
* {{AUR|catalyst-total-hd234k}}
 +
* {{AUR|catalyst-test}}
  
You will find more details about those packages in [[#Tools| Tools section]].
+
The {{AUR|catalyst-total}} packages are made to make the lives of AUR users easier. It builds the driver, the kernel utilities and the 32 bit kernel utilities. It also builds the {{AUR|catalyst-hook}} package, which is described in [[#Tools]].
  
{{Note| If pacman asks you about removing '''libgl''' - you may safely say "Y"}}
+
=== Configuring the driver ===
 +
After you have installed the driver via your chosen method, you will have to configure X to work with Catalyst. Also, you will have to make sure the module gets loaded at boot. Also, one should disable [[kernel mode setting]].
  
After installing you need to ensure xorg.conf is [[#Configuration| created and/or configured]] before rebooting.
+
==== Configuring X ====
 +
To configure X, you will have to create an {{ic|xorg.conf}} file. Catalyst provides its own {{ic|aticonfig}} tool to create and/or modify this file.
 +
It also can configure virtually every aspect of the card for it also accesses the {{ic|/etc/ati/amdpcsdb}} file. For a complete list of {{ic|aticonfig}} options, run:
  
If you are using '''x86_64''' architecture and want '''32-bit OpenGL support''' - install [http://aur.archlinux.org/packages.php?ID=24824 AUR's lib32-catalyst-utils], just make sure that you have uncommented [multilib] repository in /etc/pacman.conf. Note: if you are using catalyst-total then you do not need this package.
+
# aticonfig --help | less
  
{{Note| With '''every''' Catalyst update you should remove '''amdpcsdb''' file in this way: stop your X/DE, remove {{ic|/etc/ati/amdpcsdb}}, start your X/DE, and then run {{ic|amdcccle}} - otherwise you may experience bad catalyst's versioning in amdcccle.}}
+
{{Warning|Use the {{ic|--output}} option before committing to {{ic|/etc/X11/}} as an {{ic|xorg.conf}} file will override anything in {{ic|/etc/X11/xorg.conf.d/}}}}
{{Warning|
+
 
*Make sure that you own a '''R6xx''' ('''HD2xxx''') or newer card or the driver '''won't''' be enabled. You will encounter an error if you try to enable your display using Catalyst and a card older than the R6xx series.
+
{{Note|To adhere to the new config location use {{ic|# aticonfig [...] --output}} to adapt the {{ic|Device}} section to {{ic|/etc/X11/xorg.conf.d/20-radeon.conf}}. The drawback is that many {{ic|aticonfig}} options rely on an {{ic|xorg.conf}}, and will be unavailable.}}
  
*It appears that Catalyst 9.10-10.11 does not support nForce4 motherboard chipsets.}}
+
Now, to configure Catalyst. If you have only one monitor, run this:
  
{{Warning|Whether or not you install catalyst package from AUR, you will have to reinstall/update fglrx every time the kernel is updated. Otherwise, X '''will''' fail to start. Please remember that you can alway use catalyst-hook or catalyst-daemon package which will perform automatic fglrx update - read [[#Automatic_re-compilation_of_fglrx_module_with_every_kernel_update| this section]] for more details}}
+
  # aticonfig --initial
  
''If you need more information on catalyst, visit [http://bbs.archlinux.org/viewtopic.php?id=57084 this thread].''
+
However, if you have two monitors and want to use both of them, you can run the command stated below. Note that this will generate a dual head configuration with the second screen located above the first screen.
  
=== Installing from AUR ===
+
# aticonfig --initial=dual-head --screen-layout=above
  
Addresses of AUR's packages mentioned on the top of [[#Installation| Installation section]]:
+
{{Note|See [[#Double Screen (Dual Head / Dual Screen / Xinerama)]] for more information on setting up dual monitors.}}
  
[http://aur.archlinux.org/packages.php?ID=29111 catalyst] - driver for stock kernel
+
You can compare the generated file to one of the [[Xorg#Sample configurations|Sample Xorg.conf]]{{Broken section link}} examples listed on the Xorg page.
  
[http://aur.archlinux.org/packages.php?ID=40833 catalyst-utils] - required libraries/utilities
+
Although the current Xorg versions auto-detect most options when started, you may want to specify some in case the defaults change between versions.
  
[http://aur.archlinux.org/packages.php?ID=24824 lib32-catalyst-utils] - 32-bit OpenGL support for x86_64 systems
+
Here is an example (with notes) '''for reference'''. Entries with {{ic|#}} should be required, add entries with {{ic|##}} as needed:
  
[http://aur.archlinux.org/packages.php?ID=31914 catalyst-total] - catalyst-hook + catalyst-utils + lib32-catalyst-utils
+
{{hc|/etc/X11/xorg.conf|2=
 +
Section "ServerLayout"
 +
        Identifier    "Arch"
 +
        Screen      0  "Screen0" 0 0          # 0's are necessary.
 +
EndSection
 +
Section "Module"
 +
        Load [...]
 +
        [...]
 +
EndSection
 +
Section "Monitor"
 +
        Identifier  "Monitor0"
 +
        [...]
 +
EndSection
 +
Section "Device"
 +
        Identifier  "Card0"
 +
        Driver      "fglrx"                        # Essential.
 +
        BusID      "PCI:1:0:0"                    # Recommended if autodetect fails.
 +
        Option      "OpenGLOverlay" "0"            ##
 +
        Option      "XAANoOffscreenPixmaps" "false" ##
 +
EndSection
 +
Section "Screen"
 +
        Identifier "Screen0"
 +
        Device    "Card0"
 +
        Monitor    "Monitor0"
 +
        DefaultDepth    24
 +
        SubSection "Display"
 +
                Viewport  0 0
 +
                Depth    24                        # Should not change from '24'
 +
                Modes "1280x1024" "2048x1536"      ## 1st value=default resolution, 2nd=maximum.
 +
                Virtual 1664 1200                  ## (x+64, y) to workaround potential OGL rect. artifacts/
 +
        EndSubSection                              ## fixed in Catalyst 9.8
 +
EndSection
 +
Section "DRI"
 +
        Mode 0666                                  # May help enable direct rendering.
 +
EndSection
 +
}}
  
[http://aur.archlinux.org/packages.php?ID=41040 catalyst-generator] - Generator of catalyst-{kernver} packages with fglrx module inside
+
{{Note|With '''every''' Catalyst update you should remove {{ic|amdpcsdb}} file in this way: kill X, remove {{ic|/etc/ati/amdpcsdb}}, start X and then run {{ic|amdcccle}} - otherwise the version of Catalyst may display wrongly in {{ic|amdcccle}}.}}
  
[http://aur.archlinux.org/packages.php?ID=40834 catalyst-hook] - Auto re-compile the fglrx module when kernel update (mkinitcpio's hook)
+
''If you need more information on Catalyst, visit [https://bbs.archlinux.org/viewtopic.php?id=57084 this thread].''
  
[https://aur.archlinux.org/packages.php?ID=40832 catalyst-daemon] - Auto re-compile the fglrx module if kernel was updated (init script)
+
==== Loading the module at boot ====
 +
We have to blacklist the {{ic|radeon}} module to prevent it from auto-loading. To do so, blacklist ''radeon'' in {{ic|/etc/modprobe.d/modprobe.conf}}. Also, make sure that it is not loaded by any file under {{ic|/etc/modules-load.d/}}. For more information, see [[kernel modules#Blacklisting]].
  
==== Custom Kernels ====
+
Then we will have to make sure that the {{ic|fglrx}} module gets auto-loaded. Either add {{ic|fglrx}} on a new line of an existing module file located under {{ic|/etc/modules-load.d/}}, or create a new file and add {{ic|fglrx}}.
{{Note| catalyst-generator is able to build catalyst-{kernver} packages for you so you do not actually need to perform all those steps manually, although this section should stay because it can be useful}}
 
  
To install catalyst for a custom kernel, you'll need to build your own {{ic|catalyst-$kernel}} package.
+
==== Disable kernel mode setting ====
  
If you are at all uncomfortable or inexperienced making packages, read up the [[ABS]] wiki page first so things go smoothly.
+
{{Note|Do not do this if you are using powerXpress technology (or hybrid AMD-Intel graphics) because Intel driver needs it.}}
  
'''Obtaining PKGBUILD'''
+
Disabling kernel mode setting is important, as the Catalyst driver does not take advantage of [[KMS]]. If you do not deactivate KMS, your system might freeze when trying to switch to a TTY or even when shutting down via your DE.
  
Obtain the {{ic|PKGBUILD}} and {{ic|catalyst.install}} files from [http://aur.archlinux.org/packages.php?ID=29111 AUR].
+
To disable kernel mode setting, add {{ic|nomodeset}} to your [[kernel parameters]].
  
'''Editing the PKGBUILD and Building'''
+
==== Checking operation ====
  
Three changes need to be made here:
+
Assuming that a reboot to your login was successful, you can check if {{ic|fglrx}} is running properly with the following commands:
1. Change:{{ic|1=pkgname=catalyst}} to {{ic|1=pkgname=catalyst-KERNEL_NAME}}
 
where KERNEL_NAME is whatever you want (e.g. custom, mm, themostawesomekernelever)
 
  
2. Remove {{ic|linux}} from the dependencies list.
+
$ lsmod | grep fglrx
  
3. Build and install the package.  ({{ic|makepkg -i}} or {{ic|makepkg}} followed by {{ic|pacman -U pkgname.pkg.tar.gz}})
+
If you get output, it works. Finally, run X manually with {{ic|$ startx}} or by using a display manager (see [[Xorg#Running]]).
  
{{Note| If you run multiple kernels, then install catalyst module packages for all kernels.  They won't conflict with one another.}}
+
The following command should output your graphic card model name:
  
=== Unofficial repositories ===
+
$ fglrxinfo
  
There are some unofficial repositories containing the newest (or older) catalyst packages along with the appropriate libs and software in order to use the driver.
+
You can then verify that direct rendering is enabled by running the following command in a terminal:
If you want to know what packages are inside any given repository you need to first add repository to pacman.conf, perform ''pacman -Sy'' command and then list repository with pacman -Sl command:
 
# pacman -Sl catalyst
 
  
==== [catalyst] repository ====
+
$ glxinfo | grep "direct rendering"
It contains ''newest stable catalyst driver'' and some additional packages.
 
This repository should always work with the ''stock kernel'' from [core] and it is updated most frequently.
 
  
To use it you need:
+
If it says {{ic|"direct rendering: yes"}} then you are good to go! If the {{ic|$ glxinfo}} command is not found install the {{Pkg|mesa-demos}} package.
  
1.) Edit /etc/pacman.conf and add those lines above all other repositories (so also above [core] and [extra]):
+
{{Note|You can also use:
{{bc|1=
+
$ fgl_glxgears
[catalyst]
+
as the fglrx alternative test to {{ic|glxgears}}.
Server = http://catalyst.apocalypsus.net/repo/catalyst/$arch
 
 
}}
 
}}
  
2.) Update with:
+
{{Warning|In recent versions of Xorg, the paths of libs are changed. So, sometimes {{ic|libGL.so}} cannot be correctly loaded even if it is installed. Check this if your GL is not working. Please read [[#Troubleshooting]] section for details.}}
# pacman -Syu
+
 
 +
=== Custom kernels ===
 +
 
 +
{{Note|If you are at all uncomfortable or inexperienced with making packages, read up the [[ABS]] wiki page first so things go smoothly.}}
  
3.) Install catalyst:
+
To install catalyst for a custom kernel, you will need to build your own {{ic|catalyst-$kernel}} package:
# pacman -S catalyst catalyst-utils
 
  
'''Note:''' If you are updating from catalyst =< 10.8 steps 2 and 3 look like this:
+
# Obtain the {{ic|PKGBUILD}} and {{ic|catalyst.install}} files from [[AUR|Catalyst]].
# pacman -Sy
+
# Editing the PKGBUILD. Two changes need to be made here:
# pacman -Rdd catalyst
+
## Change {{ic|1=pkgname=catalyst}} to {{ic|1=pkgname=catalyst-$kernel_name}}, where {{ic|$kernel_name}} is whatever you want (e.g. custom, mm, themostawesomekernelever).
# pacman -S catalyst catalyst-utils
+
## Change the dependency of {{ic|linux}} to {{ic|$kernel_name}}.
 +
# Build your package and install; run {{ic|makepkg -i}} or {{ic|makepkg}} followed by {{ic|# pacman -U pkgname.pkg.tar.gz}}
  
4.) Don't forget to prepare your /etc/X11/xorg.conf for catalyst! Use aticonfig --initial if it doesn't exist.
+
{{Note|
 +
*If you run multiple kernels, you have to install the {{AUR|catalyst-utils}} packages for all kernels. They will not conflict with one another.
 +
*{{AUR|catalyst-generator}} is able to build {{ic|<nowiki>catalyst-{kernver}</nowiki>}} packages for you so you do not actually need to perform all those steps manually. For more information, see [[#Tools|Tools section]].}}
  
5.) Reboot.
+
=== PowerXpress support ===
  
For x86_64 users '''[catalyst]''' provides lib32-catalyst-utils package needed to run 32-bit opengl applications and wine games.
+
PowerXpress technology allows switching notebooks with dual-graphic capability from integrated graphics (IGP) to discrete graphics either to increase battery life or to achieve better 3D rendering capabilities.
  
Repository also contains '''xvba-video''' package so you may easily use video acceleration described [[#Video_acceleration|below]],
+
To use such functionality on Arch you will have to:
plus '''catalyst-daemon''', '''catalyst-hook''' and '''catalyst-generator''' packages.
+
* Get and build {{AUR|catalyst-total}} / {{AUR|catalyst-test}} package from the [[AUR]], or
 +
* Install '''catalyst-libgl''' alongside with '''catalyst-utils''' packages from the [catalyst] repository.
  
'''[catalyst]''' repository contains [http://aur.archlinux.org/packages.php?ID=26687 xorg-server-catalyst-maximize-fix] package. This package is fixing problems with '''maximizing/resizing''', use it mainly if you have [https://wiki.archlinux.org/index.php/ATI_Catalyst#Catalyst_10.6.2F10.7.2F10.8.2F10.9_:_black.2Fgrey.2Fwhite_boxes.2Fartifacts_in_firefox.2Fthunderbird disabled ATi 2D Acceleration Architecture]. To remove xorg-server and install xorg-server-catalyst-maximize-fix just type:
+
To perform a switch into Intel's IGP you will also have to install the {{pkg|mesa}} package and Intel's drivers: {{pkg|xf86-video-intel}}.
# pacman -Rdd xorg-server xorg-server-common
 
# pacman -S xorg-server-catalyst-maximize-fix
 
  
==== Archived repositories ====
+
{{Note|Catalyst sometimes has problems with newest intel drivers. If this is happening please downgrade {{pkg|xf86-video-intel}} to the previous version found on [[Arch Linux Archive]] or maybe even from archive [[#Xorg repositories]] alongside with xorg-server package(s).}}
  
There are some archived repositories placed in [http://catalyst.apocalypsus.net/repo http://catalyst.apocalypsus.net/repo], please browse this site and look for files with *.db extension, if you have found interesting catalyst repository tell pacman to use it.
+
Now you can switch between the integrated and the discrete GPU, using these commands:
For catalyst-11.8.db pacman.conf entry looks like:
 
  
 
{{bc|1=
 
{{bc|1=
[catalyst-11.8]
+
# aticonfig --px-igpu    #for integrated GPU
Server = http://catalyst.apocalypsus.net/repo/catalyst/$arch
+
# aticonfig --px-dgpu    #for discrete GPU
 
}}
 
}}
  
You can also view archive catalyst PKGBUILDs and use them to build catalyst package which fit your needs, you can find it inside tar.gz archives [http://catalyst.apocalypsus.net/tarball here].
+
Just remember that fglrx needs {{ic|/etc/X11/xorg.conf}} configured for AMD's card with {{ic|fglrx}} inside.
 +
 
 +
You can also use the {{ic|pxp_switch_catalyst}} switching script that will perform some additional usefull operations:
 +
* Switching {{ic|xorg.conf}} - it will rename {{ic|xorg.conf}} into {{ic|xorg.conf.cat}} (if there is fglrx inside) or {{ic|xorg.conf.oth}} (if there is intel inside) and then it will create a symlink to {{ic|xorg.conf}}, depending on what you chose.
 +
* Running {{ic|aticonfig --px-Xgpu}}.
 +
* Running {{ic|switchlibGL}}.
 +
* Adding/removing {{ic|fglrx}} into/from {{ic|/etc/modules-load.d/catalyst.conf}}.
 +
 
 +
Usage:
 +
{{bc|1=
 +
# pxp_switch_catalyst amd
 +
# pxp_switch_catalyst intel
 +
}}
  
==== Xorg-server repositories ====
+
If you have got problems when you try to run X on Intel's driver you may try to force "UXA" acceleration. Just make sure you got {{ic|Option "AccelMethod" "uxa"}} in {{ic|xorg.conf}}:
 +
{{hc|/etc/X11/xorg.conf|2=
 +
Section "Device"
 +
        Identifier  "Intel Graphics"
 +
        Driver      "intel"
 +
        #Option      "AccelMethod"  "sna"
 +
        '''Option      "AccelMethod"  "uxa"'''
 +
        #Option      "AccelMethod"  "xaa"
 +
EndSection
 +
}}
  
'''[xorg110]'''
+
==== Running two X servers (one using the Intel driver, another one using fglrx) simultaneously ====
 +
Because fglrx is crash-prone (regarding PowerXpress), it could be a good idea to use the Intel driver in the main X server and have a secondary X server using fglrx when 3D acceleration is needed. However, simply switching to the discrete GPU from the integrated GPU using {{ic|aticonfig}} or {{ic|amdcccle}} will cause all sorts of weird bugs when starting the second X.
  
This repository contains xorg-server packages of 1.10 line - catalyst driver in version < 11.11 was not supporting xorg-server 1.11.
+
To run two X servers at the same time (each using different drivers), you should firstly set up a fully working X with Catalyst and then move its {{ic|xorg.conf}} to a temporary place (for example, {{ic|/etc/X11/xorg.conf.fglrx}}. The next time X is started, it will use the Intel driver by default instead of fglrx.
  
To use this repo you need to edit /etc/pacman.conf and add those lines above all other repositories:
+
To start a second X server using fglrx, simply move {{ic|xorg.conf}} back to the proper place ({{ic|/etc/X11/xorg.conf}}) before starting X. This method even allows you to switch between running X sessions. When you are done using fglrx, move {{ic|xorg.conf}} somewhere else again.
 +
 
 +
The only disadvantage of this method is not having 3D acceleration using the Intel driver. 2D acceleration, however, is fully functional. Other than that, this will provide us with a completely stable desktop.
 +
 
 +
==== Issues with PowerXpress laptops running in AMD mode (pxp_switch_catalyst amd) with external / secondary monitor ====
 +
When using a PowerXpress laptop in AMD-only mode (ie, setting the discrete card to render everything) you sometimes run into issues with artifacting/duplicating between displays. This is a known issue, and seems to effect 7xxxM series cards.
 +
 
 +
The artifacting disappears when you transform one of the monitors by either rotating or scaling. So you can use xrandr to fix this:
  
 
{{bc|1=
 
{{bc|1=
[xorg110]
+
xrandr --output HDMI1 --left-of LVDS1 --primary --scale 1x1 --output LVDS1 --scale 1.0001x1.0001
Server = http://catalyst.apocalypsus.net/repo/xorg110/$arch
 
 
}}
 
}}
  
'''[xorg19]'''
+
== Xorg repositories ==
 +
Catalyst is notorious for its slow update process. As such, it is common that a new Xorg version is pushed down from upstream that will break compatibility for Catalyst. This means that Catalyst users either have to build Xorg packages on their own, or use a backported repository that only contains the Xorg packages that should be held back. Vi0L0 has stepped in to fulfil this task and provides several backported repositories.
 +
 
 +
To enable one of these, follow the instructions in [[Unofficial user repositories]] (use the same PGP key as for the [[Unofficial user repositories#catalyst|catalyst]] repository). Remember to add the chosen repository '''above all other repositories''' in {{ic|pacman.conf}}, even above your ''catalyst'' repository, should you use one.
 +
 
 +
=== xorg117 ===
 +
Catalyst does not support xorg-server 1.18
 +
{{bc|<nowiki>
 +
[xorg117]
 +
Server = http://mirror.hactar.xyz/Vi0L0/xorg117/$arch
 +
</nowiki>}}
 +
 
 +
=== xorg116 ===
 +
Catalyst < 15.7 does not support xorg-server 1.17
 +
{{bc|<nowiki>
 +
[xorg116]
 +
Server = http://mirror.hactar.xyz/Vi0L0/xorg116/$arch
 +
</nowiki>}}
 +
 
 +
=== xorg115 ===
 +
Catalyst < 14.9 does not support xorg-server 1.16
 +
 
 +
{{bc|<nowiki>
 +
[xorg115]
 +
Server = http://mirror.hactar.xyz/Vi0L0/xorg115/$arch
 +
</nowiki>}}
 +
 
 +
=== xorg114 ===
 +
Catalyst < 14.1 does not support xorg-server 1.15.
 +
 
 +
{{bc|<nowiki>
 +
[xorg114]
 +
Server = http://mirror.hactar.xyz/Vi0L0/xorg114/$arch
 +
</nowiki>}}
 +
 
 +
=== xorg113 ===
 +
Catalyst < 13.6 does not support xorg-server 1.14.
 +
 
 +
{{bc|<nowiki>
 +
[xorg113]
 +
Server = http://mirror.hactar.xyz/Vi0L0/xorg113/$arch
 +
</nowiki>}}
 +
 
 +
=== xorg112 ===
 +
Catalyst < 12.10 and Catalyst Legacy do not support xorg-server 1.13.
 +
 
 +
{{bc|<nowiki>
 +
[xorg112]
 +
Server = http://mirror.hactar.xyz/Vi0L0/xorg112/$arch
 +
</nowiki>}}
 +
 
 +
== Tools ==
 +
 
 +
=== Catalyst-hook ===
 +
{{AUR|Catalyst-hook}} is a [[systemd]] service that will automatically rebuild the {{ic|fglrx}} modules while the system shuts down or reboots, but only if it is necessary (e.g. after an update).
  
Catalyst <= 11.3 isn't supporting '''xorg-server >= 1.10''' (checked also with IgnoreAbi flag) - that's the reason why [xorg19] repo with xserver 1.9 and some additional packages arrived.
+
Before using this package make sure that both the {{Grp|base-devel}} group and the {{Pkg|linux-headers}} package (the one specific to the kernel you use) are installed.
  
To use it you need edit /etc/pacman.conf and add those lines above all other repositories:
+
To enable the automatic update, enable the {{ic|catalyst-hook.service}}:
  
{{bc|1=
+
# systemctl enable catalyst-hook
[xorg19]
+
# systemctl start catalyst-hook
Server = http://catalyst.apocalypsus.net/repo/xorg19/$arch
 
}}
 
  
'''[xorg18]'''
+
You can also use this package to build the {{ic|fglrx}} module manually. Simply run the {{ic|catalyst_build_module}} script after the kernel has been updated:
  
Catalyst < 10.10 isn't working with xorg-server >= 1.9 (checked also with IgnoreAbi flag).
+
# catalyst_build_module all
To use it you need edit /etc/pacman.conf and add those lines above all other repositories:
 
  
{{bc|1=
+
'''A few more technical details:'''
[xorg18]
 
Server = http://catalyst.apocalypsus.net/repo/xorg18/$arch
 
}}
 
  
'''[xorg17]'''
+
The {{ic|catalyst-hook.service}} is stopping the systemd "river" and is forcing systemd to wait until catalyst-hook finishes its job.
  
Supported since catalyst 10.4
+
The {{ic|catalyst-hook.service}} is calling the {{ic|catalyst_build_module check}} function which checks if fglrx rebuilds are really necessary.
  
[xorg17] repository contains xserver 1.7 packages, use it only if you are experiencing problems with newer xservers.
+
The {{ic|check}} function is checking if the {{ic|fglrx}} module exists, if it:
  
Repository contains [http://catalyst.apocalypsus.net/tarball/xorg-server-1.7-backclear.tar.gz xorg-server-backclear] (patched with backclear patch) and [http://aur.archlinux.org/packages.php?ID=35686 xorg-server-1.7-catalyst-maximize-fix] (patched with fedora patch) packages. Both this patches fix problems with '''maximizing/resizing''' but they are doing it in different way - you may choose which patched xserver is best for you. To remove xorg-server and install xorg-server-backclear just type:
+
*does not exist, it will build it;
# pacman -Rdd xorg-server
 
# pacman -S xorg-server-backclear
 
Similar with xorg-server-1.7-catalyst-maximize-fix
 
  
To use [xorg17] repo please put those lines at the top of all other repositories in '''/etc/pacman.conf''':
+
*does exist, it will compare the two values to be sure that a rebuild is necessary.
  
{{bc|1=
+
These values are md5sums of the {{ic|/usr/lib/modules/<kernel_version>/build/Module.symvers}} file (because I, Vi0L0, noticed that this file is unique and different for every kernel's release). The first value is the md5sum of the existing {{ic|Module.symvers}} file. The second value is the md5sum of the {{ic|Module.symvers}} file which existed in a moment of the {{ic|fglrx}} module creation. This value was compiled into the {{ic|fglrx}} module by a {{ic|catalyst_build_module}} script.
[xorg17]
 
Server = http://catalyst.apocalypsus.net/repo/xorg17/$arch
 
}}
 
  
'''[xorg16]'''
+
If the values are different, it will compile the new {{ic|fglrx}} module.
  
[xorg16] repository contains xserver 1.6 packages, use it only if you are experiencing problems with newer xservers.
+
The check is checking the whole {{ic|/usr/lib/modules/}} directory and building modules for all of the installed kernels if it is necessary. If the build or rebuild is not necessary, the whole process takes only some milliseconds to complete before it gets killed by systemd.
{{bc|1=
 
[xorg16]
 
Server = http://catalyst.apocalypsus.net/repo/xorg16/$arch
 
}}
 
  
=== Tools ===
+
=== Catalyst-generator ===
  
==== catalyst-generator ====
+
{{AUR|catalyst-generator}} is a package that is able to build and install the {{ic|fglrx}} module packed into pacman compliant {{ic|<nowiki>catalyst-${kernver}</nowiki>}} packages. The basic difference from [[#Catalyst-hook]] is that you will have to trigger this command manually, whereas Catalyst-hook will do this automatically at boot when a new kernel got installed.
[http://aur.archlinux.org/packages.php?ID=34773 catalyst-generator] is a package able to build and install ''fglrx modules'' packed into nice catalyst-{kernver} pacman's packages.  
 
  
It creates ''catalyst-{kernver}'' packages using [[makepkg]] and installs them with [[pacman]]. ''{kernver}'' is the kernel version for which each package was built (e.g. catalyst-2.6.35-ARCH package was built for 2.6.35-ARCH kernel).
+
It creates {{ic|<nowiki>catalyst-${kernver}</nowiki>}} packages using [[makepkg]] and installs them with [[pacman]]. {{ic|<nowiki>${kernver}</nowiki>}} is the kernel version for which each package was built (e.g. catalyst-2.6.35-ARCH package was built for 2.6.35-ARCH kernel).
  
To build and install catalyst-{kernver} package for booted kernel as an '''unprivileged user''' (safer way) type this:
+
To build and install {{ic|<nowiki>catalyst-${kernver}</nowiki>}} package for a currently booted kernel as an unprivileged user (non-root; safer way), use {{ic|catalyst_build_module}}. You will be asked for your root password to proceed to package installation.
{{ic|catalyst_build_module}}
 
You will be asked for root's password to proceed to package installation.
 
It is important to run this command '''after''' installing catalyst-generator.
 
  
This package '''doesn't support auto re-compilation functionality''' so after kernel updates you will have to ''manually'' update catalyst-{kernver} package.  Do it in this way (without rebooting):
+
A short summary on how to use this package:
  
1.) As root:
+
# As root: {{ic|catalyst_build_module remove}}. This will remove all unused {{ic|<nowiki>catalyst-{kernver}</nowiki>}} packages.
# catalyst_build_module remove
+
# As unprivileged user: {{ic|<nowiki>catalyst_build_module ${kernver}</nowiki>}}, where {{ic|<nowiki>${kernver}</nowiki>}} is the version of the kernel to which you just updated. For example: {{ic|catalyst_build_module 2.6.36-ARCH}}. You can also build {{ic|<nowiki>catalyst-{kernver}</nowiki>}} for all installed kernels by using {{ic|catalyst_build_module all}}.
 +
# If you want to remove {{ic|catalyst-generator}}, it is best to run this as root before removing catalyst-generator: {{ic|catalyst_build_module remove_all}}. '''This will remove all {{ic|<nowiki>catalyst-{kernver}</nowiki>}} packages from the system.'''
  
This will remove all unused {{ic|<nowiki>catalyst-{kernver}</nowiki>}} packages
+
{{ic|Catalyst-generator}} is not able to remove all those {{ic|<nowiki>catalyst-{kernver}</nowiki>}} packages automatically while being removed because there can not be more than one instance of pacman running. If you forget to run {{ic|# catalyst_build_module remove_all}} before using {{ic|# pacman -R catalyst-generator}} catalyst-generator will tell you which {{ic|<nowiki>catalyst-{kernver}</nowiki>}} packages you will have to remove manually after removing catalyst-generator itself.
  
2.) As unprivileged user:
+
Catalyst-generator is most safe and KISS-friendly solution because:
# catalyst_build_module ''new_kernel_version''
 
Where ''new_kernel_version'' is a version of kernel which you just updated/installed. e.g.:
 
catalyst_build_module 2.6.36-ARCH
 
or:
 
catalyst_build_module all
 
which will built catalyst-{kernver} packages for all kernels.
 
  
If you want to remove {{ic|catalyst-generator}} - it's best to run this as root before removing catalyst-generator:
+
# you can use unprivileged user to build the package;
catalyst_build_module remove_all
+
# it is building modules in a fakeroot environment;
(This will remove all catalyst-{kernver} packages from the system.)
+
# it is not throwing files here and there, [[pacman]] always knows where they are;
 +
# all you have to do is to remember to use it
  
catalyst-generator isn't able to remove all those catalyst-{kernver} packages automatically while being removed because there can not be more than one instance of pacman running. If you forget to type `catalyst_build_module remove_all` before typing `pacman -R catalyst-generator` - catalyst-generator will tell you which catalyst-{kernver} packages you will have to remove after removing catalyst-generator.
+
{{Note|If you see those warnings:
  
{{Note| If you see those warnings:
+
'''WARNING:''' Package contains reference to $srcdir
  
'''WARNING:''' Package contains reference to $srcdir
+
'''WARNING:''' '.pkg' is not a valid archive extension.
  
'''WARNING:''' '.pkg' is not a valid archive extension.
+
while building {{ic|<nowiki>catalyst-{kernver}</nowiki>}} package, do not be concerned, it is normal.}}
  
while building catalyst-{kernver} package - do not be concerned, it's normal.
+
=== OpenCL and OpenGL development ===
}}
 
  
==== Automatic re-compilation of fglrx module with every kernel update ====
+
Since years AMD is working on tools for OpenCL and OpenGL developement.
  
{{Note| Here catalyst_build_module script is working on fglrx modules files, not on pacman's packages.
+
Now under the banner of '''"Heterogeneous Computing"''' AMD is providing even more of them, fortunately most of their computing tools are available also for Linux.
Most of catalyst_build_module script options mentioned in catalyst-generator section is supported, type '''catalyst_build_module help''' to check which ones exactly.
 
}}
 
Since catalyst 10.9 that funcionality has been removed from catalyst package mainly because of [https://bbs.archlinux.org/viewtopic.php?pid=825546#p825546 this] and [https://bbs.archlinux.org/viewtopic.php?pid=825785#p825785 that].
 
  
Still it can be very useful if you are using more than one stock kernel, or you do not like to rebuild catalyst package with every kernel update.
+
In the AUR and the [catalyst] repositories you will find packages that represent the most important work from AMD, namely:
Known mkinitcpio's hook functionality has been moved to [http://aur.archlinux.org/packages.php?ID=40834 AUR's catalyst-hook].
 
  
Also there is a new package able to provide similar functionality called [http://aur.archlinux.org/packages.php?ID=40832 catalyst-daemon].
+
* {{AUR|amdapp-aparapi}}
 +
* {{AUR|amdapp-sdk}}
 +
* {{AUR|amdapp-codexl}}
  
Please note that those packages provides only re-building scripts and source files needed to build fglrx module, and they depend on catalyst-utils package.
+
APP shortcut stands for Accelerated Parallel Processing.
  
Auto re-compilation is enabled by default after installing selected package, if you want to turn it off just run this command as root:
+
==== amdapp-aparapi ====
# catalyst_build_module autooff
+
AMD's Aparapi is an API for expressing data parallel workloads in Java and a runtime component capable of converting the Java bytecode of compatible workloads into OpenCL so that it can be executed on a variety of GPU devices. If Aparapi can’t execute on the GPU, it will execute in a Java thread pool.
You can also turn it on with:
 
# catalyst_build_module auto
 
  
catalyst_build_module is storing all informations about compilling/installig fglrx module in '''log''' file placed in /var/log/catalys-install.log. But you do not need to remember it, you will be informed about that fact whenever installation fails.
+
You can find more information about Aparapi [http://developer.amd.com/tools/heterogeneous-computing/aparapi/ here].
  
===== catalyst-hook =====
+
==== amdapp-sdk (formerly known as amdstream) ====
In '''catalyst-hook''' 'automatic re-compilation' functionality is done by a '''fglrx hook''' on [[mkinitcpio]] with combination of forcing to update package '''linux-headers''' in first place.
+
The AMD APP Software Development Kit (SDK) is a complete development platform created by AMD to allow you to quickly and easily develop applications accelerated by AMD APP technology. The SDK provides samples, documentation and other materials to quickly get you started leveraging accelerated compute using OpenCL, Bolt, or C++ AMP in your C/C++ application.
  
The hook will call '''catalyst_build_module''' command to update fglrx module for the version of your new kernel, and additionally it will call '''catalyst_build_module remove''' command to remove unneeded flgrx module(s).
+
Since version 2.8 amdapp-sdk is providing aparapiUtil as well as aparapi's samples. A package is available on the [catalyst] repository; it depends on the {{AUR|amdapp-aparapi}} package. The AUR's package will let you decide whether you want aparapi's additions or not.
  
{{Note| If you are using this functionality it's '''important''' to look at the installation process of linux (or any other kernel) package. fglrx hook will tell you is everything all right.}}
+
Version 2.8 does not provide Profiler functionality, it has been moved to CodeXL.
{{Note| If your '''custom kernel''' is using some '''non-standard mkinitcpio configuration file''' (ie. linux-zen is using /etc/mkinitcpio-zen.conf) you'll have to manually add '''fglrx''' to HOOKS array so it can be auto-recompiled with kernel's update.}}
 
{{Note| If you '''aren't using stock linux''' at all and still wanna use auto recompilation you should remove linux-headers from SyncFirst list of /etc/pacman.conf after running 'catalyst_build_module auto'.}}
 
  
===== catalyst-daemon =====
+
You can find more information about AMD APP SDK [http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/ here].
In '''catalyst-daemon''' 'automatic re-compilation' functionality is done by init script called '''autofglrx''' which runs with every system boot and checks if kernel was updated. If kernel was updated - it's rebuilding fglrx module. If kernel wasn't updated - it's loading previously built fglrx module (this whole operation is taking only 20ms on 2.4 GHz CPU).
 
  
Autofglrx's check function is comparing built time of just booted kernel (provided by `uname -v`) with built time of a kernel for which fglrx module was built.
+
==== amdapp-codexl ====
It's able to do such a comparison because it adds `uname -v` information to the fglrx module's description while module's compilation.
+
CodeXL is an OpenCL and OpenGL Debugger and Profiler, with a static OpenCL kernel analyzer. It is a GUI application written atop of the well known {{AUR|gdebugger}}{{Broken package link|{{aur-mirror|gdebugger}}}} and is available only for x86_64 systems.
  
While rebuilding autofglrx will call 'catalyst_build_module' to build a module and 'catalyst_build_module remove' to remove unneeded, older fglrx module.
+
You can find more informations about CodeXL [http://developer.amd.com/tools/heterogeneous-computing/codexl/ here].
  
It doesn't remain in memory.
+
== Features ==
  
{{Note|While installation autofglrx is added into beginning of DAEMONS array of /etc/rc.conf file. You may replace it, but be sure to add it before your DM/X, and do NOT add monkey (@) to it because it must NOT be started in background.
+
=== Tear Free Rendering ===
}}
 
{{Note|If you are using '''own compilation flags''' and got problems with a daemon - please add those flags into /usr/bin/catalyst_build_module file.
 
}}
 
  
=== Official ATI/AMD Installer ===
+
Presented in '''Catalyst 11.1''', the ''Tear Free Desktop'' feature reduces tearing in 2D, 3D and video applications. This likely adds triple-buffering and v-sync. Do note that it requires additional GPU processing.
{{Warning| Using the installer from ati.com/amd.com is '''NOT''' recommended for inexperienced users! It may cause file conflicts and X failures. You ''must'' be familiar with booting to the command-line if you wish to attempt this.}}
 
{{Note|If you have attempted a manual install from the official installer, and cannot recover your desktop:
 
# /usr/share/ati/fglrx-uninstall.sh}}
 
  
1.) Download the installer from AMD or elsewhere (whereas *-* will be the version): {{ic|ati-driver-installer-*-*-x86.x86_64.run}}
+
To enable 'Tear Free Desktop' run {{ic|amdcccle}} and go to: {{ic|Display Options}} → {{ic|Tear Free}}.
  
2.) Make sure it's executable: {{ic|# chmod +x ati-driver*}}
+
Or run:
  
3.) Ensure you're using a basic video driver like vesa, and remove conflicting drivers (i.e. xf86-video-ati, radeon) with pacman and from /etc/rc.conf
+
# aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1
  
4.) Symlink {{ic|/usr/src/linux}} to {{ic|<nowiki>/usr/src/{kernelsource}</nowiki>}}.  64-bit users also symlink{{ic|/usr/lib64}} to {{ic|/usr/lib}}.
+
To disable, again use {{ic|amdcccle}} or run:
  
5.) As root: {{ic|# ./ati-driver-installer-*-*-x86.86_64.run}}  (Files will extract to a temporary folder and scripts will run...)
+
# aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop
  
Assuming nothing went horribly wrong...
+
=== Video acceleration ===
  
6.) Check {{ic|/usr/share/ati/fglrx-install.log}} for issues.  There should also be a {{ic|/lib/modules/fglrx/make.{ker_version}.log}}
+
Catalyst supports [[hardware video acceleration]] via VA-API. Applications can take advantage of AMD Radeons UVD2 chipsets via AMD's [[wikipedia:X-Video Bitstream Acceleration|X-Video Bitstream Acceleration (XvBA)]] library. There is no need to manually install it as it is included in the {{AUR|catalyst-test}}, {{AUR|catalyst-total}} and {{AUR|catalyst-utils}} packages.
{{Note|If you modify the make scripts, save to a different filename.  Otherwise uninstall will not complete successfully.}}
 
  
7.) Finally, try {{ic|# aticonfig}} As of Catalyst 11.7, it still assumes {{ic|/etc/X11/xorg.conf}} should exist.
+
For '''mplayer''':
 +
Install {{AUR|mplayer-vaapi}} and {{Pkg|libva}}. Then just set your video player to use {{ic|vaapi:gl}} as video output:
  
{{Note| If you want to adhere to the new xorg.conf.d: Append your {{ic|aticonfig}} string with ''--output'' so that you can adapt the Device section to ''/etc/X11/xorg.conf.d/20-radeon.conf'' The drawback of this is that many {{ic|aticonfig}} options rely on an xorg.conf, and thus will be unavailable.}}
+
$ mplayer -vo vaapi:gl movie.avi
  
== Configuration ==
+
These options can be added to your mplayer configuration file, see [[MPlayer]].
Three things to check in Arch before rebooting, otherwise X can break:
 
*/etc/X11/'''xorg.conf'''
 
*/etc/'''rc.conf'''
 
*/boot/grub/'''menu.lst'''
 
  
First, {{ic|xorg.conf}}:
+
For '''smplayer''':
AMD provides the {{ic|aticonfig}} tool to create/modify {{ic|xorg.conf}} file.  It also can configure virtually every aspect of the card for it also accesses the {{ic|amdpcsdb}} file. For a complete list of {{ic|aticonfig}} options, run:
 
# aticonfig --help | less
 
{{Warning| Use the --output option before committing to /etc/X11 as an xorg.conf file will override anything in /etc/X11/xorg.conf.d}}
 
Simple examples from {{ic|aticonfig}}:
 
{{bc|<nowiki>
 
      1. Setting up fglrx for the first time.
 
          Single head :    aticonfig --initial --input=/etc/X11/xorg.conf
 
          Dual head  :   aticonfig --initial=dual-head --screen-layout=above
 
                            This command will generate a dual head configuration
 
                            file with the second screen located above the first
 
                            screen.
 
</nowiki>}}
 
If you do not already have an {{ic|xorg.conf}} file, you can compare the generated file to one of the [[Xorg#Sample_xorg.conf_Files|Sample Xorg.conf]] examples listed on the Xorg page.
 
  
Although most options are now automatically detected in current Xorg, you may want to specify some in case the defaults change between versions.
+
Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl
 +
Options → Preferences → General → Video (tab) → Double buffering '''on'''
 +
Options → Preferences → General → General → Screenshots → Turn screenshots '''off'''
 +
Options → Preferences → Performance → Threads for decoding: '''1''' (to turn off -lavdopts parameter)
  
Here is an example(with notes) '''for reference'''. Entries with '#' should be required, add entries with '##' as needed:
+
{{Note|If Tear Free Desktop is enabled it is better to use:
{{bc|1=
+
Options → Preferences → General → Video (tab) → Output driver: vaapi
Section "ServerLayout"
+
If Video Output '''vaapi:gl''' is not working - please check:
        Identifier    "Arch"
+
'''vaapi''', '''vaapi:gl2''' or simply '''xv(0 - AMD Radeon [[wikipedia:Avivo|AVIVO Video]])'''.
        Screen      0  "Screen0" 0 0          # 0's are necessary.
 
EndSection
 
Section "Module"
 
        Load ...
 
        ...
 
EndSection
 
Section "Monitor"
 
        Identifier  "Monitor0"
 
        ...
 
EndSection
 
Section "Device"
 
        Identifier  "Card0"
 
        Driver      "fglrx"                        # Essential.
 
        BusID      "PCI:1:0:0"                    # Recommended if autodetect fails.
 
        Option      "OpenGLOverlay" "0"            ##
 
        Option      "XAANoOffscreenPixmaps" "false" ##
 
        Option      "UseInternalAGPGart"    "no"    ## Deprecated since Catalyst 8.24.18/
 
        Option      "KernelModuleParm"  "agplock=0" ## as AGP GART support was removed
 
EndSection
 
Section "Screen"
 
        Identifier "Screen0"
 
        Device    "Card0"
 
        Monitor    "Monitor0"
 
        DefaultDepth    24
 
        SubSection "Display"
 
                Viewport  0 0
 
                Depth    24                        # Should not change from '24'
 
                Modes "1280x1024" "2048x1536"      ## 1st value=default resolution, 2nd=maximum.
 
                Virtual 1664 1200                  ## (x+64, y) to workaround potential OGL rect. artifacts/
 
        EndSubSection                              ## fixed in Catalyst 9.8
 
EndSection
 
Section "DRI"
 
        Mode 0666                                  # May help enable direct rendering.
 
EndSection
 
 
}}
 
}}
On to {{ic|rc.conf}}:
 
:*Remove '''radeon''' from MODULES and blacklist it in {{ic|/etc/modprobe.d/modprobe.conf}} if {{ic|blacklist-fglrx.conf}} does not exist.
 
:*Adding '''fglrx''' to MODULES appears to be optional if added instead to {{ic|/etc/mkinitcpio.conf}} (boot image would be rebuilt before reboot).
 
{{Note|If you are using an AGP card instead of PCI Express add the agp module as well}}
 
  
Finally, {{ic|menu.lst}}:
+
For '''VLC''':
:*Clear modesetting options as the driver doesn't appear to take advantage of [[KMS]] yet. Add {{ic|nomodeset}}.
+
 
:*For example: {{ic|1=kernel /boot/vmlinuz-linux root=/dev/sda1 ro '''nomodeset'''}}
+
Tools → Preferences → Input & Codecs → Use GPU accelerated decoding
 +
 
 +
It might help to enable v-sync in '''amdcccle''':
 +
 
 +
3D → More Settings → Wait for vertical refresh = Always On
 +
 
 +
{{Note|If you are using '''Compiz/KWin''', the only way to '''avoid video flickering''' is to watch videos in '''full-screen''' and only when '''Unredirect Fullscreen is off'''.
 +
 
 +
In '''compiz''' you need to set '''Redirected Direct Rendering''' in General Options of ccsm. If it is still flickering, try to disable this option in CCSM. It is off by default in '''KWin''', but if you see flickering try to turn "Suspend desktop effects for fullscreen windows" on or off in {{ic|System Settings}} → {{ic|Desktop Effects}} → {{ic|Advanced}}.}}
 +
 
 +
=== GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities ===
 +
 
 +
You can get the GPU/Mem clocks with: {{ic|$ aticonfig --od-getclocks}}.
  
Reboot!
+
You can get the fan speed with: {{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}}
  
===Checking operation===
+
You can get the temperature with: {{ic|$ aticonfig --odgt}}
Assuming reboot to your login was successful, otherwise [[#Troubleshooting]].
 
Commands to check that fglrx is up and running:
 
{{bc|<nowiki>
 
lsmod | grep fglrx
 
fglrxinfo 
 
</nowiki>}}
 
  
Finally, run Xorg with {{ic|startx}} or by using GDM/KDM and verify that direct rendering is enabled by running the following command in a terminal:
+
To set the fanspeed with: {{ic|$ aticonfig --pplib-cmd "set fanspeed 0 50"}} Query Index: 50, Speed in percent
$ glxinfo | grep direct
 
  
If it says "direct rendering: yes" then you're good to go! If the glxinfo command is not found, you may need to install the mesa-demos package as well.
+
To overclock and/or underclock it is easier to use a GUI, like '''ATi Overclocking Utility''', which is very simple and requires qt to work. It might be out of date/old, but you can get it [http://kde-apps.org/content/show.php/ATI+Overclock?content=47796 here].
  
{{Warning| In recent versions of Xorg, the paths of libs are changed. So, sometimes {{ic|libGL.so}} cannot be correctly loaded even if it's installed. Check this if your GL is not working. Please read "Troubleshooting" section for details.}}
+
Another, more complex utility to perform such operations is '''AMDOverdriveCtrl'''. Its homepage is [http://sourceforge.net/projects/amdovdrvctrl here] and you can build {{AUR|amdoverdrivectrl}} from the AUR or from Vi0L0's unofficial repositories.
  
 
=== Double Screen (Dual Head / Dual Screen / Xinerama) ===
 
=== Double Screen (Dual Head / Dual Screen / Xinerama) ===
Line 430: Line 485:
 
==== Introduction ====
 
==== Introduction ====
  
{{Box RED| First of all:| you have to know, it does not exist one single solution because each needs and configurations are different. That's why you have to adapt the step below to your own needs. It is possible that you have to try more than once. '''Therefore, you MUST save your working /etc/X11/xorg.conf BEFORE you start any change and you must be able to recover from tty.'''}}
+
{{Warning| you should know that there is not one specific solution because each setup differs and needs its own configuration. That is why you will have to adapt the steps below to your own needs. It is possible that you have to try more than once. Therefore, you should save your working {{ic|/etc/X11/xorg.conf}} '''before''' you start modifying and be able to recover from a command-line environment.}}
  
* In this part, we will describe the installation of 2 differend sized screens on only one graphic cad with 2 different output ports (DVI + HDMI) using a "BIG Desktop" configuration.
+
* In this chapter, we will describe the installation of two different-sized screens on only one graphics card with two different output ports (DVI + HDMI) using a "BIG Desktop" configuration.
  
* The Xinerama solution has some inconveniences, especially because it is not compatible with XrandR. For that very reason, you should not use this solution, because XrandR is just a must for our later configuration.
+
* The Xinerama solution has some inconveniences, especially because it is not compatible with XrandR. For that very reason, you should not use this solution, because XrandR is a must for our later configuration.
  
* The Dual Head solution would allow you to have 2 different sessions (one for each screen). It could be your wish but you will not be able to move windows from one screen to another. If you have only one screen, you will have to define the mouse inside your xorg for the 2 sessions inside the Server Layout section.
+
* The Dual Head solution would allow you to have 2 different sessions (one for each screen). It could be what you want, but you will not be able to move windows from one screen to another. If you have only one screen, you will have to define the mouse inside your Xorg session for each of the two sessions inside the Server Layout section.
  
 
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]
 
[http://support.amd.com/us/kbarticles/Pages/1105-HowCanIConfigureMultip.aspx ATI Documentation]
Line 442: Line 497:
 
==== ATI Catalyst Control Center ====
 
==== ATI Catalyst Control Center ====
  
The GUI tool shiped by ATI is very useful and we will try to use it as much as we can. To launch it, open a terminal and use the following command line:
+
The GUI tool shipped by ATI is very useful and we will try to use it as much as we can. To launch it, open a terminal and use the following command:
  
  kdesu amdcccle
+
  $ {kdesu/gksu} amdcccle
  
{{Note|Of course, you have to adapt if you are using GNOME or any other DM.}}
+
{{Warning|Do '''not''' use sudo directly with a GUI. Sudo gives you admin rights with user account information. Instead, use ''gksu'' (GNOME) or ''kdesu'' (KDE).}}
{{Warning|Do NOT use sudo directly with a gui. Sudo gives you admin rights with user account information. Kdesu gives you admin rights with root privileges & variables.}}
 
  
 
==== Installation ====
 
==== Installation ====
  
Here, it is easy but important : make sure that your hardware is pluged correctly, power is on, and that you know your hardware caracteristics (screen dimensions, sizes, refresment rates ...) Normally, both screens are recognize during boot time but not necessarly identified properly, especially if you are not using any xorg base configuration file but instead relying on the hot-plugging feature.
+
Before we start, make sure that your hardware is plugged in correctly, that power is on and that you know your hardware characteristics (screen dimensions, sizes, refreshment rates, etc.) Normally, both screens are recognized during boot time but not necessarily identified properly, especially if you are not using any Xorg base configuration file ({{ic|/etc/X11/xorg.conf}}) but relying on the hot-plugging feature.
 +
 
 +
The first step is to make sure that you screens will be recognized by your DE and by X. For this, you need to generate a basic Xorg configuration file for your two screens:
  
The first step is to make sure they will be recognized by your DE / xorg. For this, you need to generate a basic xorg file for your 2 screens :
+
# aticonfig --initial --desktop-setup=horizontal --overlay-on=1
  
aticonfig --initial --desktop-setup=horizontal --overlay-on=1
 
 
or
 
or
aticonfig --initial=dual-head --screen-layout=left
 
{{Note|overlay is important because it allows you to have 1 pixel (or more) shared between the 2 screens.}}
 
{{Tip|For the different possible & available options, do not hesitate to type aticonfig inside a terminal to display all available command lines.}}
 
  
Normally, you have now a basic file that you can now edit to add your screen resolutions. It is important to precise the working resolution especially if you have screens of different sizes. To be added insithe the "Screen" section:
+
# aticonfig --initial=dual-head --screen-layout=left
 +
 
 +
{{Note|{{ic|overlay}} is important because it allows you to have 1 pixel (or more) shared between the 2 screens.}}
 +
{{Tip|For the other possible and available options, do not hesitate to type {{ic|aticonfig --help}} inside a terminal to display all available command lines.}}
 +
 
 +
Now you should have a basic Xorg configuration file that you can edit to add your screen resolutions. It is important to use the precise resolution, especially if you have screens of different sizes. These resolutions have to be added in the "Screen" section:
  
 
  SubSection "Display"
 
  SubSection "Display"
Depth 24
+
    Depth     24
Modes "1200x800"
+
    Modes     "X-resolution screen 1xY-resolution screen 1" "Xresolution screen 2xY-resolution screen 2"
 
  EndSubSection
 
  EndSubSection
  
Well, from now on, instead of editing the xorg.conf file manually, let us use the ATI gui tool. Reboot X to be sure that your 2 screens are well supported and that the resolution are well recognized. (Screens must be independant).
+
From now on, instead of editing the {{ic|xorg.conf}} file manually, let us use the ATI GUI tool. Restart X to be sure that your two screens are properly supported and that the resolutions are properly recognized (Screens must be independent, not mirrored).
  
 
==== Configuration ====
 
==== Configuration ====
  
Here, you only have to launch the ATI control center with root privileges, go inside the display menu and choose how you would like to set your configuration (small arrow of the drop down menu). A last reboot of X and you will be done !
+
Now you will only have to launch the ATI control center with root privileges, go to the display menu and choose how you would like to set your configuration (small arrow of the drop down menu). A last restart of X and you should be done!
 +
 
 +
Before you restart X, do not hesitate to verify your new {{ic|xorg.conf}} file. At this stage, inside the "Display" sub-section of the "Screen" section, you should see a "Virtual" command line, of which the resolution should be the sum of both screens. The "Server Layout" section says all the rest.
 +
 
 +
== Uninstallation ==
  
Before you reboot, do not hesitate to verify your new xorg.conf file. At this stage, inside the "Display" sub-section of the "Screen" section, you should see a "Virtual" command line, of which the resolution should be the sum of both screens. The "Server Layout" section says all the rest.
+
If for any reason this driver is not working for you or if you simply want to try out the open source driver, remove the {{ic|catalyst}} and {{ic|catalyst-utils}} packages. Also you should remove {{AUR|catalyst-generator}}, {{AUR|catalyst-hook}} and {{AUR|lib32-catalyst-utils}} packages if they have been installed on your system.
  
== Features ==
+
{{Warning|
=== Video acceleration ===
+
*You may need to use {{ic|# pacman -Rdd}} to remove {{AUR|catalyst-utils}} (and/or {{AUR|lib32-catalyst-utils}}) because that package contains ''gl'' related files and many of your installed packages depend on them. These dependencies will be satisfied again when you install {{Pkg|xf86-video-ati}}.
'''[http://en.wikipedia.org/wiki/Video_Acceleration_API Video Acceleration API] (VA API)''' is an open source software library ("libVA") and API specification which enables and provides access to '''graphics hardware (GPU) acceleration''' for video processing on Linux  and UNIX based operating systems.
+
*You may need to remove {{ic|/etc/profile.d/ati-flgrx.sh}} and {{ic|/etc/profile.d/lib32-catalyst}} (if it exists on your system), otherwise {{ic|r600_dri.so}} will fail to load and you would not have 3D support.}}
The main motivation for VA API is to enable hardware accelerated video decode at various entry-points (VLD, IDCT, Motion Compensation, deblocking) for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/WMV3).
+
 
 +
{{Note|You should remove unofficial repositories from your {{ic|/etc/pacman.conf}} and run {{ic|# pacman -Syu}}, because those repositories include out-dated Xorg packages to allow use of {{ic|catalyst}} and the {{Pkg|xf86-video-ati}} package needs up-to-date Xorg packages from the [[Official repositories]].}}
 +
 
 +
Also follow these steps:
  
In November 2009, VA-API gained a new proprietary '''xvba-video''' backend which allows VA-API powered applications to take advantage of AMD Radeon's UVD2 chipsets via the [http://en.wikipedia.org/wiki/XvBA XvBA (X-Video Bitstream Acceleration API designed by AMD)] library.
+
* If you have the {{ic|/etc/modprobe.d/blacklist-radeon.conf}} file remove it or comment the line {{ic|blacklist radeon}} in that file.
 +
* If you have a file in {{ic|/etc/modules-load.d}} to load the {{ic|fglrx}} module on boot, remove it or comment the line containing {{ic|fglrx}}.
 +
* Make sure to remove or backup {{ic|/etc/X11/xorg.conf}}.
 +
* If you have installed the {{AUR|catalyst-hook}} package, make sure to disable the systemd service.
 +
* If you used the {{ic|nomodeset}} option in your [[kernel parameters]] and plan to use KMS, remove it.
 +
* '''Reboot''' before installing another driver.
  
XvBA support and xvba-video is still under development, however in nowadays it is '''working very well in most cases''' and with '''mplayer''' (and mplayer front-ends), so feel free to check it. You have to build [http://aur.archlinux.org/packages.php?ID=31723 xvba-video] package and install mplayer-vaapi (available in community repository) & libva (available in extra repository) packages.
+
== Troubleshooting ==
Then just set your video player to use vaapi:gl as video output.
 
  
Ie. for '''mplayer''':
+
If you can still boot to command-line, then the problem probably lies in {{ic|/etc/X11/xorg.conf}}
$ mplayer -vo vaapi:gl -va vaapi movie.avi
 
  
Ie. for '''smplayer''':
+
You can parse the whole {{ic|/var/log/Xorg.0.log}} or, for clues:
Options -> Preferences -> General -> Video (tab) -> Output driver: User Defined : vaapi:gl
 
Options -> Preferences -> General -> Video (tab) -> Double buffering '''on'''
 
Options -> Preferences -> Advanced -> Options for MPlayer -> Options: -va vaapi
 
Options -> Preferences -> General -> General -> Screenshots -> Turn screenshots '''off'''
 
{{Note| If Tear Free Desktop is enabled it's better to use
 
Options -> Preferences -> General -> Video (tab) -> Output driver: vaapi
 
instead of:
 
Options -> Preferences -> General -> Video (tab) -> Output driver: User Defined : vaapi:gl
 
}}
 
{{Note| If Video Output '''vaapi:gl''' isn't working - please check '''vaapi:gl2''' or simple '''vaapi'''
 
}}
 
Ie. for '''vlc''':
 
Tools -> Preferences -> Input & Codecs -> Use GPU acceleration
 
  
Don't forget to enable v-sync in '''amdcccle''':
+
$ grep '(EE)' /var/log/Xorg.0.log
3D -> More Settings -> Wait for vertical refresh = Always On
+
$ grep '(WW)' /var/log/Xorg.0.log
  
Note: If you are using '''compiz/kwin''' please note that the only way to '''avoid video flickering''' is to watch videos in '''full-screen''', and only when '''Unredirect Fullscreen is off'''.
+
If you are still confused about what is going on, search the forums first.  Then post a message in the [https://bbs.archlinux.org/viewtopic.php?pid=1166052#p1166052/ thread specific to ATI/AMD]. Provide the information from {{ic|xorg.conf}} and both commands mentioned above.
  
In '''compiz''' you need to set '''Redirected Direct Rendering''' in General Options of ccsm.
+
=== Failed to start atieventsd.service ===
If its still flickering try to disable this option in ccsm.
+
Install {{Pkg|acpid}} from the [[official repositories]]. Start and enable the acpid [[Daemon|service]].
  
Its off by default in '''kwin''', but if you see flickering try to turn option "Suspend desktop effects for fullscreen windows" on or off in System Settings -> Desktop Effects -> Advanced.
+
If the service still fails to start, edit {{ic|/usr/lib/systemd/system/atieventsd.service}} and change {{ic|acpid.socket}} to {{ic|acpid.service}}.
  
=== Tear Free Rendering ===
+
=== Failed to open fglrx_dri.so ===
Presented in '''Catalyst 11.1''' 'Tear Free Desktop' feature reduces tearing in 2D, 3D and video applications. This likely adds triple-buffering and v-sync.
+
{{Accuracy|There should be no need to mess around in {{ic|/usr}}. This is probably a bug in another program.}}
Please note that it requires additional GPU processing.
+
Create a symlink from {{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}} to {{ic|/usr/X11R6/lib64/modules/dri/fglrx_dri.so}} (or other requested path)
  
To enable 'Tear Free Desktop' run {{ic|amdcccle}} and go to: [Display Options] -> [Tear Free]
+
# mkdir -p /usr/X11R6/lib64/modules/dri
 +
# ln -s /usr/lib/xorg/modules/dri/fglrx_dri.so /usr/X11R6/lib64/modules/dri/fglrx_dri.so
  
or as root run:
+
=== GDM fails to start ===
  aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1
+
Downgrade the {{pkg|xorg-server}} package or try to use another [[display manager]] like [[LightDM]].
To disable use amdcccle or as root run:
 
  aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop
 
  
=== GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities ===
+
=== 3D Wine applications freeze ===
You can get GPU/Mem clocks with: {{ic|$ aticonfig --od-getclocks}}
+
If you use a 3D Wine application and it hangs, watch out for the following workarounds.
  
Fan speed:{{ic|$ aticonfig --pplib-cmd "get fanspeed 0"}}
+
==== TLS ====
 +
One source of problems is TLS. To disable it, either use {{ic|aticonfig}} or edit {{ic|/etc/X11/xorg.conf}}. To use {{ic|aticonfig}}:
  
Temperature:{{ic|$ aticonfig --odgt}}
+
# aticonfig --tls=off
  
To overclock/underclock it's easier to use some GUI software, like '''ATi Overclocking Utility''', which is very simple and requires qt to work.
+
Or, to edit {{ic|/etc/X11/xorg.conf}}; first open the file in an editor as root and then add {{ic|Option "UseFastTLS" "off"}} to the ''Device'' section of this file.  
  
i686 version is available [http://kde-apps.org/content/show.php/ATI+Overclocking+Utility+X32?content=107458 here] while x86_64 - [http://kde-apps.org/content/show.php/ATI+Overclocking+Utility+X64?content=107457 here]. Just download it and run.
+
After applying either of the solutions, restart X for it to take effect.
  
Other, more complex utility to perform such operations is '''AMDOverdriveCtrl'''. It's homepage is [http://sourceforge.net/projects/amdovdrvctrl here], you can get arch package from [http://aur.archlinux.org/packages.php?ID=45298 AUR] or from [catalyst] repository.
+
==== Compiz ====
 +
In case you are using compiz as the windows compositer, disable it. For instance, if you are using XFCE as your desktop environment, open a terminal and execute:
  
==Troubleshooting==
+
$ xfwm4 --replace &
If you can still boot to command-line, then the problem probably lies in {{ic|xorg.conf}}
 
  
You can parse the whole {{ic|/var/log/Xorg.0.log}} or
 
{{bc|
 
grep '(EE)' /var/log/Xorg.0.log
 
grep '(WW)' /var/log/Xorg.0.log
 
}}
 
For clues.
 
 
=== Problems with video colours ===
 
=== Problems with video colours ===
You may still use vaapi:gl to avoid video flickering, but without video acceleration
 
  
Run '''mplayer''' without '''-va vaapi''' switch.
+
You may still use {{ic|vaapi:gl}} to avoid video flickering, but without video acceleration:
 +
 
 +
* Run '''mplayer''' without {{ic|-vo vaapi}} switch.
  
For '''smplayer''' remove '''-va vaapi''' from Options -> Preferences -> Advanced -> Options for MPlayer -> Options: -va vaapi
+
* Run '''smplayer''' remove {{ic|-vo vaapi}} from Options Preferences Advanced Options for MPlayer Options: -vo vaapi
  
 
Plus for '''smplayer''' you may now safely turn screenshots on.
 
Plus for '''smplayer''' you may now safely turn screenshots on.
===KWin and composite===
+
 
 +
=== KWin and composite ===
 +
 
 
You may use XRender if the rendering with OpenGL is slow. However, XRender might also be slower than OpenGL depending on your card.
 
You may use XRender if the rendering with OpenGL is slow. However, XRender might also be slower than OpenGL depending on your card.
XRender also solves artifact issues in some cases.
+
XRender also solves artefact issues in some cases, for instance when resizing Konsole.
 +
 
 +
=== Black screen with complete lockups and/or hangs after reboot or startx ===
 +
 
 +
Ensure you have added the {{ic|nomodeset}} option to the kernel options line in your bootloader (see [[#Disable kernel mode setting]]). Make sure that Catalyst is compatible with your installed Xorg version and used Linux kernel version.
  
===Black screen with complete lockups / hangs after reboot or startx===
+
If you are using the legacy driver ({{ic|catalyst-hd234k}}) and get a black screen, try downgrading xorg-server to 1.12 by using the [[#xorg112]] repository.
  
 
==== Faulty ACPI hardware calls ====
 
==== Faulty ACPI hardware calls ====
It is possible that fglrx doesn't cooperate well with the system's ACPI hardware calls, so it autodisables itself and there is no screen output.
 
  
So try to run this:
+
It is possible that fglrx does not cooperate well with the system's ACPI hardware calls, so it auto-disables itself and there is no screen output.
  aticonfig --acpi-services=off
 
  
===KDM disappears after logout===
+
If so, try to run this:
If you are running Catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout:
 
$ sudo nano /usr/share/config/kdm/kdmrc
 
  
Uncomment the following line under the section titled [X-:*-Core]:
+
$ aticonfig --acpi-services=off
TerminateServer=True
+
 
 +
=== KDM disappears after logout ===
 +
 
 +
If you are running Catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout. Uncomment the following line under the section titled {{ic|[X-:*-Core]}}
 +
 
 +
{{hc|/usr/share/config/kdm/kdmrc|2=
 +
TerminateServer=True
 +
}}
  
 
KDM should now appear when you log out of KDE.
 
KDM should now appear when you log out of KDE.
  
===Direct Rendering does not work===
+
=== Hibernate/Sleep issues ===
This problem may occur when using the proprietary '''catalyst''' driver.
 
  
{{Warning|This error would also appear if you have not '''rebooted''' your system after the installation or upgrade of catalyst. The system needs to load the fglrx.ko module in order to make the driver work.}}
+
==== Video fails to resume from suspend2ram ====
  
If you have problem with direct rendering, run:
+
ATI's proprietary Catalyst driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add {{ic|1=vga=0}} to your kernel [[kernel parameters]].
    $ LIBGL_DEBUG=verbose glxinfo > /dev/null
 
at the command prompt. At the very start of the output, it'll usually give you a nice error message saying why you do not have direct rendering.
 
  
Common errors, and their solutions, are:
+
To see where you need to add this with other bootloaders, see [[#Disable kernel mode setting]].
    '''libGL error: XF86DRIQueryDirectRenderingCapable returned false'''
 
  
* Ensure that you are loading the correct agp modules for your AGP chipset before you load the fglrx kernel module.  To determine which agp modules you'll need, run {{ic|hwdetect --show-agp}}, then ensure that all modules listed from that command are in the {{ic|1=MODULES=}} array in rc.conf, '''before''' fglrx.
+
=== System freezes/Hard locks ===
    '''libGL error: failed to open DRM: Operation not permitted'''
 
    '''libGL error: reverting to (slow) indirect rendering'''
 
  
    '''libGL: OpenDriver: trying /usr/lib/xorg/modules/dri//fglrx_dri.so'''
+
* The {{ic|radeonfb}} framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.
    '''libGL error: dlopen /usr/lib/xorg/modules/dri//fglrx_dri.so failed'''
 
    '''(/usr/lib/xorg/modules/dri//fglrx_dri.so: cannot open shared object file: No such file or directory)'''
 
    '''libGL error: unable to find driver: fglrx_dri.so'''
 
  
* Something has not been installed correctly.  If the paths in the error message are {{ic|/usr/X11R6/lib/modules/dri/fglrx_dri.so}}, then ensure you've logged completely out of your system, then back in.  If you're using a graphical login manager (gdm, kdm, xdm), ensure that /etc/profile is sourced every time you log in.  This is usually accomplished by adding {{ic|source /etc/profile}} into {{ic|~/.xsession}} or {{ic|~/.xinitrc}}, but may vary between login managers.
+
* If you experience system freezes when exiting your DE (shut down, suspend, switching to tty etc.) you probably forgot to deactivate KMS. (See [[#Disable kernel mode setting]])
  
* If the paths above in your error message ''are'' {{ic|/usr/lib/xorg/modules/dri/fglrx_dri.so}}, then something has not been correctly installed. Try reinstalling the {{ic|catalyst}} package.
+
=== Hardware conflicts ===
   
 
Errors such as:
 
    '''fglrx: libGL version undetermined - OpenGL module is using glapi fallback'''
 
could be caused by having multiple versions of {{ic|libGL.so}} on your system. Run:
 
    $ sudo updatedb
 
    $ locate libGL.so
 
  
This should return the following output:
+
Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) will not have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by getting output something similar to this (using an nForce3-based system):
    $ locate libGL.so
 
    /usr/lib/libGL.so
 
    /usr/lib/libGL.so.1
 
    /usr/lib/libGL.so.1.2
 
    $
 
  
These are the only three libGL.so files you should have on your system.  If you have any more (e.g. {{ic|/usr/X11R6/lib/libGL.so.1.2}}), then remove them. This should fix your problem.
+
{{hc|<nowiki>$ dmesg | grep agp</nowiki>|
 +
agpgart: Detected AGP bridge 0
 +
agpgart: Setting up Nforce3 AGP.
 +
agpgart: aperture base > 4G
 +
}}
  
You might not get any error to indicate that this is a problem. If you are using X11R7, make sure you do '''not''' have these files on your system:
+
and also if issuing the following command gets you the following output:
    /usr/X11R6/lib/libGL.so.1.2
 
    /usr/X11R6/lib/libGL.so.1
 
  
===Hibernate/Sleep Issues===
+
{{hc|<nowiki>$ tail -n 100 /var/log/Xorg.0.log | grep agp</nowiki>|
 +
(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"}}
  
====Video fails to resume from suspend2ram====
+
you have this bug.
ATI's proprietary {{ic|catalyst}} driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add '''vga=0''' to your kernel options in {{ic|/boot/grub/menu.lst}}, for example:
 
kernel /vmlinuz-linux root=/dev/sda3 resume=/dev/sda2 ro quiet '''vga=0'''
 
  
===System Freezes/Hard locks===
+
Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, '''a bad BIOS downgrade can render your hardware useless, so beware.'''
* The {{ic|radeonfb}} framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.
 
  
===Hardware Conflicts===
+
See [http://bugzilla.kernel.org/show_bug.cgi?id=6350 this bugreport] for more information and a potential fix.
Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) won't have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by issuing in a root console the following command:
 
    dmesg | grep agp
 
  
If you get something similar to this (using an nForce3-based system)
+
=== Temporary hangs when playing video ===
    agpgart: Detected AGP bridge 0
 
    agpgart: Setting up Nforce3 AGP.
 
    agpgart: aperture base > 4G
 
  
and also if issuing this command...
+
This problem may occur when using the proprietary Catalyst.
      tail -n 100 /var/log/Xorg.0.log | grep agp
 
  
...gets something similar to:
+
If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check the system logs for output like:
      (EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"
 
  
Then you have this bug.
+
{{hc|/var/log/messages.log|2=
 +
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
 +
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
 +
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]
 +
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
 +
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90
 +
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0
 +
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70
 +
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33
 +
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
 +
Nov 28 18:31:56 pandemonium =======================
 +
}}
  
Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, a bad BIOS downgrade can render your hardware useless, so beware.
+
Adding the {{ic|nopat}} and/or {{ic|nomodeset}} [[kernel parameters]] should work.
  
See bug http://bugzilla.kernel.org/show_bug.cgi?id=6350 for more information and a potential fix.
+
=== "aticonfig: No supported adapters detected" ===
  
===Temporary hangs when playing video===
+
If you get the following:
This problem may occur when using the proprietary Catalyst.
 
  
If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check /var/log/messages.log for output like:
+
{{hc|# aticonfig --initial|
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
+
aticonfig: No supported adapters detected
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
+
}}
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]
 
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
 
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90
 
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0
 
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70
 
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33
 
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
 
Nov 28 18:31:56 pandemonium =======================
 
  
Adding the nopat kerneloption to /boot/grub/menu.lst and rebooting fixed the problem at least for me.
+
It may still be possible to get Catalyst working by manually setting the device in your your {{ic|etc/X11/xorg.conf}} file or by copying an older working {{ic|/etc/ati/control}} file (preferred - this also fixes the watermark issue).
  
===Catalyst 10.6/10.7/10.8/10.9 : black/grey/white boxes/artifacts in firefox/thunderbird===
+
To get an older control file, download a previous version of fglrx from AMD and run it with {{ic|--extract driver}} parameter. You will find the control file in {{ic|driver/common/etc/ati/control}}. Copy the extracted file over the system file and restart Xorg. You can try different versions of the file.
With catalyst 10.6 AMD/ATi announce new method of 2D acceleration for radeons, unfortunately this step causes bugs for some users. To turn on old (slower xaa) method of 2d rendering please kill your desktop environment and Xserver and type this command as root:
 
aticonfig --set-pcs-str=DDX,ForceXAA,TRUE
 
Now you'll probably need patched xorg-server to fix problems with resizing/maximizing windows, read about it ie. [http://wiki.archlinux.org/index.php/ATI_Catalyst#Black.2Fgrey.2Fwhite_boxes.2Fartifacts_mainly_in_firefox.2Fthunderbird here].
 
  
Also see [https://bbs.archlinux.org/viewtopic.php?pid=1008216#p1008216 this post] if the above doesn't work for you.
+
To set your model in {{ic|xorg.conf}}, edit the device section of {{ic|/etc/X11/xorg.conf}} to:
  
===Radeon HD 6870 and fglrx 10.10===
+
{{hc|/etc/X11/xorg.conf|
When running
+
Section "Device"
#sudo aticonfig --initial
+
        Identifier "ATI radeon '''****'''"
you will get
+
        Driver    "fglrx"
aticonfig: No supported adaptaters detected
+
EndSection
That's because HD6870 is not supported by fglrx 10.10
+
}}
  
However you can create xorg.conf yourself :
+
Where {{ic|****}} should be replaced with your device's marketing number (e.g. 6870 for the HD 6870 and 6310 for the E-350 APU).
Section "Device"
 
  Identifier "ATI radeon 6870"
 
  Driver "fglrx"
 
EndSection
 
  
Xorg will start and it is possible to use amdcccle instead of aticonfig. There will be a "AMD Unsupported hardware" watermark.
+
Xorg will start and it is possible to use {{ic|amdcccle}} instead of {{ic|aticonfig}}. There will be an "AMD Unsupported hardware" watermark.
 +
 
 +
You can remove this watermark using the following script:
  
You can remove this watermark using the following script :
 
 
  #!/bin/sh
 
  #!/bin/sh
 
  DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so
 
  DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so
 
  for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
 
  for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
  sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER
+
    sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER
 
  done
 
  done
  
===WebGL support in Chromium===
+
and then reboot your machine.
Google has blacklisted linux's catalyst driver from supporting webGL in their Chromium/Chrome browsers.
+
 
 +
=== WebGL support in Chromium ===
  
You can turn webGL on by editing /usr/share/applications/chromium.desktop file and adding '''--ignore-gpu-blacklist''' flag into '''Exec''' line so it could look like this:
+
Google has blacklisted Linux's Catalyst driver from supporting webGL in their Chromium/Chrome browsers. See [[Chromium#WebGL]] for details.
Exec=chromium %U --ignore-gpu-blacklist
 
You can also run chromium from console with that --ignore-gpu-blacklist flag:
 
$ chromium --ignore-gpu-blacklist
 
  
{{Warning| Catalyst does not support the GL_ARB_robustness extension, so it is possible that a malicious site could use WebGL to perform a DoS attack on your graphic card, more info: http://www.h-online.com/security/news/item/WebGL-as-a-security-problem-1240567.html}}
+
=== Lag/freezes when watching flash videos via Adobe's flashplugin ===
  
 +
Edit:
  
===Laggs/freezes when watching flash videos via Adobe's flashplugin===
+
{{hc|/etc/adobe/mms.cfg|2=
Edit /etc/adobe/mms.cfg file and make it looks like this:
 
{{bc|1=
 
 
#EnableLinuxHWVideoDecode=1
 
#EnableLinuxHWVideoDecode=1
 
OverrideGPUValidation=true
 
OverrideGPUValidation=true
 
}}
 
}}
  
 +
If you are using KDE make sure that "Suspend desktop effects for fullscreen windows" is unchecked under {{ic|System Settings}} → {{ic|Desktop Effects}} → {{ic|Advanced}}.
  
===Laggs/slow windows movement in GNOME3===
+
=== Lag/slow windows movement in GNOME3 ===
You can try this solution out, it's working for many people.
 
  
Add this line:
+
You can try this solution, it has been reported to work for many people.
{{bc|1=
+
 
export CLUTTER_VBLANK=none
+
Add this line into {{ic|~/.profile}} or into {{ic|/etc/profile}}:
}}
+
 
into ~/.profile or into /etc/profile file.
+
export CLUTTER_VBLANK=none
Restart X server or reboot system.
+
 
 +
Restart X server or reboot your system.
 +
 
 +
=== Not using full screen resolution at 1920x1080 (underscanning, black borders around the screen) ===
 +
 
 +
This usually happens when you use a HDMI connection to connect your monitor/TV to your computer.
 +
 
 +
Seemed to be a feature by AMD/ATI to work with all HDTVs that could be adjusted via the amdccle.
 +
 
 +
Using the amdcccle GUI you can select the affected display, go to adjustments, and set underscan to 0% (aticonfig defaults to 15% underscan). It is possible as well that the underscan slider will not show under the display's adjustments, as sometimes in (at least) version 14.10.
 +
 
 +
The problem is that the settings will not persist after restarting X server or rebooting or wake up or might even revert after changing TTYs.
 +
 
 +
For the changes to become permanent, you will need to adjust the underscan settings manually using "aticonfig" via console (as root) or manually edit the file {{ic|/etc/ati/amdpcsdb}} (as root)
 +
 
 +
'''using aticonfig method:'''
 +
 
 +
# aticonfig --set-pcs-u32=MCIL,DigitalHDTVDefaultUnderscan,0
 +
 
 +
After changing the settings, reboot.
 +
 
 +
For newer version (for example, 12.11), if Catalyst control center repeatedly fails to save the overscan setting you can also try:
 +
 
 +
# aticonfig --set-pcs-u32=MCIL,TVEnableOverscan,0
 +
 
 +
'''Manually editing /etc/ati/amdpcsdb method:'''
 +
 
 +
Add the following line anywhere under the following header {{ic|[AMDPCSROOT/SYSTEM/MCIL]}}
 +
 
 +
# DigitalHDTVDefaultUnderscan=V0
 +
 
 +
For newer version (for example, 12.11), if Catalyst control center repeatedly fails to save the overscan setting you can also try:
 +
locate under {{ic|[AMDPCSROOT/SYSTEM/MCIL]}} the following line
 +
 
 +
# TVEnableOverscan=V1
 +
 
 +
and change it to
 +
 
 +
# TVEnableOverscan=V0
 +
 
 +
After changing the settings, reboot.
 +
 
 +
{{note|You might find that the file {{ic|/etc/ati/amdpcsdb}} will be overwritten and revert no matter what you do as user or as root even with log in/log out/reboot, ergo the modification will not stick.
 +
For the amd database file not to be overwritten you have to modify it without the fglrx driver running.
 +
This can be made by rebooting in any "safe mode" that will not use the driver or directly booting into console mode}}
 +
 
 +
'''Workaround:'''
 +
For whatever reason you can find yourself not wanting to touch ATI's config files you can circumvent the problem by forcing the panel's position and resolution:
 +
as user:
 +
 
 +
# aticonfig --set-dispattrib=DISPLAYTYPE,positionX:0
 +
# aticonfig --set-dispattrib=DISPLAYTYPE,positionY:0
 +
# aticonfig --set-dispattrib=DISPLAYTYPE,sizeX:1920
 +
# aticonfig --set-dispattrib=DISPLAYTYPE,sizeY:1080
 +
 
 +
{{ic|DISPLAYTYPE}} will be the name of the monitor you want to change its attributes, for example "dfp9".
 +
To get the name of your {{ic|DISPLAYTYPE}} run the following command:
 +
 +
# xrandr --current
 +
 
 +
Should RandR be not enabled use:
 +
 
 +
# aticonfig --query-monitor
 +
 
 +
Using the display switch or DISPLAY variable set to the appropriate display/screen (:0.1 for example) might be necessary.
 +
 
 +
That will show you which displays are connected and disconnected and its properties
 +
 
 +
This workaround will not persist but it is a quick fix that will show that the panel works just fine and that the above solutions are to be put into place.
 +
 
 +
{{note|{{ic|<nowiki>aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0</nowiki>}} should not be used on newer versions of the driver as it is deprecated and will be soon removed as stated by ATI.}}
 +
 
 +
Try {{ic|<nowiki>aticonfig --help | grep set-pcs-val</nowiki>}} to read ATI's notice
 +
 
 +
=== Dual Screen Setup: general problems with acceleration, OpenGL, compositing, performance ===
 +
Try to disable xinerama and xrandr12. Check out ie. this way:
 +
 
 +
Type those commands:
 +
# aticonfig --initial
 +
# aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"
 +
Then reboot your system. In {{ic|/etc/X11/xorg.conf}} check that xinerama is disabled, if it is not, disable it and reboot your system.
 +
 
 +
Next run {{ic|amdcccle}} and pick up amdcccle → display manager → multi-display → multidisplay desktop with display(s) 2.
 +
 
 +
Reboot again and set up your display layout whatever you desire.
 +
 
 +
=== Disabling VariBright feature ===
 +
[http://support.hp.com/vn-en/document/c02848104 Vari-Bright] is a feature designed to save power by dynamically adjusting how much power the display panel uses.
 +
Enter the following command to disable VariBright:
 +
# aticonfig --set-pcs-u32=MCIL,PP_UserVariBrightEnable,0
 +
 
 +
=== Hybrid/PowerXpress: turning off discrete GPU ===
 +
When you are using packages with powerXpress support and you are switching to integrated GPU you may notice that discrete GPU is still working, consuming power and making your system's temperature higher.
 +
 
 +
Sometimes ie. when your integrated GPU is intel's one you can use {{ic|vgaswitcheroo}} to turn the discrete GPU off.
 +
Sometimes unfortunately, it is not working.
 +
 
 +
Then you may check out [https://aur.archlinux.org/packages/?O=0&K=acpi_call acpi_call]. MrDeepPurple has prepared the script which he is using to perform 'turn off' task. He is calling script via systemd service while booting and resuming his system.
 +
Here is his script:
 +
#!/bin/sh
 +
libglx=$(/usr/lib/fglrx/switchlibglx query)
 +
modprobe acpi_call
 +
if [ "$libglx" = "intel" ]; then
 +
    echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call
 +
fi
 +
 
 +
=== Switching from X session to TTYs gives a blank screen/low resolution TTY ===
 +
Workaround for this "feature", which appeared in catalyst 13.2 betas, is to use {{ic|1=vga=}} kernel option, like {{ic|1=vga=792}}.
 +
You can get the list of supported resolutions with the
 +
$ hwinfo --framebuffer
 +
command. Get the one that corresponds to your wanted resolution, and copy-paste it into kernel line of your bootloader, so it could look like ie. {{ic|1=vga=0x03d4}}
 +
 
 +
=== Switching from X session to TTYs gives a black screen with the monitor backlight on ===
 +
Use [[uvesafb]] as your framebuffer driver. Moreover with {{ic|uvesafb}} it is also possible to set whatever resolution for the TTY.
 +
 
 +
=== Switching to TTYs then back to X session gives a black screen with a mouse cursor ===
 +
If you experience this bug, try adding
 +
Option      "XAANoOffscreenPixmaps" "true"
 +
to the 'Device' section of your xorg.conf file.
 +
 
 +
Also, make sure you have a [[Polkit#Authentication agents|polkit authentication agent]] installed and running, as this behavior can happen when a program is asking for a password, but does not have an authentication agent installed to display the password dialog box.
 +
 
 +
=== 30 FPS / Tear-Free / V-Sync bug ===
 +
Bug introduced in Catalyst 13.6 beta, not fixed till now (13.9).
 +
 
 +
After enabling "Tear-Free" functionality every freshly started OpenGL application is lagging, often generates only 30 FPS, it also touches composited desktop.
 +
 
 +
Workaround is pretty simple and was found by M132:
 +
 
 +
# Open "AMD Catalyst Control Center" (amdcccle) application
 +
# Enable Tear-Free, it will set 3D V-Sync option to "Always on".
 +
# Set 3D V-Sync to "Always Off".
 +
# Make sure Tear-Free is still on.
 +
# Restart X / Re-login.
 +
 
 +
It is working well on KDE 4.11.x, but in case of problems M132 suggests: "Try disabling "Detect refresh rate" and specify monitor's refresh rate in the Composite plugin."
 +
 
 +
=== Backlight adjustment does not work ===
 +
If you have a problem with backlight adjustment, you can try the following command:
 +
# aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,1
 +
Some users reported that this can decrease FPS. To restore defaults, run:
 +
# aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,0
 +
[http://ati.cchtml.com/show_bug.cgi?id=711 Read more about this bug]
 +
 
 +
=== Chromium glitching when using plasma ===
 +
Add --disable-gpu execute option to the chromium, ie. to /usr/share/applications/chromium.desktop file, like here:
 +
# cat /usr/share/applications/chromium.desktop | grep -i exec
 +
Exec=chromium %U --disable-gpu
 +
 
 +
=== Xorg crashes ===
 +
 
 +
==== Unsupported Xorg Version ====
 +
 
 +
When having a supported Linux kernel version but an unsupported Xorg version, you might get this error message and Xorg will crash
 +
 
 +
(WW) fglrx: No matching Device section for instance (BusID PCI:0@0:17:0) found
 +
(...)
 +
/usr/bin/Xorg.bin: symbol lookup error: /usr/lib/xorg/modules/drivers/fglrx_drv.so: undefined symbol: GlxInitVisuals2D
 +
xinit: giving up
 +
xinit: unable to connect to X server: Connection refused
 +
xinit: server error
 +
 
 +
For example: fglrx 15.20.3 does not support Xorg 1.17.
 +
 
 +
To solve this, you should downgrade Xorg. A helpful list of steps can be found on [https://gist.github.com/anonymous/9ea8d3774f7afce3a605]
 +
 
 +
== See also ==
 +
 
 +
* [http://wiki.cchtml.com/index.php/Main_Page Unofficial Wiki for the ATI Linux Driver]
 +
* [http://ati.cchtml.com/query.cgi Unofficial ATI Linux Driver Bugzilla]

Latest revision as of 05:09, 3 June 2017

Owners of ATI/AMD video cards have a choice between AMD's proprietary driver (catalystAUR) and the open source driver (ATI for older or AMDGPU for newer cards). This article covers the proprietary driver.

AMD's Linux driver package catalyst was previously named fglrx (FireGL and Radeon X). Only the package name has changed, while the kernel module retains its original fglrx.ko filename. Therefore, any mention of fglrx below is specifically in reference to the kernel module, not the package.

Catalyst packages are no longer offered in the official repositories. It is no longer updated by AMD and does not support the latest Xorg, so installing an old Xorg is required.

Compared with the open source driver, Catalyst performs generally worse in 2D rendering and generally equal in 3D rendering, also having better power management, but it lacks efficient multi-head support. Catalyst does support OpenCL 2.0 though and that's the main difference between Catalyst and open source drivers. Supported devices are ATI/AMD Radeon video cards with R600 to Volcanic Islands chipsets (Radeon HD 2xxx to Rx 300 cards). See the Release notes, Xorg decoder ring or this table, to translate model names (HD2400, HD6990) to/from chip names (R600, Northern Islands respectively).

Contents

Selecting the right driver

Depending on the card you have, find the right driver in Xorg#AMD. This page has instructions for Catalyst and Catalyst legacy.

Installation

There are three ways of installing Catalyst on your system. One way is to use Vi0L0's (Arch's unofficial Catalyst maintainer) repository. This repository contains all the necessary packages. The second method you can use is the AUR; PKGBUILDs offered here are also made by Vi0L0 and are the same he uses to built packages for his repository. Lastly, you can install the driver directly from AMD.

Before choosing the method you prefer, you will have to see which driver you need. For Radeon HD 5xxx to Rx 300, there is the regular Catalyst driver. The Radeon HD 2xxx, 3xxx and 4xxx cards need the legacy Catalyst driver. Regardless of the driver you need, you will also need the Catalyst utilities.

Note: After the instructions for every method of installing, you will find general instructions everyone has to perform, regardless of the method you used.

Installing the driver

Installing from the unofficial repository

If you do not fancy building the packages from the AUR, this is the way to go. The repository is maintained by our unofficial Catalyst maintainer, Vi0l0. All packages are signed and are considered safe to use. As you will see later on in this article, Vi0L0 is also responsible for many other packages that will help you get your system working with your ATI graphic cards.

Vi0L0 has three different Catalyst repositories, each having different drivers:

  • catalyst for the regular Catalyst driver needed by Radeon HD 5xxx to Rx 300, it contains the latest beta release (Catalyst 15.12).
  • catalyst-stable for the regular Catalyst driver needed by Radeon HD 5xxx to Rx 300, with the latest stable release (Catalyst 15.9).
  • catalyst-hd234k for the legacy Catalyst driver needed by Radeon HD 2xxx, 3xxx and 4xxx cards (Catalyst 12.4).

To enable one of these, follow the instructions in Unofficial user repositories. Remember to add the chosen repository above all other repositories in pacman.conf.

Note: The catalyst and catalyst-stable repositories share the same URL. To enable catalyst-stable, follow the instructions for enabling catalyst and replace [catalyst] with [catalyst-stable] in pacman.conf. If you need to stick with an old version, there are also some versioned repositories using the same URL (for example catalyst-stable-13.4).

Once you have added some Catalyst repository, update pacman's database and install these packages (see #Tools for more information):

  • catalyst-hook
  • catalyst-utils
  • catalyst-libgl
  • opencl-catalyst - optional, needed for OpenCL support
  • lib32-catalyst-utils - optional, needed for 32-bit OpenGL support on 64-bit systems
  • lib32-catalyst-libgl - optional, needed for 32-bit OpenGL support on 64-bit systems
  • lib32-opencl-catalyst - optional, needed for 32-bit OpenCL support on 64-bit systems
Note: If pacman asks you about removing libgl you can safely do so.
Warning: catalyst package was removed from Vi0L0's repository, its place was taken by catalyst-hook.

Installing from the AUR

The second way to install Catalyst is from the AUR. If you want to build the packages specifically for your computer, this is the way to go. Note that this is also the most tedious way to install Catalyst; it requires the most work and also requires manual updates upon every kernel update.

Warning: If you install the Catalyst package from the AUR, you will have to rebuild Catalyst every time the kernel is updated. Otherwise X will fail to start.

All packages mentioned above in Vi0L0's unofficial repository are also available on the AUR:

The AUR also holds some packages that are not found in any of the repositories. These packages contain the so-called Catalyst-total packages and the beta versions:

The catalyst-totalAUR packages are made to make the lives of AUR users easier. It builds the driver, the kernel utilities and the 32 bit kernel utilities. It also builds the catalyst-hookAUR package, which is described in #Tools.

Configuring the driver

After you have installed the driver via your chosen method, you will have to configure X to work with Catalyst. Also, you will have to make sure the module gets loaded at boot. Also, one should disable kernel mode setting.

Configuring X

To configure X, you will have to create an xorg.conf file. Catalyst provides its own aticonfig tool to create and/or modify this file. It also can configure virtually every aspect of the card for it also accesses the /etc/ati/amdpcsdb file. For a complete list of aticonfig options, run:

# aticonfig --help | less
Warning: Use the --output option before committing to /etc/X11/ as an xorg.conf file will override anything in /etc/X11/xorg.conf.d/
Note: To adhere to the new config location use # aticonfig [...] --output to adapt the Device section to /etc/X11/xorg.conf.d/20-radeon.conf. The drawback is that many aticonfig options rely on an xorg.conf, and will be unavailable.

Now, to configure Catalyst. If you have only one monitor, run this:

# aticonfig --initial

However, if you have two monitors and want to use both of them, you can run the command stated below. Note that this will generate a dual head configuration with the second screen located above the first screen.

# aticonfig --initial=dual-head --screen-layout=above
Note: See #Double Screen (Dual Head / Dual Screen / Xinerama) for more information on setting up dual monitors.

You can compare the generated file to one of the Sample Xorg.conf[broken link: invalid section] examples listed on the Xorg page.

Although the current Xorg versions auto-detect most options when started, you may want to specify some in case the defaults change between versions.

Here is an example (with notes) for reference. Entries with # should be required, add entries with ## as needed:

/etc/X11/xorg.conf
Section "ServerLayout"
        Identifier     "Arch"
        Screen      0  "Screen0" 0 0          # 0's are necessary.
EndSection
Section "Module"
        Load [...]
        [...]
EndSection
Section "Monitor"
        Identifier   "Monitor0"
        [...]
EndSection
Section "Device"
        Identifier  "Card0"
        Driver      "fglrx"                         # Essential.
        BusID       "PCI:1:0:0"                     # Recommended if autodetect fails.
        Option      "OpenGLOverlay" "0"             ##
        Option      "XAANoOffscreenPixmaps" "false" ##
EndSection
Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth    24
        SubSection "Display"
                Viewport   0 0
                Depth     24                        # Should not change from '24'
                Modes "1280x1024" "2048x1536"       ## 1st value=default resolution, 2nd=maximum.
                Virtual 1664 1200                   ## (x+64, y) to workaround potential OGL rect. artifacts/
        EndSubSection                               ## fixed in Catalyst 9.8
EndSection
Section "DRI"
        Mode 0666                                   # May help enable direct rendering.
EndSection
Note: With every Catalyst update you should remove amdpcsdb file in this way: kill X, remove /etc/ati/amdpcsdb, start X and then run amdcccle - otherwise the version of Catalyst may display wrongly in amdcccle.

If you need more information on Catalyst, visit this thread.

Loading the module at boot

We have to blacklist the radeon module to prevent it from auto-loading. To do so, blacklist radeon in /etc/modprobe.d/modprobe.conf. Also, make sure that it is not loaded by any file under /etc/modules-load.d/. For more information, see kernel modules#Blacklisting.

Then we will have to make sure that the fglrx module gets auto-loaded. Either add fglrx on a new line of an existing module file located under /etc/modules-load.d/, or create a new file and add fglrx.

Disable kernel mode setting

Note: Do not do this if you are using powerXpress technology (or hybrid AMD-Intel graphics) because Intel driver needs it.

Disabling kernel mode setting is important, as the Catalyst driver does not take advantage of KMS. If you do not deactivate KMS, your system might freeze when trying to switch to a TTY or even when shutting down via your DE.

To disable kernel mode setting, add nomodeset to your kernel parameters.

Checking operation

Assuming that a reboot to your login was successful, you can check if fglrx is running properly with the following commands:

$ lsmod | grep fglrx

If you get output, it works. Finally, run X manually with $ startx or by using a display manager (see Xorg#Running).

The following command should output your graphic card model name:

$ fglrxinfo

You can then verify that direct rendering is enabled by running the following command in a terminal:

$ glxinfo | grep "direct rendering"

If it says "direct rendering: yes" then you are good to go! If the $ glxinfo command is not found install the mesa-demos package.

Note: You can also use:
$ fgl_glxgears

as the fglrx alternative test to glxgears.

Warning: In recent versions of Xorg, the paths of libs are changed. So, sometimes libGL.so cannot be correctly loaded even if it is installed. Check this if your GL is not working. Please read #Troubleshooting section for details.

Custom kernels

Note: If you are at all uncomfortable or inexperienced with making packages, read up the ABS wiki page first so things go smoothly.

To install catalyst for a custom kernel, you will need to build your own catalyst-$kernel package:

  1. Obtain the PKGBUILD and catalyst.install files from Catalyst.
  2. Editing the PKGBUILD. Two changes need to be made here:
    1. Change pkgname=catalyst to pkgname=catalyst-$kernel_name, where $kernel_name is whatever you want (e.g. custom, mm, themostawesomekernelever).
    2. Change the dependency of linux to $kernel_name.
  3. Build your package and install; run makepkg -i or makepkg followed by # pacman -U pkgname.pkg.tar.gz
Note:
  • If you run multiple kernels, you have to install the catalyst-utilsAUR packages for all kernels. They will not conflict with one another.
  • catalyst-generatorAUR is able to build catalyst-{kernver} packages for you so you do not actually need to perform all those steps manually. For more information, see Tools section.

PowerXpress support

PowerXpress technology allows switching notebooks with dual-graphic capability from integrated graphics (IGP) to discrete graphics either to increase battery life or to achieve better 3D rendering capabilities.

To use such functionality on Arch you will have to:

  • Get and build catalyst-totalAUR / catalyst-testAUR package from the AUR, or
  • Install catalyst-libgl alongside with catalyst-utils packages from the [catalyst] repository.

To perform a switch into Intel's IGP you will also have to install the mesa package and Intel's drivers: xf86-video-intel.

Note: Catalyst sometimes has problems with newest intel drivers. If this is happening please downgrade xf86-video-intel to the previous version found on Arch Linux Archive or maybe even from archive #Xorg repositories alongside with xorg-server package(s).

Now you can switch between the integrated and the discrete GPU, using these commands:

# aticonfig --px-igpu    #for integrated GPU
# aticonfig --px-dgpu    #for discrete GPU

Just remember that fglrx needs /etc/X11/xorg.conf configured for AMD's card with fglrx inside.

You can also use the pxp_switch_catalyst switching script that will perform some additional usefull operations:

  • Switching xorg.conf - it will rename xorg.conf into xorg.conf.cat (if there is fglrx inside) or xorg.conf.oth (if there is intel inside) and then it will create a symlink to xorg.conf, depending on what you chose.
  • Running aticonfig --px-Xgpu.
  • Running switchlibGL.
  • Adding/removing fglrx into/from /etc/modules-load.d/catalyst.conf.

Usage:

# pxp_switch_catalyst amd
# pxp_switch_catalyst intel

If you have got problems when you try to run X on Intel's driver you may try to force "UXA" acceleration. Just make sure you got Option "AccelMethod" "uxa" in xorg.conf:

/etc/X11/xorg.conf
Section "Device"
        Identifier  "Intel Graphics"
        Driver      "intel"
        #Option      "AccelMethod"  "sna"
        Option      "AccelMethod"  "uxa"
        #Option      "AccelMethod"  "xaa"
EndSection

Running two X servers (one using the Intel driver, another one using fglrx) simultaneously

Because fglrx is crash-prone (regarding PowerXpress), it could be a good idea to use the Intel driver in the main X server and have a secondary X server using fglrx when 3D acceleration is needed. However, simply switching to the discrete GPU from the integrated GPU using aticonfig or amdcccle will cause all sorts of weird bugs when starting the second X.

To run two X servers at the same time (each using different drivers), you should firstly set up a fully working X with Catalyst and then move its xorg.conf to a temporary place (for example, /etc/X11/xorg.conf.fglrx. The next time X is started, it will use the Intel driver by default instead of fglrx.

To start a second X server using fglrx, simply move xorg.conf back to the proper place (/etc/X11/xorg.conf) before starting X. This method even allows you to switch between running X sessions. When you are done using fglrx, move xorg.conf somewhere else again.

The only disadvantage of this method is not having 3D acceleration using the Intel driver. 2D acceleration, however, is fully functional. Other than that, this will provide us with a completely stable desktop.

Issues with PowerXpress laptops running in AMD mode (pxp_switch_catalyst amd) with external / secondary monitor

When using a PowerXpress laptop in AMD-only mode (ie, setting the discrete card to render everything) you sometimes run into issues with artifacting/duplicating between displays. This is a known issue, and seems to effect 7xxxM series cards.

The artifacting disappears when you transform one of the monitors by either rotating or scaling. So you can use xrandr to fix this:

xrandr --output HDMI1 --left-of LVDS1 --primary --scale 1x1 --output LVDS1 --scale 1.0001x1.0001

Xorg repositories

Catalyst is notorious for its slow update process. As such, it is common that a new Xorg version is pushed down from upstream that will break compatibility for Catalyst. This means that Catalyst users either have to build Xorg packages on their own, or use a backported repository that only contains the Xorg packages that should be held back. Vi0L0 has stepped in to fulfil this task and provides several backported repositories.

To enable one of these, follow the instructions in Unofficial user repositories (use the same PGP key as for the catalyst repository). Remember to add the chosen repository above all other repositories in pacman.conf, even above your catalyst repository, should you use one.

xorg117

Catalyst does not support xorg-server 1.18

[xorg117]
Server = http://mirror.hactar.xyz/Vi0L0/xorg117/$arch

xorg116

Catalyst < 15.7 does not support xorg-server 1.17

[xorg116]
Server = http://mirror.hactar.xyz/Vi0L0/xorg116/$arch

xorg115

Catalyst < 14.9 does not support xorg-server 1.16

[xorg115]
Server = http://mirror.hactar.xyz/Vi0L0/xorg115/$arch

xorg114

Catalyst < 14.1 does not support xorg-server 1.15.

[xorg114]
Server = http://mirror.hactar.xyz/Vi0L0/xorg114/$arch

xorg113

Catalyst < 13.6 does not support xorg-server 1.14.

[xorg113]
Server = http://mirror.hactar.xyz/Vi0L0/xorg113/$arch

xorg112

Catalyst < 12.10 and Catalyst Legacy do not support xorg-server 1.13.

[xorg112]
Server = http://mirror.hactar.xyz/Vi0L0/xorg112/$arch

Tools

Catalyst-hook

Catalyst-hookAUR is a systemd service that will automatically rebuild the fglrx modules while the system shuts down or reboots, but only if it is necessary (e.g. after an update).

Before using this package make sure that both the base-devel group and the linux-headers package (the one specific to the kernel you use) are installed.

To enable the automatic update, enable the catalyst-hook.service:

# systemctl enable catalyst-hook
# systemctl start catalyst-hook

You can also use this package to build the fglrx module manually. Simply run the catalyst_build_module script after the kernel has been updated:

# catalyst_build_module all

A few more technical details:

The catalyst-hook.service is stopping the systemd "river" and is forcing systemd to wait until catalyst-hook finishes its job.

The catalyst-hook.service is calling the catalyst_build_module check function which checks if fglrx rebuilds are really necessary.

The check function is checking if the fglrx module exists, if it:

  • does not exist, it will build it;
  • does exist, it will compare the two values to be sure that a rebuild is necessary.

These values are md5sums of the /usr/lib/modules/<kernel_version>/build/Module.symvers file (because I, Vi0L0, noticed that this file is unique and different for every kernel's release). The first value is the md5sum of the existing Module.symvers file. The second value is the md5sum of the Module.symvers file which existed in a moment of the fglrx module creation. This value was compiled into the fglrx module by a catalyst_build_module script.

If the values are different, it will compile the new fglrx module.

The check is checking the whole /usr/lib/modules/ directory and building modules for all of the installed kernels if it is necessary. If the build or rebuild is not necessary, the whole process takes only some milliseconds to complete before it gets killed by systemd.

Catalyst-generator

catalyst-generatorAUR is a package that is able to build and install the fglrx module packed into pacman compliant catalyst-${kernver} packages. The basic difference from #Catalyst-hook is that you will have to trigger this command manually, whereas Catalyst-hook will do this automatically at boot when a new kernel got installed.

It creates catalyst-${kernver} packages using makepkg and installs them with pacman. ${kernver} is the kernel version for which each package was built (e.g. catalyst-2.6.35-ARCH package was built for 2.6.35-ARCH kernel).

To build and install catalyst-${kernver} package for a currently booted kernel as an unprivileged user (non-root; safer way), use catalyst_build_module. You will be asked for your root password to proceed to package installation.

A short summary on how to use this package:

  1. As root: catalyst_build_module remove. This will remove all unused catalyst-{kernver} packages.
  2. As unprivileged user: catalyst_build_module ${kernver}, where ${kernver} is the version of the kernel to which you just updated. For example: catalyst_build_module 2.6.36-ARCH. You can also build catalyst-{kernver} for all installed kernels by using catalyst_build_module all.
  3. If you want to remove catalyst-generator, it is best to run this as root before removing catalyst-generator: catalyst_build_module remove_all. This will remove all catalyst-{kernver} packages from the system.

Catalyst-generator is not able to remove all those catalyst-{kernver} packages automatically while being removed because there can not be more than one instance of pacman running. If you forget to run # catalyst_build_module remove_all before using # pacman -R catalyst-generator catalyst-generator will tell you which catalyst-{kernver} packages you will have to remove manually after removing catalyst-generator itself.

Catalyst-generator is most safe and KISS-friendly solution because:

  1. you can use unprivileged user to build the package;
  2. it is building modules in a fakeroot environment;
  3. it is not throwing files here and there, pacman always knows where they are;
  4. all you have to do is to remember to use it
Note: If you see those warnings:
WARNING: Package contains reference to $srcdir
WARNING: '.pkg' is not a valid archive extension.
while building catalyst-{kernver} package, do not be concerned, it is normal.

OpenCL and OpenGL development

Since years AMD is working on tools for OpenCL and OpenGL developement.

Now under the banner of "Heterogeneous Computing" AMD is providing even more of them, fortunately most of their computing tools are available also for Linux.

In the AUR and the [catalyst] repositories you will find packages that represent the most important work from AMD, namely:

APP shortcut stands for Accelerated Parallel Processing.

amdapp-aparapi

AMD's Aparapi is an API for expressing data parallel workloads in Java and a runtime component capable of converting the Java bytecode of compatible workloads into OpenCL so that it can be executed on a variety of GPU devices. If Aparapi can’t execute on the GPU, it will execute in a Java thread pool.

You can find more information about Aparapi here.

amdapp-sdk (formerly known as amdstream)

The AMD APP Software Development Kit (SDK) is a complete development platform created by AMD to allow you to quickly and easily develop applications accelerated by AMD APP technology. The SDK provides samples, documentation and other materials to quickly get you started leveraging accelerated compute using OpenCL, Bolt, or C++ AMP in your C/C++ application.

Since version 2.8 amdapp-sdk is providing aparapiUtil as well as aparapi's samples. A package is available on the [catalyst] repository; it depends on the amdapp-aparapiAUR package. The AUR's package will let you decide whether you want aparapi's additions or not.

Version 2.8 does not provide Profiler functionality, it has been moved to CodeXL.

You can find more information about AMD APP SDK here.

amdapp-codexl

CodeXL is an OpenCL and OpenGL Debugger and Profiler, with a static OpenCL kernel analyzer. It is a GUI application written atop of the well known gdebuggerAUR[broken link: archived in aur-mirror] and is available only for x86_64 systems.

You can find more informations about CodeXL here.

Features

Tear Free Rendering

Presented in Catalyst 11.1, the Tear Free Desktop feature reduces tearing in 2D, 3D and video applications. This likely adds triple-buffering and v-sync. Do note that it requires additional GPU processing.

To enable 'Tear Free Desktop' run amdcccle and go to: Display OptionsTear Free.

Or run:

# aticonfig --set-pcs-u32=DDX,EnableTearFreeDesktop,1

To disable, again use amdcccle or run:

# aticonfig --del-pcs-key=DDX,EnableTearFreeDesktop

Video acceleration

Catalyst supports hardware video acceleration via VA-API. Applications can take advantage of AMD Radeons UVD2 chipsets via AMD's X-Video Bitstream Acceleration (XvBA) library. There is no need to manually install it as it is included in the catalyst-testAUR, catalyst-totalAUR and catalyst-utilsAUR packages.

For mplayer: Install mplayer-vaapiAUR and libva. Then just set your video player to use vaapi:gl as video output:

$ mplayer -vo vaapi:gl movie.avi

These options can be added to your mplayer configuration file, see MPlayer.

For smplayer:

Options → Preferences → General → Video (tab) → Output driver: User Defined : vaapi:gl
Options → Preferences → General → Video (tab) → Double buffering on
Options → Preferences → General → General → Screenshots → Turn screenshots off
Options → Preferences → Performance → Threads for decoding: 1 (to turn off -lavdopts parameter)
Note: If Tear Free Desktop is enabled it is better to use:
Options → Preferences → General → Video (tab) → Output driver: vaapi

If Video Output vaapi:gl is not working - please check:

vaapi, vaapi:gl2 or simply xv(0 - AMD Radeon AVIVO Video).

For VLC:

Tools → Preferences → Input & Codecs → Use GPU accelerated decoding

It might help to enable v-sync in amdcccle:

3D → More Settings → Wait for vertical refresh = Always On
Note: If you are using Compiz/KWin, the only way to avoid video flickering is to watch videos in full-screen and only when Unredirect Fullscreen is off. In compiz you need to set Redirected Direct Rendering in General Options of ccsm. If it is still flickering, try to disable this option in CCSM. It is off by default in KWin, but if you see flickering try to turn "Suspend desktop effects for fullscreen windows" on or off in System SettingsDesktop EffectsAdvanced.

GPU/Mem frequency, Temperature, Fan speed, Overclocking utilities

You can get the GPU/Mem clocks with: $ aticonfig --od-getclocks.

You can get the fan speed with: $ aticonfig --pplib-cmd "get fanspeed 0"

You can get the temperature with: $ aticonfig --odgt

To set the fanspeed with: $ aticonfig --pplib-cmd "set fanspeed 0 50" Query Index: 50, Speed in percent

To overclock and/or underclock it is easier to use a GUI, like ATi Overclocking Utility, which is very simple and requires qt to work. It might be out of date/old, but you can get it here.

Another, more complex utility to perform such operations is AMDOverdriveCtrl. Its homepage is here and you can build amdoverdrivectrlAUR from the AUR or from Vi0L0's unofficial repositories.

Double Screen (Dual Head / Dual Screen / Xinerama)

Introduction

Warning: you should know that there is not one specific solution because each setup differs and needs its own configuration. That is why you will have to adapt the steps below to your own needs. It is possible that you have to try more than once. Therefore, you should save your working /etc/X11/xorg.conf before you start modifying and be able to recover from a command-line environment.
  • In this chapter, we will describe the installation of two different-sized screens on only one graphics card with two different output ports (DVI + HDMI) using a "BIG Desktop" configuration.
  • The Xinerama solution has some inconveniences, especially because it is not compatible with XrandR. For that very reason, you should not use this solution, because XrandR is a must for our later configuration.
  • The Dual Head solution would allow you to have 2 different sessions (one for each screen). It could be what you want, but you will not be able to move windows from one screen to another. If you have only one screen, you will have to define the mouse inside your Xorg session for each of the two sessions inside the Server Layout section.

ATI Documentation

ATI Catalyst Control Center

The GUI tool shipped by ATI is very useful and we will try to use it as much as we can. To launch it, open a terminal and use the following command:

$ {kdesu/gksu} amdcccle
Warning: Do not use sudo directly with a GUI. Sudo gives you admin rights with user account information. Instead, use gksu (GNOME) or kdesu (KDE).

Installation

Before we start, make sure that your hardware is plugged in correctly, that power is on and that you know your hardware characteristics (screen dimensions, sizes, refreshment rates, etc.) Normally, both screens are recognized during boot time but not necessarily identified properly, especially if you are not using any Xorg base configuration file (/etc/X11/xorg.conf) but relying on the hot-plugging feature.

The first step is to make sure that you screens will be recognized by your DE and by X. For this, you need to generate a basic Xorg configuration file for your two screens:

# aticonfig --initial --desktop-setup=horizontal --overlay-on=1

or

# aticonfig --initial=dual-head --screen-layout=left
Note: overlay is important because it allows you to have 1 pixel (or more) shared between the 2 screens.
Tip: For the other possible and available options, do not hesitate to type aticonfig --help inside a terminal to display all available command lines.

Now you should have a basic Xorg configuration file that you can edit to add your screen resolutions. It is important to use the precise resolution, especially if you have screens of different sizes. These resolutions have to be added in the "Screen" section:

SubSection "Display"
    Depth     24
    Modes     "X-resolution screen 1xY-resolution screen 1" "Xresolution screen 2xY-resolution screen 2"
EndSubSection

From now on, instead of editing the xorg.conf file manually, let us use the ATI GUI tool. Restart X to be sure that your two screens are properly supported and that the resolutions are properly recognized (Screens must be independent, not mirrored).

Configuration

Now you will only have to launch the ATI control center with root privileges, go to the display menu and choose how you would like to set your configuration (small arrow of the drop down menu). A last restart of X and you should be done!

Before you restart X, do not hesitate to verify your new xorg.conf file. At this stage, inside the "Display" sub-section of the "Screen" section, you should see a "Virtual" command line, of which the resolution should be the sum of both screens. The "Server Layout" section says all the rest.

Uninstallation

If for any reason this driver is not working for you or if you simply want to try out the open source driver, remove the catalyst and catalyst-utils packages. Also you should remove catalyst-generatorAUR, catalyst-hookAUR and lib32-catalyst-utilsAUR packages if they have been installed on your system.

Warning:
  • You may need to use # pacman -Rdd to remove catalyst-utilsAUR (and/or lib32-catalyst-utilsAUR) because that package contains gl related files and many of your installed packages depend on them. These dependencies will be satisfied again when you install xf86-video-ati.
  • You may need to remove /etc/profile.d/ati-flgrx.sh and /etc/profile.d/lib32-catalyst (if it exists on your system), otherwise r600_dri.so will fail to load and you would not have 3D support.
Note: You should remove unofficial repositories from your /etc/pacman.conf and run # pacman -Syu, because those repositories include out-dated Xorg packages to allow use of catalyst and the xf86-video-ati package needs up-to-date Xorg packages from the Official repositories.

Also follow these steps:

  • If you have the /etc/modprobe.d/blacklist-radeon.conf file remove it or comment the line blacklist radeon in that file.
  • If you have a file in /etc/modules-load.d to load the fglrx module on boot, remove it or comment the line containing fglrx.
  • Make sure to remove or backup /etc/X11/xorg.conf.
  • If you have installed the catalyst-hookAUR package, make sure to disable the systemd service.
  • If you used the nomodeset option in your kernel parameters and plan to use KMS, remove it.
  • Reboot before installing another driver.

Troubleshooting

If you can still boot to command-line, then the problem probably lies in /etc/X11/xorg.conf

You can parse the whole /var/log/Xorg.0.log or, for clues:

$ grep '(EE)' /var/log/Xorg.0.log
$ grep '(WW)' /var/log/Xorg.0.log

If you are still confused about what is going on, search the forums first. Then post a message in the thread specific to ATI/AMD. Provide the information from xorg.conf and both commands mentioned above.

Failed to start atieventsd.service

Install acpid from the official repositories. Start and enable the acpid service.

If the service still fails to start, edit /usr/lib/systemd/system/atieventsd.service and change acpid.socket to acpid.service.

Failed to open fglrx_dri.so

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: There should be no need to mess around in /usr. This is probably a bug in another program. (Discuss in Talk:AMD Catalyst#)

Create a symlink from /usr/lib/xorg/modules/dri/fglrx_dri.so to /usr/X11R6/lib64/modules/dri/fglrx_dri.so (or other requested path)

# mkdir -p /usr/X11R6/lib64/modules/dri
# ln -s /usr/lib/xorg/modules/dri/fglrx_dri.so /usr/X11R6/lib64/modules/dri/fglrx_dri.so

GDM fails to start

Downgrade the xorg-server package or try to use another display manager like LightDM.

3D Wine applications freeze

If you use a 3D Wine application and it hangs, watch out for the following workarounds.

TLS

One source of problems is TLS. To disable it, either use aticonfig or edit /etc/X11/xorg.conf. To use aticonfig:

# aticonfig --tls=off

Or, to edit /etc/X11/xorg.conf; first open the file in an editor as root and then add Option "UseFastTLS" "off" to the Device section of this file.

After applying either of the solutions, restart X for it to take effect.

Compiz

In case you are using compiz as the windows compositer, disable it. For instance, if you are using XFCE as your desktop environment, open a terminal and execute:

$ xfwm4 --replace &

Problems with video colours

You may still use vaapi:gl to avoid video flickering, but without video acceleration:

  • Run mplayer without -vo vaapi switch.
  • Run smplayer remove -vo vaapi from Options → Preferences → Advanced → Options for MPlayer → Options: -vo vaapi

Plus for smplayer you may now safely turn screenshots on.

KWin and composite

You may use XRender if the rendering with OpenGL is slow. However, XRender might also be slower than OpenGL depending on your card. XRender also solves artefact issues in some cases, for instance when resizing Konsole.

Black screen with complete lockups and/or hangs after reboot or startx

Ensure you have added the nomodeset option to the kernel options line in your bootloader (see #Disable kernel mode setting). Make sure that Catalyst is compatible with your installed Xorg version and used Linux kernel version.

If you are using the legacy driver (catalyst-hd234k) and get a black screen, try downgrading xorg-server to 1.12 by using the #xorg112 repository.

Faulty ACPI hardware calls

It is possible that fglrx does not cooperate well with the system's ACPI hardware calls, so it auto-disables itself and there is no screen output.

If so, try to run this:

$ aticonfig --acpi-services=off

KDM disappears after logout

If you are running Catalyst proprietary driver and you get a console (tty1) instead of the expected KDM greeting when you log out, you must instruct KDM to restart the X server after each logout. Uncomment the following line under the section titled [X-:*-Core]

/usr/share/config/kdm/kdmrc
TerminateServer=True

KDM should now appear when you log out of KDE.

Hibernate/Sleep issues

Video fails to resume from suspend2ram

ATI's proprietary Catalyst driver cannot resume from suspend if the framebuffer is enabled. To disable the framebuffer, add vga=0 to your kernel kernel parameters.

To see where you need to add this with other bootloaders, see #Disable kernel mode setting.

System freezes/Hard locks

  • The radeonfb framebuffer drivers have been known in the past to cause problems of this nature. If your kernel has radeonfb support compiled in, you may want to try a different kernel and see if this helps.
  • If you experience system freezes when exiting your DE (shut down, suspend, switching to tty etc.) you probably forgot to deactivate KMS. (See #Disable kernel mode setting)

Hardware conflicts

Radeon cards used in conjunction with some versions of the nForce3 chipset (e.g. nForce 3 250Gb) will not have 3D acceleration. Currently the cause of this issue is unknown, but some sources indicate that it may be possible to get acceleration with this combination of hardware by booting Windows with the drivers from nVIDIA and then rebooting the system. This can be verified by getting output something similar to this (using an nForce3-based system):

$ dmesg | grep agp
agpgart: Detected AGP bridge 0
agpgart: Setting up Nforce3 AGP.
agpgart: aperture base > 4G

and also if issuing the following command gets you the following output:

$ tail -n 100 /var/log/Xorg.0.log | grep agp
(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"

you have this bug.

Some sources indicate that in some situations, downgrading the motherboard BIOS may help, but this cannot be verified in all cases. Also, a bad BIOS downgrade can render your hardware useless, so beware.

See this bugreport for more information and a potential fix.

Temporary hangs when playing video

This problem may occur when using the proprietary Catalyst.

If you experience temporary hangs lasting from a few seconds to several minutes occuring randomly during playback with mplayer, check the system logs for output like:

/var/log/messages.log
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<f8bc628c>] ? ip_firegl_ioctl+0x1c/0x30 [fglrx]
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium [<c0197038>] ? vfs_ioctl+0x78/0x90
Nov 28 18:31:56 pandemonium [<c01970b7>] ? do_vfs_ioctl+0x67/0x2f0
Nov 28 18:31:56 pandemonium [<c01973a6>] ? sys_ioctl+0x66/0x70
Nov 28 18:31:56 pandemonium [<c0103ef3>] ? sysenter_do_call+0x12/0x33
Nov 28 18:31:56 pandemonium [<c01c64a6>] ? proc_get_sb+0xc6/0x160
Nov 28 18:31:56 pandemonium =======================

Adding the nopat and/or nomodeset kernel parameters should work.

"aticonfig: No supported adapters detected"

If you get the following:

# aticonfig --initial
aticonfig: No supported adapters detected

It may still be possible to get Catalyst working by manually setting the device in your your etc/X11/xorg.conf file or by copying an older working /etc/ati/control file (preferred - this also fixes the watermark issue).

To get an older control file, download a previous version of fglrx from AMD and run it with --extract driver parameter. You will find the control file in driver/common/etc/ati/control. Copy the extracted file over the system file and restart Xorg. You can try different versions of the file.

To set your model in xorg.conf, edit the device section of /etc/X11/xorg.conf to:

/etc/X11/xorg.conf
Section "Device"
        Identifier "ATI radeon ****"
        Driver     "fglrx"
EndSection

Where **** should be replaced with your device's marketing number (e.g. 6870 for the HD 6870 and 6310 for the E-350 APU).

Xorg will start and it is possible to use amdcccle instead of aticonfig. There will be an "AMD Unsupported hardware" watermark.

You can remove this watermark using the following script:

#!/bin/sh
DRIVER=/usr/lib/xorg/modules/drivers/fglrx_drv.so
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
   sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER
done

and then reboot your machine.

WebGL support in Chromium

Google has blacklisted Linux's Catalyst driver from supporting webGL in their Chromium/Chrome browsers. See Chromium#WebGL for details.

Lag/freezes when watching flash videos via Adobe's flashplugin

Edit:

/etc/adobe/mms.cfg
#EnableLinuxHWVideoDecode=1
OverrideGPUValidation=true

If you are using KDE make sure that "Suspend desktop effects for fullscreen windows" is unchecked under System SettingsDesktop EffectsAdvanced.

Lag/slow windows movement in GNOME3

You can try this solution, it has been reported to work for many people.

Add this line into ~/.profile or into /etc/profile:

export CLUTTER_VBLANK=none

Restart X server or reboot your system.

Not using full screen resolution at 1920x1080 (underscanning, black borders around the screen)

This usually happens when you use a HDMI connection to connect your monitor/TV to your computer.

Seemed to be a feature by AMD/ATI to work with all HDTVs that could be adjusted via the amdccle.

Using the amdcccle GUI you can select the affected display, go to adjustments, and set underscan to 0% (aticonfig defaults to 15% underscan). It is possible as well that the underscan slider will not show under the display's adjustments, as sometimes in (at least) version 14.10.

The problem is that the settings will not persist after restarting X server or rebooting or wake up or might even revert after changing TTYs.

For the changes to become permanent, you will need to adjust the underscan settings manually using "aticonfig" via console (as root) or manually edit the file /etc/ati/amdpcsdb (as root)

using aticonfig method:

# aticonfig --set-pcs-u32=MCIL,DigitalHDTVDefaultUnderscan,0

After changing the settings, reboot.

For newer version (for example, 12.11), if Catalyst control center repeatedly fails to save the overscan setting you can also try:

# aticonfig --set-pcs-u32=MCIL,TVEnableOverscan,0

Manually editing /etc/ati/amdpcsdb method:

Add the following line anywhere under the following header [AMDPCSROOT/SYSTEM/MCIL]

# DigitalHDTVDefaultUnderscan=V0

For newer version (for example, 12.11), if Catalyst control center repeatedly fails to save the overscan setting you can also try: locate under [AMDPCSROOT/SYSTEM/MCIL] the following line

# TVEnableOverscan=V1

and change it to

# TVEnableOverscan=V0

After changing the settings, reboot.

Note: You might find that the file /etc/ati/amdpcsdb will be overwritten and revert no matter what you do as user or as root even with log in/log out/reboot, ergo the modification will not stick.

For the amd database file not to be overwritten you have to modify it without the fglrx driver running.

This can be made by rebooting in any "safe mode" that will not use the driver or directly booting into console mode

Workaround: For whatever reason you can find yourself not wanting to touch ATI's config files you can circumvent the problem by forcing the panel's position and resolution: as user:

# aticonfig --set-dispattrib=DISPLAYTYPE,positionX:0
# aticonfig --set-dispattrib=DISPLAYTYPE,positionY:0
# aticonfig --set-dispattrib=DISPLAYTYPE,sizeX:1920
# aticonfig --set-dispattrib=DISPLAYTYPE,sizeY:1080

DISPLAYTYPE will be the name of the monitor you want to change its attributes, for example "dfp9". To get the name of your DISPLAYTYPE run the following command:

# xrandr --current

Should RandR be not enabled use:

# aticonfig --query-monitor

Using the display switch or DISPLAY variable set to the appropriate display/screen (:0.1 for example) might be necessary.

That will show you which displays are connected and disconnected and its properties

This workaround will not persist but it is a quick fix that will show that the panel works just fine and that the above solutions are to be put into place.

Note: aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0 should not be used on newer versions of the driver as it is deprecated and will be soon removed as stated by ATI.

Try aticonfig --help | grep set-pcs-val to read ATI's notice

Dual Screen Setup: general problems with acceleration, OpenGL, compositing, performance

Try to disable xinerama and xrandr12. Check out ie. this way:

Type those commands:

# aticonfig --initial
# aticonfig --set-pcs-str="DDX,EnableRandR12,FALSE"

Then reboot your system. In /etc/X11/xorg.conf check that xinerama is disabled, if it is not, disable it and reboot your system.

Next run amdcccle and pick up amdcccle → display manager → multi-display → multidisplay desktop with display(s) 2.

Reboot again and set up your display layout whatever you desire.

Disabling VariBright feature

Vari-Bright is a feature designed to save power by dynamically adjusting how much power the display panel uses. Enter the following command to disable VariBright:

# aticonfig --set-pcs-u32=MCIL,PP_UserVariBrightEnable,0

Hybrid/PowerXpress: turning off discrete GPU

When you are using packages with powerXpress support and you are switching to integrated GPU you may notice that discrete GPU is still working, consuming power and making your system's temperature higher.

Sometimes ie. when your integrated GPU is intel's one you can use vgaswitcheroo to turn the discrete GPU off. Sometimes unfortunately, it is not working.

Then you may check out acpi_call. MrDeepPurple has prepared the script which he is using to perform 'turn off' task. He is calling script via systemd service while booting and resuming his system. Here is his script:

#!/bin/sh
libglx=$(/usr/lib/fglrx/switchlibglx query)
modprobe acpi_call
if [ "$libglx" = "intel" ]; then
    echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call
fi

Switching from X session to TTYs gives a blank screen/low resolution TTY

Workaround for this "feature", which appeared in catalyst 13.2 betas, is to use vga= kernel option, like vga=792. You can get the list of supported resolutions with the

$ hwinfo --framebuffer

command. Get the one that corresponds to your wanted resolution, and copy-paste it into kernel line of your bootloader, so it could look like ie. vga=0x03d4

Switching from X session to TTYs gives a black screen with the monitor backlight on

Use uvesafb as your framebuffer driver. Moreover with uvesafb it is also possible to set whatever resolution for the TTY.

Switching to TTYs then back to X session gives a black screen with a mouse cursor

If you experience this bug, try adding

Option      "XAANoOffscreenPixmaps" "true"

to the 'Device' section of your xorg.conf file.

Also, make sure you have a polkit authentication agent installed and running, as this behavior can happen when a program is asking for a password, but does not have an authentication agent installed to display the password dialog box.

30 FPS / Tear-Free / V-Sync bug

Bug introduced in Catalyst 13.6 beta, not fixed till now (13.9).

After enabling "Tear-Free" functionality every freshly started OpenGL application is lagging, often generates only 30 FPS, it also touches composited desktop.

Workaround is pretty simple and was found by M132:

  1. Open "AMD Catalyst Control Center" (amdcccle) application
  2. Enable Tear-Free, it will set 3D V-Sync option to "Always on".
  3. Set 3D V-Sync to "Always Off".
  4. Make sure Tear-Free is still on.
  5. Restart X / Re-login.

It is working well on KDE 4.11.x, but in case of problems M132 suggests: "Try disabling "Detect refresh rate" and specify monitor's refresh rate in the Composite plugin."

Backlight adjustment does not work

If you have a problem with backlight adjustment, you can try the following command:

# aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,1

Some users reported that this can decrease FPS. To restore defaults, run:

# aticonfig --set-pcs-u32=MCIL,PP_PhmUseDummyBackEnd,0

Read more about this bug

Chromium glitching when using plasma

Add --disable-gpu execute option to the chromium, ie. to /usr/share/applications/chromium.desktop file, like here:

# cat /usr/share/applications/chromium.desktop | grep -i exec
Exec=chromium %U --disable-gpu

Xorg crashes

Unsupported Xorg Version

When having a supported Linux kernel version but an unsupported Xorg version, you might get this error message and Xorg will crash

(WW) fglrx: No matching Device section for instance (BusID PCI:0@0:17:0) found
(...)
/usr/bin/Xorg.bin: symbol lookup error: /usr/lib/xorg/modules/drivers/fglrx_drv.so: undefined symbol: GlxInitVisuals2D
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

For example: fglrx 15.20.3 does not support Xorg 1.17.

To solve this, you should downgrade Xorg. A helpful list of steps can be found on [1]

See also