Sincronizando múltiples ventanas de OpenGL con vsync

En una aplicación de Windows, tengo varias ventanas OpenGL abiertas al mismo tiempo. Lo ideal sería que cada uno de estos dibujara a 60 fps, sincronizados con la actualización de la pantalla.

Para cada contexto de render, estoy llamandowglSwapIntervalEXT(1) para activar vsync. Cada ventana tiene su propio hilo de visualización, que dibuja el marco y luego llamaSwapBuffers actualizar.

Resulta que las ventanas están "luchando" entre sí: se parece a laSwapBuffers Las llamadas están sincronizadas y se esperan unas a otras, aunque estén en hilos separados. Estoy midiendo el tiempo de fotograma a fotograma de cada ventana y con dos ventanas, esto se reduce a 30 fps, con 3 a 20 fps, etc.

Si apago vsync conwglSwapIntervalEXT(0), se actualizan felizmente a 60 fps sin importar cuántas ventanas abro. Pero con una ventana abierta, esto no es tan suave como con vsync activado.

¿Hay alguna manera de lograr lo que quiero con OpenGL?