From ArchWiki
Revision as of 15:25, 12 March 2013 by Ambrevar (talk | contribs) (Paragraphs.)
Jump to: navigation, search

Questionable Statements


"Naming conventions" paired with an introduction and an overview, feels overly verbose and jumbled flow-wise. I suggest a consolidation of the three, offloading much of that info to wikipedia or the like. Any objections? I'll edit as soon as April. T1nk3r3r (talk) 08:25, 12 March 2013 (UTC)

KMS -- do we have to do anything at all to enable it?

The KMS sections says it's on by default, should we even have to put radeon in MODULES any longer? If not, the intro to that section should probably mention that "you can skip the rest of this section if 'dmesg|grep modesetting' shows 'radeon kernel modesetting enabled'.

(rc.conf/MODULES are deprecated with systemd) Thinking about it, I don't explicitly recall having to enable it for the default ARCH kernel. The late start section may indeed be rendered redunant. Can anyone confirm this on a fresh install? T1nk3r3r (talk) 18:45, 6 February 2013 (UTC)
From this page, it is stated that the current behavior is to autodetect. So as long as the module is available and the hardware is there, it will load without intervention. It only remains to be stated when this started -- for now we can simply say: currently. Leave a link to xorg? T1nk3r3r (talk) 21:06, 8 February 2013 (UTC)
There is a note, so I consider this resolved T1nk3r3r (talk) 08:11, 12 March 2013 (UTC)

KMS Early

I don't know how others feel about this, but my preferred setup is to put options radeon modeset=1 in modprobe.conf and then to include modprobe.con along with the radeon module in mkinitcpio.conf. This way KMS is enabled once for both early and late start. Also, in the event of problems, radeon.modeset=1 can still be added as a kernel option to the bootloader. --piezoelectric

The bigger question here is: How early is Early? If I'm not mistaken: boot options come first, then initramfs, then modprobe.conf once the final root filesystem is mounted. If it is enabled at boot, any other toggles may be rendered pointless. This may only be applicable if firmware needs to be compiled into the kernel (newer cards). On the other hand, see parent section here. T1nk3r3r (talk) 18:45, 6 February 2013 (UTC)
I've rewritten the section. T1nk3r3r (talk) 07:43, 12 March 2013 (UTC)

Enabling video acceleration

~/.bashrc is the wrong place for setting this environment variables. This file is not consulted when starting i.e. firefox from the gnome shell. As it is a hardware dependent setting that is reasonable for every user on this box, i created a file in /etc/profile.d/ to accomplish this.

Setting this variables makes a difference when using flashplayer for youtube videos. When set, flashplayer reports accelerated rendering enabled at home with my ati hd3200 onboard graphics and rendering is faster in full screen mode.

It works now no more worse than under windows.

So it only remains to replace content to reference /etc/profile.d instead. I don't know the specifics off the top of my head, so if someone else would be so kind.... T1nk3r3r (talk) 08:18, 12 March 2013 (UTC)

Radeon vs. Catalyst


The ATI and Catalyst pages state that Catalyst performs better for 3D. As most of you may have experienced, the Catalyst driver is clunky and very badly optimized for Linux. Gaming performance is usually worse than on Windows. Catalyst and Nvidia drivers do not uses Unix interfaces properly (Linux kernel and Xorg), a big part of it is just a bunch of hacks. See what the nouveau folks think. It's probably a matter of syncing development between different platforms, so adapting the driver as less as possible from Windows is probably more profitable. The lack of respect for interfaces has one major issue: the compatibility with Xorg and Kernels is extremely fragile. Besides, a lot of features or simply not reliable (or at least a real pain to setup) with these drivers, such as dual head / external output, custom kernels, hibernation...

It would be a great relief for the Unix communities to finally have a free, full-featured and top class 3D graphic driver.


AMD did a very good thing when they decided to release the specs of their cards. FOSS radeon driver is now lightyears beyond nouveau in term of OpenGL implementation. The FOSS radeon driver seems like the ideal future of Unix graphics to me.

Since version 9.0.* from late 2012 and January 2013, OpenGL implementation has moved several steps forward as you can see on the feature matrix. In fact, I've tested several games (native or Wine) and radeon performs much better than catalyst most of the times.

For performance and Unix-frendliness, I suggest we should encourage Unix users to choose radeon over catalyst. Too many people are held up in their switching-to-Unix because of the terrible, infamous catalyst, even if all they need is average 3D graphics.

Since this revolution is brand new, it requires support from the community. We also need concrete data that states the progress, the support and the performance of radeon compared to catalyst.

I suggest we create a benchmark page for that. Should we create a new page? I'll begin it below for now, but we shall move it in the future.

--Ambrevar (talk) 12:07, 6 February 2013 (UTC)

A benchmark page could be informative, especially for newcomers that are having a difficult time making up their minds. AMD is actually shifting support from Catalyst to radeon drivers. They had hired two bodies to work on the radeon driver. But then I came across this:
I just found this:
Regardless, there has been a lot of headway in the last four years. I recently tested some games on vanilla Wine and performance was considerable.
When I came to Arch, I was using Catalyst. I was a pain to setup and maintain. I was since persuaded by a Wine developer to switch to the radeon driver, as it is much easier to debug and submit patches upstream for either Wine or Radeon. Not to mention Catalyst only ever "officially" supported Ubuntu, SUSE, and RedHat.
Drop a line to the Catalyst talk page? T1nk3r3r (talk) 17:27, 6 February 2013 (UTC)
I think the message in the introduction is clear: If unsure, try the open source driver first, it will suit most needs and is generally less problematic. -- 09:37, 7 February 2013 (UTC)
Sure, but the previous paragraph clearly tells 'if you want 3D performance, go for Catalyst', which is not very true anymore. --Ambrevar (talk) 09:43, 7 February 2013 (UTC)
I agree. So we just need a clear statement from a benchmarking website that supports that. Preferably something recent.
I will not question the removal of dubious statements, so long as that point is made clear in the edit summary. T1nk3r3r (talk) 19:00, 7 February 2013 (UTC)
At any rate, edits to wiki articles should be free of personal bias. Older content should be neutralized if appropriate. I believe the wiki exists to instruct procedures from any angle, not to influence a personal attitude. Cite credible sources when necessary. T1nk3r3r (talk) 08:08, 12 March 2013 (UTC)


The following benchmark table is open for contribution. However the benchmarking process is not trivial, it needs some helper scripts and configurations beforehand.

Turn vsync off

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

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

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

Driver switching helper

You may find yourself switching the driver a lot for benchmarking. Since there is conflicts between radeon and catalyst-utils it is quite cumbersome in the long run. So I wrote a little, very simple script. It only works for syslinux and Arch Linux. You must adapt it if you are using GRUB or another bootloader. This will also remove the /etc/X11/xorg.conf file, so if you are using it, backup this file. Catalyst will backup it anyway.

if [ -z "$(lspci|grep "VGA.*Radeon")" ]; then
    echo "You must have a Radeon graphic adapter. Exit."

if [ $(id -u) -ne 0 ]; then
    echo "You must be root to run this script. Exit."

if [ $(pacman -Qi catalyst-utils 2>/dev/null|wc -l) -ge 2 ]; then
    pacman -Rdd --noconfirm catalyst-utils catalyst-dkms lib32-catalyst-utils
    rm -f "/etc/X11/xorg.conf"
    pacman -S --noconfirm ati-dri lib32-ati-dri  xf86-video-ati
    if [ -f "/boot/syslinux/syslinux.cfg" ]; then
        sed -i 's/nomodeset//' "/boot/syslinux/syslinux.cfg"
        echo "#### Syslinux entry:"
        grep -A4 "^LABEL arch$" "/boot/syslinux/syslinux.cfg"
        echo "You do not seem to use Syslinux. No configuration done."
        echo "You have to remove 'nomodeset' kernel parameter manually."
    pacman -Rs --noconfirm ati-dri lib32-ati-dri  xf86-video-ati
    pacman -Rdd --noconfirm mesa-libgl lib32-mesa-libgl
    pacman -S  --noconfirm catalyst-utils catalyst-dkms lib32-catalyst-utils
    aticonfig --initial
    if [ $? -eq 0 ] && [ -f "/boot/syslinux/syslinux.cfg" ]; then
        sed -i '/^LABEL arch$/{n;n;n;s/$/ nomodeset/}' "/boot/syslinux/syslinux.cfg"
        echo "#### Syslinux entry:"
        grep -A4 "^LABEL arch$" "/boot/syslinux/syslinux.cfg"
        echo "You do not seem to use Syslinux. No configuration done."
        echo "You have to add 'nomodeset' kernel parameter manually."

OpenGL FPS monitor

For native OpenGL games, there is actually no universal solution. Check if the game has an embedded FPS monitor (check the developper console or something like that). Otherwise we must use an external tool that will hook the double buffering function (glXSwapBuffers) to compute the framerate. I've found two FPS monitors that could do that:

  • libglfps which I haven't been able to run properly. But with some source code edits I managed to output the FPS to the terminal.
  • frapix is newer and seems to work.

It works for some OpenGL applications like glxgears, but it will not for others, e.g. Legend of Grimrock. I'm still looking for a solution here.


Thankfully Wine features an embedded FPS monitor which works for all graphical applications. You just need to start the application with the WINEDEBUG=fps variable set. You can actually display the FPS on top of the game window thanks to osd_cat from the xosd package. I wrote a helper script for convenience:
if [ $# -lt 1 ]; then
    echo "Usage: ${0##*/} WIN32EXE PARAMS"

if [ -z "$(command -v osd_cat)" ]; then
    echo "You must have osd_cat."

if [ -z "$(sed --version | grep "GNU")" ]; then
    echo "You must have GNU sed."

WINEDEBUG=fps wine "$@" 2>&1 | tee /dev/stderr | \
    sed -un '/^trace:fps:/{s/.* \([^ ]*\)fps/\1/;p}' | \
    osd_cat -l1 -f  "-*-*-*-*-*-*-32-*-*-*-*-*-*-*" -O1 -c "yellow"

It works fullscreen with radeon, but seems quite messy with catalyst: you get a flash everytime osd_cat refreshes the output. A workaround is to play in windowed mode. If you are using a nice enough window manager you can toggle full screen with a shortcut. Ambrevar (talk) 22:15, 9 March 2013 (UTC)

Benchmark table

Game Version Native Wine Hardware Radeon Catalyst Comments
version avg min-max version avg min-max
Command and Conquer Generals First Decade Wine HD5770 9.1 30 26-32 13.1 27 18-30
eduke32 20130120_342 HRP 5.2 Native HD5770 9.1 15 12-18 13.1 Polymer, crash with Catalyst.
eduke32 20130120_342 HRP 5.2 Native HD5770 9.1 60 60-60 13.1 120 70-200 Polymost, loads faster on Catalyst, capped with Radeon.
Fallout New Vegas 1.0 Wine HD5770 9.1 14 5-20 13.1 15 8-22 Average graphics.
Far Cry 2 1.3 Wine HD5770 9.1 18 15-40 13.1 20 13-25 Videos are very buggy with Catalyst.
Quake 3 Arena 1.32 Wine HD5770 9.1 76 75-77 13.1 86 85-87
Team Fortress 2 Native HD5770 9.1 20 10-60 13.1 200 30-300 16 bots cp_gorge, high graphics.
The Elder Scrolls III Morrowind GOTYE Wine HD5770 9.1 26 16-60 13.1 26 14-50
Unigine Heaven Benchmark 2.5 Native HD5770 9.1 13.1 20 15-25 Using normal tesselation. Radeon does not support tesselation as of 9.1.
Unreal Tournament 436 Wine HD5770 9.1 120 118-160 13.1 95 90-100 Game stutters while using Catalyst + osd_cat.
average framerate
minimum and maximum framerate

Note: this table looks properly aligned when edited in monospace (using Emacs Mediawiki for instance). I'm not sure that's the best way to go for tables in a wiki because the web view looks terrible; but if each column goes on its respective line, that's even harder to read in my opinion. Ambrevar (talk) 22:22, 9 March 2013 (UTC)

Obviously you went through a serious effort to produce these results, thank you. It appears to me that driver performance might be dependant on the game engine as much as anything else, but the two drivers are neck to neck on most games. At least for the 5770, there is no clear performance winner except in a few specific cases. If only we could convince one of the tech sites to do something more comprehensive...I know they always have a nice selection of hardware to pick from... T1nk3r3r (talk) 07:56, 12 March 2013 (UTC)

Well, that was some research on the topic, but that's only the beginning! I still need to work on a proper FPS monitor, but I do not have much time right now. If someone knows how to measure FPS for OpenGL games that do not seem to use glXSwapBuffers... Anyway, as you said, we need more results. I have a bunch of games still waiting to be benchmarked, but I do not have much time right now. I can do it in a month or so. However this is not of utmost importance, what we need right now is a benchmark covering the various ATI cards.

This benchmark definitely needs more advertising. On this page it's worth nothing, chances are high nobody ever reads it. It think it deserves a better, more visited place. ArchWiki is great, and in a few years it managed to gathered so much stuff about Unix. Even when I was using FreeBSD I used Arch Wiki a lot (I'm still using it actually). Besides it seems like there is an army of ex-gamers among Arch users. Look at the Wine stats: AppDB Distributions. I've skimmed over the pages, and it seems like Arch is in the top 5 with Ubuntu, Debian, Mint and Gentoo. What I'm suggesting here is that we can manage to gather the benchmark results for different hardware using the manpower of the Arch Wiki.

Maybe that's not a good idea and it would fit better at Xorg or some place. Tell me what you think. If you agree, we can create an specific page Radeon vs Catalyst or something, create links on ATI and Catalyst pages, and invite users on the forum to contribute. -- Ambrevar (talk) 15:25, 12 March 2013 (UTC)


Worth to mention that the powersaving is related to overheating issues. With the default powersaving off my laptop's graphic card, Mobility Radeon HD 4650, overheating causing the system to shutdown. Changing the setting to mid solved this issue.Dhead (talk) 12:37, 9 March 2013 (UTC)

Laptops are also prone to dust accumulation. You should try taking some pressurized air to the vents, whether from a can or air compressor. I've seen dust=overheating dozens of times with my own equipment and with friends and family. Naturally, lowering the voltage via powersaving functions will mitigate such issues. Temporarily. T1nk3r3r (talk) 19:55, 9 March 2013 (UTC)