- Valve et Collabora travaillent à porter le pilote open-source RADV sur Windows afin d'offrir une alternative aux pilotes propriétaires.
- Ce projet repose sur la rétro-ingénierie de l'interface WDDM2 pour communiquer avec le pilote en mode noyau d'AMD.
- Des étapes importantes ont été franchies, comme l'exécution de Counter-Strike 2, même si le manque de documentation officielle de la part d'AMD constitue un obstacle.
- Cette initiative vise à améliorer la stabilité, le débogage et les performances des GPU AMD sous Windows.
Vous avez sans doute entendu dire que Linux est un paradis pour les amateurs de logiciels libres, et dans le domaine des cartes graphiques AMD, le pilote RADV règne en maître. Ce pilote Vulkan, intégré à Mesa, est devenu la norme pour les joueurs sur Steam Deck ou toute distribution Linux, surpassant même les options officielles d'AMD. Mais que se passerait-il si nous pouvions bénéficier de cette même puissance et de cette même transparence sous Windows ? Eh bien, un groupe de personnes très motivées travaille justement à réaliser ce rêve.
L'idée n'est pas de remplacer les pilotes existants, mais de proposer une alternative. Valve, qui continue de promouvoir l'open source, a financé les experts de Collabora pour tenter de porter RADV sur le système de Microsoft. Bien que cela puisse paraître une mission impossible, ils sont déjà parvenus à faire fonctionner des jeux comme Counter-Strike 2 , démontrant ainsi que, malgré les difficultés, cette voie est tout à fait réalisable avec la patience nécessaire.
De quoi ce port est-il composé techniquement ?

Pour comprendre le problème, il est important de savoir qu'un pilote est divisé en deux parties : le mode utilisateur (UMD), où réside RADV, et le mode noyau (KMD), qui communique directement avec le matériel. Sous Windows, Microsoft utilise une interface appelée WDDM2. La principale différence réside dans le fait que, depuis Windows 10, cette interface permet aux pilotes tiers d'interagir avec le noyau de manière plus flexible.
Le problème, c'est qu'AMD garde ses secrets jalousement. Pour que RADV fonctionne, il doit envoyer des données au noyau AMD, mais ces données sont constituées de « blobs » opaques et ne sont pas documentées. Pour résoudre ce problème, Faith Ekstrand a créé un outil appelé wddm2-pdd-re qui permet d' enregistrer et d'analyser les appels système . Grâce à cette rétro-ingénierie, ils ont pu déchiffrer comment demander de la mémoire, créer des files d'attente de travail et, finalement, afficher des éléments à l'écran.
Obstacles sur la route : matériel et compilateurs

Tout n'a pas été sans embûches. Les développeurs ont constaté que toutes les cartes graphiques ne se valent pas ; par exemple, la mise à niveau d'une RX 7800 XT vers une RX 7900 XT entraînait des plantages système constants. Cela les a contraints à améliorer leurs outils de débogage , en créant une couche de journalisation WDDM2 bien plus performante afin de localiser précisément l'origine des dysfonctionnements dans le flux de commandes.
De plus, la gestion des compilateurs est un véritable casse-tête. Mesa est conçu pour GCC et Clang, mais sous Windows, MSVC est le compilateur dominant. Or, il s'avère que MSVC traite les énumérateurs différemment , les considérant parfois comme des valeurs signées, ce qui entraîne un comportement erratique susceptible de rendre fou n'importe quel programmeur.
Le goulot d'étranglement : l'opacité d'AMD
Pour que ce logiciel soit accessible à tous les utilisateurs sans risque de plantage de leur PC, la stabilité est essentielle. Actuellement, RADV sous Windows est fragile car il repose sur des structures de données privées qu'AMD peut modifier à chaque mise à jour officielle de pilote, sans préavis. C'est comme essayer d'assembler une pièce de puzzle dont la forme change chaque semaine.
Pour surmonter ce goulot d'étranglement, Collabora a demandé en urgence à AMD ou Microsoft de fournir une interface documentée ou une bibliothèque d'interconnexion. Sans cela, la maintenance sera un véritable cauchemar. Autre point critique : le rendu des images. Actuellement, l'entreprise utilise une méthode lente basée sur le processeur et doit implémenter des chaînes d'échange DXGI pour atteindre des performances véritablement compétitives et éviter les goulots d'étranglement.
Pourquoi devrions-nous nous intéresser à ce projet ?
L'intégration de RADV sous Windows n'est pas un simple caprice de programmeur. Les pilotes propriétaires d'AMD sous Windows sont parfois connus pour leur instabilité, provoquant des bugs graphiques sous Windows 11 ou des problèmes dans certains jeux. RADV, étant open source, permet à la communauté de signaler les bogues et d'appliquer des correctifs beaucoup plus rapidement . De plus, cela simplifierait la vie des développeurs de jeux, qui pourraient tester leur code sur une seule implémentation Vulkan pour les deux systèmes d'exploitation.
Cela pourrait également donner une seconde vie aux anciennes cartes graphiques qu'AMD a déjà abandonnées. En tant que projet communautaire, la compatibilité avec le matériel ancien dure souvent bien plus longtemps que le support officiel. Si Valve continue à promouvoir RADV, nous pourrions arriver à un point où son installation sur Windows deviendrait la solution privilégiée pour gagner en stabilité, voire obtenir quelques FPS supplémentaires.
Les efforts conjoints de Valve et Collabora ont transformé une idée audacieuse en un prototype fonctionnel capable d'afficher des polygones dans de véritables jeux. Malgré des difficultés techniques liées aux compilateurs et l'absence de documentation officielle d'AMD, les bases sont posées. L'avenir de cette initiative repose désormais sur la volonté d'ouvrir le noyau afin que l'open source puisse également rayonner sur les ordinateurs de millions d'utilisateurs Windows.