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/pfxidentyfikatorgry - 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 installPowinniśmy zobaczyć okienko wyglądające tak:
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.exePolecenie 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ą.