Das Unternehmen Valve hat Proton 4.11 veröffentlicht, ein Paket für das Ausführen von Windows-Spielen unter Linux.

Unternehmen Valve die neuen Projektzweig Proton 4.11, basierend auf den Entwicklungen des Wine-Projekts und darauf ausgelegt, die Ausführung von unter Windows entwickelten Spielen, die im Steam-Katalog angeboten werden, unter Linux zu ermöglichen. Die Entwicklungen des Projekts werden unter der BSD-Lizenz. Im Laufe der Zeit werden die in Proton entwickelten Änderungen in das originale Wine und zugehörige Projekte wie DXVK und vkd3d übernommen.

Proton ermöglicht es, Spieleanwendungen, die ausschließlich für Windows bereitgestellt werden, direkt im Linux-Client Steam auszuführen. Das Paket enthält eine Implementierung von DirectX 10/11 (basierend auf DXVK) und 12 (basierend auf vkd3d), das über die Übersetzung von DirectX-Aufrufen in die Vulkan-API arbeitet, bietet verbesserte Unterstützung für Spiel-Controller und die Möglichkeit, den Vollbildmodus unabhängig von den in den Spielen unterstützten Bildschirmauflösungen zu nutzen. Im Vergleich zur ursprünglichen Wine-Version wurde die Leistung von Mehrkernspielen deutlich verbessert, dank der Anwendung von Patches «esync» (Eventfd-Synchronisation) oder «futex/fsync».

Haupt Änderungen in Proton 4.11:

  • Die Synchronisation mit der Codebasis von Wine 4.11 wurde durchgeführt, aus der über 3300 Änderungen übernommen wurden (der letzte Zweig basierte auf Wine 4.2). 154 Patches aus Proton 4.2 wurden upstream übertragen und sind jetzt Teil der Hauptversion von Wine;
  • Experimentelle Unterstützung von Synchronisationsprimitive, die auf dem Systemaufruf futex() basiert, wurde hinzugefügt, was die CPU-Belastung im Vergleich zu esync reduziert. Darüber hinaus löst die neue Implementierung Probleme mit der Notwendigkeit, spezielle Einstellungen für esync und mögliche Erschöpfung verfügbarer Dateideskriptoren.

    Der Kern der durchgeführten Arbeiten besteht darin, die Funktionalität des Standard-Systemaufrufs futex() im Linux-Kernel mit den für eine optimale Synchronisation von Thread-Pools notwendigen Fähigkeiten zu erweitern. Patches mit der benötigten Unterstützung für Proton und dem FLAG FUTEX_WAIT_MULTIPLE sind bereits übergeben für die Aufnahme in die Hauptversion des Linux-Kernels und Glibc. Die vorbereiteten Änderungen sind derzeit nicht im Hauptkern enthalten, daher ist momentan ein auf einem Raspberry Pi installiert werden, um ein Smart Home-System zu erhalten, das alle vorhandenen IoT-Geräte im Haus vereint und Mittel zur Überwachung und Steuerung über eine Web-Oberfläche bereitstellt. Die Plattform ermöglicht es außerdem, zusätzliche Webanwendungen zu erstellen, die mit Geräten über spezifischer Kernel mit Unterstützung für diese Primitiven erforderlich;

    Das Unternehmen Valve hat Proton 4.11 veröffentlicht, ein Paket für das Ausführen von Windows-Spielen unter Linux.
  • Schicht DXVK (Implementierung von DXGI, Direct3D 10 und Direct3D 11 über die Vulkan-API) wurde auf die Version 1.3, und D9VK (experimentelle Implementierung von Direct3D 9 über Vulkan) auf Version 0.13f aktualisiert. Um die Unterstützung für D9VK in Proton zu aktivieren, sollte das Flag PROTON_USE_D9VK verwendet werden;
  • Die aktuelle Aktualisierungsrate des Monitors wird den Spielen übertragen;
  • Es wurden Korrekturen bezüglich der Behandlung des Mausfokus und des Fenster-Managements vorgenommen;
  • Eingabeverzögerungen und Probleme mit der Vibrationsunterstützung für Gamepads, die in einigen Spielen insbesondere in Unity-basierten Spielen auftreten, wurden behoben;
  • Unterstützung für die neueste Version des OpenVR SDK hinzugefügt;
  • Die FAudio-Komponenten mit der Implementierung der DirectX-Soundbibliotheken (API XAudio2, X3DAudio, XAPO und XACT3) wurden auf die Version 19.07 aktualisiert;
  • Probleme mit dem NetzwerkSubsystem in Spielen auf GameMaker wurden behoben;
  • Viele Wine-Module werden jetzt als Windows PE-Dateien erstellt, anstelle von Linux-Bibliotheken. Mit fortschreitenden Entwicklungen in diesem Bereich wird die Verwendung von PE einigen DRM-Systemen und Anti-Cheat-Programmen helfen. Bei der Verwendung von benutzerdefinierten Proton-Bauten wird wahrscheinlich die Rekonstruktion der Vagrant-VM erforderlich sein, um PE-Dateien zu erstellen.

Um die von Valve bereitgestellten Patches zur Verwendung von futex() anstelle von esync in den Hauptkern von Linux aufzunehmen, ist es notwendig, einen speziellen Kernel zu installieren, der den Pool der Thread-Synchronisierung unterstützt, der in einem Patch-Set implementiert ist. fsync. Für Arch Linux gibt es bereits ein veröffentlicht fertiges Kernel-Paket, das mit den fsync-Patches kompiliert wurde. In Ubuntu 18.04 und 19.04 kann das PPA-Repository mit experimentellen Kerneln linux-mfutex-valve verwendet werden (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Wenn ein Kernel mit fsync-Unterstützung verwendet wird, zeigt die Konsole beim Start von Proton 4.11 die Meldung "fsync: up and running" an. fsync kann zwangsweise mit dem Flag PROTON_NO_FSYNC=1 deaktiviert werden.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster