AMD's Open-Source Radeon Driver After Four Years
In the past four years, the open-source Radeon driver stack has also managed to stay up-to-date with underlying Linux driver innovations like kernel mode-setting, Direct Rendering Infrastructure 2, and the Gallium3D driver architecture. AMD solely is not to thank though for this work, but several developers within the open-source community also deserve much recognition, such as Marek Olsak that contribute many innovations.
Besides decreasing the time to enabling new product support, the open-source Radeon driver is also still in catch-up in terms of supporting features of the graphics processors. In the open-source driver there is only OpenGL 2.1 support with limited OpenGL 3.0 support, there is not any CrossFire, PowerXpress, a seam-less PowerPlay experience, OverDrive, UVD video support, and many other product features. Besides limited manpower, also to blame for some of these feature shortcomings is the lack of infrastructure for some areas with X.Org and the Linux kernel not supporting them, intellectual property concerns over some features, and other problems.
Now that the situation has been recapped a bit, the intent of this article is to see where the performance of the latest open-source Radeon driver code is at today. A large Linux driver comparison is being planned for September, but in this article the focus is on the "R300" driver, which supports through the Radeon X1000 / R500 series. For the open-source 3D support, this hardware is supported in a separate driver from what is used by the Radeon HD 2000 series and newer. For the Catalyst driver, AMD discontinued support for all R500 ASICs and earlier in their Catalyst 9.3 driver from early 2009. As such, these older graphics cards need to be compared separately from what we will be doing next month when benchmarking the modern Catalyst driver with modern hardware.
The original aim of this article was to compare the R300 driver performance from late 2007 too, but bugs prevented that from happening. With the rate that the open-source Linux graphics drivers have been maturing (all drivers, just not AMD), it is tough to remember how the open-source support was back then and how nasty they were in retrospect. The OpenGL benchmarks being run ended up not running properly with the R300 code from 2007, so this article is comparing the Catalyst 9.3 driver performance to that of the latest Radeon Linux driver code. This is the absolute latest code as of 14 August and will be for the Linux 3.1 kernel and Mesa 7.12, both of which are too new for even making it into Ubuntu 11.10. The graphics cards for the comparison are PCI Express-based Radeon X800XL and Radeon X1800XT products.
The test system being used for benchmarking these old ATI graphics cards on an old Linux stack was a Gigabyte EP45T-DS3R motherboard with an Intel Core 2 Duo E8400 dual-core CPU overclocked to 3.87GHz, 2GB of RAM, and a 160GB Western Digital SATA HDD. Ubuntu 8.04.4 LTS with the Linux 2.6.24 (x86_64) kernel, GNOME 2.22.3, X.Org Server 18.104.22.168, fglrx 8.59.2 / Catalyst 9.3, and GCC 4.2.4 was the old stack that was tested for reference of the proprietary driver.
When testing out the latest open-source driver code, Ubuntu 11.04 x86_64 was installed (due to the various dependencies with needing many newer libraries and headers installed for building out the modern Linux driver stack, it was more practical to upgrade to a modern Linux distribution). Ubuntu 11.04 with GNOME 2.32.1, X.Org Server 1.10.1, GCC 4.5.2, and LLVM 2.8 was the operating system with then building the Linux kernel / xf86-video-ati DDX / libdrm / Mesa as of 14 August 2011. This meant a Linux 3.1 kernel development snapshot, xf86-video-ati 6.14.99, and Mesa 7.12-devel git-e09b706. The "R300" Gallium3D driver was used instead of the classic "R300" driver, which is no longer the Mesa default for this hardware.
Beyond testing the open-source driver stack in its default configuration, benchmarks were also carried out a second time when disabling swap buffers wait from the X.Org configuration. Disabling the "SwapbuffersWait" option is a known performance optimization available to the open-source ATI driver, but it comes at a cost of possible screen tearing. There's also the KMS color tiling option that can be enabled on newer hardware for further enhancing the frame-rate performance, but for the R300/R400/R500 hardware this is already enabled by default.
All benchmarking was done by the Phoronix Test Suite software using the usual OpenGL test profiles that are compatible with both the Mesa and Catalyst drivers.