Getting GPU drivers to work on Linux with Arm SoCs was really a struggle a few years ago due to close-sources binary blobs that required all bugs to be fixed by a single team. But in recent years we’ve seen good progress with open source mobile GPU drivers including Freedreno for Adreno GPUs, and Etnaviv for Vivante GPUs.
Arm Mali also got its own open source Lima driver worked on for many years but only for older Utgard GPUs (Mali 400, Mali 450). However, during the Opensource GPU Drivers BoF at Linaro Connect Bangkok 2019, Rob Herring, Technical Architect at Linaro and Tomeu Vizoso, Principal Software Engineer at Collabora, discuss the status of drivers, and I learned about an open source driver for Mali Midgard (Mali-T6xx, Mali-T7xx) GPU called Panfrost.
As we’ll see below, the driver is already capable of running basic demos, has been upstreamed to Mesa, and tested on Rockchip RK3288 / R3399, and Amlogic S912 with respectively Arm Mali-T764, Arm Mali-T864, and Arm Mali-T820MP3 GPU.
There’s still a lot more work to do, and some of the tasks to complete include merge into mainline, GNOME Shell, browsers and WebGL support, MMU improvements, OpenCL and Vulkan APIs support, as well as dEQP and CTS compliance. They’ll also work on Bitfrost (Mali-Gxx GPUs).
Charbax met with Collabora at Embedded World 2019 earlier this year, and just recently uploaded the video showing Panfrost demo on RockPi 4 board and other platforms.
Depending on what you plan to achieve with the graphics driver, you may have to be patient, or help improve the drivers, as Robert Foss, graphics developer at Collabora, estimates that a fully-compliant GPU driver with stability and features similar to Freedreno may take 2 to 4 more years.
You’ll find the source for Panfrost on Gitlab, and can follow those instructions to building Panfrost driver. Further details and links may be found in a corresponding blog post in Collabora website.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
“Robert Foss” developing FOSS drivers, LOL. Keep on the good work guys!
Given how Panfrost is GLES2, I think that they might first attempt GLES3 prior to OCL or any other GPU API that is currently in use.
wouldn’t Vulkan be better? From the little I know, it might be easier as the code base is cleaner.
Panfrost has already passed (or is about to soon) the threshold of GLES entry — GLES2. From there on to GLES3 they’d just need to build on the featureset without changing the overall model, vis-a-vis a brand new API. Moreover, for proper Vulkan shaders they’d need a bunch of functionality from GLES3 shaders (e.g. compute shaders).
2-4 years for a fully compliant driver, is this chewitt@LibreELEC’s idea of *soon* when he talks about S912 mainline support…
Kodi is already running with current Panfrost driver, so yeah, soon. It doesn’t need GLES3 or even Vulkan for that.
Consider the following:
1. The SoCs are going to stick with 4k for quite a while.
2. Panfrost is targeting contemporary GPU architectures.
3. It’s 4-7 years for full coverage but it’s 2-4 years for video playback and desktop rendering at 1080p/30fps since that’s well below what most modern GPUs can pull off.
So, maybe it’s not great for current cheap SoCs. But it’s still a pretty decent ARM laptop in the next couple of years assuming the new compute cores are adopted.
Just so the reader can get a taste of how fast Panfrost has been developing, here’s a recent blog post by one of the original lead devs: https://rosenzweig.io/blog/kodi-supertuxkart-panfrost.html
The only way I see these GPU drivers ever being properly useful is if Google mandates that source is provided for all drivers for Android devices going forward and vendors start improving them. ARM said the reason they didn’t opensource all of the mali drivers was that there wasn’t market demand for it. If vendors can’t ship phones anymore because Google won’t give them access to Play then maybe that would happen.
You only need to look at the demand for retro consoles to see the interest for gaming on arm. The arm SoC can deliver better graphics than the systems they emulate. Lack of open universal drivers hold the arm market back.
The interest in the Odroid N2 drivers demonstrate the very point.
Those sort of e-waste products don’t need to have properly maintained drivers. You hack up whatever ancient buggy crap the chip vendor gives you until it works, ship it and then forget about it. As long as it doesn’t get connected to a network there’s not much of a problem. Smartphones on the other hand are a global disaster just waiting to happen.
“Open Source Drivers”
The three magic words to give me an instant boner