Pas mal de choses peuvent influencer les performances du vertex
pipeline. Il est donc intéressant de savoir ce qui peut faire qu'une
carte graphique sera plus rapide qu'une autre. Aussi, voici quelques
éléments de réponse à la question : "qu'est-ce qui fait qu'une carte
graphique est rapide ?". Mais uniquement au niveau du vertex pipeline.
Unités de traitement des vertices
Ou vertex units, pour les anglais. Chaque unité représente en quelque
sorte un vertex pipeline. Puisqu'un vertex pipeline (ou un vertex
shader) ne traite qu'un seul et unique vertex à la fois, l'ajout de
plusieurs de ces unités de traitement permet de traiter plusieurs
vertices en parallèle. L'avantage est évidemment considérable,
puisqu'au niveau du traitement des vertices les performances augmentent
de façon pratiquement linéaires.

Vertex shader d'éclairage anisotropique (nVIDIA)
En effet, la carte graphique reçoit généralement un très grand nombre de vertices à la fois (plusieurs milliers, voire millions), et il est donc très simple de traiter 2, 4, 8, 12 ou 16 vertices d'un coup au lieu d'une seule. Les performances sont ainsi doublées, quadruplées, etc.
Taille et vitesse du bus mémoire
Il s'agit, dans les spécifications de la carte graphique, du "128-bit" ou "256-bit" qui se trouve à côté de la quantité de mémoire présente sur la carte. Cette taille influence la quantité de données pouvant être transféree entre la mémoire et le GPU. On pourrait se dire que seules les textures se trouvent dans la mémoire de la carte graphique, mais il est en fait possible d'y mettre plus ou moins n'importe quel type d'information, y compris des vertices. L'avantage est évidemment d'avoir les données à promixité du GPU, et de pouvoir ainsi y accéder très rapidement.
La taille du bus mémoire et sa fréquence détermineront à quelle vitesse les vertices peuvent être envoyés au GPU. Il faut cependant faire attention lors de la lecture de ces informations. Ainsi, une carte disposant d'un bus 128-bit et de mémoire à 300 MHz sera plus lente qu'une carte disposant d'un bus 256-bit et de mémoire à 200 MHz. Le plus simple est de multiplier le nombre de bits par la fréquence pour obtenir une valeur permettant de donner un ordre de performance.
Taille des vertices
Probablement pas l'élément le plus important à prendre en compte au niveau des performances, il a pourtant un certain impact sur les performances. Comme expliqué dans le chapitre concernant les vertices, ceux-ci ont une taille variable. Si cette taille dépasse une certaine valeur, qui est en général spécifique à une génération de chipset, les performances seront réduites.
Le problème, dans ce cas-ci, c'est que les constructeurs ne communiquent généralement pas ces valeurs aux consommateurs (vous ne verrez jamais cette valeur sur la boite de la carte graphique), et les développeurs de jeux ne communiquent jamais la taille des vertices utilisée dans leurs jeux, puisque celle-ci est variable. Il est donc au final inutile de tenir compte de cet élément lors de l'achat d'une carte graphique, mais il est intéressant de savoir qu'il existe.
Nombre d'instructions d'un shader
Le nombre d'instructions d'un vertex shader a beaucoup d'influence sur les performances de celui-ci. En effet, sans même tenir compte du fait que certaines instructions prennent plus de temps que d'autres, les performances d'un vertex shader diminuent très vite avec l'augmentation du nombre d'instructions. Encore une fois, tout comme pour la taille des vertices, ce type d'information est difficile à obtenir, aussi bien au niveau des constructeurs que des développeurs.
|
|
Le Vertex Pipeline - version programmable (suite) | Clipping, Culling et tramage |
|
Imprimer
Envoyer
3 Réactions
103 Approbations





Flux RSS
Dernières réactions
N'y a t'il rien a faire pour pouvoir lire cet article ? Il est pointe par plusieurs site mais ... est impossible a lire
J'ai essaye avec firefox et chrome sous linux ...
Merci d'avance.