Quick answer: Pygame on Linux X11 ignoring vsync flag? SDL_GL_SwapInterval needs to be set explicitly - call after display.set_mode with the OpenGL flag.
Game runs at 600fps on Linux despite vsync=True. Same code caps at 60 on Windows.
Set swap interval
pygame.display.set_mode((w, h), pygame.OPENGL | pygame.DOUBLEBUF)
pygame.display.gl_set_attribute(pygame.GL_SWAP_CONTROL, 1)X11 needs the explicit attribute. Windows handles vsync via the flag.
Use Clock.tick as fallback
If vsync is unreliable, clock.tick(60) caps frame rate uniformly. Trades GPU sync for portable timing.
Test on Wayland
Wayland handles vsync differently from X11. Test both compositors; the bug behavior changes.
“Linux display behavior varies by compositor. Defensive coding wins over assumptions.”
Document supported Linux configurations explicitly. 'X11 + GNOME 42+' is more honest than 'Linux'.