C'è moltissimo da sapere.. cerco di essere schematico perché è lunga la questione.
Gli fps sono fotogrammi che per essere "mostrati" devono essere stati elaborati dalla scheda video e la scheda video a sua volta ovviamente deve "aspettare" che la CPU anche abbia elaborato la sua parte (o meglio: Devono lavorare in sincrono, si parla di collo di bottiglia proprio quando uno dei componenti è costretto a rallentare i suoi ritmi a causa della lentezza dell'altro nel "servire" la sua parte di dati elaborati.)
E fin qui suppongo tutto chiaro.
Il monitor ha il refresh-rate cioè la frequenza con la quale viene "aggiornata" l'immagine.. qui sotto un esempio:
60hz significa che il monitor aggiorna l'immagine 60 volte al secondo.
A determinate risoluzioni un monitor potrebbe avere un refresh rate massimo inferiore a quello della risoluzione nativa.
la risoluzione nativa è la risoluzione che normalmente bisognerebbe sempre cercare di usare perché per come sono fabbricati i pannelli in realtà tutti i monitor visualizzano con un unica risoluzione (la nativa appunto) tutta la lista di altre risoluzioni che sono presenti per questioni di utilità chiaramente... sono tutte risoluzioni ottenute attraverso il così detto upscaling o downscaling di quella risoluzione nativa.
Vale a dire: Che sono ottenute rimpicciolendo o ingrandendo N volte la risoluzione nativa. Quindi aggiungendo un "passaggio" in più.
Questo processo di ingrandire o rimpicciolire comporta un degrado della qualità dell'immagine. Ecco perché la risoluzione nativa è quella che bisognerebbe sempre tenere. Sia per evitare appunto quel passaggio, sia per evitare un inutile degrado dell'immagine.
Nell'immagine sopra vedi la risoluzione, con scritta "nativa" e poi vedi il refresh rate di cui parlavamo prima. Vuol dire che aggiorna lo schermo 60 volte al secondo.
ORA... tutto questo che ci frega? E' collegato al frame rate della scheda video:
- un monitor... non potrà mai visualizzare più frames al secondo del refresh rate! Se io ho 120hz di refresh rate... tutti i frames oltre il 120 esimo non saranno comunque visibili. La scheda video... ha fatto lo sforzo per processarli... ma tanto lo schermo non è in grado di aggiornare l'immagine più di 120 volte (o quel che è).
Ne consegue che è completamente inutile che la scheda video "si sforzi" nel disegnare più frames di quello che è il refresh rate del monitor.
Per limitare i fotogrammi per secondo, al refresh rate del monitor entra in gioco il V-Sync. Con il v-sync attivo semplicemente la scheda video disegnerà al massimo lo stesso numero di frames al secondo che il monitor può effettivamente visualizzare. (corrispondente al refresh rate del monitor). Quando il V-Sync è attivo, bisogna badare anche a questo fenomeno che può accadere:
Cosa accade se la scheda video stà processando una scena molto complessa e NON ce la fa, al massimo del suo potenziale, a riuscire a processare quel numero di frames... ma ne disegna di meno?
Il v-sync inposta il refresh rate dello schermo alla "modalità di refresh rate dello schermo" subito inferiore(al di sotto) rispetto a quella che la GPU non stava riuscendo a "sostenere") e quindi ad esempio se io ho uno schermo con refresh rate di 60hz e la scheda video non riesce a tenere 60 fps e ne fa 50... il v-sync dice al mio monitor di passare in modalità a 30Hz e la scheda video disegnerà al massimo 30fps.
Questo in linea di massima per come funziona il v-sync. Ma oggi esiste anche il freesync / Gsync che invece permettono di evitare questo "passaggio fra refresh rate molto distanti" e di sincronizzare esattamente frame-per-frame, monitor e scheda video senza passaggi estremi fra un limite e l'altro. Questo ovviamente ha comportato il fatto che i monitor dovessero avere delle modifiche a livello hardware per essere "capaci" di fare questo, ecco perché solo i monitor freesync e gsync possono farlo.
Perché la scheda video si riscalda di meno se deve disegnare meno frames al secondo?
Immagina ogni frame da processare come un pacco da trasportare da una stanza all'altra.
Se io ti dico: Porta 10 pacchi in un ora.. li porti camminando ad una certa velocità e farai un certo grado di fatica ed emetterai un certo grado di calore.
Se io ad un certo punto ti dico: Adesso portane 100 in un ora... tu ti metterai a correre più velocemente, suderai, farai più fatica e conseguentemente emetterai più calore.
Probabilmente la vostra perplessità è data dal fatto che ci sono ,in effetti, due situazioni diverse in cui una scheda video può star disegnando un numero basso di frames per secondo:
Una è una situazione nella quale la scheda video si trova a pieno carico, sotto pieno sforzo... e non riesce ad elaborare più di quel numero di fotogrammi (perché sono molto complessi). E quindi stà scaldando molto e disegnando un numero di fotogrammi che ci appare "basso".
Diversa è invece la situazione in cui io ho dato un limite massimo e la scheda video non si trova necessariamente sotto sforzo nè sotto pieno carico.... magari aveva il potenziale per disegnare / elaborare 300 frames al secondo (perché la complessità di quei fotogrammi è bassa) tuttavia io gli dico di non disegnarne più di 30.
Conseguentemente è come se ad un uomo forzutissimo dicessi di prendersela comoda nel trasportare i pacchi da una stanza all'altra. Perciò lo farà restando fresco come una rosa.
Se non gli do un limite la scheda video disegna quanti più frames al secondo riesce. (senza v-sync né altro) fino al massimo del suo potenziale. Inutilmente, visto che come abbiamo detto non saranno visualizzati dal monitor.
Tornando all'esempio dell'uomo che trasporta pacchetti se io non gli dico niente.. lui li trasporta con il massimo della sua velocità e mettendoci il massimo dello sforzo. E conseguentemente scaldandosi tantissimo.
Idealmente è da evitare sia il caso in cui la scheda video arranca nell'elaborare il numero di fotogrammi corrispondente al refresh rate (scheda video che necessita di un upgrade, non in grado di elaborare in modo fluido la complessità di quella scena) , sia il caso in cui ,non avendo impostato un limite, ne disegna troppi inutilmente. (scheda video che si scalda inutilmente e il fatto di scaldarsi tra l'altro comporta una catena di effetti negativi sull'intero sistema.)
Quando una scheda si scalda inutilmente accade questo: Siccome monitorano continuamente la loro temperatura.. e sulla base di essa hanno istruzione di auto-impostare la frequenza di esercizio (tutte le schede moderne lavorano così) ...se una scheda video rimane inutilmente sempre calda il firmware gli dirà: <Guarda che la temperatura è piuttosto alta.. abbassa un po' le frequenze così rientriamo nel range ottimale.>
Questo fa sì insomma che si attivi di meno quello stato di "boost" delle performance. E significa che viceversa, nei brevi momenti in cui magari la scena da renderizzare si farà molto pesante e ci sarà bisogno di un picco di potenza, paradossalmente la scheda video lasciata senza limiti (e quindi surriscaldata inutilmente) avrà performance inferiori a quella che poco prima si trovava in una temperatura di esercizio più bassa e quindi il cui firmware darà il "via libera" perché le frequenze si alzino.