Bilan de la GDC 2024 : technologie de traçage de chemin, de mise à l’échelle et de destruction du processeur
ReSpec est un peu différent cette semaine. J'ai passé la semaine sous le soleil de San Francisco à la Game Developers Conference (GDC), courant de réunion en réunion et essayant de trouver un moment pour écrire quelques mots.
Au lieu d'une chronique normale, nous avons décidé de publier un échantillon d'entrées de la newsletter ReSpec récemment lancée couvrant ce que j'ai vu à la GDC cette semaine. Si vous souhaitez recevoir cette même newsletter dans votre boîte de réception chaque semaine, inscrivez-vous maintenant et bénéficiez du contenu exclusif.
Le tracé du chemin est un mensonge
Peut-être que « mensonge » est un mot trop fort à utiliser, mais le traçage de chemin est assez délicat lorsqu’il s’agit de sa mise en œuvre dans les jeux. J'ai participé à des sessions de traçage de chemin dans Cyberpunk 2077 et Alan Wake 2 à la GDC, qui décrivaient tous deux un fil conducteur pour l'utilisation du traçage de chemin dans un jeu destiné à fonctionner en temps réel, à une fréquence d'images jouable. Et cela s’appelle ReSTIR Direct Illumination.
Tout d'abord, comment fonctionne le traçage de chemin : nous prenons un pixel et nous traçons une ligne à partir de celui-ci, loin de la caméra. Il entre en collision avec quelque chose et rebondit. Et cela continue, rebondissant autour de la scène jusqu'à ce qu'il s'éloigne dans l'éther ou se termine à une source de lumière. Les développeurs veulent ces chemins qui se terminent à une source de lumière, notamment pour calculer les ombres.
Le problème dans tout type de contexte temps réel est que ce processus est extrêmement coûteux. Calculer tous ces rayons et tous ces rebonds, même si seule une petite quantité d’entre eux sera utilisée, monopolise une tonne de ressources. C'est pourquoi le traçage de chemin est une technique hors ligne depuis si longtemps : vous devez calculer les chemins possibles et en faire la moyenne.
Ce n'est pas le cas pour Alan Wake 2 et Cyberpunk 2077 . Pour les lumières directes, ReSTIR fonctionne en pondérant les sources lumineuses d’une scène et en n’échantillonnant qu’une sélection d’entre elles. Ensuite, ces échantillons sont partagés temporellement (sur plusieurs images) et spatialement (avec les pixels proches). Dans le cas d'un jeu comme Alan Wake 2 , certaines lumières sont plus lourdes, comme les lumières « cinématiques » bleues et rouges que vous voyez dans une gare.
Le résultat est une image qui s'assemble beaucoup plus rapidement, au moins assez vite pour que vous puissiez jouer à un jeu à une fréquence d'images raisonnable avec une bonne dose de mise à l'échelle et de génération d'images.
C'est une information intéressante et qui, espérons-le, deviendra plus courante avec les développeurs titans d' Alan Wake 2 et Cyberpunk 2077 partageant leur travail.
Microsoft met le pied sur la mise à l’échelle
Lors de la GDC, Microsoft a finalement parlé davantage de DirectSR et a même réussi à convaincre les développeurs d'AMD et de Nvidia de s'asseoir sur le même panel. Ensemble, même ! DirectSR n'est pas un moyen de mettre fin aux guerres de mise à l'échelle, comme nous le pensions au départ, mais il fournit un cadre unifié permettant aux développeurs d'ajouter plusieurs fonctionnalités de mise à l'échelle à leurs jeux.
Une grande partie de cela est la contribution. Lors de l'interface avec DirectSR, il existe un ensemble standardisé d'entrées que les développeurs accordent à l'interface de programmation d'application (API). Il peut ensuite transmettre ces entrées aux upscalers intégrés, tels que le FSR 2 d'AMD, ou à des variantes nécessitant un matériel spécifique, comme le DLSS de Nvidia .
Ce n'est pas différent du propre framework Streamline de Nvidia, qui a été conçu pour accomplir quelque chose de similaire avant qu'AMD ne décide de ne pas jouer au ballon. Il semble que Microsoft, en tant que tiers neutre dans cette bataille, soit celui qui pourrait rassembler tout le monde.
Je ne sais toujours pas à quoi cela ressemblera réellement dans les jeux. DirectSR n'est même pas encore disponible pour les développeurs. Il est possible que rien ne change pour les utilisateurs finaux, et nous voyons toujours plusieurs options de mise à l'échelle dans les menus graphiques. Peut-être que Microsoft mettra à jour Windows pour inclure une option de mise à l'échelle universelle en fonction du matériel dont vous disposez. Ce n'est pas clair, mais DirectSR devrait quand même permettre aux développeurs de mettre en œuvre plus facilement toutes les variantes de mise à l'échelle dans leurs jeux sur DLSS, FSR et XeSS d'Intel.
Un avantage qui n’était pas apparu à l’origine était la manière dont ce système fonctionne avec les mises à jour. Nvidia, AMD et Intel publient constamment de nouvelles versions de leur technologie de mise à l'échelle qui apportent des améliorations mineures à la qualité de l'image ou modifient légèrement le fonctionnement de la mise à l'échelle. Avec DirectSR, les développeurs n'auront pas besoin d'ajouter toutes ces mises à jour à leurs jeux : ils travailleront simplement via l'API.
Tout cela est un bravo pour moi. La mise à l'échelle a été un point de discorde majeur, en particulier pour les grandes versions comme Starfield et Resident Evil 4 qui ne prenaient en charge qu'un seul upscaler au lancement. Le seul inconvénient est la génération de trames. Cela ne semble pas être prévu pour DirectSR pour le moment, il y aura donc encore beaucoup de va-et-vient dans le futur pour les grandes marques graphiques.
Mort à votre CPU ? Pas exactement
L'une des annonces les plus intéressantes de la GDC cette année a été celle des Work Graphs . J'en ai parlé la semaine dernière dans la newsletter, mais j'ai examiné de plus près Work Graphs lors du DirectX State of the Union de Microsoft. L'idée derrière eux est de réduire la pression exercée sur votre processeur en laissant votre GPU diriger son propre travail.
Il y a un peu plus de nuances dans la conversation. Cela donne plus de pouvoir à votre GPU pour décider quoi faire, comme lorsque les shaders programmables ont été introduits pour la première fois sur les cartes graphiques . Un Work Graph est composé de nœuds, et ces nœuds peuvent générer d'autres nœuds sur lesquels votre GPU peut travailler plutôt que d'attendre le travail du CPU. Microsoft l'a décrit comme un shader de calcul capable de lancer un autre shader de calcul.
L’avantage évident, et les joueurs sur PC l’ont rapidement compris, était l’utilisation du GPU. Microsoft a expliqué que le système actuel nécessite un point de synchronisation global entre le GPU et le CPU. Cela signifie souvent que le GPU, étant un périphérique hautement parallèle, reste sans travail pendant de brèves périodes en attendant qu'une synchronisation se produise.
Ce à quoi je ne m'attendais pas, c'est l'impact que cela aurait sur la mémoire. Avec la programmation actuelle dans DirectX 12, Microsoft a expliqué que vous utiliseriez la commande ExecuteIndirect, qui nécessite de conserver plusieurs tampons. Avec Work Graphs, vous n'avez pas besoin de conserver ces tampons, car le GPU peut démarrer son propre travail et continuer à générer du travail pour lui-même.
Robert Martin d'AMD a démontré à quel point cela représente un problème avec une scène qui nécessitait 3,3 Go de mémoire. Avec Work Graphs, l’utilisation de la mémoire n’était que de 113 Mo, ce qui s’accompagnait d’une légère amélioration des performances. Comme le décrit la présentation, « l’empreinte mémoire évolue avec la taille du GPU, et non avec la taille d’une charge de travail ».
Les Work Graphs sont invisibles pour les utilisateurs finaux, mais ils constituent réellement la prochaine frontière de la programmation graphique et, comme AMD, Nvidia et Microsoft l'ont tous dit, c'est quelque chose sur lequel les développeurs travaillent depuis des années. Moins d’utilisation de la mémoire et de meilleures performances me semblent bonnes. Nous devrons simplement attendre que Work Graphs fasse sensation dans les vrais jeux.