Sparkle GeForce GTS 450s

Publié le 13/09/2010 par
Imprimer
Débit de triangles
Etant donné l’évolution apportée par Nvidia au niveau du traitement de la géométrie, nous nous sommes évidemment penchés de plus près sur le sujet. Tout d’abord nous nous sommes penchés sur les débits de triangles dans deux cas de figure : quand tous les triangles sont affichés et quand ils sont tous rejetés (parce qu’ils tournent le dos à la caméra) :


La première limitation au niveau de la géométrie sur les GeForce 400 se situe au niveau des SMs. Chaque SM peut charger un vertex tous les 4 cycles et donc, dans le cas optimal, prendre en charge un triangle tous les 4 cycles. C’est ce que représentent les débits avec back face culling. Alors qu’ils étaient fixes sur les générations précédentes, c’est-à-dire uniquement dépendant de la fréquence du GPU, ils varient avec les GeForce 400 suivant le nombre d’unités qu’elles embarquent. La GeForce GTS 450 disposant de 4 SMs, elle affiche un débit maximal d’un triangle traité par cycle, comme les précédentes GeForce et comme les Radeon HD 5000.

La limitation est différente quand les triangles sont rastérisés en vue d’être affichés. Dans ce cas, tout se passe au niveau des GPCs qui peuvent rastériser un triangle en 8 pixels par cycle. Les GeForce GTX 400 qui disposent de plusieurs GPCs peuvent donc rastériser plus d’un triangle par cycle. Nvidia a cependant mis une limitation en place pour les GeForce de manière à créer un avantage pour les Quadro. La GeForce GTS 450 étant limitée à un triangle par cycle, son rendement n’est pas impacté par ce bridage, ce qui fait qu’en pratique elle à un débit de triangles rastérisés plus élevé que les GeForce GTX 460 et même que la GeForce GTX 465.

Ensuite nous avons effectué un test similaire mais en utilisant la tessellation. Cet outil de test n’est pas encore finalisé et optimisé pleinement de manière à pouvoir atteindre des rendements optimaux. Il permet cependant déjà de comparer les solutions entre elles :


L’avantage des GeForce 400 sur les Radeon HD 5000 est ici évident. Ces dernières semblent limitée à 1 triangle tous les 3 cycles quand la tessellation est utilisée. AMD nous a indiqué que ce n’était pas le cas et que l’unité de tessellation était bien capable de débiter 1 triangle par cycle. Un cas que nous ne sommes pas encore parvenus à reproduire, les Radeons étant très vite dépassées lorsque trop de triangles sont générés. Notez cependant qu’avec 270 millions de triangles par seconde il y a déjà de quoi rendre des scènes très complexes !

Les GeForce évitent ce problème d’engorgement du GPU grâce à un traitement distribué de la tessellation au niveau des SMs. Là aussi, cela veut dire que les GeForce affichent un débit qui varie suivant le nombre d’unités de traitement présentes dans le GPU.


Displacement mapping
Nous avons testé la tessellation avec une démo d’AMD intégrée par Microsoft à son SDK de DirectX. Cette démo permet de comparer le bump mapping, le parallax occlusion mapping (la technique de bump mapping la plus avancée utilisée dans les jeux) et le displacement mapping qui exploite la tessellation.


Le bump mapping basique.


Le parallax occlusion mapping.


Le displacement mapping avec tessellation adaptative.

En créant de la vraie géométrie supplémentaire, le displacement mapping affiche une qualité nettement supérieure. Nous avons activé ici l’algorithme adaptatif basé sur la distance et qui permet d’éviter de générer de la géométrie inutile et donc de trop petits triangles qui vont gâcher beaucoup de ressources.

Nous avons également mesuré les performances obtenues avec les différentes techniques :


Il est intéressant de remarquer que la tessellation ne se contente pas d’améliorer la qualité du rendu, mais également les performances ! Le parallax occlusion mapping est en fait très gourmand puisqu’il repose sur un algorithme complexe qui essaye de simuler la géométrie d’une manière réaliste. Malheureusement il génère beaucoup d’aliasing et le trucage est démasqué aux bords des objets ou des surfaces qui l’utilisent.

Notez cependant que dans le cas présent l’algorithme de displacement mapping est bien aidé par le fait qu’il s’agit d’une surface plane à la base. S’il faut lisser les contours de la géométrie et en même temps appliquer le displacement mapping, le coût sera bien entendu plus élevé.

Les GeForce 400 encaissent ici beaucoup mieux la charge liée à la tessellation que les Radeon HD 5000. Avec un niveau de tessellation extrême, la GeForce GTS 450 est même capable de dépasser la Radeon HD 5870 dans ce test. L’utilisation d’un algorithme adaptatif qui va réguler le niveau de tessellation suivant les zones qui vont recevoir plus ou moins de détails (suivant la distance, la résolution de l’écran etc.) permet dans tous les cas des gains significatifs et sont plus représentatifs de ce que vont faire les développeurs. L’écart entre les GeForce et les Radeon se réduit alors, mais les GeForce 400 conservent une avance significative.
Vos réactions

Top articles