NVIDIA Reflex の紹介: 対戦ゲームで遅延を最適化および測定するテクノロジ スイート

執筆者: Seth Schneider 投稿日: 2020年9月1日火曜日 | 特集記事 FramesWinGames GeForce RTX GPU ガイド NVIDIA Reflex

現在、GeForce ゲーマーの 73% が対戦型マルチプレイヤー ゲームか e スポーツをプレイしています。最も視聴されている e スポーツの『リーグ・オブ・レジェンド』は、2019 年度の大会で 1 億を超える視聴者を記録しました。これは同年の NFL スーパーボウルを超える数字です。e スポーツが視聴者数においてもプレイ時間においても従来のスポーツに肩を並べるようになった現在、最高の状態でプレイできるように PC やグラフィックス ハードウェアを調整することがゲーマーにとって、これまで以上に重要になっています。そのため、NVIDIA は数年前、NVIDIA Research の科学者がスタッフを務める e スポーツ研究室に投資し、e スポーツにおけるプレイヤーとハードウェアのパフォーマンスを理解することに専念しています。本日、この研究の最初の大きな成果を紹介できることを嬉しく思っております。

NVIDIA の新しい GeForce RTX 30 シリーズの GPU と共に、NVIDIA Reflex を初公開します。これは GPU、G-SYNC ディスプレイ、ソフトウェア テクノロジからなる革新的なスイートであり、対戦ゲームにおけるシステム遅延 (別称、click-to-display レイテンシ) を測定し、削減します。システム遅延を減らすことは、対戦ゲームのプレイヤーにとって非常に重要です。PC やディスプレイがユーザーのマウスやキーボードの入力に速く反応することになるからです。プレイヤーは敵を瞬時にとらえ、高い精度で射撃できます。

 

NVIDIA Reflex には、2 つの重要な新しいテクノロジが採用されています。

NVIDIA Reflex SDK: ゲーム開発者がレンダリング遅延を測定し、削減するための新しい API セット。ゲームに直接統合することで、Reflex 低遅延モードは、ゲーム エンジンの動作をレンダリングに合わせてジャストインタイムで完了するように調整し、GPU レンダリング待ち行列をなくして CPU のバック プレッシャーを減らします。これは、NVIDIA のウルトラ低遅延モードなど、既存のドライバーだけの手法に比べ、はるかにレイテンシを減らします。

Reflex 低遅延モードは間もなく『Apex Legends』、『Call of Duty: Black Ops Cold War』、『Call of Duty: Modern Warfare - Warzone』、『Destiny 2』、『フォートナイト』、『Valorant』など、人気の対戦ゲームに導入され、GeForce GTX 900 以上の NVIDIA グラフィックス カードで GPU 負荷の高いゲーミングの状況の遅延を改善します。

NVIDIA Reflex Latency Analyzer: Acer、ASUS、MSI、Dell から販売される新しい360Hz G-SYNC e スポーツ ディスプレイに内蔵されている革新的なシステム遅延測定ツール。ASUS、Logitech、Razer の e スポーツ向けの周辺機器に対応しています。

Reflex Latency Analyzer はマウスのクリックを検出し、 (マズル フラッシュなど) ピクセルが画面上で変化するまでに必要な時間を計測します。この種の測定は今まで、ゲーマーにとって事実上不可能でした。7000 ドル以上の特殊なハイスピード カメラと機器が必要だったからです。

ゲーマーはこれまで、フレーム毎秒 (FPS) など、スループット指標に基づいてシステムの応答性を推測する必要がありましたが、Reflex Latency Analyzer があれば、マウス、PC、ディスプレイのパフォーマンスのはるかに完全かつ正確な把握を可能にします。Reflex Latency Analyzer を使用できる今、対戦型ゲームのプレイヤーはシステムが本来あるべき状態で正確に動作していることを認識しながら、自信を持って試合を開始できます。

 
 

この記事では、システム遅延と NVIDIA Reflex テクノロジについて深く掘り下げます。準備はよろしいですか?

遅延 (レイテンシ) とは何ですか?

レイテンシとは、目的の操作と予想される結果との間の遅延を表す時間を測定したものです。ネットショップや食料品店で商品を支払うのにクレジット カードを使用するとき、購入が確認されるまでの遅延がレイテンシです。

ゲーマーは主に、2 種類の遅延を経験します。システム遅延ネットワーク遅延です。

ネットワーク遅延とは、ゲーム クライアントとマルチプレイヤー サーバーの間の往復遅延であり、一般的には「ping」と呼ばれています。

 

この遅延がゲームプレイに与える影響には、ゲームのネットワーキング コードがネットワーク遅延を処理する仕組みによっていくつかの違いがあります。以下に例をいくつか示します。

  • 命中の確認が遅れる: 敵に弾が当たったのに、キルがずいぶん後になるまで確認できないケースです。その結果、弾薬を無駄にしたり、次の標的へのエイムの移動が遅れたりします。
  • インタラクションが遅れる: ドアを開ける、金庫を奪うなど、モノの操作が遅れます。
  • 相手の位置が遅れる: 結果的に、「飛び出し有利」と呼ばれている現象が発生します (後で詳述します)。
 

ネットワーク遅延は、パケット損失や順序が適切でないパケットなど、ネットワークの不安定さに起因する問題とは異なります。ネットワークが不安定になると、ラバーバンディングや同期ずれなどの問題が発生します。ラバーバンディングとは、ゲーム内で動き回ったとき、数秒前の位置に戻される現象を言います。輪ゴムのようにパチンと弾かれ、サーバーが見ていた位置まで戻されます。同期ずれとは、パケット損失した際にネットワークがぎこちなくなることです。敵が一瞬停止したと思ったら、本来の位置に瞬間移動するように見えます。この 2 つのよくある問題はネットワーク遅延の問題ではありませんが、パケットの移動距離が長い場合に通常発生し、そのため、より高い遅延との間に相関があります。

システム遅延とは、マウスやキーボードの操作とその結果となるディスプレイ上のピクセル変化 (マズル フラッシュやキャラクターの動きなど) との間の遅延です。これは「click-to-display 遅延」や「エンドツーエンドのシステム遅延」とも呼ばれます。この遅延にはゲーム サーバーは関係しません。関係するのは、周辺機器、PC、ディスプレイのみです。

 

この遅延は、さまざまな場面でゲームプレイに影響します。以下に例をいくつか示します。

  • 反応が遅れる: マウスを動かした際に、画面上のエイムが遅れるようなケースです。
  • 射撃が遅れる: 射撃した際に、弾痕のマーク、弾道、武器の反動が実際のマウス クリックよりも遅れるようなケースです。
  • 相手の位置が遅れるこれは「飛び出し有利」と呼ばれています。(そうです。「飛び出し有利」もシステム遅延の影響なのです!)
 

おおまかに言えば、システム遅延には主なステージが 3 つあります。周辺機器 (マウスなど)、PC、ディスプレイです。あいにく、この遅延は説明が難しい状況にあります。「入力遅延」や「入力ラグ」といった言葉を使うことで、さまざまなシステム遅延を表すからです。

たとえば、マウスがクリックの処理に必要とする時間について気になるなら、マウスが入っているパッケージに「入力遅延」と書いてあります。ディスプレイがフレームの処理に必要とする時間について気になるとき、モニターが梱包されている箱でにこの「入力遅延」の情報が見つかります。また、ゲームが入力の処理に必要とする時間を知りたければ、ゲームやソフトウェア ツールに関する情報が記載されている場所でも「入力遅延」という言葉が見つかります。このすべてに「入力遅延」という名前が付いていますが、どれがここで言う遅延でしょうか?

エンドツーエンドのシステム遅延

それでは少しばかり時間をかけて少し掘り下げ、「入力ラグ」より正確な用語をいくつか定義してみましょう。

  • 周辺機器の遅延: 入力機器がユーザーの物理的入力を処理し、その入力イベントを PC に送信するために必要とする時間。
  • ゲーム遅延: CPU が入力またはゲーム内世界の変化を処理し、レンダリングする新しいフレームを GPU に送信するために必要とする時間。
  • レンダリング遅延: フレームがレンダリング待ち行列に入ってから GPU がそのフレームを完全にレンダリングするまでの時間。
  • PC 遅延: フレームが PC を通過するのにかかる時間。これにはゲーム遅延とレンダリング遅延が両方とも含まれます。
  • ディスプレイ遅延: GPU がフレームのレンダリングを完了した後、ディスプレイが新しいイメージを表示するために必要とする時間。
  • システム遅延: 周辺機器のレイテンシの始まりからディスプレイの遅延の終わりまで、端から端まで、全体的計測を網羅する時間。

以上は一部の詳細をもっともらしく説明しただけの大まかな定義ですが、遅延について問題なく伝えるうえで十分な基礎となります。また、各ステージについては、記事の後半で詳しく説明します。もっと専門的な知識が必要であれば、詳細セクションに進んでください。

FPS とシステム遅延の違いは何ですか?

一般的に、FPS が高くなればシステム遅延は相対的に低くなります。ただし、この関係は 1 対 1 とはかけ離れています。より良く理解するため、一歩下がって、PC の操作を測定する方法について考えてみましょう。まず、ディスプレイが表示できる 1 秒間あたりの画像枚数があります。この数字は FPS (フレーム毎秒) と呼ばれているスループット レートです。2 つ目は、ユーザーの動作がそのような画像の中に反映されるために必要な時間です。システム遅延と呼ばれている継続時間です。

ある PC が 1000 FPS をレンダリングできたとしても、ユーザーの入力がディスプレイに伝わるまで 1 秒かかるとすれば、満足のいく結果にはならないでしょう。逆に言えば、ユーザーの入力が一瞬で反映されても、フレームレートが 5 FPS であれば、それも満足のいく結果にはなりません。

それでは、どちらの方が重要でしょうか?1 年以上前、NVIDIA はこの質問の答えを探し求め、その発見は非常に興味深いものでした。研究の全貌は SIGGRAPH Asia で公開されていますが、手短に言えば、システム遅延は、モニターに表示されるフレーム レートよりも、エイム トレーナーでエイム タスクを完了する被験者の能力にはるかに影響を及ぼすことがわかりました。でも、それはなぜでしょうか?

システム遅延が重要である理由とは?

実際のゲームの例を見て、この質問にお答えしましょう。

 

まず、当たり判定を見てみましょう。当たり判定とは、ゲームが他のプレイヤーを射撃したときにどのくらい正確に判定しているかについて話すときに使う言葉です。命中したことが明らかなのに射撃が当たらなかった場合は、当たり判定のせいにします。誰にも経験があります。でも、それは本当に当たり判定の問題でしょうか?

 

上の映像の射撃では、照準で標的をとらえたときにマウス ボタンが押されましたが、銃弾は外れました。システム遅延と対戦相手の動きの関係により、ゲーム エンジンは照準の位置が実際には標的より遅れていると読み取っていました。実際、ディスプレイに表示されるものは、ゲーム エンジンの現在の状態より遅れています。この原因は、PC が情報を処理し、フレームをレンダリングし、ディスプレイに表示するのに時間がかかることにあります。ミリ秒単位が重要になるゲームでは、30 ミリ秒から 40 ミリ秒余計に遅れることは、勝利を逃すことを意味することがあります。

次に、「飛び出し有利」の問題を取り上げましょう。対戦ゲームでレベルの高いプレイヤーは、通常、極端に有利となる角度を維持します (対戦相手よりもコーナーから離れようとします)。「飛び出し有利」と呼ばれているオンライン ゲームの特性を相殺するためです。

飛び出し有利とは、ある角度を維持しているプレイヤーがコーナーを覗き込んだときに攻撃者がほんの一瞬優位になることです。攻撃をするプレイヤーの位置情報が防御側にネットワーク経由で届くまで時間がかかるため、おのずと攻撃側が有利になります。これを相殺するため、プレイヤーはコーナーで「ジグル ピーク」を行います。一瞬のぞき込み、安全な場所まで引っ込みます。自分が見られる前に相手を見ることができるため、一瞬優位になります。この現象は多くの場合、ゲームのネットワーキング コードまたはネットワーク遅延の特性として見られています。ただし、システム遅延は飛び出し有利において大きな役割を果たしている可能性があります。

 

上の射撃映像からわかるように、いずれのプレイヤーもコーナーから等しく距離をとっていました。その ping は同じでした。唯一の違いがシステム遅延でした。

当たり判定の説明と同じく、システム遅延が大きいと、ゲーム世界が遅れて見えます。標的を見る前に標的に見られてしまいます。お使いのシステムの遅延が対戦相手のそれよりずっと地位避ければ、飛び出し有利を完全に軽減できる可能性があります。それでもゲーム ネットワーキングの影響はありますが、全般的に、システム遅延が小さいと、防御面では飛び出し有利が軽減され、攻撃面では優位に立つことができます。

最後に、エイムの精度について検討しましょう。特に、フリック ショットです。『CS:GO』や『Valorant』などの対戦ゲームでは、フリックの練習がおそらく、最も大切なトレーニングです。一瞬で標的をとらえ、標的までフリックし (マウスを動かし)、ミリ秒の驚異的な精度でクリックする必要があります。しかしながら、何を試しても、フリックが安定しないと感じることはありませんか?

 

エイムでは、照準の現在位置と標的のとの相対的な位置に基づいて意識下で修正するという、一連の微妙動きを伴います。遅延が大きいと、このフィードバック ループの時間が増え、結果的に精度が下がります。また、遅延が平均的に大きい、遅延の変動が大きくなり、体が慣れたり、予測したりすることが難しくなります。結局のところ、遅延が大きいと、精度が下がることは明らかです。

これが先に述べた研究結果につながります。下のグラフからは、フリック ショットの精度の測定の際に、小さな遅延が大きな影響を与えていることがわかります。

対戦ゲームでは、FPS とリフレッシュ レート (Hz) が高いほど遅延が小さくなり、入力が画面に反映される機会が増えます。遅延がわずかに小さくなるだけでも、フリック パフォーマンスに影響が出ます。最新の e スポーツ 研究ブログで NVIDIA Research チームは、さまざまなレベルのシステム遅延がプレイヤーのパフォーマンスに与える影響を考察しました。

NVIDIA Research は、システム遅延がわずかな差 (12ms と 20ms) であっても、エイム パフォーマンスに大きな違いが出る可能性があることを発見しました。実際、遅延が 12ms の PC と 20ms の PC とでは、エイム タスクの完了にかかる時間の差の平均は 182ms でした。システム遅延の差の約 22 倍です。それを踏まえた上で、標的難易度が同じであれば、『Valorant 』または『CS:GO』の 128 ティック サーバーの場合、12ms の PC では、射撃が平均 23 ティック早く標的に着弾します。それなのに、ほとんどのゲーマーはシステム遅延が 50ms ~ 100ms のシステムでプレイしています!

これは、実際にゲームで勝てるということを意味するでしょうか?対戦シューティング ゲームの上手さには、単なる身体的技能以上のものが関わります。鋭いゲーム感覚と戦場で鍛えた戦略があれば、生き延びたり、ドン勝で祝ったりできるかもしれません。しかしながら、『PUBG』と『フォートナイト』のデータによると、高い FPS (小さい遅延) と K/D (キルデス比) には同様の相関関係が見られます。

相関関係が因果関係を意味することは決してありません。ただし、上記の科学をこの相関関係に応用すると、FPS が高く、システム遅延が小さければ、着弾率とキルデス比が上がるとする主張を支持する証拠がたくさん与えられます。

NVIDIA Reflex でシステム遅延を減らす

新登場の NVIDIA Reflex により、SDK とドライバー最適化の組み合わせを使用して、遅延のためにレンダリング パイプラインのあらゆる面を最適化することに着手しています。これらのテクニックの中には、大幅な遅延の削減につながるものもあれば、状況にもよりますが控えめなメリットが得られるものもあります。ともかく、NVIDIA Reflex は、システム遅延を最適化するためのツールをゲーマーや開発者に提供するという NVIDIA の約束です。

NVIDIA Reflex SDK

Reflex SDK を利用すれば、ゲーム開発者はレンダリングに合わせてゲーム エンジンの動作をジャストインタイムに完了させる低遅延モードを実装できます。GPU のレンダリング待ち行列をなくし、GPU バウンドの場合に CPU のバック プレッシャーを減らします。

上の画像では、待ち行列がフレームでいっぱいになっていることがわかります。GPU のフレーム レンダリングより CPU のフレーム処理が速いため、このバックアップが発生し、結果的にレンダリング レイテンシが増えます。Reflex SDK にはドライバーのウルトラ低遅延モードといくつかの類似点があります。しかしながら、ゲームに直接統合することで、レンダリング待ち行列やパイプラインの後半の他のステージから CPU が受けるバックプレッシャーの量を制御できます。ウルトラ低遅延モードの場合、ドライバー側のコントロールがはるかに少なくなります。ウルトラ低遅延モードでは多くの場合、レンダリング待ち行列を減らすことができますが、ゲーム側や CPU 側で増えたバック プレッシャーを取り除くことはできません。そのため、Reflex SDK から得られる遅延のメリットは、ドライバーのウルトラ低遅延モードに比べて、一般的にはるかに良くなります。

開発者は Reflex SDK を統合すると、入力のサンプリングとゲーム シミュレーションを効果的に遅らせることができます。具体的には、ジャストインタイムで処理されるように、レンダリング作業を GPU に送信するタイミングを自動調整します。

また、この SDK には「低遅延ブースト」と呼ばれる機能も用意されています。この機能は GPU の省電力機能をオーバーライドして、CPU の負荷が高いときに GPU クロックを高く保ちます。ゲームが CPU バウンドのときでも、レンダリング時間が長くなると遅延が大きくなります。クロックを高い状態に保つとより多くの電力が消費されますが、GPU の使用率が相当少なく、CPU によって最終的なレンダリング作業が大きなバッチで投入される場合には、遅延をわずかに減らせることがあります。消費電力のトレードオフを望まない場合は、ブーストを有効にせず、Reflex の低遅延モードを使用することができます。

対戦シューティング ゲームはダイナミックです。GPU バウンドと CPU バウンドが忙しく切り替わります。爆発が起こってたくさんの粒子が舞い、ゲームが GPU バウンドになると、GPU のための作業を待ち行列に入れないことで Reflex SDK は遅延を小さく維持します。レンダリングが簡単で、ゲームが CPU バウンドであれば、GPU クロック周波数を高く保つことで Reflex SDK は遅延を小さく維持します。レンダリング パイプラインの状態に関係なく、Reflex SDK は特定の構成に対してレンダリング遅延をインテリジェントに減らします。Reflex SDK を導入すると、ゲーマーはいずれの設定も下げることなく、レンダリング遅延のスイートスポットに留まることができます。

対戦シューティング ゲームはダイナミックです。GPU バウンドと CPU バウンドが忙しく切り替わります。爆発が起こってたくさんの粒子が舞い、ゲームが GPU バウンドになると、GPU のための作業を待ち行列に入れないことで Reflex SDK は遅延を小さく維持します。レンダリングが簡単で、ゲームが CPU バウンドであれば、GPU クロック周波数を高く保つことで Reflex SDK は遅延を小さく維持します。レンダリング パイプラインの状態に関係なく、Reflex SDK は特定の構成に対してレンダリング遅延をインテリジェントに減らします。Reflex SDK を導入すると、ゲーマーはいずれの設定も下げることなく、レンダリング遅延のスイートスポットに留まることができます。

Reflex SDK の発表時点では、次のゲーム タイトルが 2020 年 9 月 17 日に公開される新しい Game Ready ドライバーで NVIDIA Reflex に対応する予定です: 『Apex Legends』、『フォートナイト』、『Valorant』さらに、次のゲーム タイトルが近日、NVIDIA Reflex に対応することが発表されました: 『Call of Duty: Black Ops Cold War』、『Call of Duty: Warzone』、『Cuisine Royale』、『Destiny 2』、『Enlisted』、『Mordhau

NVIDIA Reflex SDK は 2014 年の GeForce GTX 900 シリーズ製品までさかのぼり GPU をサポートします。ただし、GeForce RTX 30 シリーズの GPU の低遅延ブーストでは、若干高くクロック レーを維持して、遅延をさらに低減します。

SDK の仕組みをさらに詳しく知りたい人のために、レンダリング パイプライン、CPU/GPU バウンド、遅延が減る仕組みを詳細セクションでさらに詳しく取り上げます。

遅延のために強化されたコントロール パネル オプション

ウルトラ低遅延モード

ゲームが Reflex SDK のサポート対象でない場合でも、NVIDIA コントロール パネルで NVIDIA のウルトラ低遅延モードを有効にすることで、レイテンシを部分的に改善できます。コントロール パネルを開き、[3D 設定の管理]、[低遅延モード] の順に進み、[ウルトラ] オプションを選択してください。この記事で既に述べたように、これはレンダリングの遅延を減らすことができますが、パイプラインを完全に制御することはできません。

ゲームで NVIDIA Reflex 低遅延モードがサポートされている場合、ドライバーのウルトラ低遅延モードよりも、このモードを使用することをお勧めします。ただし、両方が有効の場合は、自動的に Reflex 低遅延モードが優先的に反映されます。

パフォーマンス最大化を優先

NVIDIA グラフィックス ドライバーには「電源管理モード」という名称のオプションが長いこと付属しています。このオプションを使用すると、ゲーマーは CPU バウンドの状況で GPU の動作を選択できます。GPU は作業でいっぱいのとき、常に最大パフォーマンスで実行されます。ただし、GPU が作業でいっぱいでないのなら、FPS を維持しながらも、GPU クロック数を減らすことで省電力を図ることができます。

Reflex SDK 低遅延モードと同様に、[パフォーマンス最大化を優先] モードは GPU の省電力機能をオーバーライドして、GPU が常に高いクロックで実行されることを許可します。この高いクロックは、より高い電力消費と引きかえに、CPU バウンドのインスタンスで遅延を減らすことができます。このモードは、電力に関係なく、パイプラインから最後のマイクロ秒まで遅延を絞り出したいゲーマーのために設計されています。

GeForce RTX 30 シリーズの GPU では、このクロック値を以前より高く設定できます。CPU バウンドの際に可能な絶対的に低いレンダリング遅延を GPU で目標にすることができます。以前の GPU を使用している場合でも、[パフォーマンス最大化を優先]を選択して基本周波数にクロックを維持できます。

GeForce Experience の自動チューニング

新しい GeForce Experience アップデートが 9 月に公開されます。ゲーム内オーバーレイ パフォーマンス パネルに新しいベータ機能が追加され、ワンクリックでレンダリング遅延が下がるように GPU をチューニングできます。

この高度な自動チューナーでは、カーブ上の各電圧ポイントで最大周波数の増加がないか GPU をスキャンします。GPU に最適な設定が見つかり、適用されると、時間の経過とともにチューニングを再テストして維持することで、常に安定した状態が得られます。

この素晴らしい新機能に関する詳細や使い方については、GeForce.com で随時お伝えします。

NVIDIA Reflex でシステム遅延を計測する

システム遅延について今まで多く語られなかった理由の 1 つは、正確に測定することが極めて難しかったことにあります。遅延を測定するには、測定の開始時間と終了時間を測定機器で正確に認識できなければなりません。

今まで、システム遅延を測定するには、高額かつ扱いにくいハイスピード カメラ、エンジニアリング機材、マウス ボタンが押されたタイミングを追跡するために改造したマウスと LED でのみ実現できました。1000 FPS の高速カメラがあれば、最小 1ms のレイテンシを測定できます。ただし、このようなセットアップには、最小限の機材だけでも約 7,000 米ドル以上必要です。それができたとしても、セットアップ後、測定のたびに約 3 分かかります。99.9% のゲーマーにとって無理な考えです。

NVIDIA Reflex Latency Analyzer

今秋発売される 360Hz G-SYNC ディスプレイには、NVIDIA Reflex Latency Analyzer という新機能が搭載されます。この革新的な追加機能を利用すると、ゲーマーは自分のシステムの応答性を測定できます。試合を始める前に、自分の PC の性能を完全に理解し、微調整できます。

 

この機能は、360Hz G-SYNC ディスプレイに搭載された専用の Reflex Latency Analyzer USB ポートにマウスを接続するだけで使用できます。ディスプレイの Reflex USB ポートは PC へのシンプルなパススルーであり、何の遅延も加えることなくマウス クリックを監視します。

Reflex Latency Analyzer は、マウス クリックを検出し、画面上のディスプレイ ピクセルが変化する (銃の発射など) が起こるまでの時間を測定することで動作し、完全なシステム遅延の測定を提供します。

GeForce Experience の新しいパフォーマンス オーバーレイにて、遅延指標がリアルタイムでレポートされます。9 月のリリース時に、遅延指標を表示するには、「パフォーマンス オーバーレイ」オプションに移動し、「遅延指標」 設定を有効にします。

NVIDIA Reflex Latency Analyzer では、システム遅延測定が「マウス遅延」、「PC + ディスプレイ遅延」、「システム遅延」に分けて表示されます。

どのようなマウスを使用しても、Reflex Latency Analyzer で PC とディスプレイの遅延を計測できます (Bluetooth マウスを除く)。LogitechRazerASUS から発売される互換性のあるマウスを使用すれば、周辺機器の遅延を測定したり、完全なエンドツーエンドのシステム遅延を取得したりすることができます。

さらに、マウスが GeForce Experience で認識される場合に参照できる、マウスの平均遅延に関するオープン データベースを公開する予定です。将来的には、コミュニティがデータベースにマウスを追加できるようになります。詳細ついては、今後発表されます。

執筆時点では、マウス パートナー 3 社、ASUS、Logitech、Razer が NVIDIA Reflex Latency Analyzer への対応を発表しています。NVIDIA Reflex Latency Analyzer の互換性についてアナウンスは、各パートナー会社の Web サイトやソーシャル メディアを定期的にご確認ください。また、秋には、ASUS、ACER、Dell、MSI から発売される 360Hz G-SYNC ディスプレイにご注目ください。NVIDIA Reflex Latency Analyzer テクノロジが組み込まれています。

NVIDIA Reflex ソフトウェア指標

遅延の測定を早く始めたいなら、新しい 360Hz ディスプレイを入手する前でも実施できます。NVIDIA Reflex SDK が組み込まれているゲームであれば、ゲーム遅延とレンダリング遅延の両方の指標をゲーム内の統計に追加できます。この測定は体感する遅延のすべてではありませんが、遅延最適化への道を歩み始めることができます。

また、GeForce Experience にパフォーマンス オーバーレイ機能が追加されました。あらゆるゲームでレンダリングの現在の遅延を表示できます。レンダリングの現在の遅延とは、レンダリング待ち行列と GPU レンダリングを通過する現在のコールを追跡するものです。これはフレームの最終コールであるため、レンダリングの現在の遅延の大きさは、NVIDIA Reflex SDK で測定されるレンダリング遅延よりわずかに小さくなりますが、レンダリング遅延がどの程度であるか十分に理解できます。今後のアップデートで GeForce Experience にレンダリング遅延の機能が追加される予定です。

この機能が今月下旬に公開されたら、GeForce Game Ready ドライバーと GeForce Experience を最新版にアップデートし、[パフォーマンス] メニューを選択し、[遅延指標] 設定を選択して [パフォーマンス オーバーレイ] を有効にするだけです。

小さい遅延でエイムをトレーニングする

遅延測定ツールに加え、NVIDIA は KovaaK 2.0 を開発した The Meta と提携して、今後のクライアント アップデートで新しい NVIDIA Experiments モードを導入します。このモードでゲーマーは腕を磨き、パフォーマンスを向上させることができます。

サンドボックスまたはトレイナーのどちらからでも NVIDIA Experiments モードに入ることができます。NVIDIA Experiments モードに入ったら、関心のある実験を選択します。さらに、NVIDIA Reflex SDK を KovaaK 2.0 に統合したほかに、システム遅延の高低の違いをゲーマーが体験できるようにするためのいくつかのその他のテクノロジも提供しています。

実験に参加することはエイム技術を磨くだけでなく、e スポーツの重要な研究に貢献することになります。KovaaK 2.0 の The Meta と提携したことで、NVIDIA は対戦ゲームの世界における伝説を検証し、打破できます。たとえば、最初の実験の 1 つは、『Valorant』の標的の輪郭の色についての議論に基づいて、標的の色の選択嗜好を科学的に調査します。

その他の実験では、完了するのが困難なタスクを与え、さまざまな遅延の範囲をテストします。The Meta の KovaaK 2.0 を Steam で今すぐご確認ください。NVIDIA Experiments モードのリリースについても随時お伝えします。

次のレベル: システム遅延 - エキスパート モード

それでは、ふたを開けて、この仕組みをさらに詳しく見てみましょう。このセクションでは、マウス クリックが実際に画面上のピクセルに到達する仕組み、ゲームとレンダリング パイプラインの概念、CPU バウンドと GPU バウンドが遅延に与える影響、レンダリング パイプライン内のオーバーラップ、そして最後に、システム上で発生していることを視覚化するいくつかのツールを取り上げます。

操作がディスプレイに反映される仕組みの分解説明

それでは、クリックは実際に、どのようにディスプレイに到達するのでしょうか?下のグラフはパイプラインの各ステージを分割したものです。これらのステージは一部重なり合っていますが、左から右への順に開始し、完了する必要があります。

それでは、上の図の 2 行目の各ボックスを分析しましょう。ボックスの大きさは目盛りではありません。また、わかりやすくするためにマウスだけ取り上げますが、下の内容はすべて、PC に接続されるあらゆる USB 周辺機器に当てはまります。

  • マウス HW - これは、ケーブル経由でイベントを送信する準備がマウスにできているときの、最初の電気的接触として定義されています。マウス内には、マウスのボタンを押すときに遅延が加わるルーチンがいくつかあります (デバウンスなど)。デバウンス ルーチンは重要であり、不要なマウス クリックを防ぐことに注意してください。このような余計なクリックは「ダブルクリック」と呼ばれることもあります。デバウンス ルーチンが厳しすぎると、1 回ではなく 2 回のクリックが送信されます。そのため、遅延だけがマウス パフォーマンスの重要な属性ではありません。
  • マウス USB HW - デバウンスが終了すると、マウスはパケットを送信するために次のポールを待って必要があります。この時間が USB HW で反映されます。
  • マウス USB SW - マウス USB SW は、USB パケットの処理に OS とマウス ドライバーが必要とする時間です。
  • サンプリング - クリックはマウスのポーリング レートに基づいて OS に入ってきます。そのポイントでは、ゲームによってサンプリングされる次の機会をマウスは待つ必要があります。この待機時間がサンプリング遅延と呼ばれています。この遅延は CPU フレームレートに基づいて増えたり、減ったりすることがあります。
  • シミュレーション - ゲームでは、ゲーム内世界の状態が絶えず更新しなければなりません。この更新は「シミュレーション」とも呼ばれています。シミュレーションには、アニメーションの更新、ゲームの状態、プレイヤーの入力による変化などが関連します。シミュレーションは、マウス入力がゲームの状態に適用される場所です。
  • レンダリング送信 - シミュレーションが次のフレームの配置を算出すると、グラフィックス API ランタイムにレンダリング作業を送信し始めます。今度はそのランタイムがレンダリング命令をグラフィックス ドライバーに渡します。
  • グラフィックス ドライバー - グラフィックス ドライバーは、GPU と通信し、グループ化された命令を GPU に送信することを担当します。グラフィックス API によっては、ドライバーがこのグループ化を開発者の代わりに行うこともあれば、レンダリング作業のグループ化を開発者が担うこともあります。
  • レンダリング待ち行列 - GPU が実行する作業をドライバーが送信すると、その作業はレンダリング待ち行列に入ります。このレンダリング待ち行列は、GPU 向けの作業を常にバッファリングさせることで GPU に連続的に作業を与えるように設計されています。FPS (スループット) の最大化に役立ちますが、遅延が発生する可能性があります。
  • レンダリング - 1 つのフレームに関連付けられているすべての作業を GPU がレンダリングするために必要な時間です。
  • 構成 - ディスプレイ モード (フルスクリーン、ボーダレス、ウィンドウ表示) によっては、OS の Desktop Windows Manager (DWM) は、特定のフレームのためにデスクトップの残り部分を合成するために、追加のレンダリング作業を送信する必要があります。そのため、遅延が増える可能性があります。合成の遅延を最小限に抑えるために、常に専用のフルスクリーン モードを使用することをお勧めします!
  • スキャンアウト - 合成が完了すると、最終的なフレーム バッファを表示する準備ができます。次に GPU は、フレーム バッファの表示準備ができたことを信号で伝え、スキャンアウトのための読み込み元になるフレーム バッファを変更します。VSYNC がオンの場合、ディスプレイの VSYNC を待たなければならないため、フレームバッファのこの「フリップ (切替え)」で止まることがあります。準備ができると、GPU は、ディスプレイのリフレッシュ レート (Hz) に基づき、ライン単位で次のフレームをディスプレイに送信します。スキャンアウトはリフレッシュ レートの機能であるということを考慮して、「ディスプレイ遅延」に含めています。
  • ディスプレイ処理 - ディスプレイ処理は、入ってきたフレーム (スキャンライン) を処理し、ピクセル応答を開始するためにディスプレイが必要とする時間です。
  • ピクセル応答 - これはピクセルがその色を変えるために必要とする時間です。ピクセルは実際には液晶であり、変化に時間がかかります。ピクセル応答速度は必要な変化の強さによって変わることがあり、パネル テクノロジにも依存します。

GPU バウンドの遅延パイプライン

クリックが画面に到達する方法を理解できたところで、パフォーマンスに移りましょう。ゲームをプロファイリングするとき、しばしば、パフォーマンスの特性が GPU バウンドなのか CPU バウンドなのか判断しようとします。これはシステム パフォーマンスを理解する上で極めて役立ちますが、実際のゲームは GPU バウンドと CPU バウンドの間を行ったり来たりします。

それでは、VSYNC がオフになっている GPU バウンドのケースから始めましょう。

この例では、わかりやすく、パイプラインを「周辺機器」、「CPU」、「レンダリング待ち行列」、「GPU」、「ディスプレイ」の 5 つのメイン ステージに分割しています。

Frame 4 を調べ、各ステージで何が起こっているのか観察しましょう。

  • 周辺機器 - マウス入力やキーボード入力はいつでも開始されます。ユーザー次第です。この例では、CPU に入力を受け取る準備ができる前にマウスがクリックされたため、入力イベントは待機になります。駅に着いて次の電車を待っているようなものです。
  • CPU - CPU (シミュレーション) は通常、Present Block (現在のブロック) と呼ばれているものの完了後に始まります。GPU バウンドの場合、CPU の作業実行は速くなります。つまり、GPU より先に実行できます。ただし、ほとんどのグラフィックス API (DX11、DX12、Vulkan など) では、CPU レンダリング サブミッション スレッドで先んじて実行できるフレーム数には限りがあります。上記のケースでは、CPU は 2 フレーム先を実行できます。ドライバーが GPU への作業送信を終えると、CPU セクションは完了となります。実際には、レンダリング待ち行列と一部重なりますが、そのことは後で説明します。
  • レンダリング待ち行列 - これは他のあらゆる行列や待ち行列と同じであると考えてください。行列に入ってきた最初のフレームが最初に処理されます。CPU が次の作業を送信するタイミングになったとき、GPU が前のフレームに取り組んでいる場合、CPU がそのレンダリング作業をレンダリング待ち行列に入れます。この待ち行列は、GPU に絶えず命令が届くようにする上で役に立つ場合があり、また、フレームタイムの進行障害を取り除くことがありますが、遅延を大幅に増やす可能性があります。
  • GPU - これはフレームの実際の GPU レンダリングです。GPU バウンドの場合、GPU はボトルネックとなる構成要素であるため、作業は連続的になります。
  • ディスプレイ - これは VSYNC がオフのケースです。GPU がレンダリングを完了すると、ディスプレイがそのスキャン プロセスにあるかどうかに関係なく、新しいバッファがすぐにスキャンアウトされます。それによってテアリングが発生しますが、遅延が最も小さいので、ゲーマーは多くの場合、これで良しとします。今後の VSYNC および G-SYNC に関する記事についても随時お伝えします。

ここまでの内容が理解できたなら、GPU がボトルネックであることは明らかです。レンダリング待ち行列が命令で山積みになり、CPU が先に実行されます。上記の画像からは、フレームタイムが FPS を測定する方法であることがわかります。このケースでは、GPU が速ければ、フレームレートが高くなるでしょう。

また、システム レイテンシを確認できます。マウスが最初にクリックされたタイミングから始まり、表示が完了したタイミングまでです。レンダリング待ち行列かつ現在のブロックの前に実行されるゲーム、生成される新しいフレームの送信が遅れることが原因で、GPU バウンドの場合に遅延は一般的に大きくなります。

NVIDIA Reflex SDK 遅延パイプライン

それでは、GPU バウンドのパイプラインに対する NVIDIA Reflex SDK の動作について見てみましょう。

ご覧のとおり、レンダリング待ち行列はほとんど消えました。ただし、Reflex SDK がそれを無効にするのではありません。空にするだけです。でも、これはどのような仕組みなのでしょうか?

基本的に、ゲームが先んじて実行できないように、CPU のペースを良くすることができます。加えて、GPU の作業パイプラインにアイドル状態を作り出すことなく、GPU が作業を開始するまさにそのタイミングで GPU に作業を送信できます。また、CPU の作業を遅らせて開始することで、可能な限り最後のミリ秒で入力をサンプリングする機会を与えることで、さらに遅延を減らします。

さらに、SDK によって使用される方法でレンダリング待ち行列が減らすと、ゲームの遅延も小さくなり始めます。この遅延の減少は、GPU バウンドのシナリオでレンダリング待ち行列によって引き起こされるバック プレッシャーが減ることに起因します。

遅延を以前に最適化したことがある人にしてみれば、優れたゲーム内フレームレート リミッターを利用して遅延を減らすようなものです。優れたゲーム内フレームレート リミッターは正しい位置でゲームを止め、遅延と CPU のバックプレッシャーを減らします。

ただし、NVIDIA Reflex を使用すれば、特定のフレームレートに固定せず、フレームレートは上限より速く実行でき、遅延がさらに減ります。これは、遅延のスイート スポットを常に維持する「ダイナミックな」フレームレート リミッターと考えることができます。

CPU バウンドの遅延パイプライン

GPU バウンドの状況で Reflex 低遅延モードを使用していると、GPU が作業でいっぱいでフル活動している状態でも、あたかも CPU バウンドであるかのようにパイプラインが振る舞います。実際の CPU バウンドのパイプラインがどのようなものか見てみましょう。

このグラフからわかるように、フレームレートは CPU によって制限されます。CPU は GPU に先んじて実行できないため、このケースでもレンダリング待ち行列はありません。概して、CPU バウンドは GPU バウンドよりも遅延が小さくなります。

この場合、GPU を速くしたとき、FPS は増えませんが、遅延は小さくなります。VSYNC がオフか、G-SYNC が有効になっているとき、より高速な GPU は、レンダリングした画像をより速くディスプレイに送信できます。

設定を下げるとゲームの応答性が良くなるのはなぜか不思議に思ったことがあるなら、これがその理由です。設定を下げると、多くの場合、CPU バウンドの状況が作り出され (待ち行列がなくなる)、同時に GPU レンダリング時間が短くなり、遅延がさらに小さくなります。

Reflex 低遅延モードの場合、ゲーマーは設定を初期値に戻す必要がありません。レンダリング待ち行列を効果的に減らすことができるため、余計なレンダリング作業は GPU レンダリング時間を増やすだけです。

また、CPU バウンドであっても、Reflex 低遅延モードにはブースト設定もあります。これは遅延わずかに下げることを優先して省電力機能を無効にします。GPU 使用率が低い CPU バウンドのケースでは、フレームを可能な限り速やかにディスプレイに届けるよう、GPU クロックを高く保ち、処理をスピードアップします。一般的に、このブースト設定からのメリットはわずかなものですが、パイプラインから遅延の最後のミリ秒まで絞り出すことに貢献します。

PC の遅延とオーバーラップの詳細

さらに深く掘り下げてみましょう。1 個のフレームを見てください。ただし今回は、完全にオーバーラップしているパイプラインを見てください。

ご覧のように、オーバーラップの大半は、シミュレーションから GPU レンダリング完了までの間に、PC 遅延の中心で発生します。しかし、なぜこのようになるのでしょうか?

フレームは、ドローコールと呼ばれている作業の小さな単位でレンダリングされます。この呼び出しは最終的にグループ化され、作業のパケットにまとめられます。その作業パケットはその後、グラフィックス ドライバーによって GPU に送信され、レンダリングされます。これによって、各ステージの作業を前のステージが完了する前に開始できます。フレームがバイトサイズの単位に分割されるのです。

作業はパイプラインを通過し、最終的にフレーム バッファに書き込まれます。フレームが完全にレンダリングされるまで、これが続きます。レンダリングの完了後、バック バッファがスワップ チェーンの別の利用可能なバッファに交換され、スキャンアウトに送られます。

レンダリング遅延やゲーム遅延を見るとき、これを理解することが重要です。ゲーム遅延とレンダリング遅延はしばしば重なり合います。つまり、この 2 つを加算するだけでは正しい遅延数値を算出できません。

まとめ

システム遅延は、ゲームの応答性を定量的に測定するものであり、FPS ゲームにおいてプレイヤーのエイム精度に影響を与える基本要因です。NVIDIA Reflex を利用すれば、開発者とプレイヤーはシステム遅延を最適化し、初めてでもシステム遅延を簡単に測定できます。

まとめると、NVIDIA Reflex は遅延テクノロジの完全なセットを提供するものです。

  • 低遅延テクノロジ:
    • NVIDIA Reflex SDK - GPU 負荷の高い状況でより低い遅延を実現する NVIDIA Reflex 低遅延モードを有効にするために使用される開発者 SDK。
    • 遅延最適化ドライバーのコントロール パネル設定 - 強化された「パフォーマンス最大化を優先」モードと「ウルトラ低遅延」モード
    • GeForce Experience のパフォーマンス チューニング - ワンクリックで GPU オーバークロックする自動チューナー
  • 遅延測定ツール:
    • NVIDIA Reflex SDK 指標 - ゲーム遅延とレンダリング遅延を示すもの。開発者はゲーム内で遅延指標を表示できます。
    • NVIDIA Reflex Latency Analyzer - 360Hz G-SYNC ディスプレイの新機能であり、初めてでも完全なエンドツーエンドのシステム遅延を測定できます。
    • GeForce Experience パフォーマンス モニタリング - 遅延などのパフォーマンス指標をリアルタイムで表示するサイド バーとゲーム内オーバーレイ。

NVIDIA Reflex は、応答性に優れたゲーミングを体験するための機能です。これを皆様にお届けできることを NVIDIA は嬉しく思っております。NVIDIA は遅延を減らすことに専念しており、引き続き NVIDIA Reflex を改良し、パートナー エコシステムを拡大する予定です。

お客様のご意見・ご要望をお待ちしております!Reflex コミュニティ フォーラムにアクセスし、遅延についてチャットしたり、NVIDIA Reflex プラットフォームについて質問をお寄せください。

NVIDIA Reflex 低遅延モードのドライバー サポートは、9 月 17 日リリースの Game Ready ドライバーより利用可能になります。パートナーのゲーム会社は自社製品に今年中にゲーム サポートを追加する予定です。360Hz G-SYNC ゲーミング モニターは今秋から ACER、ASUS、Dell、MSI より発売される予定です。