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

ODROID-N2+ review with Ubuntu 21.10 using Wayland and Panfrost

ODROID N2+ Ubuntu 21.10 review

ODROID-N2+ was launched in July 2020, but I only got the Amlogic S922X Rev C SBC recently with Hardkernel wanting me to test their latest Ubuntu 21.10 image with the Panfrost open-source GPU driver. ODROID-N2+ Kit Unboxing Let’s start by checking out the kit I received from the Korean SBC manufacturer. The package includes ODROID-N2+ single board computer fitted with a 32GB eMMC flash module, a 12V/2A power supply with an EU plug adapter, an 80mm fan kit, and a USB 3.0 to eMMC reader. ODROID-N2+ is now only available with 4GB RAM, as the old ODROID-N2 with 2GB was deprecated, and we get four USB 3.0 ports, HDMI 2.0 video output,  Gigabit Ethernet networking, and a 40-pin GPIO header with the board cooled by a larger heatsink attached to the bottom of the board. Fan installation, first boot, and system information As we’ll see below the fan is not […]

ODROID-N2+ SBC gets Ubuntu 21.10, Chromium OS with Panfrost open-source GPU driver

ODROID-N2+ running Ubuntu 21.10 with Panfrost

Panfrost open-source driver for Arm Mali Bifrost and Midgard GPUs has come a long way, and Hardkernel’s ODROID-N2+ board now supports Ubuntu 21.10 and Chromium OS with 3D graphics acceleration through the Panfrost driver. As a reminder, ODROID-N2+ is a single board computer powered by an Amlogic S922X Rev.C processor clocked at 2.4GHz with an Arm Mali-G52 GPU, with up to 4GB RAM, and which comes with HDMI 2.0, Gigabit Ethernet, four USB 3.0 ports, plus a GPIO header. ODROID-N2+ with Ubuntu 21.10 + Panfrost Ubuntu 21.10 Impish Indiri is supposed to be released on October 14, 2021 together with Gnome 40, but Hardkernel released a development version as early as August, with Linux 5.14 and Panfrost GPU acceleration as you can see from the screenshot above. The Ubuntu 21.10 image for ODROID-N2+ and the earlier ODROID-N2 SBC cannot be found in the Wiki just yet, but should be there […]

Linux 5.14 Release – Main changes, Arm, MIPS, and RISC-V architectures

Linux 5.14 release

Linus Torvalds has just announced Linux 5.14 release which happens to almost coincide with the anniversary of the initial announcement of the “small” project on August 25, 1991, about 30 years ago. Here’s Linux 5.14’s announcement: So I realize you must all still be busy with all the galas and fancy balls and all the other 30th anniversary events, but at some point you must be getting tired of the constant glitz, the fireworks, and the champagne. That ball gown or tailcoat isn’t the most comfortable thing, either. The celebrations will go on for a few more weeks yet, but you all may just need a breather from them. And when that happens, I have just the thing for you – a new kernel release to test and enjoy. Because 5.14 is out there, just waiting for you to kick the tires and remind yourself what all the festivities are […]

Debian 11 “BullsEye” released with Panfrost & Lima GPU drivers, exFAT support, driverless printing

Debian 11

Debian 11 “BullsEye” has been released with Panfrost & Lima open-source drivers for Arm GPUs, in-kernel exFAT file system, driverless printing, and many more updates, plus a 5-year support window. Debian’s release is significant as the Linux operating system serves as the base for Ubuntu and derivatives, Raspberry Pi OS, and together with Ubuntu, is one of the operating systems supported by Armbian which offers images for a range of Arm-based single board computers. Arm Mali GPU support in Debian 11 I remember a few years ago 3D graphics acceleration on Arm boards was news, as it was quite a challenge to get it working due to binary blobs. But Debian 11 now comes with Mesa 20.3 framework which includes Panfrost and Lima open-source Mali GPU drivers by default, as well as the Vulkan 1.0 conformant V3DV driver for Raspberry Pi 4. As noted in the documentation that means the […]

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

Panfrost now supports OpenGL ES 3.1 on Midgard (Mali T760 and newer) and Bifrost (Mali G31, G52, G76) GPUs

Panfrost OpenGL ES 3.1

OpenGL ES 3.0 experimental support for Panfrost open-source Arm Mali GPU driver was announced in February 2020 and culminate with the release of Mesa 20.3 with Panfrost support last December. Collabora has now started to work on Panvk, Panfrost Vulkan driver, but that does not mean OpenGL ES work is done, and the company has just published a blog post about OpenGL ES 3.1 support in Panfrost. Alyssa Rosenzweig explains OpenGL ES 3.1 extends to both the older Midgard GPUs that include Mali T760 and newer version, and the more recent Bifrost GPUs with Mali-G31, Mali-G52 and Mali-G76. Compared to OpenGL ES 3.0, OpenGL ES 3.1 adds compute shaders, indirect draws, and no-attachment framebuffers. Boris Brezillon, Italo, Nicola, Alyssa, and the wider Mesa community especially focused on Mali-G52 GPU, found for instance in Amlogic A311D and Rockchip RK3566, with Panfrost driver passing essentially all of drawElements Quality Program and Khronos […]

PanVk – Panfrost gets a Vulkan driver

PanVk Panfrost Vulkan

We’ve followed with interest the progress of the Panfrost open-source driver for Arm Mali Midgard and Bifrost GPUs which has gotten more traction over time with official support from Arm and is getting closer to OpenGL ES 3.0 compliance with work on OpenGL ES 3.1 on the way. But Collabora has now started working on PanVk driver for the more recent Vulkan graphics API, as part of the Panfrost project. This is very early stage, but the 3D cube demo above appears to be rendered with Panfrost’s PanVk Vulkan driver on Wayland in a Khadas VIM3 board based on Amlogic A311D hexa-core Cortex-A73/A53 processor with a Mali-G52 GPU. As noted in the announcement, getting a useful Vulkan driver will take time as : The driver lacks almost all core features that would make it usable for real-world applications Optimizations are left on the side for now The code base is […]

VisionFive Linux RISC-V SBC