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

Linux 5.18 release – Main changes, Arm, RISC-V, and MIPS architectures

Linux 5.18 release arm risc-v mips

Linux 5.18 is out! Linus Torvalds has just announced the release on lkml: No unexpected nasty surprises this last week, so here we go with the 5.18 release right on schedule. That obviously means that the merge window for 5.19 will open tomorrow, and I already have a few pull requests pending. Thank you everybody. I’d still like people to run boring old plain 5.18 just to check, before we start with the excitement of all the new features for the merge window. The full shortlog for the last week is below, and nothing really odd stands out. The diffstat looks a bit funny – unusually we have parsic architecture patches being a big part of it due to some last-minute cache flushing fixes, but that is probably more indicative of everything else being pretty small. So outside of the parisc fixes, there’s random driver updates (mellanox mlx5 stands out, […]

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

Linux 5.16 Release – Main Changes, Arm, RISC-V and MIPS architectures

Linux 5.16 release

Linus Torvalds has just announced the release of Linux 5.16: Not a lot here since -rc8, which is not unexpected. We had that extra week due to the holidays, and it’s not like we had lots of last-minute things that needed to be sorted out. So this mainly contains some driver fixes (mainly networking and rdma), a cgroup credential use fix, a few core networking fixes, a couple of last-minute reverts, and some other random noise. The appended shortlog is so small that you might as well scroll through it. This obviously means that the merge window for 5.17 opens tomorrow, and I’m happy to say I already have several pending early pull requests. I wish I had even more, because this merge window is going to be somewhat painful due to unfortunate travel for family reasons. So I’ll be doing most of it on the road on a laptop […]

Rock Pi X Review – An Atom x5 SBC running Windows 10 or Ubuntu 20.04

Rock Pi X Review

The ROCK Pi X is the first x86 SBC (single board computer) from Radxa and resulted from repeated enquiries about running Windows on their earlier ROCK Pi 4. The ROCK Pi X comes in two models (Model A and Model B) with each model having either 1GB, 2GB, or 4GB of RAM and either 16GB, 32GB, 64GB, or 128GB of eMMC storage. Additionally, the Model B includes WiFi and Bluetooth together with supporting Power over Ethernet (PoE) although this requires an additional HAT. Both Seeed Studio and Radxa provided samples and in this review, I’ll cover some performance metrics from both Windows and Ubuntu and also discuss the thermals. Rock Pi X Hardware Overview The ROCK Pi X is similar in size to a Raspberry Pi board… but with slightly different ports and port locations even when compared to the Raspberry Pi 4. It is physically slightly larger than its […]

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

Raspberry Pi 4 is Now OpenGL ES 3.1 Conformant, Work on Vulkan Drivers Started

Raspberry Pi 4 Vulkan

Raspberry Pi 4 Model B 4 was launched last June with a new Broadcom BCM2711 SoC featuring an upgraded Videocore VI GPU supporting OpenGL ES 3.0 graphics API. Some drivers only implement a subset of OpenGL 3.0/3.1 3D graphics standard defined by the Khronos Group, and the good news is that Raspberry Pi 4 Model B is now OpenGL ES 3.1 conformant, as it passed all tests in Khronos conformance test suite. That means that any Linux programmed using OpenGL ES 3.1 API should work out of the box, although in some cases there may be issues/bugs that were not detected by the test suite. The Vulkan API is an evolution of OpenGL ES API that is meant to be more power-efficient as it better makes utilize of multi-core processors. The Raspberry Pi Foundation has also started working on Vulkan support for Raspberry Pi 4, and while the driver is […]

Linux 5.3 Release – Main Changes, Arm, MIPS & RISC-V Architectures

Linux 5.3 Changelog

Linus Torvalds has just announced the release of Linux 5.3: So we’ve had a fairly quiet last week, but I think it was good that we ended up having that extra week and the final rc8. Even if the reason for that extra week was my travel schedule rather than any pending issues, we ended up having a few good fixes come in, including some for some bad btrfs behavior. Yeah, there’s some unnecessary noise in there too (like the speling fixes), but we also had several last-minute reverts for things that caused issues. One _particularly_ last-minute revert is the top-most commit (ignoring the version change itself) done just before the release, and while it’s very annoying, it’s perhaps also instructive. What’s instructive about it is that I reverted a commit that wasn’t actually buggy. In fact, it was doing exactly what it set out to do, and did it […]