I am new to this forum and I thought maybe I can get a little help.
I am working in sound software company and we have the following problem: We need to open a number of plugins, each in different window. Each plugin should display graphic information in approximate FPS of 50.
We tried 2 different approaches:
We open one graphic thread drawing one after another in each window. In that case we are forced to call wglMakeCurrent in order to switch context between the threads and each time the call is approximately 10ms. This means that the TOTAL fps is not more than 100ms, and if I have, say, 5 windows open the FPS in each of them will be 20.
Open different thread per window. In that case situation is MUCH worse. The stuck is in SwapBuffer function and I guess that it is in gFlush() that is inside SwapBuffers.
Now the funny thing, that if instead of opening 5 windows you open 5 applications and one window in each of them - it works fine.