We're hiring!
*

PanVk: An Open Source Vulkan driver for Arm Mali Midgard and Bifrost GPUs

Boris Brezillon avatar

Boris Brezillon
March 25, 2021

Share this post:

Reading time:

The Panfrost project started as a reverse engineering effort to understand Arm Mali Midgard and Bifrost GPU internals. It quickly evolved to focus on the development of a Gallium driver based on this reverse engineering effort, which was progressively extended to support new GLES and GL features (we recently reached a point where we are almost GLES 3.0 comformant, and GLES 3.1 is in the pipe). Last year, a new compiler backend was added to support Mali Bifrost GPUs.

With the Panfrost driver getting more and more mature, the natural next step was to work on an Open Source Vulkan driver for those GPUs.


So here is a preview of this driver with enough functions implemented to have vkcube running. Before you get too excited, it is important to clarify a few things. It really is the early stage of the development, which means:

  1. the driver lacks almost all core features that would make it usable for real world applications
  2. optimizations are left on the side for now
  3. the code base is likely to evolve quickly as features/optimizations are added

As a side effect, we don't intend to merge the driver in mesa master branch until we have reached a point where enough features are supported and the code base is clean enough.

If you are interested in helping us, please don't hesitate to reach out on IRC (#panfrost channel hosted on freenode.irc.net). There are plenty of functionalities that are left unimplemented, waiting for someone to pick them up.

I would like to thank Alyssa Rosenzweig for patiently going through various aspects of Mali GPUs during the last 2 years. I would also like to thank Erik Faye-Lund and Faith Ekstrand for taking time explaining some details about the Vulkan API.

 

Comments (1)

  1. porkspice:
    Feb 11, 2022 at 12:04 AM

    When things have progressed far enough, this might be a good 'real world' vulkan application to test with! (builds fine on my aarch64 mali g52 box). OpenGothic (gothic 1 and 2).

    https://github.com/Try/OpenGothic

    Reply to this comment

    Reply to this comment


Add a Comment






Allowed tags: <b><i><br>Add a new comment:


 

Search the newsroom

Latest News & Events

Testing in the Cloud: Enabling Fedora's openQA for flexible cloud deployment

24/07/2024

OpenQA is a tool for functional, end-to-end testing of operating system distributions. Earlier this year, Collabora undertook a project,…

Kernel 6.10: Keep the updates coming

18/07/2024

The latest kernel 6.10 release brings multiple core changes and updates to BH workqueues. Let's examine the developments implemented by…

Taming the Panthor: OpenGL ES 3.1 conformance achieved on Mali-G610

15/07/2024

The Panthor kernel driver and Mesa Panfrost driver combination has achieved official conformance for OpenGL ES 3.1 on the Mali-G610 chip,…

Open Since 2005 logo

Our website only uses a strictly necessary session cookie provided by our CMS system. To find out more please follow this link.

Collabora Limited © 2005-2024. All rights reserved. Privacy Notice. Sitemap.