週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

入力ラグ軽減でPCゲームの反応速度アップ!? 「Radeon Anti-Lag」の効果を検証

Anti-Lagが短縮する“ラグ”はいかなるラグか?

 ではAnti-Lagはいったいどんな“ラグ”を短縮してくれるのか簡単に解説しておこう。PCゲームの処理は、まずCPUがプレイヤーの操作を受け付けたり、攻撃の当たり判定といったゲームのロジックに関係する処理を行ない、その結果どういった画面を出すかで決定する。次にGPUがCPUが算出した情報に基づいて実際に画面をレンダリングする。

 つまりCPUが処理を始め、GPUが描画を終えて画面に表示されるまでが1サイクルとなる。今回は話を簡単にするために、GPUのレンダリング終了とともに映像が表示されるとしよう。つまりV-Sync無効、あるいはFreeSyncなどのVRR技術を有効にしている状況だ。

かなり乱暴だがゲームの処理の流れはこんな感じになる。まずCPUがフレーム1の処理を行ない、続いてGPUが処理を行なう。Aの映像を見て操作Aを実行しても、それが映像Bとして反映されるには、間に1フレーム挟んだ後になる

GPUの処理時間(GPUのフレームタイム)が長くなると、操作が映像に反映されるタイムラグがさらに長くなる

 上図で赤色矢印のタイミングでプレイヤーの操作を受け付け、黄色矢印のタイミングで画面が表示されるとしよう。プレイヤーはAという映像が表示されると、それにリアクションするために操作Aを入力するが、図から分かる通りAとは、Aが表示されるずっと前に処理されたCPUフレームでの状況を反映したものであり、画像Aを見て入力した操作Aが実際に画面に反映されるのは映像Bである。

 プレイヤーの反射神経という要素を除外して考えたとしても、常に画面から得られる視覚的入力に呼応するレンダリング結果を得るためには、一定の時間が必要になる。この時間をAMDは「インプットラグ」と呼び、Anti-Lagを利用することでより短くできると提唱しているのである。

 Anti-Lagが一体何を行なっているかについては、具体的な資料は提供されていない。だがAnti-Lagの動作原理とは、単純にCPUの処理するタイミングを調整するものらしい、ということは分かっている。

 要するに入力を処理するタイミングをドライバー側でギリギリまで遅らせることができれば、プレイヤーの目からは入力に鋭敏に反応するように見える。敵のアクションを見てから反応するタイプのゲームにおいて、インプットラグの短縮は非常に重要なのだ。

 実際Anti-Lagをオンにするとゲーム中のCPU占有率はわずかに増える。CPUの処理タイミングを後ろにずらすということは、それだけCPUの処理時間が長くなる。占有率が増えるのは当然の帰結となる。

Anti-LagはCPU側の処理を少し遅らせることで、ギリギリまで入力を受け付けるタイミングを後ろにずらせば、操作が実際に画面に反映されるまでのインプットラグを短縮させることができる

Anti-Lagを無効にした状態(左)と有効にした状態(右)でのCPU占有率の違いを「Apex Legends」で比較してみた。Anti-Lagを有効にすると、ややCPUの占有率が増えている

 CPUの処理タイミングを調整してインプットラグを減らすというAnti-Lagの仕組みは、それがそっくりそのままAnti-Lagの利用制限につながる。Anti-LagがDirectX 12非対応なのはDirectX 12のゲームではドライバー側の工夫でCPUの処理に介入することができない(ゲームプログラム側が一連のグラフィック処理を制御する)ためである。

 さらに言えば、Anti-Lagが効くのはゲームの処理において「GPU Bound」なシチュエーションに限られる、ということだ。GPU Boundなシチュエーションとは、グラフィック描画においてGPUの性能が律速になっているという状況。逆にCPUのパワーが足りない「CPU Bound」な状況では、CPUの処理タイミングを調整するAnti-Lagは意味をなさないというわけだ。

CPUのコア数が少ないのにCPU負荷の高いゲームを遊ぶような状況では、「CPU Bound」な状態になりやすい。この状態でAnti-Lagを使っても、CPUが律速になっているため、効果が得にくいということだ

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう