docs(termux): GPU 结论落地——glibc 侧被驱动版本挡住
实测结论:
- glibc Vulkan loader + 自写 ICD 能加载
- Termux glibc Mesa 24.2.6 不认识 Adreno 840(chip 0x44050A31 unsupported)
- Arch vulkan-freedreno 26.2.6 能加载但 Linux/DRM 构建找不到设备(缺 KGSL,
/dev/dri 对 untrusted_app 被 SELinux 拒绝)
- GPU 变体会打印具名错误并自动降级 tiny-skia
README.termux 同步:GPU 标 ⛔、MC 走 glibc JVM 的结论与后续路线
This commit is contained in:
1 parent
7cbb354972
commit
aaba339499
2 files changed
+30
-12
No files matched your search
@@ -169,23 +169,37 @@ DISPLAY=:0 .gnu/target/release/unlucky-launcher-iced \
|
||||
- 已实测:`ull java install 17` 从 SAU 镜像装完 `openjdk-17`(含 `openjdk-17-x`),
|
||||
约 20 秒;`ull java list` 随后列出 `[system]` 的 17。
|
||||
|
||||
## 5. GPU(未在 glibc 侧验证)
|
||||
## 5. GPU(已排查,当前被驱动挡在 glibc 侧)
|
||||
|
||||
termux-x11 的 X 客户端**可以**走硬件:本机 bionic 栈实测
|
||||
`glxinfo -B` → `zink Vulkan 1.4 (Adreno 840 (MESA_TURNIP))`、`Accelerated: yes`,
|
||||
`vulkaninfo` 中 Adreno 设备带 `VK_KHR_xcb_surface` / `VK_KHR_xlib_surface`。
|
||||
|
||||
要用到 ULL 的 glibc 构建上,还需要 glibc 侧的 Vulkan 栈
|
||||
(`vulkan-icd-loader-glibc`、`mesa-vulkan-icd-freedreno-glibc`,可加 `swrast-glibc` 兜底),
|
||||
并用默认 feature(带 `gpu`)重编:
|
||||
glibc 侧已把链路搭好并实测到具体阻塞点:
|
||||
|
||||
1. **loader 正常**:`vulkan-icd-loader-glibc` + 自写 ICD JSON 能加载 ICD。
|
||||
2. **Termux 的 glibc Mesa 太旧**:`mesa-vulkan-icd-freedreno-glibc` 是 24.2.6(2024),
|
||||
`vulkaninfo` 报 `chip_id = 44050A31, gpu_id = 6860 is unsupported`
|
||||
(Adreno 840 不在该版本的支持表里)。
|
||||
3. **Arch 的新驱动也走不通**:`vulkan-freedreno 26.2.6`(Arch Linux ARM)能加载、
|
||||
但它是 Linux/DRM 构建,找不到设备——Android 的 GPU 走 KGSL,而
|
||||
`/dev/dri` 对 `untrusted_app` 被 SELinux 拒绝(`ls /dev/dri` → Permission denied,
|
||||
设备节点本身是 `crw-rw-rw-`)。
|
||||
|
||||
结论:glibc 侧要用硬件 GPU,需要一个 **Mesa 26+ 的 glibc 构建且带 Android/KGSL 后端**;
|
||||
现有包都缺一半。在那之前用 CPU(tiny-skia)。
|
||||
|
||||
GPU 变体仍可构建并验证降级链:
|
||||
|
||||
```sh
|
||||
cargo ... build --release -p unlucky-app-iced # 不加 --no-default-features
|
||||
cargo ... build --release -p unlucky-app-iced # 默认 feature,带 wgpu
|
||||
VK_ICD_FILENAMES="$PREFIX/glibc/share/vulkan/icd.d/freedreno_icd.aarch64.json" \
|
||||
VK_DRIVER_FILES="$VK_ICD_FILENAMES" \
|
||||
DISPLAY=:0 .gnu/target/release/unlucky-launcher-iced --renderer=gpu
|
||||
```
|
||||
|
||||
这一步尚未在本仓库验证;没配好时用 `--software-renderer` 回退即可。
|
||||
没有可用驱动时它会打印具名错误并**自动降级**到 tiny-skia(同一进程不能重建事件循环,
|
||||
降级走 respawn),所以 GPU 变体在只有 CPU 的环境里也能跑。
|
||||
|
||||
## 6. 已知边界
|
||||
|
||||
|
||||
Reference in new issue
Block a user