While Intel has their highly-tuned "SNA" acceleration architecture for delivering maximum 2D performance, it turns out the OpenGL-based GLAMOR acceleration architecture for the open-source Radeon driver may be better than the xf86-video-ati driver's own EXA implementation.
This week we showed benchmarks done by Intel's Chris Wilson where SNA was beating UXA and GLAMOR
(the two other 2D acceleration methods in the open-source Intel driver) by long shots for Cairo workloads. SNA is the very large and highly-tuned 2D code-path developed by Chris over the past two years that is finally becoming the default acceleration method in xf86-video-intel 3.0. The results shown this week indicated GLAMOR did much more poorly than SNA and UXA.
Chris, however, decided to do some benchmarks of the current xf86-video-ati driver state on his personal blog
. With testing done from a Radeon HD 5770 "Evergreen" graphics card, Chris compared the open-source ATI/AMD Radeon driver performance to Intel SNA. It was found that the default EXA acceleration method for 2D in the Radeon driver was 2.9x slower than Intel SNA on Sandy Bridge while the GLAMOR option was only 2.0x slower.
GLAMOR in the Radeon driver is only required for Radeon HD 7000 series (RadeonSI) hardware and newer while it's an optional method for older GPUs (set via the AccelMethod
in the xorg.conf
). The Radeon driver has no highly-tuned 2D implementation, so even the generic OpenGL GLAMOR library can outperform its standard EXA code-paths. Interestingly, while GLAMOR was 2.0x slower than SNA, the fglrx driver and its 2D Cairo performance was 9.0x slower.
Chris Wilson ended his latest blog post with, "Or to put a positive spin on it, the new Glamor acceleration on this particular r600g device is about 50% faster than the existing EXA radeon driver. If you look closely there are just a couple of traces that EXA performs better than Glamor, with those regression fixed Glamor would be a clear improvement for radeon. And almost as fast as not using Glamor at all! However, Glamor was not able to complete the benchmark run without crashing."