Panthor open-source driver for Arm Mali-G310, Mali-G510, Mali-G610, and Mali-G710 GPUs to be part of Linux 6.10

Panthor open-source Arm Mali G610 GPU driver linux

Collabora has been working on the Panthor open-source GPU kernel driver for the third-generation Arm Valhall GPU (Arm Mali-G310, Mali-G510, Mali-G610, and Mali-G710) for around two years, and the code has just been merged in drm-misc meaning it should be part of the upcoming Linux 6.10 release sometime in July 2024. Many regular readers must already be familiar with the Panfrost open-source driver for Arm Mali GPUs as we’ve covered its development progress over the years. Panthor is a new kernel driver specific to the 3rd gen Valhall GPUs that still relies on the Panfrost driver residing in userspace, as explained by Boris Brezillon from Collabora. Furthermore, the existing Gallium “Panfrost” driver in Mesa has also received a merge request adding support for those GPUs (10th gen Arm Mali = 3rd gen Arm Mali Valhall) meaning popular targets such as the Rockchip RK3588 SoC with an Arm Mali-G610 MP4 GPU […]

Arm: “Panfrost is now the GPU driver for the Linux community”

Arm Panfrost Linux

Arm is now saying that “in effect, Panfrost is now the GPU driver for the Linux community” after having extended and expanded the collaboration with Collabora for the development of the open-source Panfrost driver for Arm Mali GPUs, following their first official collaboration in the fall of 2020. Arm goes even as far as to claim that “through the Arm and Collabora partnership, device manufacturers can confidently choose SoCs containing a Mali GPU regardless of the software operating system (OS) and graphics middleware… delivering a high-quality open-source Linux implementation which can be used in their products”. Collabora confirmed the new partnership saying Arm will be instrumental in getting Vulkan support in Panfrost alongside the existing OpenGL and OpenGL ES implementations. Going forward that means SBC vendors will have no excuse for not getting 3D graphics acceleration working on Linux with Panfrost when using an Arm SoC with a recent Mali […]

Panfrost now offers a fully-conformant OpenGL ES 3.1 implementation for Mali-G57 (Valhall) GPU

Panfrost Mali-G57 OpenGL ES 3.1

The Mali-G57 GPU part of the Valhall family, and found in several Arm processors such as MediaTek MT8192 and MT8195 SoC powering some Chromebooks, is now supported by the Panfrost open-source driver with a fully-conformant OpenGL ES 3.1 implementation. Last year, Collabora updated Panfrost with support for OpenGL ES 3.1 on Midgard (Mali T760 and newer) and Bifrost (Mali G31, G52, G76) GPUs, and also announced having started working on Valhall GPUs. One part of the work was done in the summer of 2021 with some reverse-engineering work on Mali-G78 GPU’s instruction set, and this has culminated with a fully-conformant OpenGL3.1 for Mali-G57 GPU. Interestingly, it’s not been released by Collabora directly, but through an organization called “Software in the Public Intenerest, Inc.” (or SPI for shorts) which happens to be a non-profit organization incorporated on June 16, 1997, and described as: a non-profit corporation registered in the state of […]

Speeding up open-source GPU driver development with unit tests, drm-shim, and code reuse

Open source GPU driver Linux

Getting an Arm platform that works with mainline Linux may take several years as the work is often done by third parties, and the silicon vendor has its own Linux tree. That means in many cases, the software is ready when the platform is obsolete or soon will be. It would be nice to start software development before the hardware is ready. It may seem like a crazy idea, but that’s what the team at Collabora has done to add support for Arm “Valhall” GPUs (Mali-G57, Mali-G78) to the Panfrost open-source GPU driver. The result is that it only took the team a few days to successfully pass tests using data structures prepared by their Mesa driver and shaders compiled by their Valhall compiler after receiving the actual hardware thanks to the work done in the last six months. So how did they achieve this feat exactly? We have to […]

Customize GStreamer build with only the features needed for your application

Gstreamer customize

Thanks to a partnership between Collabora and Huawei is now possible to build Gstreamer with just the features required for a specific application, reducing the binary size for space-constrained embedded systems. Gstreamer is a very popular open-source multimedia framework used in a wide variety of projects and products, and with an impressive number of features spread over 30 libraries and more than 1600 elements in 230 plugins. This is not a problem on desktop PC and most smartphones, but the size of the binary may be too large for some systems, and until recently it was no easy way to customize GStreamer build for a specific application. But Collabora changed the code to allow gst-build to generate a minimal GStreamer build. The company built upon a new feature from GStreamer 1.18, released in September 2020, that makes it possible to build all of GStreamer into a single shared library named […]

Mali-G78 GPU’s Valhall instruction set documentation released after reverse-engineering work

Arm Mali Valhall GPU product matrix

Collabora has been working on Panfrost open-source GPU driver for Arm Mali Bifrost and Midgard GPU for several years, and even getting official support from Arm. But apparently, that support does not include documentation for Mali-G78 GPU and other recent Arm Valhall Mali GPUs, as the company recently reverse-engineered Mali-G78 for about a month before releasing the documentation on the Valhall instruction set (PDF). Other results from the reverse-engineering include an XML architecture description that can be parsed by programs,  as well as a Valhall assembler and disassembler that were used as a reverse-engineering aid. Besides Mali-G78 “Borr” GPU, the work will be useful for other Valhall GPUs include Mali-G77 “TryM’, Mali-G57 “Natt-A/B”, Mali-G68 “Ottr”, and Mali-G78AE “Borr-AE” for automotive & industrial applications. Alyssa Rosenzweig explains Collabora’s work that was based on the International edition of the Samsung Galaxy S21 phone powered by Samsung Exynos 2100 system-on-chip with a Mali-G78 […]

RK3566 & RK3568 processors to get Linux mainline support soon

Rockchip RK3566 RK3568 mainline Linux

Rockchip RK3566 & RK3568 processors were just officially announced at the end of the year, and soon followed with announcements of related such as Core-3568J AI Core system-on-module, some Android 11 TV boxes, Station P2 mini PC, and RK3566/RK3568 development boards. But it did not take long, as RK3566/RK3568 are about the get support for mainline Linux, with engineers from Collabora and Rockchip having recently committed preliminary support for RK356x platforms, notably using Pine64 Quartz64 SBC for testing. The most recent commits target power management, networking, and the PCI host controller. It’s not clear when code will be merged to mainline, but Collabora said “Pine64 Quartz64 SBC out-of-the-box support is right around the corner” in a recent tweet. In any case, it’s good news there’s active development for mainline Linux on the new Rockchip processors, as that means it will be possible to run the latest version of Linux on […]

Open-source H.265/HEVC Hantro G2 decoder driver added to NXP i.MX 8M in Linux

H.265 Linux open-source driver NXP iMX 8M Quad

Getting open-source multimedia drivers on Arm Linux is one of the most difficult tasks, that’s why there’s no much talk about open-source GPU drivers for 2D & 3D graphics acceleration, but work on video hardware decoding and encoding is also a challenge. We’ve previously seen Bootlin work on Cedrus open-source driver for Allwinner VPU (Video Processing Unit), but Collabora has been working on open-source drivers for VeriSilicon’s Hantro G1 and G2 VPU found in some Rockchip, NXP, and Microchip processors. The company previously managed to have Hantro G1 open-source driver for JPEG, MPEG-2, VP8, and H.264 codecs, but H.265/HEVC relies on Hantro G2, and the patch for H.265 hardware video decoding on NXP i.MX 8M Quad has just been submitted to mainline Linux. Benjamin Gaignard explains more in his commit message: The IMX8MQ got two VPUs but until now only G1 has been enabled This series aim to add the […]

Memfault IoT and embedded debugging platform