Tyr – A Rust GPU driver for Arm Mali GPUs

GNOME on Tyr Firefox YouTube

One interesting addition to the just-released Linux 6.18 kernel is the Tyr Rust GPU driver for CSF-based Arm Mali GPUs, which is a port of the mature Panthor C GPU driver merged into Linux 6.10. It was developed by Collabora in collaboration with Arm and Google. Tyr aims to implement the same userspace API offered by Panthor, so that it can eventually be used as a drop-in replacement in the company’s PanVK Vulkan driver. After several years, the Tyr Rust driver might replace the Panthor C driver, but in the meantime, Panthor will keep being used since it is more mature and conformant with OpenGL ES 3.1 since July 2024. The work on Tyr is fairly advanced, and Collabora provided an update at the end of November. The key takeaway is that the Tyr (prototype) driver works with  GNOME, Weston, and even full-screen 3D games like SuperTuxKart while matching the […]

Progress on upstream Linux for MediaTek Genio IoT SoCs and boards

upstream Linux Mediatek Genio 1200 Radxa NIO 12L SBC

Collabora announced a partnership with MediaTek to bring upstream support to the Genio IoT SoCs and boards in  November 2024, but since the announcement was new at the time, no work had been done, and I didn’t write about it. However, almost one year later, Collabora can now report very good progress, especially for MediaTek MT8395 boards like Genio 1200 EVK and Radxa NIO 12L, which are now usable with mainline/upstream Linux since most features are implemented. But improvements also extend to MediaTek Genio 510 and Genio 700 EVKs, and the collaboration will continue with work on newer MediaTek Genio and Kompanio processors for IoT solutions and Chromebooks. The two MediaTek Genio 1200 boards can now boot mainline Linux without any out-of-tree patches while providing support for the Audio DSP, JPEG, video hardware encoders and decoders, the Arm Mali-G57 MC5 GPU (via the open source Panfrost driver), as well as […]

Panthor open-source driver achieves OpenGL ES 3.1 conformance with Arm Mali-G610 GPU (RK3588 SoC)

Panthor OpenGL ES 3.1 conformance Mali G610

Collabora has just announced that the Panthor open-source GPU kernel driver for third-generation Arm Valhall GPUs (Arm Mali-G310, Mali-G510, Mali-G610, and Mali-G710) has now achieved OpenGL ES 3.1 conformance with the Arm Mali-G610 GPU found in the Rockchip RK3588 SoC. Just a few days ago, Linux 6.10 was released with “support for Mali CSF-based GPUs found on recent Arm SoCs from Rockchip or Mediatek”, as expected from the earlier article entitled “Panthor open-source driver for Arm Mali-G310, Mali-G510, Mali-G610, and Mali-G710 GPUs to be part of Linux 6.10” published last March. But this did not say anything about the level of support for the Valhall GPU since it’s common for new hardware to be added with minimal support, and OpenGL ES 3.1 compliance means it’s ready for business… Collabora’s announcement explains this was tested on a Radxa Rock 5B single board computer: The conformance tests ran on a Rock5b board […]

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 […]

Exit mobile version