Intelグラフィックスには、X11で画面のティアリングを無効にするオプションがあります。このようなスタンザでxorgを構成することで有効にできます。
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "TearFree" "true"
EndSection
なぜこれがデフォルトで有効になっていませんか? TearFreeオプションの欠点は何ですか?
これは the intel
manpage で対処されています:
TearFreeの更新を無効または有効にします。このオプションは、実際の表示を更新する前に、Xにすべてのレンダリングをバックバッファーに強制的に実行させます。フレームバッファーと同じサイズの追加のメモリ割り当て、時々追加のコピーが必要であり、損傷追跡が必要です。したがって、TearFreeを有効にすると、より多くのメモリが必要になり、速度が低下し(スループットが低下)、少量の出力レイテンシが発生しますが、入力レイテンシには影響しません。ただし、画面の更新はディスプレイの垂直リフレッシュと同期して実行されるため、ディスプレイ全体が更新されてから、ディスプレイがリフレッシュを開始します。つまり、1つのフレームしか表示されず、2つの表示されているフレームと異なるフレームの間の見苦しい裂け目を防ぎます。これは、コンポジティングマネージャーの処理を複製しますが、TearFreeはコンポジターの更新(およびフルスクリーンゲームの更新)を直接スキャンアウトにリダイレクトするため、合成の場合に追加のオーバーヘッドは発生しません。また、すべての合成マネージャーがティアリングを防ぐわけではなく、出力が回転しても、TearFreeが有効になっていないとティアリングが発生することに注意してください。
要約すると、欠点は、より多くのメモリが必要であり、スループットが低下し、レイテンシが追加されることです(コンポジターまたはvblank同期のフルスクリーンディスプレイがある場合を除く)。