Strange performance behavior in multi window opengl gui

Hi I am writing a multi window GUI in opengl. (windows 7(x64) app: 32 bit, VS2008C++ 3.5 .NET)

1 render thread per window (with vsync on)
{
renderStuff();
SwapBuffer();
}

when I have multiple windows they share FPS (not 50:50)
e.g 1 Window = 60fps
2 windows = 50 fps
3 = 30 fps,
10 windows = 10 fps

so i presume it has to to with wait for vertical sync in different threads.

If i now start VLC player, 10 windows have 20fps each, starting some opengl games (e.g. FTL) the framerate increses to 60fps per windows…
how can it be that running another opengl app increases performance? Is it e.g. my NVidia settings? or how can the game change the performance of my app? and how can i implement that in my app?

Is my general approach correct or should 1 use 1 render thread like this

{
foreach(window)
{
makeCurrent(window);
renderStuff();
makeCurrent(0,0);
}

 foreach(window)
{
    makeCurrent(window);
    SwapBuffer();
    makeCurrent(0,0);
}

}

Thanks for helping :wink: