快轉到主要內容

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無法讀取顯卡裝置。

參考資料

相關文章


此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。