La société Collabora a annoncé la disponibilité du pilote open source panthor, développé pour la dixième génération de GPU Mali (G310, G510, G710), qui utilise la technologie CSF (Command Stream Frontend), transférant certaines fonctions du pilote vers le firmware pour réduire la charge sur le CPU et offrant un nouveau modèle d'organisation de l'exécution des tâches sur le GPU. Le pilote DRM (Direct Rendering Manager) panthor a été accepté dans la branche drm-misc et devrait être intégré dans le noyau Linux 6.10. Des modifications pour prendre en charge le nouveau pilote ont également été acceptées dans Mesa et incluses dans le pilote Gallium panfrost pour GPU Mali.
Dans la nouvelle génération de GPU Mali, le planificateur Job Manager a été remplacé par l'interface CSF (Command Stream Frontend), dans laquelle, au lieu d'un modèle basé sur l'envoi de chaînes de tâches, un modèle basé sur un flux de commandes avec planification de la file d'attente des flux de commandes est appliqué côté firmware. Pour organiser le fonctionnement du planificateur, un microcontrôleur Cortex-M7 a été intégré dans le GPU, et un bloc spécial d'exécution des commandes (Command Execution Unit) a été prévu pour l'exécution des instructions CSF. De telles caractéristiques nécessitent une organisation fondamentalement différente de la transmission des tâches au GPU depuis l'espace utilisateur.
Une première tentative a été faite pour implémenter le support des GPU Mali basé sur CSF dans le pilote DRM Panfrost, mais les développeurs ont conclu que cela compliquerait considérablement le pilote existant et qu'il était plus optimal pour CSF de créer un nouveau pilote, construit à l'aide d'une architecture différente. Le pilote panthor implémente une nouvelle uAPI, une nouvelle logique de planification des tâches et une nouvelle logique de gestion de la MMU/GPU-VA. La base du nouveau pilote repose sur le code existant du pilote DRM Panfrost, dont des modèles d'initialisation, de gestion de fréquence et de gestion d'alimentation ont été empruntés.
Au début, le développement du nouveau pilote s'est fait en utilisant l'ingénierie inverse, mais ensuite la société ARM a rejoint le projet, a fourni un accès à la documentation et a participé à la révision du code. Deux employés d'ARM ont obtenu le statut d'assistant mainteneur (co-maintainer) du pilote pour le noyau Linux. Par la suite, après la finalisation du pilote OpenGL, le travail se concentrera sur la mise en œuvre du pilote Vulkan pour les nouveaux GPU Mali et la modernisation du pilote Vulkan existant pour les anciens GPU Mali.
Il est signalé que le pilote panthor préparé permet de prendre en charge les GPU sur les cartes c SoC Rockchip RK3588. La société Collabora a également effectué des travaux pour assurer le démarrage des cartes basées sur Rockchip RK3588 en utilisant un tas de logiciels entièrement ouverts. Un système d'exploitation basé sur Debian et un chargeur de démarrage ouvert ont été préparés pour le Rockchip RK3588 afin de remplacer les composants propriétaires BL31 (Boot Loader stage 3.1).
Source : opennet.ru
