お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2016/12/12 00:00

テストレポート

AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

DirectX 12世代のタイトルは,気軽にフレームレート計測したりスクリーンショットを撮ったりできないのが難点だ。画面は「Forza Horizon 3」より
画像集 No.002のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
 DirectX 12(※正確にはDirect3D 12だが,慣例に従ってDirectX 12と表記する)やVulkanといった最新世代の3DグラフィックスAPIを採用するゲームアプリケーションを前にすると,それまでフレームレート計測の定番として君臨してきた「Fraps」が役に立たないというのは,3Dゲームのベンチマークを行いたいという一部の人々にとっては悩みの種であった。

 その解決策の1つが,Intelの開発した「PresentMon」と,それを使いやすくした「PresentMonLauncher」である。
 PresentMonLauncherについては2016年8月8日掲載の記事が詳しいが,簡単に振り返っておくと,これは,Windows 10に組み込まれているイベントトレース機能を使い,3Dグラフィックスの描画タイミングをトレースすることで,フレームレートの計測を行うもの。しかしPresentMon自体が,DirectX 12 APIを用いてレンダリングされた画像を表示する「Present」メソッド周りのデータを出力する開発者向けツールということもあり,エンドユーザーの立場からすると,PresentMonLauncherであっても使い勝手は今ひとつだ。

 そんなこんなで,DirectX 12やVulkanベースのタイトルでベンチマークを行うのはなかなか大変なのだが,その状況を一変させるかもしれないツールが,「Radeon Software Crimson ReLive Edition」と一緒に,AMDから――より正確を期すならば,オープンソースのGPU対応アプリケーション開発支援フレームワークとしてAMDが提唱する「GPUOpen」から登場し,GitHubで入手できる「OCAT」(Open Capture Analystics Tool,オーキャット)である。
 NVIDIA製のフレームレート計測システム「Frame Capture Analysis Tool」(略称:FCAT)を意識した印象も受ける名称だが,果たしてこのツールは「使える」のか否か。ちょっと検証してみたい。

GitHubのOCATページ


GitHubから入手したインストーラを実行すると「WindowsによってPCが保護されました」というダイアログが出るので,「詳細情報」→[実行]ボタンという流れで進む
画像集 No.003のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か? 画像集 No.004のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
するとインストーラが開くので,あとは画面の指示に従えばOKだ。インストール先を変更したい場合はトップ画面で[Options]ボタンをクリックすればいい。ライセンス条項をよく読んだら,「I agree to the license terms and conditions」にチェックを入れたうえで[Install]ボタンを押す
画像集 No.005のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か? 画像集 No.006のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
インストーラは「Visual C++ 2015」の再配布可能版をセットアップしつつ,処理を進めていくので,しばらく待つ。以上でインストールは完了だ
画像集 No.007のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か? 画像集 No.008のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?


Fraps感覚で利用できるOCAT。フレームレートのリアルタイム表示も可能


 OCAT自体は,PresentMonと同じく,Presentメソッドを用いてフレームレートの計測を行うツールだ。今回スクリーンショット取得に用いたのはバージョン0.9.9 Beta(Version 0.9.9.26451)だが,起動すると,以下のとおり「OCAT Configuration」が開くようになっている。

OCAT Configuration
画像集 No.009のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 各段のタイルはそれぞれ,クリックすることで変更を行えるようになっている。それぞれのタイルの意味は下にまとめてみたので,参考にしてほしい。

  • Recording Hotkey:計測開始に使うホットキーを変更できる。デフォルトは[F11]キー。「修飾キーと何かのキーの組み合わせ」のような複数のキーを設定することはできない
  • Recording Time Period in Seconds:計測時間を秒単位で指定できる。デフォルトは「60」秒
  • Capture All Applications / Capture Single Application:計測対象となるアプリケーションの指定。デフォルトは「Capture All Applications」で,アクティブになっているアプリケーションの計測を行う。「Capture Single Application」を選択するとウインドウ表示が少し変わるので,そこから「Select target executable」をクリックしてダイアログを出し,実行ファイルを指定することで,任意のアプリケーションのみを計測対象とすることができる
  • Write performance summary / Write detail perfomance report / Record performance for all processes:Write performance summaryは,有効にすると,計測結果の要約として「平均フレームレート」「平均フレームタイム」(※1フレームを描画するのに必要な時間の平均値)「フレームタイムの99%パーセンタイル値」(※突出した最大値を除く,全体の99%がこのフレームタイム内に収まることを意味する)が概要データファイルとして出力されるようになる。Write detail performance reportは有効化すると,Presetメソッドに関する詳細なデータがレポートファイルに出力されるようになる。Record performance for all processesは有効化すると,ゲームを複数起動している場合などで,その複数のプロセスに対して計測を行い,プロセスごとにレポートファイルが生成されるようになる。無効化すると,対象はアクティブウインドウのみとなる仕組みだ。いずれもチェックボックスはデフォルトで有効
  • Start:利用開始用のボタン。クリックすると,ゲーム画面の右上にリアルタイムでフレームレートとフレームタイムが表示されるようになる

画像集 No.010のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
Capture Single Applicationを選択し,実行ファイルを指定したところ。「Target executable」に,指定した実行ファイルが表示される
画像集 No.011のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
Startのタイルをクリックしたところ。ゲーム画面の右上に,こんな感じでフレームレートとフレームタイムがオーバーレイ表示となる

 Startのタイルをクリックして,ゲーム画面の右上にフレームレートとフレームタイムが出た状態で,設定したホットキーを押すと,追加で「Capture Started」と表示が出て実際の計測が始まり,あらかじめ指定した時間が経過すると,「Capture Ended」と合わせて計測結果概要が表示される。この概要はOCAT ConfigurationでWrite performance summaryにチェックを入れたときに書き出される概要データファイルの内容そのものなのだが,いちいち結果ファイルを開かずとも,画面上で数字を確認できるのは,使ってみると非常に便利だ。

計測中の様子(左)と計測結果(右)のそれぞれ
画像集 No.012のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か? 画像集 No.013のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 ただし,筆者が確認したところ,GeForce搭載環境ではDirectX 12モードの「Battlefield 1」(以下,BF1)でフレームレートとフレームタイムのリアルタイム表示が機能せず,またUWP(Universal Windows Platform)準拠である「Forza Horizon 3」では,GeForce,Radeonともにリアルタイム表示が機能しなかった。このあたり,まだ発展途上のアプリケーションである感は否めない。

 ちなみに,概要データファイルおよびレポートファイルは,Windowsをデフォルトで構成しているなら,「C:\ユーザー\(ユーザー名)\ドキュメント\OCAT\Recordings」に書き出されるのだが,csv形式となるレポートファイルは,その構成がPresentMonのログファイルとまったく同じ。なので,PresentMonLauncherにOCATのレポートファイルを読み込ませれば,最小フレームレートを得ることが可能だ。OCAT自体に,最小フレームレートを算出する機能はないので,この点は憶えておくといいだろう。


DirectX 12とVulkanで,OCATとPresentMonLauncher,さらにFCATを比較。テストする前からOCATの優位性が判明!?


 では,OCATのスコアはどれほど信頼できるのか,今回は「GeForce GTX 1080」「GeForce GTX 1060 6GB」「GeForce GTX 1050 Ti」(以下,GeForce表記を省略)と,「Radeon R9 Fury X」「Radeon RX 480」「Radeon RX 460」(以下,Radeon表記を省略)といった具合に,現行世代のハイエンド,ミドルハイクラス,エントリーミドルクラスを両陣営から3製品ずつ用意した。それぞれ,OCATで平均および最小フレームレートを計測したうえで,そのスコアをPresentMonLauncher,そしてFCATのスコアと比較し,計測結果が信頼に足るものか見ていこうというわけである。

 テスト環境はのとおりで,GTX 1050 Tiカードとして用意したMSIの「GeForce GTX 1050 Ti 4G OC」と,RX 460カードとして用意したTul製「PoweColor Radeon RX 460 2GB GDDR5」(型番:AXRX 460 2GBD5-DH/OC)は,メーカーレベルで動作クロックを引き上げたクロックアップモデルであるため,今回はMSIのオーバークロックツール「Afterburner」(Version 4.3.0)で,動作クロックをリファレンスレベルにまで下げて利用していることをお断りしておきたい。
 なお,テストに用いるグラフィックスドライバは,「GeForce 376.19 Driver」と「Radeon Software Crimson ReLive Edition 16.12 Pre-Release」。いずれもテスト開始時点の最新版で,後者はAMDから全世界のレビュワーに対して配布されたものである。

画像集 No.014のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 今回,テストのために用意したのは,DirectX 12モードのBF1と,Vulkanモードの「DOOM」,そしてDirectX 12モードのForza Horizon 3……のはずだったが,まずPresentMonLauncherは,Forza Horizon 3がUWPアプリであることが原因なのか,プロセスをフックすることができず,動作しなかった。
 さらにFCATは,計測に必要な「カラーバーを表示させるオーバーレイツール」(関連記事)が,なんとBF1以外では動作せず。NVIDIAに問い合わせたところ,「Vulkanはサポート対象外。DirectX 12はサポートしており、『Forza Motorsport 6: Apex』での動作は確認済みだが,Forza Horizon 3で動作しない理由は分からない」という回答だったので,現状,どうしようもない状況だ。

 よって,「OCATとPresentMonLauncher,FCATを比較する」という目的を完遂できたのは,今回のテスト対象だとBF1だけということになる。いきなり互換性の面でOCAT大勝利という言い方もできるだろう。

 話は前後するが,具体的なテスト方法を紹介しておきたい。
 BF1は,グラフィックス設定プリセット「中」もしくは「最高」を選択し,キャンペーンモードの「4. ランナー」からステージ2の「THE RUNNER」を利用。このマップにおいて1分間,一定のルートを移動し,その間のフレームレートを計測する。自分で操作するという不確定要素があるため,2回テストを実施し,その平均をスコアとして採用することにした。

操作可能になった時点から計測をスタートし,そこから右に迂回しながら前進。道中の敵を無視して走り続けて,前線が立て籠もっている遺跡に向かう。遺跡に着くぐらいでちょうど1分が経過するので,そこで計測終了だ
画像集 No.015のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か? 画像集 No.016のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 DOOMでは,グラフィックス設定プリセット「中」「ウルトラ」の2つを選択。テストにあたっては,アーケードモードの「UAC」ステージにおいて,1分間一定のルートを移動し,その間のフレームレートを計測する。
 実際に操作してみると,敵の動きなどがAIにより毎回異なっても,スコアに大きなバラつきは見られなかったが,こちらも「実際に操作する」という不確定要素が入るため,やはり2回テストを行い,その平均をスコアとして採用する。

こちらも操作可能になった時点から計測を開始する。UACステージの外周を,敵を倒しながら右回りに進む。2周半ぐらいしたところで1分が経過するので,そこで計測終了となる
画像集 No.017のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か? 画像集 No.018のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 そしてForza Horizon 3では「SURFERS PARADISEフェスティバルサイト」近くを走る海岸沿いの一直線の道路を利用する。
 この道路の両端には速度のランキングを行うスピードゾーンが2か所設けられている。そこで,片方のスピードゾーンに進入したところで計測を開始すると,もう片方のスピードゾーンに差し掛かったあたりでちょうど1分となる。ほぼ一直線なので,ほかの車を避ける必要はあるが,基本的に前進の操作だけで済むというわけだ。

 こちらでは,グラフィックス設定プリセットは「ミディアム」と「ウルトラ」を選択。Forza Horizon 3の場合は,天候によってスコアが大きく変わるため,雨だった場合は,しばらく時間を置き,晴れもしくは曇りの環境下でのみテストを行うことにした。

SURFERS PARADISEフェスティバルサイトから始まるので,まず左に行き,スピードゾーンの開始地点を目指す。そこに着いたら反転して,計測開始しつつスタート。1分間走り続けると,もう1つのスピードゾーンに達するので,そこで計測終了となる。そして,そこから再度折り返し,1分間計測する。つまり,往復で1分間ずつ計測するというわけだ
画像集 No.019のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か? 画像集 No.020のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 テスト解像度は1920×1080・2560×1440・3840×2160ドットの3パターンだ。
 なお,これは言うまでもないことだとは思うが,念のため書いておくと,今回のテストは,取り上げるGPU間の優劣を語るためのものではない。あくまでも,GPUごとに,ベンチマークテストの傾向がどう出るかを見るためのものなので,くれぐれも,異なるGPU間でスコアの比較をしないようお願いしたい。


OCATのスコアに違和感なし


 まずは,OCATとPresentMonLauncher(以下,グラフ中のみ「PML」),FCATのすべてでスコアを取得できたBF1から見ていこう。
 グラフ1〜6はBF1の結果で,あえていえばOCATのスコアが低め,FCATのスコアが高めであるものの,総じて,平均フレームレート,最小フレームレートとも,それほど大きな違いは出ていない。少なくともOCATでRadeonが露骨に有利とか,そういったことはないと断言してしまっていいだろう。
 なお,本稿の主旨から外れることを断って続けると,「最高」プリセットでは,GTX 1080でも最小フレームレートは40fpsを超えるのがやっというレベルで,BF1は“重い”場所だと相応にGPU性能を必要とする印象である。

画像集 No.021のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.022のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.023のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.024のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.025のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.026のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 フレームレートの推移自体にも違いはないのか。BF1でOCATとPresentMonLauncher,FCATのそれぞれが記録したデータを見てみよう。
 グラフ7は「最高」プリセットの解像度1920×1080ドット,つまりグラフ4のスコアを生んだフレームレートの推移を代表して追ったものだ。毎回毎回キャラクターを操作する必要があるため,3者で完全に揃うことはないものの,全体としては3者でスコアは似通っていると評していいだろう。
 むしろ,縦方向のスパイク(突起)が大きく,これが平均フレームレートを押し上げた気配を感じられるFCATと比べると,OCATやPresentMonLauncherのほうがスコアは安定していると言えるかもしれない。

グラフ画像をクリックすると,より見やすいグラフを表示します
画像集 No.027のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 グラフ8〜13はDOOMの結果となる。DOOMではOCATとPresentMonLauncherのみの比較となるが,こちらでも両者のスコアにこれといった違いは生じていない。BF1と似た傾向が出ているわけだ。
 なお,ここでも横道に逸れてみると,Vulkan版DOOMでは解像度1920×1080ドットなら,「ウルトラ」プリセットでもGTX 1080とR9 Fury Xが最小フレームレートで60fpsを超えてくる。そのR9 Fury Xが同じウルトラプリセットの2560×2440ドットでスコアを大きく落とす理由は,普通に考えて,グラフィックスメモリ容量不足のためだろう。

画像集 No.028のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.029のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.030のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.031のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.032のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.033のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?

 最後にグラフ14〜19は,もはや比較には使えないが,OCATで取得したForza Horizon 3のテスト結果である。GPUごとのスコア傾向自体は――R9 Fury Xがグラフィックスメモリ容量不足を露呈している気配がある点も含め――DOOMのそれに近いので,おおむね破綻はないと言っていいのではなかろうか。
 それにしても,UWP準拠のゲームタイトルでも問題なく計測できるOCATは,とても素晴らしい。

画像集 No.034のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.035のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.036のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.037のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.038のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?
画像集 No.039のサムネイル画像 / AMDのGPUOpenから登場した「OCAT」を試す。DX12とVulkan,そしてUWPタイトルのベンチマークを行えるツールは「使える」か?


DX12&Vulkan時代のFrapsになる可能性高し。今後の機能&互換性向上にも期待


 以上,「そもそも動作しない」という問題を抱えるPresentMonLauncherおよびFCATと比べると,(正式に試したのが3タイトルのみとはいえ)OCATの信頼性は非常に高かった。また,BF1やDOOMで得られるスコアを勘案するに,信頼性は十分なレベルにあると述べていいのではないかと思う。
 筆者のように,何十回とテストを繰り返すような人には,簡易的にでもテスト結果をゲーム画面上で確認できるのはとても便利で,また,そうでない場合でも,DirectX 12やVulkanベースのタイトルでフレームレート(やフレームタイム)を参照できるのは役立つはずだ。

 まだ,特定のアプリケーションとGPUの組み合わせで不具合があったりもするが,そこはオープンソースプロジェクト,少しずつでもアップデートは入っていくだろう。
 今回のテストを通じて,筆者はOCATに「使える」手応えを感じており,今後,GPUなどのテストで積極的に活用していきたいと考えている。

GitHubのOCATページ

  • 関連タイトル:

    ベンチマーク

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:04月19日〜04月20日