We Rely On Your Support: This site is primarily supported by advertisements. Ads are what have allowed this site to be maintained for the past 13 years. We do our best to ensure only clean, relevant ads are shown, when any nasty ads are detected, we work to remove them ASAP. If you would like to view the site without ads while still supporting our work, please consider our ad-free Phoronix Premium. You can also consider a tip via PayPal.

Over the weekend I released benchmarks showing the
Linux 3.12 kernel bringing big AMD Radeon performance improvements. Those
benchmarks of a Radeon HD 4000 series GPU showed the Linux 3.12 kernel bringing
major performance improvements over Linux 3.11 and prior. Some games improved
with just low double-digit gains while other Linux games were nearly 90% faster!
Interestingly, the AMD Radeon Linux developers were even surprised by these findings.
After carrying out additional tests throughout the weekend, I can confirm these
truly incredible performance improvements on other hardware. In this article are
results from ten different AMD Radeon graphics cards.

The Linux
3.12 kernel brings several improvements for the Radeon DRM graphics driver
within the kernel, including initial support for AMD "Berlin" APUs,
DPM and ASPM power management for Radeon HD 8000 "Sea Islands" GPUs,
major ring handling cleanups, replacing 3D blit code with the CP DMA / sDMA engines,
many bug-fixes, and other changes. Dynamic Power Management still isn't enabled
by default on the Linux 3.12 kernel. When running the RV770 benchmarks originally,
it was thought the performance improvements may be due to the blitting code change
or the ring cleanup, but it turns out that's not likely the cause. In fact, the
upstream open-source AMD driver developers aren't exactly sure of the cause...
The change in performance isn't due to DPM as it isn't enabled by default on Linux
3.12, it wasn't the blit code change to use the CP DMA engine as that's an R600-only
change, there were no visual corruption/artifact issues to indicate bad rendering,
etc.

Alex Deucher, the lead open-source Radeon driver developer at AMD and a regular
contributor to the Phoronix Forums
isn't sure of the cause of the significant Radeon OpenGL performance improvements.
Alex wrote
on Saturday in the forums, "[To be honest], I don't know of any particular
changes that would have had much impact on performance." Alex then wrote
on Sunday, "The only thing I can think of that may have improved things
is changing the default gart size on r7xx+ asics from 512M to 1024M. If anyone
want to test different gart sizes, you can change the gart size with the gartsize
radeon kernel module parameter. E.g., add radeon.gartsize=1024 to the kernel command
line in grub. Default is 512M for r1xx-r6xx and 1024M for r7xx+."

Christian König, another open-source AMD driver developer and contributor
to the Phoronix Forums
commented this morning, "It looks like we have fixed something very fundamental,
but looking over the commits between 3.11 and 3.12 doesn't show anything that
could cause this." AMD's John Bridgman, another regular to the Phoronix Forums,
also had no explanation for the performance change.

With even the lead upstream AMD Radeon DRM driver developer not being sure
why the Linux 3.12 kernel is so much faster, I spent the entire weekend benchmarking
a greater selection of hardware from the Radeon HD 3850 (RV670) up through
the Radeon HD 6950 (Cayman) graphics cards. All of the tested graphics cards between
the Linux 3.11 and Linux 3.12 kernels included:

The only generation left out was the Radeon HD 2000 (original R600) series
as when trying to run the Radeon HD 2900XT graphics card there were DRM driver
issues (indicated below during one of the lock-ups).

The mission at Phoronix since 2004 has centered around enriching the Linux hardware experience. In addition to supporting our site through advertisements, you can help by subscribing to Phoronix Premium. You can also use our Amazon.com or NewEgg.com shopping links when making online purchases or contribute to Phoronix through a PayPal tip.