PojavLauncherTeam / panfork_offscreen_rootless

A version of Panfork meant to be integrated into Pojav. Works on the kbase driver, and can be used through OSMesa.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 Xwayland1
  3. Blob X11 clients via Xwayland + dri2to32

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 + dri2to33

Blob Wayland compositor:

  1. Panfrost Wayland clients
  2. Blob Wayland clients

Panfrost Xorg server:4

  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.

$ 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

  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. See https://gitlab.com/panfork/dri2to3

  3. See https://gitlab.com/panfork/dri2to3

  4. 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:

About

A version of Panfork meant to be integrated into Pojav. Works on the kbase driver, and can be used through OSMesa.


Languages

Language:C 75.6%Language:C++ 18.8%Language:Python 2.4%Language:Assembly 1.4%Language:Meson 0.6%Language:Rust 0.4%Language:Yacc 0.3%Language:Shell 0.2%Language:GLSL 0.1%Language:Lex 0.1%Language:LLVM 0.0%Language:Lua 0.0%Language:PowerShell 0.0%Language:Makefile 0.0%Language:Objective-C 0.0%Language:XSLT 0.0%Language:Jinja 0.0%Language:Emacs Lisp 0.0%Language:CMake 0.0%