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
