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

Freedreno DRM/Gallium3D Shines Well For ARM

Hardware

Published on 30 July 2013 04:15 PM EDT
Written by Michael Larabel in Hardware
9 Comments

The reverse-engineered Freedreno driver for open-source Qualcomm Adreno graphics support is quickly taking shape as the leading ARM Linux graphics driver for the (non-Android) Linux desktop.

Rob Clark of Red Hat (formerly with Texas Instruments) has been working on Freedreno the past year and he's made a ton of progress for doing most things single-handedly and as a hobbyist project. His Freedreno Gallium3D driver is the first mainline ARM Mesa/Gallium3D driver and that's running well and in good shape for Mesa 9.2.

Earlier this month he then published a Qualcomm KMS/DRM driver rather than having to rely upon Qualcomm's low-quality open-source kernel driver primarily designed around Android's needs. He also has his xf86-video-freedreno driver for providing the X.Org driver support and 2D acceleration is being leveraged over the XA state tracker in Gallium3D.

For explaining where things are today, Rob wrote a new blog post concerning Freedreno Gallium3D and the new DRM/KMS driver.

While Qualcomm's kernel driver for Adreno display/graphics is open-source, the code quality is terrible, according to Rob. He says he ended up writing his own code to trace all the register read/writes to the hardware rather than simply porting the code to the DRM/KMS interfaces. (Qualcomm continues to refrain from publicly disclosing any hardware specifications / programming guides and they do not support the Freedreno project.)

Rob said, "Unfortunately, the msm android fbdev driver code is a real mess (at least the mdp4 parts). Even by android / vendor kernel standards, which are pretty low to begin with. And I don't have any docs on the display controller. In the end, I ended up instrumenting the code to trace all the register reads/writes, etc, wrote a small parser tool using envytools/librnn, and starting writing rnndb register database for the display controller registers. It was a lot easier to get a general picture of how the hardware works that way! Plus I can generate register level headers from rnndb in the same way I do for the gallium driver."

He also says in today's blog post that he expects his next revision of the MSM DRM/KMS driver to be in good shape and hopefully the final "RFC" round, which would mean this new driver could potentially premiere in the Linux 3.12 kernel.

Embedded below is the Freedreno driver stack (with the new kernel driver) running on the IFC6410 ARM development board with quad-core Krait SoC and Adreno A320 graphics.


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 Articles & Reviews
  1. AMD FX-8320E Performance On Linux
  2. Linux Compiler Benchmarks Of LLVM Clang 3.5 vs. LLVM Clang 3.6-rc1
  3. Intel Broadwell HD Graphics 5500: Windows 8.1 vs. Linux
  4. Linux Benchmarks Of NVIDIA's Early 2015 GeForce Line-Up
  5. NVIDIA GeForce GTX 960: A Great $200 GPU For Linux Gamers
  6. Disk Encryption Tests On Fedora 21
Latest Linux News
  1. Now-Closed KDE Vulnerabilities Remind Us X11 Screen Locks / Screensavers Are Insecure
  2. Vivaldi: A New Chromium-Powered, Multi-Platform Browser
  3. KDE Plasma 5.2 Officially Released
  4. Intel Broadwell On Linux Has Working OpenCL 1.2, VP8 Video Acceleration
  5. GParted 0.21 Brings ReFS Detection, EXT4 For RHEL5, Reiser4 For Linux 3.x
  6. Wine Staging Update Has Better CUDA Support, Driver Testing Framework
  7. Nouveau In Linux 3.20 Will Have A Lot Of Code Cleaning
  8. Compare Your Linux System To The i7-5600U Broadwell X1 Carbon ThinkPad
  9. Debian 8.0 "Jessie" Installer RC1 Released
  10. Chromebook "Rush" With 64-bit Tegra SoC Support Lands In Coreboot
Most Viewed News This Week
  1. Windows 10 To Be A Free Upgrade: What Linux Users Need To Know
  2. Google Admin Encourages Trying Btrfs, Not ZFS On Linux
  3. TraceFS: The Newest Linux File-System
  4. My Initial Intel Broadwell Linux Experience With The ThinkPad X1 Carbon
  5. Keith Packard Leaves Intel's Linux Graphics Work
  6. Interstellar Marines On Linux With Catalyst: Bull S*#@
  7. Faster VP9 Decoding Is On The Horizon
  8. NetworkManager Now Supports WiFi Power Savings