Linux で GLX を使用して OpenGL アプリケーションを作成しました。glXSwapBuffers によるダブル バッファリングと、NVIDIA X サーバー設定で設定された VBlank への同期を使用します。私は Compiz を使用していますが、ウィンドウの移動はスムーズでティアリングはありません (Compiz 設定で VBlank への同期が有効になっています)。しかし、私が
OpenGL ウィンドウの移動またはサイズ変更を試みるか、
OpenGL ウィンドウが占めている領域を介して他のウィンドウを移動します
システムが途切れ、3 ~ 4 秒間フリーズします。OpenGL ウィンドウが占める領域の外に他のウィンドウを移動することは、いつものようにスムーズです。さらに、この問題は、OpenGL アプリケーションがアニメーションのフレームを生成するループにある場合にのみ発生し、バッファを交換します。コンテンツが静的で、アプリケーションがバッファをスワップしていない場合、問題はなく、さまざまなウィンドウの移動はスムーズです。アプリケーションと Compiz 間の同期の問題でしょうか?