在尝试使用OpenGL作为后端为X11制作合成窗口管理器时,我陷入了一个令人讨厌的情况,其中glXSwapBuffers()阻塞,直到vblank渲染合成器对X事件无响应为止,这导致窗口被拖动到光标后方大约滞后于光标一帧。我已经尝试了多线程,但是效果不佳,所以我决定唯一合适的解决方案是使glXSwapBuffers()异步。希望将绘图命令发送到GPU并立即返回而无需等待操作实际完成,而AFAIK在具有DRI2的现代Linux中是可能的。所以我该怎么做?
x11 opengl vsync
opengl ×1
vsync ×1
x11 ×1