DirectX 12 e eSRAM su Xbox One: ecco cosa ne pensa un vero esperto
Con una rapida ricerca sul web vi potrete imbattere in una marea di ragionamenti e considerazioni più o meno attendibili relativi a quelle che sono a tutti gli effetti due delle principali caratteristiche peculiari di Xbox One. Mi riferisco alle librerie grafiche DirectX 12 attese per il 2015 e alla tanto (direi troppo) bistrattata eSRAM.
Quando però a dire la sua su questi temi è un vero e conclamato esperto dell’industry non si può che prestare particolare attenzione. L’esperto in questione (ovviamente non è a me che faccio riferimento! 😆 ) è Wolfgang Engel, ex lead graphics programmer presso Rockstar, autore di diversi libri sulla programmazione grafica e fondatore/CEO della Confetti. Probabilmente questo nome vi dirà poco o niente ma è abbastanza normale dato che stiamo parlando di una realtà importante nel campo della programmazione grafica che, però, non opera a contatto con noi utenti finali. La Confetti, infatti, si occupa di sviluppare dei tool grafici molto avanzati, di integrarli all’interno di engine terzi e di fornire consulenza tecnica di alto livello ai suoi clienti, tra i quali troviamo grandi società come Intel, AMD, Microsoft, Qualcomm, Insomniac, etc. Di recente ha legato il proprio lavoro di consulenza e le proprie tecnologie a progetti videoludici di grande rilievo come Tomb Raider, DOOM III, Star Citizen e Battlefield 4.
In una bella e recente intervista rilasciata a Gamingbolt, Wolfgang Engel ha parlato anche di Xbox One e proprio dei due suddetti aspetti. Di seguito trovate un sunto di quanto affermato dal programmatore (in corsivo) corredato da alcune informazioni aggiuntive che ritengo utili a delineare un quadro più ampio.
DirectX 12
Grazie alle DX12 il carico sulla CPU decresce notevolmente a seguito di un miglior utilizzo dei vari core del processore. Una delle più interessanti caratteristiche dei giochi moderni risiede nella fisica che, solitamente, viene implementata proprio sulla CPU. Gli sviluppatori possono impiegare tutto quell’ammontare di CPU time risparmiato grazie alle nuove librerie, ad esempio, proprio per migliorare la fisica. Tutto questo è vero su PC come su Xbox One. XOne, tra l’altro, impiega già adesso delle librerie grafiche DX11.n customizzate che anticipano (anche se solo in parte) alcune delle feature che arriveranno con le DX12 il che permette già ora di risparmiare molto CPU time da destinare ad altri scopi (ndr. più nemici, IA più performante, etc.).
A tal proposito lasciatemi aggiungere che, come annunciato di recente da Phil Spencer, le DX12 non faranno miracoli su XOne ma di sicuro andranno a sbloccare delle risorse extra presenti ma non ancora impiegabili con le attuali librerie grafiche. Vedremo di che risorse si tratterà (azzardo tra tutte l’impiego del dual lane per la parallelizzazione delle elaborazioni grafiche) e come queste impatteranno sulle performance dei giochi. Già adesso, però, stando alla parole di Futuremark (leader nella realizzazione di software per il benchmark) sappiamo cosa attenderci in generale con il passaggio dalle DX11.n alle DX12. A seguito della già citata più equa distribuzione dei carichi di lavoro sui core del processore (ricordiamo che su XOne ve ne sono 8), gli ideatori del notissimo 3DMark ci fanno presente che gli sviluppatori potranno realizzare scenari più ricchi di oggetti e quindi più dettagliati. Inoltre avranno accesso a tutta una serie di nuovi strumenti e nuove funzionalità di rendering in grado di migliorare l’efficienza di svariati algoritmi quali, ad esempio, quelli legati alla gestione della trasparenza, al rilevamento delle collisioni e alla geometria. Ovvio che tutto ciò avrà un impatto decisamente maggiore sul mondo PC dato che, in qualità di sistema chiuso e noto a priori, già adesso Xbox One beneficia di api di basso livello particolarmente efficienti. Detto questo, è però indubbio che anche lo sviluppo di giochi su XOne avrà i suoi benefici con l’arrivo delle DX12.
eSRAM
Parlando della eSRAM di Xbox One, da molti vista come un punto di debolezza della console, Wolfgang Engel ha fornito uno spunto di riflessione molto interessante sottolineando che, se ben adoperata, è destinata a diventare il punto di forza dell’intero sistema.
Ovvio che si può fare della eSRAM il punto di forza auspicato solo se adoperata a dovere. A tal proposito l’esperto, richiamando alla mente quanto già detto inprecedenza da Turn10 e da Crytek, aggiunge:
Le chiamate più pesanti e importanti possono essere gestite nella eSRAM. Quando non si necessita di banda di memoria velocissima, si deve ricorrere alla memoria di sistema regolare. È necessario però pianificare in anticipo, bisogna pensare prima a come adoperare la memoria nel modo ottimale. Così la eSRAM ti offre un vantaggio, a patto che si pianifichi tutto dall’inizio. Per uno dei nostri progetti che stiamo realizzando, abbiamo utilizzato la eSRAM creando un foglio in excel (ndr: stesso approccio intrapreso dagli sviluppatori di Trials Fusion), che mostra come ci accingiamo a utilizzare la eSRAM attraverso gli stadi della pipeline di rendering. Questo ci ha aiutato a utilizzare i miglioramenti di velocità che offre la eSRAM senza impattare sull’intero sistema e sfruttando al massimo ogni singola risorsa.
Lasciatemi riprendere la parola per sottolineare come proprio il corretto uso dell’accoppiata eSRAM-DDR3 sia un aspetto tutt’altro che secondario. Solo decidendo a priori quali asset grafici renderizzare attraverso la eSRAM e quali lasciare alla ram DDR3 si può sfruttare tutto il potenziale di Xbox One. Il modo migliore per comprendere ciò è ragionare, usando le informazioni rilasciate dagli stessi progettisti di XOne, sulla banda complessiva messa a disposizione dal sistema di memoria della console:
- eSRAM e DDR3 non vanno visti come elementi a se stanti bensì come un unico sistema. Questo perchè in tutto vi sono 8 controller per la memoria, 4 per la RAM DDR3 e 4 per la eSRAM che però sono tutti interconnessi tra loro e quindi è possibile accedere simultaneamente a RAM ed eSRAM. In altri termini, l’eSRAM è completamente integrata nelle tabelle di paging ed è così possibile integrare perfettamente la eSRAM nella memoria DDR3.
- La banda passante teorica della RAM DDR3 (8GB) è di 68GB/s che, all’atto pratico, si assestano su un valore reale di circa 50-55GB/s.
- La banda passante teorica della eSRAM (32MB) è di 109GB/s in lettura e altri 109GB/s in scrittura. Poichè la eSRAM è in grado di supportare letture e scritture simultanee, la sua banda teorica complessiva è in realtà di 218GB/s. Come per i moduli DDR3, anche la eSRAM calata in applicazioni reali si assesta a regime su un valore più basso e per l’esattezza misurato in 140-150GB/s.
- Di conseguenza, considerando l’uso combinato di RAM e eSRAM (possibile per quanto detto nel punto 1.), complessivamente il pool di memoria di Xbox One è in grado di offrire una banda reale superiore ai 200GB/s (50-55GB/s + 140-150GB/s). Non a caso misurazioni effettuate con codice reale in elaborazione hanno fatto registrare un valore di 204GB/s.
Se questo numero vi dice poco è sufficiente pensare che la tanto decantata ram GDDR5 di PS4 è sì estremamente performante ma si ferma a “soli” 176GB/s. Tutto questo gran potenziale del pool di memoria di XOne, però, resta inespresso o sottoutilizzato senza quel buon lavoro preliminare di pianificazione di cui parla Engel. Per intenderci, se un asset grafico non necessità di tutta la velocità offerta dalla eSRAM, gestirlo lo stesso mediante questi 32MB è un enorme spreco di risorse che penalizza le performance dell’intero sistema.