COMPUTEXにおけるAMDのLisa Su CEOの基調講演はこちらでご紹介したが、その最後で出てきたのがFSR(FidelityFX Super Resolution)である。このFSRが22日に一般公開される筈(この記事は当然事前に書いている)だが、公開に先駆けてもう少し詳細な仕組み、及び試用版ドライバ(と対応ゲーム)を試す機会に恵まれたので、これをご紹介したいと思う。

そもそもFSRとは?

FSRはそもそもSuper Resolution(超解像)の名前が付いている事からも判る様に、要するに入力画像を拡大して出力する技術である。その意味では、NVIDIAのDLSS(Deep Learning Super Sampling)と、最終的な目的は変わらない。DLSSとFSRの違いは、拡大する際の画質補完技法である。

DLSSはあらかじめ元画像と、これを縮小した粗い画像の組み合わせをひたすら学習させることで、「粗い画像を入力した際に、それに相当するであろう元画像に近いものを、Deep Learningを使って出力させる」事で画質補完を行う仕組みである。ここでDeep Learningを利用するために、DLSSの利用にはTensor Coreを持ったGPUが必要となる。一方FSRは、Deep Learningを利用せずにアルゴリズムで画質補完を行う仕組みとなっている(Photo01)。

AMDの説明によれば、例えばThe RiftBreakerを4K/Ultra QualityでDXRTをOnにすると92fpsであるのが、これを2.5K解像度に落として1.5倍のUpscalingにすれば179fpsまで性能が引きあがる。ただこのままだと画質が落ち角で、FidelityFXのSuper Resolution Algorithmを使って画質の改善を図る事で、若干オーバーヘッドが発生して10fpsほど落ちるものの、それでも169fpsと大幅に性能が上がる格好だ(Photo02)。描画パイプライン的に言えば、トーンマッピングが終わった後でこのFSRの処理が行われる形になる(Photo03)。

さて、FSRでは無し/Ultra Quality/Quality/Balanced/Performanceという4種類(無しまで入れれば5種類)の動作モードがある(Photo04)。このスライドのキャプションに書いた「Image Qualityの4の意味が今一つ不明である。」というのは、この4種類の動作モードの事を指していた訳だ。各々の動作モードの違いがこちら(Photo05)で、1.5倍~2倍まで4段階で選べる事になる。当然拡大率が大きいほど性能は上がるが、その分画質は落ちる(いくらFSRで画質補完をやるといっても限界がある)。AMD的には、ちょっと速度的に厳しい解像度/画質の組み合わせを、FSRで補うという使い方を推奨したい様だ(Photo06,07)。Photo08~10がSetting毎のフレームレート向上効果で、当然ゲームとか利用するGPU、描画設定などで向上率は変わってくる(というか、向上率と画質のバーター)ではあるが、結構な持ち上がり方であるのが判る。Photo11~15がビデオカードとタイトル別の性能向上率で、最低でも1.5倍。どうかすると2.5倍位フレームレートが向上するとする。

特筆すべきは対応ハードウェアで、Radeon RX 400シリーズとかRyzen Gシリーズ、更にはNVIDIAのGeForceまで対応できるという話で、このあたりからするとFSR自身はゲーム側に組み込まれる格好、と判断される。

さてそんな訳で、FSRに関しては対応ドライバ云々よりもゲーム側の対応の方が必須になる。6月22日にリリースされる対応ゲームは

の7つ。今後は更に12のゲームが予定されているとする。ドライバ側でなくゲーム側にFSRのロジックを組み込むとすればまぁこれは当然の話で、ゲーム側の対応を待たねばならない。もっともこれはNVIDIAのDLSSでも同じことであって、逆に言えば対応ハードウェアが遥かに増える分、FSRの方が普及が進みやすいかもしれない。既に多くのゲームスタジオが何らかの対応を表明しているという話であった(Photo19)。

  • AMD FSR (FidelityFX Super Resolution)を試す - NVIDIA DLSS対抗の超解像技術

    Photo01: 左から「縮小画像を、何も考えずに拡大」「Bilinear補完」「FSRのSuper Quality Mode」「FSRのQuality Mode」「元画像」となる。右下の斜め線のあたりが一番差が判りやすいかも。

  • Photo02: このStep 1の画像は、実際には出力されない。というか、これは説明用のスライドであって、実際には画像一緒なんじゃないかしら?

  • Photo03: ちょっと気になったのだが、このFSRを「いつ」「誰が」「どこに」組み込むのか。恐らくはFSRのSDKの中でこれが搭載される様に思われる。つまりGame DeveloperがFSRのSDKを使う時点でゲーム側のRendeing Pipelineの中にFSRのロジックが埋め込まれるのだと思う。

  • Photo04: この画像も使い回し(5枚とも一緒)な気がする...

  • Photo05: ちなみに出力画像サイズに制限はない。実際今回テストでは1280×720/1600×900/1920×1080/2560×1440/3200×1800/3840×2160という7種類の画面表示全てでFSRが動作した。

  • Photo06: Radeon RX 6800 XTでも4K Nativeだと59fpsでやや厳しいが、FSR Ultra Qualityにすると87fpsでプレイには支障がなくなる。

  • Photo07: GeForce GTX 1060だとTerminator Resistanceが2.5Kで51fpsで結構厳しい。が、FSR Ultra Qualityにすると69fpsで大分改善する。

  • Photo08: Radeon RX 6800 XT+GodFall

  • Photo09: Radeon RX 6800 XT+The RiftBreaker

  • Photo10: Radeon RX 6800 XT+Terminator Resistance

  • Photo11: このクラスでFSR要るのか? というのはちょっと疑問。まぁeSportsなどでは役に立つだろうが。

  • Photo12: GodFall以外要らないのでは?

  • Photo13: この辺になってくると大分意味が出てくる感じ。

  • Photo14: カードの交換が難しいMobile向けGPUでも嬉しいだろう。

  • Photo15: こちらも同様。古いGPUのお助けという意味ではかなり意味がありそう。

  • Photo16: NVIDIAのカードでも利用できるあたりは、NVIDIAユーザーにも助かる感じ。

  • Photo17: なので理論上はIntelのXeとかUHD 600シリーズなどでも利用できる筈だが、検証が終わってないのか、何か他の理由かは不明ながら今のところ未対応である。ただXeはともかくUHD 600シリーズ(とRocket Lakeの32EU Xe)は多分意味がない。理由はベンチマークパートで。

  • Photo18: ただしこのうち現時点で出荷されているのはAnno 1800、Evil Genius 2、GodFall、Terminarot Resistanceの4つのみ。

  • Photo19: Unityが対応しているということは、将来のUnityのエンジンには標準で組み込まれたりするのだろうか?