« Les cartes graphiques/Les architectures de type tiled rendering » : différence entre les versions
Contenu supprimé Contenu ajouté
mAucun résumé des modifications |
mAucun résumé des modifications |
||
Ligne 3 :
Les architectures en ''tiles'' sont une classe de carte 3D légèrement différente de celles vues précédemment. Sur ces architectures, l'écran/image à rendre est découpé en rectangles, rendus indépendamment, uns par uns. Ces rectangles sont appelés des tiles, d'où le nom d''''architectures à tiles''' donné à ce type de cartes graphiques. Le rendu se fait ''tile'' par ''tile''. Le rendu commence par calculer tout ce qui a trait à la géométrie associée à une ''tile''. Le résultat des calculs géométriques est mémorisé en mémoire vidéo dans une '''''display list''''', avant d'être rastérisé et texturé. Par la suite, il suffit de rasterizer, placer les textures et exécuter les shaders chaque tile, avant d'envoyer le tout aux ROP.
==Les avantages et inconvénients==
L'avantage des architectures en ''tiles'' est qu'elles permettent d'éliminer rapidement les portions non-affichées de la scène 3D, dès la sortie de la rastérisation. L'Image Synthesis Processor remplace en quelque sorte le Z-Buffer et les circuits d'élimination des pixels cachés. De plus, une architecture à tile a juste besoin d'un Z-Buffer pour la tile en cours de traitement, là où les cartes graphiques normales ont besoin d'un Z-buffer pour toute l'image. De plus, les tiles sont tellement petites que l'on peut stocker tout le Z-Buffer dans un cache integré dans l'ISP, ce qui permet de finaliser le calcul du ''tile'' dans le cache et d'écrire uniquement le résultat final en mémoire vidéo. Ce cache réduit fortement les besoins en bande passante et en débit mémoire, ce qui rend inutile de nombreuses optimisations, comme la compression du Z-buffer. Le rendu en mode immédiat ne permet pas ce genre de facéties▼
▲L'avantage des architectures en ''tiles'' est qu'elles permettent d'éliminer rapidement les portions non-affichées de la scène 3D, dès la sortie de la rastérisation. L'élimination des pixels et triangles cachés s'effectue dès que la profondeur est disponible, c'est à dire à l'étape de rastérisation. L'Image Synthesis Processor remplace en quelque sorte le Z-Buffer et les circuits d'élimination des pixels cachés. De plus, une architecture à tile a juste besoin d'un Z-Buffer pour la tile en cours de traitement, là où les cartes graphiques normales ont besoin d'un Z-buffer pour toute l'image. De plus, les tiles sont tellement petites que l'on peut stocker tout le Z-Buffer dans un cache integré dans l'ISP, ce qui permet de finaliser le calcul du ''tile'' dans le cache et d'écrire uniquement le résultat final en mémoire vidéo. Ce cache réduit fortement les besoins en bande passante et en débit mémoire, ce qui rend inutile de nombreuses optimisations, comme la compression du Z-buffer. Le rendu en mode immédiat ne permet pas ce genre de facéties
Le principal défaut du rendu en ''tiles'' est que le rendu se fait en deux passes, avec une mémorisation du résultat de la première passe en mémoire vidéo. Et cette mémorisation demande beaucoup de lectures et d'écritures : d'écritures pour mémoriser le résultat de la première passe, de lectures pour l'utiliser dans la seconde passe. La mémoire vidéo est donc beaucoup utilisée, ce qui est un désavantage pour les cartes graphiques à haute performance. L'usage de mémoires cache compense cependant ce désavantage pour les architectures à ''tiles''. Finalement, ce qui est économisé d'un côté est gaspillé de l'autre et tout est histoire de compromis. De plus, diverses optimisations spécifiques permettent d'éliminer des lectures/écritures "superflues", ce qui complexifie la comparaison avec une carte graphique normale.
|