Het bedrijf Collabora heeft de beschikbaarheid van de open-source driver panthor aangekondigd, ontwikkeld voor de tiende generatie GPU Mali (G310, G510, G710), waarin de technologie CSF (Command Stream Frontend) wordt toegepast. Deze technologie verplaatst bepaalde functies van de driver naar de firmware om de belasting op de CPU te verlagen en biedt een nieuw model voor het organiseren van taken op de GPU. De DRM-driver (Direct Rendering Manager) panthor is aangenomen in de drm-misc tak en zal naar verwachting deel uitmaken van de Linux kernel 6.10. Wijzigingen ter ondersteuning van de nieuwe driver zijn ook aangenomen in Mesa en zijn opgenomen in de Gallium-driver panfrost voor GPU Mali.
In de nieuwe generatie GPU Mali is de Job Manager scheduler vervangen door de CSF (Command Stream Frontend) interface, waarin in plaats van een model op basis van een keten van taken een model op basis van een stroom van commando's wordt toegepast met het plannen van de commando-streamqueue aan de firmwarezijde. Voor het organiseren van het werk van de scheduler is er een aparte Cortex-M7 microcontroller in de GPU ingebouwd, en voor het uitvoeren van CSF-instructies is er een speciale Command Execution Unit beschikbaar. Dergelijke kenmerken vereisen een fundamenteel andere organisatie van het verzenden van taken naar de GPU vanuit de gebruikersruimte.
Aanvankelijk werd een poging gedaan om de ondersteuning voor GPU Mali op basis van CSF in de DRM-driver Panfrost te implementeren, maar de ontwikkelaars kwamen tot de conclusie dat dit zou leiden tot een aanzienlijke complicatie van de bestaande driver en dat het voor CSF optimaal zou zijn om een nieuwe driver te creëren, opgebouwd uit een andere architectuur. In de panthor driver is een volledig nieuwe uAPI geïmplementeerd, evenals een nieuwe logica voor taakplanning en een nieuwe logica voor MMU/GPU-VA-beheer. De bestaande code van de DRM-driver Panfrost diende als basis voor de nieuwe driver, waarvan de sjablonen voor initialisatie, frequentiebeheer en energiebeheer zijn overgenomen.
In het begin werd de ontwikkeling van de nieuwe driver uitgevoerd met behulp van reverse engineering, maar later sloot het bedrijf ARM zich bij het project aan, bood toegang tot documentatie en nam deel aan de code-review. Twee medewerkers van ARM hebben de status van co-maintainer van de driver voor de Linux kernel gekregen. Vervolgens, nadat de OpenGL-driver gereed is, zal het werk zich richten op de implementatie van de Vulkan-driver voor nieuwe GPU Mali en de modernisering van de bestaande Vulkan-driver voor oudere GPU Mali.
Het wordt opgemerkt dat de voorbereide panthor-stuurprogramma ondersteuning voor GPU op borden met SoC Rockchip RK3588 mogelijk maakt. Collabora heeft ook gewerkt aan het ondersteunen van het opstarten van borden op basis van Rockchip RK3588 met behulp van een volledig open softwarestack. Voor Rockchip RK3588 is er een systeemafbeelding op basis van Debian en een open bootloader voorbereid ter vervanging van de propriƫtaire componenten BL31 (Boot Loader stage 3.1).
Bron: opennet.ru
