Компания 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 на платките с SoC Rockchip RK3588. Компанията Collabora също е извършила работа за осигуряване на зареждане на платките, базирани на Rockchip RK3588, с използването на напълно отворен софтуерен стек. За Rockchip RK3588 е подготвен системен образ, базиран на Debian, и отворен зареждач за замяна на Proprietary компонентите BL31 (заваръчен прозорец стъпка 3.1).
Източник: opennet.ru
