1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

New ARM X.Org Driver Promises Better Performance

X.Org

Published on 01 February 2013 07:35 AM EST
Written by Michael Larabel in X.Org
2 Comments

While xf86-video-sunxifb sounds like an old X.Org driver from the Sun Microsystems days for some obscure SPARC system, this driver is a fork of the xf86-video-mali DDX driver. What makes this ARM X.Org graphics driver interesting is that it promises better performance on the Allwinner A10/A13 SoC compared to the ARM vendor's official driver.

Siarhei Siamashka wrote today on GitHub about this new xf86-video-sunxifb driver he's been developing. The Allwinner A10/A13 SoCs bear ARM Mali 400 graphics and there is the xf86-video-mali DDX that's open-source and then the closed-source Mali library for OpenGL ES / 3D support.

Siamashka's work isn't about any 3D driver writing or anything to compete with the reverse-engineered Lima graphics driver project for ARM's Mali hardware. The xf86-video-mali driver that ARM puts out is "provided as a basis for creating your own X display driver", at least in theory, so he's decided to extend the Allwinner A10/A13 coverage with his xf86-video-sunxifb fork.

The results shown on his blog seem fairly positive and can beat the upstream Mali DDX, but for his 2D acceleration he largely based it around the generic xf86-video-fbdev driver. So he's actually not going too much about using GPU acceleration itself but rather letting the Pixman library generate ARM NEON-optimized code for doing the grunt of the 2D work. From his Git repository, it appears most of what he has done was adding support to the driver for using the display controller hardware overlays for fully visible windows to avoid extra memory copies and support for the hardware cursor atop this fbdev driver fork.

He then goes on to explain in his posting:
So then what is wrong with the xf86-video-mali? It suffers from the same problem as many other X11 drivers for ARM hardware. DRI2 extension (the thing which is used for the integration of GLES acceleration) needs some hardware-specific buffers allocation (UMP in the case of xf86-video-mali). And EXA framework (a convenience layer for adding 2D acceleration hooks) supports overriding pixmap buffers allocation as part of its functionality. So the guys apparently decided that it's a good idea to override the allocation of absolutely all pixmaps without exception and not just the ones needed for DRI2. This was a total 2D performance disaster for the SGX PVR driver driver. It is also killing performance for xf86-video-mali. But because xf86-video-mali is an open source driver, I could run one more test. UMP also allows allocation of cached buffers, so with a small tweak xf86-video-mali can be changed to do cached allocations instead (let's just ignore the potential cache coherency issues for the buffers shared with Mali hadrware via DRI2). The benchmark results for cached UMP allocations are shown as green bars on the chart above. In some cases (t-firefox-fishtank), the performance for cached UMP allocations managed to catch up with xf86-video-sunxifb (and naturally xf86-video-fbdev). But many other cases are still slow. It's not just uncached memory killing performance, the UMP allocations themselves also require expensive ioctls and have very heavy overhead.
In terms of what's next for his xf86-video-sunxifb driver, he hope to add support for X-Video and RandR (the X Resize and Rotate extension). The driver code can be found on GitHub.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. 13-Way Low-End GPU Comparison With AMD's AM1 Athlon
  2. ASUS AM1I-A: A Mini-ITX Board For Socketed Kabini APUs
  3. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  4. Overclocking The AMD AM1 Athlon & Sempron APUs
Latest Linux Articles
  1. How Much Video RAM Is Needed For Catalyst R3 Graphics?
  2. Ubuntu 12.04 LTS vs. 14.04 LTS Cloud Benchmarks
  3. Ubuntu 12.04.4 vs. 13.10 vs. 14.04 LTS Desktop Benchmarks
  4. AMD OpenCL Performance With AM1 Kabini APUs
Latest Linux News
  1. Linux 3.15 Lands Some DRM Graphics Driver Fixes
  2. AMD Is Disabling DPM Support For RV770 GPUs
  3. ReactOS Working On A Community Windows OS
  4. Borderlands Is Being Considered For Linux
  5. Mesa 10.0 & 10.1 Stable Get Updated
  6. Getting Hit By The Variable Performance Of The Public Cloud
  7. Git 2.0 Test Releases Begin With Many Changes
  8. Wine 1.7.17 Works On Its Task Scheduler, C Run-Time
  9. The Improv ARM Board Still Isn't Shipping; Riding A Dead Horse?
  10. Debian To Maintain 6.0 Squeeze As An LTS Release
  11. Wasteland 2 Is Finally Released For Linux Gamers
  12. FreeBSD Advances For ARM, Bhyve, Clang
Latest Forum Discussions
  1. Updated and Optimized Ubuntu Free Graphics Drivers
  2. Catalyst 14.3 Beta
  3. Suggestions about how to make a Radeon HD 7790 work decently?
  4. The GNOME Foundation Is Running Short On Money
  5. Radeon 8000M problematic on Linux?
  6. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  7. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  8. Suspected PHP Proxy Issue