May 2011: Gallium3D vs. Classic Mesa vs. Catalyst
The open-source graphics driver landscape is ever changing with new work going into Mesa / Gallium3D near daily. While many improvements have been made in recent time, the open-source drivers have a ways to go in competing with the proprietary competition. Even the open-source AMD driver, which is developed using documentation from AMD as well as code and engineering resources within the company, it has a tough time competing with the well-optimized Catalyst driver. Fortunately, the AMD driver is now largely centered on the two Gallium3D drivers: R300g and R600g, and have pushed away their classic Mesa DRI drivers into maintenance mode. The R300g supports the R300 through R500 ASICs (up through the Radeon X1000 series) while the R600g driver supports all ATI/AMD hardware past that point up through the latest Radeon HD 6000 series and Fusion. In this article, we are seeing where the performance is currently at for the classic Mesa, Gallium3D, and Catalyst drivers under Linux.
On Phoronix there have been ATI Gallium3D benchmarks as of not even three weeks ago and it's something we have been benchmarking quite frequently even looking at how it's done over the course of time, but it's been quite a while since using the classic Mesa driver. Even with Ubuntu 11.04 -- a distribution too conservative to ship with Nouveau Gallium3D -- has now enabled the R600 Gallium3D driver as its default. It was just with Ubuntu 10.10 when the R300 Gallium3D driver was enabled for the older Radeon hardware. The Gallium3D code also has become the primary focus of the open-source ATI/AMD developers with commits to the old R300 classic code being rare aside from build/API fixes, etc. The Gallium3D drivers have already been delivering better performance than classic Mesa for Radeon, the OpenGL support is better, and the overall driver implementation is just superior.
The Gallium3D driver though has a ways to go in getting close to matching the proprietary Catalyst driver. The R300 Gallium3D driver is more mature than the R600 driver and is performing better relative to Catalyst as the most recent tests showed, but there is no parity quite yet. Besides performance, the Catalyst driver still trumps the open-source code in terms of features with multi-GPU / CrossFire, OverDrive, AA/AF, Hyper Memory, and many other features only being found within the binary blob.
For this first set of Phoronix benchmarks to be published in May are the Catalyst / Gallium3D / Classic Mesa results for an ATI Radeon X1800XL, ATI Radeon HD 2900XT, ATI Radeon HD 46770, and ATI Radeon HD 5770 graphics cards. However, as the R500-based Radeon X1800XL had its Catalyst support dropped in early 2009, that were a comparison of just the two open-source Mesa-based solutions.
These graphics cards were benchmarked on one of the Intel Core i5 2500K systems with the Sapphire Pure Black P67 Hydra motherboard, 4GB of system memory, and 250GB Seagate ST3250310AS SATA HDD. Ubuntu 10.10 x86_64 was the OS installation while the Mesa / Gallium3D drivers were benchmarked when using the latest Linux 2.6.39 kernel Git code as of 20 April, the latest Mesa Git master code as of git-42d3772, libdrm Git as of 20 April, and xf86-video-ati Git as of 20 April. When it came to the Catalyst benchmarking, the stock kernel was used in conjunction with the Catalyst 11.5 press driver.
Powered via the Phoronix Test Suite, benchmarks included Nexuiz, OpenArena, Warsow, World of Padman, and Urban Terror. Testing was done with each driver in its stock / "out of the box" settings.