Les consoles ont toujours un gros avantage, et cela nuit au jeu sur PC

La mort du jeu sur PC . C'est le sujet à l'ordre du jour depuis plusieurs semaines, avec port après port après port arrivant sur PC dans des états désastreux. Le jeu sur PC n'est pas mort, mais si cette tendance se poursuit, il est difficile de recommander de prendre une nouvelle version sur PC, du moins avant qu'elle ne reçoive une série de correctifs inévitables.

J'aimerais pouvoir fournir une solution unique aux problèmes auxquels sont confrontés les jeux PC, mais je ne peux pas. La liste est énorme. Mais il y a un domaine d'intérêt qui pourrait beaucoup aider la situation, et c'est là que les consoles ont encore une avance sur le PC.

La source du bégaiement

Temps de trame dans Gotham Knights sur PC.
Ces pics de temps de trame se manifestent par de graves bégaiements dans Gotham Knights .

En fin de compte, il y a une chose qui provoque un bégaiement dans vos jeux : un pic de temps de rendu. Quelque chose a obstrué le tuyau pendant un bref instant, et pendant que cela est réglé, il y a un intervalle de temps entre une image qui apparaît sur votre écran et la suivante. C'est un bégaiement.

Mais qu'est-ce qui bouche les canalisations ? Dans de nombreux cas sur PC, on voit bégayer la compilation des shaders. C'est là que le CPU doit envoyer des instructions (shaders) au GPU et les traduire du code logiciel au code matériel. C'est la source du bégaiement dans des jeux comme Gotham Knights dans de nombreux cas.

Nous avons une bonne solution pour le bégaiement de la compilation des shaders . Le premier est la pré-compilation des shaders comme le fait Uncharted : Legacy of Thieves sur PC. Obtenez les instructions stockées en mémoire à l'avance afin que vous n'ayez pas à vous soucier de la compilation pendant que le jeu est en cours d'exécution. L'autre est la compilation asynchrone. Les processeurs modernes comme le Core i5-13600K ont accès à une tonne de threads, de sorte que les threads qui ne font pas grand-chose peuvent gérer la compilation des sections à venir pendant que vous jouez.

Intel Core i5-13600K installé sur une carte mère.
Jacob Roach / Tendances numériques

Ce ne sont pas des solutions simples, mais elles fonctionnent. L'autre source principale de bégaiement que nous voyons est le bégaiement de traversée ou de chargement. C'est le cas de Star Wars Jedi : Survivor, un jeu lancé avec un certain nombre de problèmes de performances . Ici, le pic de temps de rendu provient du chargement du jeu dans de nouvelles données lorsque vous traversez le monde.

Il est important de faire la distinction entre les deux car ils ont des solutions très différentes. Le bégaiement de compilation de shader se produit lorsqu'un nouvel effet de shader est introduit à l'écran. L'ombrage d'un seul pixel peut avoir plusieurs couches d'effets, donc une explosion ou un effet de ramasser un élément sont les zones où vous voyez généralement bégayer la compilation de shader.

Le bégaiement de traversée se produit lorsque votre personnage passe une zone de chargement d'une certaine variété. Si rien de particulièrement remarquable ne se passe à l'écran, il y a de fortes chances que vous voyiez un bégaiement de traversée et non un bégaiement de compilation de shader.

Cal récupère une mise à niveau stim avec BD.

Star Wars Jedi : Survivor est un bon exemple de cette dynamique. Lors de l'ouverture du jeu sur Coruscant, un gros vaisseau s'écrase sur une plate-forme et il y a un bégaiement bref et mineur de compilation de shaders. Plus tard, sur Koboh, lorsque vous entrez ou sortez du Saloon de Pyloon, cependant, il y a environ 10 secondes de bégaiement intense. C'est un bégaiement de traversée.

Les développeurs ont des solutions pour le bégaiement de la compilation des shaders, même sur des moteurs comme Unreal Engine 4 qui sont particulièrement difficiles à gérer dans ce département. Nous avons vu de nombreux bégaiements liés aux shaders corrigés dans des jeux comme Hogwarts Legacy et des jeux comme Atomic Heart ont lancé sans bégaiement grâce à un processus de pré-compilation intense. La situation du bégaiement transversal est plus complexe.

Le Kraken de la prochaine génération

Une personne tenant le SSD de jeu WD Black SN770.

La PS5 et la Xbox Series X ont toutes deux des processeurs de décompression matériels dédiés. Selon Mark Cerny de Sony, le processeur dédié qui utilise la bibliothèque de décompression Oodle Kraken sur la PS5 peut gérer le travail de compression de neuf cœurs AMD Zen 2 . Xbox a mis en place le système DirectStorage de Microsoft , qui comprend également un processeur dédié à la décompression pour accélérer le temps de chargement et, surtout, le streaming des ressources.

Le streaming dans les données du SSD est l'endroit où se produit le bégaiement de traversée, et c'est un problème beaucoup plus difficile à résoudre sur PC. Non seulement les PC ne disposent pas de matériel de décompression dédié, mais la gamme de spécifications des SSD rend difficile la mise à l'échelle fiable des performances de streaming sur plusieurs systèmes.

Sur un PC, la décompression est une tâche pour le CPU. Les données sont diffusées à partir du SSD, mais elles doivent être décompressées pendant le transit, ce qui entraîne souvent un bégaiement de traversée. Le matériel de décompression dédié sur la PS5 et la Xbox Series X entraîne beaucoup moins de bégaiements de traversée, malgré le fait que leurs processeurs ne sont pas aussi puissants que ce qui est disponible sur un PC moderne et haut de gamme.

Il existe des solutions à ce problème sur PC, mais elles ne fonctionnent tout simplement pas encore. DirectStorage est disponible pour les utilisateurs de PC, et il aide à améliorer les temps de chargement et le streaming grâce à la décompression GPU. Le problème est que nous n'avons actuellement qu'un seul jeu avec DirectStorage, Forspoken, et il ne tire pas parti de la décompression GPU. Il améliore simplement les temps de chargement, dépassant légèrement une PS5.

Diverses captures d'écran comparent les temps de chargement dans Forspoken.

Dans tous les autres jeux, le processus est le même. Les actifs sont transférés du stockage vers la mémoire système, le CPU les décompresse, puis ils sont copiés vers la mémoire GPU. Ce processus à forte intensité de main-d'œuvre est probablement l'une des raisons pour lesquelles nous avons vu l'utilisation de la VRAM augmenter si haut dans les versions récentes, car les jeux sont développés pour des consoles qui n'ont pas de goulot d'étranglement de mémoire actuellement présent sur PC.

DirectStorage est une solution, mais ce n'est pas le seul moyen d'améliorer les principaux problèmes de bégaiement de traversée sur PC. La bonne mise à l'échelle du processeur est une solution sous-utilisée, en particulier pour les versions d'Unreal Engine 4. Ce moteur est conçu en grande partie pour fonctionner sur deux threads du processeur, et comme vous pouvez le voir dans des jeux comme Star Wars Jedi : Survivor, les threads restants ne font pas beaucoup de travail, voire pas du tout.

Malgré le fait que les consoles ont moins de puissance de calcul que les PC modernes, les développeurs conçoivent des jeux pour des plates-formes qui n'ont pas de goulot d'étranglement majeur pour le streaming. Vous pouvez toujours obtenir des performances et une qualité visuelle supérieures sur un PC haut de gamme, bien sûr, mais cela se fait au prix d'un bégaiement, d'une résolution de texture réduite et de limitations VRAM qui ne sont pas présentes sur la console, ou à tout le moins, sont beaucoup moins sévère.

La réponse de Nvidia

Une démonstration de la technologie Neural Texture Compression de Nvidia.

Début mai, Nvidia a soumis un document de recherche à Siggraph 2023 – une conférence annuelle centrée sur les progrès de l'infographie – intitulé «Random-Access Neural Compression of Material Textures». L'article propose un système où un réseau de neurones gère la compression et la décompression des textures, et selon lui, le système peut stocker 16 fois les données dans la même quantité d'espace qu'une compression traditionnelle basée sur des blocs.

C'est ce qu'on appelle la compression de texture neurale (NTC). Plus de détails dans les textures pour le même espace de stockage est certainement une option attrayante – comme nous l'avons vu avec Forspoken et Resident Evil 4 Remake, la qualité des textures peut en réalité être bien inférieure sur PC que sur les consoles dans des scénarios à VRAM restreinte – mais le véritable avantage est que NTC est conçu pour décompresser les données lors de l'exécution.

Il y a une légère surcharge par rapport aux processeurs de décompression dédiés, selon Nvidia, mais les chercheurs disent qu'ils s'attendent à ce que cette surcharge soit plus petite une fois appliquée au rendu en temps réel. Plus important encore, la décompression peut se produire directement sur le GPU, en contournant entièrement le CPU et le besoin de matériel dédié.

Cela résoudra-t-il les problèmes de bégaiement et les randonnées VRAM qui affligent les joueurs sur PC ? Je ne sais pas. Pour l'instant, ce n'est qu'un document de recherche, et si nous voyons NTC intégré aux cartes graphiques, c'est probablement dans quelques générations. Ce ne sera probablement pas non plus une fonctionnalité commercialisable comme le Deep Learning Super Sampling (DLSS) de Nvidia .

Mais il est très prometteur. DirectStorage, pour autant de réponse que cela puisse paraître, ne s'est pas matérialisé dans les jeux PC comme je l'aurais espéré. Le matériel le prend en charge, le logiciel est là, mais nous n'avons tout simplement pas de jeux utilisant la décompression GPU matérielle pour se rapprocher de ce que les consoles offrent actuellement. Cette solution peut être plus gérable pour les développeurs et moins exigeante en matériel.

On ne sait pas pour l'instant. En attendant, je croise les doigts pour que le reste de 2023 contienne des versions PC qui fonctionnent réellement, du moins jusqu'à ce que nous voyions plus de façons intelligentes que les développeurs et les fournisseurs veulent résoudre ce qui est un problème clair avec les jeux sur PC.