Ati Radeon X850 XT PE AGP
Pag. 4 - SmartShader HD (1)
Come si sa, l'elemento fondamentale di una scena 3D è l'insieme di poligoni che costituiscono uno o più oggetti all'interno della scena. I triangoli in cui vengono scomposti questi sono processati, nel caso di R480, da 6 motori di vertex shader, dove in questo caso gli shader sono listati di codice che elaborano e modificano i vertici. Ciascuna unità include 2 ALU (Arithmetic Logic Units): 1 a 128bit a virgola mobile vettoriale e 1 a 32bit scalare, entrambi capaci di operare in maniera parallela. Queste operano sulle coordinate (dati di posizione) che consistono in 4 valori a 32bit (x,y,z,e w per la prospettiva). Ogni trasformazione è una moltiplicazione di matrici 4x4, cioè 4 istruzioni di prodotto ciascuna delle quali eseguibili dalla ALU vettoriale 1 volta per ciclo di clock; poichè queste sono 6, allora 1,5 operazioni per ciclo di clock sono eseguibili sui vertici da parte del chip.
Le funzioni fisse intervengono dopo lo shader sui vertici. Prima rimuovono triangoli che non si vedono, poi la parte che non vediamo di quelli parzialmente visti, poi si costruisce la prospettiva ed infine si proietta la scena 3D su area 2D per visualizzarla.
Il motore di setup dei triangoli interviene poi sui vertici per riassemblarli in triangoli (quindi con gruppi di 3 vertici). In un buffer di indicizzazione c'è scritto quali di questi vertici appartengono a ciascun poligono. L'unità di montaggio geometrico, inoltre, gestisce i point sprites (o particelle, costituiti da unico vertice) convertiti in rettangoli (unione di 2 triangoli) centrati sullo stesso vertice.
L'unità di setup, infine, assegna a ciò che è stato appena creato le coordinate delle texture, i valori di colore, le z ed inviate alle pipeline sotto forma di tessere (tile rendering) la cui dimensione è scelta ogni volta dalla GPU in funzione del carico di lavoro.
Una volta che l'unità di setup ha decomposto la scena 3D in una serie di triangoli, è necessario riempirli con pixel il cui colore dipende dalla texture che applichiamo, dalle condizioni di luce, dal materiale, ecc., su questo lavorano quei piccoli programmi chiamati pixel shader. R480, come R420, possiede 16 pipeline raggruppate ad unità di 4 in modo che ognuna di queste formi una sorta di piccolo centro di lavoro con risorse di calcolo dedicate. Questo approccio, inoltre, è anche importante ai fini di economia dei chip in quanto è proprio questo parallelismo che permette ad Ati di riprendere tutti i chip con malfunzionamenti su una di queste unità di 4 pipeline e di avere versioni meno potenti dello stesso chip (a 12, 8 o volendo anche 4 pipeline).