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.