Battlefield 4(グラフ15~21)

いよいよお待ちかねのBattlefield 4の結果である。テスト手順はこちらに示した通りだが、画質のプリセットは「最高」を選んでいる。ちなみにMantle非対応の環境だとこちらの様にAPIの選択はないが、Mantle対応環境ではAPI選択が出現し(Photo19)、ここで好きなほうを選ぶ事ができる。

Photo19:"グラフィックAPI"がそれ

Photo20:選択肢は"Direct3D 11"か"MANTLE"のみ。ちなみに下に注意がある通り、これを変更したらゲームの再起動が必要

ところでMantle環境の場合、出力はMantle経由となるので必然的にFrapsでのフレーム測定ができない。幸いにもBattlefield 4ではゲーム内でフレームレートを測定する機能が搭載されたので、今回は全部こちらで統一している。ちなみに測定方法だが

  1. "~"キーを押してコンソールを出す。
  2. "PerfOverlay.FrameFileLogEnable 1"と入力してEnterする。
  3. もう一度"~"を押してコンソールを閉じる

を行うと、以後全てのFrametime(1フレームを描画するのに要した時間。単位:ms)をDocuments\Battlefield 4の下のFrameTimeLog001.csvというファイルに記録してくれる。ちなみにコンソールからPerfOverlay.FrameFileLogEnable 0を入力すれば記録終了するが、今回は面倒なので記録しっぱなしで解像度を変えながら測定して終了、という手順で測定を行っている。

さて結果である。平均フレームレート(グラフ15)を見ると、HD 7970同士で比較した場合にDirect3Dに対するMantleの性能改善は3%~12%と割とばらつきがある。

AMDの資料によれば、1080p(1920×1080pixel)で、Core i7-4770K+RADEON R9 290Xの組み合わせでの性能改善率は9%弱(Photo21)だそうだから、グラフ15の6.4%(1920×1080pixel)は割と妥当というか、こんなものだろうという気はする。

Photo21:Mantleの理屈上、CPU性能が低いほど性能改善率が高い訳で、A10-7770Kが40% Overというのも故無きことではない

逆に最大フレームレートはやや落ち気味(グラフ16)だが、これはMantleを使うとフレームレートの変動が少なめになることと無縁ではない気がする。逆に最小フレームレート(グラフ17)は優秀で、特に1600×900pixelにおける数字が異様ですらあるが、これはフレームレート変動の方で。

ということでグラフ18からが実際のフレームレート変動である。一見して分かるのが、Direct 3Dを使うケースではどれも細かくフレームレートの変動があること。特に1280×720pixel(グラフ18)におけるHD 7970のDirect 3Dでは頻繁にフレームレートの低下が観測されるし、実際プレイしていてちょっとつっかかる事がしばしば発生した。

もちろんMantleを使ってもそれなりに落ちる事はあるが、その頻度はずっと少ない。1600×900pixel(グラフ19)では、30秒の間一回もこまかく落ちる事がなかった。これがグラフ17で異様な最低フレームレートになった理由である。実際、20秒を過ぎるあたりから25秒くらいまではGTX 780を上回るフレームレートを出しており、非常に優秀といって良いと思う。

とはいえ、さすがに1920×1080pixel(グラフ20)とか2560×1440pixel(グラフ21)ではそれなりにスパイクが観測できるので、変動はあるということだが、概してどちらもHD 7970のDirect 3Dよりもわずかに上回るスコアを出しており、なによりグラフの形が全く違っているあたり、それなりにMantleの効果があることは確認できたと思う。