快轉到主要內容

WSL Docker的GPU硬體加速:virglrenderer

· 民國112年癸卯年
·
切換繁體/簡體
分類 資訊科技 虛擬機與容器技術
標籤 VirGL WSL Docker

註解:本文僅是一個概念驗證,WSL已經有自己更好的硬體加速做法(WSLg環境變數)

WSL支援硬體加速,登入WSL後啟動Linux圖形程式,可以用Windows的顯示卡渲染。

但是若在WSL裡面跑Docker容器是吃不到顯示卡加速的。OpenGL圖形效能低落。

這個時候可以採用virglrenderer的方法。

virglrenderer在真正的Linux系統上可以做到給QEMU/KVM虛擬機GPU加速的效果。例如Ubuntu跑Fedora虛擬機,在同一個畫面操作的時候,Fedora虛擬機的視窗可以吃到virglrenderer的硬體加速,讓畫面更流暢。

那麼我們只要在有硬體加速的WSL跑virgl server,容器裡的程式就吃得到硬體加速了。

  1. 登入WSL Ubuntu 22.04
wsl
  1. 安裝virglrenderer
sudo apt install libvirglrenderer-dev libvirglrenderer1 virgl-server
  1. 啟動virglrednerer伺服器
virgl_test_server --use-egl-surfaceless &
  1. 進入Docker容器shell。例如我這裡是用Distrobox安裝的Fedora
distrobox enter fedora
  1. 安裝virglrenderer、Firefox
sudo dnf install virglrenderer firefox
  1. 使用GALLIUM_DRIVER=virpie firefox啟動Firefox

  2. 並在about:config強制啟用WebGL,即可看見硬體加速成效。

不過GALIIUM_DRIVER=virpipe glxinfo無法讀取顯卡裝置。

參考資料

相關文章


感謝您的閱讀。我寫作是為了誠實表達想法,而不是追逐社群互動與流量。我很樂意傾聽你在仔細閱讀我文章之後的心得。若有內容勘誤 or 技術問題 or 回饋想法,歡迎透過本站「關於」頁面的Email與我聯絡。