13 comments

[ 3.4 ms ] story [ 47.8 ms ] thread
For the uninitiated, a few bullet points I stitched together from Wikipedia and freedesktop.org:

The Mali GPUs are IP Core GPUs produced by ARM Holding[0].

Midgard and Bifrost are architecture code names[1].

Panfrost is a FOSS driver for Mali Midgard and Bifrost GPUs[2].

An older effort at reverse engineering exists under the name Lima, targeting older Mali GPUs[3].

[0] https://en.wikipedia.org/wiki/Mali_(GPU)

[1] https://en.wikipedia.org/wiki/Mali_(GPU)#Variants

[2] https://panfrost.freedesktop.org/

[3] https://en.wikipedia.org/wiki/Mali_(GPU)#The_Lima_and_Panfro...

I own a device with a Mali Midgard or Bifrost GPU. I'm excited about getting HW acceleration on it. Anyone has insight about the usability of the driver at the moment? Alos, why are developers interested in it? Surely there are loads of GPUs without open source drivers.
The Midgard support is quite mature, expect most usecases to work & some to outperform the vendor driver.

Bifrost support is very new, testing this I would expect to run in to show-stoppers and severe issues. But this is the very early days of bifrost support, and support is going to get better at a rapid pace.

As for why people want this; The Vendor driver is inflexible in various ways and ARM stops supporting HW after about 5 years, which makes their driver completely unsuitable for embedded systems.

(comment deleted)
Midgard still gets new driver versions with bugfixes despite being more than five years old.
Midgard is usable - GNOME Shell and KDE Plasma usable.. even SuperTuxKart with GLES3 usable now: https://www.collabora.com/news-and-blog/blog/2020/02/27/expe...

Bifrost is quite early as you can see from the article this thread is for.

> Surely there are loads of GPUs without open source drivers

Mali is very popular (so many SoCs from Rockchip, Amlogic, Allwinner, etc.) and actually was sort of the last holdout among them.

Etnaviv, VC4, Freedreno all predate Panfrost and (the resurrected and upstreamed version of) Lima.

Now I guess the last holdout would be PowerVR but it's not like there's so many devices with their GPUs. Nokia N900 and early iPhones I think?

Lots of early androids have powervr gpus with no free support, which is a serious showstopper for pmOS and the like. It even shows up in some low-end x86-based devices, which are not even supported by current Windows 10 as a result.
Beaglebone uses PowerVR, unfortunately. This is a very powerful little platform (PRUs For The Win!) held back by closed source graphics drivers.
I spent a while playing with PowerVR trying to reverse it on my beaglebone.

It's a huge pain, they feel like an order of magnitude more effort than Mali cores to get running with free drivers as they run a full RTOS on their GPU cores. They also have tons of bugs they hack around on a per rev basis around the caching and virtual memory systems which means your reversed code will sort of work for a bit, then start mysteriously start failing as you pull your hair out for a month.

Neat design; I just wish Imagination would get their head out of their ass and approach the community. They might still have a viable business if they had done that before now.

RTOS on.. SIMD units?? o_0
Most unified shader GPUs have the same semantics, they just run the priority thread scheduler in hardware. PowerVR was being cute and saving gates and their power cost by making the shader cores themselves handle all that rather than a dedicated hardware block.