NVIDIA,VRパフォーマンス分析ツール「FCAT VR」発表

NVIDIA,VRパフォーマンス分析ツール「FCAT VR」発表
 NVIDIAはVR環境用のパフォーマンス分析ツール「FCAT VR」を発表した。これはVR環境における表示の安定性などを計測できるツールだ。

 同社が過去に発表していた非VR版のFCATは,グラフィックスカードのディスプレイ出力を外部PCから高フレームレートでキャプチャしてフレームの状況を比較するという力技のシステムだった(関連記事)。しかし1秒間単位でのフレーム表示数だけでは分からない,フレームの安定性(ドロップフレームや実際には表示されていないフレームなど)を確実に測定できるシステムだった。一応ベンチマークツールに分類されるが,ドライバの性能を見るツールというのが正解だろう。
 FCATはAMDのドライバが実際にはフレームを表示していないのにフレームをカウントするという仕様だったことを暴く意図が強かったように思われるが,特定の高速キャプチャカードや外部PCといったハードウェア必須なので誰にでもできるテストだったとは言いがたかった。

 今回発表されたFCAT VRも画像出力をキャプチャして比較するという意味で基本的な考え方自体はFCATと似ているが,外部キャプチャを使用せず,実行機でそのままキャプチャが行われるので利用しやすさはかなり上がっている(それでも手軽とは言えないかもしれないが)。
 もちろん,キャプチャの分だけ負荷がかかり実際のゲームの状態とは異なる可能性はあるのだが,同社のキャプチャツールであるShadowPlayやGPU内のハードウェアエンコーダの運用実績から見てあまり問題がないとされたのだろう。実際のところ,ShadowPlayの負荷は非常に低い。

 従来のFCATがドライバのベンチマークツールとしての側面が強かったのに対して,FCAT VRは開発ツールとしての側面が強いように思われる。対応しているVRヘッドセットはRiftとViveの2種類だけであり,GeForceドライバの機能を使っているので,利用できるグラフィックスカードはNVIDIA製に限られる。NVIDIA製GPU用に主要VRデバイスでゲームを最適化するためのツールと思っておくのがいいだろう。

 そんなFCAT VRで判定できるのはどのような異常かが公式blogで説明されている。
 まず,VRレンダリングではVR画像のレンダリング後,歪曲を施すワープ処理を行われて映像出力される。Async TimeWarpの導入以降は,バックバッファへのレンダリング状況いかんを問わず,一定のフレーム時間(11.1ms@90fps)で利用可能なフレームバッファからワープ処理が行われる。基本事項として以上のことを念頭に置いておこう。

正常なパイプライン

●ドロップフレーム
 ドロップフレームというのは,分かりやすい処理落ちだが,上記のように基本的にワープ処理が行われるので,前フレームと同じ状態の映像が出力されるわけではないという点に注意が必要だ。前フレームと同じ画像を新たな角度に合わせてワープし直した映像が出力される。レンダリングし直すのではなく,画像の切り出し位置を変えることで便宜的に代替する手法だ。ゲーム内は一瞬停止しているものの,首の動きに合わせた映像が出てくるので,違和感は感じにくい。


●ワープミス
 一方,ワープ処理がフレーム時間内に終了しなかった場合は,一般的な処理落ちと同様に,前のフレームと同じ映像がそのまま表示される。VRヘッドセットでもカクつきが認識されるはずだ。


●合成フレーム
 Oculus VRがOculus Connect 4で発表した新技術がAsync SpaceWarpだ。Async TimeWarpが首振りによる視野の追従性を重視したものだったのに対して,Async SpaceWarpは,フレーム内の動きを補間する技術となる。PSVRの倍速化もだいたい同じ技術だと思われる。
 一般的なVRヘッドセットは完璧な90fpsでの表示を要求するのだが,ミドルクラスのGPUではVR画像のレンダリング要求に応えることが難しいことがある。そういった場合,上記のドロップフレームが多くなる。TimeWarp処理で最低限の対応はされるものの,ゲーム内のカクつきは避けられない。そこで低フレームレートの映像から動き予測などを駆使し,90fps映像に変換して出力するのがこの技術となる。出力される映像には実際に計算してレンダリングされたフレームと補間合成されたフレームが混在することになるが,FCAT VRでは合成フレームがどれくらいできているのかを計測できるわけだ。


 公式サイトからダウンロードできるツールは,Capture,Analyser,HW_Overlayの3つのフォルダに分かれており,さらにPythonの実装であるAnacondaをインストールする必要がある。RiftとViveで実装方法が異なるので少し注意が必要だ。利用環境は明記されていないものの,「GeForce 10」のタブの下にあるツールであり,GeForce 10シリーズ以外で正しく動作するかは未確認である(同じフォルダにあるFCATは旧シリーズでも動作する)。
 インストールしてCaptureを起動した状態で,ゲームを動かし,ホットキー(デフォルトではScrl Rockキー)を押すことでキャプチャが開始される。キャプチャ時間などはあらかじめ設定しておく必要がある(標準では60秒間)。キャプチャされた映像はローカルストレージに保存されるので,それをAnalyserで解析していくことになる。

 すでに述べたようにFCAT VRはNVIDIA製GPUとRift,Viveにしか対応せず,現状ではOpenGLにも対応していないものの,PC用VRゲームを開発するうえでは十分に活用できるものと言えるだろう。体感テストに頼りがちだった最適化作業の合理化が期待される。
 Async SpaceWarpはVRゲームでの推奨GPUを大きく引き下げ,GeForce GTX 960クラスの利用を可能にするとされている。Riftの価格引下げもあり,今後はローエンドVR環境の利用者も増えてくる可能性が高い。性能格差が大きくなることから,ローエンド機への対応と同時にハイエンド環境での高画質化も望まれるようになるだろう。FCAT VRのようなパフォーマンス解析ツールは,GPUごとの推奨グラフィックスオプションを決める際にはきわめて有用となるだろう。

Free NVIDIA FCAT VR Performance Analysis Tool Available Now For Download