Skip to content

基于你的成功案例,以下是 Termux:X11 硬件加速渲染的完整配置指南

一、安装必要组件

bash
# 安装 Termux:X11 应用(从 GitHub 或 F-Droid 下载 APK)
# 安装 Termux 内的包
pkg update && pkg upgrade
pkg install x11-repo
pkg install termux-x11-nightly mesa-vulkan-icd-freedreno vulkan-tools

二、启动配置

方法1:手动启动(每次使用)

bash
# 终端1:启动 X11 服务
termux-x11 :0 &

# 终端2:设置环境变量并启动应用
export DISPLAY=:0
export GRALLOC_ENABLE_DRM=1
export MESA_LOADER_DRIVER_OVERRIDE=zink  # 可选,通常自动

# 运行图形应用
vkcube  # 测试 Vulkan
glxgears  # 测试 OpenGL

方法2:脚本自动化(推荐)

创建 ~/start-x11.sh

bash
#!/bin/bash
# 杀死已有实例
pkill termux-x11 2>/dev/null

# 启动 X11 服务
termux-x11 :0 &

# 等待服务就绪
sleep 2

# 设置环境变量
export DISPLAY=:0
export GRALLOC_ENABLE_DRM=1
export PULSE_RUNTIME_PATH=/data/data/com.termux/files/usr/tmp/pulse

# 启动桌面环境或应用(示例:启动 XFCE)
# startxfce4 &

赋予执行权限:chmod +x ~/start-x11.sh

三、验证硬件加速

bash
# 测试 Vulkan(应显示你的 GPU 型号)
vkcube

# 查看 OpenGL 渲染器(应显示 zink + Turnip)
glxinfo | grep "OpenGL renderer"

# 预期输出:zink Vulkan 1.3(Turnip Adreno XXX)

四、常见问题解决

问题解决方案
DRI3 error 警告忽略,不影响实际性能
黑屏/闪退关闭 Android 开发者选项中的"HW Overlays"
性能低下确认 mesa-vulkan-icd-swrast 已卸载
无法连接 X11检查 echo $DISPLAY 是否为 :0

五、性能优化建议

bash
# 可选优化(测试是否提升性能)
export TU_DEBUG=noconform  # 部分游戏需要
export MESA_GL_VERSION_OVERRIDE=4.6  # 强制 OpenGL 版本

# 降低分辨率以减少 GPU 负载(在 termux-x11 启动后)
wmctrl -r :ACTIVE: -e 0,0,0,1280,720

六、核心要点

  1. 硬件加速依赖mesa-vulkan-icd-freedreno(高通 GPU)
  2. 关键环境变量DISPLAY=:0GRALLOC_ENABLE_DRM=1
  3. 驱动路径:OpenGL → zink → Vulkan → Turnip → 硬件
  4. 无需 root:所有操作在用户空间完成

此配置已在 Adreno 650(骁龙865)上验证成功,其他支持 Vulkan 的高通设备应同样适用。