2016 End-of-Year Open-Source Radeon Benchmarks With Linux 4.9, Mesa 13.1-dev On Many Different GPUs
With 2016 soon drawing to an end, it's time for all of my year-end recaps now of Linux drivers that I have been doing for the past 12 years. Today are benchmarks of a wide assortment of AMD graphics cards on both R600g and RadeonSI Gallium3D drivers when using Mesa 13.1-dev + LLVM 4.0 SVN and the Linux 4.9 kernel for providing a bleeding-edge look at the open-source AMD Linux graphics performance across hardware going from the Radeon HD 4890 series all the way up through the RX 480 and R9 Fury hardware. Here's a fun look at the OpenGL driver performance across this range of GPUs.
This comparison wouldn't be possible with Radeon Software / AMDGPU-PRO, but thanks to the open-source driver stack not going legacy and continuing to work fine on the latest mainline kernels and xorg-server releases, it's still possible to compare the OpenGL performance of the HD 4890 to say the RX Polaris cards. AMD developers rarely touch this old hardware support these days, but the code remains open as part of the mainline Linux kernel and Mesa trees with any open-source developers free to contribute to them. All tests were done atop Ubuntu 16.10 x86_64 when using the Linux 4.9.0 kernel and Mesa 13.1-dev via the Padoka PPA as of this week.
But before getting to the performance numbers, it's worth mentioning some of the driver improvements over the course of 2016. In 2016, RadeonSI (along with Intel i965) finally hit OpenGL 4.5 compliance! They jumped ahead greatly with their OpenGL 4 support this year plus support for other GL extensions not yet part of a released version. Now at the end of 2016, most new Linux games are running with RadeonSI Gallium3D without problems -- aside from some games still being plagued by performance issues until RadeonSI has an OpenGL shader cache and various other optimizations.
This year in Mesa there have also been a number of OpenGL performance optimizations, there was launch-day Radeon RX 480 Polaris support, experimental GCN 1.0 support for AMDGPU, and a wealth of other improvements to the open-source AMD Linux driver stack that I've written about in dozens of Phoronix articles over the course of 2016. But on the down side, unfortunately this year didn't see the merging of DAL/DC code for providing HDMI 2.0, HDMI/DP audio, and other display features. As mentioned already there also still isn't an OpenGL shader cache for RadeonSI, the open-source OpenCL stack is still in poor shape until ROCm is further along, and for select workloads the AMDGPU-PRO driver remains faster. Also unfortunate is that AMD hasn't yet open-sourced their Vulkan driver, leading to the the separate RADV driver effort by the community.
The Radeon cards I had available for testing included the Radeon HD 4890, HD 5830, HD 6870, HD 6950, HD 7750, HD 7950, R7 260X, R9 270X, R9 285, R7 370, RX 460, RX 470, RX 480, and R9 Fury. On the FirePro side I was also able to test the V8750 and V8800 as additional data points. The selection of cards used for testing were all that I had available, those that were working properly (i.e. having to leave out the Radeon R9 290), and the cards that weren't busy in rack-mounted systems. All of them that were available for testing but then needing to cut off the testing with the Radeon HD 4890 as the HD 4850/4870 weren't running stable in some of these modern OpenGL tests.