Parallelismo e grafica nelle console next-gen

Johan Andersson ci parla di Battlefield 4, Frostbite 3, funzioni da integrare nell'hardware next-gen, sviluppo su Xbox One e PS4 e l'API AMD Mantle.

Avatar di Tom's Hardware

a cura di Tom's Hardware

TH: un paio di volte hai parlato della scalabilità del Frostbite quando si tratta di threading delle CPU multi-core. Le console next-gen offrono un alto numero di thread, ma i core di per sé sono meno complessi di quelli che abbiamo sui PC. Che cosa state facendo per usare le risorse x86 disponibili e come si confronta tutto questo con lo sviluppo passato?

Johan: stavamo lavorando sulle console next-gen da circa due anni e nell'ultimo anno ci siamo concentrati molto sull'ottimizzazione. È stata una sfida ottenere le prestazioni giuste, ma il nostro engine era abbastanza parallelizzato e l'abbiamo migliorato ulteriormente da questo punto di vista. Per noi era d'obbligo avere 64 giocatori a 60 FPS su PS4 e Xbox One. È stato fatto molto lavoro per parallelizzare tutto. Ora siamo a circa il 90/95% dell'uso della CPU e ho alcuni screenshot che evidenziano l'uso della CPU in multiplayer.

Clicca per ingrandire

La differenza rispetto al passato è grande: anche se l'architettura Cell era davvero potente, solo il lavoro che serviva per spostare i dati nelle SPU (era enorme). Abbiamo speso molto tempo nello spostare cose nelle SPU e ottenere grandi prestazioni, ma dovevamo anche compensare le prestazioni della GPU spostando cose nella SPU. Questo ha richiesto molto tempo, e alla fine abbiamo ottenuto buone prestazioni, ma quell'architettura non era ben bilanciata.

Ora con le nuove console l'architettura è molto più bilanciata e abbiamo prestazioni abbastanza buone dalle CPU. Siamo in grado di spendere molto più tempo per usarle completamente e nel processo di parallelizzazione anche fare altri tipi di ottimizzazione. Non dobbiamo ottimizzare ogni load-hit-store o cache miss perché si tratta di processori out-of-order che possono gestire più codice in una maniera più generale, e anche questa è una cosa davvero buona. Le due APU hanno però frequenze abbastanza ridotte, quindi è ancora una sfida assicurarsi di usarle completamente e questo è ciò che stiamo facendo.

Andando avanti penso che inizieremo a spostare più codice di calcolo sulle GPU. Cose come la simulazione dei vestiti o parti del vostro rendering, si possono fare gestire in modo molto più efficiente alla GPU. Quindi questa sarà la nostra sfida per il futuro.

TH: allo stesso tempo abbiamo a che fare con engine grafici che non sono in grado di sfruttare i computer di fascia alta. Quanto vicino potete arrivare all'esperienza PC a 1080p su console e se dovete fare dei compromessi, qual è la prima cosa da fare?

Johan: questa è una decisione di ogni team con cui lavoriamo, ma per noi avere 64 giocatori e 60 FPS era la cosa più importante perché volevamo portarvi l'esperienza PC. E se giocate a Battlefield penso sarete concordi nel dire che l'esperienza di gioco con server a 64 giocatori e un ottimo frame rate fa davvero una grande differenza rispetto a ciò che abbiamo sulle console di attuale generazione con solo 24 giocatori. Tutto questo permette di avere un gameplay più vario e per noi era la cosa più importante. Sicuramente abbiamo fatto alcuni compromessi. Il gioco non gira a 1080p nativi, ma a una risoluzione leggermente inferiore.