一年前在板上文章“3D硬件加速的Proot Linux”分享过用印度人修改的Zink驱动,在
Termux的Linux容器达成GPU硬件加速,用于执行3D程式。
不过编译实在麻烦,加上新版Clang导致编译出来的Zink驱动半残,因此不是很满意该方
案。
而最近几个月Reddit网友eNB256分享了新的Termux GPU硬件加速方法,
那就是使用virglrenderer算绘,实测效果跟Zink差不多。
虽然还是要编译,不过简化许多。
==============================
成效
有了vigl后,3D游戏效能改善很多。例如SuperTuxKart赛车游戏,FPS从5上升到20
https://i.imgur.com/Fphh1za.jpg
还有影片播放的增益。即使高通s865能播放4K60p影片,但Termux里以CPU算绘的llvmpipe
最多只能到1080p60。
有了virgl,Termux要播放4K60p影片也不是问题了(影片1:08处)。虽说如此还是很吃资源
,画面偶尔撕裂。
https://youtu.be/snBl1xZYhsA?t=68
最近开源Box86转译Wine的技术逐渐成熟,再由virgl提供GPU加速,Windows游戏《Air》
就开的起来了!也有人用这个技术在手机玩《Nekopara》。
https://i.imgur.com/6MNYGFZ.png
连《Undertale》也可以,需要外接键盘鼠标才好战斗。
https://i.imgur.com/ZPcBsv7.png
对于想用Termux Proot开发3D程式的人来说(应该没有人那么狂吧),这个GPU加速亦有好
处。只是Chromium认不到virgl,Firefox要强制启用WebGL才有效果。
https://i.imgur.com/R6LW8c0.jpg
==============================
安装方法
1. 安装Termux
2. 安装Termux X11
3. 安装Proot发行版(Debian或Ubuntu)
4. 编译virglrenderer
5. (可选)编译Box86和安装Wine
详细步骤:https://reurl.cc/GX0RYx
启动方法
1. 于Termux启动virgl服务器
2. 启动Termux X11
3. 登入Proot发行版
4. 启动桌面环境
5. 以终端机执行应用程式前,加上`GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.0`二个参数启用virgl。
例如`GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.0 minetest`