Valve lansează Proton 4.11, o suită pentru rularea jocurilor Windows pe Linux

Compania Valve а publicat noua ramură de proiect Protonul 4.11, bazat pe evoluțiile proiectului Wine și care vizează asigurarea lansării de aplicații de gaming create pentru Windows și prezentate în catalogul Steam pe Linux. Dezvoltarea proiectelor răspândire sub licență BSD. Pe măsură ce sunt gata, modificările dezvoltate în Proton sunt transferate la Wine original și proiectele conexe, cum ar fi DXVK și vkd3d.

Proton vă permite să rulați direct aplicații de jocuri numai pentru Windows în clientul Steam Linux. Pachetul include o implementare a DirectX 10/11 (bazat pe DXVK) și 12 (pe baza vkd3d), care lucrează prin apeluri DirectX către API-ul Vulkan, oferă suport îmbunătățit pentru controlerele de joc și capacitatea de a utiliza modul ecran complet, indiferent de rezoluțiile ecranului acceptate în jocuri. În comparație cu Wine original, performanța jocurilor cu mai multe fire a fost crescută semnificativ datorită utilizării de patch-uri "sincronizare„(Sincronizare Eventfd) sau „futex/fsync”.

Principalul modificări în Proton 4.11:

  • S-a efectuat sincronizarea cu baza de cod Wine 4.11, din care au fost transferate peste 3300 de modificări (ramura anterioară a fost bazată pe vin 4.2). 154 de patch-uri din Proton 4.2 au fost mutate în amonte și sunt acum incluse în pachetul principal Wine;
  • S-a adăugat suport experimental pentru primitivele de sincronizare bazate pe apelul de sistem futex(), care reduce sarcina procesorului în comparație cu esync. În plus, noua implementare rezolvă problemele legate de necesitatea utilizării setări speciale pentru sincronizare și posibilă epuizare a descriptorilor de fișiere disponibili.

    Esența muncii depuse este extinderea funcționalității apelului de sistem futex() standard în nucleul Linux cu capabilitățile necesare pentru sincronizarea optimă a pool-ului de fire. Patch-urile cu suport pentru flag FUTEX_WAIT_MULTIPLE necesare pentru Proton sunt deja transferat pentru includerea în nucleul principal Linux și glibc. Modificările pregătite nu sunt încă incluse în nucleul principal, așa că în acest moment este necesar stabili un nucleu special cu suport pentru aceste primitive;

    Valve lansează Proton 4.11, o suită pentru rularea jocurilor Windows pe Linux

  • Stratul intermediar DXVK (implementarea DXGI, Direct3D 10 și Direct3D 11 pe lângă API-ul Vulkan) actualizat la versiunea 1.3Și D9VK (o implementare experimentală a Direct3D 9 peste Vulkan) până la versiunea 0.13f. Pentru a activa suportul D9VK în Proton, utilizați indicatorul PROTON_USE_D9VK;
  • Rata actuală de reîmprospătare a monitorului este transmisă la jocuri;
  • Au fost făcute remedieri pentru a gestiona focalizarea mouse-ului și gestionarea ferestrelor;
  • S-au remediat decalajul de intrare și problemele cu suportul vibrațiilor pentru joystick-uri care apar în unele jocuri, în special în jocurile bazate pe motorul Unity;
  • S-a adăugat suport pentru cea mai recentă versiune a OpenVR SDK;
  • Componentele FAudio cu implementarea bibliotecilor de sunet DirectX (API XAudio2, X3DAudio, XAPO și XACT3) au fost actualizate pentru lansarea 19.07;
  • Problemele cu subsistemul de rețea din jocurile de pe GameMaker au fost rezolvate;
  • Multe module Wine sunt acum construite ca fișiere Windows PE în loc de biblioteci Linux. Pe măsură ce lucrările progresează în acest domeniu, utilizarea PE va ajuta unele sisteme DRM și anti-cheat. Dacă utilizați versiuni personalizate Proton, cel mai probabil va trebui să recreați mașina virtuală Vagrant pentru a construi fișierele PE.

Înainte ca patch-urile lui Valve să fie adoptate în nucleul principal Linux, utilizarea futex() în loc de esync necesită instalarea unui nucleu special cu suport pentru pool-ul de sincronizare a firelor implementat într-un set de patch-uri fsync. Pentru Arch Linux în AUR deja publicat pachet de nucleu gata făcut compilat cu patch-uri fsync. Pe Ubuntu 18.04 și 19.04, puteți utiliza nucleul experimental linux-mfutex-valve PPA (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Dacă aveți un nucleu cu suport fsync, atunci când rulați Proton 4.11, consola va afișa mesajul „fsync: up and running”. Puteți forța dezactivarea fsync folosind indicatorul PROTON_NO_FSYNC=1.

Sursa: opennet.ru

Adauga un comentariu