Valve ha rilasciato Proton 4.11, un pacchetto per eseguire giochi Windows su Linux

Azienda Valve ha pubblicato nuovo ramo del progetto Proton 4.11, basato sui risultati del progetto Wine e mirato a garantire l'esecuzione su Linux delle applicazioni di gioco create per Windows e disponibili nel catalogo Steam. I risultati del progetto sono distribuite sono sotto licenza BSD. Man mano che si completano, le modifiche sviluppate in Proton vengono trasferite nell'originale Wine e in progetti correlati, come DXVK e vkd3d.

Proton consente di avviare direttamente nel client Steam per Linux applicazioni di gioco distribuite solo per Windows. Il pacchetto include l'implementazione di DirectX 10/11 (basata su DXVK) e 12 (basata su vkd3d), che funziona tramite la traduzione delle chiamate DirectX in API Vulkan, fornisce un supporto migliorato per i controller di gioco e la possibilità di utilizzare la modalità a schermo intero indipendentemente dalle risoluzioni supportate nel gioco. Rispetto all'originale Wine, le prestazioni dei giochi multithreading sono notevolmente aumentate grazie all'uso delle patch «esync» (Eventfd Synchronization) o «futex/fsync».

Principali modifiche in Proton 4.11:

  • La sincronizzazione è stata completata con il codice sorgente di Wine 4.11, da cui sono stati trasferiti oltre 3300 cambiamenti (il ramo precedente si basava su Wine 4.2). 154 patch da Proton 4.2 sono state trasferite upstream e ora fanno parte della distribuzione principale di Wine;
  • Supporto sperimentale per le primitive di sincronizzazione basate sulla chiamata di sistema futex() è stato aggiunto, il che consente di ridurre il carico sulla CPU rispetto a esync. Inoltre, la nuova implementazione risolve i problemi legati alla necessità di utilizzare impostazioni speciali per esync e la potenziale esaurimento dei descrittori di file disponibili.

    Il lavoro svolto si propone di ampliare la funzionalità della chiamata di sistema futex() nel kernel Linux con le capacità necessarie per una sincronizzazione ottimale del pool di thread. Le patch con il supporto necessario per Proton del flag FUTEX_WAIT_MULTIPLE sono già sono state trasferite pronte per essere incluse nel kernel Linux e Glibc. Le modifiche preparate non sono state ancora incluse nel kernel principale, pertanto attualmente è necessario installare un kernel speciale con supporto per queste primitive;

    Valve ha rilasciato Proton 4.11, un pacchetto per eseguire giochi Windows su Linux
  • Un layer DXVK (implementazione DXGI, Direct3D 10 e Direct3D 11 sopra l'API Vulkan) è stato aggiornato alla versione 1.3, e D9VK (implementazione sperimentale di Direct3D 9 sopra Vulkan) fino alla versione 0.13f. Per abilitare il supporto D9VK in Proton, utilizzare il flag PROTON_USE_D9VK;
  • È garantito il passaggio della frequenza di aggiornamento attuale del monitor ai giochi;
  • Sono state apportate correzioni relative alla gestione del focus del cursore e alla gestione delle finestre;
  • Risolti i ritardi dell'input e i problemi di supporto della vibrazione per i controller, che si manifestano in alcuni giochi, specialmente in quelli basati sul motore Unity;
  • Aggiunto il supporto per l'ultima versione dell'OpenVR SDK;
  • I componenti FAudio con implementazione delle librerie audio DirectX (API XAudio2, X3DAudio, XAPO e XACT3) sono stati aggiornati alla versione 19.07;
  • Risolti problemi con il sottosistema di rete nei giochi sviluppati con GameMaker;
  • Molti moduli di Wine ora sono compilati come file PE di Windows, invece di librerie Linux. Con l'avanzare dei lavori in quest'area, l'uso di PE aiuterà alcune soluzioni DRM e anti-cheat. In caso di compilazioni manuali di Proton, sarà probabilmente necessario ricreare la macchina virtuale Vagrant per compilare i file PE.

Prima di integrare i patch di Valve nel kernel principale di Linux, per utilizzare futex() al posto di esync, è necessario installare un kernel speciale con supporto per il pool di sincronizzazione dei thread, implementato nel set di patch. fsync. Per Arch Linux, in AUR è già disponibile pubblicato un pacchetto kernel pronto, compilato con i patch fsync. Su Ubuntu 18.04 e 19.04 è possibile utilizzare il repository PPA con i kernel sperimentali linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Se si utilizza un kernel con supporto fsync, all'avvio di Proton 4.11 verrà visualizzato il messaggio "fsync: up and running" nella console. È possibile disattivare forzatamente fsync utilizzando il flag PROTON_NO_FSYNC=1.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster