Pubblicato il 04/12/14 da Neko Polpo

V-Sync, Risoluzione, Framerate: l’hardware cambia, ma le domande restano

Ormai era una questione di tempo: si era già accennato in passato, all’epoca di PS3 e 360, che la naturale evoluzione delle console casalinghe avrebbe ben presto lasciato il passo ad architetture più semplici e meno complesse dal punto di vista hardware.

Con la precedente generazione si era optato per processori PowerPC sviluppati insieme ad IBM in congiunzione con le tre grandi brand, portando per la prima volta termini come “Multi Core” “Clock Speed” “Bandwidth” sulla tavola dell’utente medio che fino ad allora ne aveva fatto benissimo a meno.

Nonostante la similitudine hardware delle due precedenti regine del mercato, ogni console aveva i suoi pro e i suoi contro a livello architetturale, di fatto ponendole in competizione dal punto di vista dei numeri nudi e crudi. Ma non solo, per la prima volta si cominciava a far entrare nel quotidiano del videogamer termini quali “HD” “FullHD” “Framerate” “V-Sync”, fatto per altro ulteriormente esteso con notevoli analisi tecniche da Digital Foundry, che vede proprio la sezione dedicata agli Show-Off nascere in questo contesto.

Ma la via del PowerPC era una di quelle che non avrebbe portato a niente in futuro (Apple stessa impiegò Intel come produttore principale di CPU nei suoi prodotti): creare una console sulla base dell’architettura x86 derivando i componenti da quelli già esistenti nel panorama PC avrebbe consentito tempi di sviluppo più rapidi, una maggiore gestione del codice sorgente che essendo “nativamente” compatibile tra le due console e il mondo pc avrebbe permesso dei porting in sostanza identici, scalabili, gestibili, configurabili, senza ricorrere a lunghi processi di riadattamento di un codice scritto per un’architettura ad un’altra. Così Sony e Microsoft, attenti alle nuove tecnologie e esigenze, sfoggiano le loro next gen basate sul principio hardware di questa architettura nata con i PC, affidandosi di fatto totalmente ad AMD per la CPU e la GPU, coscienti del Know-How letteralmente trentennale.

Questo naturalmente porta gli utenti a tenere conto oggi, molto più di prima e in maniera più pressante, di tutte quelle cose che nel mondo PC sono sempre state all’ordine del giorno. E direte voi “Ma molte di quelle cose già erano state discusse con le precedenti generazioni!”, sì ma qua la faccenda si fa seria, perché il trend iniziato con le generazioni antecedenti a questa non fa altro che essere più presente e corposo che mai, ora che tutti gli utenti, anche quelli di fascia “media” dal punto di vista della conoscenza sanno bene o male di cosa si parla negli speciali di Digital Foundry, o nelle review, tanto da usare tale dati come metrica di paragone e di decisione.

Visto che ormai le console sono dei PC, internamente parlando (ma anche molto “superficialmente”, poiché sono sempre hardware customizzati), non è una novità leggere di recensioni in cui si parla prima di quale risoluzione o framerate tale titolo sviluppa su una PS4 se paragonata ad una Xbox One, spesso creando vere e proprie discussioni infiammatorie a metà via tra la guerra dei mondi e il fanboysmo più assoluto.
Ma tu Gamer, che leggi quest’articolo con la speranza di avere genuinamente le idee più chiare, cosa esattamente sai del #ResolutionGate? È veramente importante osannare una console o una versione di un titolo se è a 900p o 1080p? Il framerate ballerino è qualcosa di cui dovresti tenere conto? Se l’immagine si strappa con orrendi artefatti, significa che ho un problema io sulla console o è effettivamente qualcosa che sta accadendo lato software?
Mi pongo l’obiettivo di schiarirvi le idee, dal punto di vista tecnico e hardware, in questo articolo. Analizzeremo pertanto il V-Sync, cos’è e perché lo si sceglie o non lo si sceglie, parleremo del framerate, dell’importanza di avere un valore stabile ma omogeneo seppur non elevato, e infine parleremo della risoluzione, di quanto le scelte compiute possano aiutare i due punti appena descritti, se è importante o meno.

Parlerò con l’ottica di un console gamer, non di un PC gamer, poiché virtualmente ad eccezione di alcuni rari casi, su PC i limiti si raggiungono solo in base all’hardware che si ha. Dunque bando alle ciance, buona lettura!

IL V-SYNC: LA BELLA E LA BESTIA, LE DUE FACCE DELL’IMMAGINE

Il tearing, ossia lo strappo, questo grande bastardo. Crea un problema all’immagine che può risultare fastidioso, specialmente nei giochi molto veloci e istintivi, come ad esempio gli FPS (dove si tende a muoversi molto velocemente).
Per riconoscere questo “difetto”, se vogliamo classificarlo così, basta osservare attentamente lo schermo: se nella parte superiore l’immagine – letteralmente – si strappa o si sdoppia, creando un effetto poco piacevole alla vista tanto da rovinarne l’immersione o in generale il gameplay, ecco quel fenomeno è definito tearing.

tearing
Un chiaro effetto di Tearing usando Duke Nukem Forever come sample.

Per ovviare a questo problema, purtroppo presente in massa in alcuni titoli sia della vecchia che della nuova generazione (senza contare che su pc è l’ordine del giorno su macchine potenti) si impiega l’utilizzo del V-Sync, ossia della Syncronia Verticale (Vertical Synchronization). Il V-Sync aiuta pertanto ad avere sempre una fluidità d’immagine omogenea, priva di sbavature o di altri artefatti, come appunto il difetto appena spiegato.
Ma attenzione: il V-Sync classico che cerca di mitigare a questo fenomeno del tearing è un tipo molto basilare, che se da una parte aiuta a mantenere una fluidità quasi necessaria nei giochi di rapido movimento, dall’altra potrebbe distrugge le prestazioni o influire pesantemente sulla resa in termini di tempi di risposta. Per capire di cosa parlo, vi spiego come funziona il V-Sync classico, ossia a Due Buffer.

single
Il sistema di trasmissioni immagini “classico”, ossia con un Vsync base.

V-SYNC CLASSICO A DOPPIO BUFFER o Double Buffer V-Sync

Dunque, il V-Sync a due buffer impiega, appunto, due “cassetti” (buffer) che vengono costantemente scambiati inviando il contenuto degli stessi in modo alternato al Monitor. In particolare osservate questa immagine per capire meglio il processo:

double
Il Vsync a doppio buffer (scusate la qualità dell’immagine): si nota come vengono swappati i frames.

Nel caso del tearing (strappo) ciò che avviene è questo: il software prepara un frame nel back buffer mentre invia al monitor il front buffer da visualizzare. Quando il monitor termina di elaborare il back buffer, avviene uno “scambio”, ossia un Buffer Swap. In pratica ciò che accade è che i due buffer vengono rinominati tra loro: il back buffer diventa front e viceversa.
Appena lo scambio è avvenuto, il software prepara un nuovo frame nel back buffer, visto che nello scambio il monitor già sta elaborando il frame appena inviato al front buffer, per ripeterne all’infinito il ciclo appena descritto sopra. Il problema principale che si ottiene è dovuto proprio all’implementazione software di tale ciclo di “swap” alla radice. Infatti in questo processo non esiste nessuna legge che regola le tempistiche dello scambio, pertanto lo Swap può avvenire in qualsiasi momento anche quando il Monitor, come detto, sta ancora elaborando un buffer. Se il back buffer contiene un frame che differisce visualmente tantissimo da quello che è stato elaborato (e quindi mostrato su schermo) si ha il tanto odiato fenomeno di tearing: lo strappo come detto è dovuto dalla visualizzazione di due frame differenti tra loro tanto da essere “accavallati” rendendo la resa finale uno spettacolo orrendo.
E qui entra il V-Sync: sfruttando il sistema dei due buffer in pratica non fa nient’altro che “regolamentare” la cadenza con il quale tale scambio avviene, semplicemente Sincronizzando i frames alla frequenza verticale del monitor. Non solo, il V-Sync si occupa anche di limitare la velocità interna del gioco (framerate) in base alla frequenza verticale del monitor, risolvendo sì il problema del tearing, ma introducendo due GRANDI problemi allo stesso tempo (e qui la limitazione tecnica di cui prima).

Uno dei due problemi primari di questa modalità è il “ritardo” che si ha dall’eseguire un’azione fisicamente sul GamePad o Tastiera e vederla visualizzata su schermo. In pratica la sincronia richiede un tempo artificiale specifico dovuto proprio al modo in cui opera, introducendo un fenomeno chiamato ritardo di risposta (input lag). Per spiegarlo in termini semplici vi basti immaginare un gioco di piattaforme nel quale premendo il tasto salto il vostro personaggio compie l’azione dopo una frazione di secondo che, sebbene minuscola, è chiaramente visibile ad occhio nudo tanto da darvi la sensazione amara della poca immediatezza.

Il secondo problema è la demolizione, nel senso più brutto, delle prestazioni. Abbiamo detto che per eseguire la sincronia verticale si ha bisogno di un tempo tecnico, anzi, lo si impiega per forza in quanto ogni frame deve rispettare il monitor stesso, scambiando i buffer solo a ciclo completato. Se questa operazione dovesse avvenire oltre un sessantesimo di secondo (1/60) in pratica la tanto desiderata fluidità viene letteralmente tagliata in due: è il caso di un gioco che viene visualizzato a 60fps e scende alla metà, ossia 30. E questo può accadere ad intervalli repentini, anche più volte in 10 secondi. Ciò che accade, come avrete immaginato, è che di frames ne viene visualizzato soltanto uno alla volta (la metà di 60) poiché lo swap non avviene, proprio per il principio di eliminare il tearing. In pratica questa versione del V-Sync è schiava della sua stessa modalità di risoluzione del problema.

Ma si può ovviare a tutto questo? Certo, con un V-Sync a triplo buffer.

V-SYNC A TRIPLO BUFFER o Triple Buffering

Come si evince dal nome stesso, piuttosto che impiegare due buffer ne impieghiamo tre. Questo permette al software di avere il terzo buffer sempre completamente renderizzato e bloccato, con la capacità di utilizzo (e quindi di scambio) dello stesso soltanto in quelle situazioni in cui i precedenti due buffer subiscono ritardi artificiali o qualsiasi altro problema legato al metodo di sincronia.

TRIPLE
Il Triplo Buffering all’opera: il Flipping buffer è il terzo buffer che contiene un frame sempre pronto ad essere visualizzato, che viene preparato subito e immagazzinato al fine di ridurre il ritardo artificiale.

Poichè il terzo buffer è sempre costantemente lavorato (anche se non lo notate, ma avviene dietro le quinte) si quasi-azzerano quei fenomeni di input lag che si osservavano in precedenza, poiché lo swap avviene immediatamente avendo sempre e comunque un frame pronto da visualizzare. In parole povere le prestazioni finali saranno simili a quelle che si ottengono quando NON si ha il V-Sync attivato, mantenendo pertanto tempi di risposta eccezionalmente rapidi e senza ritardi artificiali pur avendo la fluidità e l’omogeneità del sistema di sincronia verticale a doppio buffer. Nel campo del PC Gaming di fascia alta, in genere si opta sempre per non avere il V-Sync attivato: ciò comporta uno stress esagerato della GPU poiché la stessa è forzata a lavorare al 99% delle sue capacità costantemente, aumentando in modo spropositato il calore generato e, negli anni passati, accorciando sensibilmente il ciclo vitale della scheda stessa. Non tutti i giochi però supportano tale modalità: in passato si ricorreva a specifici tweak o software (come D3DOverrider) che implementavano tale tipologia di V-Sync proprio per migliorarne le prestazioni. Ormai i nuovi engine, come i nuovi giochi, sfruttano tale tecnologia software nativamente risparmiando all’utente fastidiosi ricorsi a software di terze parti.

#RESOLUTION GATE: dovete veramente preoccuparvi?

Xbox One e PS4 passano il tempo a darsi le mazzate per il miglior porting, e stavolta non lo si fa come accadeva ai tempi di Genesis, SNES o Amiga/Atari ST, lo si fa tenendo in considerazione framerate e risoluzione.
Dovete veramente tenere conto di queste cose, voi che comprate una console con la quale volete semplicemente giocare? Beh, si e no.

Partiamo dal presupposto che non importa a quale risoluzione il gioco venga renderizzato internamente: un chip (o processo software simile) chiamato Scaler in pratica porta l’immagine alla risoluzione nativa della TV o del Monitor che state usando, di fatto “nascondendo” il problema a chi fa volentieri a meno di conoscere la sua esistenza, giocando anche sul fattore Divano/Distanza che chiaramente contribuisce a rendere il problema ancor meno pesante.
Le nuove console  hanno il duro compito di mantenere l’hype avviato con le precedenti generazioni, ossia raggiungere il FullHD come standard “base” di ogni software, visto che il nuovo hardware in teoria dovrebbe esserne più che capace di soddisfare tale richiesta… O quasi. Più l’hardware è potente, più si cerca di spremere la potenza dello stesso in termini di resa grafica e tecnica (come IA, effetti, rendering, post process, etc.) spesso utilizzando risoluzioni pessime o ben lontane dal quel FullHD che tutti si aspettano di vedere, come base minima di partenza.
Il caso Assassin’s Creed Unity ha fatto discutere tutta l’industria e i media per diversi motivi: il precedente Black Flag su PS4 ricevette una patch dopo pochi giorni dal lancio che portava la risoluzione da 900p a 1080p senza diminuire le prestazioni, con il risultato di un’immagine più chiara e precisa a confronto di quella originale.
Era lecito pertanto aspettarsi la stessa cosa, o quanto meno di “partire” già con quel target stabilito dalla patch, e invece no: Ubisoft opta per un nuovo engine grafico (AnvilNext), scritto esclusivamente per la nuove generazioni, facendo il passo più lungo della gamba. Sono stati costretti, vittime della loro stessa ambizione probabilmente, a optare per una risoluzione a metà tra l’HD (720p) e il FullHD (1080p), ossia la stessa usata in precedenza per Black Flag pre-patch (e attuale risoluzione della versione Xbox One), 900p. Ora parlando di rapporto pixel, la differenza non è tantissima e lo scaling permette di avere una resa finale con le stesse proporzioni (per pixel) di una risoluzione FullHD, ma il problema è un’altro.

Il Framerate.

Il Framerate è la capacità del software di raggiungere determinate velocità nel mostrare a video un frame alla volta. A 30fps , standard della precedente generazione, il feeling che si ha è simile ad una pellicola cinematografica: manca pertanto l’effetto “real time”, o dal vivo, guadagnando però una facciata tipicamente da pellicola, che garantisce comunque una certa fluidità costante.

Il problema di questa generazione è anche questo: in molti chiedono e pretendono che le nuove console siano capaci, oltre al 1080p, di sviluppare anche i fantastici 60fps. Purtroppo ad oggi, eccezione fatta per alcuni titoli, tale possibilità rimane una possibilità che soltanto gli sviluppatori possono decidere di adottare, per diverse ragioni.
Se da un lato è possibile  senza dubbio raggiungere tali quote, dall’altro lo è soltanto limitando, privando e tagliando il comparto tecnico di un titolo, perdendo di fatto tutte quelle nuove fantasticherie che oggi giorno albergano nella nuove consoles.
La cosa assurda da un punto di vista tecnico – se me lo consentite – è che gli sviluppatori (anche quando fanno un bel lavoro) devono giustificarsi con il pubblico di gamers (ormai diventati pseudo tecnici capisci-tutto) quando decidono di adottare un framerate di 30fps di una risoluzione inferiore al FullHD.

Ma ciò non basta, ed ecco impazzare il flame collettivo: ormai tutti conoscono quale hardware si cela dentro le nuove console (sono dei pc, praticamente, con componenti derivati dal segmento medio hardware di qualche anno fa) e pertanto pretendono una semplice regola, 30fps a 1080p oppure 60fps a 900p. Il problema è che spesso non si ottiene nessuna delle due cose, ad eccezione (ripeto) di alcuni titoli disegnati e sviluppati con diversi tricks e tweaks del caso.

Assassin’s Creed Unity è a 900p e ha un framerate ORRENDO di 25fps di media (se siete fortunati), che scendono ancor meno in alcune situazioni particolarmente concitate. Lontani sia dal 1080p, figuriamoci dal 30 stabile.
GTA 5 dimostra come si possano sfruttare le console in modo eccezionale: riadattando l’engine grafico usato su 360 e PS3, sono stati capaci di spingere nativamente la risoluzione a 1080p  pur mantenendo, nel 99% dei casi, un framerate di 30fps stabili (qualche incertezza la si nota lo stesso, come delinea Digital Foundry, ma è molto lieve).
Far Cry 4, appena uscito, presenta lo stesso problema. Mentre su PS4 sembra riuscire nell’intento di essere nativamente renderizzato a 1080p / 30fps, con i soliti sporadici tuffi sotto questa soglia, su Xbox One (che ha un hardware leggermente inferiore) gli sviluppatori si sono visti costretti ad utilizzare un particolare compromesso a livello di risoluzione, ossia quella di impostarla a 1440x1080p invece di 1920×1080. Ora calcolatrice alla mano: la differenza è di 480 pixel “verticalmente”, il che comporta ad avere immagini molto inferiori a livello di dettaglio, e con un effetto di aliasing (scalettatura) a dir poco pronunciato e quindi fastidioso (Wolfenstein The New Order è un altro esempio).

Altre soluzioni più furbe, con relativo applauso della scelta tecnica, sono titoli come Infamous Second Son e Killzone su PS4: adottano un sistema di V-Sync adattivo con framerate sbloccato, ossia lasciano che il gioco giri al massimo di quanto possa “spingere” la console in quelle situazioni dove il carico è minore (donando infatti intere porzioni di sano relax ottico e di gioia, specie quando un engine così ben fatto come quello di Killzone dimostra di saper girare a soglie superiori a 50fps) per poi scendere e bloccare il framerate a 30 quando la faccenda si fa pesante da gestire, evitando così fluttuazioni che potrebbero finire con l’introdurre artefatti, input lag e una non fluidità dell’azione. Con le patch distribuite successivamente al lancio gli sviluppatori, attenti al feedback, hanno reso possibile la scelta di bloccare il framerate a 30 o lasciarlo sbloccato, per favorire chi preferisce avere un’esperienza omogenea senza salti eccessivi di fluidità.

Giochi come la serie dei Souls, Dark e Demon, impiegavano invece il concetto della risoluzione dinamica (per altro usato in altri sistemi, come PsVita): a seconda delle prestazioni, al presentarsi di un eventuale calo, il gioco diminuisce la risoluzione interna di rendering per mantenere costantemente un certo ritmo di gioco.

Per riassumere il discorso della risoluzione, parlando di differenze:
1920*1080= 2.073.600 pixel renderizzati.
1440*1080= 1.555.200 pixel renderizzati.
1600*900= 1.440.000 pixel renderizzati.

Ora la differenza che si ha avendo un software che nativamente giri a 1080p contro uno a 900p è di 633.600 pixel. Direte voi, sono numeri inutili, sono numeri piccoli. No, non lo sono, e la differenza è visivamente importante specie su pannelli giganti (da 32″ in su).

Prima ancora che qualcuno dalla folla esordisca con frasi tipo “A me non importa, si vede lo stesso bene, dici un mucchio di cavolate” etc. etc., vi rammento ancora una volta che questo è un articolo tecnico, e come tale è fondamentale farvi capire la differenza con i fatti e con i numeri, non con opinioni o punti di vista personali. Farvi capire di quanto, a livello di fedeltà visiva, questo possa essere un problema per alcuni. Lo è specialmente perché da subito le grandi brand hanno fatto la voce grossa con affermazioni del tipo “Sarà in grado di soddisfare risoluzioni in FullHD con framerate a 60 frames per secondo”. Lo è perché bisogna farsi un bagno di umiltà, mie care brand multimiliardarie, col principio rispettare chi spende i soldi per farvi fare cassa, che come minimo pretende sincerità e correttezza.
Punto il dito perché se questo non fosse mai stato affermato, a quest’ora tutto il discorso avrebbe un’ottica diversa, naturalmente.
Potrei scrivere tonnellate di parole sulla questione, esprimendo la mia opinione a riguardo, ma vorrei cercare di rimanere neutrale chiudendo il discorso così: se siete alla ricerca di risoluzioni fruibili da 1080p in su, con framerate superiori a 60fps (come 120/144) avete un solo posto dove guardare (e purtroppo molto costoso): il mondo del PC Gaming.

Frame-Skip e Frame Jitter/Judder

Per Frame Skip si intende quel processo puramente software nel quale si “saltano” i frames da visualizzare per mantenere la velocità impostata dalla frequenza del display.

Ad esempio, immaginiamo di avere un titolo molto esoso in termini di requisiti che per programmazione è realizzato per girare a 60 frames a secondo (60/60): se nel caso si presenti lo scenario in cui tale software non riesca a raggiungere la velocità stabilita, scendendo all’esatta metà del valore (30/60), il frameskip entra in funzione saltando i frames da visualizzare con l’unico obiettivo di mantenere la velocità impostata internamente o dettata dal monitor.

In questo esempio il valore di frameskip è 1, quindi per raggiungere 60fps se ne salta 1 per ciclo. Maggiore sarà il calo di framerate, maggiore sarà la percentuale di frames da saltare. Nel caso di 20 saranno 2 e così via.
Il frameskip comunque è una tecnica che funziona sia in positivo, che in negativo. In positivo può funzionare anche da limitatore di frames, ossia evita che il software forzi a renderizzare più frames del dovuto, difatto “saltanto”, o scartando, quelli in eccesso. Tuttavia ormai tale processo è stato abbandonato in favore del framelimiter, che si impone di eseguire l’operazione appena descritta lasciando il frameskip al suo principale lavoro, ossia quello di mitigare un eventuale calo di prestazioni.
Ricordiamo però che il frameskip è un processo fastidioso. Ciò che fa, per definizione, mantiene da un lato la velocità sincronizzata con il limite imposto ma lo fa a discapito della fluidità, in quanto saltando i frames il gioco sembra saltare interi momenti dell’azione poiché “scarta” frames nei quali potrebbe accadere qualcosa che al giocatore interessa vedere, come nel caso dell’apparizione di un nemico improvviso.

Non tutti gli engines o sviluppatori ricorrono a tale implementazione, in quanto il risultato finale è spesso disastroso. Nel caso di alcune versioni di Ninja Gaiden su PSVITA (Sigma 2) o quelle su WiiU, al momento di scendere sotto la soglia dei 60fps canonici l’engine non impiega nessun metodo appena descritto per mantenere tale fluidità. Essendo ogni frame sincronizzato a 60hz, scendendo a 30 in pratica si assiste ad un effetto visivo simile allo slow-motion o al bullet time, poichè come detto l’engine internamente non aggiusta il framerate ma continua comunque a spingere per visualizzarne 60. Immaginate di vedere un film e di impostare lo slow-motion: ecco, questo è esattamente ciò che accade.
Per aggirare questo problema e per evitare di utilizzare il frameskipping si utilizzano altre tecniche, come spiegato con Dark Souls poco prima, che possono in qualche modo evitare eventuali problematiche alla fluidità a discapito della risoluzione e della qualità visiva.

Il frame jitter o frame judder è un problema che si osserva praticamente nel 90% dei casi in giochi con framerate altalenante o inconsistente specialmente quando si ha un target di 30 frames a secondo.
Facciamo un esempio con un film: lo standard cinematografico impone che le pellicole siano girate con un framerate di 24fps. In generale i pannelli hanno sempre un frequenza di 60hz, quindi al fine di rapportare tale framerate a quello imposto dalla TV, in questo caso, si inseriscono i mancanti 36 frames quando il film viene visualizzato su schermo.
Questo come avviene? Partiamo dal presupposto che 24 non si divide equamente in 60 (60/24=2.5), quindi anche se per ogni frame ne avessimo in realtà due visualizzati, non risolverebbe il problema poichè mancherebbero all’appello sempre 12 frames. Qui entra in campo la logica del 3:2 Pulldown. In pratica il primo frame viene visualizzato 3 volte, mentre il secondo 2, ripetendo il ciclo ad ogni scansione di frequenza, colmando così il gap dei 12 frames mancanti avendone in totale 36 da impiegare per “mitigare” il gap tra 24 e 60.

Nei videogiochi il frame jittering (judder si usa soltanto nella terminologia televisiva) avviene con lo stesso principio: ne è un esempio lampante Ryse su Xbox One o Dead Rising 3. Se rallentiamo il gioco a livello di slow-motion, potremmo osservare come l’immagine sembra essere scombinata e non allineata, quasi da avere una sensazione di sdoppiamento della stessa.

Digital Foundry ha una pagina dedicata a Ryse, ma ciò che reputo interessante nei termini di frame jitter è questo video:

Nonostante sia artificialmente rallentato si nota chiaramente come la versione PC mantenga uno standard omogeneo di fluidità, essendo pertanto esente da frame jittering, cosa che non accade nella versione Xbox One a lato destro, dove l’azione risulta poco fluida, sconnessa, scombinata, quasi intermittente. Quello che si osserva dipende dal framerate ma anche da un sistema di frame jitter articiale, detto frame pacing, nel quale lo sviluppatore cerca di ricreare lo stesso effetto appena descritto del 3:2 pulldown, ossia quello di inserire 3 frames per ogni frame visualizzato e 2 per il successivo al fine di mantenere una fluidità “cinematica” qualora il rateo sia inferiore a 30 (e quindi, in questo caso, 24). Si assume il termine di frame pacing perchè si cerca di “pacificare” la fluidità dell’immagine.

Framerate Lock o Limit

Per framerate locking o limiting si intede un sistema, tweak o impostazione che si ottiene tramite driver o programmi di terze parti al fine di “limitare” i frames da visualizzare su schermo, a prescindere dalla risoluzione, frequenza o dalla stessa abilità della GPU di renderizzarli.
Per farvi comprendere meglio, immaginate che il vostro gioco preferito sul vostro PC riesca a girare alla qualità desiderata al di sopra di 30FPS (standard console), ipotizziamo a 37. Questo valore non è stabile, in quanto a secondo di quanto accade su schermo, passando da 37 a 32, 35, 36, 31 e così via. Limitando gli FPS ad un valore di 30 è possibile pertanto evitare queste fastidiose fluttuazioni con un conseguente guadagno di fluidità, operatività e immediatezza. Inoltre ciò evita l’impiego di V-Sync in tutte le salse, in quanto (dall’esempio) la capacità della GPU di renderizzare i frames è superiore al valore espresso, evitando quindi fastidiosi effetti di Tearing. La situazione che si crea quindi è una vittoria su tutta la linea: si può avere una fluidità tipica delle versioni console con tutte le features che normalmente le versioni PC hanno dal punto di vista grafico.

Il Frame Limiting oltre ad ovviare la necessità del V-Sync come appena detto, consente alla GPU di rilassarsi e di operare a frequenze più adatte al target scelto, evitando così un dispendio di risorse e di calore.
Come accennato in precedenza, tale impostazione può essere introdotta via software nel gioco stesso su consoles (inFamous e Killzone) oppure, in caso di PC, via injectors o software di terze parti, come MSI Afterburner e Riva Statistic Server, nVidia Inspector e RadeonPRO.

NVIDIA G-Sync

gsync-logo

Il G-Sync di Nvidia si pone la missione di eliminare totalmente il concetto di V-Sync e di Tearing agendo via hardware. Con l’installazione di una daughter board MXM (in sostanza, una GPU mobile all’interno del monitor, che ne bypassa totalmente la scheda madre) si ottiene un risultato a dir poco eccellente.

In sostanza, ciò che avviene con il V-Sync espresso fino ad adesso cessa di esistere anche a livello teorico: il Monitor adesso diventa “schiavo” della GPU e del modulo aggiuntivo, che forza il pannello stesso a renderizzare i frames elaborati dalla GPU non appena siano pronti cambiando “dinamicamente” il refresh.
Immaginiamo un scenario così: il vostro gioco (senza V-Sync attivo, ma con la tecnologia G-Sync su ON) passa da 70fps a 59, 60, 80 e così via. Ciò che il sistema offre sarà quello di sincronizzare il refresh con rapporto 1:1 con i frames elaborati dalla GPU. Così qualora la vostra GPU renderizzi 59fps, il G-Sync si occuperà di impostare la frequenza a 59hz e così via. Avvenendo il tutto in maniera totalmente dinamica e omogenea, il giocatore avrà SEMPRE una fluidità e omogeneità dell’immagine tipica del V-Sync, però in maniera totalmente automatizzata.

Il bello di questo sistema è che tale tecnologia inizia col funzionare già da framerate molto bassi, come 30fps, a salire. AMD dal canto suo, essendo il G-Sync una soluzione hardware e proprietaria NVIDIA sta tentando una soluzione via software totalmente open source, per abbattere i costi della daughter board di espansione (che può essere montata su alcuni monitor già in commercio) o dei pannelli con G-Sync già preinstallati.

Come NVIDIA recita: NO MORE TEARING, NO MORE STUTTER. Devo dire che hanno totalmente ragione, risolvendo un problema del mondo PC presente sin dai tempi di DOOM.

gsync-smooth-framerate-shifts
L’immagine parla da se: rapporto FPS e Refresh 1:1 in tempo dinamico. La soluzione G-Sync è il pilastro delle prestazioni e della fluidità su PC.

Conclusione e pensieri finali:

Mentre gli utenti console continuano questa battaglia sin dai tempi di 360 e PS3, allo stesso tempo i PC Gamers avevano questi standard fruibili già 10 anni fa. Il problema principale è il costo di quei componenti che vanno poi a costituire un PC di fascia medio alta, alta o estrema che sia capace di non tenere conto di nessun tipo di limitazione. Ma la soddisfazione che si raggiunge una volta messa su la war-machine del caso vale più di ogni altro titolo o discorso affrontato fino ad ora.
Va considerato, tuttavia, che le nuove console sono ancora in fase embrionale per quello che riguarda la capacità degli sviluppatori di spremere a dovere l’hardware di cui sono composte. Ciò ci porta a pensare, come è sempre successo, che con gli anni i titoli si assesteranno su un livello di qualità sicuramente superiore dello stato attuale.

Consentitemi di esprimere però una mia preoccupazione: qui a differenza delle generazioni precedenti, non abbiamo un hardware “particolare” o “customizzato” su cui lavorare, con componenti hardware complessi tanto da avere assi nella manica che aspettano solo di essere sfruttati. Con PS3 (in un certo qual modo accadde lo stesso con Ps2) era possibile trarre vantaggio dalle SPE che potevano essere programmate, sfruttate e governate per essere utilizzate in vari scenari. Questo consentiva allo sviluppatore (come Polyphony Digital, che appoggia l’engine di simulazione e alcune parti del motore grafico proprio su di esse) di utilizzarle a piacimento per mitigare l’assenza di forza bruta di un componente o di un’altro, come ad esempio una GPU con una banda passante relativamente piccola (se comparata a quella della 360, in termini di fill-rate).

Qui la situazione è semplificata in modo estremo: nessun hardware proprietario, nessuna architettura da exploitare, abbiamo una configurazione che nasce praticamente da un’architettura conosciutissima, appunto l’x86, e come se non bastasse eccezione fatta per un pool di memoria unificato (8GB DDR5 su PS4, 8GB DDR3 su Xbox One) l’hardware di per se è (quasi) lo stesso di quello che avevamo su PC qualche anno fa, a partire da processore e GPU (seppur con le dovute implementazioni personalizzate del caso). Ciò a mio avviso lascia pochissimo spazio a salti prestazionali o risultati eccellenti come accadde in passato, dove i primi giochi su 360 sembravano solo delle versioni “migliori” di quelli apparsi sulla Xbox precedente (stessa cosa per PS2, GT3 ad esempio era il GT2 che tutti avrebbero voluto, ma era solo un capello di quello che poi fu GT4, che spremeva la console a limiti impensabili pochi anni prima, come il supporto nativo 480p e 1080i); le sfide che gli sviluppatori stanno già affrontando adesso dimostrano di quanto sia facile andare a sbattere contro il muro dei limiti tecnici di questa architettura.

Se da un lato ci consente subito di avere quel salto generazionale importante (basta comparare Watch_Dogs o L’Ombra di Mordor tra PS3 e PS4) tanto da lasciare sbigottiti, dall’altro delimita fortemente il range di operabilità. Questo, per ricollegarmi a quanto ho cercato di spiegarvi, è soltanto per ventilare il timore che alberga il mio pensiero, ossia che non è possibile aspettarsi di soddisfare quelle richieste che i gamers attuali pretendono dalle nuove console.

Più andremo avanti nel tempo, più si tenterà di realizzare titoli graficamente eccezionali, ma allo stesso tempo questo dovrà per forza fare i conti con risoluzioni discutibili e framerate ballerino, ben lontano dagli standard FullHD e 60 FPS. Qualora ce ne fossero di titoli che riusciranno nell’impresa saranno vittima di comparazioni e paragoni, irrimediabilmente, con la piattaforma che avrà la maggior resa – che come già accade – sarà probabilmente l’odiato PC da Gaming.

Questo ultimo pensiero vuole ribadire due concetti: non mi definisco un fanboy di una piattaforma o dell’altra (PC incluso), non ho improntato l’articolo per deludere le aspettative di chi vuole vedere queste nuove console fare faville. Piuttosto ho cercato di far comprendere, spero nel modo più semplice possibile, quali scenari si andranno a definire in futuro. La situazione è radicalmente diversa da prima, quando le relative major erano gelose del proprio hardware tanto da lottare per accaparrarsi uno sviluppatore al quale aprire le porte della sua console, un nuovo IP, un titolo esclusivo che poteva trarre vantaggio dall’hardware.
Oggi si lotta su un campo conosciuto, proveniente dalla costola del PC Adamo, con tutti i limiti che ne comporta, ma anche con tutta l’esperienza maturata in tutti questi anni di onorevole servizio dell’architettura x86.
Ne vedremo delle belle, questo è sicuro. Ma preparatevi a sentirvi nauseati da tutti questi discorsi su risoluzione, framerate e porting. Oggi come non mai sono la primaria fonte di discussione, eclissando totalmente lo spirito fondamentale del mezzo: il divertimento.

LEGENDA:

FPS: Frame per Second

FRAMERATE: Il rateo o velocità delle immagini visualizzate

CORE / CORES: il nucleo o i nuclei che possono comporre una CPU

CLOCKS: la velocità imposta dal produttore di un processore

FRAMESKIP: il processo in cui si saltano i frames per mantenere una velocità costante a discapito della fluidità

CPU: Central Processing Unit, il processore

GPU: Graphical Processing Unit, la scheda grafica

NekoPolpo - Biografia