A veces es necesario comprobar si la aceleración 3D de Linux está realmente funcionando (además de la glxinfo
salida). Esto se puede hacer rápidamente con la glxgears
herramienta. Sin embargo, los FPS a menudo se limitan a la frecuencia de actualización vertical de la pantalla (es decir, 60 fps). Por lo tanto, la herramienta se vuelve más o menos inútil, ya que incluso un renderizado de software puede producir glxgears de 60FPS fácilmente en las CPU modernas.
Me resultó bastante difícil obtener una solución rápida y fácil para esto, respondo mi propia pregunta. Ojalá te ahorre tiempo.
vblank_mode=0
Ahora obtengo 1375.257 FPS en un antiguo controlador de video Intel i965 que ejecuta OpenBSD 5.6.Si está utilizando los controladores de código cerrado de NVIDIA, puede variar el modo de sincronización vertical sobre la marcha utilizando la
__GL_SYNC_TO_VBLANK
variable de entorno :Esto me funciona en Ubuntu 14.04 usando los controladores 346.46 NVIDIA.
fuente
Para gráficos Intel y controladores de gráficos de código abierto AMD / ATI
Busque la sección "Dispositivo"
/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:
Y ejecute su aplicación con
vblank_mode
la variable de entorno configurada en0
:Para gráficos Nvidia con el controlador propietario de Nvidia
Se puede realizar el mismo cambio en la
nvidia-settings
GUI desmarcando la opción enX Screen 0 / OpenGL Settings / Sync to VBlank
. O, si solo desea probar la configuración sin modificar su~/.nvidia-settings-rc
archivo, puede hacer algo como:fuente
nvidia-settings --load-config-only --assign="SyncToVBlank=0"
para simplemente cambiar la configuración de la pantalla X (y evitar modificar el archivo de configuración o ejecutar la GUI). Después de ejecutarglxgears
, puede ejecutarnvidia-settings --load-config-only
para restaurar la configuración de configuración, lo que probablemente desee hacer ya que es una configuración persistente para la pantalla X en ejecución (es decir, no solo para el shell).Poniendo todas las otras respuestas juntas, aquí hay una línea de comando que funcionará:
Esto tiene las ventajas de funcionar tanto para controladores Mesa como para NVidia, y no requiere ningún cambio en los archivos de configuración.
fuente
Deshabilitar la casilla de verificación Sincronizar con VBlank en nvidia-settings (pestaña Configuración de OpenGL) me soluciona el problema.
fuente
Encontré una solución que funciona en la tarjeta intel y en la tarjeta nvidia usando Bumblebee.
fuente
Para los controladores Intel, también existe este método
fuente