Кампанія Collabora абвясціла аб прагрэсе ў распрацоўцы для ядра Linux драйвера Tyr, написанного на языке Rust. Драйвер рассчитан на работу с GPU ARM Mali, в которых применяется технология CSF (Сommand Stream Frontend), таких как Mali G310, G510 и G710. Отмечается, что Tyr достиг уровня, пригодного для обеспечения работы среды рабочего стола GNOME, композитного сервера Weston и полноэкранных игр, таких как SuperTuxKart. Производительность нового драйвера оценена как сопоставимая с драйвером Panthor, написанном на языке Си.


Код драйвера Tyr принят в состав ядра Linux 6.18, релиз которого ожидается в начале декабря. При этом драйвер пока не готов для постоянного использования обычными пользователями и рассматривается как экспериментальный прототип для тестирования абстракций для разработки драйверов на языке Rust.
В качестве каркаса при создании нового драйвера использованы компоненты абстрактного драйвера rust_platform_driver и драйвера Nova, развиваемого для GPU NVIDIA, написанного на Rust и добавленного в ядро Linux 6.16. Функциональность для взаимодействия с GPU Mali портирована из существующего DRM-драйвера Panthor (Direct Rendering Manager), написанного на языке Си. uAPI драйвера Tyr идентичен uAPI драйвера Panthor, что позволяет использовать с ним уже существующие компоненты пространства пользователя.
Тэхналогія CSF, якая ўжываецца пачынальна з 10 пакаленні GPU Mali, характэрна вынасам на бок прашыўкі некаторых функцый драйвера і задзейнічаннем новай мадэлі арганізацыі выканання прац на GPU. У GPU з інтэрфейсам CSF замест мадэлі на аснове адпраўкі ланцужкі прац ужываецца мадэль на аснове струменя каманд з планаваннем чаргі струменя каманд на боку прашыўкі. Для арганізацыі працы планавальніка ў GPU убудаваны асобны мікракантролер Cortex-M7, а для выканання інструкцый CSF прадугледжаны адмысловы блок выканання каманд (Command Execution Unit).
Крыніца: opennet.ru
