Linux における入力レイテンシ測定:X11 vs Wayland、VRR、そして DXVK Low‑Latency

Linux における入力レイテンシ測定:X11 vs Wayland、VRR、そして DXVK Low‑Latency

TL;DR – 数値の意味

  • X11 vs. Wayland: X11 はわずかに速く(0.14–0.22 ms)、Wayland が遅く感じられるという一般的な認識を説明するほどではない。
  • 可変リフレッシュレート (VRR): VRR を有効にするとレイテンシが一貫して 0.26–0.45 ms 減少し、レイテンシ分布が引き締まる。
  • DXVK low‑latency フォーク: 上限ありシナリオでは 0.10–0.29 ms 短縮、上限なしで GPU がボトルネックになる場合は 0.84 ms カットし、フレーム時間のスパイクを平滑化する。
  • XWayland: 巨大な 3.13 ms のペナルティを付加し、他のすべての効果をはるかに上回る。
  • 総合的な効果: すべての最適化(X11 + VRR + DXVK low‑latency)を適用すると、デフォルトのプレーン Wayland 設定と比べて中央値のエンドツーエンドレイテンシが約 0.72 ms 低減する。

計測方法の概要

著者は Adafruit QT Py RP2040 を用いた click‑to‑photon 装置を自作し、次の手順で測定した:

  1. 1000 Hz のポーリングレートで USB HID マウスクリックを送信する。
  2. クリック直後にモニタに取り付けたフォトダイオードのサンプリングを開始する(≈24 µs/サンプル、1 クリックあたり 12 k サンプル)。
  3. サンプルをホストにストリームし、スクリプトがクリックごとのベースラインから最初に明るさが変化した点を検出する。
  4. サンプリングウィンドウの長さは固定なので、スクリプトはクリック発行から画面の照明変化までの正確な時間、すなわち エンドツーエンドシステムレイテンシ(mouse → CPU → GPU → compositor → scan‑out → display)を算出する。

この手法は USB とディスプレイの遅延も含めた全パイプラインを捕捉でき、GPU のみを測定するタイマーが省く部分を補完する。


テストマトリックス

変数 オプション
ディスプレイサーバ X11(ネイティブ)、Wayland(ネイティブ)、XWayland
VRR Off、On
DXVK low‑latency Off、On
キャップモード リフレッシュレートで FPS を上限(500 Hz)または上限なし(GPU‑ボンド)

すべてのテストは同一ハードウェア・ソフトウェア構成で実施した:

  • CPU: AMD Ryzen 7 5800X3D
  • GPU: NVIDIA RTX 4070 SUPER、ドライバ 610.43.03
  • ディスプレイ: MSI MAG 272QP QD‑OLED、2560×1440 @ 500 Hz
  • OS: CachyOS kernel 7.1.3‑2、KDE Plasma 6.7.2、Xorg 21.1.24
  • ゲーム: Diabotical(DirectX 11)via Heroic + Proton‑cachyos 11.0、DXVK 3.0
  • 設定: ネイティブ解像度、100 % レンダースケール、V‑sync オフ、その他すべて低設定。

各シナリオは 300 回クリック(約 2 分)を静的なゲームシーンで実行し、フレームレートを安定させ CPU‑ボンドに保った。


主な結果(中央値レイテンシ、ms)

設定 X11 Wayland XWayland
Low‑latency + VRR 4.21 4.38 (+0.17)
Low‑latency 4.64 4.83 (+0.19) 5.95 (+1.12)
VRR only 4.45 4.67 (+0.22)
Plain 4.79 4.93 (+0.14) 8.06 (+3.13)

上限なし(GPU‑ボンド)比較

  • Low‑latency オフ: 5.27 ms、715 FPS
  • Low‑latency オン: 4.43 ms、670 FPS(‑0.84 ms レイテンシ、‑45 FPS)

観察結果

  1. X11 が Wayland を上回るのは約 0.2 ms だけで、"Wayland が遅く感じる" という逸話よりはるかに小さい。
  2. VRR は一貫してレイテンシを改善(0.26–0.45 ms)し、分布を狭める(p95‑p5 の幅が約 3 ms から約 2 ms に減少)。
  3. DXVK low‑latency は上限ありモードで僅かな効果(≈0.2 ms) だが、上限なしでは 0.84 ms を削減し、GPU の飽和を防ぐ。
  4. XWayland が最大の遅延要因 で、3 ms 超のペナルティは他の要因の合計を上回る。

なぜ XWayland は高コストなのか

著者は、XWayland がゲームを追加の X サーバ層へと通すため、Wayland コンポジタに到達する前に余分なコピー&コンポーズ処理が発生すると指摘している。ネイティブ Wayland ではコンポジタが direct scan‑out(フリップモード)を利用でき、フルスクリーンウィンドウでは合成を完全にバイパスできる。このアーキテクチャ上のオーバーヘッドが約 3 ms のペナルティを生み、X11‑Wayland の差をはるかに上回る。


コミュニティによる裏付け

  • David Ramiro の m2p‑latency 研究は、ネイティブ Wayland がネイティブ X11 と同等(約 7 ms)で、XWayland がほぼ倍のレイテンシであることを示し、本稿の結果と一致する。
  • farnoy の Open‑Source‑LDAT も XWayland は回避すべきと結論付けている。
  • Themaister の VK_EXT_present_timing 手法は PC レイテンシ(USB/ディスプレイ除外)だけを測定し、ここで用いたエンドツーエンド手法を補完している。

Linux ゲーマーへの実践的な示唆

  1. 可能な限り XWayland を避ける – 3 ms 超の遅延が付加される。
  2. ネイティブ Wayland を選択 – X11 との差は無視できるほど小さく、将来的なコンポジタ最適化(例:KWin のチューニング)でさらに縮小される可能性が高い。
  3. 高リフレッシュディスプレイで VRR を有効化 – 最大のレイテンシ削減とフレームタイミングの安定化が得られる。
  4. DXVK low‑latency を使用 – 特に上限なしの GPU‑ボンドシナリオでフレームペーシングが平滑化され、約 0.8 ms の削減が期待できる。
  5. ディスプレイをフリップモード(direct scan‑out)に保つ – X11 と Wayland の両方で、コンポジタがブリット/合成パスにフォールバックしないようにする。

制限事項と適用範囲

  • 結果は単一ハードウェア構成(500 Hz OLED、RTX 4070 SUPER、Linux kernel 7.1.3)で得られたもの。絶対値は他の環境で変わるが、相対的な改善は同様に期待できる。
  • テストは CPU‑ボンドかつ静的シーンで実施したため、負荷が変動する実ゲームでは VRR と DXVK low‑latency の効果がさらに大きくなる可能性がある。
  • 使用したゲームは DirectX 11 の Diabotical のみ。Vulkan や OpenGL のゲームでは挙動が異なる場合がある。

結びの言葉

理想的で CPU‑ボンドな条件下では、最適化(X11 + VRR + DXVK low‑latency)をすべて適用することで、プレーン Wayland 設定と比べて中央値のエンドツーエンド入力レイテンシが 約 0.72 ms 短縮される。絶対的な改善は控えめに見えるが、VRR によるジッタ削減と DXVK low‑latency によるフレーム時間スパイクの平滑化は、速いペースの競技タイトルでは実感できる。最大の効果は XWayland を回避すること で、これだけで他の要因をすべて上回る遅延ペナルティが除去できる。


"Linux の素晴らしい点は、この種の分析が可能であるだけでなく、意味があることです。この結果はグラフィックスソフトウェアの作者やディストリビューションのパッケージ担当者に報告され、エコシステムが改善されます。" – NelsonMinar, HN comment

"'Wayland input latency' というものは存在しません。この投稿は Xorg と KWin(および XWayland)を比較しており、他の実装は異なる特性を持ちます。" – seba_dos1, HN comment

"最近私を悩ませている入力レイテンシは画面のアンブランク遅延です… DPMS 省電力時に入力がアクティブなままだった旧 X サーバの挙動が恋しいです。" – saltcured, HN comment

これらのコミュニティの声は、正確なハードウェアベースのレイテンシ測定が Linux グラフィックススタックの将来開発を導く上でいかに重要かを示している。

Sources