Das Unternehmen Collabora hat Fortschritte bei der Entwicklung des Tyr-Treibers für den Linux-Kernel bekannt gegeben, der in Rust geschrieben ist. Der Treiber ist für die Arbeit mit ARM Mali GPUs ausgelegt, die die CSF-Technologie (Command Stream Frontend) nutzen, wie beispielsweise Mali G310, G510 und G710. Es wird festgestellt, dass Tyr ein Niveau erreicht hat, das für die Unterstützung der GNOME-Desktop-Umgebung, des kompositen Servers Weston und von Vollbildspielen wie SuperTuxKart geeignet ist. Die Leistung des neuen Treibers wird als vergleichbar mit dem Treiber Panthor, der in C geschrieben ist, eingeschätzt.


Der Code des Tyr-Treibers wurde in den Linux-Kernel 6.18 aufgenommen, dessen Veröffentlichung Anfang Dezember erwartet wird. Der Treiber ist jedoch noch nicht bereit für den dauerhaften Einsatz durch normale Benutzer und wird als experimenteller Prototyp für die Testung von Abstraktionen zur Entwicklung von Treibern in Rust betrachtet.
Bei der Erstellung des neuen Treibers wurden Komponenten des abstrakten Treibers rust_platform_driver und des Treibers Nova, der für NVIDIA GPUs entwickelt wurde, in Rust geschrieben und in den Linux-Kernel 6.16 eingefügt. Die Funktionalität zur Interaktion mit den Mali GPUs wurde aus dem bestehenden DRM-Treiber Panthor (Direct Rendering Manager), der in C geschrieben ist, portiert. Die uAPI des Tyr-Treibers ist identisch mit der uAPI des Treibers Panthor, was die Verwendung bestehender Komponenten im Benutzerraum ermöglicht.
Die CSF-Technologie, die seit der 10. Generation der Mali GPUs zum Einsatz kommt, zeichnet sich dadurch aus, dass einige Funktionen des Treibers auf die Firmware ausgelagert werden und ein neues Modell zur Organisation der Ausführung von Arbeiten auf der GPU genutzt wird. Bei GPUs mit CSF-Schnittstelle wird anstelle des modells, das auf der Übermittlung einer Arbeitskette basiert, ein Modell verwendet, das auf einem Befehlsstrom basiert und die Warteschlange für den Befehlsstrom auf der Firmware-Seite plant. Für die Organisation der Arbeit des Planers ist ein separater Mikrocontroller Cortex-M7 in die GPU integriert, und zur Ausführung von CSF-Befehlen ist eine spezielle Einheit zur Ausführung von Befehlen (Command Execution Unit) vorgesehen.
Quelle: opennet.ru
