Android上使用硬件加速运行OpenGL程序
Dionysen

Proot-distro(Debian)+termux-x11.

已弃坑,性能损失依然太大,且平板内存不够。

安装TermuxTermux-x11.

更新源:

如果想要手动更换 Termux APT 源的话,可以编辑 /data/data/com.termux/files/usr/etc/apt/sources.list 为如下内容

nano /data/data/com.termux/files/usr/etc/apt/sources.list
# 编辑为如下
deb https://mirrors.ustc.edu.cn/termux/apt/termux-main stable main

或者,你也可以使用 sed 命令进行文本替换:

sed -i 's@packages.termux.org@mirrors.ustc.edu.cn/termux@' $PREFIX/etc/apt/sources.list
pkg up

注:Termux 会自动将环境变量 $PREFIX 设定为 /data/data/com.termux/files/usr

pkg up

安装proot-distro

pkg in proot-distro
proot-distro install debian
proot-distro login debian
passwd root

nano /etc/apt/sources.list

# 默认注释了源码仓库,如有需要可自行取消注释
deb http://mirrors.ustc.edu.cn/debian bookworm main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian bookworm main contrib non-free non-free-firmware
deb http://mirrors.ustc.edu.cn/debian bookworm-updates main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian bookworm-updates main contrib non-free non-free-firmware

# backports 软件源,请按需启用
# deb http://mirrors.ustc.edu.cn/debian bookworm-backports main contrib non-free non-free-firmware
# deb-src http://mirrors.ustc.edu.cn/debian bookworm-backports main contrib non-free non-free-firmware

apt update && apt upgrade

# 添加用户等
apt install sudo
useradd -m -s /bin/bash username
passwd username
...

退出debian,安装包含Zink的virglrenderer。

pkg install tur-repo
pkg update -y && pkg upgrade -y
pkg install mesa-zink virglrenderer-mesa-zink vulkan-loader-android

使用

  1. 打开Termux,执行:
MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink ZINK_DESCRIPTORS=lazy virgl_test_server --use-egl-surfaceless --use-gles &
  1. 打开Termux-x11,回到Termux,执行
export DISPLAY=:0
termux-x11 :0 &
  1. 打开新session(可以在.termux/termux.properties中设置快捷键),以普通账户登录proot,加上共享tmp的参数:
proot-distro login debian --user user --shared-tmp
  1. 启动软件或桌面环境

软件:

export DISPLAY=:0
GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.0 glmark2
# 如果程序要求OpenGL版本为4.5
GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.5 glmark2

# 或
GALLIUM_DRIVER=llvmpipe MESA_GL_VERSION_OVERRIDE=4.5 glmark2

桌面环境xfce4:

export DISPLAY=:0
dbus-launch --exit-with-session startxfce4 &
显示评论