di  -  giovedì 6 agosto 2009

La scorsa settimana abbiamo iniziato una serie di brevi articoli che hanno l’intento di ricordare, ai nostalgici di retrogaming e retrocomputing, l’era pionieristica del passaggio dal 2D al 3D e di mostrare, ai più giovani, lo spaccato di un mondo molto diverso dall’attuale, con tanti protagonisti sulla scena, poche regole certe (le API D3D e OpenGL non erano ancora uno standard di fatto nel mondo dei videogiochi) e, di conseguenza, tanti differenti approcci ai problemi più comuni ai quali si andava e si va ancora oggi incontro (potenza di calcolo, banda passante, ecc) con soluzioni, a volte, fin troppo “originali” (ad esempio la mancanza dell’unità di testuring nei chip della serie Imagine 2 di number nine).

In questo panorama, un capitolo a parte merita Rendition che con i suoi chip è stata, per diverso tempo, all’avanguardia nel mondo della grafica 3D, nonostante la sua storia sia, di fatto, rispetto a quella di altri produttori, piuttosto breve.

Rendition nasce nel 1993 con lo specifico intento di progettare chip acceleratori 2D/3D. Il suo primo chip, il Verite V1000, equipaggia alcune VGA tra cui la 3D Blaster PCI di Creative e la Sierra Screamin’3D dell’immagine sottostante

rendition-v1000.jpg

In un mondo di VGA in cui l’accelerazione 3D è pressoché assente, i prodotti di Rendition si differenziano proprio perchè costituiscono l’unica valida alternativa all’accoppiata scheda video 2D più acceleratore 3D. I chip della serie Verite integrano, infatti, fin dal V1000, tutte le feature necessarie ad accelerare la grafica 3D, dalle operazioni di texturing alle z-ops, all’alpha blending. Inoltre fanno uso di una specie di antialiasing sia per punti che su linee e poligoni (quello che chiamiamo edge antialiasing).

Sia il V1000 che i successivi V2x00 hanno architettura RISC programmabile facendo uso del VGA register set di IBM, con singola pipeline a 5 stadi e singola unità di texturing. La particolarità dei chip V1000 e V2x00 è l’integrazione, al loro interno, di un triangle setup engine che ha lo scopo di scaricare la cpu di parte del carico di lavoro. L’immagine sottostante può aiutare a capire questo concetto

triangle-setup-engine.jpg

Qui sono riportati, in maniera molto semplificata, gli stadi in cui è suddivisa l’elaborazione di un’immagine 3D. La figura è riferita alla situazione nel corso del 1998, in cui molti dei chip erano già dotati di triangle setup engine. I due blocchi in bianco sono quelli relativi alle operazioni di trasformazione e illuminazione che, nel 1998, erano ancora interamente a carico della cpu; i due in grigio, invece, sono relativi alle operazioni di conversione dei triangoli in scan line  e delle operazioni rasterizzazione compiute sulle scan line.

Il V1000, già nel 1996, anno del suo lancio sul mercato, integrava l’engine di triangle setup, a detta di alcuni, anche un engine di Transform and Lightning (T&L), ovvero i due blocchi bianchi di figura, che non sarebbe mai stata “esposta” e pertanto utilizzata. Di fatto non c’è alcuna evidenza del fatto che il V1000 e il V2x00, almeno nelle versioni rilasciate sul mercato, fossero dotati di motori T&L mentre invece è risaputo che Rendition, insieme a Fujitsu, stava tentando, nel corso del 2008, di lanciare una versione del V2200 con un engine T&L integrato, il Pinolite di Fujitsu, su una vga dotata di 9 MB di ram (di cui uno dedicato alle operazioni di transform and lightning) ma che l’operazione non è mai andata in porto. I motivi del fallimento vanno ricercati nella non florida situazione economica di Rendition, nell’aumentata competitività da parte della concorrenza e nel progressivo affermarsi di OpenGL e D3D come standard per i giochi.

Approfittando del gancio fornito dal discorso sulla API, torno a parlare dei chip di Rendition.  Nel 1996, il V1000 costituisce, come detto, l’unica vera soluzione combinata 2D/3D e il suo engine RISC programmabile, permette di raggiungere buone prestazioni a patto di ottimizzare il codice per le caratteristiche architetturali del chip di rendition, in modo da poter sfruttare anche il triangle setup engine. Ciò è causa dell’uscita di diversi titoli ottimizzati per le VGA della serie Verite, tra cui Quake, Quake II, Tomb Raider, Descent, GP Legends, Resident Evil e alcuni titoli della saga di Myth.

A proposito di queste ottimizzazioni, riporto le parole di Carmack durante lo sviluppo di Quake, di cui esiste la versione VQuake, ottimizzata per i chip di Rendition

“We at id have been fans of the Vérité architecture since we first saw the spec, several months back. Now that we have some experience with the chip, we’re even more pleased with it; in fact, it’s our clear favorite among 3D accelerators.” Aggiungendo, in riferimento allo sviluppo di Quake “… Vérité will be the premier platform for Quake.” 

La difficoltà nell’ottimizzare per questa specifica piattaforma, oltre alla diffusione ed all’affermazione di standard come D3D e OpenGL, spinge le software house ad abbandonare gradualmente l’idea di sviluppare una versione custom dei propri titoli. In effetti, in quel periodo, l’assenza di uno standard specifico favorisce il sorgere di architetture molto diverse tra loro che richiedono il ricorso a specifici path per ogni singola architettura, oppure a driver che ricompilino il codice ottimizzandolo per quella specifica microarchitettura. La seconda opzione, spesso, non dà risultati eccezionali e, comunque, non dà risultati comparabili a quelli ottenibili con codice ottimizzato nativamente, oggi come allora.

D’altra parte si deve tener conto del fatto che ci si riferisce all’era in cui si sta effettuando la transizione dal 2D al 3D per quanto riguarda i giochi,  e, di conseguenza, manca ancora uno standard ben preciso perché non è ancora chiara la direzione che l’evoluzione dell’hardware e, di conseguenza, del software avrebbe preso.

Da un lato c’è Microsoft che cerca di forzare il processo di adozione delle sue DirectX, ancora acerbe e non all’altezza delle OpenGL. Dall’altra ci sono le OpenGL, sviluppate da SGI per applicazioni di tipo professionale e “prestate” al mondo dei videogiochi che, pur essendo più mature e stabili delle DirectX non sono state pensate per applicazioni videoludiche. Inoltre ci sono i produttori di cpu che spingono perchè le cose restino immutate, in modo da preservare per i loro prodotti, un ruolo centrale e predominante all’interno dei computer.  In questo marasma, non stupisce se ci si trova davanti al sorgere di tante architetture differenti e a vari tentativi di imporre applicazioni e microarchitetture proprietarie come standard.

Tornando ai chip Verite, si può parlare di loro, di fatto, come di acceleratori 3D con funzioni 2D; in effetti nel 2D e nei giochi basati su DOS questi chip non si distinguono affatto, facendo registrare prestazioni decisamente al di sotto della media. In particolare, alcune limitazioni architetturali castrano anche le prestazioni 3D del V1000; mi riferisco, nello specifico, al mancato utilizzo dello z-buffer, presente, invece, nei chip 3dfx, che impedisce, nei titoli che fanno uso di z-buffering, di elaborare un pixel per ciclo; altra interessante caratteristica del V1000 è l’utilizzo del canale PCI di comunicazione con la scheda madre, con controller dotato di funzionalità di bus mastering, più efficiente della gestione FIFO adottata su bus ISA; purtroppo, anche questa utile feature che avrebbe permesso una miglior gestione del canale di comunicazione tra VGA, CPU e ram di sistema, soffre di alcuni problemi di “gioventù” derivanti dal mancato supporto al bus PCI di molti produttori di mainboard dell’epoca.

Con il passaggio al V2x00, si rimuove questa limitazione e si migliora la texture unit, riuscendo ad ottenere una capacità di elaborazione più prossima a quella teorica anche con titoli che fanno uso di z-buffering e di texture filtering.

Se il V1000, con i suoi 25 MHz di clock, il memory controller a 64 bit e i 4 MB di EDO Ram a 50 MHz (per una bandwidth teorica di 400 MB/sec) riscuote, nonostante le limitazioni, un buon successo, tanto da spingere più produttori ad adottarlo, lo stesso non si può dire delle sue versioni riviste e corrette: il V2100, versione clockata a 45 MHz, con 4 o 8 MB di SGRAM, equipaggia la sola Diamond Stealth II S220, mentre la versione più performante, il V2200, con clock a 55 MHz, la Hercules Thriller 3D che viene presentata sia in versione PCI che AGP.

I chip della serie V2x00 sfoggiano, con API standard, prestazioni allineate e, con cpu lente, persino superiori a quelle delle vga equipaggiate con Riva 128 e Riva 128ZX, mentre in D3D le prestazioni sono allineate a quelle delle Voodoo. Purtroppo, però, nel frattempo 3dfx  sta per far uscire il suo Voodoo II e nVidia sta per sfornare il Riva TnT, il primo chip a utilizzare la doppia pipeline di rendering.

Questo, unito alle solite problematiche di ottimizzazione del software che spinge gradualmente le software house ad abbandonare le versioni custom a favore degli standard D3D o OpenGL, segna il declino di Rendition. Lo stesso Carmack, che aveva dichiarato il V1000 suo chip d’elezione per sviluppare Quake, in seguito parlerà delle difficoltà incontrate nell’ottimizzare la versione VQuake e farà uscire i suoi titoli in OpenGl e D3D.

A seguire, alcuni benchmark che testimoniano le prestazioni delle vga equipaggiate con i chip V2x00.  Nell’ordine, in OpenGL con cpu, diciamo, performante

ogl-pii-300-bench.jpg

e  questo il risultato con cpu più lenta

ogl-bench-cpu-lenta.jpg

Come si vede, dova la cpu fa, il più delle volte, da collo di bottiglia, i chip Rendition (Hercules Thriller e Diamond Stealth) risescono a distanziare i Riva 128 e ad avvicinare le prestazioni degli acceleratori equipaggiati con i chip Voodoo, addirittura ion configurazione multichip, come nel caso delle quantum 3D obsidian, di cui, per curiosità, riporto l’immagine nella versione 4400 con 2 Bruce e 2 Chuck e 12+2 MB di ram on board.

quantum-3d-obsidian.jpg

Il tentativo di dotare, nel 1998, il V2200 di engine T&L avrebbe anticipato di un anno l’uscita del Geforce e del Savage2000. Purtroppo la mancanza di fondi e la scarsa competitività del V2200 rispetto al vari Voodoo 2 e Riva TnT, spinge Rendition a rinunciare al progetto e a tentare di dirottare le poche risorse ancora disponibili su un nuovo chip, il V3300 che, annunciato nel corso del 1998, secondo le intenzioni, avrebbe dovuto avere 2 pipeline di rendering come il TnT e sarebbe dovuto uscire ad inizio 1999.

Prima della fine dell’anno, Rendition, ormai economicamente in pessime acque, viene acquisita ma Micron Technology che decide, nonostante i tentativi da parte degli ormai ex ingegneri di Rendition, di continuare a mantenere in piedi l’asset relativo alle gpu, di abbandonare la progettazione di chip grafici. Così viene abbandonato il progetto V3300 e resta senza esito anche l’annuncio di un ulteriore chip, il V4400.

Dall’uscita del primo chip combinato 2D/3D alla scomparsa di Rendition sono passati due soli anni che, comunque, sono stati sufficienti a lasciare un segno indelebile nel mondo dei chip grafici.

12 Commenti »

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.

  • # 1
    mazzjoe
     scrive: 

    Quanta nostalgia! Erano per me i tempi delle medie, dove un mio amico aveva comprato una 3dfx e io sempre a casa sua per osservarne le evoluzioni :D

  • # 2
    blackshard
     scrive: 

    Bello!
    Ricordo il v1000 poichè fece parte della prima tornata di schede acceleratrici 3D nel mondo dei videogiochi, insieme alle voodoo, alle mystique e alle famigerate s3 virge. Era un buon compromesso fra prestazioni, qualità (aveva il bilinear filtering :D La mia mystique faceva tutto ancora a quadrettoni) e prezzo.
    Peccato che quel mercato fosse tutto fuorchè stabile: un passo falso e via rendition, un passo falso e via il leader 3dfx…

  • # 3
    ReaToMe
     scrive: 

    Se ripenso alla mia 3dfx voodoo 3000 mi cade la lacrimuccia…

  • # 4
    Graphic amarcord: Rendition | succoso
     scrive: 

    […] Graphic amarcord: Rendition […]

  • # 5
    AlessioP
     scrive: 

    ciao ragazzi ma tipo le attuali ge force 280 sono molto più veloci…??? devo rifare il mio mio pc che ancora ho un pII mmx con una diamond stealth 3000 3d e windows 98…

  • # 6
    Lwyrn
     scrive: 

    Starai scherzando XD? 12 anni di evoluzione, è scontato che le gts 280 sono anni luce piu veloci e potenti :)

  • # 7
    Michele
     scrive: 

    Mitica 3D Blaster PCI! In bundle aveva parecchi giochi: Quake, Battle Arena Toshiden e il grandissimo Flight Unlimited. Girava accelerato persino Quake 2, ma senza effetti di luce…

  • # 8
    david
     scrive: 

    Potevano fondersi con number9!!!… :D

  • # 9
    redvex
     scrive: 

    C’è da dire che a quei tempi non essendo la grafica a farla da padrone i videogames puntavano quasi tutto sulla giocabilità e sul background. Ora invece ci ritroviamo dei capolavori grafici senza un’anima tranne qualche rara eccezione.

  • # 10
    Fabio
     scrive: 

    redvex, lo stesso discorso lo sentivo fare 10 anni fa a proposito dei giochi dei primi anni ’90, e nei primi anni ’90 sentivo dire che i giochi per Amiga/PC erano tutta grafica e niente divertimento, a differenza di quelli per Commodore 64…

    Secondo me una cosa di cui bisogna tenere conto è che anche noi cresciamo, e la magia che percepivamo un tempo oggi non la sentiamo più… E ci sembra che i giochi siano meno divertenti. Secondo me, un bambino/ragazzo che gioca oggi si diverte esattamente quanto noi all’epoca.

    Scusate, fine dell’OT.

    Per AlessioP: considera solo che una Voodoo 1 faceva circa 50 Megatexel/s e una Geforce GTX 280 si avvicina ai 50 GIGAtexel/s… E’ un miglioramento di 1000 volte! Se poi prendiamo in considerazione il numero di transistor, beh, si passa da un milione a 1400 milioni… Direi che basta, no? :-)

  • # 11
    Giacomo
     scrive: 

    Dal punto di vista retrogaming per quel periodo non ho nessuna nostalgia.. tecnologia 3D acerba e costosa, giochi in 3D orridi dal punto di vista estetico anche per gli standard di allora, con quella grafica pixellosa appiccicata su rozzi poligoni: non avevano la piacevolezza visiva della grafica 2D, l’unica cosa bella nei giochi 3D erano i filmati introduttivi dei giochi, perlopiù su Playstation, perché su PC erano brutti da vedere pure quelli.
    Insomma, una volta tanto.. si stava peggio quando si stava peggio!

  • # 12
    Max
     scrive: 

    Quoto Giacomo e Fabio:
    quello è stato il peggior periodo che ricordo per i VG: hanno cercato di soppiantare un 2D che aveva raggiunto standard altissimi con un 3d che creava problemi anche solo a capire cosa si aveva davanti.
    In più molti di questi giochi non guardabili pretendevano di puntare sulla grafica tralasciando anche il gameplay…
    Per me è stato il medioevo.

    Anche il discorso dell “anima” dei VG è una vita che lo sento ripropinare ad ogni titolo privo di spessore: è vero , il VG è più commeciale , ci sono minori tempi di sviluppo e c’ è maggiore bisogno di “impressionare” al primo istante per vendere;

    ma se il VG è malato e senza anima cosa dire dei Film da botteghino, degli album da classifica… e non credo sia nostro diritto commentare (con quale saggezza poi?) una situazione che è forse la cosa più stabile del mondo moderno , cioè l’esigenza commerciale.

    I vg sono come li vogliono gli acquirenti. (come tutto il resto ). Se vi sentite acquirenti di nicchia non esiste un’ epoca storica in cui qualcosa di commerciale possa accontentarvi. La classe degli Hardcore Gamers è una come un’ altra e la verità è solo che forse il mercato si è allargato a dismisura, ma la nostra fetta non è poi così più grande.

    Max.

Scrivi un commento!

Aggiungi il commento, oppure trackback dal tuo sito.

I commenti inseriti dai lettori di AppuntiDigitali non sono oggetto di moderazione preventiva, ma solo di eventuale filtro antispam. Qualora si ravvisi un contenuto non consono (offensivo o diffamatorio) si prega di contattare l'amministrazione di Appunti Digitali all'indirizzo info@appuntidigitali.it, specificando quale sia il commento in oggetto.