Il primo gameplay trailer di Sunset Overdrive ha lasciato un po’ tutti di stucco e le prime preview del gioco di Insomniac Games, da sempre sviluppatore molto vicino a Sony, hanno evidenziato la bontà di questa nuova IP diretta unicamente a Xbox One. Un open world frenetico, colorato, spensierato, infarcito di più di 100 nemici su schermo dotati ognuno di 40 mila poligoni, compreso il personaggio principale. Facendo due conti veloci per le sole apparizioni dei vari PG su schermo “costa” a Xbox One qualcosa come 4 milioni di poligoni renderizzati, esclusi effetti e strutture architettoniche.
Una mole impressionante di dati che Xbox One riesce a gestire senza problemi, come evidenziato dal video ripreso da una vecchia build (di circa due mesi fa, come confermato da Insomniac). Già la build attuale offre diverse limature tecniche, come una miglior simulazione dei vestiti (soggetti alla fisica), migliori animazioni e ambienti ancor più ricchi di dettagli.
La build del filmato presenta una grafica a 900p e solidi 30fps ma, da alcune indiscrezioni, il gioco dovrebbe raggiungere i 1080p senza problemi, mantenendo costante il frame rate senza cali neanche nelle situazioni più concitate. Ma perché Insomniac ha deciso di realizzare questo gioco per Xbox One? Semplicemente perché la console di Microsoft, oltre ad essere una macchina molto potente, può contare sul Cloud, cosa che permette ai programmatori di agire in tempo reale sul codice del gioco apportando modifiche al volo, aumentando l’open world con nuove caratteristiche ed espandendolo come meglio si crede. Si tratta di una rivoluzione del videogame, rivoluzione in cui crede fermamente Microsoft e anche numerosi sviluppatori.
Inoltre, come già accaduto per Titanfall, Microsoft ha rappresentato il partner perfetto per portare avanti questi ambiziosi progetti, favorendone investimenti e sviluppo. I risultati sono davanti agli occhi di tutti. Sunset Overdrive è già uno spettacolo per gli occhi, un mondo popolato e variegato che, con tutto il rispetto per inFAMOUS: Second Son, pulsa di vita e azione: i numeri parlano chiaro.
Ma una dichiarazione di Insomniac ci ha lasciati spiazzati:
“Abbiamo deciso di lavorare con Microsoft per questa IP perché per noi ha rappresentato il partner perfetto. Senza di loro Sunset Overdrive non avrebbe mai visto la luce. Avevamo bisogno di una macchina potente per realizzare questa nuova visione, e Xbox One è effettivamente una console potente. Vorremmo dirvi di più di questa console, ci sono ancora degli aspetti da approfondire in questo senso e ne beneficeranno tutti gli sviluppatori, ma non possiamo riportare ancora nulla in merito”.
Che se ben ricordate sembrano le stesse parole rilasciate tempo addietro da Dean Hall, creatore di DayZ nonché figura di rilievo di Bohemia Interactive. In una intervista, Hall aveva dichiarato di voler portare il suo gioco anche su console next gen e che, in seguito ad un colloquio con Microsoft, aveva approfondito diversi aspetti legati all’hardware di Xbox One che però non poteva ancora rivelare:
“Ci sono delle cose molto eccitanti di Xbox One, assai interessanti, ma non posso fornire ulteriori dettagli”.
Non è più una sorpresa che le DirectX 12 porteranno evidenti benefici alla console grazie ad una serie di implementazioni che sbloccheranno tutto il potenziale dell’hardware. L’arma in più della console della casa di Redmond? Per certi versi sì. Ma cosa sbloccheranno le nuove API? Innanzitutto porting più semplici da PC a console e viceversa, in più i programmatori si potranno avvicinare ancor di più al “metallo” del chipset sfruttando le tantissime feature che la console dispone, prima fra tutte il dual lane della GPU (ricordiamolo ancora una volta, unico processore che possiede due Compute Command Proccessor e due Graphic Command Processor, a dispetto di PS4 che invece monta solo un grosso Compute Command Processor). La cosa interessante è che tale cosa non è passata inosservata ed è diventato un tema molto discusso anche in importanti forum come Beyond3D, da più utenti visti come la bibbia dell’hi-tech.
Ci si interroga quindi quale sia il funzionamento corretto della GPU di Xbox One, quali ruoli può gestire al meglio, se può lavorare in parallelo con dual task simultanei, sincroni o asincroni e via discorrendo.
Insomma, la pulce nell’orecchio è saltata anche a utenti qualificati e preparati e il modo nuovo di vedere l’hardware di Xbox One sta finalmente avendo un certo seguito. Questo perché, indubbiamente, la console progettata da Microsoft ha ancora molti aspetti rimasti segreti e poco chiari. Ad esempio la minor presenza di ROPs di Xbox One è in parte mitigata proprio dal doppio pipe di rendering ed altre soluzioni studiate ad-hoc. Inoltre questo elemento coinciderebbe con le vecchie dichiarazioni di Albert Penello, secondo cui un maggior numero di elementi non sempre corrisponde ad una maggiore potenza (riferendosi a PS4…):
“In scenari dove vi sono meno TFLOPS non vuol dire essere meno potenti, spesso sono numeri che non coincidono con la realtà”.
Sappiamo da tempo che l’intero hardware di Xbox One è un hardware bilanciato che tende a sfruttare e massimizzare l’intero ciclo di risorse senza dead-cycle, bubble o errori di sistema (che obbligano il chipset a rielaborare i tasks).
In altre parole numeri effettivi vs numeri su carta. Ma la cosa interessante è che, come detto in precedenza, non esistono allo stato attuale numeri ufficiali da parte di Microsoft, se non dati generici e qualche slide significativo ma ancora poco approfondito. Prendiamo i Compute Units ad esempio, di cui Xbox One ne include 12 (più due di ridondanza disabilitati). Sappiamo solo che le 12 CU sono rivolte unicamente sul lato GFx (grafico quindi) e non sono adibiti ai GPGPU compute, questi svolti dalla GPU stessa. Bene, analizzando i CU di Xbox One arrivano i primi dubbi, ossia se possa trattarsi di compute unit tradizionali o se Microsoft e AMD abbiano rielaborato il concetto di questi importanti elementi.
Ad esempio qui possiamo trovare il “Fabric node” nella fascia viola in alto a destra e altri non è che il NoC presente in Xbox One (network on chip). Utile per il Cloud Computing e l’accesso dei dati di rete confluiti nel northbridge della console, ergo la CPU.
John Sell, veterano dell’industria, aveva infatti dichiarato:
“Xbox One utilizza un Fabric ad alta velocità”, concetto anche riportato da Nick Barker nel DF di Eurogamer:
“”We wanted higher coherency between the GPU and the CPU so that was something that needed to be done, that touched a lot of the Fabric around the CPU“.
Primo punto di contatto verso le next gen GPU, cosa di cui Xbox One già dispone quindi.
Ora prendiamo in riferimento i dati sulla GPU di Xbox One (core GFx) e mettiamoli a confronto con quelli della GPU di PS4, in particolare sulla distribuzione della L1 cache, CU e ALU.
-GCN 1.0 e GCN 1.1 usano un array di CU, che equivalgono a gruppi di CU per L1 condivisa (CU=Comput Unit, GCN=Graphic Core Next di AMD).
-GCN 2.0 utilizza le CU come gruppi di SIMD per L1 non condivisa.
-Gli Shader Core (SC) di Xbox One sono basati su tecnologia GCN 2.0, dove gli SC utilizzano un gruppo di SIMD per L1, come evidenziato in figura:
La base di partenza è dunque un GCN 2.0 per Xbox One, dove i SIMD sono racchiusi all’interno di un singolo core CU/SC, e il CU nel GCN 2.0 è praticamente composto da un array indipendente di CU. I SIMD possono gestire tot operazioni, e per ops (operation per second) possono avere un “n” numero di ALU.
Partendo dal concetto base di GCN 2.0, Microsoft ha provveduto a realizzare e customizzare i singoli blocchi, ma i SIMD totali per CU, gli ops totali per SIMD, il numero totale di ops per ALU non sono “fissi” sulla parte GFx di Xbox One, possono eseguire più thread per ciclo in modo dinamico e indipendente (i CU non sono disposti a blocchi o gruppi, bensì sono separati, individuali).
La GPU di PS4 è costituita da due blocchi di Shader composti da 3 CU array, 9 per parte che compongono 18 CU totali (bilanciati in 14 più 4 per GPGPU). Ogni array di 3 CU ha in condivisione L1 e K$.
1 CU array = 16KB L1 + 192 KB LDS/LSM (192 ALU per 3 CU)
PS4 è basata su chipset Southern Island, con il medesimo blocco di CU, rappresentando una GPU da 256bit e abbracciando la tecnologia GCN 1.1.
Riassumendo Xbox One, ha il modulo Gfx costituito da 12 Tiles Shader core, con: 1 Shader core = 16KB L1 + 64KB LSM/LDS (128 ALU per CU).
L’intera GPU è più di 256bit (notare i 4 canali a 256 bit ciuascuno…), e stiamo parlando del solo blocco GFx senza contare i vari SPP e SHAPE. Da notare poi come la memoria di tipo L2 e il controller di memoria sono collegati ad “altri client”, ossia 2 Command CP.
Xbox One utilizza il GCN 2.0 più numerose ottimizzazioni e aggiunte di rilievo, con lo Shader Core che ha dedicati GFX e compute processing ed è per questo motivo che ogni SC ha 64 KB, non condivisa, mentre sui chipset Sea Island i 32KB sono impiegati per il controllo di 64 ALU per CU (come su PS4).
PS4 utilizza chipset Sea island con diverse ottimizzazioni, ma basate su GCN 1/1.1.
- PS4=Sea Island
- Sea island 32KB = 64 ALU per CU
- Xbox One L1 16kB, ha 64KB LDS per singolo CU, 128 ALU per CU
Se preferite, se vogliamo immaginare una struttura GCN 1.0 su Xbox One, possiamo anche dire che per SC possono essere eseguiti 64 ops con 2 ALU per ops, come se fosse un GCN 1.0 ma costituito da 24 CU.
A voi le conclusioni…