これはすべて、X サーバーが時代遅れであり、今日のグラフィックス ハードウェアには不適切であり、基本的にすべての直接ビデオ カード通信が古い肥大化したコアの拡張機能 (「パッチ」) として行われているという事実によるものです。 X サーバーには、ウィンドウをレンダリングするユーザーとウィンドウを表示する画面との間の同期手段が組み込まれていないため、レンダリングの途中でコンテンツが変更されます。これは、X サーバーのよく知られた問題の 1 つです (X サーバーには、サーバーが行うことの全体的なモデルが多数あり、時代遅れになっています - サブウィンドウでのイベント処理、ウィンドウに関するメタデータ、直接描画のためのグラフィック プリミティブなど...)。ウィジェット ツールキットはほとんどの場合、これらすべてを隠蔽したいと考えていますが、それを処理するメカニズムがないため、ティアリングは依然として問題です。異なるドライバを必要とする複数のカードがある場合、追加の問題が発生します。さらに、opengl ライブラリには xlib への依存関係が組み込まれているため、X を介さずに独立して使用することはできません。
X の置き換えをやや熱心に試みていない Wayland は、コアでペダンティックな vsync 同期をサポートし、すべてのフレームが正確に完璧であると宣伝されています。
「ウェイランド ビデオ ティアリング」をすばやくググると、すべての詳細情報が見つかります。
nvidia ドライバー>=365.20 を使用している場合は、nvidia-settings
で「Force Full Composition Pipeline」オプションを有効にしてみてください。 .
画面のティアリングは主に 2 つの理由で発生します。ドライバーがまだ存在しないことと、特定のウィンドウ マネージャーとの vsync の欠如です。
ドライバーに関しては、フリー ドライバーとプロプライエタリ ドライバーの両方がフリー ティアリング合成をサポートしています (nvidia と amd の両方)。たとえば、次のことに注意してください。 Catalyst でティアフリー デスクトップを有効にする (fglrx
) はフレーム ドロップやラグを引き起こす可能性があるため、通常はデフォルトで無効になっています。オープン ドライバーに関しては、デフォルトで vsync を有効にする必要があります。そのため、画面のティアリングの問題は、別のドライバーを試して設定することで解決できる場合があります。
ウィンドウ マネージャーに関しては、Openbox、Awesome などの軽量 wms がティアフリーをサポートしていないことが知られています。 XFCE (具体的には xfwm) は最近のリリースで修正され、4.11/12 には Vsync が追加されました。 GNOME、KDE、Unity、Cinnamon などの主要なデスクトップ環境でもティアリングの問題はありません。
それでも画面のティアリングが発生する場合は、Compton や Kwin などの別の合成マネージャーを試すことをお勧めします。 Kwin は KDE のウィンドウ マネージャーであり、vsync をサポートしていないときに XFCE で kwin を使用した経験があり、非常にうまく機能しました。
したがって、ここでの解決策は実験です。driver/wm の 1 つの組み合わせで壊れているものは、別の組み合わせで機能します。オープンソース ドライバーがより高度になり、wayland に切り替えることで Xorg の古い問題が解消される可能性があるため、状況はすぐに改善されると思います。