快轉到主要內容

DXVK Linux版安裝方法,改善Wine轉譯Windows遊戲的3D效能

分類   Linux系統 Linux玩遊戲
標籤   Vulkan Wine Steam
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

DXVK是把DirectX繪圖指令轉譯成Vulkan的程式,可以提昇部份遊戲效能。

據說開發DXVK的這位老兄Philip Rebohle,當初是為了在Linux玩尼爾就自行寫出了這支程式,造福廣大玩家!

為什麼Linux會需要這個呢?過去Wine將Windows exe轉譯成Linux的繪圖指令,靠的是WineD3D技術,用OpenGL去模擬Direct X繪圖指令,藉此在Linux跑Windows遊戲。

現在有新型繪圖技術Vulkan,效能勝過OpenGL,但Wine 9.0內建的Vulkan轉譯功能不夠完整,所以要靠第三方的DXVK達到目的。

根據LinuxReviews用UNIGINE Superposition所作的測試,開DXVK後真的有差!FPS大幅提昇!

此外,DXVK還可以使用DXVK HUD檢測遊戲的GPU資訊並顯示FPS。


比較詭異的用法:DXVK沒有限定只能在Linux Wine使用,它也可以在Windows執行,達成在Windows 7老系統玩新遊戲的操作。

1. 前置依賴項目
#

請先 安裝Wine

Steam Proton已內建DXVK,故遊玩Steam上的遊戲不需要裝DXVK。

如果你的Wine是用Flatpak安裝的就不需要安裝DXVK了。同理,Flatpak版Steam、Lutirs、Bottles皆已內建DXVK。

2. 在Linux系統安裝Vulkan驅動
#

以Ubuntu為例,Intel/AMD顯示卡安裝以下套件:

sudo apt install libvulkan1 libvulkan-dev vulkan-utils

Nvidia需要先安裝 閉源驅動,再安裝以上的Vulkan套件。

之後,用以下指令確認系統的Vulkan支援狀況:

vulkaninfo

3. 安裝DXVK
#

  1. Github Releases下載最新版zip檔,解壓縮
cd ~/Downloads

tar -xvf dxvk-2.3.1.tar.gz

cd dxvk-2.3.1
  1. 接著將DLL檔複製到Wine的安裝目錄,預設應為~/.wine
export WINEPREFIX=~/.wine

cp x64/*.dll $WINEPREFIX/drive_c/windows/system32

cp x32/*.dll $WINEPREFIX/drive_c/windows/syswow64
  1. 啟動winecfg
winecfg
  1. 到函式庫頁面,設定DLL覆寫,將d3d11、d3d10core、dxgi、d3d9調整為「內建先於原生」。

4. 如何確認DXVK安裝成功
#

DXVK_HUD用於檢測GPU和FPS。

使用環境變數DXVK_HUD執行Wine,再執行Windows 3D應用程式

DXVK_HUD=1 wine game.exe

看看遊戲左上角DXVK HUD有無跑出來,就知道DXVK是否有啟用了。

順帶一提,DXVK_HUD=1這個環境變數也可以用在Steam遊戲的啟動選項,不過我們已經有功能更強的 MangoHud了。

還請注意不是所有遊戲用DXVK都能提昇效能,有的可能會崩潰。

DXVK目前支援轉譯DirectX 9、DirectX 10、DirectX 11的遊戲。如果需要更新版的DirectX轉譯方案請到Github找,例如Valve研發的 VKD3D,支援DirectX 12。

參考資料
#

相關文章

ProtonUp-QT和Protontricks用法,調整Steam Proton環境的小工具
分類   Linux系統 Linux玩遊戲
標籤   Steam Steam Deck Bottles for Linux Lutris Wine
Lutris使用教學,安裝與管理Linux的遊戲收藏
分類   Linux系統 Linux玩遊戲
標籤   Lutris Wine Steam Steam Deck RetroArch
精選數十款Linux玩遊戲的輔助程式,適用Windows與原生Linux遊戲
分類   Linux系統 Linux玩遊戲
標籤   Wine Steam Linux

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

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