AMD a annoncé que son kit de développement FidelityFX Super Resolution 3 (FSR 3) d’outils de mise à l’échelle et de génération de trames a été ajouté à GPUOpen et GitHub, près de neuf mois après le lancement de la technologie. Cela signifie que n’importe qui peut visualiser le code source des routines, l’expérimenter pour voir comment il fonctionne et implémenter les fonctionnalités dans ses jeux et applications.
Certains développeurs y ont déjà eu accès, en travaillant directement avec AMD pour ajouter FSR 3 à leurs jeux. Cependant, le nombre réel de nouvelles versions en 2023, équipées du système AMD, a été très décevant : juste Forspoken, Immortals of Aveum et Avatar : Frontiers of Pandora. Cela ne veut pas dire que FSR n’a pas été utilisé dans de nombreux jeux, bien au contraire, c’est juste qu’ils ont tous utilisé les systèmes précédents (par exemple FSR 2.2 entrant dans Baldur’s Gate 3).
Ce qui rend FSR 3 un peu spécial, c’est que l’ensemble comprend quatre systèmes : un upscaler, une technique de flux optique, un interpolateur de trame (alias génération de trames) et une routine pour gérer la swapchain. L’upscaler est quelque chose que beaucoup d’entre nous connaissent déjà : il utilise une multitude d’algorithmes intelligents, tous traités via des shaders, pour augmenter la résolution d’une image, puis ranger un peu l’image.
C’est essentiellement ce qu’est FSR depuis le tout début, mais nous avons maintenant ajouté la génération de trames pour faire bonne mesure. Ceci a été développé par AMD comme alternative à la génération de trames DLSS 3 de Nvidia, une technique qui utilise un modèle d’apprentissage automatique pour créer une nouvelle trame, basée sur deux images normalement rendues. Ce système n’est pas seulement propriétaire de Nvidia mais il est également limité à ses cartes graphiques GeForce RTX série 40.
FSR 3 fonctionne non seulement sur n’importe quel GPU prenant en charge DirectX 12 et Compute Shaders v6.2, mais son code est entièrement open source. Vous pouvez littéralement en faire ce que vous voulez, y compris le reconditionner et le vendre comme un élément de votre « propre » logiciel, si vous êtes si enclin à l’immoralité.
En parcourant mes repaires habituels, l’annonce d’AMD a été bien accueillie par la communauté des moddeurs et on semble s’attendre à voir apparaître de nombreux mods de génération de cadres FSR 3 pour les jeux qui ne l’implémentent pas actuellement (ou ne le fera peut-être jamais).
Je n’ai aucun doute que ce sera certainement le cas, mais je soupçonne également qu’un très grand nombre de ces mods auront une apparence vraiment mauvaise ou auront de sérieux problèmes de qualité d’image.
Cela est dû au fonctionnement de l’algorithme d’interpolation de trame dans FSR 3. La première chose dont il a besoin est que l’upscaler de FSR 2 soit présent et utilisé, bien qu’un grand nombre de jeux l’aient de toute façon. Ensuite, le jeu doit créer des tampons supplémentaires, pour partager les données entre les différents composants de FSR 3. Sans ceux-ci, aucun mod de génération de trames ne fonctionnera.
Là où les choses deviennent vraiment délicates, c’est la façon dont le jeu gère l’étape de l’interface utilisateur (UI ou HUD) dans le processus de rendu. L’interface utilisateur est ce qui montre votre barre de santé, les éléments que vous possédez, etc., et c’est à peu près la toute dernière chose à ajouter à un cadre avant qu’il ne soit marqué pour être présenté sur le moniteur.
Pour que l’interpolation de trame FSR 3 fonctionne correctement, l’interface utilisateur doit être réalisée de l’une des trois manières suivantes : En tant que fonction distincte qui est appelée à chaque fois qu’une trame est terminée (réelle ou générée) ; est rendu sous forme de texture, puis appliqué au cadre à la fin ; ou le moteur de jeu restitue les images sans l’interface utilisateur et les utilise pour l’étape d’interpolation.
De nombreux jeux utilisent la deuxième méthode pour générer l’interface utilisateur dans un cadre, mais comme elle n’est créée qu’avec chaque réel cadre, le contenu ne sera jamais mis à jour ou modifié pour le généré cadres.
À des fréquences d’images élevées, cela pourrait donner à l’interface utilisateur un aspect défectueux ou, à tout le moins, un peu lent. Remplacer la façon dont un jeu crée et gère l’interface utilisateur n’est pas une tâche triviale et je soupçonne que de nombreux mods de génération d’images FSR 3 auront un certain nombre de problèmes de qualité d’image.
La première méthode serait la meilleure à utiliser, mais quant au nombre de jeux qui procèdent de cette façon, je ne peux honnêtement pas le dire. La troisième méthode serait la moins bonne à utiliser, en ce qui concerne la qualité globale de l’image, mais j’imagine que relativement peu de développeurs envisageraient de créer leurs jeux de cette façon.
Les moddeurs sont cependant très inventifs et, étant donné la nature open source de FSR 3, nous pourrions avoir droit à des solutions brillamment créatives qui contournent tous les problèmes.
À tout le moins, il n’y a aucune raison pour qu’un développeur ne implémente pas maintenant la mise à l’échelle et la génération d’images dans son jeu, à condition qu’il utilise DirectX 12. La prise en charge de Vulkan est toujours en développement mais rien n’indique quand il sera prêt.
La technologie de génération de trames d’AMD est très intelligente et le fait qu’elle soit si largement supportée est vraiment agréable, et elle mérite d’être utilisée dans plus de trois jeux, plutôt moyens. Nous avons repéré une suggestion sur Reddit selon laquelle pourrait arrive sur Call of Duty: Modern Warfare 3 et en tant que série de jeux qui fonctionne traditionnellement très bien sur les GPU AMD, ce serait la plate-forme idéale pour vraiment lancer l’adoption de FSR 3.
D’ici là, nous devrons simplement attendre que les moddeurs interviennent, mais ne vous attendez pas à des miracles, d’accord ?