El vblank_mode
variable de entorno hace el truco. Entonces debería obtener varios cientos de FPS en hardware moderno. Y ahora puede comparar los resultados con otros.
$> vblank_mode=0 glxgears
Si está utilizando los controladores de código cerrado de NVIDIA, puede variar el modo de sincronización vertical sobre la marcha utilizando el __GL_SYNC_TO_VBLANK
variable de entorno:
~$ __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
Esto me funciona en Ubuntu 14.04 usando los controladores NVIDIA 346.46.
Para gráficos Intel y controladores de gráficos de código abierto AMD/ATI
Encuentra la sección "Dispositivo" de /etc/X11/xorg.conf
que contiene una de las siguientes directivas:
Driver "intel"
Driver "radeon"
Driver "fglrx"
Y agregue la siguiente línea a esa sección:
Option "SwapbuffersWait" "false"
Y ejecuta tu aplicación con vblank_mode
variable de entorno establecida en 0
:
$ vblank_mode=0 glxgears
Para gráficos Nvidia con el controlador patentado de Nvidia
$ echo "0/SyncToVBlank=0" >> ~/.nvidia-settings-rc
El mismo cambio se puede hacer en el nvidia-settings
GUI desmarcando la opción en X Screen 0 / OpenGL Settings / Sync to VBlank
. O, si desea simplemente probar la configuración sin modificar su ~/.nvidia-settings-rc
archivo puede hacer algo como:
$ 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