Star Citizen Ile Avalon Pilot Logbook
Carnet de Vol d'un Citoyen de l'Espace

De meilleures performances en Alpha 3.17 avec la Gen12 ?
Développement

Faites-vous parti de ceux qui ont constaté une amélioration des FPS sur l'Apha 3.17 actuellement en phase de test sur le PTU ?
Peut-être en avez-vous simplement entendu parler ?

Dans la nuit du 20 au 21 avril 2022, Silvan, de CIG, a publié une annonce sur le Spectrum afin de faire le point sur l'état de l'avancement du développement de la Gen12, et par la même occasion, clarifier les raisons pour lesquelles certains ont pu constater une amélioration.

Voici une traduction du message de Silvan à ce sujet, ainsi que celle d'un post plus ancien en seconde partie de cette blog-annonce.

Progrès de la Gen12 et améliorations des performances en 3.17

Il est temps de faire le point sur la Gen12 car beaucoup de choses importantes se sont passées en coulisses et nous avons entendu beaucoup de réactions de la part de la communauté sur les récentes améliorations des performances.

Je suis fier d'annoncer que notre première grande étape a été atteinte avec la Gen12 dans la version 3.17 !

Cela signifie que toute notre géométrie statique opaque, c'est-à-dire les brosses et tous les objets dispersés sur les planètes et les astéroïdes, passe maintenant par la Gen12, ce qui fait plus que doubler les performances du RenderThread pour ce type d'objets.

Avant de vous affoler, retenez votre souffle car cela ne signifie rien pour l'instant en termes d'augmentation du nombre de FPS.

Des mesures internes ont montré que le RenderThread est rarement limité par le CPU.

En fin de compte, cela signifie qu'un RenderThread plus rapide ne change pas le framerate global dans la plupart des cas. Cela dépendra de votre combinaison CPU/GPU.

Cependant, avec la Gen12, il est pratiquement impossible d'être limité par le RenderThread, ce qui signifie que chaque amélioration des performances sur le MainThread sera directement visible sur votre FPS tant que vous n'êtes pas limité par le GPU.

C'est quelque chose que beaucoup d'entre vous ont déjà observé dans notre dernier patch 3.17 sur le PTU.

Les améliorations de performances que vous constatez sont dues à @ChristopherBolte qui a apporté des améliorations importantes dans le système ECUS (Entity Centric), les mises à jour des hôtes de zone et beaucoup d'autres choses qui améliorent considérablement les performances du MainThread.

Voici d'autres mises à jour de la Gen12 :

  • En interne, tous les Renderproxies comme les vaisseaux, les personnages et les planètes passent déjà par le pipeline de la Gen12. Ils n'ont pas été retenus pour la 3.17, mais seront prêts pour le prochain patch majeur.

    J'ai entendu dire que beaucoup de vaisseaux à l'écran ont tendance à être lourds sur le RenderThread, donc les rencontres de vaisseaux et autres pourraient en tirer de grands avantages (j'apprécierais que quelqu'un puisse tester cela !).

  • Nous sommes sur le point d'activer la Gen12 pour la Cubemaps+RTTs également, ce qui nous permet d'éliminer beaucoup de code hérité !

  • Certaines choses doivent encore être portées, comme tous les passes d'atmosphère de la planète, le rendu du GPUSkinning et du GasCloud, qui seront tous commencés bientôt.

  • Le travail majeur sur la géométrie transparente a commencé. C'est la dernière grande étape que nous devons terminer.

Donc, dans l'ensemble, la Gen12 est très prometteuse en ce moment. Les performances du RenderThread sont plus de deux fois supérieures et nous avons presque tout terminé.

Comme expliqué dans mon précédent post (Cf. la réponse de Silvan à Current and projected CPU core count?, en seconde partie de cette blog-annonce), après la Gen12, il y a encore des tonnes d'autres améliorations prévues qui nous donneront encore plus de performances. Et bien sûr Vulkan !

Une dernière chose : En raison du rendu mixte legacy+Gen12, le moteur doit actuellement passer par les deux codes de rendu, ce qui diminue légèrement les performances du MainThread.

Une fois que la géométrie transparente sera portée, nous n'aurons plus à le faire et nous verrons le plein potentiel de la Gen12. D'ici là, restez à l'écoute et volez en toute sécurité !

-- Silvan-CIG, post Gen12 Progress and Performance Improvements in 3.17 du Spectrum, 20 avril 2022

Star Citizen Spectrum: Progress and Performance Improvements in 3.17

Réponse de Silvan à Current and projected CPU core count?

Nombre actuel, et prévu, de coeurs de processeurs ?

Question pour l'équipe graphique ou du moteur ; Quel est le nombre actuel de coeurs/threads de processeur utilisés par le moteur des jeux Star Citizen et Squadron 42, et quels sont les chiffres visés par les équipes à l'avenir, une fois que la GEN12 sera en ligne ?

Pour l'instant, nous utilisons déjà tous les coeurs. Cependant, il y a deux threads (MainThread et RenderThread) qui ont une utilisation très élevée selon l'endroit où vous vous trouvez dans le jeu.

Dans les scènes où les appels de traçage sont fréquents, comme Lorville, Newbab, etc., le jeu est principalement bloqué par le RenderThread. C'est un gros problème pour le moment et c'est la raison principale pour laquelle le jeu est si lent dans les grands endroits et pourquoi les performances maximales d'un seul thread sont toujours si importantes pour Star Citizen.

La Gen12 et Vulkan amélioreront massivement ce problème. La première étape sera le nouveau moteur de rendu de la Gen12 qui améliorera déjà les performances de manière significative grâce à l'amélioration des performances du fil de rendu.

A partir de la version 3.14, nous allons déployer lentement des parties de la Gen12. Cependant, vous ne verrez la grande amélioration des performances qu'une fois que tout sera complètement transitionné, en particulier une fois que nous aurons activé le rendu de scènes avec la Gen12.

En parallèle, nous travaillons sur le backend de Vulkan, qui progresse également de manière très satisfaisante. Il faut s'attendre à ce que nous puissions déployer Vulkan peu de temps après que le moteur de rendu de la Gen12 soit pleinement opérationnel.

Une fois que cela sera fait, nous nous efforcerons de paralléliser encore plus le rendu de la scène entière et de nous débarrasser de l'ensemble du RenderThread.

Lorsque cela sera fait, le moteur utilisera tous les coeurs disponibles autant que possible et nous ne devrions plus être bloqués par le rendu.

-- Silvan-CIG, réponse au post Current and projected CPU core count? du Spectrum, 6 mai 2021

Star Citizen Spectrum: Current and projected CPU core count

Notes et Références

Dernière mise à jour : 06/06/2023