Per capire da dove proviene Mantle, dobbiamo tornare indietro nel tempo e prendere la PlayStation 3 come esempio di come AMD vuole cambiare il modo in cui i giochi interagiscono con il sistema grafico del PC. Mentre il processore Cell della PS3 e i core grafici associati sono difficili da programmare, giochi come Uncharted 3 e The Last of Us portano con loro una grafica migliore a molti titoli PC recenti, nonostante l’hardware di oggi sia qualcosa di inimmaginabile, rispetto all’hardware di lancio della console. Come è possibile? Le console danno agli sviluppatori un accesso facilitato al sottosistema grafico, senza driver grafici, overhead prodotto dalle API, un OS che ostruisce e altre eccentricità non necessarie che divorano risorse importanti. Il risultato è che i giochi per console sono capaci di utilizzare al 100% una risorsa data, permettendo ai programmatori di fare di più con meno. In alcuni casi (la PS3 è ancora un esempio che calza a pennello) il passaggio che consente di utilizzare appieno tali risorse come programmatori richiede un approccio totalmente diverso ad una piattaforma hardware, reimparando, di fatto, a programmare. Qui, interviene AMD a rendere il processo meno arduo ed accessibile a tutti.
Mantle è stata creata per ridurre il numero di ostacoli tra gli sviluppatori e ciò che vogliono creare quando creano un nuovo gioco o quando vogliono effettuare un porting dalle consoles. In passato, cose come l’ottimizzazione della CPU e l’efficienza nella comunicazione tra componenti erano categoricamente ignorate, con gli sviluppatori alle prese con un’infinità di configurazioni hardware possibili, con CPU multicore non sfruttate a dovere, risorse GPU sprecate e la mancanza di un’ottimale condizione prestazionale sul PC, malgrado l’hardware più avanzato. C’è inoltre una larga componente software nell’ambiente PC, in quanto i programmatori, per accedere alle risorse, devono passare da software, sistemi operativi e driver che comunque inspessiscono la distanza tra loro e l’hardware. Ciò è un problema di non poco conto, che porta all’interazione software-memoria a quella che potrebbe essere paragonata ad un semaforo con il verde che dura pochi secondi, come un collo di bottiglia che limita il throughput computazionale. Le DirectX 10 e 11 hanno cercato di indirizzare nella maniera corretta molti di questi blocchi, ma le prestazioni generali sono comunque ancora limitate dal fatto che sono API ad alto livello. Insomma, la comunicazione da loro gestita tra API, GPU, gioco e CPU è ancora forzata in canali stretti, qualcosa che gli sviluppatori non vorrebbero trovarsi davanti. Utilizzando API ad alto livello (come, appunto, DX10 e 11), vengono effettuate un elevato numero di chiamate di drawing, che portano inevitabilmente a saturare i cicli di calcolo della CPU: in pratica, le architetture grafiche odierne non possono esprimere tutto il loro potenziale.
Qui interviene Mantle, con la sua introduzione nell’equazione: non un rimpiazzo diretto delle DX e delle OpenGL, ma una forza complementare ad esse. Essa è un’API che si focalizza sul metallo nudo e crudo, programmazione a basso livello con un driver leggerissimo, che gestisce efficacemente la distribuzione delle risorse, garantisce controlli addizionali sull’interfaccia della memoria grafica e ottimizza le suddette chiamate di drawing. Pensate di Mantle come un mitragliamento a bassa quota che bersaglia componenti chiave, piuttosto che un bombardamento a tappeto che non garantisce pienamente che un obiettivo venga colpito. Con una linea di accesso più diretta alla GPU, AMD spera che le performance di GCN aumentino drasticamente, incrementando l’efficienza piuttosto che mettere alla base del problema una maggiore potenza grezza. Aprire a nuove tecniche di rendering che non sono legate alle API odierne è una possibilità. Teoricamente, ciò permette a Mantle di processare chiamate di drawing superiori del 900%, e ancor più importante, permette di portare giochi da console a PC e viceversa con tutte le ottimizzazioni delle risorse del caso.
Ovviamente, ci sono delle limitazioni per questo approccio. Mentre le API di alto livello rimarranno le stesse (DX, D3D) tra le varie aziende hardware, Mantle sarà compatibile solo con GCN. Questa è un’ottima notizia per tutti coloro che utilizzano una scheda HD7000 o superiore o chi possiederà una nuova console, ma gli utenti in possesso di schede GeForce o Intel HD4000 verranno lasciati fuori, in quanto almeno per il momento né nVidia né Intel hanno soluzioni paragonabili o compatibili. Persino le schede precedenti a GCN sono state messe da parte in favore del progresso. Con ciò a mente, gli sviluppatori potrebbero essere costretti a bypassare il supporto a hardware non recente, aggiungere Mantle come opzione selezionabile o semplicemente ignorare Mantle finché i prodotti compatibili siano fuori commercio. Senza dubbio AMD ha vinto la corsa alle prossime generazioni di console, grazie alle APU Jaguar su entrambe XOne e PS4, cosicché questi design facciano parte integrante della loro strategia futura. Purtroppo, è stato detto davvero molto poco riguardo alle API ad alto e basso livello utilizzate in questi prodotti, in primis l’Xbox One, le Direct3D 11.2 sono date per scontate, ma nessuno sa di cosa si tratti scendendo al basso livello. Microsoft ha anticipato tutti dicendo che Mantle non verrà utilizzata come API a basso livello, ma includendo la compatibilità HLSL DirectX di cui dispone la console potrebbe far avverare i sogni dell’azienda a lungo termine. Sotto molti aspetti, questo approccio ci ricorda le Glide di 3DFX, un’altra API a basso livello sviluppata anni fa ma fallita miseramente per la mancanza del supporto di sviluppatori e per la dismessa dell’azienda che le creò, 3DFX, appunto. Una delle maggiori sfide nel fare qualcosa al di fuori dei tipici ambienti DX/OpenGL è vendere l’idea agli sviluppatori. Mantle può aver mostrato promesse senza fine, ma abbiamo visto già una pletora di tecnologie simili messe da parte per via di uno scarso supporto dall’industria. Stavolta, però, AMD ha sostenitori di grande rilievo già dal day one.
Se AMD avesse utilizzato un piccolo studio di sviluppo per diffondere le proprie API, molti poche aziende l’avrebbe presa sul serio. Invece, hanno raggiunto subito credibilità grazie al supporto di EA e, di conseguenza, di DICE. Una combinazione responsabile della creazione della serie multimiliardaria di BattleField, considerata un caposaldo dell’industria dei videogiochi. Secondo Johan Andersson, Lead Designer di DICE ed evangelista rispettato della tecnologia avanzata del PC, Mantle è uno sforzo collaborativo tra AMD, EA, DICE e altri studios. Il risultato è che il Frostbite 3 di DICE supporterà nativamente le nuove API a basso livello. È un affare non di poco conto, se considerate il largo numero di titoli tripla A che useranno tale motore. Need For Speed: Rivals, Dragon Age: Inquisition, Star Wars Battlefront, BattleField 4, sono tutti titoli che utilizzeranno il Frostbite 3 e che potrebbero potenzialmente includere un’opzione per Mantle. Gli altri sviluppatori seguiranno a ruota visto che Mantle è stata creata per soddisfare le esigenze di essi, quando ci si trova di fronte alla creazione di un titolo PC o di un porting.
Il primo titolo ad includere il supporto a Mantle sarà l’incredibilmente anticipato Battlefield 4. Comunque, Mantle verrà diffuso solo in una patch di Dicembre, due mesi dopo il rilascio iniziale, avvenuto proprio pochissimi giorni fa. Ciò pone ottime basi in quanto dimostra che Mantle può essere implementato in un gioco con una patch, senza stravolgere il codice sottostante e offrendo al pari del Source Engine un’opzione di switching tra le modalità di rendering. Ovviamente, siamo fortemente interessati ai boost prestazionali che può fornire rispetto ai competitors. Considerando tutto ciò, dove si colloca Mantle nel panorama attuale delle API? Non ne siamo ancora sicuri, visto che la tecnologia è ancora ai primi stadi. A giudicare dalla reazione dei siti internet in giro per il mondo sul suo annuncio, gli sviluppatori già aspettano con clamore di avere accesso alle versioni per PC. Un segno incoraggiante, insomma. Comunque sia, come Mantle si evolverà attraverso la sua iterazione attuale dipende dal desiderio di AMD di supportarla negli anni a venire, ed è qui che si pone un grande punto interrogativo. Vista l’associazione vicina alle console e all’abilità di facilitare i porting su e da PC, dal punto di vista di sviluppo ed ingegneria hardware, dovrebbe essere una scelta ad occhi chiusi, quindi ci sono ottime speranze che il supporto non verrà tagliato molto presto, anzi, si prospettano ottime applicazioni per quest’API.
Mantle e il suo lancio ci dicono un bel po’ di cose: il rapporto di AMD con gli sviluppatori inizia a ripagare concretamente, l’inclusione dell’architettura GCN sulle console di next-gen si sta mostrando un fattore molto più cruciale di quanto nVidia ha cercato di far pensare, e AMD stavolta è seria da morire sulla focalizzazione sul gaming. Mantle è un filone comune che connette così tante iniziative che può essere davvero l’occasione di AMD di far brillare tutto ciò che è presente nel suo portfolio, dalle prossime APU Kaveri alle GPU discrete alle console. Ulteriori informazioni verranno divulgate durante l’AMD Developer Summit che avrà luogo questo mese.
Discussione su post