Προτείνουν την υλοποίηση ενός προγράμματος οδήγησης GPU γραμμένου σε Rust, για τα Apple AGX G13 και G14

Linux Apple Rust

Αυτό είναι ένα αρκετά ολοκληρωμένο πρόγραμμα οδήγησης για τις GPU της σειράς Apple AGX G13 και G14.
Το σημερινό χειριστήριο είναι συμβατό με SoC

Τα νέα κυκλοφόρησαν πρόσφατα ότι έχει προταθεί μια προκαταρκτική εφαρμογή του προγράμματος οδήγησης drm-asahi για τις σειρές GPU Apple AGX G13 και G14 που χρησιμοποιούνται στα τσιπ Apple M1 και M2 στη λίστα αλληλογραφίας για προγραμματιστές πυρήνα Linux.

Το χειριστήριο είναι γραμμένο σε Rust συν, περιλαμβάνει ένα σύνολο καθολικών συνδέσεων σχετικά με το υποσύστημα DRM (Direct Rendering Manager) που μπορεί να χρησιμοποιηθεί για την ανάπτυξη άλλων προγραμμάτων οδήγησης γραφικών στο Rust.

Το σετ ενημερώσεων κώδικα που κυκλοφόρησε μέχρι τώρα έχει προταθεί μόνο για συζήτηση από τους βασικούς προγραμματιστές (RFC), αλλά μπορεί να γίνει δεκτός στην βασική ομάδα μετά την ολοκλήρωση του ελέγχου και την επιδιόρθωση των εντοπισμένων ελλείψεων.

Αυτή είναι η πρώτη μου έκδοση των Rust abstractions για DRM υποσύστημα. Περιλαμβάνει τις ίδιες τις αφαιρέσεις, μερικές δευτερεύουσες προαπαιτούμενες αλλαγές στην πλευρά C καθώς και στο πρόγραμμα οδήγησης GPU drm-asahi (για αναφορά στο πώς χρησιμοποιούνται οι αφαιρέσεις, αλλά όχι απαραίτητα προορίζονται να προσγειωθούν μαζί).

Αυτά τα μπαλώματα εφαρμόζονται στην κορυφή του δέντρου στο [1], το οποίο βασίζεται σε 6.3-rc1 με πολλές δεσμεύσεις υποστήριξης abstraction/Rust που προστέθηκαν πάνω από. Τα περισσότερα από αυτά δεν αποτελούν προϋποθέσεις για αφαιρέσεις DRM. οι ίδιοι, αλλά μόνο από τον οδηγό.

Από τον Δεκέμβριο, ο ελεγκτής περιλαμβάνεται το πακέτο με τον πυρήνα για τη διανομή Asahi Linux και έχει δοκιμαστεί από τους χρήστες αυτού του έργου.

Το πρόγραμμα οδήγησης μπορεί να χρησιμοποιηθεί σε διανομές Linux σε οργανώστε το γραφικό περιβάλλον σε δΣυσκευές Apple με SoC M1, M1 Pro, M1 Max, M1 Ultra και M2. Κατά την ανάπτυξη του προγράμματος οδήγησης, έγινε προσπάθεια όχι μόνο να αυξηθεί η ασφάλεια ελαχιστοποιώντας τα σφάλματα κατά την εργασία με μνήμη στον κώδικα που εκτελείται στην πλευρά της CPU, αλλά και να προστατεύεται μερικώς από προβλήματα που προκύπτουν κατά την αλληλεπίδραση με το υλικολογισμικό.

Συγκεκριμένα το πρόγραμμα οδήγησης παρέχει ορισμένες δεσμεύσεις για δομές κοινής μνήμης μη ασφαλές με πολύπλοκες σειρές δεικτών που χρησιμοποιούνται στο υλικολογισμικό για αλληλεπίδραση με τον ελεγκτή. Το προτεινόμενο πρόγραμμα οδήγησης χρησιμοποιείται σε συνδυασμό με το πρόγραμμα οδήγησης asahi Mesa, το οποίο παρέχει υποστήριξη OpenGL στο χώρο χρήστη και περνάει με επιτυχία τη δοκιμή συμβατότητας OpenGL ES 2. και είναι σχεδόν έτοιμο να υποστηρίξει το OpenGL ES 3.0.

Ταυτόχρονα, το πρόγραμμα οδήγησης που λειτουργεί σε επίπεδο πυρήνα αναπτύχθηκε αρχικά με γνώμονα τη μελλοντική υποστήριξη για το Vulkan API, και η διεπαφή προγραμματισμού για την αλληλεπίδραση με τον χώρο χρήστη έχει σχεδιαστεί έχοντας κατά νου το UAPI που παρέχεται από το νέο πρόγραμμα οδήγησης Intel Xe.

Πάνω από το Γνωστά προβλήματα αναφέρονται τα ακόλουθα:

  • Η υπάρχουσα ενσωμάτωση Rust επί του παρόντος δεν υποστηρίζει αφαιρέσεις κτιρίων ως ενότητες, επομένως οι αφαιρέσεις Rust είναι διαθέσιμες μόνο για ενσωματωμένα στοιχεία DRM.
  • Το DRM βασίζεται σε μεγάλο βαθμό στο μοτίβο "υποκατηγορίας" για αντικείμενα ελεγκτή και αυτό δεν ταιριάζει καλά με το Rust.
  • Επί του παρόντος, εφαρμόζεται μόνο ό,τι είναι απαραίτητο για τον ελεγκτή (συν μια μικρή ποσότητα
    προφανή πρόσθετα όπου η καλύτερη ακεραιότητα API έχει νόημα).
  • Το drm::mm καταλήγει να απαιτεί ένα mutex ενσωματωμένο στην αφαίρεση
    για να το αναθέσετε στον χρήστη με τους συνήθεις κανόνες μεταβλητότητας Rust.
    Αυτό συμβαίνει επειδή οι κόμβοι μπορούν να απορριφθούν ανά πάσα στιγμή και αυτές οι λειτουργίες
    πρέπει να είναι συγχρονισμένο.
  • Από την πλευρά Mesa, αυτή τη στιγμή έχετε το πρόγραμμα οδήγησης Gallium, το οποίο είναι κατά το πλείστον ήδη ανάντη (τα bits UAPI λείπουν κυρίως) και
    περνάει τις δοκιμές dEQP GLES2/EGL, με το μεγαλύτερο μέρος του GLES3.0 να περνάει
    Ανοδικοί κλάδοι εργασίας σε εξέλιξη. Πρόκειται για μια κοινοτική αντίστροφη μηχανική οδηγού, επομένως αναφέρεται ότι υπάρχουν ακόμη πολλά που πρέπει να γίνουν σε αυτήν την πτυχή.

τελικά αν είσαι ενδιαφέρεται να μάθει περισσότερα για αυτό, μπορείτε να ελέγξετε τις λεπτομέρειες στο τον ακόλουθο σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.