Instalacja D9VK w Protonie [Aktualizacja]

Aktualizacja 11.08.2019

D9VK jest teraz zintegrowany z Protonem i nie trzeba niczego instalować. Wystarczy w opcjach uruchamiania gry wpisać:

PROTON_USE_D9VK=1 %command%

Jeśli gra nie startuje warto sprawdzić czy są zainstalowane 32-bitowe biblioteki:  libxcb-randr0:i386 mesa-vulkan-drivers:i386

Pierwotny post:

D9VK jest dla Direct3D9 tym samym czym dla Direct3D11 jest DXVK. Tłumaczy wywołania Direct3D do api Vulkan. Niestety D9VK nie jest jeszcze częścią Valve Proton i chcąc z niego skorzystać należy zainstalować odpowiednie DLL samodzielnie.

Uwaga: na chwilę obecną D9VK nie jest ukończonym projektem i wiele gier może działać z błędami lub nie działać w ogóle.

Pobieramy paczkę z prekompilowanymi DLL stąd.

Rozpakowujemy ją w wygodnym miejscu i wchodzimy do katalogu z skryptem instalacyjnym:

cd build/dxvk-release/

Z racji, że chcemy aktywować D9VK dla konkretnej gry ustawiamy zmienną:

export WINEPREFIX=/katalogbiblioteki/SteamLibrary/steamapps/compatdata/identyfikatorgry/pfx

identyfikatorgry – najłatwiej go znaleźć otwierając stronę gry w sklepie Steam, i kopiując liczbę z adresu. Np. w https://store.steampowered.com/app/217140/Rise_of_the_Triad/ identyfikatorem jest 217140.

Następnie uruchamiamy skrypt instalacyjny:

./setup_dxvk.sh install

Powinniśmy zobaczyć okienko wyglądające tak:

 

Od tej chwili gra powinna korzystać z D9VK. Dla poprawy wydajności warto wyłączyć logowanie w opcjach uruchamiania gry:

DXVK_LOG_LEVEL=none %command%
 
Jeśli (to krok opcjonalny) w opcjach uruchamiania gry wpiszemy:

DXVK_HUD=1 DXVK_LOG_LEVEL=none %command%

To w lewym górnym rogu ekranu zobaczymy informację o użyciu D9VK:

Gdyby coś poszło nie tak to D9VK można odinstalować (oczywiście po ustawieniu WINEPREFIX tak samo jak przy instalacji) poleceniem:

./setup_dxvk.sh uninstall

PS
Rise of The Triad 2013 użyte jako przykład potrzebuje jeszcze jednej zmiany by wystartować (nieważne czy z D9VK czy bez) – trzeba pominąć launcher gry.
Można to zrobić tworząc własny, uproszczony launcher. Najpierw tworzymy plik  ROTTLauncher.c o treści:

#include < stdlib.h > 
int main(int argc, char **argv)
{
return system("Win64\\ROTT.exe");
}

Potem kompilujemy go z użyciem MinGW:

i686-w64-mingw32-gcc ROTTLauncher.c -o ROTTLauncher.exe

Polecenie i pakiet zawierający MinGW może się nieco różnić w zależności od dystrybucji.W przypadku Ubuntu pakiet nazywa się gcc-mingw-w64-i686.

Tak przygotowanym plikiem zastępujemy oczywiście oryginalny launcher w katalogu z grą.

Dodaj komentarz