Данијел Алмеида, који ради на развоју видео кодека у компанији Collabora, објавио је на мејлинг листи програмера Linux- почетна имплементација Tyr драјвера за ARM Mali GPU-ове који користе Command Stream Frontend (CSF) технологију, као што су Mali G310, G510 и G710. Код драјвера је написан у Rust-у и садржи нешто више од 600 линија кода. Рад на Tyr драјверу заједнички спроводе Collabora, Arm и Google.
Оквир за креирање новог драјвера користи компоненте апстрактног драјвера rust_platform_driver и драјвера Nova, развијених за NVIDIA графичке процесоре, написаних у Rust-у и делимично додатих у кернел 6.15. Функционалност за интеракцију са Mali графичким процесором је портована из постојећег Panthor (Direct Rendering Manager) DRM драјвера, написаног у C-у. uAPI Tyr драјвера је идентичан uAPI-ју Panthor драјвера, што омогућава коришћење постојећих компоненти корисничког простора са њим.
CSF технологија, која се користи од 10. генерације Mali GPU-а, карактеристична је по премештању неких функција драјвера на страну фирмвера и коришћењу новог модела за организовање извршавања посла на GPU-у. Код GPU-а са CSF интерфејсом, уместо модела заснованог на слању ланца послова, користи се модел заснован на току команди са заказивањем реда тока команди на страни фирмвера. Да би се организовао рад распоређивача, у GPU је уграђен посебан Cortex-M7 микроконтролер, а за извршавање CSF инструкција је предвиђена посебна јединица за извршавање команди (Command Execution Unit).
Функционалност Tyr-а и даље заостаје за Panthor драјвером, али програмери намеравају да постепено смањују разлику док се не постигне паритет у могућностима драјвера. Недостајуће функције захтевају интеграцију додатних апстракција у језгро како би се креирали драјвери у Rust-у, тако да ће развој Tyr драјвера бити синхронизован са додавањем ових апстракција у језгро. На пример, језгро још увек нема могућности за мапирање меморије у Rust драјверима за GPU-ове, који се развијају у GPUVM сету закрпа, који још није усвојен.
Извор: опеннет.ру
