Annonce

Réduire
Aucune annonce.

Des infos du blog des développeurs de Xplane

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • X-Plane 12.x Des infos du blog des développeurs de Xplane

    Salut ,
    merci à Fredo / playrec qui régulièrement publie les dernières informations sur le forum de pilotevirtuel.fr , des dev de Xplane / Laminar
    vous trouverez ici deux articles extrêmement intéressants

    traduction google dont le titre laisse à désirer ... :

    " glorieux avenir multicœur est ( rend ) désormais le présent ennuyeux.

    Publié le 19 décembre 2025


    Voici un article de blog dont je rêvais depuis des années, en fait depuis mon embauche il y a 8 ans : le glorieux avenir multicœur est arrivé. Mais comme toujours, il y a des conditions, alors laissez-moi vous expliquer le contenu de cette version et ce à quoi vous pouvez vous attendre. Tout d’abord, si vous souhaitez une introduction aux performances en général, vous pouvez tout lire ici : Un bref aperçu des performances. >>> mon second post
    Conditions d'utilisation

    1. Attentes

    Avant toute chose, soyons clairs : inutile de demander quels gains de performance vous pouvez espérer. Ils peuvent être minimes, voire importants. Le multithreading n'affecte que le processeur ; si votre configuration est limitée par la carte graphique, vous ne constaterez aucune amélioration du nombre d'images par seconde, car le facteur limitant reste la carte graphique. Tout le reste dépend de la configuration de X-Plane, de votre matériel, des extensions utilisées, etc. La seule façon de savoir si vous constaterez des améliorations est d'installer la version 12.4 et de la tester vous-même. 2. Projets futurs

    De plus, ce n'est pas la dernière mise à jour concernant le multithreading. Je suis très enthousiaste, mais ce n'est qu'une petite partie de ce que nous avons prévu. Il reste encore du travail de refactoring du moteur et du code à optimiser, mais nous nous sommes dit : « Pourquoi garder pour nous les améliorations que nous avons déjà alors que nous pourrions les proposer à nos clients pour qu'ils les testent en conditions réelles ? »
    D'où nous venons

    Une idée reçue veut que X-Plane n'ait pas du tout exploité le multithreading , ce qui, selon le point de vue, est soit totalement faux, soit partiellement vrai. X-Plane effectue de nombreuses tâches en arrière-plan, notamment le chargement des décors et la gestion des textures. Mais il s'agit de tâches de longue durée ; ce qui nous manquait jusqu'alors, c'était un véritable multithreading par image. Nous avions bien quelques petites tâches pouvant s'exécuter en parallèle, mais la majeure partie de l'image était générée sur le thread principal.
    On suppose généralement que le modèle de vol est l'élément le plus gourmand en ressources pour X-Plane, mais en pratique, ce sont généralement le parcours du graphe de scène et le rendu qui représentent la majeure partie du temps d'affichage, parfois jusqu'à 75 %. Plus votre décor est complexe, plus cette tâche prendra de temps. Pour ceux qui ne travaillent pas dans le développement de jeux, le parcours du graphe de scène consiste à parcourir la scène et à déterminer ce qui doit être rendu. La seconde étape consiste à traiter les données à rendre, puis à exécuter toutes les commandes de rendu. Cela implique généralement de trier les données de rendu afin de réduire le nombre de modifications de matériaux et d'états. Tout cela prend du temps, et plus le décor est complexe, plus le temps nécessaire est important.
    Il y a un autre élément important à prendre en compte : les ombres. Le rendu des ombres s'effectue en modélisant la scène du point de vue du soleil, ce qui permet de déterminer les parties de la scène éclairées et celles qui restent dans l'ombre. Par définition, tout ce que le soleil peut voir est éclairé, et tout ce qu'il ne peut pas voir est dans l'ombre. Cela signifie que la scène est parcourue deux fois : une fois pour le rendu des ombres et une fois pour la scène principale. Ainsi, même si le coût n'est pas doublé, le rendu des ombres n'est pas gratuit.
    Vous êtes ici




    ^ Ceci est un schéma très simplifié expliquant le filetage dans X-Plane
    Le traitement du décor occupant une part importante du temps d'affichage, il constitue une cible privilégiée pour les améliorations multicœurs. C'est précisément ce qu'intègre la version 12.4. Dès que la caméra est positionnée et que l'on connaît la position et la direction de l'œil virtuel, le traitement du décor pour les ombres et la scène principale est lancé. Ce traitement est effectué en plusieurs étapes sur plusieurs cœurs de processeur, afin de minimiser le temps d'exécution.
    Pendant ce temps, les panneaux et les appareils avioniques fonctionnent également en arrière-plan. Cela nous permet de masquer les mises à jour avioniques plus lentes, car X-Plane peut alors traiter un grand nombre de scènes. Vous le remarquerez particulièrement avec les avions additionnels dont le temps d'affichage des panneaux est très long, mais même nos instruments Garmin et intégrés ne sont pas totalement exempts de ressources.
    De plus, nous essayons d'optimiser le planning. Nous veillons donc à effectuer d'abord le parcours et la préparation du décor d'ombres, afin de pouvoir commencer l'encodage des commandes de rendu des ombres dès que les panneaux sont prêts. Pendant ce temps, le parcours du décor sur l'interface principale, bien plus gourmand en ressources, peut s'achever en arrière-plan. Idéalement, nous pourrons ensuite lancer immédiatement la génération des commandes de rendu une fois cette étape terminée.
    Bien sûr, ceci est la théorie ; en pratique, certaines opérations peuvent ne pas se terminer à temps et le thread principal doit alors attendre les résultats. Cela devrait tout de même être plus rapide car le parcours de la scène est effectué en parallèle, donc plus rapide que si seul le thread principal travaillait dessus. Mais la théorie et la pratique ne coïncident pas toujours. Encore une fois, le seul moyen de connaître les performances réelles est de tester vous-même.
    De plus, nous avons optimisé le chemin d'exécution du rendu et réduit le nombre de changements d'état que X-Plane doit effectuer pour passer d'un objet à l'autre. Nous avons également déplacé une grande partie des calculs à la volée des paramètres et des données des matériaux vers un thread d'arrière-plan, ce qui nous permet, une fois le rendu lancé, d'émettre des commandes le plus rapidement possible.
    Cependant, l'affichage proprement dit de la scène reste monothread ! Une fois le parcours parallèle de la scène terminé, le thread principal de X-Plane crée toujours un tampon de commandes pour encoder tout le rendu nécessaire. De même, les configurations multi-écrans pourraient théoriquement bénéficier d'une amélioration bien plus importante, mais en pratique, il faut toujours parcourir la scène de chaque écran séquentiellement.
    Où allons-nous ?




    Les deux solutions évidentes sont le rendu parallèle de l'image et la gestion simultanée de plusieurs écrans. Une autre, moins évidente, serait de traiter les ombres et le rendu principal en parallèle, puis de soumettre les tâches au GPU dans le bon ordre. Toutes ces fonctionnalités sont prévues, mais elles nécessitent des modifications du moteur lui-même. Il reste encore beaucoup d'état global partagé lors du rendu d'une scène, qu'il nous faudra d'abord optimiser.
    Ce qui me passionne particulièrement, c'est le nouveau système de tâches intégré à la version 12.3, qui sous-tend le fonctionnement multicœur. Au lieu d'écrire minutieusement du code C++ pour répartir et assembler les tâches dans le bon ordre, nous pouvons désormais décrire la trame comme un ensemble de tâches individuelles et leurs dépendances. L'ordinateur détermine alors la manière optimale de les répartir. Ce système est analogue à celui du graphe de rendu introduit dans la version 12.06, qui permet de décrire le rendu de la scène comme une série de nœuds aux dépendances précisément définies. L'ordinateur peut ensuite calculer comment exécuter les commandes et générer les ressources.
    Cela nous offre une flexibilité considérable pour réorganiser l'image, puisqu'elle n'est plus un bloc monolithique massif. Outre l'amélioration majeure que représente le rendu parallèle, nous prévoyons également d'exploiter ce système pour optimiser les performances en planifiant plus efficacement le rendu de l'image. Mais maintenant que le travail initial n'est plus qu'une formalité, tout cela se profile comme un avenir prometteur. "



    This is a blog post that I have dreamed of writing for years, in fact ever since I got hired 8 years ago: The glorious multi-core future is now. But, as always, there are strings attached so let me explain what’s in this release and what to expect. First though, if you need a primer […]
    Dernière modification par androl2015, 20 décembre 2025, 13h38.
    Xplane 12 - FS2024
    W11 - i7 10700kf / RAM 64 Go / CG GYGABIT GEFORCE RTX 5080 16 Go écrans : TV 65 " Full Led 4k -
    1 x 2560 x 1080 - 2 X 1366 X 768
    instruments de chez WinCTRL pour Airbus

  • #1
    au sujet des fameux FPS :

    On trouve beaucoup d'idées fausses sur les performances sur Internet, c'est pourquoi je voulais donner quelques explications générales sur le sujet et, je l'espère, clarifier certains points. Les performances dépendent principalement de deux composants : le processeur (CPU) et la carte graphique (GPU). Si vous activez l'affichage des FPS dans X-Plane, vous pouvez consulter des informations détaillées sur la façon dont les performances sont calculées. ^ Ceci est un graphique simplifié
    Ce graphique comporte plusieurs colonnes. La première f-actindique le nombre d'images affichées par seconde. Les colonnes « CPU » frame, « DURÉE » cpuet gpu« DURÉE » indiquent 0.0110respectivement les temps d'affichage (en secondes par image). Dans ce cas, la colonne « CPU » affiche 11 ms, soit 11 ms, tandis que la colonne « GPU » affiche 0.00949,4 ms. Le processeur (CPU) met donc plus de temps à produire une image et constitue le goulot d'étranglement, bien que la différence soit minime. La framecolonne « DURÉE » correspond au temps réel d'affichage par image et inclut la surcharge du pilote et du système d'exploitation. Ici, cette valeur est 0.0121de 12,1 ms, soit 1,1 ms de surcharge supplémentaire par rapport au temps CPU.
    Ces chiffres vous permettent de déterminer les paramètres à réduire pour augmenter le nombre d'images par seconde (FPS). Le facteur limitant les performances est celui qui présente la valeur la plus élevée, qu'il s'agisse du processeur ou de la carte graphique. Si vos performances sont limitées par le processeur, investir dans une nouvelle carte graphique n'aura aucun impact significatif. L'inverse est également vrai.
    Cela vaut pour tous les jeux et simulateurs, pas seulement pour X-Plane. Je vois trop souvent des gens dire en ligne : « J’ai acheté une carte graphique très chère, mais mes performances restent les mêmes. » Avant de dépenser une fortune, assurez-vous d’investir dans le bon composant ! Le FPS est une mauvaise mesure

    Les performances sont généralement mesurées en images par seconde (IPS), mais cette mesure n'est pas très pertinente. En tant que développeurs, nous préférons raisonner en termes de temps d'affichage par image, l'inverse des IPS. La conversion entre les deux s'effectue avec ` FPS = 1 / frame_timetf.ipt frame_time = 1 / FPS...1 / 60 = 0.0166666667
    Nous préférons parler de temps par image car les FPS ne constituent pas une mesure relative. « 5 FPS de plus » ou « 10 FPS de moins » n'ont aucun sens sans point de référence. Prenons trois valeurs : 30, 60 et 90 FPS, et une valeur relative de 5 FPS de moins. Voici les résultats :
    (1 / 25) - (1 / 30) = 0.0066666667
    (1 / 55) - (1 / 60) = 0.0015151515
    (1 / 85) - (1 / 90) = 0.0006535948
    Si votre fréquence de base est de 30 FPS, une perte de 5 FPS représente un temps supplémentaire considérable de 6,6 ms par image. À 60 FPS, ce temps est de 1,5 ms et à 90 FPS, de 0,6 ms. La différence est énorme ! 6,6 ms, c'est un temps supplémentaire important par image et cela pose un réel problème, tandis que 0,6 ms est négligeable. C'est pourquoi nous préférons parler de temps par image : 1 ms reste toujours 1 ms.
    J'espère que cela démontre également qu'il s'agit d'un phénomène où les plus aisés s'enrichissent encore davantage. Si vous partez d'une consommation CPU très élevée, vous devrez réduire considérablement cette consommation pour obtenir plus d'images par seconde (IPS), tandis que ceux qui partent d'une consommation CPU assez faible n'ont besoin que d'une légère réduction pour obtenir un meilleur résultat. Chaque doublement des IPS nécessite une division par deux du temps d'affichage de l'image, et la moitié de 16 est bien inférieure à la moitié de 33.

    Pour une analyse complète de la version 12.4.0 et des attentes actuelles concernant le multithreading, veuillez consulter cet article de blog : Le glorieux avenir du multicœur est désormais un présent ennuyeux


    À propos de Sidney

    Sidney est développeur de logiciels pour X-Plane ; en tant que vulkanologue, il est spécialisé dans les coulées pyroclastiques et la communication avec le matériel de minage de bitcoins. Voir tous les articles de Sidney Just ?

    ?
    Xplane 12 - FS2024
    W11 - i7 10700kf / RAM 64 Go / CG GYGABIT GEFORCE RTX 5080 16 Go écrans : TV 65 " Full Led 4k -
    1 x 2560 x 1080 - 2 X 1366 X 768
    instruments de chez WinCTRL pour Airbus

    Commentaire


    • #1
      androl2015 a traduit sous la première photo : Ceci est un schéma très simplifié expliquant le filetage dans X-Plane

      "c'est un schéma très simplifié expliquant le multi tâches dans X-Plane?"

      JustSid ne fait pas de la mécanique mais de l'informatique à très haut niveau !
      XP12.4.4b5 - Zibo.4.05.35 - ZHSI - FDStoXP-Midwest plugin-FSCB737TQ-Sismo OrbitXP-xATC Chatter-XWorldpro-Traffic Global-Navigraph0326
      pc1xp - i9-13900K 4,8 GHz -win11-Asus StrixH Z790-64go ram-rtx4090-ssd-alim 850W-2x77" tv LG4K 7680x2160
      pc2zhsi - i78700K-win11-64go ram-gt730+710-27"+5 lcd mip+2x5"cdu

      B737 OEM sièges cpt-f/o-Ace B737 column yokes - FDS dual mip + 2 cdu - CPFlight mcp/efis/fwd overhead/pedestal - Sismo aft overhead - FSC motorized TQ - palonniers FBC + MFG - B737 tiller Aerosim

      Commentaire

      Chargement...
      X