Valve rilascia Proton 4.11, una suite per l'esecuzione di giochi Windows su Linux

Azienda di valvole pubblicato nuovo ramo di progetto Protone 4.11, basato sugli sviluppi del progetto Wine e volto a garantire il lancio delle applicazioni di gioco realizzate per Windows e presentate nel catalogo Steam su Linux. Sviluppi del progetto diffusione sotto licenza BSD. Non appena sono pronte, le modifiche sviluppate in Proton vengono trasferite al Wine originale e ai progetti correlati, come DXVK e vkd3d.

Proton ti consente di eseguire direttamente applicazioni di gioco solo per Windows nel client Steam Linux. Il pacchetto include un'implementazione di DirectX 10/11 (basata su DXVK) e 12 (basato su VKD3D), che funziona tramite chiamate DirectX all'API Vulkan, fornisce un supporto migliorato per i controller di gioco e la possibilità di utilizzare la modalità a schermo intero indipendentemente dalle risoluzioni dello schermo supportate nei giochi. Rispetto all'originale Wine, le prestazioni dei giochi multi-thread sono state notevolmente aumentate grazie all'utilizzo delle patch"esync"(Sincronizzazione Eventfd) o "futex/fsync".

Il principale cambiamenti in Proton 4.11:

  • È stata effettuata la sincronizzazione con la codebase Wine 4.11, da cui sono state trasferite più di 3300 modifiche (il ramo precedente era basato su wine 4.2). 154 patch di Proton 4.2 sono state spostate a monte e sono ora incluse nel pacchetto principale di Wine;
  • Aggiunto supporto sperimentale per le primitive di sincronizzazione basate sulla chiamata di sistema futex(), che riduce il carico della CPU rispetto a esync. Inoltre, la nuova implementazione risolve i problemi relativi alla necessità di utilizzo impostazioni speciali per esync e possibile esaurimento dei descrittori di file disponibili.

    L'essenza del lavoro svolto è espandere la funzionalità della chiamata di sistema standard futex() nel kernel Linux con le capacità necessarie per la sincronizzazione ottimale del pool di thread. Sono già disponibili patch con supporto per il flag FUTEX_WAIT_MULTIPLE necessario per Proton trasferito per l'inclusione nel kernel Linux principale e glibc. Le modifiche preparate non sono ancora incluse nel kernel principale, quindi al momento sono necessarie stabilire un kernel speciale con supporto per queste primitive;

    Valve rilascia Proton 4.11, una suite per l'esecuzione di giochi Windows su Linux

  • intercalare DXVK (implementazione di DXGI, Direct3D 10 e Direct3D 11 sull'API Vulkan) aggiornato alla versione 1.3E D9VK (un'implementazione sperimentale di Direct3D 9 su Vulkan) fino alla versione 0.13f. Per abilitare il supporto D9VK in Proton, utilizzare il flag PROTON_USE_D9VK;
  • La frequenza di aggiornamento corrente del monitor viene trasmessa ai giochi;
  • Sono state apportate correzioni per gestire il focus del mouse e la gestione delle finestre;
  • Risolto il ritardo di input e i problemi con il supporto delle vibrazioni per i joystick che si verificavano in alcuni giochi, specialmente nei giochi basati sul motore Unity;
  • Aggiunto il supporto per l'ultima versione di OpenVR SDK;
  • I componenti audio con implementazione delle librerie audio DirectX (API XAudio2, X3DAudio, XAPO e XACT3) sono stati aggiornati alla versione 19.07;
  • Sono stati risolti i problemi con il sottosistema di rete nei giochi su GameMaker;
  • Molti moduli Wine sono ora creati come file Windows PE invece che come librerie Linux. Man mano che il lavoro procede in questo settore, l'uso del PE aiuterà alcuni sistemi DRM e anti-cheat. Se utilizzi build Proton personalizzate, molto probabilmente dovrai ricreare la macchina virtuale Vagrant per creare i file PE.

Prima che le patch di Valve vengano adottate nel kernel Linux principale, l'utilizzo di futex() invece di esync richiede l'installazione di un kernel speciale con supporto per il pool di sincronizzazione dei thread implementato in una serie di patch fsync. Per Arch Linux già in AUR pubblicato pacchetto kernel già pronto compilato con patch fsync. Su Ubuntu 18.04 e 19.04, è possibile utilizzare il PPA del kernel sperimentale linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Se hai un kernel con supporto fsync, quando esegui Proton 4.11, la console visualizzerà il messaggio "fsync: attivo e funzionante". Puoi forzare la disattivazione di fsync utilizzando il flag PROTON_NO_FSYNC=1.

Fonte: opennet.ru

Aggiungi un commento