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

Vivante NPU (found in Amlogic A311D) gets its open-source driver upstreamed to Mesa

Vivante NPU open source

The Teflon project is an open-source TensorFlow Lite delegate that currently supports VeriSilicon Vivante NPU and aims to support several other AI accelerators over time. The project has recently been upstreamed to Mesa meaning AI inference with open-source software will work out of the box in supported hardware once Mesa 24.1 is released in May 2024. Teflon relies on the Etnaviv open-source driver better known for working with Vivante GPUs found, for instance, in NXP i.MX processors, but Tomeu Vizoso also worked on implementing Vivante NPU support since May 2022 thanks to a sponsorship from Libre Computer and documented the development progress on this blog. The VeriSilicon Vivante “VIPNano-QI.7120” 5 TOPS NPU is found in the Amlogic A311D processor, and Tomeu tested Teflon with the Etnaviv NPU drive on both the Libre Computer AML-A311D-CC Alta and Khadas VIM3 single board computers with decent performance although still slower than with the […]

Mesa 20.3 released with Raspberry Pi 4 V3DV driver, Panfrost Bifrost support

Mesa 20.3 Raspberry Pi 4 Mali Bifrost

We’ve previously reported that the Vulkan 1.0 conformant V3DV driver for Raspberry Pi 4 and other Broadcom BCM2711 based platforms was part of Mesa 20.3 open-source graphics framework. But at the time, it was still under development. The good news is that Mesa 20.3 has now been released, and there’s much more than Raspberry Pi 4 support, as Collabora informed us the release also included Arm Mali Bifrost GPU support via the open-source Panfrost driver. The latter was made possible thanks to the work by Alyssa Rosenzweig and Boris Brezillon, with Alyssa going into details in a recent blog post on Collabora. More work is still needed with better performance and OpenGL 3.1 being the focus in the months ahead. But there were also many other changes in Mesa 20.3 as reported by Phoronix: OpenGL 4.6 and Vulkan 1.2 APIs support Initial support for Intel Gen12 Alder Lake graphics and […]

Raspberry Pi 4 V3DV graphics driver achieves Vulkan 1.0 conformance

Sascha Willems’ Vulkan radial blur demo

Just a couple of weeks ago, we reported on the status of Raspberry Pi 4 Vulkan driver & future plans based on a presentation made by Igalia at the Open Source Summit 2020 at the end of October. At the time, the V3DV Vulkan Mesa driver for Raspberry Pi 4 was merged into Mesa, passed over 100,000 tests in the Kronos Conformance Test Suite (CTS), and was said to implement the full Vulkan 1.0 API. So it should come as no surprise that Khronos has now declared the Raspberry Pi drivers to be conformant with Vulkan 1.0 specifications. This was tested in Raspberry Pi OS with Linux 5.4.51 using X11 display server at 1920×1080 resolution on Raspberry Pi 4. Vulkan 1.0 conformance means the V3DV Mesa driver has passed all tests from Khronos CTS and should be compatible with most applications using this version of the API. The drivers will […]

Collabora & Microsoft to Bring OpenCL 1.2 and OpenGL 3.3 to DirectX 12 enabled Windows Devices

OpenCL DirectX Translation Layer

Collabora has been working on open-source graphics projects for a while, including Panfrost open-source drivers for Arm Midgard and Bitfrost GPUs which got experimental OpenGL ES 3.0 support earlier this year. But the company has also been working with Microsoft in order to provide an OpenCL 1.2 & OpenGL 3.3 translation layer for Windows devices compatible with DirectX 12. Their solution relies on Mesa 3D OpenCL and OpenGL open-source implementation with three main components: an OpenCL compiler using LLVM and the SPIRV-LLVM-Translator to generate SPIR-V representations of OpenCL kernels. The data goes through an SPIR-V to NIR translator (NIR is Mesa’s internal representation for GPU shaders), and finally to NIR-to-DXIL generating a DXIL compute shader and metadata understood by DirectX 12 (D3D12) a custom OpenCL runtime to do a direct translation of DirectX 12 (Not based on Mesa Clover implementation) a Gallium driver that builds and executes command-buffers on the […]

Panfrost Open-Source Arm Mali GPU Driver Gets Experimental OpenGL ES 3.0 Support

Panfrost OpenGL ES 3.0

Panfrost is the open-source driver being developed for Arm Midgard and Bitfrost GPUs. The first versions focused on support for OpenGL ES 2.0, but the more recent OpenGL ES 3.0 enables faster and more realistic rendering. The goods news is that Panfrost support for experimental OpenGL ES 3.0 has landed in Mesa according to a recent post on Collabora blog. Specifically, Panfrost now supports instanced rendering, primitive restart, uniform buffer objects, 3D textures, and multiple render targets (on Mali T760 and up) all of which are OpenGL ES 3.0 features. People who are not into graphics development may not know about the purpose of those features, but Alyssa Rosenzweig, a free software graphics hacker leading Panfrost, explains: … instanced rendering and primitive restart allow developers to write faster graphics applications, to render efficiently scenes more complex than possible in ES 2.0. … uniform buffer objects and 3D texture give developers […]

Status of Embedded GPU Ecosystem – Linux/Mesa Upstream Support (ELC 2018 Video)

The Embedded Linux Confernce is on-going, and the Linux Foundation has been uploading videos about talks in a timely manner on YouTube. I checked out at RISC-V keynote yesterday, but today I’ve watched a talk by Robert Foss (his real name, not related to FOSS) from Collabora entitled “Progress in the Embedded GPU Ecosystem”, where he discusses open source software support in Linux/Mesa from companies and reverse-engineering support. The first part deals with the history of embedded GPU support, especially when it comes to company support. Intel was the first and offers very good support for their drivers, following by AMD who also is a good citizen. NVIDIA has the Nouveau driver but they did not really backed it up, and Tegra support is apparently sponsored by an aircraft supplier. Other companies have been slower to help, but Qualcomm has made progress since 2015 and now support all their hardware, […]

Work on VideoCore V GPU Drivers Could Pave the Way for Raspberry Pi 4 Board

I’ve come across an article on Phoronix this morning, about VideoCore IV GPU used in Broadcom BCM283x “Raspberry Pi” processors, but part of the post also mentioned work related to VC5 drivers for the next generation VideoCore V GPU, written by Eric Anholt, working for Broadcom, and in charge of the open source code related to VideoCore IV GPU for Raspberry Pi. This led me Eric’s blog “This Week in VC4/VC5” and articles such as “2017-07-10: vc5, raspbian performance“, where he explains he committed Mesa drivers for VC5. I’ve just pushed a “vc5” branch to my Mesa tree (https://github.com/anholt/mesa/commits/vc5). This is the culmination of a couple of months of work on building a new driver for Broadcom’s V3D 3.3. V3D 3.3 is a GLES3.1 part, though I’m nowhere near conformance yet. This driver is for BCM7268, a set-top-box SOC that boots an upstream Linux kernel. I’m really excited to be […]

Exit mobile version
Memfault IoT and embedded debugging platform