由于今天的卡片似乎保留了渲染命令列表并仅在调用glFlush
or时刷新glFinish
,真的需要双缓冲吗?我正在使用 SDL/OpenGL 在 Linux(ATI Mobility radeon 卡)上开发的 OpenGL 游戏在被 init 代码SDL_GL_swapbuffers()
替换glFinish()
时实际上闪烁较少。SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,0)
这是我卡的特殊情况还是所有卡都可能出现这种情况?
编辑:我发现这是KWin的原因。似乎正如 datenwolf 所说,没有同步的合成是原因。当我关闭 KWin 合成时,游戏运行良好,无需任何源代码补丁