Hai mai notato una certa instabilità all’interno di un gioco dove però framerate e performance sembrano essere ottimi? Il micro stutter può manifestarsi in molti modi e spesso i benchmark non lo rilevano. Potresti giocare anche a 60FPS ma potresti comunque essere “maledetto” da dei cali di FPS irregolari, chiamati anche micro stutter.
Ci sono molteplici motivi che potrebbero causare micro stutter, con diverse soluzioni che potrebbero o non potrebbero funzionare, ma iniziamo prima con lo spiegare che cos’è il micro stutter.
La cosa più importante da sottolineare è che il micro stutter non è come lo stutter normale, quello associato a frame rate bassi e cali estremamente notevoli mentre si caricano gli asset del gioco. Il micro stutter è più subdolo e difficile da “misurare”.
Le cause del micro stutter
Ci sono svariate potenziali cause di micro stutter, come driver o GPU multiple ma dato che SLI e CrossFire non sono più in voga al giorno d’oggi, ci concentreremo sulla causa più comune: vSync e Cap di framerate.
Con un monitor da 60hz, lo schermo si aggiorna ogni 1/60 di secondo se un nuovo frame è disponibile in tempo. In caso contrario, il display mostra lo stesso fotogramma dell’aggiornamento precedente, dandoti 30fps, e se sarà pronto un altro fotogramma otterrai 60fps. Il micro stutter si verifica quando la frequenza dei fotogrammi fluttua abbastanza da poter raggiungere una media di 60fps, ma alcuni fotogrammi arrivano un po’ in anticipo e altri un po’ in ritardo. Il ritmo dei frame è solo un po’ fuori.
Questo è un motivo per preferire limiti di frame rate molto più alti. Se un motore imposta un limite massimo di 60fps, cercherà di avere un nuovo frame pronto per ogni aggiornamento dello schermo a 60Hz e spesso altre parti del motore “rallentano” in modo che i frame non finiscano troppo presto, in modo che la fisica e il netcode non si incasinino. Tuttavia, se c’è un leggero inconveniente nel motore (è necessario caricare una nuova texture, o un nuovo modello, o forse solo qualche altra attività in background), un frame potrebbe arrivare 0.001 secondi più tardi, causando dello stutter.
A seconda del gioco, il micro stutter può essere un evento frequente e alcune persone finiscono per preferire 30fps costanti piuttosto che puntare a 60fps e avere micro stutter. Nessuno lo vuole ovviamente, specialmente su un PC di fascia alta.
Come sistemare il micro stutter?
Uno dei modi più comuni (e facili) di combattere il micro stutter è quello di disabilitare il vSync, ma ci sono anche degli svantaggi in questo caso. Quando un frame è pronto da parte dell’engine, verrà mostrato sul tuo display. Il problema nel disattivare il vSync è che potrebbe causare dello screen tearing, dove il frame successivo arriva durante l’aggiornamento dello schermo. Se c’è molto movimento e azione all’interno del gioco, otterrai una chiara “linea” nel mezzo del tuo display, e se il gioco sta andando a 60FPS su uno schermo a 60Hz, il tearing potrebbe rimanere in una porzione del tuo schermo per un po’ di tempo.
Non c’è molto che puoi fare con i giochi che forzano un limite di frame rate, specialmente se quel limite è legato a fisica, IA o ad altri elementi, generalmente non è il modo ideale di programmare un engine, ma è un discorso a parte. Una soluzione possibile al tearing sarebbe diminuire i settaggi grafici in modo da alleggerire il carico sulla GPU, ma anche questo non funziona sempre. La soluzione più costosa è quella di incolpare l’hardware.
Refresh Rate variabili
Nvidia e AMD riconoscono il problema del micro stutter e la soluzione è disporre di hardware in grado di sincronizzare la frequenza di aggiornamento dello schermo con l’output del gioco piuttosto che il contrario.
Le tecnologie G-Sync di Nvidia e FreeSync di AMD si avvicinano alla soluzione in modo simile. Quando un frame viene “completato” dalla GPU, invece di attendere il prossimo aggiornamento dello schermo, la GPU invia il nuovo frame e invia un segnale al monitor dicendo, in pratica, “aggiorna ora“. I migliori display di questo tipo hanno un’ampia gamma di frequenze di aggiornamento, da 40 a 144Hz, che elimina virtualmente il micro stuttering. Potrebbero esserci variazioni nella frequenza dei fotogrammi, ma passare da 40 a 80fps senza tearing o stutter è molto meno evidente rispetto a discreti cali tra 60 e 30fps.
Se non vuoi abbassare le impostazioni grafiche, disabilitare il vSync o acquistare un display G-Sync o FreeSync, ci sono altri modi per provare a ridurre il micro stutter. L’aggiornamento ai driver grafici più recenti potrebbe essere d’aiuto (o, in alcuni casi, potresti provare a ripristinare i driver meno recenti), anche se di norma è un problema che riguarda singoli giochi. AMD e Nvidia hanno lavorato ai driver per anni e di solito questi non sono la causa principale.
Un’altra opzione è chiudere tutte le attività in background non necessarie, che includono il browser, Discord, FrameView, Overlay e altri programmi d’utilità. Stai il più pulito possibile e verifica se il problema persiste. In caso contrario, puoi iniziare a reintrodurre le attività in background e provare a capire se c’è qualche programma “colpevole”.
Limita il tuo framerate
L’ultima opzione è imporre un limite di frame rate. Se un gioco non riesce a mantenere 60fps, prova a eseguirlo a 30fps. Oppure, se hai un display a 144Hz, punta a metà o ad un terzo della tua frequenza di aggiornamento.
Alcuni giochi hanno un limite di frame rate nelle impostazioni; in caso contrario, puoi utilizzare il pannello di controllo Nvidia per impostare un frame rate massimo o le impostazioni Radeon di AMD per fare lo stesso. Idealmente, puoi impostare il limite della frequenza dei fotogrammi leggermente al di sopra della frequenza di aggiornamento del monitor (ad esempio 72fps su un display a 60Hz) e quindi abilitare il vSync, ma se un gioco ha un limite integrato pari o inferiore alla frequenza di aggiornamento del monitor, dovrai diminuirlo. Ci sono opinioni contrastanti affermanti che i 30fps fluidi siano migliori dei 60fps con micro stutter quindi tanto vale provarci!
In definitiva, non esiste un’unica soluzione garantita per il micro stutter. Alcuni sono specifici e causati dalle decisioni degli sviluppatori, a volte sono causati dai driver e altre volte sono causati dal multi-tasking dei moderni sistemi operativi.