[ Vendredi 9 février 2007 ] par Léo de Urlevan
DirectX 10 et les jeux
   
|
 Prix en boutique (hors frais de port)
Du Passé Faisons Table Rase ! - Histoire Et Mémoire Du Communisme En Europe PriceMinister 13.21 €
Du passé faisons table rase ! : Histoire et mémoire du communisme en Europe Amazon.fr 13.21 €


Du passé, faisons table rase



Pour bien comprendre les subtilités de Vista, il convient de comprendre XP et les versions précédentes de DirectX. Après avoir compris les tableaux ci-dessous, le joueur sera partagé entre deux réactions. La première : Vista, c’est vachement bien. La deuxième : XP, c’est vraiment naze. Il faut cependant comprendre que c’est la communication entre tous les acteurs de l’industrie qui a permis d’obtenir une nouvelle trinité : Vista + Super GPU + Jeu d’enfer. Ca nous donne Crysis, Supreme Commander, et pas mal d’autres que nous avons déjà évoqués dans les différentes parties du dossier des tueries de 2007.

Les ingénieurs ont donc mis quelques années à s’apercevoir que si les jeux ramaient, c’était à cause des informations qui transitaient par de nombreuses moulinettes. A force de tourner les manivelles trop de fois, ça use les bras (ça, c’est la version light, j’essaie d’être le plus imagé possible ; après, ça se complique).

Avant

Commençons par un petit lexique. Le CPU, c’est le processeur, le GPU, le processeur graphique. Un peu de géographie également. Les données transitent par trois zones différentes : la zone utilisateur, la zone session et la zone Kernel, ou noyau. La zone utilisateur, c’est bien évidement vous qui la gérez, c’est votre application, votre jeu. L’idée revient à envoyer des informations à la carte graphique. Chaque passage de zone est extrêmement coûteux en utilisation du CPU. Maintenant que ces précisions sont faites, venons-en aux faits.

Il faut comprendre la trajectoire d’une information pour se faire une idée. Nous allons parler d’UNE information. Mais il faut bien avoir en tête que lorsqu’un jeu se lance, des millions d’informations transitent.

Lançons donc l’usine à gaz, Flight Sim X, dont le patch DX10 sera disponible au deuxième trimestre 2007, qui n’aurait peut-être jamais du voir le jour sous DirectX 9.0C tant il rame. FS X envoie une information en vrac. Nous sommes en zone utilisateur. Qui récupère ? DirectX 3D qui immédiatement créé un buffer (il alloue une partie de la mémoire vive à cette information). Le problème, c’est que ce buffer n’est pas lisible directement par le GPU. C’est bien là toute la complication. Ce buffer va être interprété par le pilote de votre carte graphique en passant en zone session (d’où l’intérêt de les avoir à jour lors d’une nouvelle version de DirectX ou la nécessité de savoir si votre matériel est compatible Vista) qui va lui-même créer un autre buffer, lisible par le GPU. Là, nous nous retrouvons en zone Kernel. Jusqu’à ce que les données arrivent au GPU, c’est le CPU qui s’occupe de toutes ces phases de traduction. Comme si cela ne suffisait pas, le passage au premier buffer est très chargé. Le CPU préfère envoyer de très nombreuses données d’un coup plutôt que faire des millions d’allers et retours. Lorsque la mémoire est surchargée, on la comprend, le CPU balance des infos sur le disque dur, il se met à tourner comme un fou et… ça rame.



Après

Avec Vista, les ingénieurs ont décidé de se mettre de côté non seulement les passages de zone mais également les étapes intermédiaires trop nombreuses. FS X balance directement ses informations à Direct3D qui se trouve en zone utilisateur (pas de passage de zone) qui le transforme en buffer – c’était inévitable. Mais celui-ci va être lu par une partie du driver se trouvant en zone utilisateur. Bingo ! Et bien entendu, le driver du GPU n’a plus qu’à se servir.
Autant vous le dire, ici, le schéma est simplifié à mort. Si vous voulez en savoir plus, nous ne pouvons que vous conseiller l’excellent article de Guillaume Randon sur cette page :
http://www.microsoft.com/france/msdn/directx/modele-de-driver.mspx.



Ce qu’il faut retenir :


  • Grâce au nouveau DirectX 10, le CPU est moins sollicité pour des tâches ingrates, comme la transition des données graphiques.
  • Les données transitent beaucoup plus vites.
  • La mémoire est deux fois moins sollicitée. Cela limite forcément les disques durs qui n’en finissent pas de se plaindre lorsque la mémoire est pleine.
  • Vista sans une carte DirectX 10, utilisant encore les schémas DirectX 9.0C, c’est pas très malin.
  • XP avec une carte DirectX 10 non plus… Ca fait juste tourner les jeux plus vites, ces cartes étant très performantes.


Maintenant que nous avons vu pourquoi ça allait plus vite, voyons pourquoi ça va ralentir.



< Sans technique, un don n’est rien qu’une sale manieDirect3D 10 : Pour en prendre plein la vue >

Les Consoles/jeu vidéo déjà testés
 COMPARATEUR DE PRIX 
Trouvez le meilleur prix
OK