一年前在板上文章「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`
--
《當你試圖安裝不自由/不開源的軟體》
https://i.imgur.com/s1lVszB.jpg
--