Ein in Rust geschriebener Linux-Treiber für die Apple AGX GPU wird zur Überprüfung vorgeschlagen.

Die Mailingliste für Linux-Kernel-Entwickler bietet eine vorläufige Implementierung des drm-asahi-Treibers für die GPUs der Apple AGX G13- und G14-Serien, die in Apple M1- und M2-Chips verwendet werden. Der Treiber ist in der Rust-Sprache geschrieben und enthält zusätzlich eine Reihe universeller Bindungen über das DRM-Subsystem (Direct Rendering Manager), mit denen andere Grafiktreiber in der Rust-Sprache entwickelt werden können. Der veröffentlichte Patch-Satz wird bisher nur zur Diskussion durch Kernel-Entwickler (RFC) angeboten, kann aber nach Abschluss der Prüfung und Beseitigung festgestellter Mängel in die Hauptkomposition übernommen werden.

Seit Dezember ist der Treiber im Kernel-Paket der Asahi-Linux-Distribution enthalten und wurde von Benutzern dieses Projekts getestet. Der Treiber kann in Linux-Distributionen verwendet werden, um den Betrieb der grafischen Umgebung auf Apple-Geräten mit SoC M1, M1 Pro, M1 Max, M1 Ultra und M2 zu organisieren. Bei der Entwicklung des Treibers wurde versucht, nicht nur die Sicherheit zu verbessern, indem Fehler bei der Arbeit mit dem Speicher in CPU-seitig ausgeführtem Code minimiert werden, sondern auch einen teilweisen Schutz vor Problemen zu bieten, die bei der Interaktion mit der Firmware auftreten. Insbesondere stellt der Treiber bestimmte Bindungen für unsichere Shared-Memory-Strukturen mit komplexen Zeigerketten bereit, die in der Firmware zur Interaktion mit dem Treiber verwendet werden.

Der vorgeschlagene Treiber wird in Kombination mit dem Asahi Mesa-Treiber verwendet, der OpenGL im User Space unterstützt, Kompatibilitätstests mit OpenGL ES 2 erfolgreich besteht und fast bereit ist, OpenGL ES 3.0 zu unterstützen. Gleichzeitig wird der auf Kernel-Ebene arbeitende Treiber zunächst unter Berücksichtigung der künftigen Unterstützung der Vulkan-API entwickelt und die Softwareschnittstelle für die Interaktion mit dem User Space im Hinblick auf die vom neuen Intel Xe-Treiber bereitgestellte UAPI entworfen.

Source: opennet.ru

Kommentar hinzufügen