1080pで60fpsの高解像度録画が手軽に!
Radeon新ドライバー「ReLive」の隠れた目玉「Radeon Chill」の挙動を調べてみた
2016年12月27日 11時00分更新
AMDは以前から“ドライバーの熟成で既存製品の性能を伸ばす”という施策を続けてきた。公式サイトで行うベータ版ドライバー(ただし使用に関しては自己責任)の配布や、歴史あるCatalystを捨てUIまわりをリニューアルした「Radeon Software Crimson edition」のリリースもその一環というべきものだ。
そして2016年の終盤になって投入してきたのが『Crimson ReLive edition』だ。従来サードパーティー製アプリ(Plays.tv)に頼り切りだったゲーム画面の録画・配信機能がドライバー側に搭載されたのが大きな目玉だが、ReLiveにはもうひとつ、『Radeon Chill』なる面白い機能がある。今回はこのRadeon Chillを少し掘り下げてみたい。
CPUもGPUも休ませる
検証に入る前に、Radeon Chillの理屈をまとめておきたい。ゲームに対しユーザーが何か操作を行っていない時にフレームレートを調整することで、CPUもGPUも休ませるというのがRadeon Chillの根幹だ。ゲーム画面の描画では前もって1~3フレーム分先行して処理しておくことで、あるフレームで処理が間に合わなくなった時でもコマ落ちを防ぐテクニックがある。動きが激しい時(コマ落ちしやすい時)は有効だが、操作不要のムービーパートや、何もせず立っている時にそこまでの処理は必要ない。
そこでRadeon Chillは、ユーザーのアクションがないシーンでは先行レンダリングを止め、CPUとGPUの処理が同期するよう調整。さらにGPUにもアイドル時間を設けることで、CPUとGPUに休ませる時間を設ける。その結果として発熱や消費電力の低下が期待できる、というのだ。
CPUとGPUのフレーム表示が同期する、という点はゲーマーにとって大きなメリットがある。というのも、先行レンダリングを行っているゲームでは、画面の見た目とプレイヤーの操作には先行レンダリングしたフレーム数と同じだけの遅延が発生する。上の図でいえば、1フレームぶん、60fpsのゲームであれば16.667ミリ秒だけ常に画面表示は遅れるわけだ。
しかしRadeon Chillを有効にすれば表示遅延は実質上ゼロになる、これはゲーマーにとっての大きなメリットである……というのがRadeon Chillの隠されたメリットだ。普通のテストではなかなか検証できないのが残念ではあるが……。
Radeon Chillは状況を判断してCPUとGPUにアイドル時間を与えるというアグレッシブな制御を行うため、動作が確認できたゲームだけが利用できるという“ホワイトリスト”形式の機能になっている。Radeon設定を開き「ゲーム」→「グローバル設定」→「グローバルWattMan」で有効にすると、Radeon Chill対応ゲームのWattManプロファイルに詳細設定が出現する、という仕組み。つまりRadeon Chill非対応のゲームには影響が出ないよう配慮されているのだ。
Radeon Chillの対応ゲームはまだ非常に少なく、AMDによれば現在対応しているのは18タイトルのみ。しかも現時点ではDirectX9や11のタイトルだけに限定されている。今後ドライバーやゲーム側の改善が進むにつれ、対応ゲームやAPIも増えていくことだろう。
検証環境は?
それでは今回の検証環境を紹介しよう。ビデオカードはPowerColorブランドのOC版RX 480「PowerColor Red Devil RX 480 8GB GDDR5」を使用している。
試用機のパーツ構成 | |
---|---|
CPU | Intel『Core i7-6700K』(4GHz、最大4.2GHz) |
マザーボード | ASUS『Z170-A』(Intel Z170) |
メモリー | Crucial『BLS2K8G4D240FSA』(DDR4-2400、8GB×2) |
ビデオカード | Tul『PowerColor Red Devil RX 480 8GB GDDR5』 |
ストレージ | Intel『SSDPEDMW400G4X1』(NVMe SSD、400GB) |
電源ユニット | Corsair『RM650』(650W、80PLUS Gold) |
OS | Windows 10 Pro 64bit DSP版 |
マウス操作の有無で大きく変わる
今回はRadeon Chillに対応したゲームの中から「Rise of the Tomb Raider(RotTR)」で検証してみた。全自動操作が可能で、全く同じ動きが再現できるので、Radeon ChillのようなCPU負荷に敏感な機能を見るのには最適と判断したためだ。今回はフレームレートを稼ぐために画質はプリセットの“中”、アンチエイリアスは“FXAA”、解像度はフルHDにセットした。APIはDirectX11を指定している。
テストパターンは全部で4つ。ReLiveを導入しRadeon Chillを無効にした状態(ReLive)と、Radeon Chillを有効にした状態(ReLive+Chill)、さらにChillの最大値を144から60に思い切り下げた設定(ReLive+Chill(60))、そして1世代前の16.11.5ドライバー(旧ドライバー)で計測している。
DirectX11で動かすRotTRのフレームレートは一瞬フレームレートが落ちやすい設計であり、最低fpsはあまり参考にならないので、最高と平均fpsに注視していただきたい。ここで明らかなのは、Radeon Chillを有効にするだけで平均fpsが40fps弱に下がってしまったこと。これはWattManプロファイルにあるChill最小値の値とほぼ同じだ。
この結果だけを見れば、Radeon Chillは全く使えない機能である……と判断されても仕方がない。だが解説の冒頭に書いたことを思い出して欲しい。Radeon Chillはユーザーのレスポンスがない状態でフレームレートを落とす機能なのだ。RotTRのベンチマークは全自動で進むため、ユーザーのレスポンスは必要ない。これがフレームレート悪化の最大の原因なのだ。
そこで今度はベンチマーク実行中に全力でマウスをグリグリと動かし続けてみた。マウスポインタは表示されていないが、システム側にはインプットデバイスからの入力は検知されている状態。この状態でマウス操作なしのデータと比較したのが次のグラフだ。
ここでも最低fpsの低さはスルーして頂くとして、最大fpsと平均fpsが著しく伸びている点に注目していただきたい。Radeon Chillのデフォルト設定(Chill最大値144)では、全体的にフレームレートも改善するという予想外の効果も得られたが、Radeon Chillがユーザーのレスポンスに反応して描画に介入する機能であることは確認できた。さらにChill最小値が平均fpsとほぼ合致することからも、Radeon Chillはフレームレートリミッター的な使い方もできることがわかる。
最後にRadeon Chill非対応のベンチではどうなるか? ということで「3DMark」を試してみた。現時点ではDirectX12に影響しないということを考慮し、DirectX11ベースの「Fire Strike」「Fire Strike Ultra」のスコアーを比較する。
WattManプロファイルにRadeon Chillの項目が出ないアプリやゲームの場合は、Radeon Chillは全く影響しないことがご理解いただけるだろう。
まとめ:わかりにくいが、面白い機能
以上ざっくりとRadeon Chillの検証をしたが、正直に言うと最初は「画面の動きが少ないとフレームレートを下げる」機能であると誤解しており、検証時の奇怪な結果に暫く悩んでいた。が、ユーザーのレスポンスがトリガーであると気づいてようやく合点がいった次第。
ただし、Radeon Chillの本当のトリガーが何であるのかは、現時点ではハッキリとはしていない。キー入力やマウス入力でフレームレートが上がることは確認できたが、オンラインゲームのようなネットワークのアクティビティもトリガーになりえるのか、といった点までは、時間の都合上究明できなかった。今後機会があれば、再びRadeon Chillを深掘りしてみたい。
(提供:AMD)