La (non)sainte trinité des fournisseurs de matériel et de logiciels du jeu sur PC montera sur scène lors de la Game Developers Conference (GCD) de cette année pour fournir plus de détails sur les nouveautés dans le monde du graphisme. Les graphiques de travail, une fonctionnalité de DirectX 12 apparue pour la première fois sous forme bêta l’année dernière, occuperont la part du lion de la présentation, mais à côté, il y aura un aperçu de DirectSR : le nouveau système de Microsoft pour implémenter la mise à l’échelle sur les appareils exécutant Windows.
L’une des sessions de la Game Developer Conference de cette année portera sur toutes les dernières technologies graphiques DirectX développées par Microsoft, avec la contribution d’AMD, Intel, Nvidia et Qualcomm. Le premier est DirectSR, alias Direct Super Resolution. À l’heure actuelle, nous savons très peu de choses sur ce que cela signifie, à part que cela « permettra plus facilement que jamais aux développeurs de jeux d’étendre la prise en charge de la super résolution sur les appareils Windows ».
Pour moi, cela suggère fortement qu’il s’agira d’une nouvelle API pour gérer la mise à l’échelle, similaire à celle utilisée pour accéder au FSR d’AMD ou au DLSS de Nvidia, mais elle sera beaucoup plus indépendante du matériel.
La nouvelle selon laquelle Microsoft apporterait un « upscaler automatique » à Windows est apparue il y a quelques semaines à peine, et bien que les deux systèmes concernent la mise à l’échelle, DirectSR semble être quelque chose que les développeurs de jeux peuvent utiliser comme implémentation commune. Cela semble cool, mais nous avons déjà quelque chose comme ça et c’est le FSR d’AMD.
Cela fonctionne sur à peu près n’importe quel GPU ou à tout le moins, n’importe quelle carte graphique nécessaire pour exécuter les derniers jeux. Mais s’il s’avère meilleur que le système basé sur les shaders d’AMD et qu’il offre une compatibilité matérielle encore plus large, alors DirectSR pourrait bien être une nouvelle intéressante pour les joueurs sur PC.
Le dernier événement GDC auquel j’ai assisté physiquement était un long il y a longtemps (17 ans, pour être précis), mais le principe n’a pas changé du tout : une semaine de séminaires, de présentations et de démonstrations de tous les aspects de la création de jeux. Parfois, vous apprenez des choses intéressantes et l’un de mes préférés de tous les temps est l’aperçu détaillé des coulisses des graphismes d’Assassin Creed III.
Je suis donc particulièrement intéressé par l’autre sujet abordé : les graphiques de travail, une fonctionnalité de Direct3D 12 (la partie graphique de DirectX) qui a été lancée en avant-première en 2023. Les graphiques de travail ne seront jamais quelque chose que vous pourrez simplement activer dans un jeu, mais pour le bon développeur qui crée le bon jeu, ils pourraient être très utiles.
Voici leur principe de base. Que se passe-t-il si un shader s’exécute sur un GPU et que sa sortie finale détermine si tout un tas de nouveaux shaders doivent être exécutés ? Normalement, ces informations devraient être renvoyées au processeur, pour qu’il émette l’appel aux shaders dans une nouvelle liste de commandes. Les graphiques de travail conservent tout cela sur le GPU lui-même, permettant au code du moteur de jeu exécuté sur le processeur graphique de gérer tous les différents chemins de shader.
AMD a produit un exemple de code que vous pouvez consulter si vous avez un penchant pour le codage D3D12, mais il ne fonctionnera que sur les GPU Radeon RX série 7000. Si vous possédez une carte graphique Intel ou Nvidia, vous devrez discuter avec eux pour obtenir l’accès à un pilote bêta prenant en charge les graphiques de travail.
Ce n’est encore qu’un début, mais les avantages sont une plus grande efficacité du GPU et une réduction des surcharges de CPU et de mémoire ; l’objectif à long terme est de déplacer autant que possible le pipeline de rendu vers des graphiques de travail. Il faudra cependant attendre encore un mois jusqu’à la session du GDC pour en savoir plus. Bon sang, je veux savoir maintenant.