Skip to content

MastaG/mesa-turnip-ppa

Repository files navigation

Schermafdruk_2024-07-02_09-42-26

This repository takes care of two things:

  • Re-building oibaf's graphics-drivers ppa (nightly mesa from git) with extra patches applied.

    The patches are meant for running Ubuntu 24.04 and 24.10 within a proot environment using Termux on your Android device.

    This should allow for accelated Vulkan and OpenGL (using Zink).

    It will push the patched mesa version to my pesonal ppa: https://launchpad.net/~mastag/+archive/ubuntu/mesa-turnip-kgsl

    Quick steps to get this working, assuming you already have Ubuntu 24.04 with xfce4 setup inside your proot env:

    1. Use this sample script to enter your proot distribution:
      #!/bin/sh
      
      export XDG_RUNTIME_DIR=${TMPDIR}
      
      # Kill open X11 processes
      kill -9 $(pgrep -f "termux.x11") 2>/dev/null
      
      # Enable PulseAudio over Network
      pulseaudio --verbose --start --exit-idle-time=-1 --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1"
      
      # Prepare termux-x11 session
      termux-x11 :0 -ac -extension MIT-SHM &
      
      # Wait a bit until termux-x11 gets started.
      sleep 2
      
      # Login in PRoot Environment.
      proot-distro login ubuntu --shared-tmp --user username
      
    2. Once logged into your proot distribution, add the ppa and install the updated drivers:
      sudo apt update
      sudo apt install software-properties-common
      sudo add-apt-repository ppa:mastag/mesa-turnip-kgsl
      sudo apt update
      sudo apt dist-upgrade
      
    3. Add the following variables to /etc/environment:
      MESA_LOADER_DRIVER_OVERRIDE=zink
      VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/freedreno_icd.aarch64.json:/usr/share/vulkan/icd.d/freedreno_icd.armv7l.json
      TU_DEBUG=noconform
      
    4. Use this script to start xfce4:
      sudo /etc/init.d/dbus start
      export DISPLAY=:0
      taskset -c 4-7 startxfce4
      
    5. Edit your ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml file and change: vblank_mode from auto to off.
  • Building nightly turnip driver releases for use with Android emulators such as Yuzu, Strato, Flycast etc. (big shoutout to @Weab-chan for doing all the work for me). It basicallly builds a vanilla and patched release.

You can find the patches in the: turnip-patches directory. However I also occasionally apply open merge requests, see the following arrays for more information: For the mesa ppa:

For the turnip nightly releases:

Feel free to contribute by opening a PR :)