Valve vydává Proton 4.11, sadu pro spouštění her pro Windows na Linuxu

Společnost Valve publikováno nová větev projektu Proton 4.11 XNUMX, založený na vývoji projektu Wine a zaměřený na zajištění spuštění herních aplikací vytvořených pro Windows a prezentovaných v katalogu Steam na Linuxu. Vývoj projektu šíření pod licencí BSD. Jakmile jsou připraveny, změny vyvinuté v Protonu se přenesou do původního Wine a souvisejících projektů, jako jsou DXVK a vkd3d.

Proton vám umožňuje přímo spouštět herní aplikace pouze pro Windows v klientovi Steam Linux. Balíček obsahuje implementaci DirectX 10/11 (na základě DXVK) a 12 (na základě vkd3d), pracující prostřednictvím překladu volání DirectX do Vulkan API, poskytuje vylepšenou podporu pro herní ovladače a možnost používat režim celé obrazovky bez ohledu na rozlišení obrazovky podporované ve hrách. Oproti původnímu Wine se díky použití patchů výrazně zvýšil výkon vícevláknových her "esync"(Synchronizace Eventfd) nebo "futex/fsync".

hlavní změny v Protonu 4.11:

  • Byla provedena synchronizace s kódovou základnou Wine 4.11, ze které bylo přeneseno více než 3300 změn (předchozí větev byla založena na wine 4.2). 154 patchů z Protonu 4.2 bylo přesunuto proti proudu a jsou nyní součástí hlavního balíčku Wine;
  • Přidána experimentální podpora pro synchronizační primitiva založená na systémovém volání futex(), která snižuje zatížení CPU ve srovnání s esync. Nová implementace navíc řeší problémy s nutností použití speciální nastavení pro esynchronizaci a případné vyčerpání dostupných deskriptorů souborů.

    Podstatou prováděné práce je rozšíření funkčnosti standardního systémového volání futex() v linuxovém jádře o schopnosti nezbytné pro optimální synchronizaci fondu vláken. Patche s podporou pro příznak FUTEX_WAIT_MULTIPLE nezbytné pro Proton jsou již k dispozici přestoupil pro zahrnutí do hlavního linuxového jádra a glibc. Připravované změny zatím nejsou zahrnuty v hlavním jádře, takže v tuto chvíli jsou nutné zřídit speciální jádro s podporou těchto primitiv;

    Valve vydává Proton 4.11, sadu pro spouštění her pro Windows na Linuxu

  • Mezivrstva DXVK (implementace DXGI, Direct3D 10 a Direct3D 11 nad rozhraním Vulkan API) aktualizována na verzi 1.3a D9VK (experimentální implementace Direct3D 9 nad Vulkanem) až do verze 0.13f. Chcete-li povolit podporu D9VK v Protonu, použijte příznak PROTON_USE_D9VK;
  • Aktuální obnovovací frekvence monitoru se přenáší do her;
  • Byly provedeny opravy pro ovládání kurzoru myši a správy oken;
  • Opraven input lag a problémy s podporou vibrací pro joysticky, které se vyskytují v některých hrách, zejména ve hrách založených na Unity enginu;
  • Přidána podpora pro nejnovější verzi OpenVR SDK;
  • Komponenty FAudio s implementací zvukových knihoven DirectX (API XAudio2, X3DAudio, XAPO a XACT3) byly aktualizovány na verzi 19.07;
  • Problémy se síťovým subsystémem ve hrách na GameMakeru byly vyřešeny;
  • Mnoho modulů Wine je nyní vytvořeno jako soubory Windows PE namísto linuxových knihoven. Jak práce v této oblasti postupují, používání PE pomůže některým systémům DRM a anti-cheat. Pokud používáte vlastní sestavení Protonu, budete s největší pravděpodobností muset znovu vytvořit virtuální počítač Vagrant, abyste mohli sestavit soubory PE.

Než budou záplaty Valve přijaty do hlavního linuxového jádra, použití futex() místo esync vyžaduje instalaci speciálního jádra s podporou fondu synchronizace vláken implementovaného v sadě záplat. fsync. Pro Arch Linux již v AUR publikováno hotový balíček jádra zkompilovaný pomocí záplat fsync. Na Ubuntu 18.04 a 19.04 můžete použít experimentální jádro linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Pokud máte jádro s podporou fsync, při spuštění Protonu 4.11 konzole zobrazí zprávu „fsync: up and running“. Vypnutí fsync můžete vynutit pomocí příznaku PROTON_NO_FSYNC=1.

Zdroj: opennet.ru

Přidat komentář