Il vblank_mode
variabile d'ambiente fa il trucco. Dovresti quindi ottenere diverse centinaia di FPS su hardware moderno. E ora sei in grado di confrontare i risultati con altri.
$> vblank_mode=0 glxgears
Se stai usando i driver NVIDIA closed-source puoi variare al volo la modalità di sincronizzazione verticale usando __GL_SYNC_TO_VBLANK
variabile d'ambiente:
~$ __GL_SYNC_TO_VBLANK=1 glxgears
Running synchronized to the vertical refresh. The framerate should be
approximately the same as the monitor refresh rate.
299 frames in 5.0 seconds = 59.631 FPS
~$ __GL_SYNC_TO_VBLANK=0 glxgears
123259 frames in 5.0 seconds = 24651.678 FPS
Questo funziona per me su Ubuntu 14.04 utilizzando i driver NVIDIA 346.46.
Per la grafica Intel e i driver grafici opensource AMD/ATI
Trova la sezione "Dispositivo" di /etc/X11/xorg.conf
che contiene una delle seguenti direttive:
Driver "intel"
Driver "radeon"
Driver "fglrx"
E aggiungi la seguente riga a quella sezione:
Option "SwapbuffersWait" "false"
Ed esegui la tua applicazione con vblank_mode
variabile di ambiente impostata su 0
:
$ vblank_mode=0 glxgears
Per la grafica Nvidia con il driver Nvidia proprietario
$ echo "0/SyncToVBlank=0" >> ~/.nvidia-settings-rc
La stessa modifica può essere effettuata nel nvidia-settings
GUI deselezionando l'opzione in X Screen 0 / OpenGL Settings / Sync to VBlank
. Oppure, se desideri semplicemente testare l'impostazione senza modificare il tuo ~/.nvidia-settings-rc
file puoi fare qualcosa del tipo:
$ nvidia-settings --load-config-only --assign="SyncToVBlank=0" # disable vertical sync
$ glxgears # test it out
$ nvidia-settings --load-config-only # restore your original vertical sync setting