한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

ゲームラグ白書 › L2 クライアントのOS・端末

ディスプレイ・入力デバイス・フレーム生成による遅延 Display, input device and frame generation latency

原因ID co-display-input · 主担当 外部・外部 · 副担当 ゲーム開発チーム・クライアント開発

図と実験のあるメインページでこのカードを開く →

Pingは正常なのに操作が重いなら、テレビの映像処理やワイヤレスコントローラー、フレーム生成機能が、入力と画面の間に遅延を上乗せしているのかもしれません。

なぜ テレビのゲームモードがオフ、Bluetooth・ワイヤレスコントローラーを使用、フレーム生成(DLSS・FSRのフレーム生成)が有効、のいずれか → すると テレビは画質処理をしている間フレームを遅れて出力し、ワイヤレス入力は送信周期と干渉の分だけ遅れて届き、フレーム生成は次のフレームを待ってから中間フレームを作る → 画面では PingとFPSの数字はよいのに、押してから画面に反映されるまでが遅く、入力遅延になる

症状
入力遅延
要因
遅延
誰に起きるか
自分だけ
いつ
常に
担当
主担当 外部・外部 · 副担当 ゲーム開発チーム・クライアント開発
ゲーム開発チームの対応
フレーム生成は選択式のオプションにして、有効にすると入力遅延が増えることがあると案内、フレーム生成を使うときはGPUメーカーの低遅延機能(NVIDIA Reflex、AMD Anti-Lag 2)もあわせて組み込む、ゲーム内でPC側の入力〜画面の遅延を表示、Android TV・セットトップボックス向けビルドではWindow.setPreferMinimalPostProcessing(true)でテレビに低遅延モード(ALLM)を要求。
外部の対応
ユーザーに、テレビ・モニターのゲームモード(ALLM)を有効にすること、競技性の高いコンテンツでは有線コントローラーを使いフレーム生成をオフにすること、Bluetooth機器は近くに置きWi-Fiは5GHzを使うことを案内。
数値の目安
60Hzの画面は1フレームを送るだけで16.7ms、120Hzなら8.3msかかります。以前のXboxコントローラーは8msごとに入力を読み取って送っていました。テレビの映像処理が加える遅延は機種ごとに異なり一つの数字では言えませんが、ゲームモードはこの処理を減らす設定です。フレーム生成は、生成前のフレームレートが60FPS以上の状態で使うようAMDが推奨しています。
グラフでは
最初から常に高い · 入力〜画面の遅延
確認箇所
PresentMonのMsAllInputToPhotonLatency(キーボード・マウスの入力から画面への出力まで)を、フレーム生成のオン・オフで比較し、FrameType(ドライバー・SDKが通知する場合にだけ記録)で、生成された中間フレームが混じっているかを確認。この値にはコントローラーの無線区間とテレビ内部の処理が含まれないため、その部分はテレビのゲームモード・有線コントローラーに切り替えながら比較
該当する場合
Pingは正常で、フレーム生成をオフにすると入力〜画面の遅延が減るか、テレビのゲームモード・有線コントローラーに切り替えると体感の遅延が消える
該当しない場合
これらの設定をすべて変えても同じで、Pingが高いか跳ねるならネットワーク側。PC側の遅延がV-Sync・フレームキューのせいで高いなら「V-Syncとレンダーキュー」
確認手段
ユーザー側の環境で確認
もっと詳しく
ネットワークの遅延はPingで見えますが、この遅延はPingには表れません。そのため「Pingは低いのにラグい」という報告で、まず確認すべきところです。フレーム生成は画面のFPSの数字を2倍ほどに上げますが、中間フレームを作るには次の本物のフレームを待つ必要があるため、入力が画面に反映されるまでの時間は延びます(AMDは設計上遅延が増えると明言)。Bluetooth機器はWi-Fiと同じ2.4GHz帯を使うため、干渉を受けると入力が途切れたり飛んだりすることがあります。PC内の遅延を大きくするV-Sync・レンダーキューについては、「V-Syncとレンダーキュー」の項目を見てください。

出典

  1. Auto Low Latency Mode (ALLM) HDMI Licensing Administrator
    ALLMは、機器がディスプレイを低遅延モード(一般にゲームモード)へ自動で切り替えられるようにする。低遅延モードでは、遅延を減らすためにテレビの映像処理の一部を止める
  2. Xbox Series X: What’s the Deal with Latency? Microsoft
    入力遅延はコントローラー→コンソール→HDMI→テレビとつながる経路の合計。以前のコントローラーは8msごとに入力を読み取って送信。HDMIで1フレームを送る時間は60Hzで16.6ms・120Hzで8.3ms。ALLMでテレビのゲームモードに自動で切り替え
  3. AMD FSR 3 game integrations out now + more details for developers AMD
    フレーム補間は設計上遅延を増やす。補間前のフレームレートが60以上で使うよう推奨。60FPSの入力で最大120FPSを出力
  4. AMD FSR Frame Generation AMD
    フレーム生成は補間前60FPS以上を推奨(30FPS未満は避けるべき)。AMD Radeon Anti-Lag 2がCPU・GPUの処理タイミングを合わせてシステムの遅延を減らす
  5. NVIDIA DLSS NVIDIA
    DLSSのフレーム生成は、NVIDIA Reflex(低遅延機能)と組み合わせて応答性を保つよう設計されている
  6. Resolve Wi-Fi and Bluetooth issues caused by wireless interference Apple
    無線の干渉は、Wi-Fi・Bluetooth機器の途切れや性能低下を引き起こす。BluetoothとWi-Fiは同じ2.4GHz帯を使う
  7. PresentMon Capture Application (README-CaptureApplication.md) Intel
    MsAllInputToPhotonLatency(入力〜画面の遅延)、DisplayLatency(フレームの提出〜モニターへの出力)、FrameType(アプリが描画したフレームと、ドライバー・SDKが補間したフレームを区別)
  8. PresentMon Console Application (README-ConsoleApplication.md) Intel
    MsAllInputToPhotonLatencyはキーボード・マウス入力が基準。FrameTypeは、アプリ・ドライバーがIntel-PresentMonイベントを出力しないと記録されない(--track_frame_type)
  9. Window.setPreferMinimalPostProcessing Android (Google)
    ゲームのように遅延が重要なウィンドウは、ディスプレイに最小限の映像処理を要求する。HDMI接続ならALLM・Game Content Typeの信号を送り、テレビを低遅延モードに切り替える

あわせて読みたい原因

同じ層:L2 クライアントのOS・端末

同じ症状(入力遅延)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る