Skip to content
This repository has been archived by the owner on Nov 10, 2024. It is now read-only.
/ mesa-panfork Public archive

Mirror of the Mesa Panfork repo

Notifications You must be signed in to change notification settings

ROCKNIX/mesa-panfork

Repository files navigation

Mesa - The 3D Graphics Library

Valhall v10 "CSF" support branch—for Mali G710/G610.

Note that firmware is required for these GPUs, for RK3588 try downloading the file from the Rockchip libmali repo, and placing it in /lib/firmware/.

Windowing system support

Panfrost Wayland compositor (wlroots):

  1. Panfrost Wayland clients
  2. Panfrost X11 clients via Xwayland [1]
  3. Blob X11 clients via Xwayland + dri2to3 [2]

Panfrost Wayland compositor (non-wlroots):

  1. Panfrost Wayland clients
  2. Panfrost X11 clients via Xwayland
  3. Blob Wayland clients
  4. Blob X11 clients via Xwayland + dri2to3 [2]

Blob Wayland compositor:

  1. Panfrost Wayland clients
  2. Blob Wayland clients

Panfrost Xorg server: [3]

  1. Panfrost X11 clients
  2. Blob X11 clients

Blob Xorg server:

  1. Panfrost X11 clients
  2. Blob X11 clients

Applications using KMS/DRM will also work.

[1]Requires CONFIG_DRM_IGNORE_IOTCL_PERMIT to be disabled in the kernel configuration. The option is broken and should never be enabled anyway.
[2](1, 2) See https://gitlab.com/panfork/dri2to3
[3]For Radxa Debian/Ubuntu, the xserver-xorg-core version installed by default is not compatible with Panfrost. But note that upstream Xorg does not work will the blob, so Mesa must be installed so that it is used by default. (see the "Usage" section below). To switch between the upstream and Rockchip versions, run:
$ sudo apt install xserver-xorg-core="$(apt-cache show xserver-xorg-core | grep Version | grep -v "$(dpkg -s xserver-xorg-core | grep Version)" | cut -d" " -f2)"

Broken combinations:

  1. Panfrost wlroots + Blob Wayland does not work because wlroots does not expose the mali_buffer_sharing protocol. This might be fixable.
  2. Blob Wayland compositor + Panfrost X11 does not work because the blob does not expose the required protocols for Xwayland acceleration to work

Source

This repository lives at https://gitlab.com/panfork/mesa, and is a fork, so not supported by upstream.

Upstream source is at https://gitlab.freedesktop.org/mesa/mesa.

Depdendencies

For Debian-based distributions:

$ sudo apt install build-essential meson git python3-mako libexpat1-dev bison flex libwayland-egl-backend-dev libxext-dev libxfixes-dev libxcb-glx0-dev libxcb-shm0-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-present-dev libxshmfence-dev libxxf86vm-dev libxrandr-dev

Also needed is libdrm and wayland-protocols, but those packages are too old in Debian Bullseye, and must be compiled from source:

$ git clone https://gitlab.freedesktop.org/mesa/drm
$ mkdir drm/build
$ cd drm/build
$ meson
$ sudo ninja install
$ git clone https://gitlab.freedesktop.org/wayland/wayland-protocols
$ mkdir wayland-protocols/build
$ cd wayland-protocols/build
$ git checkout 1.24
$ meson
$ sudo ninja install

Build & install

To install to /opt/panfrost:

$ mkdir build
$ cd build
$ meson -Dgallium-drivers=panfrost -Dvulkan-drivers= -Dllvm=disabled --prefix=/opt/panfrost
$ sudo ninja install

Usage

To run an application with Panfrost (note the windowing system support section above):

$ LD_LIBRARY_PATH=/opt/panfrost/lib/aarch64-linux-gnu glmark2-es2-wayland

To use Panfrost by default, add the directory where you installed it to the library search path:

$ echo /opt/panfrost/lib/aarch64-linux-gnu | sudo tee /etc/ld.so.conf.d/0-panfrost.conf
$ sudo ldconfig

About

Mirror of the Mesa Panfork repo

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages