di  -  mercoledì 16 settembre 2009

Come anticipato la scorsa settimana, oggi ho intenzione di parlare, in breve, di una società che, pur non essendo tra quelle “sparite” dall’universo informatico, dopo aver vissuto stagioni di gloria si trova, da alcuni anni, relegata, quasi esclusivamente, in una nicchia un po’ particolare, ovvero quella delle applicazioni multimonitor. Questo in virtù dell’affinamento della tecnologia dualhead introdotta, per la prima volta, nel corso del 2000, sulla G400, lanciata nel settembre 1999.  Per i pochi che non l’avessero ancora capito, sto parlando di matrox, società molto attiva nel portare l’intrattenimento multimediale nel mondo dell’home computing.

Non è mia intenzione ripercorrere la storia di questo glorioso marchio ma di focalizzare l’attenzione su alcuni modelli e, in particolare, quelli prodotti nel periodo di transizione tra l’era del 2D e quella del 3D. Anzi, per la precisione, su alcune caratteristiche architetturali di questi modelli, per certi versi, piuttosto peculiari o innovative.

Non credo sia un mistero per qualcuno il fatto che, per anni, matrox è stata sinonimo di qualità e di elevate prestazioni in 2D nel mondo consumer, anche se, nelle scorse settimane, abbiamo visto che altri marchi, non altrettanto noti al grande pubblico (ad esempio Chromatic Research, Tseng Labs o Number Nine, tanto per fare alcuni nomi)  non avevano nulla da invidiare sia in qualità sia come accelerazione 2D alle famose millennium e mystique di matrox.

Ho ancora vivo il ricordo di alcuni miei amici e di come  “sbavavano” davanti alle specifiche di ogni nuova vga che usciva a marchio matrox, confrontandole con quelle delle Trident o delle S3 Trio presenti sui loro pc. C’è da dire che, in effetti, matrox è sempre stata molto attenta alla qualità d’immagine, curando in maniera quasi maniacale la componentistica, delle sezioni di alimentazione e di output delle loro VGA e il layout del pcb (matrox progetta e produce in proprio le vga).

C’è, però, da ricordare che, come molti altri, anche matrox è stata, per certi versi, spiazzata dal passaggio dal 2D only al 2D/3D che ha portato, nel giro di pochi anni, ad avere l’accelerazione 3D come aspetto predominante nella progettazione di una gpu (si pensi che, ad esempio, la serie HD4xx0 di AMD non ha neppure un blocco dedicato al 2D che è gestito tramite lo shader core che integra funzionalità necessarie all’accelerazione dei flussi audio e video come le operazioni di integer bitshift). Non è un caso che il primo acceleratore 3D (3D only, sul modello delle Voodoo 1 e 2) uscito a marchio matrox, ovvero l’M3D, montava un chip della serie PCX2 di PowerVR.

Da quanto detto in precedenza, ai più attenti non sarà sfuggito il fatto che protagonisti di questo breve articolo saranno i chip prodotti a partire dal 1998, il primo dei quali è quello noto come MGA G200 (abbreviato oon G200). Questa doveva rappresentare la risposta di matrox agli acceleratori grafici della concorrenza e, in particolare, secondo l’intento di matrox, avrebbe dovuto competere con i chip della serie Riva 128 e con le Voodoo di 3dfx.

La G200 presentava alcune soluzioni interessanti a partire dal, cosiddetto, dual bus . Per capire di che si tratta, niente di meglio di qualche immagine. In basso un’architettura a 128, del tipo, per intenderci, di quelle di chip come il Riva 128 o il Riva TnT

architettura-interna-128-bit.jpg

Come si può vedere, sia il bus esterno che quello interno sono bidirezionali ma consentono il transito dei dati in una sola direzione per volta (all’epoca non esistevano ancora architetture di tipo crossbar) .

Al contrario, nella G200, l’architettura dei due bus si può schematizzare come segue

g200-128-bit-dual-bus.jpg

Il memory controller presenta un bus a soli 64 bit mentre l’architettura interna del chip ne ha due  da 64 bit, ciascuno dei quali permette il transito dei dati in una sola direzione.

E’ un po’ come paragonare una strada a carreggiata unica con 4 corsie su cui la circolazione è a senzo unico alternato e una strada divisa in due carreggiate da due corsie ciascuna.

Un’altra caratteristica interessante dell’architettura di G200 riguarda le testure unit.

Prima di introdurre il discorso sulla capacità di texturing di un chip è, forse, opportuno spendere qualche parola sul fillrate o, meglio, sui due tipi di fillrate a cui si fa riferimento quando si parla di GPU: il pixel e il texel fillrate. Il primo è la capacità di un chip di “scrivere” i pixel nel frame buffer e, poichè le unità preposte a tale operazione sono le ROP’s (raster operation pipeline) o le RBE (render back end) che dir si voglia (entrambi i termini servono a definire lo stesso tipo di unità)  il pixel fillrate è determinato dalla capacità di output di queste unità e si misura moltiplicando il numero di pixel scritti in un singolo ciclo (che non può mai essere superiore al numero di ROP’s, poichè, al massimo, una unità potrà elaborare un pixel in un ciclo), per la frequenza di funzionamento del chip o delle RBE qualora queste operino a frequenza differente dal resto del chip (caso non così raro). Ad esempio, RV770 ha 16 ROP’s e in caso di non applicazione dei filtri è in grado di elaborare, in teoria, 16 pixel per ciclo che restano ancora 16 con MSAA 4x e scendono a 8 con MSAA 8x; per ottenere il pixel fillrate teorico basta prendere questi numeri e moltiplicarli per la frequenza del chip. Il texel fillrate, invece, è funzione del numero di TMU, dell’impatto che l’applicazione dei relativi filtri (bilineare, trilineare, anisotropico) hanno sulla capacità di elaborazione delle TMU e, ancora, della loro frequenza di funzionamento.

Chiusa questa parentesi, mettiamo a confronto l’architettura della pipeline del G200 con quella, ad esempio, del Riva 128, con la prima delle due più a sinistra

g200-tmu.jpg       riva-128-tmu.jpg

Come si vede, entrambe hanno una sola ROP’s e una sola TMU (indicata con TE in figura), la differenza sta nella capacità del G200 di elaborare 8 texel per ciclo contro i 4 del Riva 128, permettendo al primo di avere filtraggio trilineare “for free” mentre il secondo può beneficiare solo di filtraggio bilineare “gratuito”. Questo perchè il bilinear si ottiene interpolando linearmente una coppia di texel, mentre per il trilinear si deve ricorrere all’interpolazione lineare dei valori ottenuti da due precedenti filtraggi bilineari (si ottiene, quindi, attraverso 3 operazioni di interpolazione lineare che coinvolgono 4 texel).  Ovviamente, il G200 presentava anche altre caratteristiche interessanti, come lo z-buffer a 32 bit e i 32 bit di precisione interna di calcolo.

Nel complesso un chip interessante ma afflitto da un problema non da poco: i driver OpenGL, a lungo latitanti in un primo momento e, successivamente, immaturi al punto da non permettere al G200 di eguagliare con quelle API le prestazioni sfoderate con le D3D. Inoltre nel giro di pochi mesi, si trovò a fare i conti con i nuovi nati di casa nVidia e S3, il Riva TnT (il primo chip di tipo consumer con doppia pipeline di rendering) ed il Savage 3D, che fornivano prestazioni mediamente superiori, soprattutto in OpenGL, oltre che con il Voodoo Banshee.

Di considerevole c’è che matrox ha fatto il suo ingresso nel mondo dei chip 2D/3D, per di più con un prodotto che presenta alcune soluzioni tecniche interessanti.

La generazione successiva fa segnare, con ogni probabilità, il punto più alto mai toccato da matrox nella corsa alle prestazioni 3D. Il suo G400, nella versione Max, non solo risulta competitivo nei confronti della concorrenza ma, spesso, quando si fa uso dei 32 bit e, soprattutto, in D3D, risulta superiore alla TnT2 Ultra e si avvicina alla Geforce 256 nella versione con ram SDR (grazie anche al fatto che quest’ultima, all’aumentare della risoluzione, risulta castrata dalla esigua bandwidth).

Il G400 ripropone le stesse soluzioni tecniche viste sul G200, ossia: dual bus ma, questa volta con interfaccia verso le ram a 128 bit e architettura interna composta da 2 bus da 128 bit ciascuno e VCQ2. In più, rispetto al G200, ha la doppia pipeline di rendering e una delle feature più pubblicizzate del momento:  l’EMBM (environment mapped bump mapping), ideata dai Bitboys e “licenziata” a matrox ed altre, tra cui ATi e nVidia, introdotta nelle specifiche delle DX6 ma non supportata da chip DX7, come le Geforce 256 e le Geforce 2. L’EMBM prometteva (già da allora) mirabolanti effetti realistici come mostra l’immagine tratta dal gioco Expendable,

senza EMBM

g400-no-embm.jpg

e con EMBM

g400-embm.jpg

Purtroppo l’EMBM non fu l’asso nella manica di matrox, in quanto lo scarso supporto da parte degli sviluppatori produsse un numero esiguo di titoli che lo implementavano.

Sul piano architetturale, matrox aveva conservato il dual bus che si era rivelato vincente ma aveva anche rimosso il collo di bottiglia del G200, ovvero il bus di soli 64 bit del memory controller; questo mentre i rivali non avevano introdotto particolari novità (ad esempio, il Riva TnT non era altro che  un Riva 128 con doppia pipeline e il TnT2 un TnT con frequenze più elevate). Quindi, mentre matrox poteva contare su un’architettura superiore nVidia si giovava di driver migliori e di frequenze di funzionamento più alte.

L’avvento delle cosiddette GPU, dotate di motore geometrico, fa segnare il passo a matrox che non ha le risorse economiche e umane per competere ad armi pari con ATi e nVidia. Salta a piè pari, quindi, la prima generazione, quella delle DX7, limitandosi ad affinare la tecnologia multimonitor con chip cloni di quello che equipaggia la G400, per fare un estremo tentativo di rientrare in corsa con la successiva. Con l’introduzione delle DX8 prima e, successivamente, delle DX9, matrox presenta, infatti, la Parhelia, il cui chip riprende l’architettura dual bus, questa volta facendo uso di un bus esterno e di due interni, tutti da 256 bit.

In basso, lo schema architetturale della matrox Parhelia

parhelia.jpg

Dalla figura si vede chiaramente l’interfaccia verso la memoria, da 256 bit, e quella verso l’interno del chip (in blu), da 512 bit di tipo dual bus. Si notano anche altre cose, tra cui le 4 pixel pipeline dotate, ciascuna, di 4 TMU e le 4 vertex pipeline. La Parhelia risulta un ibrido, capace di supportare lo SM2.0 per le operazioni geometriche con la possibilità di fare displacement mapping tramite n-patches (come R200) e, addirittura, di eseguire operazioni di vertex texturing (previste dallo SM3.0) e ferma allo SM1.3 per le pixel pipeline (R200 supporta lo SM1.4, tanto per fare un paragone). Inoltre, ciascuna delle 4 TMU presenti su ogni pipeline, è in grado di operare “solo” su 4 subsample per ciclo, al pari di quanto visto per il Riva 128, mentre le 2 TMU di ogni pipeline di NV2x o di R200, sono del tipo di quelle viste per la G200, ovvero capaci di operare su 8 subsample. Questo significa che solo applicando il bilinear filtering la Parhelia, riesce, di fatto, ad applicare 4 texel per pixel per ciclo, mentre con l’uso del trilinear o dell’anisotropic il suo vantaggio nei confronti di NV2x e di R200 si azzera.

Tra le feature interessanti della Parhelia, il doppio ramDAC con la possibilità di collegare due monitor indipendenti e fino a 3 (in questo caso con diverse limitazioni), l’output a 10 bit per ciascuno dei tre colori RGB e 2 bit per il canale alpha, con la modalità 10,10,10,2, un gran numero di tipologie di antialiasing, dal classico supersampling al 16x fragment antialiasing (FAA) che, grazie all’abbinamento con un algoritmo di edge detect, permette l’applicazione del filtro solo su quei pixel attraversati dal bordo di un poligono); matrox ha previsto anche un antialiasing per i caratteri del desktop, il glyph antialiasing che riduce le scalettature nei testi.

Internamente, il chip che equipaggia la Parhelia lavora a fp32 per i vertex shaders e INT8 per i pixel shaders e le ROP’s.

Nel complesso si tratta di un prodotto interessante, arrivato, però, con troppo ritardo e, di conseguenza, poco competitivo sia a livello prestazionale che tecnologico. Rappresenta anche l’ultimo tentativo di matrox di proporre qualcosa di competitivo nel panorama consumer. Dopo l’esperimento Parhelia, matrox si dedica solo allo sviluppo di soluzioni multimonitor sempre più raffinate (e costose) destinate a usi per lo più di tipo medico-scientifico.

Il motivo dell’abbandono della rincorsa alle prestazioni da parte di matrox è lo stesso che ha portato alla scomparsa o all’abbandono da parte di quasi tutti gli altri competitor che, non più tradi di una decina di anni fa, affollavano il panorama dei produttori o progettisti di chip grafici: l’enorme aumento della complessità dei chip e, di conseguenza, l’enorme aumento dei costi (R300, nel settembre 2002, aveva circa 110 milioni di transistor, RV870, a settembre 2009, ne ha oltre 2 miliardi). Questo ha portato ad una ferrea selezione che ha prodotto l’attuale situazione che vede, in pratica, tre soli protagonisti contendersi la ribalta. Ma ha portato anche a prodotti infinitamente più veloci, raffinati e innovativi.

Questa conclusione potrebbe essere l’introduzione dell’articolo della prossima settimana che potrebbe avere per oggetto qualcosa di più “recente”.

21 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
    Griso
     scrive: 

    Ottimo articolo, io ero possessore come molti di una mistyque (o come si scrive) e aveva veramente una grande qualità di immagine.

  • # 2
    Fabio
     scrive: 

    Ricordo di aver avuto una TNT, una TNT2, e una Banshee con le quali il mondo dei videogiochi si è letteralmente “spalmato” sul mio modesto computer, nel senso che di colpo i giochi erano fluidi e pure molto più belli da vedere.
    (Ricordo Tomb Rider, iniziato senza acceleratore che era scattoso a 320×200 senza effetti, e terminato con la Banshee a 640×480 con gli effetti al massimo e fluidissimo ;-)
    La matrox (non ricordo quale, sigh) la utilizzavo al lavoro per il doppio monitor: ci facevo il karaoke in un locale di Roma, proiettando i testi sul maxischermo e l’interfaccia del programma sul mio monitor.

  • # 3
    Fabio
     scrive: 

    Attenderò con ansia questo “qualcosa di più recente” :P

  • # 4
    Al
     scrive: 

    Quando mandai in pensione il PC con la Voodoo1, per non comprare un PC nuovo con Scheda 2D + Voodoo2 (che costava allora ben 600.000 Lire) provai la G200 che costava allora sulle 400.000 o giù di lì e non mi obbligava ad acquistare due schede, una per il 2D ed un’altra per il 3D.

    Il gioco principale che avevo era Quake (1 e 2) e, per sopperire alla mancanza dei drivers OpenGL la Matrox rilasciè il famoso OpenGL Wrapper, un driver che (in modo simile al precedente GlideWrapper di 3dfx) intercettava le chiamate OpenGL e le trasformava in chiamate D3D da inviare alla scheda.
    Le prestazioni (in parte castrate dal Wrapper) erano comunque superiori alla vecchia Voodoo1 ed inferiori alla Voodoo2 ma la giocabilità era accettabile e la qualità grafica (specie nei colori) era superiore anche alla Voodoo2; il tutto ad un prezzo decisamente migliore.

    Quando Usci la G400 (in cui la Matrox introdusse il supporto OpenGL) la provai subito ma la dovetti restituire perchè i drivers erano talmente instabili da mandare in crash il PC dopo pochi secondi di gioco.

    Allora già molti desideravano 2D e 3D su una sola scheda e credo che proprio questa scheda, che con un buon supporto drivers sarebbe stata molto valida, segnò l’inizio della migrazione verso Nvidia che usci un paio di mesi dopo con la TNT.

  • # 5
    Cael
     scrive: 

    Ricordo con nostalgia la mitica Millennium 2 che equipaggiava il mio PC con P2 350MHZ, ma soprattutto all’epoca ricordo l’enorme qualità grafica rispetto a tutto quello che c’era in circolazione.

  • # 6
    D
     scrive: 

    La questo edge antialiasing sarà veramente buono come viene promesso ?
    Ad occhio croce il suo algoritmo prevede di intersecare due superfici per scoprire la presenza del bordo da rifinire ma una superficie per definizione è di dimensione infinita ed anche se nel caso in oggetto fosse solo poco più grande di “quello che dobbiamo vedere” c’è sicuramente uno spreco proporzionale all’inclinazione del bordo stesso. Oltretutto mi viene qualche dubbio sulla qualità nei pressi di due superfici contigue non coplanari. Come si comporterà in quei pressi ?

    “Antialiaserà” troppo sovrapponendo gli effetti dei due bordi o non antialiaserà niente ?

  • # 7
    Luca
     scrive: 

    Quanti ricordi … la Mystique con la M3D :O Peccato che dopo Win95 abbiano smesso di fare i driver :(
    E la G400 che, udite udite, funziona ancora perfettamente sul vecchio P4 Northwood e collegata ad un LCD mostra degli splendidi colori, anche con Win XP

  • # 8
    yossarian (Autore del post)
     scrive: 

    ç D

    Gli algoritmi di MSAA delle odierne GPU sono tutti di tipo edge e non FSAA. Questo per ridurre l’impatto sulle prestazioni; con le DX10.1 prima e le DX11 ora, sono stati introdotti anche algoritmi di tipo custom per il filtraggio di pixel e texture.
    Un algoritmo di tipo edge AA fa uso dei dati contenuti nello z-buffer e calcolati dalle unità geometriche. In pratica, prende i dati relativi alle sole geometrie, li mette in un buffer e li utilizza per applicare l’AA sui soli bordi. Quindi non lavora per superfici ma per punti. Per qualche spunto, puoi leggere questi articoli sulla costruzione di un’immagine 3D

    http://www.appuntidigitali.it/3426/immagine-3d-1/
    http://www.appuntidigitali.it/3479/come-nasce-unimmagine-3d-ii-parte-view-space-e-clip-space/
    http://www.appuntidigitali.it/3537/come-nasce-un%E2%80%99immagine-3d-iii-parte-screen-space-e-hsr/

    e questi sull’aliasing e gli algoritmi di antialiasing

    http://www.appuntidigitali.it/3586/tecniche-di-filtraggio-antialiasing-i-parte/
    http://www.appuntidigitali.it/3637/tecniche-di-filtraggio-antialiasing-ii-parte/
    http://www.appuntidigitali.it/3672/tecniche-di-filtraggio-antialiasing-iii-parte/

    Infine una curiosità: anche la voodoo 2 implementa un algoritmo di antialiasing con edge detect

  • # 9
    NviDioso
     scrive: 

    Avevo Matrox millennium II con 8Mb e schermo 17 pollici amd K6-2-400 con bus pompato a 83mhz e moltiplicatore a 5,5 con 128Mb di memoria SDRAM Hd Ibm da 3Gb + altri 2 dischi secondari più Masterizzatore …. ecc… il tutto naturalmate era sull’ASUS TX97-E!
    SISTEMA OPERATIVO?… Windows 98 Naturalmente!

    Bene quale è il punto?

    Il punto è che la Matrox MillenniumII era si buona e andava OK per il mio 17pollici ma per i giochi era un disastro!

    Allora aggiunsi il Power VR!

    Risultato?

    Decente ma non buono… diciamo appena sufficiente per non cambiare del tutto computer….

    Naturalmente nel 3D e nel CAD la Matrox offriva ancora Buoni … Ottimi livelli anche in DOS!

    Comunque è stata pittosto deludente lo scoprire che non era affatto adatta per il 3D…

    Ancora la schede 2D-3D tutto fare dovevano nascere… ma non tardarono ad arrivare…

    E fu tutta un’altra cosa con la …..

    Nvidia GF2 Ultra 64Mb AGP!

    Sopratutto quando l’ho craccata in Quadro!
    (Naturalmente la presi acquistando un computer nuovo con Amd 1.1Ghz che poi sostiiuto con il 2Ghz e 1Gb di Ram DDR con bus pompato da 133 a 151 si Asus A7M266 (Non è il massimo di scheda per OverClock come la TX97-E!)

    In DEFINITIVA……
    Io dal 2001 non ho più neanche Guardato le MATROX!
    —————————————————
    Poi nel 2004 ho preso una Nvidi GF4 Ultra e ancora la Tengo stretta stretta…… (Craccata anche questa in Quadro!)
    —————————————————-

    La matrox con interfacci PCI la tengo per ricordo e in caso di eventuali sostituzioni di emerganza… (mai Avvenute)!
    —————————————————-

    Comunque peccato che la Matrox non ha mai avuto uno spunto 3D al pari di Nvidia e ATI, è sempre rimasta indietro nelle prestazioni 3D!

    Una critica che devo fare a Matrox è che è OK la qualità dell’Immagine … è tutto quando si tratta di manipolare foto ed immagini come Rendering ecc… ma secondo me nel 3D si è persa in un bicchier d’acqua!

    Le Nvidia e la ATI sorpassano da sempre la Matrox e questo è un peccato! La Matrox poteva competere allora con i prezzi, ma anche questi non sono mai stati bassi!

    La Matrox MillennimII la pagai 500.000Lire… (250Euro)

    Con 250 Euro oggi si compra una scheda infinitamente più Potente… e non solo per il pogresso tecnologico, ma anche per il fatto che Matrox puntando sulla qualità dell’immagine, non ha mai fatto schede Potenti…
    —————————————————–

    Devo dire che tutta questa qualità poi io non l’ho trovata!
    La GF2 era Più Veloce e la qualità dell’immagine 2D non ho mai trovato alcun Difetto!… e nel 3D era Insuperabile! La GF4 poi, per me è stata una delle migliori!
    —————————————————–

    Comunque è giusto ricordare anche la Matrox… ognitanto la vado ad ammirare… intutta quella sua semplicità e quel disegno pulito dei circuiti senza Ventole che Girano senza Dissipatori che pesano … senza niente… manco Prosazioni…. ma solo piena di Nostalgia per il Passato… e di ricordi del tempo speso a setarla ed ad overclockarla (ma di poco) per vedere se guadagnavo l’1%….
    ———————————————–

    Va bhe ho Finito…

    Lunga Gloria alla Matroxxxxxxxx!!!!!!!!!!!

  • # 10
    Magilla
     scrive: 

    Ho avuto la G400 16mb di Ram, e a quel che ricordo appena uscita per il prezzo era imbattibile… Anche se non ero così esperto Mi sembra non ci fosse ancora la Geforce, che comuqnue appena uscita costava una follia in proporzione… E neanche mai avuto problemi di driver, anzi l’avevo presa per sostituire in granzia una S3 savage 3D da 8mb di ram che aveva problemi driver, con la matrox sempre tutto ok…

  • # 11
    arkanoid
     scrive: 

    e a noi?

  • # 12
    biffuz
     scrive: 

    Io devo aggiornare la G200 che ho sul dual P3… perché non ha l’uscita DVI, non per altro. Funziona alla grande anche con un LCD 22″ 1680×1050.
    Con cosa la voglio cambiare? Con una G450, ovviamente :D

  • # 13
    D
     scrive: 

    “Quindi non lavora per superfici ma per punti.”

    Mi sembra un po’ strana come cosa perchè tutte le schede moderne modellano grafica con le n-patches quindi lavorano di superfici.
    Utilizzare direttamente i punti implica una modellazione tipica dei primi elaboratori 3d con i triangoloni “disegnati a mano”, un modo dannatamente carino e fascinoso ma poco “curvo”

  • # 14
    Flare
     scrive: 

    Ricordo anche una G100, ma nel 3D era abbastanza limitata. Io comprai una G200 e la differenza nella qualità dell’uscita video si vedeva davvero, rispetto alle contemporanee. Dopo qualche tempo ebbe anche un buon rapporto/prezzo prestazioni e fu una delle schede video che mi diedero più soddisfazioni. Mio fratello aveva un Asus basata su Riva 128 e in seguito passò ad una G450 dual head. Mi dispiacque vedere Matrox ritirarsi in una nicchia.

  • # 15
    yossarian (Autore del post)
     scrive: 

    @ D

    le n-patches si usano dalle dx8 per generare HOS (il truform della 8500), ma l’utilizzo delle operazioni di tessellation non è lo standard. Esistono dei plug sia per programmi di grafica pro che per i giochi, per utilizzare le n-patches ma gli attuali chip non sono ancora in grado di “creare” vertici ma solo di generarne per interpolazione attraverso algoritmi di HOS.
    I vertici di un frame sono sempre forniti alla gpu dalla cpu. La gpu si limita a costruire le primitive sulla base delle coordinate dei vertici ed, eventualmente, tramite un’operazione di tessellation, a generarne altri per “arrotondare” la superficie, là dove questo operazione è prevista e permessa.
    Con le DX11, a parte il tessellator obbligatorio, le gpu dovrebbero essere anche in grado di calcolare i vertici iniziali di un frame (operazione fino ad ora svolta dalla cpu).
    Una volta calcolate le geometrie, i dati ottenuti sono immagazzinati nello z-buffer in forma di coordinate puntuali (una serie di matrici che riportano i valori lungo l’asse z di tutte le superfici presenti nel frame). Qualora si utlizzassero algoritmi per generare HOS, questa operazione sarebbe precedente a quella di trasformazione dello spazio tridimensionale in spazio bidimensionale (che porta al riempimento dello z-buffer) e nello z o depth buffer si immagazzinerebbero i valori relativi alle superfici così ricavate, quindi, all’atto pratico, non cambierebbe nulla.
    Infine, i dati del depth buffer sono inviati alle ROP’s dove ci sono unità preposte ad applicare il MSAA solo sui bordi delle superfici.
    Una riprova del fatto che il MSAA box è applicato basandosi sullo z-buffer è che fino alle dx9 non era possibile utilizzare il MSAA con motori che facessero deferred rendering, perchè la rimozione delle superfici nascoste è un’operazione che cancella i relativi dati dallo z-buffer prima che si applichi l’antialising e le dx9 non precedevano il salvataggio di quei dati altrove.
    Le dx10 prevedono 2 modalità di salvataggio dei dati dello z-buffer (uno su una texture e uno inizializzando un color buffer come z-buffer). Le dx10.1 e le dx11, oltre a questi due, prevedono la possibilità di utilizzare più z-buffer quanti ne sono necessari. In questo modo è possibile fare MSAA con deferred rendering

  • # 16
    D
     scrive: 

    Speriamo che sia proprio così. Purtroppo con l’aumento costante delle prestazioni di calcolo puro dei sistemi è impossibile capire da fuori quanto un algoritmo è buono (buono inteso come “non spreca risorse”).

  • # 17
    yossarian (Autore del post)
     scrive: 

    @ D
    alcuni esempi li abbiamo: con l’utilizzo del multi render target sullo z-buffer (la tecnica prevista dalle dx10.1 e dx11), si risparmia un passaggio nel rendering e si ottengono, a parità di impostazioni, vantaggi prestazionali dell’ordine del 20-25% con MSAA 4x attivo e motori di tipo deferred (stalker, unreal engine, ecc) rispetto alle tecniche tradizionali di applicazione del MSAA. Il fatto che questa feature fosse disponibile solo su parte del parco VGA in circolazione (sulle ATi della serie 3xx0 e 4xx0) ha fatto si che gli sviluppatori non la implementassero.
    Con l’adozione delle DX11 si spera che questo diventi lo standard.
    Le accresciute potenze di calcolo, invece, saranno utili ad implementare filtri di tipo custom, non necessariamente lineari e, quindi, di qualità superiore agli attuali (il MSAA box standard ha un algoritmo basato su semplice interpolazione lineare che fa uso di INT8, ossia 8 bit per canale di tipo integer, mentre tutto il resto della pipeline lavora ormai a fp32.

  • # 18
    dinigio63
     scrive: 

    di Matrox ho avuto quasi tutto, dalla G100, Mistique 220, G400MAX, G450, G550, e Parhelia.
    I migliori Dac, secondo me sono quelli della G400 e G450, impareggiabili ancora oggi da qualunque altro prodotto in commercio, meno male che è arrivato il DVI, altrimenti non le avrei mai sostituite con schede nuove (e monitor nuovi).

  • # 19
    RV870 single o dual core? - Appunti Digitali
     scrive: 

    […] questi giorni, mi sono scervellato per tentare di mantenere fede all’impegno preso la scorsa settimana, di parlare di qualcosa di più recente delle matrox G400.  Per giorni ho tentato di trovare un […]

  • # 20
    ATi vs nVidia the neverending war: I parte l’ascesa di nVidia e il sorpasso di ATi. - Appunti Digitali
     scrive: 

    […] e 3D, quando il mercato consumer era dominato, a livello numerico, dalle soluzioni proposte da S3, Matrox era, nell’immaginario collettivo, sinonimo di qualità 2D inarrivabile e dire […]

  • # 21
    supergems
     scrive: 

    è un vero peccato che la matrox abbia abbandonato la fascia “consumer”, ancora oggi uso con soddisfazione la MATROX MILLENIUM G450

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.