title: Synchronizing multiple OpenGL windows to vsync
body: <p>In a Windows application, I have multiple OpenGL windows open at the same time. Ideally I would like each of these to draw at 60 fps, synchronized to the screen refresh.</p>
  
  <p>For each render context, I'm calling <code>wglSwapIntervalEXT(1)</code> to turn on vsync. Each window has its own display thread, which draws the frame and then calls <code>SwapBuffers</code> to update.</p>
  
  <p>It turns out that the windows are 'fighting' each other: it looks like the <code>SwapBuffers</code> calls are synchronized and wait for each other, even though they are in separate threads. I'm measuring the frame-to-frame time of each window and with two windows, this drops to 30 fps, with three to 20 fps, etc. </p>
  
  <p>If I turn vsync off with <code>wglSwapIntervalEXT(0)</code>, they happily refresh at 60 fps no matter how many windows I open. But with one window open, this is not nearly as smooth as with vsync turned on.</p>
  
  <p>Is there any way to accomplish what I want with OpenGL?</p>