Force Vsync off in driver without nvidia-settings


I’m developing a real time graphics application on an embedded linux platform using DRM and EGL.
The platform uses a special linux based operating system without X-server support and no GUI.

I can build and run applications just fine, however, I’m facing the issue that VSYNC is always enabled and the framerate can not exceed 60fps (This is the refresh rate of the connected monitor in fullHD resolution).

Usually, with x-Server, one would open the nvidia-settings app and force VSYNC off, or, alternatively, directly edit the config file. I can not do that on my embedded platform because I do not have X-Server support.

I have tried to disable VSYNC using EGL in my egl setup source code by setting “eglSwapInterval” to 0, as well as passing EGL_MIN_SWAP_INTERVAL as 0 in the eglconfig array. Even though the swap intervall function call returns no error, VSYNC remains active and fps are locked. I have also tried to edit several environment variables that are supposed to disable vsync, but again those only seem to work with X.

So my question is, how can I force VSYNC off without having access to the nvidia-settings app and the X-Server?
Am I missing something in my EGL setup routine, or do I need to configure the driver somehow?

1 Like


I also wasn’t able to disable the vertical synchronization on an bare DRM/KMS unix system (driver version: 364.19).
Does anybody know how to disable VSync using EGL and DRM/KMS?

Best regards,