1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems

Facebook RSS Twitter Twitter Google Plus

Phoronix Test Suite


Radeon vs. RadeonHD Drivers In H1'08

Michael Larabel

Published on 19 March 2008
Written by Michael Larabel
Page 2 of 3 - 52 Comments

So why did Alex and David begin work on R500/600 support for the Radeon driver when the RadeonHD driver was already running strong? At the heart of the entire issue is AtomBIOS. AtomBIOS is a video BIOS abstraction layer created by ATI and has been present on all graphics cards since the R400 (Radeon X700) generation. This abstraction layer contains tables of card-specific information along with a common API for performing such tasks as card initialization, TV encoder setup, etc. These AtomBIOS tables contain data such as connector and transmitter information. The concept behind AtomBIOS is that (in theory) by writing a driver to implement this interface, new graphics cards can be supported faster, features are easier to implement, and the driver code is much easier to maintain -- as long as new ATI graphics cards continue to employ the same AtomBIOS interface. Both the Windows and Linux Catalyst drivers use AtomBIOS for communicating with the hardware. The AtomBIOS parser and wrapper were open-sourced last year by AMD for this driver work.

In theory AtomBIOS is wonderful, but in practice some view it's usefulness differently. Alex and David with xf86-video-ati use AtomBIOS in order to provide support for these latest graphics cards, while the engineering group at Novell is in stiff opposition to the use of AtomBIOS. These developers view the AtomBIOS tables and scripts as legacy code and untouchable byte-code. They view using a driver with AtomBIOS as comparable to ndiswrapper, where it's just an environment to execute someone else's code. In the case of AtomBIOS, it would just be an open-source driver to more or less execute closed-source code within this abstraction layer. However, the RadeonHD developers admit they have found out valuable information using AtomBIOS, and in fact AtomBIOS is being used for the Uniphy transmitter in the Radeon HD 3400/3600 GPUs (RadeonHD Driver Introduces Major Changes). AtomBIOS may also be used by the RadeonHD developers in providing the AMD 780G support. The RadeonHD developers also feel that the AtomBIOS interface lacks some needed documentation and that major portions of this closed-source code have changed between product generations.

The alternative approach to using AtomBIOS, and is the way the Novell engineers prefer writing the driver, is by accessing the hardware registers directly. By programming the hardware directly, they avoid the issues with AtomBIOS and they believe it's the way for a completely open graphics driver without cutting any corners. There are, of course, many downfalls to not using AtomBIOS. By banging the hardware registers, it takes much longer to write the driver to support new products and the Novell developers often find themselves waiting for AMD to deliver the register documentation. While the RadeonHD developers have three full-time developers (Egbert Eich, Luc Verhaegen, and Matthias Hopf), the Radeon driver is just worked on part-time by David Airlie and Alex Deucher. While they have less manpower, in shorter time xf86-video-ati had R500 EXA/XAA 2D acceleration by leveraging the existing Radeon code and using AtomBIOS. The RadeonHD developers are also still working to implement support for the CP (Command Processor), which is already used in the Radeon driver. The Radeon driver has also already implemented TexturedVideo playback for the R500 series. Just yesterday Alex introduced another Radeon feature and that is full EXA Composite for the R300/400/500 series.

Aside from these two radically different programming approaches, the benefit that the RadeonHD driver has is that it's all new code as of last year and is optimized for these newer product generations, while the Radeon driver has been built up over the course of many years. The xf86-video-radeonhd developers put stability in front of features, which can be seen as (arguably) the opposite of the xf86-video-ati interests. Open-source 3D support for the R500/600 series is out on the near horizon and fortunately there should only be a single DRM implementation.

With little collaboration going on right now between these two driver projects, Linux distribution vendors are left to decide between choosing the Radeon and RadeonHD drivers for the default R500/600 driver. In RadeonHD's favor is the official backing of AMD, dedicated full-time developers at Novell, a newer code-base, and more thorough testing has been done by the community with this driver on R500/600 hardware. In Radeon's favor is more rapid feature development, prompt support for new GPUs, leveraging the existing Radeon code (though a double-edged sword), and it's being worked on by Alex Deucher who is an AMD employee with direct access to their pool of internal documentation. However, looking at the points in both party's favor, it largely depends upon if you view AtomBIOS as a savior or sinner to driver developers.

Latest Linux Hardware Reviews
  1. A Walkthrough Of The New 32 System Open-Source Linux Benchmarking Test Farm
  2. Habey MITX-6771: Mini-ITX Board With Quad-Core J1900 Bay Trail
  3. OCZ Vector 150 SSD On Linux
  4. Noctua i4 CPU Cooler: Great For Cooling High-End LGA-2011v3 CPUs
Latest Linux Articles
  1. 17-Way Linux Graphics Card Comparison With Civilization Beyond Earth
  2. AMD Kaveri: Open-Source Radeon Gallium3D vs. Catalyst 14.12 Omega Driver
  3. 12-Way AMD Catalyst 14.12 vs. NVIDIA 346 Series Linux GPU Comparison
  4. AMD Catalyst 14.12 Omega Driver Brings Mixed Results For Linux Users
Latest Linux News
  1. Intel 2.99.917 X.Org Driver Released, 3.0 Release Finally Near
  2. Server-Side XCB Is Being Discussed For The X.Org Server
  3. Adreno A4xx Rendering With Freedreno Takes Shape
  4. Linux 3.19-rc1 Kernel Released Ahead Of Schedule
  5. Civilization: Beyond Earth Linux GPU/Driver Benchmarks
  6. X.Org Server 1.16.3 Released To Fix Security Issues
  7. Linux 3.19 Merge Window Closes Ahead Of Schedule
  8. MIPS R6 Architecture Now Supported By GCC
  9. LowRISC To Feature Tagged Memory & Minion Cores
  10. Intel Skylake Audio Support For Linux 3.19
Latest Forum Discussions
  1. Looking for an nVidia GPU, but not sure how well they are supported.
  2. Speeding up systemd networking service
  3. Need some hand holding with upgrading xserver
  4. FPS capped on Linux (AMD fglrx drivers)
  5. Are there an app using HSA ?
  6. The New SuperTuxKart Looks Better, But Can Cause GPU/Driver Problems
  7. XLennart: A Game For Systemd Haters With Nothing Better To Do
  8. Updated and Optimized Ubuntu Free Graphics Drivers