Компания Collabora объявила о готовности открытого драйвера panthor, развиваемого для десятого поколения GPU Mali (G310, G510, G710), в котором применяется технология CSF (Сommand Stream Frontend), выносящая на сторону прошивки некоторые функции драйвера для снижения нагрузки на CPU и предлагающая новую модель организации выполнения работ на GPU. DRM-драйвер (Direct Rendering Manager) panthor принят в ветку drm-misc и предположительно войдёт в состав ядра Linux 6.10. Изменения для поддержки нового драйвера также приняты в Mesa и включены в состав Gallium-драйвера panfrost для GPU Mali.
В новом поколении GPU Mali планировщик Job Manager заменён на интерфейс CSF (Command Stream Frontend), в котором вместо модели на основе отправки цепочки работ применяется модель на основе потока команд с планированием очереди потока команд на стороне прошивки. Для организации работы планировщика в GPU встроен отдельный микроконтроллер Cortex-M7, а для выполнения инструкций CSF предусмотрен специальный блок выполнения команд (Command Execution Unit). Подобные особенности требуют принципиально другой организации передачи работ в GPU из пространства пользователя.
Изначально была предпринята попытка реализации поддержки GPU Mali на базе CSF в DRM-драйвере Panfrost, но разработчики пришли к выводу, что это приведёт к большому усложнению существующего драйвера и для CSF более оптимально создание нового драйвера, построенного с использованием иной архитектуры. В драйвере panthor реализован полностью новый uAPI, новая логика планирования работ и новая логика управления MMU/GPU-VA. В качестве основы для нового драйвера использован существующий код DRM-драйвера Panfrost, из которого заимствованы типовые шаблоны инициализации драйвера, управления частотой и управления питанием.
Первое время разработка нового драйвера велась с использованием обратного инжиниринга, но затем к проекту присоединилась компания ARM, предоставила доступ к документации и приняла участие в рецензировании кода. Два сотрудника ARM получили статус помощников сопровождающего (co-maintainer) драйвера для ядра Linux. В дальнейшем после готовности OpenGL-драйвера работа будет сосредоточена на реализации Vulkan-драйвера для новых GPU Mali и модернизации существующего Vulkan-драйвера для старых GPU Mali.
Отмечается, что подготовленный драйвер panthor позволяет обеспечить поддержку GPU на платах c SoC Rockchip RK3588. Компанией Collabora также проделана работа по обеспечению загрузки плат на базе Rockchip RK3588 с использованием полностью открытого программного стека. Для Rockchip RK3588 подготовлен системный образ на базе Debian и открытый загрузчик для замены проприетарных компонентов BL31 (Boot Loader stage 3.1).
Источник: opennet.ru