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 likely to evolve quickly as features/optimizations are added That also […]

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 AMD Dimgrey Cavefish and VanGogh graphics Lavapipe Vulkan CPU-based implementation […]

Arm Officially Supports Panfrost Open-Source Mali GPU Driver Development

Arm Supports Panfrost

Most GPU drivers found in Arm processors are known to be closed-source making it difficult and time-consuming to fix some of the bugs since everybody needs to rely on the silicon vendor to fix those for them, and they may even decide a particular bug is not important to them, so you’d be out of luck. So the developer community has long tried to reverse-engineer GPU drivers with projects like Freedreno (Qualcomm Adreno), Etnaviv (Vivante), as well as Lima and Panfrost for Arm Mali GPUs. Several years ago, Arm management was not interested at all collaborating with open-source GPU driver development for Mali GPUs, but as noted by Phoronix, Alyssa Rosenzweig,  a graphics software engineer employed by Collabora, explained Panfrost development was now done in partnership with Arm during a talk at the annual X.Org Developers’ Conference (XDC 2020). A recent merge commit confirms the move with Daniel Stone, Graphics Leads at Collabora commenting To reiterate the answer from earlier […]

Perfetto Profiler Now Supports Mali GPU Hardware Counters via Panfrost

Perfetto Mali GPU Profiling

Perfetto is an open-source system profiler, app tracer, and trace analyzer for Linux, Android & Chrome platforms, and user-space apps. The program can already visualize CPU and memory usage, as well as power consumption.  GPU support is more limited with the program only capable of sampling the GPU frequency when the driver outputs that information via ftrace. When Perfetto is also extendable thanks to a Tracing C++ SDK that “allows userspace applications to emit trace events and add more app-specific context to a Perfetto trace”. Collabora made use of the tracing SDK to add support for Mali Midgard GPU performance profiling in gfx-pps project using the Mali GPU hardware counters exposed via Panfrost open-source Mali GPU driver. After following the installation instructions, you’ll be able to run the following executables for tracing and profiling: tracedtracing service. traced_probes OS probes service. perfetto command-line tool for recording traces. producer-gpuproviding the Panfrost data source. There’s also gpu.cfgconfig file to feed as input to […]

Panfrost Gets First 3D Renders on Bifrost GPU (Mali-G31) including Basic Texture Support

Collabora has been working on Panfrost open-source Arm Mali GPU driver for over a year. The drive aims to support both Midgard and Bifrost families. But so far, the company had mostly focused on Midgard (Mali-T6xx/T7xx) GPUs with for example experimental OpenGL ES 3.0 support announced last February. Collabora engineers, such as Alyssa Rosenzweig, have now started to work on Bifrost support, and some good progress has been made since they managed to have Panfrost render the first 3D graphics with basic texture support using a platform with an Arm Mali-G31 GPU. Alyssa notes that while Midgard and Bifrost have a similar command stream requiring a few changes, the Bifrost instruction set is completely different and required building a new compiler from scratch. This leads to changes to the Intermediate Representation (IR), 16-bit data support, a different register allocation mechanism due to adapt to irregular vector architectures, and the latter also made packing (final code generation) much more complicated than […]

Rock Pi 4 SBC Runs GNOME & KDE Plasma using Panfrost Open Source GPU Driver & Wayland

RK3399 Panfrost GNOME

One of the highlights of Linux 5.2 release was support for two new Arm Mali GPU open-source drivers, namely Lima for Mali-4xx GPU, and Panfrost for the Midgard Mali-T6xx/7xx/8xx series, and the more recent Bifrost Mali-Gxx GPUs. Collabora worked on the release and was donated a few Rock Pi 4 boards from Radxa directly to work on the project. For those who are not familiar, Rock Pi 4 board is powered by a Rockchip RK3399 processor with a Mali-T860MP4 GPU that is supported by Panfrost open source GPU driver. The company managed to have Debian 10 Buster running on Rock Pi 4 using 3D graphics acceleration thanks to Panfrost drivers on both GNOME and KDE Plasma desktop environment, as well as Weston Wayland compositer. The good news is that you can build Rock Pi 4 images by yourself using Debos with the following commands:

Alternatively, you could directly download pre-built images directly with Weston and Panfrost. You can login […]

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

Linux 5.2 Changelog

Linus Torvalds announced the release of Linux 5.2 last Sunday: So I was somewhat pre-disposed towards making an rc8, simply because of my travels and being entirely off the internet for a few days last week, and with spotty internet for a few days before that [*]. But there really doesn’t seem to be any reason for another rc, since it’s been very quiet. Yes, I had a few pull requests since rc7, but they were all small, and I had many more that are for the upcoming merge window. Part of it may be due to the July 4th week, of course, but whatever – I’ll take the quiet week as a good sign. So despite a fairly late core revert, I don’t see any real reason for another week of rc, and so we have a v5.2 with the normal release timing. There’s no particular area that stands out there – the changes are sosmall that the appended […]