Most GPU drivers found in Arm processors are known to be closed-source making it difficult and time-consuming to fix some of the bugs since everybody needs to rely on the silicon vendor to fix those for them, and they may even decide a particular bug is not important to them, so you’d be out of luck.
So the developer community has long tried to reverse-engineer GPU drivers with projects like Freedreno (Qualcomm Adreno), Etnaviv (Vivante), as well as Lima and Panfrost for Arm Mali GPUs. Several years ago, Arm management was not interested at all collaborating with open-source GPU driver development for Mali GPUs, but as noted by Phoronix, Alyssa Rosenzweig, a graphics software engineer employed by Collabora, explained Panfrost development was now done in partnership with Arm during a talk at the annual X.Org Developers’ Conference (XDC 2020).
A recent merge commit confirms the move with Daniel Stone, Graphics Leads at Collabora commenting
To reiterate the answer from earlier – based on information & support from Arm, it now more accurately describes the actual ISA and matches the actual forms & nomenclature used.
CNX Software contacted Collabora for further information about the partnership, and while they would not comment on whether they were also getting financial support from Arm for the development, Daniel’s answer looks promising:
… Collabora and the Panfrost community have developed a reverse-engineered driver supporting the Midgard and Bifrost generation of Mali GPUs, as an almost entirely independent self-funded effort. We are very proud of this work, and the fact it has high performance, good levels of functionality, and a high level of conformance with the specifications.
However reverse-engineering necessarily brings an overhead as we need to spend time discovering how the hardware really works, including the most optimal way to perform various operations, and particular quirks of the hardware.
Arm are now working together with Collabora to provide us with information and documentation which allows us and the community to understand the hardware. This information allows us to focus on the best possible driver without the time and guesswork involved in reverse engineering. Collabora are continuing our effort to have Panfrost working on all the devices from these generations, towards maximum performance, full conformance with the specifications, and the largest possible feature set. Whilst we have already been doing this, Arm’s support enables us to accelerate this work, and deliver the best possible driver with a commitment of long-term support.
So that means a stable Panfrost driver should be expected quite earlier, and possibly with higher quality, than if the company still had to spend time and resources on reverse-engineering.
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.
23 Replies to “Arm Officially Supports Panfrost Open-Source Mali GPU Driver Development”
Good news. Even better, give them the source code
As I understand it, Arm sharing the code could lead to legal issues around patents.
The current setup probably works because Arm does not have to share anything publicly. They can provide documentation and support, Collabora likely needs to keep any documents from Arm private, and releases source code without Arm being directly involved in software development.
This would be on top of the other detail that came out recently.
What use does NVidia have for these GPUs since they have their own?
Where are the datasheets?
See Jean-Luc’s comment above… and there will likely never be public datasheets. It’s likely a lot of the information you might want isn’t in nice datasheet format anyway i.e. there are probably a bunch of excel files or similar exported from the HDL that make up the “register map” section you’d expect in a datasheet.
This is a massive step forward either way. Panfrost will essentially become the public documentation for these GPUs and now Arm are helping there will be a lot less fumbling around in the dark. If manufacturers start using panfrost over the binary drivers we should have a lot less dangerous old kernel e-waste around.
Shabby if you know how they treated the guy who started lima driver many years ago. Literally tried to ruin his career.
>Literally tried to ruin his career.
Is there a source for that? I was under the impression Arm was a company that ran on cotton candy and unicorn farts..
That said I seem to remember them going after someone that made their own implementation of one of their older cores.
That’s the guys blog, not sure if he was posting himself but at the time the unicorn farts were rather venomous as far as I can remember…
That’s really cool. They were using the Odroid Go Advance for testing and im really interested in buying that handheld. With open source graphics in the future it will become even better
I couldn’t be more happy with this news. Linux ARM needs good GPU drivers, but also good VPU. I hope they’ll get access to that too. Panfrost is good now, but still needs a lot of work.
This is the only way to make people see arm is the way to go by having these things working well.
I can’t wait to see what comes out of it. Cheers, NicoD
In most cases, the code for GPU and VPU is complete separate, and in many cases, Arm does not provide the VPU IP.
There is cedrus for allwinner vpus and hantro for rockchip and i.mx (NXP) vpus in mainline and they are working pretty well (Allwinner) and getting better and better (hantro).
Not sure about mainline status of pi and amlogic.
Note that this is being done right before NVidia acquires ARM. And note that NVidia has stated that they will begin licensing NVidia GPU designs in conjunction with ARM CPUs.
Hmmm… is Panfrost dead and this is being push out before the new master can say — no!
Probably the mali business unit has to be spun off due to antitrust?
Not if they simply shut it down.
Well id expect that the worlds leading gpu manufacturer won’t be allowed to take over one of the most important mobile GPU manufacturers…
I know hopes… High hopes…
AFAIK Nvidia does not have any low end, mobile capable designs. So in the beginning they will have to stick with the ARM GPUs. IDK how hard it is to convert those high-end designs for the low end. As for anti-trust I wouldn’t really say Nvidia is a major presence in the cell phone GPU market. Their Tegra chips went no where. So there is no conflict.
What is going to change is the future. Nvidia is going to push their architecture design down into the mobile SOCs. But that will take a couple of years. Short term Nvidia is very unfriendly to open source. It is very likely that they will shut down as much open source activity as possible. So Panfrost is going to get resource starved and stagnate while we wait for the new designs.
Well actually all the tegras are coming with an integrated Nvidia GPU, so they clearly are having a suitable solution of their own.
But well speculation until we know more.
But definitely no great news for the mainline blob free experience
1) ARM isn’t just Cell-phones.
2) There’s more than just Cell-phones in the embedded space.
3) NVidia’s a force to be reckoned with in the Embedded Space for things other than Cell Phones.
What an amazingly NARROW minded view you have there…
(I say this as I mention the Switch and am looking at no less than four X2’s in my office space due to WORK…)
That could raise Anti-trust scrutiny (Buy up a main competitor (and they are) for the embedded space and shutter the GPU division?)
Spun off is usually what transpires if they don’t run it as a bargain basement IP offering.
This is a great news.
What’s the Nvidia purchase going to do to this?
Probably nada. It was done by them prior to purchase- they’re likely to either spin off the GPU division, which means nothing changed, or they’re going to go with Mali at the lower end, which would be the same.
Closing down the Mali group has bad Anti-trust issues, so one of the two will be done. And, in either case, it’s not “leaking” their IP or ceding control of the high end. What’s pathetic about NVidia’s take on things? During the heyday of the Utah-GLX, they were the most OPEN of the GPU companies, but you couldn’t even lay hands on a card to make the support happen. I could’ve coded a driver for the NV1- but I couldn’t test it, etc.