ダブルバッファリングを使用する OpenGL アプリケーションは、どのようにして 60 fps (ディスプレイのリフレッシュ制限) を超えますか?
ドライバの実装、つまり、ダブル バッファリングまたはトリプル バッファリングのどちらを使用するかによって異なりますか?
次のアプリケーションのメイン ループを検討します。
while (1) {
draw_scene();
swap_buffers();
}
ループの 2 番目のステートメントは、display vsync との複雑な同期を使用せず、画像を表示するときにテアリングしたくない場合に必須です。このようなループでは、私の fps はドライバーの実装と相関しています。ダブル バッファリングではパイプラインがストールし、約 60 fps をアーカイブしますが、トリプル バッファリングではストールは発生せず、fps はビデオカードのスループットのみに依存します。したがって、高 fps の opengl アプリケーションをアーカイブする必要がある場合は、アプリケーション内にトリプル バッファリングを実装する必要があります。私は正しいですか?