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.

Latest Linux Hardware Reviews
  1. Overclocking The AMD AM1 Athlon & Sempron APUs
  2. AMD Athlon 5350 / 5150 & Sempron 3850 / 2650
  3. Upgraded Kernel & Mesa Yield A Big Boost For Athlon R3 Graphics
  4. AMD Athlon 5350 APU On Linux
Latest Linux Articles
  1. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  2. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
  3. AMD Athlon's R3 Graphics: RadeonSI Gallium3D vs. Catalyst
  4. GCC 4.9 Compiler Optimization Benchmarks For Faster Binaries
Latest Linux News
  1. Maynard: A Lightweight Wayland Desktop
  2. Chromium Browser Going Through Growing Pains In Ubuntu 14.04
  3. KDE 4.13 Is Being Released Today With New Features
  4. Trying Out Radeon R9 290 Graphics On Open-Source
  5. Intel Broadwell GT3 Graphics Have Dual BSD Rings
  6. Early Linux 3.15 Benchmarks Of Intel Core i7 + Radeon
  7. Red Hat Releases Its RHEL 7 Release Candidate
  8. New Features Coming To Xubuntu 14.04 LTS
  9. NVIDIA Officially Releases CUDA 6
  10. Google Releases An AutoFDO Converter For Perf In LLVM
  11. Fedora 21 To Evaluate Remote Journal Logging, 64-bit ARM Emulation
  12. Star Citizen Will Be Coming To Linux
Latest Forum Discussions
  1. The GNOME Foundation Is Running Short On Money
  2. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  3. Bye bye BSD, Hello Linux: A Sys Admin's Story
  4. New tool for undervolt/overclock AMD K8L and K10 processors
  5. How to enable opengl 3.3 on r9 270?
  6. R290x sound problems
  7. radeon-profile: tool for changing profiles and monitoring some GPU parameters
  8. Torvalds Is Unconvinced By LTO'ing A Linux Kernel