Daniel Almeida, který pracuje na vývoji video kodeků ve společnosti Collabora, zveřejnil příspěvek na mailing listu vývojářů. Linux- počáteční implementace ovladače Tyr pro grafické karty ARM Mali, které využívají technologii Command Stream Frontend (CSF), jako například Mali G310, G510 a G710. Kód ovladače je napsán v Rustu a obsahuje něco málo přes 600 řádků kódu. Na ovladači Tyr pracují společně společnosti Collabora, Arm a Google.
Rámec pro vytvoření nového ovladače využívá komponenty abstraktního ovladače rust_platform_driver a ovladače Nova, vyvinutého pro grafické karty NVIDIA, napsaného v Rustu a částečně přidáného do jádra 6.15. Funkce pro interakci s grafickou kartou Mali je portována ze stávajícího ovladače Panthor (Direct Rendering Manager) DRM, napsaného v jazyce C. Rozhraní uAPI ovladače Tyr je identické s rozhraním uAPI ovladače Panthor, což umožňuje používat s ním stávající komponenty uživatelského prostoru.
Technologie CSF, používaná od 10. generace grafických procesorů Mali, se vyznačuje přesunem některých funkcí ovladače na stranu firmwaru a použitím nového modelu pro organizaci provádění práce na GPU. V GPU s rozhraním CSF se místo modelu založeného na odesílání řetězce prací používá model založený na toku příkazů s plánováním fronty toku příkazů na straně firmwaru. Pro organizaci práce plánovače je v GPU zabudován samostatný mikrokontrolér Cortex-M7 a pro provádění instrukcí CSF je k dispozici speciální jednotka pro provádění příkazů (Command Execution Unit).
Funkčnost ovladače Tyr stále zaostává za ovladačem Panthor, ale vývojáři hodlají tuto mezeru postupně zmenšovat, dokud nebude dosaženo parity ve schopnostech ovladačů. Chybějící funkce vyžadují integraci dalších abstrakcí do jádra pro vytvoření ovladačů v Rustu, takže vývoj ovladače Tyr bude synchronizován s přidáním těchto abstrakcí do jádra. Jádro například zatím nemá možnosti mapování paměti v ovladačích Rustu pro GPU, které jsou vyvíjeny v sadě patchů GPUVM, která dosud nebyla přijata.
Zdroj: opennet.ru
