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. Intel Launches The Core i7 5960X, Mighty Powerful Haswell-E CPUs
  2. AMD Radeon R9 290: Gallium3D vs. Catalyst Drivers
  3. AMD Radeon R9 290 Open-Source Driver Works, But Has A Ways To Go
  4. Trying The Configurable 45 Watt TDP With AMD's A10-7800 / A6-7400K
Latest Linux Articles
  1. The Fastest NVIDIA GPUs For Open-Source Nouveau With Steam Linux Gaming
  2. Testing For The Latest Linux Kernel Power Regression
  3. The Most Energy Efficient Radeon GPU For AMD Linux Gaming
  4. 20-Way Radeon Comparison With Open-Source Graphics For Steam On Linux Gaming
Latest Linux News
  1. Intel Beignet Is Working Out Surprisingly Well For OpenCL On Linux
  2. Coreboot Adds Lenovo X220 With Native Sandy Bridge Support
  3. Canonical Has Yet To Land X.Org Server 1.16 For Ubuntu 14.10
  4. Imagination Launches A MIPS Development Board
  5. Getting Involved With The New Raspberry Pi Graphics Driver
  6. A New AMD Catalyst Linux Driver Unofficially Surfaces
  7. LibreOffice Ported To 64-bit ARM (AArch64)
  8. Enlightenment E19 RC3 Shows Off The New Wayland Compositor
  9. Metro Redux Is Going To Require OpenGL 4.x On Linux
  10. Jailhouse v0.1 Released As A Basic Hypervisor For Linux
Latest Forum Discussions
  1. Btrfs Gets Talked Up, Googler Encourages You To Try Btrfs
  2. Catalyst 14.201.1008
  3. It's Now Possible To Play Netflix Natively On Linux Without Wine Plug-Ins
  4. Users defect to Linux as OpenBSD removes Lynx from base system
  5. Updated and Optimized Ubuntu Free Graphics Drivers
  6. Canonical Joined The Khronos Group To Help Mir/Wayland Drivers
  7. Radeon HD5670 and Ubuntu 14.04
  8. AMD Releases UVD Video Decode Support For R600 GPUs