Git Product home page Git Product logo

panfork-mesa's Introduction

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

panfork-mesa's People

Contributors

brianpaul avatar marekolsak avatar anholt avatar gfxstrand avatar kaydenl avatar airlied avatar hakzsam avatar ianromanick avatar zmike avatar jrfonseca avatar freedreno-zz avatar evelikov avatar vinsonlee avatar mattst88 avatar olvaffe avatar tarceri avatar kusma avatar imirkin avatar itoral avatar nhaehnle avatar pendingchaos avatar bnieuwenhuizen avatar llandwerlin-intel avatar curro avatar 1ace avatar krh avatar cwabbott0 avatar linyaa-kiwi avatar bbrezillon avatar wallbraker avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.