A Valve kiadja a Proton 4.11-t, a Windows-játékok Linux rendszeren való futtatására szolgáló csomagot

Szelep Társaság közzétett új projekt ág Proton 4.11, amely a Wine projekt fejlesztésein alapul, és a Windows rendszerre készített és a Steam katalógusban bemutatott játékalkalmazások elindítását tűzte ki célul Linuxon. Projektfejlesztések terjedés BSD licenc alatt. Amint készen állnak, a Protonban kifejlesztett változtatások átkerülnek az eredeti Wine-ba és a kapcsolódó projektekbe, mint például a DXVK és a vkd3d.

A Proton lehetővé teszi a csak Windows-alapú játékalkalmazások közvetlen futtatását a Steam Linux kliensben. A csomag tartalmazza a DirectX 10/11 implementációját (a DXVK) és 12 (alapján vkd3d), amely a DirectX-hívások Vulkan API-ra történő fordításán keresztül működik, továbbfejlesztett támogatást nyújt a játékvezérlők számára, és lehetővé teszi a teljes képernyős mód használatát, függetlenül a játékok által támogatott képernyőfelbontásoktól. Az eredeti Wine-hoz képest a többszálas játékok teljesítménye jelentősen megnőtt a javítások használatának köszönhetően.esync"(Eventfd szinkronizálás) vagy "futex/fsync".

A főbb változások a Protonban 4.11:

  • Megtörtént a Wine 4.11 kódbázissal való szinkronizálás, amelyből több mint 3300 változás került át (az előző ág a wine 4.2-re épült). A Proton 154-ből 4.2 javítás került áthelyezésre, és most már a fő Wine csomag része;
  • Hozzáadott kísérleti támogatás a futex() rendszerhíváson alapuló szinkronizálási primitívekhez, ami csökkenti a CPU terhelést az esynchez képest. Emellett az új megvalósítás megoldja a használat szükségletével kapcsolatos problémákat is speciális beállítások az esynchez és a rendelkezésre álló fájlleírók esetleges kimerítéséhez.

    Az elvégzett munka lényege, hogy a szabványos futex() rendszerhívás funkcionalitását kibővítsük a Linux kernelben a szálkészlet optimális szinkronizálásához szükséges képességekkel. A Protonhoz szükséges FUTEX_WAIT_MULTIPLE jelzőt támogató javítások már megvannak át a fő Linux kernelbe való felvételhez és glibc. Az előkészített változtatások még nem szerepelnek a fő kernelben, ezért jelenleg ez szükséges létrehozni egy speciális kernel, amely támogatja ezeket a primitíveket;

    A Valve kiadja a Proton 4.11-t, a Windows-játékok Linux rendszeren való futtatására szolgáló csomagot

  • közbenső réteg DXVK (DXGI, Direct3D 10 és Direct3D 11 megvalósítása a Vulkan API-n) verzióra frissítve 1.3És D9VK (a Direct3D 9 kísérleti megvalósítása a Vulkan tetején) 0.13f verzióig. A D9VK támogatás engedélyezéséhez a Protonban használja a PROTON_USE_D9VK jelzőt;
  • A monitor aktuális frissítési gyakorisága átvitelre kerül a játékokba;
  • Javítások történtek az egérfókusz és az ablakkezelés kezelésére;
  • Javítva a bemeneti késleltetés és a joystickok rezgéstámogatásával kapcsolatos problémák, amelyek bizonyos játékokban előfordulnak, különösen a Unity motoron alapuló játékokban;
  • Támogatás hozzáadva az OpenVR SDK legújabb verziójához;
  • A DirectX hangkönyvtárakat (API XAudio2, X3DAudio, XAPO és XACT3) megvalósító FAudio komponensek a 19.07-es kiadásra frissültek;
  • A GameMaker játékok hálózati alrendszerével kapcsolatos problémák megoldódtak;
  • Sok Wine modul most Windows PE-fájlként épül fel Linux-könyvtárak helyett. Az ezen a területen végzett munka előrehaladtával a PE használata segíteni fog néhány DRM- és csalás elleni rendszeren. Ha egyéni Proton buildeket használ, valószínűleg újra kell létrehoznia a Vagrant virtuális gépet a PE-fájlok létrehozásához.

Mielőtt a Valve javításait beépítené a fő Linux kernelbe, az esync helyett a futex() használatához egy speciális kernelt kell telepíteni, amely támogatja a foltkészletben megvalósított szálszinkronizálási készletet fsync. Az Arch Linuxhoz már AUR-ban közzétett fsync javításokkal összeállított kész kernelcsomag. Az Ubuntu 18.04-es és 19.04-es verzióján a linux-mfutex-valve kísérleti kernel PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve) használható;

Ha van egy fsync-támogatással rendelkező kernel, a Proton 4.11 futtatásakor a konzol az „fsync: up and running” üzenetet jeleníti meg. Kényszerítheti az fsync kikapcsolását a PROTON_NO_FSYNC=1 jelzővel.

Forrás: opennet.ru

Hozzászólás