|
Компания 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).
|