Η Valve κυκλοφορεί το Proton 4.11, μια σουίτα για την εκτέλεση παιχνιδιών Windows σε Linux

Εταιρεία Valve опубликовала νέο υποκατάστημα έργου Πρωτόνιο 4.11, βασισμένο στις εξελίξεις του έργου Wine και στόχευε στη διασφάλιση της κυκλοφορίας εφαρμογών παιχνιδιών που δημιουργήθηκαν για Windows και παρουσιάζονται στον κατάλογο Steam στο Linux. Εξελίξεις του έργου εξάπλωση με άδεια BSD. Μόλις είναι έτοιμα, οι αλλαγές που αναπτύχθηκαν στο Proton μεταφέρονται στο αρχικό Wine και σε σχετικά έργα, όπως το DXVK και το vkd3d.

Το Proton σάς επιτρέπει να εκτελείτε απευθείας εφαρμογές παιχνιδιών μόνο για Windows στον πελάτη Steam Linux. Το πακέτο περιλαμβάνει μια υλοποίηση του DirectX 10/11 (βάσει του DXVK) και 12 (με βάση vkd3d), που λειτουργεί μέσω μετάφρασης κλήσεων DirectX στο Vulkan API, παρέχει βελτιωμένη υποστήριξη για ελεγκτές παιχνιδιών και τη δυνατότητα χρήσης της λειτουργίας πλήρους οθόνης ανεξάρτητα από τις αναλύσεις οθόνης που υποστηρίζονται στα παιχνίδια. Σε σύγκριση με το αρχικό Wine, η απόδοση των παιχνιδιών πολλαπλών νημάτων έχει αυξηθεί σημαντικά χάρη στη χρήση μπαλωμάτων "esync"(Συγχρονισμός Eventfd) ή "futex/fsync".

Ο κύριος αλλαγές στο Proton 4.11:

  • Πραγματοποιήθηκε συγχρονισμός με τη βάση κωδικών Wine 4.11, από την οποία μεταφέρθηκαν περισσότερες από 3300 αλλαγές (ο προηγούμενος κλάδος βασιζόταν στο κρασί 4.2). 154 patches από το Proton 4.2 έχουν μετακινηθεί ανάντη και περιλαμβάνονται τώρα στο κύριο πακέτο Wine.
  • Προστέθηκε πειραματική υποστήριξη για πρωτόγονα συγχρονισμού που βασίζονται στην κλήση συστήματος futex(), η οποία μειώνει το φορτίο της CPU σε σύγκριση με το esync. Επιπλέον, η νέα υλοποίηση λύνει προβλήματα με την ανάγκη χρήσης ειδικές ρυθμίσεις για esync και πιθανή εξάντληση των διαθέσιμων περιγραφών αρχείων.

    Η ουσία της δουλειάς που γίνεται είναι να επεκταθεί η λειτουργικότητα της τυπικής κλήσης συστήματος futex() στον πυρήνα Linux με τις απαραίτητες δυνατότητες για τον βέλτιστο συγχρονισμό της ομάδας νημάτων. Οι ενημερώσεις κώδικα με υποστήριξη για τη σημαία FUTEX_WAIT_MULTIPLE που είναι απαραίτητες για το Proton είναι ήδη μεταφέρθηκε για συμπερίληψη στον κύριο πυρήνα Linux και glibc. Οι προετοιμασμένες αλλαγές δεν περιλαμβάνονται ακόμη στον κύριο πυρήνα, επομένως αυτή τη στιγμή είναι απαραίτητο καθιερώσει έναν ειδικό πυρήνα με υποστήριξη για αυτά τα πρωτόγονα.

    Η Valve κυκλοφορεί το Proton 4.11, μια σουίτα για την εκτέλεση παιχνιδιών Windows σε Linux

  • Ενδιάμεσο στρώμα DXVK (εφαρμογή των DXGI, Direct3D 10 και Direct3D 11 πάνω από το Vulkan API) ενημερώθηκε στην έκδοση 1.3Και D9VK (μια πειραματική υλοποίηση του Direct3D 9 πάνω από το Vulkan) μέχρι την έκδοση 0.13f. Για να ενεργοποιήσετε την υποστήριξη D9VK στο Proton, χρησιμοποιήστε τη σημαία PROTON_USE_D9VK.
  • Ο τρέχων ρυθμός ανανέωσης της οθόνης μεταδίδεται στα παιχνίδια.
  • Έχουν γίνει διορθώσεις για το χειρισμό της εστίασης του ποντικιού και της διαχείρισης παραθύρων.
  • Διορθώθηκε η καθυστέρηση εισόδου και τα προβλήματα με την υποστήριξη κραδασμών για joystick που εμφανίζονται σε ορισμένα παιχνίδια, ειδικά σε παιχνίδια που βασίζονται στον κινητήρα Unity.
  • Προστέθηκε υποστήριξη για την πιο πρόσφατη έκδοση του OpenVR SDK.
  • Τα στοιχεία FAudio με εφαρμογή βιβλιοθηκών ήχου DirectX (API XAudio2, X3DAudio, XAPO και XACT3) έχουν ενημερωθεί για να κυκλοφορήσουν στις 19.07.
  • Τα προβλήματα με το υποσύστημα δικτύου σε παιχνίδια στο GameMaker έχουν επιλυθεί.
  • Πολλές μονάδες Wine έχουν πλέον κατασκευαστεί ως αρχεία Windows PE αντί για βιβλιοθήκες Linux. Καθώς οι εργασίες προχωρούν σε αυτόν τον τομέα, η χρήση PE θα βοηθήσει ορισμένα συστήματα DRM και anti-cheat. Εάν χρησιμοποιείτε προσαρμοσμένες εκδόσεις Proton, πιθανότατα θα χρειαστεί να αναδημιουργήσετε την εικονική μηχανή Vagrant για να δημιουργήσετε τα αρχεία PE.

Προτού εγκριθούν οι ενημερώσεις κώδικα του Valve στον κύριο πυρήνα του Linux, η χρήση του futex() αντί του esync απαιτεί την εγκατάσταση ενός ειδικού πυρήνα με υποστήριξη για τη συγκέντρωση συγχρονισμού νημάτων που υλοποιείται σε ένα σύνολο ενημερώσεων κώδικα fsync. Για το Arch Linux σε AUR ήδη δημοσιεύθηκε έτοιμο πακέτο πυρήνα μεταγλωττισμένο με patches fsync. Στο Ubuntu 18.04 και 19.04, μπορείτε να χρησιμοποιήσετε τον PPA πειραματικού πυρήνα linux-mfutex-valve (sudo add-apt-repository ppa:valve-experimental/kernel-bionic; sudo apt-get install linux-mfutex-valve);

Εάν διαθέτετε πυρήνα με υποστήριξη fsync, όταν εκτελείτε το Proton 4.11, η κονσόλα θα εμφανίσει το μήνυμα "fsync: σε λειτουργία". Μπορείτε να αναγκάσετε να απενεργοποιηθεί το fsync χρησιμοποιώντας τη σημαία PROTON_NO_FSYNC=1.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο