Frame al secondo: barre o curve?

Abbiamo iniziato a usare PresentMon al posto di Fraps. Questo software, di non facile utilizzo, ci permette di dissezionare le prestazioni delle schede video con i titoli DirectX 12, OpenGL e Vulkan.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Frame al secondo

Le medie basate sul tempo dicono solamente quanti frame sono renderizzati in un dato secondo. Non c'è alcun modo per sapere se i frame fossero ben distribuiti, oppure se c'è stata una lunga pausa che ha interrotto l'azione a un certo punto riflettendosi negativamente sull'esperienza. Dopotutto, un intervallo di un secondo, con tantissimi frame di cui uno solo che richiede 100 ms per essere visualizzato, finirà per risultare meno fluido dello stesso intervallo in cui i frame sono più lenti ma renderizzati con costanza, persino se il valore medio apparirà pressoché identico.

I seguenti grafici a barre corrispondono ai nostri PC di fascia alta e mainstream, e ognuno include i frame rate minimi, massimi e medi. Sono tutti indicatori approssimativi delle prestazioni, utili per confrontare molte schede video con un semplice sguardo. Anche così, tutti e tre i dati sono tacciati di semplificare troppo l'esperienza di gioco reale.

02 FPS Bars

Clicca per ingrandire

Il grafico del frame rate in un dato periodo di tempo mostra le prestazioni in qualunque punto del nostro benchmark. Questi grafici sono più interessanti delle semplici barre anche se non permettono di arrivare ad una conclusione in modo altrettanto rapido. E comunque è abbastanza ovvio quale configurazione si comporta meglio in questo tipo di confronto.

03 FPS Curves Max CPU

Clicca per ingrandire

04 FPS Curves Min CPU

Clicca per ingrandire

Per ognuno dei 108 secondi del nostro test, abbiamo 108 punti sul nostro asse X con il frame rate corrispondente ad ogni secondo indicato dall'asse Y. Ancora non sappiamo nulla dei frame che sono stati persi né del micro-stuttering all'interno di ogni intervallo (sempre di un secondo): ancora una volta si tratta di una semplice media.

Rappresentare e interpretare correttamente il tempo di rendering è molto importante perché i due indicatori FPS di cui abbiamo già parlato, siano essi barre o line, non ci dicono nulla su come effettivamente è l'esperienza con il gioco. Certamente vogliamo mantenere le medie, i picchi e i cali, ma è importante anche andare più a fondo, analizzando così succede in quel "lungo" secondo.

Frame time e frame renderizzati

Mostrare il tempo di rendering di ogni singolo frame con un grafico a linee sembra piuttosto semplice. Tuttavia, diventa molto più complicato quando si vogliono confrontare schede video con diversi livelli di performance, e che generano un diverso numero di frame durante il medesimo benchmark. Per esempio, nel nostro test con le DirectX 11 sul sistema di fascia alta, la MSI Radeon RX480 Gaming X 8G ha prodotto 8090 frame mentre nel test con le DX12 i frame sono stati 8446. Nello stesso tempo, la GeForce GTX 1060 Gaming X 6G si è spinta, rispettivamente, a 7362 e 7332 frame.

Idealmente vorremmo confrontare il tempo di rendering di ogni singolo frame per comprendere meglio l'andamento di ogni singola scheda video. Però non possiamo semplicemente sovrapporre registrazioni di lunghezza variabile su un comune asse orizzontale come facciamo nei grafici degli FPS che, nel nostro esempio, sono basati su 108 punti. Per i due sistemi di test, partendo dal più performante, il risultato è questo:

05 Frame Times Max CPU

Clicca per ingrandire

In entrambi i grafici, l'asse Y scala in base ai tempi di rendering che abbiamo misurato. Lo facciamo per mostrare quanti più dettagli possibili; semplicemente tenete a mente di non paragonare i grafici a destra e sinistra solo con una rapida occhiata. Per quanto sarebbe certamente possibile estendere l'asse Y del grafico a sinistra fino ad un massimo di 160 secondi, farlo significherebbe sacrificare la risoluzione.

06 Frame Times Min CPU

Clicca per ingrandire

Quindi, ora sappiamo cosa ci troviamo davanti quanto confrontiamo le misurazioni di due GPU frame-per-frame usando un solo asse X, anche quando i risultati delle schede differiscono. Excel non riesce a farlo da solo, quindi ecco perché usiamo il nostro software per creare curve ottimizzate della medesima lunghezza per ciascuna scheda video. Ma come si fa ad inserire 8446 o 7362 dati individuali in un asse che può contenerne, dichiamo, 1000?

Manteniamo i picchi ed i valori rilevati nel benchmark esattamente come apparirebbero in un grafico con migliaia di punti rilevati con la minor perdita possibile. Il tutto è interpolato in modo preciso affinché la rappresentazione visiva coincida perfettamente.