We are still actively working on the spam issue.

Radeon

From InstallGentoo Wiki
Revision as of 21:12, 21 November 2015 by Galactus (talk | contribs)
Jump to: navigation, search

Radeon is the GNU/Linux open source graphics driver for AMD/ATI Radeon graphics cards that is often replaced by fglrx due to seemingly poor 3D acceleration. This guide will attempt to fix this, mostly by making use of the new feature-set, namely, DRI3.


Disclaimer: This is quite bleeding edge and might not work. Should it fail, you will be on your own.

Before starting

Check your cards feature-set: https://wiki.freedesktop.org/xorg/RadeonFeature/#index6h2 "Decoder ring for engineering vs marketing names" will tell you what model your card actually is.

Back your xorg.conf up by issuing sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf~

What should I expect?

Run: vblank_mode=0 glxgears & sleep 15 ; killall glxgears


Test GPU Before After
glxgears r9 280x (gigabyte) 3258.964 FPS 19291.922 FPS


glxgears is a very simple test, but you can use it to test a driver's 3D performance relative to another one. As you can see here, the results speak for themselves and indicate a performance increase of roughly 560%.

Requirements & dependencies

X.Org Server 1.17 (not absolutely necessary, but recommended for stability) media-libs/mesa (the newest version you can find, I recommend the latest one: scroll down the page for more on this)

  `--  x11-libs/libdrm-2.4.65  (>=2.4.58)
  `--  x11-libs/libpciaccess (>=0.8.0)
  `--  x11-base/xorg-server (ideally, >=1.17)
  `--  x11-libs/glamor (>=0.6)
  `--  virtual/udev
  `--  x11-proto/fontsproto
  `--  x11-proto/randrproto
  `--  x11-proto/renderproto
  `--  x11-proto/videoproto
  `--  x11-proto/xextproto
  `--  x11-proto/xf86driproto
  `--  x11-proto/xproto
  `--  sys-devel/automake  (>1.15)
  `--  sys-devel/autoconf  (>=2.69)
  `--  sys-devel/libtool  (>=2.4)
  `--  sys-devel/m4
  `--  x11-misc/util-macros-1.19.0  (>=1.18)
  `--  media-fonts/font-util  (>=1.2.0)
  `--  virtual/pkgconfig
  `--  x11-proto/glproto
  `--  x11-proto/dri2proto
  `--  x11-proto/xineramaproto

Note: apt and yum users need only run 'sudo apt-get build-dep xserver-xorg-video-ati' and 'sudo yum-builddep xorg-x11-drv-ati' respectively, to build the dependencies automagically. Arch users can do this with pkgbuild somehow, and gentoo users need only emerge the actual driver to have all the dependencies.

Building

 # git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-ati
 # ./autogen.sh --prefix=/opt/xorg
 # make
 # sudo make install

Afterwards

 # sudo vim /etc/X11/xorg.conf
     Section "Files"
             ModulePath "/opt/xorg/lib/xorg/modules,/usr/lib/xorg/modules"
     EndSection

Make sure you have these as well:

     Section "Module"
             Load "dri"
             Load "dbe" # Double buffer extension // See compatibility on features page
             Load "glx" # OpenGL X protocol interface // See compatibility on features page
             Load "extmod" # Misc. required extension // See compatibility on features page
     EndSection
     
     Section "DRI"
             Group        "video"
             Mode         0666
     EndSection
 # sudo vim /etc/X11/xorg.conf.d/20-radeon
     Section "Device"
             Identifier "radeonVGA"
                         Driver "radeon"
                         Option "AccelMethod" "Glamor" # See compatibility on features page
                         Option "DRI3" "on" # Compatibility not very well documented, remove it if it fails
                         Option "EnablePageFlip" "On"
     EndSection


Feel free to run # sudo chattr +i /etc/X11/xorg.conf to keep X from overwriting this (chattr -i will undo this).

Example xorg.conf: http://pastebin.com/aE3e21Bn

IMPORTANT: Recompiling the driver will become a necessity after each major X upgrade (eg: 1.16 --> 1.17, not 1.16 --> 1.16.4), due to ABI changes.

Testing

To ensure DRI3 is enabled, run cat /var/log/Xorg.0.log | grep -i DRI3.

External links

For more info (eg: building libdrm and mesa from source, in this order)[1]

More benchmarks[2]