AMD Radeon HD 6870 et 6850

Publié le 22/10/2010 par
Imprimer
Débit de triangles
Etant les différences architecturales des différentes GPUs 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 avons observé 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 GeForce GTX 480 s’avère ici très rapide et dépasse bien le débit d’un triangle par cycle. Dès qu’il s’agit d’éjecter des triangles du rendu via le culling, aucun autre GPU n’arrive à sa cheville. La GeForce GTX 460 s’approche d’un débit d’un triangle affiché par cycle et est également très rapide pour éjecter les triangles à travers le culling.

Nous sommes cependant loin des maximums théoriques de 4 triangles par cycle pour le GF100 et de 2 triangles par cycle pour le GF104. Quelque chose les limite sans que nous ne sachions exactement de quoi il s’agit. Nous avons par contre pu constater que cette limitation n’existe pas sur les dérivés Quadro.

Les Radeon HD 6800 dépassent ici légèrement les Radeon HD 5800 compte tenu de leur fréquence supérieure.

Nous avons également noté d'énormes gains du côté des GeForce lorsque les GPUs doivent charger plusieurs vertices par primitive. Le GF100 et le GF104 continuent de tourner très vite même s'il doivent en charger 2 ou 3 alors que les autres GPUs voient leurs débits chuter puisqu'ils ne peuvent charger qu'un vertex par cycle.

Ensuite nous avons effectué un test similaire mais en utilisant la tessellation :


L’avantage des GeForce sur les Radeon est ici évident. AMD et Nvidia ont des approches très différentes et les GeForce affichent un débit qui varie fortement suivant les performances de la carte.

Le doublement de la taille du buffer dédié à l’unité de tessellation dans le GPU des Radeon HD 6800 leur permet d’être significativement plus performantes que les Radeon HD 5800, sans toutefois pouvoir rivaliser avec les GeForce. Notez cependant qu’avec 400 millions de triangles par seconde il y a déjà de quoi rendre des scènes très complexes !


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 par rapport à la distance qui permet d’éviter de générer de la géométrie inutile et trop de petits triangles qui ne vont pas remplir un quad, la zone de rendu minimale sur tous les GPUs et donc gâcher beaucoup de puissance de calcul.

Nous avons 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 vite 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 GTX 400 encaissent ici beaucoup mieux la charge liée à la tessellation que les Radeon, bien que la série 6800 affiche un gain conséquent. 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 ou encore suivant la résolution de l’écran 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, et ces dernières passent même devant dans certains cas.
Vos réactions

Top articles