Sie schlagen die Implementierung eines in Rust geschriebenen GPU-Treibers für den Apple AGX G13 und G14 vor

Linux Apple Rust

Dies ist ein ziemlich umfassender Treiber für die GPUs der Serien Apple AGX G13 und G14.
Heutige Controller sind mit SoCs kompatibel

Die Nachricht wurde kürzlich veröffentlicht Eine vorläufige Implementierung des drm-asahi-Treibers wurde vorgeschlagen für Serien-GPUs Apple AGX G13 und G14, die in den Apple M1- und M2-Chips verwendet werden auf der Linux-Kernel-Entwickler-Mailingliste.

Der Controller ist in Rust geschrieben und zusätzlich enthält eine Reihe universeller Links zum DRM-Subsystem (Direct Rendering Manager), mit dem andere Grafiktreiber in Rust entwickelt werden können.

Das veröffentlichte Patch-Set bis jetzt wurde nur zur Diskussion vorgeschlagen von den Kernentwicklern (RFC), können aber in das Kernteam aufgenommen werden, nachdem die Überprüfung abgeschlossen ist und festgestellte Mängel behoben wurden.

Dies ist meine erste Version der Rust-Abstraktionen für DRM Teilsystem. Beinhaltet die Abstraktionen selbst, einige kleinere Voraussetzungsänderungen auf der C-Seite sowie der GPU-Treiber drm-asahi (als Referenz, wie Abstraktionen verwendet werden, aber nicht unbedingt beabsichtigt, zusammen zu landen).

Diese Patches werden an der Spitze des Baums in [1] angewendet, der auf basiert 6.3-rc1 mit vielen hinzugefügten Abstraktions-/Rust-Support-Commits über. Die meisten davon sind keine Voraussetzungen für DRM-Abstraktionen. selbst, sondern nur vom Fahrer.

Seit Dezember ist der Controller im Lieferumfang enthalten das Paket mit dem Kernel für die Asahi-Linux-Distribution und wurde von den Benutzern dieses Projekts getestet.

Der Treiber kann auf Linux-Distributionen verwendet werden Organisieren Sie die grafische Umgebung in dApple-Geräte mit SoC M1, M1 Pro, M1 Max, M1 Ultra und M2. Bei der Entwicklung des Treibers wurde versucht, nicht nur die Sicherheit durch Minimierung von Fehlern bei der Arbeit mit Speicher in CPU-seitig ausgeführtem Code zu erhöhen, sondern auch teilweise vor Problemen zu schützen, die bei der Interaktion mit Firmware auftreten.

Insbesondere, der Treiber stellt bestimmte Bindungen für Shared-Memory-Strukturen bereit unsicher mit komplexen Zeigerketten, die in der Firmware verwendet werden, um mit dem Controller zu interagieren. Der vorgeschlagene Treiber wird in Verbindung mit dem asahi Mesa-Treiber verwendet, der OpenGL-Unterstützung für den Benutzerbereich bereitstellt und die OpenGL ES 2-Kompatibilitätstests besteht. und ist fast bereit, OpenGL ES 3.0 zu unterstützen.

Gleichzeitig der Treiber, der auf Kernel-Ebene arbeitet wurde ursprünglich mit Blick auf die zukünftige Unterstützung der Vulkan-API entwickelt, und die Programmierschnittstelle für die Interaktion mit dem Benutzerbereich wurde unter Berücksichtigung der vom neuen Intel Xe-Treiber bereitgestellten UAPI entwickelt.

Auf Bekannte Probleme Folgendes wird erwähnt:

  • Die vorhandene Rust-Integration unterstützt derzeit nicht das Erstellen von Abstraktionen als Module, daher sind Rust-Abstraktionen nur für eingebettete DRM-Komponenten verfügbar.
  • DRM stützt sich stark auf das „Subclassing“-Muster für Controller-Objekte, und das passt nicht gut zu Rust.
  • Derzeit ist nur das implementiert, was für den Controller notwendig ist (plus eine kleine Menge an
    offensichtliche Extras, bei denen eine bessere API-Integrität sinnvoll ist).
  • drm::mm erfordert stattdessen einen in die Abstraktion eingebauten Mutex
    um dies mit den üblichen Rust-Änderungsregeln an den Benutzer zu delegieren.
    Dies liegt daran, dass Knoten und diese Operationen jederzeit gelöscht werden können
    es muss synchron sein.
  • Auf der Mesa-Seite haben Sie derzeit den Gallium-Treiber, der größtenteils bereits vorgeschaltet ist (UAPI-Bits fehlen größtenteils) und
    besteht die dEQP GLES2/EGL-Tests, wobei die meisten GLES3.0-Tests bestehen
    Vorgelagerte Zweige der laufenden Arbeiten. Dies ist ein Community-Treiber-Reverse-Engineering, daher wird erwähnt, dass in diesem Aspekt noch viel zu tun ist.

schließlich, wenn Sie sind daran interessiert, mehr darüber zu erfahrenkönnen Sie die Details einchecken den folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.