DXVK是把DirectX繪圖指令轉譯成Vulkan的程式,可以提昇部份遊戲效能。
據說開發DXVK的這位老兄Philip Rebohle,當初是為了在Linux玩《尼爾:自動人形》就自行寫出了這支程式,造福廣大玩家!
為什麼Linux會需要這個呢?過去Wine將Windows exe轉譯成Linux的繪圖指令,靠的是WineD3D技術,用OpenGL去模擬DirectX繪圖指令,藉此在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,所有遊戲預設都是用Vulkan跑的,除非你在遊戲啟動選項加上PROTON_USE_WINED3D=1
它才會改回OpenGL。
如果你的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#
- 到 Github Releases下載最新版zip檔,解壓縮
cd ~/Downloads
wget https://github.com/doitsujin/dxvk/releases/download/v2.4.1/dxvk-2.4.1.tar.gz
tar -xvf dxvk-2.4.1.tar.gz
cd dxvk-2.4.1
- 接著將DLL檔複製到Wine的安裝目錄,預設應為
~/.wine
export WINEPREFIX=~/.wine
cp x64/*.dll $WINEPREFIX/drive_c/windows/system32
cp x32/*.dll $WINEPREFIX/drive_c/windows/syswow64
- 啟動winecfg
winecfg
- 到函式庫頁面,設定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 2.4.1目前支援轉譯DirectX 9、DirectX 10、DirectX 11的遊戲。如果需要更新版的DirectX轉譯方案請到Github找,例如Valve研發的 VKD3D,支援DirectX 12。