Valve wypuściło nową gałąź projektu Proton 4.11, która opiera się na opracowaniach projektu Wine i ma na celu zagwarantowanie uruchomienia w systemie Linux aplikacji do gier stworzonych dla systemu Windows i zaprezentowanych w katalogu Steam. Rozwój projektu jest rozpowszechniany na licencji BSD. Gdy tylko będą gotowe, zmiany opracowane w Protonie przenoszą się do oryginalnego Wine i powiązanych projektów, takich jak DXVK i vkd3d.
Proton umożliwia uruchamianie gier, które są dostępne tylko dla systemu Windows, bezpośrednio na kliencie Steam Linux . Pakiet zawiera implementację DirectX 10/11 (opartą na DXVK) i 12 (opartą na vkd3d), działającą poprzez tłumaczenie wywołań DirectX na API Vulkan, zapewnia ulepszoną obsługę kontrolerów gier oraz możliwość korzystania z trybu pełnoekranowego.
Główne nowości Proton 4.11
Wraz z wydaniem tej nowej gałęzi, Proton przeszedł do synchronizacji z kodem podstawowym Wine 4.11, z którego przeniesiono ponad 3300 zmian (poprzednia gałąź bazowała na winie 4.2). 154 łatki Proton 4.2 zostały przeniesione w górę i są teraz zawarte w głównej części Wine.
Jako główna nowość twórcy podkreśla dodanie eksperymentalnej obsługi prymitywów synchronizacji opartych na wywołaniu systemowym futex (), co zmniejsza obciążenie procesora w porównaniu z esync.
Ponadto nowa implementacja rozwiązuje problemy związane z koniecznością stosowania specjalnych ustawień dla esync i ewentualnym wyczerpaniem dostępnych deskryptorów plików.
Naszywki z uchwytem na wskaźnik FUTEX_WAIT_MULTIPLE wymagane dla Protona zostały już przeniesione do włączenia do głównego jądra Linuksa i Glibc.
Przygotowane zmiany nie są jeszcze uwzględnione w głównym składzie jądra, dlatego w tym momencie konieczne jest zainstalowanie specjalnego jądra obsługującego te prymitywy.
Również warstwa DXVK (implementacja DXGI, Direct3D 10 i Direct3D 11 na szczycie API Vulkan) Został zaktualizowany do nowej wersji 1.3.
Podczas gdy dla D9VK (eksperymentalna implementacja Direct3D 9 na Vulkan) do wersji 0.13f. Aby włączyć obsługę D9VK w Protonie, użyj flagi PROTON_USE_D9VK.
Wiele modułów Wine jest teraz tworzonych jako pliki Windows PE, zamiast bibliotek Linuksa. W miarę postępu prac w tej dziedzinie użycie PE pomoże niektórym systemom DRM i przeciwdziałającym oszustwom.
Spośród innych zmian, które wyróżniają się w tej nowej gałęzi:
- Zapewniony jest transfer aktualnej częstotliwości odświeżania monitora do gier
- Poprawiono przetwarzanie kursora myszy i zarządzanie oknami
- Naprawiono opóźnienia wprowadzania danych i problemy z obsługą wibracji joysticków, pojawiające się w niektórych grach, zwłaszcza w grach na silniku Unity
- Dodano obsługę najnowszej wersji OpenVR SDK
- Komponenty audio z implementacją biblioteki dźwięku DirectX (API XAudio2, X3DAudio, XAPO i XACT3) zaktualizowane do wersji 19.07
- Naprawiono problemy z podsystemem sieciowym w grach w GameMaker
Przed zastosowaniem plastrów Valve w głównym jądrze Linuksa, aby użyć futex () zamiast esync, należy zainstalować specjalne jądro obsługujące pulę synchronizacji wątków zaimplementowane w zestawie poprawek fsync.
W Ubuntu 18.04 i 19.04 można użyć repozytorium PPA z eksperymentalnymi jądrami linux-mfutex-valve
Które można dodać za pomocą następujących poleceń:
sudo add-apt-repository ppa:valve-experimental/kernel-bionic -y sudo apt-get install linux-mfutex-valve
Jak aktywować Proton na Steamie?
W tym Powinni otworzyć klienta Steam i kliknąć Steam w lewym górnym rogu, a następnie Ustawienia.
W sekcji „Konto” znajdziesz opcję rejestracji do wersji beta. Wykonanie tego i zaakceptowanie spowoduje zamknięcie klienta Steam i pobranie wersji beta (nowej instalacji).
Na koniec i po uzyskaniu dostępu do swojego konta wracają na tę samą trasę, aby sprawdzić, czy już używają Protona.