我在Windows 10上遇到使用OpenGL的屏幕撕裂问题。我正在做一个光线行进演示(在片段着色器中只渲染2个三角形和光线行进和着色地形)。使用GTX 860M进行渲染,该应用程序没有停留在60 FPS(至少在较低分辨率下)的问题。然而,屏幕撕裂(并且以下视频以特别低的分辨率呈现,以确保这与片段着色器代码的复杂性无关): Screen tearing video at YouTube.
我尝试过的事情:
我正在使用recommended settings创建OpenGL上下文。 我尝试使用(wglSwapIntervalEXT(1))手动打开VSync,尽管这应该是默认行为。 我试过在SwapBuffers调用之前放置glFinish,即:
while (isRunning)
{
ProcessMessages(window, &context);
App::Update(&context);
glFinish();
SwapBuffers(windowHandle);
}
我已尝试将VSync设置为"始终开启"在Nvidia控制面板中。我也尝试使用GLFW而不是WinApi创建窗口。我尝试在全屏模式和可调整大小模式下创建窗口。
虽然我没有看到任何进步。