Téléchargez l'application
Tom's Hardware sur l'App Store
Toute l'actu informatique de référence sur votre iPhone
Oui Non

Un nouveau pipeline, Geometry Shader

par

Intéressons nous maintenant plus précisément aux nouveautés introduites par la nouvelle API et pour cela regardons le nouveau pipeline 3D.

Il reste pour sa majeure partie inchangée par rapport au pipeline de Direct3D 9 mais toutefois un nouveau stage fait son apparition : le geometry shader, et les autres stages ont connu quelques modifications. Nous allons étudier ça dans le détail.

Geometry Shader

Le geometry shader constitue la grosse nouveauté de Direct3D 10, ce nouvel étage du pipeline permet de s’affranchir de la limite "1 sommet entrant/1 sommet sortant" qui existe depuis l’apparition des vertex shader. Comme son nom ne l’indique pas forcément, le geometry shader travaille sur des primitives complètes (point, segment, triangle). Il a non seulement accès à tous les sommets de la primitive, mais également à ceux des primitives adjacentes le cas échéant.

Les geometry shaders sont capables de générer plusieurs sommets en sortie formant ainsi de nouvelles primitives, ou tout simplement de supprimer la primitive courante. La limite des geometry shaders est qu’ils ne peuvent générer plus de 1024 valeurs 32-bit en sortie ce qui est plus que respectable même si évidemment il s’agit d’une limite purement théorique, on se souvient notamment des milliers d’instructions gérées par les pixel shader 2.0a des NV3x… Cette limite est d’ailleurs le résultat d’un compromis entre une implémentation matérielle efficace, et les souhaits des développeurs. En effet d’un point de vue du programmeur les primitives doivent être traitées dans l’ordre dans lequel elles sont envoyées au GPU. En pratique ce n’est pas le cas (tout comme les instructions d’un programme peuvent être traitées dans le désordre par le CPU pour maximiser les performances) mais ce doit être transparent pour le programmeur : le matériel doit se comporter exactement comme si l’ordre était préservé. De la même façon les primitives générées par le geometry shader doivent conserver cet ordre ce qui est problématique au niveau de l’implémentation qui repose sur des unités parallèles. Pour résoudre ce problème le résultat des geometry shaders est stocké dans des buffers, qui sont ensuite traités dans l’ordre d’arrivée.

Les possibilités offertes par ces nouveaux shaders sont multiples : comme il est capable de générer plus de primitives qu’il n’en a reçu, un geometry shader peut effectuer de l’amplification de géométrie. De la même façon il peut générer moins de primitives qu’il n’en reçoit ce qui peut permettre d’implémenter un système de niveaux de détails (LoD) sur le GPU.

Notons toutefois que l’amplification massive de géométrie si elle reste possible, ne faisait pas partie des objectifs du design du geometry shader. Pour cette tâche les ingénieurs de Microsoft avaient initialement prévu un autre étage dans le pipeline : le Tesselator qui était visible dans les premières versions du pipeline, à une époque où Direct3D 10 s’appelait encore WGF 2 :

Finalement la complexité introduite par ce nouvel étage a été jugée trop importante au regard des possibilités apportées et il a été décidé de le supprimer.

Partager:
35
Commentaires
X
Valider

Commentaires
Lire les commentaires sur le forum
YannOucH 06/11/2006 10:14
Masquer
-0+

Merci c'est un excellent article ! Le premier en français en plus je pense !

SpadVIII 06/11/2006 10:32
Masquer
-0+

Citation :

Merci c'est un excellent article ! Le premier en français en plus je pense !




Presque:

http://www.hardware.fr/articles/63 [...] -gpus.html (7 juillet 2006)


Sinon, très bon article en effet ! :jap:

ronaldo1 06/11/2006 11:14
Masquer
-0+

Je ne savait pas que directx se limitait qu'a Direct 3D ;)

SpadVIII 06/11/2006 11:22
Masquer
-0+

Citation :

Je ne savait pas que directx se limitait qu'a Direct 3D ;)




C'est la partie de DirectX qui interesse le plus de monde ! La partie gestion des Joystick et autres volants (entre autre) est beaucoup moins passionnante ! :D (même si pas inintéressante finalement).

fourbe 06/11/2006 11:27
Masquer
-0+

Article de très grande qualité !
A mettre en avant au lieu de l'article sur le fusion d'amd :)

et puis bravo microsoft. Meme si on doit changer d'os, Dx avait besoin d'une grosse mise à jour.

Zeross 06/11/2006 12:00
Masquer
-0+

Citation :

Je ne savait pas que directx se limitait qu'a Direct 3D ;)




En fait le nom officiel de la nouvelle API est Direct3D 10, même si l'appelation DirectX 10 est acceptée par MS. Les autres parties de l'API n'évoluent plus et son vouées à être remplacées par leurs équivalents XNA.

ultrabill 06/11/2006 12:11
Masquer
-0+

Citation :

C'est la partie de DirectX qui interesse le plus de monde ! La partie gestion des Joystick et autres volants (entre autre) est beaucoup moins passionnante ! :D (même si pas inintéressante finalement).


Et les parties Audio et Réseau ça sert à rien :o ??

PSIKUS 06/11/2006 12:17
Masquer
-0+

ce qui est bien avec ce genre d'article c'est que l'on comprend tout desuite, surtout le lundin matin, ca met en forme pour la semaine LOL

SpadVIII 06/11/2006 12:50
Masquer
-0+

Citation :

Et les parties Audio et Réseau ça sert à rien :o ??




Si, c'est pour ça que j'ai dit "entre autre"... :o

Celeron466 06/11/2006 13:27
Masquer
-0+

Faut-il garder sa vieille carte graphique de côté, pour continuer à jouer à Quake II ou au 1er Tomb Raider ? Comment faire si je veux jouer à POD : garder un second pc avec une bonne vieille radeon 7000 sous Xp, ou bien une Voodoo 4500 de chez 3dfx...
Jusqu'à quel API les cartes DirectX10 seront-elles rétrocompatibles, seulement DirectX 9 ? - Je parlais de Quake II qu'en est -il d'Open GL, et de ses différentes versions ? (pardon d'avance si j'ai manqué un passage)

AccroPC2 06/11/2006 13:30
Masquer
-0+

C'est un article très interessant, dommage que le francais utilisé soit un peu limite

Citation :modèle de driver impacte également

Citation :le moins pire

etc...

Oui, je sais c'est pointilleux ( surtout que personnellement, je ne suis pas très fort ). Mais vous êtes des pros, non ?

Zeross 06/11/2006 13:49
Masquer
-0+

Citation :Faut-il garder sa vieille carte graphique de côté, pour continuer à jouer à Quake II ou au 1er Tomb Raider ? Comment faire si je veux jouer à POD : garder un second pc avec une bonne vieille radeon 7000 sous Xp, ou bien une Voodoo 4500 de chez 3dfx...
Jusqu'à quel API les cartes DirectX10 seront-elles rétrocompatibles, seulement DirectX 9 ? - Je parlais de Quake II qu'en est -il d'Open GL, et de ses différentes versions ? (pardon d'avance si j'ai manqué un passage)


Direct3D 10 par défaut n'est pas rétrocompatible. Pour faire tourner les anciens jeux Vista intègrera une version de DirectX 9 adapté au nouveau modèle de driver. Si les anciens jeux fonctionnaient avec DirectX 9 en principe ce sera toujours le cas sous Vista. En ce qui concerne OpenGL après quelques tergiversations, au final Vista offrira un support complet, les versions supportées ne dépendant que du fabriquant de carte graphique et pas de MS.

Citation :

C'est un article très interessant, dommage que le francais utilisé soit un peu limite

Citation :modèle de driver impacte également

Citation :le moins pire

etc...

Oui, je sais c'est pointilleux ( surtout que personnellement, je ne suis pas très fort ). Mais vous êtes des pros, non ?




Non ce n'est pas pointilleux c'est justifié, "moins pire" est en effet très laid j'ai honte ;)
Par contre j'avoue que je ne vois pas le problème avec la première phrase :??:

charon 06/11/2006 13:59
Masquer
-0+

Tres bon article :)

SpadVIII 06/11/2006 14:25
Masquer
-0+

Maintenant, on devrait assiter à un grand bon en avant dans la prochaine génération de jeux:

* Processeurs plus puissant et support du multi-core de plus en plus courant.

Alors que dans le même temps nous trouvons:

* Une API plus légère, donc CPU moins sollicité
* Un CPU qui se décharge en plus de certain calculs pour les refiler au GPU
* GPU permettant encore plus d'effet graphiques et toujours plus puissant

= Gain final surement très impressionnant !!! :ouch: (enfin, on a déjà un aperçu dans certain trailers... :love: )

ultrabill 06/11/2006 16:07
Masquer
-0+

Citation :

Si, c'est pour ça que j'ai dit "entre autre"... :o


c'est un peu trop facile ça :o

AccroPC2 06/11/2006 16:16
Masquer
-0+

Alors pour la première phrase ... Le verbe "impacter" n'existe pas dans la langue française ( même si il est très employé ) ;)

Eric B 06/11/2006 16:16
Masquer
-0+

article intéressant, meme si je n'ai pas pris le temps de lire tout en détails.
On comprend mieux pourquoi DX10 ne tournera pas sous XP. Sans aller jusqu'au "complot", il est clair que ce n'est pas intéressant pour MS de redevelopper son GDI pour XP.
Cela reste toutefois un bon argument pour passer tot ou tard à Vista: la communauté de joueur représente un beau panel de clients pour MS qui va encore pouvoir gonfler son compte en banque...
Sans vouloir ouvrir de troll, je pense que c'est d'ailleurs bien ce que bcp critiquent à MS: profiter pleinement de notre société capitaliste.

Celeron466 06/11/2006 18:36
Masquer
-0+

Citation :Direct3D 10 par défaut n'est pas rétrocompatible. Pour faire tourner les anciens jeux Vista intègrera une version de DirectX 9 adapté au nouveau modèle de driver. Si les anciens jeux fonctionnaient avec DirectX 9 en principe ce sera toujours le cas sous Vista. En ce qui concerne OpenGL après quelques tergiversations, au final Vista offrira un support complet, les versions supportées ne dépendant que du fabriquant de carte graphique et pas de MS.


Ah merci bien pour la réponse ! Heureusement que l'Open GL est supporté, car Quake Wars En. Ter. par exemple n'est pas encore sorti ! et ça l'aurait fichu mal que des titres comme Doom 3 ou Quake 4 ne passent plus sous Vista... sacré Carmack !

YannOucH 06/11/2006 20:43
Masquer
-0+

Citation :

Presque:

http://www.hardware.fr/articles/63 [...] -gpus.html (7 juillet 2006)


Sinon, très bon article en effet ! :jap:




Ah merci il m'avait échapper celui-là, il est vieux en plus je suis impardon(n)able ! ;)

AccroPC2 06/11/2006 21:31
Masquer
-0+

Si j'ai bien compris tu ne pourras plus jouer a tes jeux DX8-9 sous DX10 ( pas de retro compatibilité ). A mon humble avis tout le monde n'est pas pret a jeter tous ses jeux à la benne. Donc l'avenement de vista pour le jeu, c'est pas pour demain.

fourbe 06/11/2006 21:36
Masquer
-0+

nan c'est pas vraiment ca.
C'est surtout que plus aucune carte vidéo antérieur à DX10 pourra faire fonctionner un jeu sous DX10.
La rétrocompatibilité sera surtout à ce niveau.
Apres j'espere pour microsoft qu'on pourra tjs jouer aux jeux plus vieux. Parce qu'ils ont aussi une branche jeux ;)

Mictateur 07/11/2006 09:29
Masquer
-0+

Citation :

Donc l'avenement de vista pour le jeu, c'est pas pour demain.



On parie ? ;)

Citation :

Apres j'espere pour microsoft qu'on pourra tjs jouer aux jeux plus vieux. Parce qu'ils ont aussi une branche jeux ;)



D'après ce que j'ai compris, non, DX10 ne permettra pas cela.
C'est WGF 1.0 (DirectX 9L, quoi) qui prendra en charge le côté compatibilité, puisqu'il s'agit juste d'une version de DX9 modifiée pour fonctionner sous Vista. [:spamafote]
WGF 2.0 (DX10) s'occupera de la nouvelle génération. :)


Edit : en fait, je viens un peu de répéter ce que disais Zeross un peu plus haut... :o

Edit bis : j'ai oublié de dire que cet article est franchement génial et très intéressant (en plus d'être assez... enfin, les infos sont tout de même assez bien décortiquées !). :jap:

Deux gros points noirs quand même :
- un petit F7 sous Word, ça ne tue personne. Enfin, à part les rédacteurs, j'ai jamais vu personne en mourir.
- un lexique est du genre... heu... INDISPENSABLE. Sur certains points, j'ai réellement du mal à suivre, et pourtant je suis (du verbe 'suivre') un minimum ce genre d'actualités. J'ai du mal à imaginer un néophyte de la 3D temps réel devant cette article (alors ma grand-mère... [:rire2] ). Des mots sont balancés, comme ça, de manière très violente, et des fois, ça fait mal, on se sent vraiment stupide (même en connaissant les trois quarts des mots techniques, y'a des moments...).

Loacoon 07/11/2006 13:15
Masquer
-0+

Super article, et j'avoue mieux comprendre les raisons de MS pour la compatibilité avec XP.

Citation :
Deux gros points noirs quand même :
- un petit F7 sous Word, ça ne tue personne. Enfin, à part les rédacteurs, j'ai jamais vu personne en mourir.
- un lexique est du genre... heu... INDISPENSABLE. Sur certains points, j'ai réellement du mal à suivre, et pourtant je suis (du verbe 'suivre') un minimum ce genre d'actualités. J'ai du mal à imaginer un néophyte de la 3D temps réel devant cette article (alors ma grand-mère... [:rire2] ). Des mots sont balancés, comme ça, de manière très violente, et des fois, ça fait mal, on se sent vraiment stupide (même en connaissant les trois quarts des mots techniques, y'a des moments...).

Pour une fois je suis d'accord avec toi ;).

wedge 07/11/2006 13:52
Masquer
-0+

Article très interessant et d'un bon niveau technique. Reste a voir ce que ca donnera vraiment avec les premiers benchs et Windows Vista et les premières CG Dx 10 :)

fourbe 07/11/2006 13:56
Masquer
-0+

pour moi les bench c'est comme les stats. Ca n'arrange que ceux qui les font.

Mictateur 07/11/2006 14:17
Masquer
-0+

Citation :

Pour une fois je suis d'accord avec toi ;).



Champaaaaaaaaaaaaagne !



...





LA CHENILLE ! LA CHENILLE ! LA CHENILLE ! LA CHENILLE ! :o

Ashitaka81 07/11/2006 15:14
Masquer
-0+

Moi aussi je suis pointilleux ;)

- Le lien pour réagir en bas de l'article renvoie sur l'article même, pas sur ce forum, c'est normal ?
- "8192x9192" c'est pas très rond.
- "aussi suscitions nous des espoirs", c'est la fête du saucisson :D Plus sérieusement, c'est l'implémentation qui suscitait quelque chose (de l'espoir en l'occurence), pas nous.
- "la rétro-compatibilité abandonnée, un choix rare et courageux, basé sur la technologie et pas sur le marketing"... Faut pas abuser non plus. Effectivement en lisant ce test on se rend compte qu'ils ont fait les choses dans le bon sens, proprement et dans un soucis d'efficacité, mais de là à dire que ce n'est pas marketing, mais rare et courageux, il y a un pas énorme que je ne franchis pas.

ultrabill 07/11/2006 20:01
Masquer
-0+

Citation :

Si j'ai bien compris tu ne pourras plus jouer a tes jeux DX8-9 sous DX10 ( pas de retro compatibilité ). A mon humble avis tout le monde n'est pas pret a jeter tous ses jeux à la benne. Donc l'avenement de vista pour le jeu, c'est pas pour demain.


Donc "non" :o
J'ai pu jouer à Dungeon Keeper sous Vista ;)

Comme l'a dit fourbe, on ne pourra pas lancer de jeux DX10 sur une carte DX5-6-7-8-9.
Actuellement, à part la folie, rien ne t'empèche de jouer à Battlefield sur une TNT2. Avec les jeux DX10, ce sera impossible ;)

Mictateur 07/11/2006 22:16
Masquer
-0+

Citation :

Actuellement, à part la folie, rien ne t'empèche de jouer à Battlefield sur une TNT2. Avec les jeux DX10, ce sera impossible ;)



Tu oublies les options "pari stupide" et "sado-masochisme". ;)

ultrabill 07/11/2006 23:02
Masquer
-0+

Citation :Tu oublies les options "pari stupide" et "sado-masochisme". ;)
c'est pas faux [:grut]

Les offres du moment

Newsletters


OK