Capture d'écran de Counter-Strike 2 exécuté sous Windows grâce au pilote open source RADV

C’est un peu le monde à l’envers : Valve finance le portage du pilote graphique Linux vers Windows

Qui l’eût cru ? Valve finance le portage du pilote graphique AMD open source de Linux… vers Windows. Le projet avance si vite que Counter-Strike 2 tourne déjà sur l’OS de Microsoft avec ce pilote libre. Récit.

Habituellement, les ingénieurs du monde libre luttent pour adapter les technologies propriétaires conçues pour l’écosystème de Microsoft. Cette fois, la dynamique s’inverse de manière spectaculaire : Valve finance des travaux expérimentaux visant à porter RADV, le pilote graphique Vulkan open source phare de Linux, directement sous Microsoft Windows.

Dans un billet de blog publié par Collabora, l’ingénieur Louis-Francis Ratté-Boulianne détaille cette initiative qui semblait improbable au départ. Le projet est d’ores et déjà consultable au sein de la branche dédiée sur GitLab.

Un composant clé du Steam Deck exporté chez Microsoft

Au sein du projet Mesa, le pilote RADV s’est imposé au fil des ans comme la référence absolue pour faire tourner l’API Vulkan sur les GPU AMD sous Linux. Il constitue d’ailleurs l’un des piliers logiciels du succès du Steam Deck. L’an dernier, AMD a même choisi d’abandonner son propre pilote ouvert AMDVLK pour concentrer ses efforts sur l’architecture de Mesa.

Sur Windows, les utilisateurs de puces Radeon restent toutefois dépendants du pilote propriétaire distribué par le constructeur. Le travail mené par la société Collabora consiste à faire tourner la couche en mode utilisateur (User-Mode Driver) de RADV directement par-dessus le pilote en mode noyau (Kernel-Mode Driver) de Windows via l’interface système WDDM2.

Le prototype a franchi un cap majeur : l’équipe est parvenue à lancer et faire fonctionner Counter-Strike 2 sous Windows en utilisant le rendu Vulkan propulsé par RADV sur une carte graphique Radeon RX 7900 XT.

🦋 L’actualité de l’open source en français dans votre flux. Suivez Goodtech sur Bluesky (ou vos applications AT Protocol comme W Social et Mu) grâce à notre compte officiel. Suivez, partagez, abonnez-vous à @goodtech.info !

Ingestion de blobs opaques et défis d’ingénierie inverse

L’exploit technique repose sur des travaux d’ingénierie inverse démarrés à l’origine par la développeuse Faith Ekstrand lors de la conférence XDC 2024.

Le principal point de blocage réside dans la nature même des échanges au sein de Windows :

  • Structures non documentées : les appels système D3DKMT transportent des blocs de données privés (private driver data) dont le format interne varie d’une version de pilote à l’autre sans préavis.

  • Couplage étroit : AMD conçoit ses composants noyau et utilisateur comme un ensemble indissociable, sans garantie de compatibilité ascendante.

  • Goulots d’étranglement d’affichage : la gestion de l’affichage utilise actuellement un chemin processeur (CPU) plus lent, nécessitant des développements complexes sur les chaînes d’échange DXGI pour prétendre à un échange sans copie (zero-copy).

Pour transformer cet essai en solution viable pour la production, l’équipe devra créer une bibliothèque d’interface (shim) capable d’absorber les variations du pilote propriétaire d’AMD. Outre le défi technique, disposer d’un pilote open source unique et partagé sur Linux et Windows faciliterait le débogage, accélérerait le déploiement de correctifs et permettrait aux développeurs de jeux de contribuer à une base de code unifiée, quel que soit le système d’exploitation.

Retour en haut