- Le projet Asahi Linux permet d’exécuter Linux sur les Mac Apple M1 et M2, avec la prise en charge de la plupart du matériel, y compris le sans-fil, l’audio et l’accélération graphique
- Le projet a débuté en décembre 2020 sous l’impulsion de Hector Martin, puis Alyssa Rosenzweig l’a rejoint en rétroconcevant le jeu d’instructions des shaders du GPU M1
- En décembre 2022, Asahi Linux a mis en place l’accélération graphique en combinant un pilote OpenGL avec un pilote noyau, rendant possible l’exécution de jeux 3D
- En 2023~2024, Rosenzweig a développé des pilotes conformes à OpenGL 4.6 et à la spécification Vulkan 1.4, avec prise en charge des jeux Windows via Proton
- Ce projet open source a dépassé les pilotes non standards d’Apple pour atteindre les standards de l’industrie, ouvrant la voie à l’arrivée de Vulkan sur macOS
Importance et avantages du projet open source
- Asahi Linux est un projet open source qui permet d’exécuter Linux sur les puces Apple M1 et M2, en offrant une prise en charge matérielle complète sans dépendre de logiciels propriétaires
- Alors que les pilotes propriétaires d’Apple ne respectent pas les spécifications OpenGL et Vulkan, Asahi Linux vise la conformité aux standards de l’industrie, ce qui améliore la fiabilité et la compatibilité
- Comparé à d’autres projets open source de pilotes graphiques comme Panfrost, Asahi Linux se distingue par sa progression rapide grâce à la rétroconception et par l’optimisation des performances en jeu via Proton
Début du projet et premiers travaux
- En décembre 2020, Hector Martin a lancé Asahi Linux et engagé la rétroconception du GPU Apple M1
- Alyssa Rosenzweig a rejoint l’effort alors qu’elle travaillait chez Collabora sur Panfrost (pilote open source pour GPU Arm Mali)
- Elle comptait au départ donner quelques conseils simples, mais a acheté un Mac M1 et commencé à analyser les instructions de shader
- Début 2021, Rosenzweig est parvenue en quelques semaines à rendre un triangle, posant les bases de la 3D
- Le rendu d’un triangle est le point de départ de tout travail en 3D, avant de pouvoir réaliser des graphismes plus complexes
- Elle a ensuite développé un compilateur de shaders, puis, après ses examens de fin de semestre, implémenté un pilote OpenGL et démontré l’animation d’engrenages
Développement des pilotes et résultats
- En 2021~2022, Rosenzweig a poursuivi la rétroconception et amélioré le pilote OpenGL, jusqu’à permettre l’exécution de jeux 3D sur macOS
- Asahi Lina a écrit un pilote noyau pour les GPU Apple, combiné avec le pilote OpenGL en espace utilisateur
- En décembre 2022, Asahi Linux a ajouté la prise en charge de l’accélération graphique, achevant ainsi une pile graphique complète
- En 2023, Rosenzweig a mené de front le développement du pilote et son dernier semestre d’informatique à l’université de Toronto
- Après le succès du projet Panfrost, elle a pris le pilote GPU M1 comme nouveau défi
- Objectifs : OpenGL 4.6, Vulkan et prise en charge du jeu via Proton
Conformité aux spécifications OpenGL et Vulkan
- En 2023, elle a implémenté OpenGL 3.1 et obtenu la certification de conformité à OpenGL ES 3.1
- OpenGL ES 3.2 exige des geometry shaders, mais le matériel Apple ne les prend pas en charge ; ils ont donc été émulés avec des compute shaders
- En s’appuyant sur le code commun des pilotes Mesa, le développement a avancé rapidement, avec implémentation de l’émulation geometry/tessellation
- En janvier 2024, la certification de conformité à OpenGL 4.6 a été obtenue, dépassant les pilotes non conformes d’Apple
- Le développement du pilote Vulkan a obtenu la certification Vulkan 1.3 en quelques mois
- L’émulation geometry/tessellation a été intégrée à Vulkan, avec prise en charge des jeux Direct3D et Proton
- Le jour même de l’annonce de la spécification Vulkan 1.4, la certification de conformité a été implémentée et immédiatement publiée
- Karol Herbst a obtenu la certification OpenCL 3.0 en utilisant le compilateur de Rosenzweig et le front-end rusticl
- La prise en charge des textures clairsemées a été ajoutée, permettant d’exécuter des jeux avancés via Direct3D 12 et Proton
Résultats et impact du projet
- Asahi Linux prend en charge OpenGL 4.6, OpenGL ES 3.2, OpenCL 3.0 et Vulkan 1.4, atteignant ainsi tous ses objectifs
- Les pilotes sont entièrement intégrés à Mesa, avec optimisation des performances achevée
- Grâce au gaming via Proton, les jeux Windows s’exécutent de manière fluide sur Linux, en réutilisant les technologies de la Steam Deck
- Le projet a dissipé l’idée reçue selon laquelle Vulkan serait inadapté au matériel Apple, et a permis l’arrivée de Vulkan sur macOS via le projet KosmicKrisp de LunarG
- Après le succès du projet, Rosenzweig quitte l’écosystème Apple, tandis que l’équipe Asahi Linux poursuit le travail
- Son prochain défi prévu : l’architecture Xe HPG d’Intel
Conclusion
- Asahi Linux a réussi à développer des pilotes graphiques open source pour le GPU Apple M1 grâce à la rétroconception
- La conformité aux standards de l’industrie et la prise en charge de Proton élargissent les possibilités du gaming sous Linux sur matériel Apple
- Ce projet montre la force de la collaboration open source et des techniques de rétroconception, en proposant une alternative aux systèmes propriétaires
4 commentaires
Je suis abonné à Asahi Lina, donc j’avais déjà vu un jour en stream du reverse engineering du GPU M1 et du développement du kernel, mais je ne le retrouve plus maintenant… peut-être que c’est archivé.
Ouah..................................................................................................................................... c’est un monstre.
Commentaires sur Hacker News
Cette réalisation est immense non seulement par sa profondeur technique, mais aussi par sa portée symbolique. Le travail d’Alyssa est vraiment inspirant : grâce à sa compréhension technique poussée et à des années de dévouement, elle a apporté le graphisme open source à Apple Silicon, ce qui a énormément stimulé les reverse engineers et les développeurs open source. Elle a montré à une nouvelle génération qu’on peut franchir des barrières avec de la curiosité et de la persévérance. C’était un vrai plaisir de voir ses progrès au fil des dernières années. Grand respect à elle et à toutes les personnes qui ont rendu ce projet possible, et tous mes encouragements pour son nouveau défi chez Intel.
On a vraiment l’impression de voir la fin d’une époque. C’est impressionnant de penser qu’elle a commencé ce parcours à 18 ans et l’a bouclé en 5 ans. Peu de gens croyaient qu’il serait possible de faire fonctionner le GPU sur Asahi linux. Je me demande ce que signifie exactement le prochain défi évoqué dans le lien « Onto the next challenge! ». Je me dis qu’il s’agit peut-être d’un poste sur Intel Xe-HPG.
Oui, son CV indique aussi qu’elle a commencé à travailler ce mois-ci chez Intel sur les pilotes graphiques open source.
Partir de « dessiner un triangle » pour aller jusqu’à faire remonter Vulkan sur M1 dans l’upstream, c’est vraiment remarquable. Concrètement, cela a rendu possible la voie Venus/virtio dans les environnements invités Apple Silicon, et beaucoup de gens ont justement besoin de cette fonctionnalité.
« Je fais partie du comité qui supervise les graphismes Linux, et la moitié de ses membres sont transgenres. Si Linux est vraiment important pour vous, alors vous devez résister aux attaques contre les personnes transgenres. Si vous avez un minimum de conscience, je pense que vous devez vous y opposer. » (lien du blog)
Je pose la question par simple curiosité, mais j’ai l’impression qu’il y a proportionnellement énormément de programmeurs transgenres extrêmement talentueux. La population transgenre représente une très petite part de l’ensemble, donc voir un groupe dont la moitié est transgenre est vraiment inhabituel. Il y a aussi des mèmes comme les « programmer socks », et je connais moi-même personnellement plusieurs programmeurs transgenres très compétents.
Je ne vois pas très bien le contexte de ce commentaire. C’est du même auteur, certes, mais cela ne semble avoir aucun lien direct avec le GPU du M1.
Le fait que l’autrice ait réussi à implémenter rapidement des API graphiques modernes sur un matériel supposé « impossible », puis soit partie sans se retourner, est vraiment saisissant. C’est un parfait « mic drop ».
Comment a-t-elle pu mener ces trois choses de front ? J’ai déjà du mal à en faire correctement une seule.
J’ai l’impression qu’elle fait partie des très rares personnes aux capacités réellement hors normes. Bien sûr, le fait de ne pas perdre son temps dans des efforts inutiles tout en étant suffisamment rémunérée a probablement aussi rendu cela possible. Ce niveau d’autodiscipline et d’orientation vers les objectifs est vraiment rare. Je suppose qu’elle n’a peut-être presque pas de vie de famille, de vie sociale ou d’autres loisirs.
On dirait l’histoire légendaire d’une ingénieure avec une productivité x10.
Je trouve que c’est une réussite vraiment formidable. Ce qu’elle a accompli à 23 ans dépasse ce que j’ai construit en plus de 10 ans dans l’industrie. C’est une ingénieure vraiment douée.
Je veux vraiment remercier l’équipe Asahi, et en particulier pour le travail sur le GPU. Reprendre un jour le développement OpenGL faisait partie de ma liste de souhaits, et depuis que j’utilise fedora-asahi remix comme machine principale, j’ai vraiment l’impression de posséder à nouveau mon ordinateur. Leur travail m’inspire à continuer d’essayer mon code Zig PinePhone, même si je n’ai probablement pas le niveau pour aller au-delà d’un framebuffer bricolé. La checklist des API prises en charge par Asahi est vraiment impressionnante, et ce qui a été accompli en si peu de temps est presque difficile à croire. Encore merci, et bonne chance chez Intel.
Elle a commencé à travailler chez Intel en août, et en quelques mois elle a déjà produit des résultats qui demandent normalement un an à la plupart des gens. C’est vraiment stupéfiant (lien vers le CV).
Je n’ai pas grand-chose de particulier à dire, si ce n’est que j’ai vraiment envie de dire : « Bravo ! », et que j’ai hâte de voir ce qu’elle fera ensuite.
Alyssa est vraiment une personne inspirante. Je suis heureux qu’elle puisse travailler dans un domaine qui l’intéresse.
C’est presque trop romanesque pour croire qu’une seule personne ait accompli tout ça, et c’est vraiment impressionnant.
Je suis allé sur le blog et j’ai aussi lu son résumé : c’est un monstre.
Sa vie entière, c’est littéralement un pilote graphique ;;