ATI Radeon X1800: quando 16 pipeline sono meglio di 24

Abbiamo atteso a lungo prima di mettere le mani sul processore grafico R520, tempo in cui si è detto tutto ed il contrario di tutto al riguardo. In questa sede analizziamo qualità, prestazioni, overclock, consumi e rumorosità dell’antagonista di G70 che con le sue sedici pipeline ed una architettura all’avanguardia promette di infrangere ogni record di efficienza.
di Raffaele Fanizzi pubblicato il 12 Ottobre 2005 nel canale Schede VideoATIRadeonAMD
Analisi qualitativa: filtro anisotropico – Direct 3D
Il filtro anisotropico è, insieme all'antialiasing, una delle funzionalità votate all'incremento della qualità di una rappresentazione tridimensionale più interessanti di un processore grafico. Il suo obiettivo è quello di migliorare la resa delle texture in alta risoluzione quando sono applicate su superfici lontane dal punto di osservazione: in tal caso, infatti, è molto probabile che una texture debba essere disegnata attraverso numero di pixel sullo schermo notevolmente inferiore rispetto alle sue dimensioni e ciò richiede una sua ricampionatura. Il filtro anisotropico esegue questa operazione e, a seconda delle modalità e del numero di campioni presi, può garantire una qualità delle texture più o meno accurata e, conseguentemente, un realismo della scena tridimensionale finale più o meno convincente.
Per valutare l'implementazione del filtro anisotropico del processore grafico R520 oggetto di questa recensione abbiamo utilizzato il Texture Filter Analyzer sia in versione Direct3D che OpenGL. Questa piccola utility visualizza un cilindro cavo impostando il punto di vista al suo interno con la camera che punta in direzione parallela all'altezza del cilindro. Questo cilindro è tappezzato all'interno con una texture a scacchiera, bianca e nera. L'immagine risultante non è altro che l'interno del cilindro che, a causa della prospettiva, si restringe man mano che le pareti si allontanano dalla camera. Il Texture Filter Analyzer consente di visualizzare i livelli di mipmapping, cioè i livelli di dettaglio (LOD) con cui la scheda video disegna le texture, colorandoli. In particolare la banda più vicina (che per effetto della prospettiva è più esterna) è rossa e rappresenta il primo LOD, cioè la prima ricampionatura (di minor dettaglio) della texture rispetto all'originale. I restanti livelli di mipmap sono più interni e vengono evidenziati con altri colori. Nella valutazione della qualità del filtro anisotropico sono essenzialmente due gli aspetti che ci interessa osservare: la variazione tra un livello di dettaglio e l'altro ed il dettaglio stesso. Il primo lo estrapoliamo osservando come viene effettuato il passaggio da una fascia colorata ad una adiacente, mentre il dettaglio può essere valutato dalla vicinanza della banda rossa al bordo.
ATI Radeon X1800XT
NVIDIA GeForce 7800 GTX
NVIDIA GeForce 6800 Ultra
ATI Radeon X850XT PE
Le immagini sopraesposte sono state ottenute con il Texture Filter Analyzer in versione Direct 3D e mostrano la qualità di applicazione del filtro anisotropico per le schede NVIDIA e ATI in tutte le modalità disponibili. In particolare per le prime sono state considerate le impostazioni High Quality, Quality, Performance e High Performance, mentre per le Radeon abbiamo diversificato i risultati legando tale diversificazione alle modalità disponibili del Catalyst IA e cioè Disabled, Standard e Advanced. Per tutte le architetture è possibile selezionare un numero di samples pari a 2, 4, 8 o 16.
All'epoca delle prime implementazioni del filtro anisotropico, l'impatto sulle prestazioni a cui si assisteva era tale da renderlo di fatto una funzionalità scarsamente fruibile. Questa problematica non poteva che accentuarsi con l'avvento delle nuove architetture dotate di una sola TMU per pipeline e quindi incapaci di realizzare filtraggi complessi in pochi cicli di clock (il filtro trilineare, decisamente meno complesso di quello anisotropico, ne richiede due). Sia ATI che NVIDIA hanno, quindi, deciso di implementare una serie di ottimizzazioni che riducono notevolmente l'impatto sulle prestazioni del filtro anisotropico sacrificando la qualità in maniera il più delle volte trascurabile. Una delle ottimizzazioni ormai entrate nel bagaglio tecnologico della maggioranza dei processori grafici è quella relativa alla dipendenza dell'applicazione del filtro anisotropico dall'angolo di inclinazione della superficie poligonale. In particolare G70, NV40 e R480 applicano un filtro anisotropico completo solo a determinate angolazioni (multipli di pi/4), mentre si limitano a soluzioni più conservative in tutti gli altri casi. Il principio alla base di tale ottimizzazione è il seguente: poiché la maggioranza dei videogames, specie gli FPS, mostrano un ambiente con pavimenti e muri perpendicolari tra loro e dotati di texture discretamente dettagliate e poiché è principalmente in quei punti dello schermo che è concentrata l'attenzione del giocatore, è possibile risparmiare potenza di calcolo nell'elaborazione del filtro anisotropico per le altre superfici. Questo principio è, ovviamente, un compromesso che, benché non tenga conto della crescente popolazione di videogames che propongono superfici più tondeggianti e meno regolari, è stato sviluppato su basi ragionevoli che fino ad ora hanno garantito risultati velocistici e qualitativi soddisfacenti.
Con la nuova generazione di schede video Radeon X1800, ATI ha deciso di voler abbattere questo compromesso e propone alcune novità legate all'applicazione del filtro anisotropico introducendo una nuova opzione denominata High Quality. L'azienda canadese, infatti, con R520 ha colto l'occasione per rivisitare le unità di texturing che adesso sono capaci di elaborare il filtro anisotropico più rapidamente applicando la medesima qualità su tutte le angolazioni poligonali. Le immagini del Texture Filter Analyzer mostrano chiaramente come la qualità con HQ abilitato (in modalità Catalyst IA Standard) sia decisamente superiore a tutte le soluzioni commercializzate attualmente sia da parte del concorrente NVIDIA, che da ATI stessa.
Rispetto a quanto visto con la precedente generazione di processori grafici, ATI afferma che R520 introduce anche un filtraggio trilineare più accurato. Il Texture Filter Analyzer ci mostra un'applicazione del filtro trilineare simile a quella vista con R480, tuttavia non escludiamo che le modalità Standard e Advanced, che ottimizzano la resa delle texture (applicando un'approssimazione del filtro trilineare) a seconda delle loro stesse caratteristiche, siano state migliorate in questa direzione. Purtroppo poiché si tratta di ottimizzazioni che entrano in gioco quando il passaggio da un livello di dettaglio al successivo è contraddistinto da texture simili e poiché la visualizzazione a scacchiera del Texture Filter Analyzer insieme alla colorazione del livello di dettaglio fa sì che venga sempre applicato un filtro anisotropico a partire da campioni filtrati in trilineare, non siamo in grado di valutare eventuali miglioramenti in tal senso.
Concentrando la nostra analisi sulle modalità High Quality e Quality delle schede NVIDIA e confrontandole rispettivamente con le modalità Disabled e Standard dei prodotti ATI senza HQ, possiamo osservare come, pur tenendo conto della variabilità dovuta alla natura adattiva della tecnologia Catalyst IA in modalità Standard, la qualità del filtro anisotropico di R520/R480 è sempre migliore o, al peggio, uguale a quella di G70/NV40.
NVIDIA GeForce 7800 GTX
NVIDIA GeForce 6800 Ultra
ATI Radeon X850 XT PE
ATI Radeon X1800 XT
Concludiamo l'analisi della qualità del filtro anisotropico sotto Direct 3D osservando che la modalità Quality delle schede video NVIDIA fornisce per gli stage successivi al primo (stage 0) una qualità inferiore: il livello di pixel popping è decisamente superiore a quello osservato sul primo stage e questo porta ad un degrado qualitativo in determinate situazioni. Questo comportamento non lo ritroviamo con i processori grafici Radeon che applicano il medesimo filtraggio (compreso quello adattivo in caso di Catalyst IA Standard) su tutti i livelli di texture.
Ricordiamo che per stage 0 si intende la prima texture applicata ad una superficie e, solitamente, tale texture consiste nella mappa diffusa, cioè quella che conferisce il colore al poligono. Gli stage successivi al primo, invece, sono utilizzati per altre tipologie di texture come le normal map, usate per il bump mapping, le glass map, usate per il parallax mapping, o anche le reflection map usate per le superfici riflettenti come l'acqua.