2020127

実機PC環境のVulkan API試験

「レインボーシックス シージの」Y4S4.3パッチでは初めて、実機PCでVulkanの試験を実施します。 「レインボーシックス シージ」をVulkanで起動するには、ゲームの起動時に適切なプレイボタンを選択してください。ランチャーで、DirectX 11とVulkanのどちらを使用するか選ぶことができます。

Vulkanのメリット

VulkanのAPIにはDirectX 11と比べて、さまざまな角度から「レインボーシックス シージ」のパフォーマンス向上につながる優位性があります。

簡潔に言えば、VulkanのAPIを使用すればテクスチャーの動的インデックス処理によってCPUの負荷を軽減しつつ、動的解像度描画と非対称演算処理によってGPUの負荷を抑えることで、作業負荷を改善することができるのです。これらの機能はすでにコンソール版で採用されており、Vulkanを使うことによってPCでも同じ処理が行えます。 これらのすべての機能を組み合わせれば、レンダリング時のGPUとCPU双方の負荷を最適化できるようになります。

これらの機能の技術的側面に興味をお持ちの方のために、本稿では機能の詳細とPC版「シージ」にもたらされるメリットについてもご紹介しています。Vulkanで適切なパフォーマンスを得られるようにするため、「重要なお知らせ」は必ずお読みください。

目次
Vulkan、DirectX 11とAPI
レインボーシックス シージにおけるVulkanのテスト実施
技術的解説
---テクスチャーの動的インデックス処理
---レンダリングターゲットによるエイリアス処理とレンダリング縮尺の動的調整
---非同期演算
重要なお知らせ
---グラフィックドライバーをアップデートしてください
---ハードウェア対応状況
---GPUメモリのオーバーサブスクリプション

Vulkan、DirectX 11とAPI

VulkanとDirectX 11はグラフィックス描画に用いるアプリケーションプログラミングインターフェースで、通称をグラフィックスAPIといいます。これらのAPIには、「レインボーシックス シージ」などのゲームとグラフィックス処理装置、すなわちGPUとの通信を媒介するはたらきがあります。

[R6S] Vulkan API Graphic

ゲームなどの膨大なグラフィックス処理を行うアプリケーションでは、CPUとGPUが同時に稼働します。両者の稼働速度はハードウェア構成によって変化し、低速側のユニットに合わせてプレイ時の最大フレームレートが決まります。プレイヤーはグラフィックス設定を変更してGPUの作業負荷を改善すれば、ある程度までフレームレートを管理できますが、パフォーマンスがCPUやGPUの制約を受けるという事実に変わりはありません。

ここで、APIの出番です。 適切なAPIには、作業量とパフォーマンスを向上させる機能が搭載されています。また、Vulkanなどの一部のAPIはベアメタルのハードウェアにかなり近く、CPU使用率が少なくなるという特徴があります。一言で言えば、APIを使えばコーディングが複雑化する代わりに、プログラミングの柔軟性を高めることができるのです。

現在、「レインボーシックス シージ」では10年以上前にリリースされたDirectX 11のAPIを使用しています。DirectX 11は今でも優れたパフォーマンスを発揮しますが、グラフィックスドライバーによって膨大なCPU処理が求められるという難点があります。さらに新型GPUがサポートする一部の機能は、DirectX 11などの旧型APIとは互換性がないこともあります。(UbisoftではDirectX 12の評価も実施しましたが、内部テストによってVulkanの方が優れたCPU性能を発揮するという結果が得られました。)

VulkanにはCPU、GPUの負荷軽減に役立つというメリットに加えて、新機能に対応しているという利点があり、それらを活用することで新しい表現に挑戦することが可能となるのです。

レインボーシックス シージにおけるVulkanのテスト実施

Ubisoftでは大規模な内部検証を実施し、Vulkan実装時のエラー検証をテストサーバーで長時間にわたって進めて参りましたが、実際のPCサーバーでプレイヤーの皆様がVulkanを使用した際に、どれだけのパフォーマンスを得られるかという最も重要なテストが残されています。

4.3パッチでは、VulkanのテストをプレイヤーのPCで行う段階に進みます。これによって、これまでよりも幅広いハードウェアと大規模なプレイヤーを対象にVulkanをテストできるようになり、Vulkanの全体的な安定性をこれまで以上に高めることを目指します。ただし、現在の「レインボーシックス シージ」はVulkanの調整・試験段階にあり、リリース当初は一部のプレイヤーが改善を実感できないか、パフォーマンスが低下する可能性もあることをご了承ください。Vulkanを導入する目標は、同APIの最適化によってプレイヤーのグラフィックス性能を向上することにあります。

まとめ

VulkanのAPIには、DirectX 11よりも「レインボーシックス シージ」のグラフィック性能の向上に貢献できるというメリットがあります。さらに、新型APIのVulkanにはCPU、GPUの負荷軽減に役立つというメリットに加えて、新機能に対応しているという利点があり、それらを活用することで新しい表現に挑戦することが可能となるのです。パッチ4.3では、Vulkanを皆様のPCにお届けしてさらに広範な試験を行います。

Vulkanで「レインボーシックス シージ」を起動するには、PCでゲームを起動する際に適当なプレイボタンを選択してください。ランチャーで、DirectX 11とVulkanのどちらを使用するか選ぶことができます。

[R6S] Vulkan DX gif

また、お使いのグラフィックドライバーをアップデートしてください。(Nvidiaアップデート 441.87, AMDアップデート 20.1.4, Intelアップデート 26.20.100.7755 または最新バージョン)


技術的解説

Vulkanはハードウェアに近いレベルで稼働するように設計されたAPIです。 Vulkan APIを使用することで、「シージ」では3つの新機能を活用して作業負荷のパフォーマンスを改善することができます。

  • テクスチャーの動的インデックス処理(非固定レンダリング)
  • レンダリングターゲットによるエイリアス処理
  • 非同期演算

テクスチャーの動的インデックス処理(非固定レンダリング)

はたらき テクスチャーの動的インデックス処理を活用すれば、描画を呼び出す(グラフィックスAPIに、画面に表示するオブジェクトを描画させるための命令)回数を減らすことによって、CPUのオーバーヘッドを減らすことができます。この処理は、CPUを使ってテクスチャーを固定するのではなく、GPUを使ってシェーダーで用いるテクスチャーを動的に選択することで成立します。その結果ドライバーにかかる負荷が減少し、CPUサイクルに空きを作ることによって全体的なCPUのパフォーマンス向上につながります。

望まれる効果 Vulkanとテクスチャーの動的インデックス処理によって、CPUの制約を受けるプレイヤーのフレームレートを向上、安定させる。

レンダリングターゲットによるエイリアス処理とレンダリング縮尺の動的調整

_はたらき__ レンダリングターゲットによるエイリアス処理を採用すれば、PCがレンダリング縮尺を動的に調整することで、GPUの作業負荷に応じて縮尺率を柔軟に調整できるようになります。プレイヤーは目標(ターゲット)となるフレームレートを選択でき、ゲームが目標に応じてレンダリングの解像度を自動調整することによって、GPUの制約を受けるプレイヤーのフレームレートを安定させることができます。

望まれる効果 発売以来「シージ」では、TAAアンチエイリアス技術を用いたさまざまな方法で、レンダリングの縮尺調整を行ってきました。PC版プレイヤーは、ディスプレイとは異なる解像度をゲームに設定できます。これによって「シージ」は、オブジェクトを低解像度で描画してから、一時的なアップスケール処理を加えることで、ディスプレイ解像度に合わせた表示を行うことができました。この一時的なアップスケール処理は輪郭のにじみをしっかりと抑えた、高品質なアンチエイリアス処理が行える優れたアップスケール手段であり、パフォーマンスが向上するという副次的効果もあります。

このTAAアンチエイリアシングと並行して、レンダリング縮尺の最適な動的調整を行えるようにすることで、GPUの制約を受けているプレイヤーのフレームレートを向上させ、安定させたいと考えています。

非同期演算

はたらき 非同期演算は、ハードウェアがGPUと並行してタスクを実行できる能力のことであり、さまざまな方法と場面でより優れた最適化を行えるようになります。コンソール版の「シージ」では発売以来、非同期演算の技術を使用して、アンビエントオクルージョンやスクリーンスペース反射といったグラフィックス技術の最適化を行うことができました。各種グラフィックカードは以前から非同期演算に対応していましたが、DX11の制約によってこの機能を使うことができていませんでした。それが、Vulkanの採用によって実現したわけです。


重要なお知らせ

お使いのグラフィックドライバーをアップデートしてください。(Nvidiaアップデート 441.87, AMDアップデート 20.1.4, Intelアップデート 26.20.100.7755 または最新バージョン) 数ヶ月にわたって、「シージ」ではNvidia、AMD、Intelと緊密に連携してドライバーパフォーマンスの最適化を進めてきました。最高のパフォーマンスを得るために、最新のドライバーをインストールするようにしてください(古いドライバーを使用していると警告が表示されます)。

ハードウェア対応状況:残念ながら、一部の旧型ハードウェアはVulkanに対応していません。

  • NvidiaではKeplerシリーズ(GTX 600シリーズ)以降の製品が、Vulkanに対応しています。そのため、Kepler、Maxwell、Pascal、TuringをベースにしたGPU製品ではVulkanをご利用いただけます。基本的に、2012年以降に発売されたNvidia製の全GPUが対象です。(List of Nvidia GPUs)
  • AMDではGCN1(Radeon HD 7700シリーズ)以降の製品が、Vulkanに対応しています。基本的に、2012年以降に発売されたAMD製の全GPUが対象です。(List of AMD GPUs)
  • Intelでは第6世代(6000番台のCore i製品の大部分、Intel HD Graphic 500シリーズ)以降の製品が、Vulkanに対応しています。基本的に、2015年以降に発売されたIntel製の全GPUが対象です。(List of Intel GPUs)

GPUメモリのオーバーサブスクリプション(使用可能量以上のGPUメモリを要求する現象):DirectX 11ドライバーを使用するメリットのひとつに、GPUメモリのオーバーサブスクリプションへの対処が非常に優れている点があげられます。Vulkanでは、オーバーサブスクリプションによってゲームのカクつきやクラッシュ,が発生する可能性があります。このため、なめらかなプレイを行うためには、グラフィック設定メニューの予想メモリ消費量に注意する必要があります。また、オーバーサブスクリプションの発生を検知した際は常に警告メッセージを表示します。これを避けるには、オーバーサブスクリプションの最大の誘因となる、テクスチャー品質とゲーム解像度の一方または両方の設定を下げてみてください。

今回のテスト結果を、実際のPC環境をできるだけ反映したものとするために、PC版「シージ」のプレイヤーの皆様はぜひ、Vulkanでの起動にご協力ください。今回の取り組みにご意見やご感想があれば、ゲーム公式のSNShttps://twitter.com/rainbow6game)や[サブレディット](https://www.reddit.com/r/Rainbow6/)、[フォーラム](https://forums.ubisoft.com/forumdisplay.php/64-Rainbow-Six-Siege)に投稿をお寄せください!