Graphic amarcord: GigaPixel

Terminiamo la rassegna, questa settimana, con GigaPixel. Non è corretto affermare che si sia trattato di un’acquisizione da parte di nVIDIA, perchè, di fatto, l’acquisizione l’ha portata a termine 3dfx e la casa di Santa Clara ha acquistato quest’ultima.

Però si tratta, comunque, di una società degna di nota, di cui si è parlato molto e su cui si è anche favoleggiato molto.  In effetti, se parlando dei Bitboys si è posto l’accento sul vaporware creato dai continui annunci di nuovi mirabolanti chip ma, per lo meno, qualcosa di concreto si è visto, almeno nel settore mobile, nel caso di GigaPixel si è parlato a lungo di tecnologie che avrebbero permesso di implementare gratis il SSAA (supersampling antialiasing), utilizzo di memorie di soli 100 MHz che avrebbero permesso prestazioni paragonabili a quelle di NV15 o R100, ecc.

Di fatto non è mai stato commercializzato un prodotto con marchio GigaPixel e l’unico chip di cui si è avuto notizia è il GP-1, da considerarsi più un prototipo, un’idea di come si sarebbe voluto o potuto realizzare un chip.

La storia di GigaPixel è, per altro, molto breve: fondata nel 1997 dall’ex CEO di CompCore e da tre ingegneri di (tanto per cambiare) SGI, nel 2000 viene acquisita da 3dfx che, a sua volta, due anni dopo, fallisce e viene rilevata da nVIDIA.

Cosa c’era, allora, di così interessante nelle tecnologie di GigaPixel? C’era qualcosa di vero nelle voci, quasi a livello di leggende metropolitane, che circolavano sul suo conto? E quanto di quelle tecnologie sono finite nei chip di 3dfx e nVIDIA?

In poche righe proveremo a sciogliere questi nodi. Per quanto riguarda la prima,  la risposta è contenuta in un acronimo: TBDR, ovvero tile based deferred rendering. GigaPixel aveva proclamato di aver ideato un algortimo di deferred rendering, analogo a quello visto nei chip Kyro di PowerVR, in grado di applicare un FSAA di tipo SSAA senza calo di frame rate.

Per chi non sapesse di cosa sto parlando, faccio un rapido esempio, corredato da immagini che dovrebbero aiutare a capire la differenza tra il rendering tradizionale e il deferred rendering. Nel primo caso, come mostrato in figura

immediate-rendering.jpg

per ogni poligono vengono prima effettuate le operazioni di rendering e in seguito lo z-test (o depth) e la rimozione dei poligoni nascosti, con il risultato che si costringe il chip ad effettuare più lavoro di quello che sarebbe necessario e si utilizza in maniera poco efficiente la bandwidth del chip, poichè i valori contenuti nello z-buffer sono trasferiti avanti ed indietro tra chip e ram video.

Nel deferred rending, al contrario, si opera nel modo indicato in figura

deferred-rendering.jpg

Come si vede, il depth si effettua prima delle operazioni di shading e di texturing e viene eseguito direttamente on chip; l’immagine è suddivisa in tessere ciascuna delle quali di dimensioni tali da essere contenuta in un piccolo z-buffer interno al chip; in questo modo è possibile eliminare le superfici nascoste prima delle operazioni di rendering e ottimizzare l’utilizzo della bandwidth.

I risultati possono essere sorprendenti, come dimostrò a suo tempo il Kyro II di PowerVR che con due sole pipeline di rendering e bandwidth pari a meno della metà di quella di NV15, riusciva a tener testa al gioiellino di casa nVIDIA. Inoltre, nel progetto GigaPixel era inclusa un’unità di T&L

Non c’è da stupirsi, quindi, per il fatto che GigaPixel facesse gola a molti, tra cui 3dfx che era rimasta indietro rispetto ad ATi e PowerVR sulle tecniche di risparmio di banda e non integrava nel suo VSA-100 alcuna unità di tipo T&L, come avveniva, invece, su R100 di ATi ed NV15 di nVIDIA.

Inoltre, al contrario di quanto dichiarato da PowerVR, GigaPixel affermava che il suo algoritmo di TBDR permetteva il ricorso al SSAA senza cali di frame rate; secondo quanto riportato dagli ingegneri di GigaPixel, il GP-1 sarebbe stato in grado di far girare Quake III a 200 fps, a 1024×768. Il chip lavorava a 32 bit lungo tutta la pipeline mentre poco chiara risulta la geometria del memory controller che sarebbe risultato un controller con bus multicanale, tipo crossbar ma che, di fatto, non era un crossbar (ricordo che il primo crossbar su chip di tipo consumer lo si vedrà su NV20, alias Geforce 3).

Queste ultime affermazioni sanno un po’ di “sparata”, non molto dissimili da quelle dei Bitboys; innanzitutto perchè anche il deferred rendering non è esente da problemi, soprattutto quando si tratta di “stabilire” a quale tessera appartengano i triangoli a cavallo tra  due tile contigue, col rischio di effettuare due volte il rendering dei pixel perimetrali, come pure problemi ci sono con la resa delle texture trasparenti, per cui si devono prendere determinati accorgimenti; inoltre la descrizione a dir poco fumosa del memory controller,  suscita più di qualche perplessità.

Quindi GigaPixel come i Bitboys? Si potrebbe rispondere di sì se ci si limitasse ai proclami sulle presunte prestazioni di una sorta di “conceot chip”. Però c’è da tener presente il fatto che il TBDR è qualcosa di concreto, le cui potenzialità sono state mostrate da PowerVR in un prodotto che, per quanto acerbo, ha dato una scossa al mondo dei chip grafici spingendo persino più di qualcuno a gridare al miracolo con toni trionfalistici.

Come concreti sono gli oltre 30 brevetti depositati da GigaPixel su TBDR ed utilizzo di cache interne come z-buffer. Tra le altre cose, l’implementazione del TBDR di GigaPixel non fa uso di tecniche di raycasting, al contrario di quella di PowerVR e questo, a detta dei progettisti, avrebbe garantito la perfetta compatibilità anche con le nuove API

Altra caratteristica interessante era la scalabilità e flessibilità dell’architettura: erano infatti previste due versioni, una destinata a sistemi high end e l’altra a sistemi che puntavano al massimo risparmio energetico, come mostrato nella successiva immagine, pescata negli archivi di GigaPixel e relativa alla presentazione delle tecnologie implementate in GP-1

gigapixel-gp1.jpg

Presentando alcune delle caratteristiche dell’architettura nota come Giga3D, si è dato una risposta anche alla seconda domanda: nelle leggende metropolitane che favoleggiavano di straordinarie prestazioni c’era un fondo di verità perchè, in effetti, l’adozione di un engine grafico che facesse uso di deferred rendering poteva fornire un buon boost prestazionale ai chip dell’epoca.

Proviamo a rispondere alla terza domanda. Di sicuro 3dfx non fece in tempo ad utilizzare le tecnologie Giga3D, in quanto dopo l’acquisizione di GigaPixel non tirò fuori alcun nuovo prodotto. E’ probabile che l’unità geometrica, denominata Sage, che 3dfx intendeva includere nel progetto Rampage fosse di derivazione GigaPixel, ma quel progetto non fu mai commercializzato.

E nVIDIA? Difficile stabilire se e quanto la casa di Santa Clara abbia sfruttato delle tecnologie GigaPixel. Si disse che sarebbero state implementate in NV30 ma, di fatto, in quel chip non si vide nulla del genere. Anzi, paradossalmente, NV30 faceva uso di MSAA di tipo OG (ordered grid), mentre GigaPixel faceva uso di SSAA RG (rotated grid) la cui qualità, alivello visivo, è sicuramente superiore.

Una spiegazione al mancato o, nella migliore delle ipotesi, scarso utilizzo di queste tecnologie è presto data: un altro dei difetti del deferred rendering è che, fino all’adozione delle DX10, non era compatibile con qualsivoglia forma di MSAA implementato in hardware (di questo parleremo in futuro). Poichè in quesgli anni, nel tentativo di raggiungere frame rate più elevati, si abbandonò il supersampling (utilizzato da PowerVR e da GigaPixel) per adottare il multisampling, questo precluse la possibilità di avere un chip che facesse deferred rendering e, contemporaneamente, utilizzasse il MSAA.

Quanto al T&L, non solo nVIDIA ne aveva già uno in dotazione su NV10 ed NV15, ma, ql momento dell’acquisizione di GigaPixel il T&L di tipo fixed function era già superato dagli shader programmabili. Se, quindi, dovessi dare una risposta al terzo quesito, direi che nVIDIA non si è giovata più di tanto (forse per nulla)  dell’acquisizione indiretta di GigaPixel e delle sue tecnologie.

Con questo di oggi, si conclude la serie di articoli sulle società operanti un tempo nel settore dei chip grafici (e non solo) e ora, per diversi motivi, scomparse. Ci sono, però, altre protagoniste del mondo delle GPU che sono tutt’oggi operanti, magari relegate in una piccola nicchia o che rivestono un ruolo secondario ma che un tempo sono state stelle di prima grandezza e meritano particolari attenzioni: mi riferisco, ad esempio, a matrox, S3, PowerVR, 3dlabs, ecc.

Ma questa è un’altra storia

Press ESC to close