« Les cartes graphiques/Les processeurs de shaders » : différence entre les versions

Contenu supprimé Contenu ajouté
Balise : Révoqué
Balise : Révoqué
Ligne 97 :
===Les architectures avec unités de ''vertex'' et ''pixels'' séparées===
 
Les premières cartes graphiques avaient des processeurs séparés pour les ''vertex shaders'' et les ''pixel shaders''. Cette séparation entre unités de texture et de sommets était motivée par le fait qu'à l'époque, le jeu d'instruction pour les ''vertex shaders'' était différent de celui pour les ''pixel shaders''. Notamment, les unités de traitement de pixels doivent accéder aux textures, mais pas les unités de traitement de la géométrie. D'où l'existence d'unités dédiées pour les ''vertex shaders'' et les ''pixel shaders'', chacune avec ses propres capacités et fonctionnalités. Ces architectures ont beaucoup plus de processeurs de ''pixel shaders'' que de processeurs de ''vertex shaders'', vu que les ''pixels shaders'' dominent le temps de calcul par rapport aux ''vertex shaders''.
 
[[File:Architecture de base d'une carte 3D - 5.png|centre|vignette|upright=1.5|Carte 3D avec pixels et vertex shaders non-unifiés.]]
 
Pour donner un exemple, c'était le cas de la Geforce 6800. Elle comprenait 16 processeurs pour les ''pixel shaders'', alors qu'elle n'avait que 6 processeurs pour les ''vertex shaders''. D'autres cartes graphiques plus récentes utilisent encore cette stratégie, comme l'ARM Mali 400.
 
[[File:GeForce 6800.png|centre|vignette|upright=3|Architecture de la GeForce 6800.]]
 
Malheureusement, il arrivait que certains processeurs de ''shaders'' soient inutilisés. Malheureusement, tous les jeux vidéos n'ont pas les mêmes besoins : certains sont plus lourds au niveau géométrie que d'autres, certains ont des ''pixels shaders'' très gourmands avec des ''vertex shaders'' très ''light'', d'autres font l'inverse, etc. Le fait d'avoir un nombre fixe de processeurs de ''vertex shaders'' fait qu'il va en manquer pour certains jeux vidéo, alors qu'il y en aura de trop pour d'autres. Pareil pour les processeurs de ''pixel shaders''. Au final, le problème est que la répartition entre puissance de calcul pour les sommets et puissance de calcul pour les pixels est fixe, alors qu'elle n'est variable d'un jeu vidéo à l'autre, voire d'un niveau de JV à l'autre.
 
===Les architectures avec unités de ''shaders'' unifiées===