Etnaviv: An Open-Source Driver For Vivante GPUs

Posted by Michael Larabel on January 11, 2013

Etnaviv is a new open-source project for building a user-space graphics driver for controlling the Vivante GPUs found in some ARM SoCs. The ultimate goal is to create a new Mesa/Gallium3D driver for this graphics core.

At the moment the Etnaviv driver is particularly seeking to support the Vivante GCxxx series of embedded graphics processors. The 3D-capable Vivante GPUs include the GC400, GC500, GC600, GC800, GC1000, GC2000, and GC4000 products. These graphics cores support OpenGL ES 2.0, OpenVG 1.1, EGL 1.4, DirectX 11, and OpenGL 2.1/3.0.

The Vivante GPUs have been found in many ARM SoCs from the low-cost "Chinese tablets." Among the popular devices bearing Vivante graphics include the Google TV, OLPC, CuBox, many Rockchip 2918 tablets, and devices shipping the Freescale i.MX 6 series. Primary development of this driver is being done by Wladimir J. van der Laan and he's using an Android tablet with a Rockchip RK2918 bearing a GC800 GPU.

The Etnaviv driver ("Vivante" spelled in reverse) is currently in an experimental state. Like Lima, Freedreno, and various other ARM GPU drivers, Etnaviv is developed through reverse-engineering of the Linux driver's binary blob. The ultimate goal for this open-source ARM Vivante GPU driver is to create a Mesa/Gallium3D driver.

At present there's no plans on writing a new open-source kernel driver for the Vivante hardware. Vivante previously put out their Linux kernel component under the GPL.

Within the project's code repository is known information about the render state and registers, ISA vertex/fragment shader documentation, a basic disassembler for shader instructions, command stream format information, interception paths for the GPU command stream, a command stream dumper, replay test, and other components needed for reverse-engineering the Vivante GC graphics and for writing this new user-space 3D driver.

The Etnaviv "Etna_viv" driver project is currently being housed and developed on GitHub.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. Mir's GPLv3 License Is Now Raising Concerns
  2. NVIDIA Driver Soon Likely To Support EGL, Mir
  3. OpenMandriva Goes Into Alpha Form, Russian-Based
  4. NVIDIA Brings Their Linux Driver To ARM
  5. D Language Still Showing Promise, Advancements
  6. Planetary Annihilation Released For Linux Gamers
  7. Gentoo Starts Work On KDE-Wayland Support
  8. NVIDIA To License Its Kepler GPU Technology
  9. KDE's KWin Made Lots Of Progress In 4.11
  10. Ubuntu Announces Carrier Advisory Group
  11. Qt 5.1 Release Candidate 1 Has Arrived
Latest Forum Talk
  1. VP9 Codec Now Enabled By Default In Chrome
  2. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  3. Intel GPU Driver Tries To Rip Out FBDEV Support
  4. Mir's GPLv3 License Is Now Raising Concerns
  5. NVIDIA Driver Soon Likely To Support EGL, Mir
  6. NVIDIA Brings Their Linux Driver To ARM
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite