Fre*_*man 9 windows opengl multithreading vsync
在Windows应用程序中,我同时打开了多个OpenGL窗口.理想情况下,我希望每个以60 fps绘制,同步到屏幕刷新.
对于每个渲染上下文,我打电话wglSwapIntervalEXT(1)打开vsync.每个窗口都有自己的显示线程,它绘制帧然后调用SwapBuffers更新.
事实证明,窗户彼此"战斗":看起来SwapBuffers呼叫是同步的并且彼此等待,即使它们在不同的线程中.我正在测量每个窗口的帧到帧时间,并且有两个窗口,这下降到30 fps,有3到20 fps等.
如果我关闭vsync wglSwapIntervalEXT(0),无论我打开多少个窗口,他们都会以60 fps快速刷新.但是打开一个窗口时,这并不像打开vsync那样平滑.
有没有办法用OpenGL完成我想要的东西?