KyroII 32Mb vs. 64Mb

Pag. 2 - Caratteristiche


Oggi la crescita delle prestazioni delle schede grafiche è meno che proporzionale rispetto all’aumento della potenza di calcolo perché si è consapevoli che la tecnologia che c’è alla base è ancora da affinare. In particolare il tallone d’Achille delle moderne schede 3D è la banda passante della memoria video: siamo arrivati a bus di 128 bit (anche 256 bit con il nuovo Parhelia e il nuovissimo Radeon 9700) che permettono trasferimenti di diversi Gb al secondo. Perciò sul mercato troviamo chi si è adeguato alla corsa sfrenata all’incremento del bus e delle frequenza della Video Ram introducendo, al contempo, tecniche di gestione ottimizzata dello z-buffer. Ma troviamo anche chi ha battuto una strada totalmente distinta. Stiamo parlando di PowerVR, proprietaria della tecnologia di rendering che è alla base dei chip Kyro e Kyro2 (nonché del nuovo Kyro2 SE) che ha compreso come non vi sia la reale necessità di allargare la banda (incrementando i costi) così come di sfruttare memorie DDR (DoubleDataRate) per raddoppiare la frequenza effettiva di trasferimento. L’idea di PowerVR si basa su un’intuizione avuta qualche anno fa, tanto semplice quanto geniale: il Tile Based Rendering. In un processo di renderizzazione 3D tradizionale (Immediate Mode Rendering), dopo aver prelevato e modificato le geometrie e applicati gli effetti luce (T&L), si passa al clipping (cancellazione delle parti di superfici non visibili a video) ed infine alla resterizzazione e rendering. In questa fase si applicano ai pixel le diverse texture contenute in memoria (texture&shade) e successivamente si passa alla lettura dello z-buffer (ulteriore area della memoria che registra il parametro di profondità, cioè la quota, dei texel appena ottenuti).


Così si visualizzano solo i texel visibili a schermo (e non coperti da altri) ed infine, generata l’immagine che sarà visualizzata, la si memorizza nel frame buffer pronta per essere visualizzata.


Da questi passaggi si comprende come, indipendentemente dal fatto di essere visibili o meno, molti pixel vengono elaborati inutilmente occupando notevoli risorse e banda passante. Allora si può semplicemente pensare di invertire la successione tra “depth test" (analisi profondità dei pixel e texturizzazione in modo da poter, prima, selezionare solo i pixel realmente visibili, e poi richiamare solo le texture necessarie (occupando molta meno banda) ed elaborando molti meno dati.


Ma PowerVR non si è fermata a questo. La sua genialità risiede nell’idea di dividere lo schermo in tile (tessere) di dimensione fissa (32x16 pixel) che vengono analizzate dal chip che “vede" quali saranno i pixel realmente visualizzatio esaminando una “display list" o “triangle list" creata poco prima. A questo verranno prelevate dalla memoria solo le texture realmente utilizzate, applicate a poligoni o a porzioni di questi. Tale processo è detto Deferred Texturing proprio perché la texturizzazione è effettuata in differita, dopo il depth test. Raccolte tutte le tessere nel frame buffer, l’immagine è pronta per essere visualizzata.


I vantaggi sono numerosi:
1 – Dovendo elaborare una piccola porzione di immagine (un tile di 32x16 pixel), tutte le operazioni possono essere svolte direttamente “on-chip" sfruttando un buffer interno al Kyro ad alta velocità senza frequenti e dispendiosi accessi alla memoria dovuti all’adozione di z-buffer e frame buffer esterni. Quindi non esistendo un’area di memoria dedicata ai due buffer di cui prima, si può dedicare più banda al trasferimento delle texture.
2 – Poiché tutte le operazioni di z-buffer, pixel blending, stencil buffer sono effettuate “internamente", vengono realizzate ad elevata precisione (sempre a 32 bit) senza intaccare le prestazioni; inoltre, anche per quanto concerne la qualità dell’immagine si opera sempre a 32 bit (Internal True Color) e il risultato è una qualità d’immagine forse anche superiore a quella “leggendaria" di Matrox.


3 – La scalabilità. Grazie alla divisione dello schermo in tiles e all’eccellente gestione della banda di memoria, l’architettura PowerVR è facilmente implementabile in circuiti integrati, dove la memoria centrale è condivisa tra processore e chip grafico. Grazie alla divisione in tiles, la potenza di calcolo è facilmente incrementabile anche con più di due processori che lavorano in parallelo e, tenendo conto del metodo con cui il Kyro evita l’overdraw (stratificazione di superfici con conseguente presenza di parti non visibili), è corretto affermare che la potenza del Kyro è effettiva. Infatti se teniamo conto che la complessità di profondità (numero di pixel sovrapposti) dei giochi moderni arriva anche a tre o quattro, il Kyro è come se avesse una potenza (in termini di Mpixels/sec) triplicata o quadruplicata. Si è calcolato che, con la maggioranza dei giochi oggi in commercio, la potenza di un Kyro2 (che nominalmente permette 350Mpixels/sec) si attesta attorno ai 1050Mpixels/sec. Questa è la spiegazione di come un chip così “povero" possa intaccare le prestazioni di chip ben più potenti e blasonati (e costosi). Dimostrazione dell’enorme potenzialità di tale architettura, è l’accordo tra Imagination Tecnologies (di cui PowerVR fa parte) e Intel. Il colosso statunitense dei processori, consapevole dell’efficienza di tale architettura, vuole implementarla nei propri chipset integrati che verranno alla luce nel prossimo futuro.


Da questo grafico emerge come il Kyro riesca a sfruttare anche solo un terzo della banda passante rispetto agli usuali sistemi di rendering 3D. Altra caratteristica interessante è la possibilità di applicare otto texture per ciclo di rendering. Questo significa che in caso si debbano applicare quattro texture, il Radeon7500 (che ne applica tre per ogni ciclo) dovrà calcolare due volte la geometria della scena, mentre il Kyro2 no. Inoltre si possono così rendere meglio superfici più dettagliate e fotorealistiche, miscelando texture diverse e particolari tipi di luce. Sensibili, allora, sono i vantaggi in tutti quei giochi che fanno un uso intensivo di texture (con ulteriore risparmio della banda passante). Ma il Tile Based Rendering ha, ovviamente, anche dei lati negativi, primo tra tutti il decadimento delle prestazioni nel caso di scene complesse cioè con elevato numero di poligoni. Queste inducono il Kyro2 a creare triangle list “pesanti" da elaborare e dove i pochi “cavalli" del chip (350Mpixels/sec) si fanno sentire in corrispondenza anche di “corposi" accessi alla memoria. E’ in queste occasioni che la mancanza di un’unità interna di T&L si fa sentire (carenza colmata con il Kyro2 SE anche se i driver attualmente in circolazione non permettono di saggiarne ancora le potenzialità). Inoltre è da ricordare l’approccio del Kyro nei confronti delle superfici trasparenti: è di tipo tradizionale e quindi, introducendo overdraw, “pesa" fortemente sul lavoro del chip.






















Scritto da nico64 | il 2002-11-19 00:00:00 |

Annunci Google