Depuis qu’Apple a présenté le M1 il y a deux ans en tant que son Apple Silicon interne pour les ordinateurs portables et les ordinateurs de bureau avec un puissant processeur AArch64 et un processeur graphique conçu sur mesure, il y a eu beaucoup de spéculations sur la question de savoir si les graphiques Apple M1 (et maintenant M2) sont propres.-sheet Apple design ou dérivé des graphiques Imagination PowerVR qu’Apple utilisait avec les SoC précédents. Certaines similitudes ont déjà été soulevées avec l’équipe Asahi Linux travaillant sur l’activation de l’Apple M1/M2 sous Linux, tandis que la dernière activité du pilote Mesa indique des éléments plus communs entre le matériel graphique PowerVR et les graphiques Apple AGX.
Grâce au travail de l’équipe Asahi Linux et à leur travail de rétro-ingénierie de la prise en charge d’Apple Silicon pour Linux, y compris leurs ambitions concernant la prise en charge des pilotes GPU open source, il continue d’y avoir des signes que les graphiques Apple portent une certaine lignée. à PowerVR.
Cette demande de fusion Mesa a attiré mon attention hier : asahi : Réécrire l’état d’émission du code en utilisant informations du pilote Mesa PowerVR. Alyssa Rosenzweig, qui a dirigé les travaux sur la prise en charge du pilote open-source Mesa Gallium3D/OpenGL d’Apple, a expliqué dans ce MR :
En regardant les définitions PPP de PowerVR dans l’arborescence de Mesa (src/imagination/csbgen/), nous constatons que les structures de données”étiquetées”d’AGX sont en fait des séquences d’éléments d’état préfixés par un en-tête spécifiant quel état suit. Plutôt que de coder en dur les séquences dans lesquelles le pilote d’Apple choisit de regrouper l’état, nous avons besoin que le XML soit suffisamment flexible pour encoder ou décoder toute combinaison valide d’état. Cela signifie retravailler le XML. Ce faisant, nous trouvons un certain nombre de champs identiques entre RGX et AGX, et fixons les noms pendant qu’ils s’y trouvent (par exemple, la virgule flottante W Clamp).
Les noms proviennent du code PowerVR dans Mesa, là où c’est sensé.
…
Cette idée est désormais possible depuis le début de cette année, Imagination a publié un pilote PowerVR Vulkan open source qui a été fusionné avec Mesa. (Imagination a également travaillé sur un pilote graphique de noyau DRM open source pour PowerVR Rogue.) C’est en examinant ce code PowerVR Mesa que les dernières similitudes avec le matériel graphique Apple ont été découvertes. Certes, sa portée est limitée et on ne sait toujours pas dans quelle mesure finalement les graphiques Apple M1/M2 sont dérivés de PowerVR IP.
Exécuter actuellement (Asahi) Linux sur l’Apple M1/M2 signifie une rastérisation logicielle basée sur le processeur LLVMpipe jusqu’à ce que l’effort du pilote GPU open source soit plus avancé à la fois pour le code Mesa et le pilote de développement Direct Rendering Manager du noyau.
Le travail d’écriture et d’ingénierie du pilote graphique open source d’Apple est toujours en cours. Le dernier objectif exprimé est, espérons-le, de voir la prise en charge d’OpenGL 2.1 d’ici la fin de 2022, bien que cela puisse prendre plus de temps que cela avant que le pilote du noyau DRM ne soit en amont dans le noyau principal.