Компания 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 от проstrанството на потребителя.
Първоначално се предприе опит за реализация на поддръжка на 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 и отворен загрузчик, който заменя собственическите компоненти BL31 (Boot Loader stage 3.1).
Източник: opennet.ru
