Intro: https://james.darpinian.com/blog/latency
Techniques to improve latency in your applications: https://james.darpinian.com/blog/latency-techniques
Platform-specific considerations: https://james.darpinian.com/blog/latency-platform-considerat...
Intro: https://james.darpinian.com/blog/latency
Techniques to improve latency in your applications: https://james.darpinian.com/blog/latency-techniques
Platform-specific considerations: https://james.darpinian.com/blog/latency-platform-considerat...
According to docs, there are extensions WGL_EXT_swap_control_tear/GLX_EXT_swap_control_tear [0], that cause late frames to tear instead of wait a full frame. They don't work on my machine (my Intel HD 4000 reports that it is supported and then silently fails), but this should be the ideal swap mechanism.
[0]: https://registry.khronos.org/OpenGL/extensions/EXT/GLX_EXT_s...
Tearing is a pretty bad artifact so I wouldn't say that enabling it is ideal. I'm a stickler for low latency but even I don't think it's worth it in most cases. It's possible to achieve great latency without tearing. The ideal swap mechanism would be VRR when available.
Those GL extensions likely predate modern composition window managers and fail to work when compositing is enabled. As I discuss in the platform specific considerations section, tearing on Windows requires either full screen, or Multiplane Overlay which is not supported by OpenGL.