Vent’anni di accelerazione 3D: da 3Dfx a oggi - Speciale

3d_intro_3dfx_particolareLa metà degli anni Novanta fu segnata da due eventi che cambiarono i connotati al mercato dei computer da gioco. Il fallimento di Commodore, nel 1994, lasciò i PC “IBM compatibili” – come li chiamavamo allora – sostanzialmente privi di piattaforme concorrenti, mentre l’uscita di DooM, di poco precedente, aveva definitivamente inaugurato l’epoca dei giochi in soggettiva, quelli in cui il giocatore poteva vedere il mondo con gli occhi del suo avatar, relegando al passato le classiche visuali laterali e dall’alto. In quegli anni non importava più il genere: per mandare un titolo a scaffale qualsiasi publisher pretendeva dalla software house che fosse in 3D, visibile in prima o in terza persona. La grafica in 3D, però, richiedeva molti più calcoli di un “semplice” scorrimento multidirezionale e, soprattutto, una comunicazione veloce fra il processore centrale (regista e attore unico nella generazione delle immagini) e la scheda video, che fino ad allora non aveva altro scopo che prendere le informazioni in transito sul suo connettore e “sbatterle”, letteralmente, sullo schermo. Alcune schede – fra cui ricordiamo le ATi Mach, le S3 Trio, le Matrox Millennium, disponevano di funzioni hardware avanzate per l’accelerazione 2D o per la visione dei filmati, ma nessuna di loro, tanto meno quelle popolarissime di Cirrus Logic, erano preparate all’avvento della terza dimensione: progettate per muovere velocemente porzioni di pixel su un singolo piano, si trovavano ora a dover combattere con frame completamente diversi in ogni istante, una guerra che senza un processore centrale di fascia medio-alta era già persa in partenza. Era dunque chiaro a tutti che, una volta cambiato il paradigma dei videogiochi, anche la piattaforma PC doveva cambiare. E stava per farlo nel modo più profondo.

L’AVVENTO DI WINDOWS 95

Proprio in quegli anni, Microsoft abbandonava l’antico MS/DOS sostituendolo con Windows 95, il suo primo sistema operativo realmente multitasking per gli utenti comuni. Prima di lui c’erano Windows 3.1 e un modo praticamente impensabile, al giorno d’oggi, di approcciarsi ai PC: chi realizzava software era costretto a scrivere il proprio codice prevedendo di includere anche i “driver” per le più diffuse schede di espansione. Non era difficile imbattersi in problemi di compatibilità con questa o quella scheda audio, per esempio, e l’utente era perfino costretto a modificare i file di avvio del sistema (i mai troppo poco compianti autoexec.bat e config.sys) per liberare la memoria necessaria. Windows 95 cambiava tutto, proponendo delle API (interfacce di programmazione) a cui i programmatori avrebbero sempre potuto fare riferimento per ottenere questo o quel risultato dal computer, dimenticandosi una volta per tutte le differenze hardware fra i milioni di PC installati sulle nostre scrivanie. La piattaforma diventava così “standard”, aggiungendo un livello di astrazione in più sopra il metallo, con cui avrebbero interagito i driver di sistema, forniti dagli stessi produttori delle schede di espansione. Una grande rivoluzione, che però richiese un periodo di adattamento lungo almeno un anno.

3dfx_04_quakeIn quel mentre, nel 1995, uscirono due processori grafici degni di menzione, ViRGE di S3 ed NV1 di Nvidia. Entrambi si proposero di venire in aiuto al processore centrale nell’esecuzione di specifiche istruzioni grafiche destinate alla terza dimensione, ma entrambi fallirono per diversi motivi. Il primo aveva grandi velleità: il nome stava per Virtual Reality Graphics Engine e, molto probabilmente, era stato chiamato così per cavalcare l’onda della realtà virtuale, un concetto “nuovo” per l’epoca ma reso violentemente popolare da film come Il Tagliaerbe o il più tardivo ExistenZ. Il processore era fabbricato a 500 nm, viaggiava a 66 MHz, disponeva di un controller per la memoria a 64 bit e disponeva di 4 MB dedicati. Supportava bilinear e trilinear filtering per le texture, MIP mapping, alpha blending, video texture mapping, Z-buffering e altre operazioni in hardware, ma qualcosa andò seriamente storto durante la sua progettazione: non era infatti insolito ottenere prestazioni più elevate via software, tramite la CPU principale, anziché utilizzando via hardware le funzioni accelerate della scheda video. I giochi che la supportavano furono per altro veramente pochi, caratteristica questa che accomunava un po’ tutte le soluzioni “seminali” del periodo (ATi Rage 3D, Rendition Verite, Matrox Mystique).

Dopo DooM, per mandare un titolo a scaffale qualsiasi publisher pretendeva dalla software house che fosse in 3D

NV1, pur senza diventare un best seller, fu il primo prodotto commerciale di Nvidia, società fondata solo due anni prima da Jen-Hsun Huang, Curtis Priem e Chris Malachowsky. Gli ultimi due provenivano da Sun Microsystems, dove avevano sviluppato l’architettura grafica GX per le workstation SunSPARC. NV1 fu costruito materialmente dalle fabbriche di ST Microelectronics con un processo produttivo da 500 nm e fu il cuore pulsante delle schede video Diamond Edge 3D, caratterizzate dalla presenza di una porta compatibile con i joypad per SEGA Saturn e supportate direttamente da una serie di conversioni di giochi da questa console. Il destino di NV1 era però segnato fin dall’inizio: non solo “ragionava” in modo diverso da tutte le altre soluzioni a venire (suddividendo la scena in quadrilateri invece che in triangoli), ma poche settimane dopo la sua comparsa Microsoft finalizzò la prima versione delle sue API DirectX, con cui la scheda era scarsamente compatibile.

LA RIVOLUZIONE DI 3Dfx

L’uscita dei processori Voodoo1 e delle schede che lo ospitavano (fra cui ricordiamo la diffusissima Diamond Monster 3D) fu il terzo evento epocale del periodo, per i giochi su PC. Composto da un milione di transistor, dotato unicamente di funzioni fisse, costruito con il “solito” processo produttivo da 500 nm e operante a soli 50 MHz, il processore di 3Dfx era in grado di elaborare soltanto la grafica 3D e, pertanto, noi giocatori eravamo costretti a montare anche una scheda video tradizionale per usare i programmi di ogni giorno e i giochi classici. Avevamo un cavetto con cui potevamo collegare la scheda VGA alla scheda Voodoo e quest’ultima al monitor. Il segnale della VGA veniva raccolto dalla Voodoo e normalmente girato al monitor, tranne quando si avviava un gioco compatibile con l’accelerazione 3D: in quel caso, il processore Voodoo assumeva il comando e potevamo gustarci giochi come POD, Tomb Raider o anche Quake nella meravigliosa fluidità dei 30 e più frame al secondo garantiti dal nuovo (e costoso) acceleratore. Oggi diamo queste cose per scontate, ma ai nostri occhi fu un po’ come passare dal 286 al Pentium o, per usare un paragone un po’ più attuale, dal classico telefonino a uno smartphone. Nulla, prima di allora, era mai stato così veloce. Nulla così spettacolare e coinvolgente. Nessun processore centrale avrebbe mai e poi mai garantito quella fluidità, se non a un decimo della risoluzione (e parliamo pur sempre di 640×480 o al massimo 800×600 pixel!). La rivoluzione del 3D era cominciata e, nei mesi a seguire, le software house fecero a gara per pubblicare le patch necessarie ad “attivare” l’accelerazione 3D sui loro giochi, adattandosi a usare anche le librerie Glide di 3Dfx nello sviluppo dei loro motori.

3dfx_02_voodoo2

Il processore di 3Dfx era in grado di elaborare soltanto la grafica 3D

La sfida lanciata da 3Dfx venne raccolta immediatamente dalla concorrenza, che di certo non stava alla finestra a guardare (soprattutto perché la nuova arrivata, dal nulla, era riuscita ad agguantare fino all’85% del mercato delle schede accelerate). L’anno successivo, ATi lanciò le sue schede Rage Pro, soluzioni 2D/3D AGP 2x in grado di arrivare a 1600×1200 pixel, Nvidia rispose con il processore NV3, meglio noto come Riva 128, compatibile con le DirectX 5. Anche Rendition disse la sua, con le sue schede Verite 2100 e 2200, ma nessuna di queste soluzioni – eccetto le successive Nvidia TNT2 e Matrox G200 – fu in grado di impensierire 3Dfx che, forte del suo blasone e del supporto da parte delle software house, nei mesi successivi continuò a mietere successi con le schede Voodoo2 e Voodoo3.

Ma quando ormai i giochi sembravano fatti, arrivarono i grattacapi: le sue soluzioni 2D/3D Rush e Banshee ebbero troppi problemi di stabilità, qualità visiva e prestazioni; le sue librerie proprietarie Glide cominciarono a perdere terreno fra i programmatori e, nel tentativo di contrastare la crescente concorrenza di ATi, nVidia, Matrox e perfino Intel, 3Dfx operò una vera e propria mossa suicida, comprando il produttore STB Systems allo scopo di costruirsi da sé le schede video. Non solo il produttore non si rivelò all’altezza delle aspettative, ma i suoi partner tradizionali – che vendevano schede video a proprio nome, dotate dei suoi processori – l’abbandonarono velocemente per abbracciare le soluzioni concorrenti, sempre più valide ed economiche. La società che diede i natali all’accelerazione 3D sparò allora le sue ultime cartucce nel corso del 2000, pubblicando le schede Voodoo4 4500 e Voodoo5 5000, basate entrambe sull’architettura VSA-100, dopo aver comprato per 186 milioni di dollari il produttore di chip GigaPixel Corporation, acquisizione che mandò definitivamente in rovina i suoi conti. Oberata dai debiti, pressata dall’impazienza dei creditori, incapace ormai di operare in un mercato che stava cambiando troppo velocemente, verso la fine dell’anno 3Dfx alzò bandiera bianca e vendette alla concorrente nVidia tutti i suoi asset, i suoi brevetti e le sue proprietà intellettuali. Le speranze di vedere nuove schede con il glorioso marchio 3Dfx furono immediatamente mortificate con una campagna di rottamazione che prometteva grandi sconti sulle schede GeForce a chi avesse lasciato al negoziante la sua vecchia Voodoo. Era la fine di un’epoca e l’inizio di una grande rivalità storica, ma questo lo vedremo in seguito.

L’ASCESA DELLE DIRECTX

Uno degli aspetti legati al successo – ma anche al rapido declino – delle soluzioni Voodoo era rappresentato dalle Glide, API proprietarie di 3Dfx derivate da un sub-set delle librerie OpenGL, a loro volta derivate dai sistemi operativi montati sulle workstation SGI e vendute in licenza ai produttori di soluzioni grafiche professionali. Le Glide erano altrettanto “chiuse” e funzionavano solo sulle schede 3Dfx, mentre altri produttori di schede acceleratrici erano costretti a offrire soluzioni software analoghe che, a loro volta, i programmatori di videogiochi erano tenuti a impiegare per offrire l’accelerazione 3D anche su queste ultime. Il risultato? Ovviamente la moltiplicazione delle ore necessarie allo sviluppo dei motori dei giochi, l’incremento della difficoltà nella gestione e nel supporto tecnico. Serviva un linguaggio comune e, come prevedibile, fu Microsoft a offrirlo. Come abbiamo già detto, Windows 95 (e i suoi successori) limitavano l’accesso all’hardware da parte dei programmatori con l’introduzione di un HAL (hardware abstraction layer) che, chiaramente, limitava la loro libertà d’azione al set di funzionalità esposte dal medesimo. Tre impiegati di Redmond, Criag Eisler, Alex St. John ed Eric Engstrum, trovarono la soluzione ideale in Exodus, un sistema di sviluppo prodotto dalla Kinesoft Development Corporation di Peter Sills (successivamente CEO di Moby Games), e ne usarono i concetti di base per sviluppare una nuova serie di librerie destinate a fornire un maggiore accesso all’hardware, le DirectX.

directx-logo-300x312Con l’avvento degli acceleratori grafici, queste librerie si arricchirono di una componente che, tutt’oggi, è ancora la più nota e utilizzata nello sviluppo di giochi per PC, Direct3D. All’inizio fu un’impresa molto ardua: le librerie dominanti erano le OpenGL e, per quanto immani fossero gli sforzi profusi da Microsoft, la semplicità e la supremazia tecnica di queste ultime erano veramente difficili da raggiungere. Eppure, forte della diffusione di Windows e della “fame” di standardizzazione sentita dal mercato, in pochi anni Microsoft riuscì a imporsi, al punto che la compatibilità con le DirectX e il supporto a tutte le funzioni che mettevano a disposizione pesò sempre di più sugli acquisti dei videogiocatori. Già alla fine del vecchio millennio era impensabile prescindere dalle librerie di Microsoft, ma fu con l’arrivo della versione 8, nel 2001, che il sorpasso tecnico da parte di Redmond fu cosa fatta e riconosciuta da tutti, eccetto forse da John Carmack e da pochi altri programmatori “fedeli” alle OpenGL, più che altro per ragioni di portabilità del codice. Le librerie di Microsoft non solo offrivano un replica di tutte le funzioni messe a disposizione dalle concorrenti, ma cominciavano ad aggiungerne di nuove e, come vedremo in seguito, con l’uscita della versione 10 arrivarono addirittura a imporre la “visione” di Microsoft ai produttori di chip grafici. Ma questo accadrà molto più tardi, per ora godiamoci…

LA GUERRA DI ATi E NVIDIA

Se nel 1997 le aziende impegnate nello sviluppo di acceleratori grafici erano decine, negli anni immediatamente successivi si avviò il processo fisiologico di razionalizzazione che ne avrebbe ridotto il numero a pochi, grossi player di mercato. Nomi come Cirrus Logic, Macronix, Alliance Semiconductor, Dynamic Pictures, Tseng Labs, Chromatic Research, Rendition, AccelGraphics e Chips and Technologies erano destinati a sparire o a essere acquistati, andando ad aggiungere brevetti, know-how e menti esperte nei portfolio di 3Dfx, ATi, Nvidia e Intel. Il risultato di questo marasma evolutivo fu la nascita di una nuova classe di microprocessori, destinata a prendere velocemente il posto degli “acceleratori 3D” come erano stati intesi fino ad allora: parliamo delle GPU, una formidabile invenzione (almeno dal punto di vista del marketing) di nVidia, la prima, con la sua GPU GeForce, a usare questo genere di nomenclatura.

3d_06_1stGPU_geforce256

Le GPU furono una formidabile invenzione (almeno dal punto di vista del marketing) di nVidia

Il processore GeForce 256 prevedeva 4 pipeline di rendering, offriva l’accelerazione hardware di transform & lightning (T&L) e la tecnologia cube environment mapping, con cui poteva generare riflessi in tempo reale. Con queste caratteristiche poteva macinare 480 Mtexel/s, almeno un terzo in più dei concorrenti e, dal punto di vista tecnologico, dava vita a una nuova classe di acceleratori capaci, per la prima volta, di eseguire passo dopo passo tutti i calcoli necessari a trasformare i triangoli in immagini renderizzate, sollevando il processore centrale da tutti i compiti che ancora gli rimanevano. ATi rispose con il suo processore R100, anch’esso capace di T&L hardware, adottando per la prima volta il nome Radeon. La vera rivoluzione, però, arriverà soltanto due anni dopo, con l’introduzione delle librerie DirectX 8.1 e degli shader programmabili. Nvidia lancerà le sue GeForce 3 e ATi replicherà con le Radeon 8500: grazie alla nuova funzionalità, i programmatori non dovevano più limitarsi a usare le funzioni fisse accelerate dalla scheda, ma potevano intervenire direttamente sulla pipeline di rendering scrivendo delle routine (shader) che potevano essere eseguite dalla GPU e applicate e triangoli (vertex shaders) o immagini (pixel shaders) in precise fasi dell’elaborazione della grafica. Tutto questo non solo dava inizio alla grafica così come la conosciamo ancora oggi, ma anche alla storica rivalità fra le due aziende che, a colpi di annunci, prodotti, benchmark più o meno truccati, prezzi e campagne mediatiche, va avanti ancora oggi, e questo sebbene ATi nel frattempo (2005) sia stata “mangiata” da AMD e ne sia diventato uno dei tanti core-business.

IL NOSTRO TREDDÌ QUOTIDIANO

Con la fine di 3Dfx e il progressivo appiattimento su un sostanziale “triopolio” (con ATi/AMD e Nvdia a portare avanti lo sviluppo tecnico, e Intel ben salda nella sua posizione di best seller in fatto di GPU integrate) del mercato, in cui avevano giocato un ruolo di momentanei comprimari anche Matrox (con le schede G200 e G400 prima, e con le sfortunate Parhelia poi), S3 (Savage 4) e PowerVR (Kyro/Kyro II), possiamo tranquillamente considerare chiusa l’epoca aurea dell’accelerazione 3D. Ma, come direbbe Franco Califano, tutto il resto è noia? A prima vista, sì. Nel corso degli anni è capitato che ATi/AMD e nVidia si siano passate a più riprese la leadership nelle vendite, nelle prestazioni o nell’innovazione tecnologica, vendendo questo o quel prodotto di successo (GeForce ti4200, Radeon 9800, GeForce 6800, Radeon x1950, GeForce 9800, Radeon HD3870, GeForce GTX 200, ecc ecc, fino ai giorni nostri), ma dal giorno in cui Microsoft pubblicò le librerie DirectX 10 unificando il percorso degli shader (non più vertex e pixel, ma shader e basta), inglobando nel discorso anche i “compute shader” che un tempo chiamavamo GPGPU, sembra proprio che il tempo delle invenzioni straordinarie, delle architetture pronte a raddoppiare le prestazioni della precedente, o anche solo a distaccarle di un buon 50%, siano definitivamente tramontati.

nvidia-gtx-titan-x

Nel corso degli anni è capitato che ATi/AMD e nVidia si siano passate a più riprese la leadership nelle vendite

Eppure, ne sono successe di cose: dai primi timidi tentativi di dare spessore alle immagini con la stereoscopia siamo arrivati al supporto dei caschetti VR; AMD si è ribellata al monopolio software di Microsoft creando le API proprietarie Mantle, per poi farle confluire nel mondo OpenGL con il progetto Vulkan; l’idea di mettere più schede in SLI (originaria di 3Dfx) fu ripresa anche dalle sue concorrenti; oggi non c’è praticamente processore centrale consumer che non includa al suo interno una GPU, o una scheda video che non includa anche una scheda audio. Per non parlare dei monitor, che hanno moltiplicato di otto volte le loro risoluzioni e modificato più volte i connettori. Il problema, come sempre, è umano: quando si vive un’epoca fertile di invenzioni, di novità straordinarie e di piccole rivoluzioni, non è facile percepire con lo stesso entusiasmo il successivo periodo di affinamento. Se non ci credete, chiedete a vostro padre del Commodore 64 o dell’Amiga, e di raccontarvi cos’è successo dopo.

Condividi con gli amici










Inviare

Rispondi

  1. Ricordo ancora la prima volta che sentii parlare di pixel shaders, ma sopratutto ricordo ancora la prima volta che vidi girare TES III Morrowind sulla mia nuova Radeon (8500? 9500? Bho, è passato troppo tempo) in grado di gestirli: magia pura.
    Il fatto che mi ricordi perfettemente l'uscita delle prime 3dfx, e di come arrancasse con i nuovi giochi il mio PC dell'epoca "pre-3D" (con una Trio), è una prova schiacciante di vecchiaia incipiente, ahimé :bua:
    Come dimenticare la mia S3 Virge 3D.. e la mia Power VR di Matrox... Quando leggo articoli del genere mi rendo conto di quanto sia stato fortunato a poter vivere tutta l'evoluzione di questo meraviglioso mondo.. a quando un articolo del genere per le schede audio? Ricordo ancora l'emozione delle prime SoundBlaster.
    La mia prima Voodo 4mb :!:

    La presi in occasione dell'uscita di Tomb Raider II e ricordo che mi divertivo a switchare dalla 3Dfx alla S3 Trio per assaporare le enormi differenze :jfs:

    Era il luglio del 1998 e me la portai a casa per 200mila delle vecchie lire...
    Anch'io faccio parte della generazione Voodoo1 (presa nel '98 per 345 mila lire): all'epoca 4MB sembravano potessero bastare e invece sappiamo tutti come è andata e questo articolo ce lo ricorda molto bene... bravo Besser.
    eulero
    Anch'io faccio parte della generazione Voodoo1 (presa nel '98 per 345 mila lire): all'epoca 4MB sembravano potessero bastare e invece sappiamo tutti come è andata e questo articolo ce lo ricorda molto bene... bravo Besser.


    ora siamo nel 2016 e ho ancora sul pc fisso dell'ufficio una scheda video con SOLI 4MB.............. Eppur si muove :facepalm:

Password dimenticata