poniedziałek, 12 sierpnia 2019

Wymuszanie uruchamiania windowsowej wersji gry na Steamie dla Linuksa (na przykładzie Black Mesy Xen beta update)

Porty niektórych gier na Linuksa są niskiej jakości/działają wolno lub wręcz nie działają w ogóle. W międzyczasie DXVK (translator Direct3D11-Vulkan) i D9VK (Direct3D9-Vulkan) stały się na tyle niezawodne i wydajne, że potrafią z powodzeniem z natywnymi "buildami" gier. W skrajnych wypadkach (np. Dying Light) gra uruchomiona przez DXVK potrafi być ponad dwa razy wydajniejsza niż port Linuksowy.

Jako przykład wybrałem betę Xen dla Black Mesy, bo nie działa ona na Linuksie w ogóle, oraz jest to gra korzystająca z DirectX9, przez co konfiguracja jest nieco bardziej skomplikowana.


Pierwszy krok to wybranie właściwości gry (prawy przycisk myszy na nazwie gry w liście gier):



Należy zaznaczyć opcję: "Wymuś użycie określonego narzędzia Steam Play" i wybrać najnowszą wersję Proton z listy rozwijanej. To sprawia, że gra będzie uruchamiana przez Proton i DXVK.  Dla gier korzystających z DirectX11 nie potrzeba robić nic więcej.
Black Mesa to jednak gra działająca w oparciu o D3D9 i potrzebuje D9VK, które jest zintegrowane z Protonem, ale nie zostało włączone domyślnie. Wybieramy "USTAW OPCJE URUCHAMIANIA..." i wpisujemy:

PROTON_USE_D9VK=1 %command% 

Oczywiście musimy też wybrać gałąź public-beta by mieć dostęp do bety Xen.


Teraz wystarczy zaakceptować ustawienia i poczekać na pobranie plików specyficznych dla Windows.

Valve ACO

Użytkownicy Radeonów mogą spróbować nowego kompilatora shaderów przygotowanego przez Valve. Obecnie współpracuje z implementacją Vulkan, wpływając zarówno na gry natywne jak i DXVK i D9VK. W zdecydowanej większości przypadków ACO skraca czas ładowania gier i zwiększa liczbę klatek na sekundę, a także redukuję "cięcie" spowodowane kompilacją shaderów.

Dla Ubuntu 19.04 instalacja wygląda następująco:

sudo add-apt-repository ppa:valve-experimental/mesa
sudo apt-get update
 
Uwaga, przed instalacją ACO należy usunąć inne "graficzne" PPA jak Padoka czy Oibaf jeśli takie były zainstalowane.

Po wpisaniu w opcje uruchamiania gry:

DXVK_HUD=1 PROTON_USE_D9VK=1 %command%

w lewym górnym rogu powinniśmy zobaczyć informację o użyciu ACO:


Nie działa?

Po pierwsze sprawdźmy czy są zainstalowane wszystkie potrzebne biblioteki:

sudo apt install libvulkan1 libvulkan1:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386

Jakie wydajności się spodziewać?

Bardzo bliskiej (czasami wręcz równej) wydajności Windows. Xen beta niestety działa niezbyt szybko, niezależnie od systemu operacyjnego. Uwidaczniają się tutaj ograniczenia Source.

Bonus

Kilka zrzutów ekranów gier uruchomionych z zmienną DXVK_HUD=full

Black Mesa (D9VK)

Hard Reset (D9VK)

Ride 2 (DXVK)

Brak komentarzy:

Prześlij komentarz