Le vblank_mode
variable d'environnement fait l'affaire. Vous devriez alors obtenir plusieurs centaines de FPS sur du matériel moderne. Et vous êtes maintenant en mesure de comparer les résultats avec les autres.
$> vblank_mode=0 glxgears
Si vous utilisez les pilotes NVIDIA à code source fermé, vous pouvez modifier le mode de synchronisation verticale à la volée à l'aide du __GL_SYNC_TO_VBLANK
variable d'environnement :
~$ __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
Cela fonctionne pour moi sur Ubuntu 14.04 en utilisant les pilotes NVIDIA 346.46.
Pour les graphiques Intel et les pilotes graphiques open source AMD/ATI
Recherchez la section "Appareil" de /etc/X11/xorg.conf
qui contient l'une des directives suivantes :
Driver "intel"
Driver "radeon"
Driver "fglrx"
Et ajoutez la ligne suivante à cette section :
Option "SwapbuffersWait" "false"
Et exécutez votre application avec vblank_mode
variable d'environnement définie sur 0
:
$ vblank_mode=0 glxgears
Pour les graphiques Nvidia avec le pilote propriétaire Nvidia
$ echo "0/SyncToVBlank=0" >> ~/.nvidia-settings-rc
Le même changement peut être fait dans le nvidia-settings
GUI en décochant l'option à X Screen 0 / OpenGL Settings / Sync to VBlank
. Ou, si vous souhaitez simplement tester le paramètre sans modifier votre ~/.nvidia-settings-rc
fichier, vous pouvez faire quelque chose comme :
$ 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