Comment un SSD améliore les performances des consoles lors de la diffusion

Très récemment Microsoft a publié une mise à jour de son API graphique DirectX qui ajoute un nouveau runtime appelé Commentaires de l'échantillonneur , et cela fera partie intégrante de la manière dont les consoles de prochaine génération profiter de leurs SSD pour améliorer les performances en matière de streaming . Voulez-vous savoir comment cela fonctionne? Dans cet article, nous vous l'expliquons.

Sampler Feedback est une nouvelle fonctionnalité Direct3D qui définit comment les informations de texture et de localisation sont capturées et enregistrées à l'écran; sans cela, les développeurs voyaient jusqu'à présent ces détails opaques, avec moins de qualité et nécessitant plus d'efforts de la part du matériel pour générer les images diffusées en Streaming.

Comment fonctionne la rétroaction de l'échantillonneur

Prenez une Xbox Série X , par exemple, dont SSD est modérément rapide avec une vitesse de lecture théorique de 2.4 Go / s et un matériel de décompression qui devrait doubler ce taux pour les textures utilisant un algorithme personnalisé appelé BCPack. De nouvelles techniques sont nécessaires pour pouvoir profiter efficacement de cette bande passante, et qu'en ce qui concerne le streaming depuis la console, les performances des jeux ne sont pas sévèrement pénalisées.

Sampler Feedback utilise les résultats de l'image rendue précédente pour déterminer les textures à lire en mémoire. L'idée est que la plupart des textures stockées en mémoire le font avec une très faible qualité de détail, mais comme le jeu a besoin de textures de résolution plus élevée, elles sont chargées pour l'image suivante. Fondamentalement, il enregistre une image déjà rendue en mémoire pour une utilisation ultérieure.

Chaque texture est constituée de ce qu'ils ont appelé des «Mipmaps», qui sont une chaîne de versions progressivement plus petites de chaque image de chaque texture. Les développeurs utilisent ces textures de type mosaïque qui décomposent de grandes textures en petites boîtes pouvant être chargées individuellement pour rationaliser le processus et améliorer les performances.

Par exemple, une texture 1024 x 1024 pourrait être constituée d'une mosaïque de 64 128 x 128 images. Votre Mipmap aurait une texture 512 x 512 composée de 16 128 x 128 images et une texture 256 x encore plus petite. 256 constitués de 4 cadres et de textures encore plus petites pour des vues supplémentaires.

Mise à l'échelle entière

Chacune de ces tuiles peut être chargée en mémoire ou simplement réservée pour une utilisation ultérieure. Lorsqu'un GPU rend une scène, il regarde les tuiles spécifiques dans les Mipmaps spécifiques dont il a besoin. L'extension Sampler Feedback aide chaque fois que le GPU doit charger une mosaïque, il peut mettre en tampon la trame dont il a besoin et avec quel niveau de détail. Si la tuile dont vous avez besoin n'est pas en mémoire, une version de résolution de texture inférieure sera utilisée pour enregistrer le travail du GPU .

Cela signifie qu'après le rendu Processeur a beaucoup d'informations sur exactement les tuiles nécessaires, vous pouvez rapidement comparer ces données avec ce qui est déjà chargé et vous obtiendrez une liste de ce que le GPU demande mais n'a pas. Le processeur peut également garder une trace des tuiles récemment requises que vous pouvez télécharger pour libérer de la mémoire.

Comment le SSD de la console améliore ses performances de streaming

Il y a deux choses qui déterminent la vitesse à laquelle un SSD peut fonctionner: la taille des demandes (combien de données entrent) et la profondeur de la file d'attente (combien de demandes il reçoit en parallèle). Pour un SSD, des lectures 4K avec une profondeur de 1 ou 2 sont une charge de travail «aléatoire» typique et sont généralement assez lentes. En revanche, les lectures de 128 Ko à des profondeurs de file d'attente de 16 offrent de bien meilleures performances.

Avec 128 x 128 tuiles et 4 octets par pixel, la tuile fait 64 Ko. Plusieurs textures comme la normale et la couleur seront toujours nécessaires en même temps, de sorte qu'elles se chargent et se déchargent ensemble, donc après compression, la taille peut être de 64 Ko ou plus. Parce que le processeur sait quelles textures sont nécessaires à tout moment, il peut les mettre en file d'attente aussi vite qu'il le souhaite, ce qui signifie que en ce qui concerne la transmission de texture, il bénéficiera grandement de la bande passante accrue fournie par un SSD.

Poursuivant avec l'exemple de la Xbox Series X, si la vitesse de chargement de la texture après décompression est de 3.8 Go / s, cela permettrait de charger 64 Mo par image à 60 FPS; c'est assez rapide pour charger 1000 textures par image, l'équivalent d'une seule texture 4096 x 4096.

En d'autres termes, avec cette technologie de rétroaction d'échantillonneur, nous aurons certainement de meilleures performances et une meilleure qualité de textures, ce qui est particulièrement intéressant également pour le streaming car il aurait un pénalité moindre pour le GPU et le CPU en profitant de l'énorme bande passante fournie par le SSD.