※りとらいんは広告を利用しています

たった348MHzで原神(720p)を支配するSnapdragon 8 Gen 2と、CPUボトルネックについて(仮)

Android

Redmi K60 Pro(Snapdragon 8 Gen 2)で色々遊んでみて、べしゃり散らかしたいことが出来たので、それらをべしゃる&レビュー記事で書いていない部分を補足するだけの記事です。

レビュー記事の補足と原神(Android版)の解像度

レビュー記事では本題から逸れる&特に気にしてなかったので書いていませんでしたが、Redmi K60 Proは原神をデフォルトの720p(レンダリング精度:高)だけでなく、MIUIのゲームターボにアプリを追加したうえでGPU設定を”高品質”にすることで、Xiaomi 13等と同じ様に20%高画質化した864p(120%)レンダリング動作が解禁されています。

GLToolsで864p化する場合と違い”視覚効果”の品質影響を受けず、864p(120%)レンダリング同士ではGLToolsより、ゲームターボベースの方が綺麗に高解像化できています。

GLToolsが外部からフィルターを掛ける様な感じだとしたら、ゲームターボ(又はこれに相当する810p化等)は内側からGPUドライバーや独自機能を介して高解像化する感じでしょうか。

FSR対応ゲームで、ゲーム側(内部)からFSRによるアップスケーリングをする場合と、Magpie等でソフトウェア(外側)から適用する差異に近いとも言えるでしょう。やってること自体はNVIDIA DSRの方に近いですが…。

”adb shell”→”dumpsys SurfaceFlinger | grep GetMobileInfo.MainActivity | grep w/h”で、Redmi K60 Pro(ゲームターボ”高品質”)が実行している解像度を調べた場合は864pでした。(多分、実行解像度で≒レンダリングではない)

ちなみに1080pや1440pへGLToolsでアップスケーリングした際、コマンドで調べると1440~等で始まらないのが謎でしたが、解禁されている高解像度(720p以上)をベースに計算している可能性があります。

恐らく1920×864で実行している解像度そのままに、GLToolsが引き上げるのでコマンドでの表示上は864p、内部のレンダリング倍率的には720p(大陸の方々の指標だと84鋸歯数)から1440p等に引き上がっているハズです。

【1440p=720×2(200%):1728÷2(200%)=864】

ただし「コマンドで調べられる解像度=《原神》渲染分辨率(レンダリング解像度)」ではないかもしれません。

レンダリング解像度”568p”相当だと言われている”中品質”や、他デバイスでもGoogle Play版原神の実行解像度である864pが表示されました。

大陸の方々が表記している”720p(84鋸歯)”や”640p(75鋸歯)”は、原神の実行解像度×レンダリング精度(解像度)の倍率によって得られる”原神のレンダリング解像度”で、コマンドや原神のカメラ機能から取得できる864pとはまた別なはずです。なので実行解像度という意味では、この864pはかなり正確なハズ…ややこしい話ですが。

幸い、Xiaomi 13シリーズやK60 Proは720・864pの両方に対応しており、手元にある場合はこれらを基準に必要であればGLTools等も利用して大凡の解像度を調べることは可能。

今のところは実行中の解像度を確認する場合、海外勢と同じ様にレンダリングした画面を拡大して装飾やオブジェクトの斜めの線から、ドット数や情報量が720pより多いかどうかで判断するしか無さそうです。

864pだと”段”って感じでしたが、GLToolsで2160p(300%)にレンダリングした場合は”ほぼ線”になります。

より正確に求める場合は、璃月港でサンプリング倍率(≒レンダリング解像度)の鋸歯数を数える必要があります。

原神を用いてSnapdragon 8 Gen 2”を”遊ぶ

たった348MHzで原神を支配する(約1時間で平均59fps動作)

Snapdragon 8 Gen 2は720pの原神には過剰性能です。なので逆にGTX 1050相当のGPU(Adreno 740)はどのくらい余力があるのか、CPU・GPUで必要な動作周波数はどの程度か気になったのが発端。

とりあえず、Pコアの最大クロックをSnapdragon 865や888の2.42・2.84GHzに近い2.45・2.84GHzに落とし、Adreno 740は401MHzでも使用率5~60%弱で余裕があったので、最大クロックを384MHzまで落としました。

参考までに、この状態で実行したGeekbench 6(MOD)と3DMark Wild Life Extreme Stress Test(MOD)のベンチマーク結果は以下の通り。

CPUは定格から約3~5%性能低下、GPUはSnapdragon 7+ Gen 2(Adreno 725)と同水準の性能です。※Adreno 730(~818MHz)>Adreno 740(220~348MHz)≒Adreno 725(~580MHz)>Adreno 600シリーズ

この状態で、ゲームターボ”デフォルト”かつグラフィック(最高)/720p@60fps設定にて”千尋の砂漠~蒼漠の囿土”の間を過去最長の約60分間プレイして、TakoStatsで計測。

約60分間プレイし、結果は平均59.1fps・最低(1%)で50.7fpsを叩き出し、Snapdragon 8 Gen 2の定格クロックで30分間プレイした場合と遜色ない結果になりました。平均消費電力は5.7W→6.1Wに0.4W増加。

ワットパフォーマンスは効率のスイートスポットから少しズレたようで、定格の96mWから103mWに7mWだけ増えてます。とはいえ依然として100mW前後で平均58fps以上の良好な電力効率。

バッテリー温度は60分間でファラクケルトの園(甘露花海)周辺で46℃前後に到達、ただ荒石の蒼漠(トゥニギの黒淵)に戻ってくる間に負荷が下がり温度も低下、大体45℃前後で安定し59:34時点で44.5℃でした。

220~348MHzでも720pでは、甘露花海やトゥニギの黒淵付近でもGPU使用率6~80%でまだ余力があり、軽いモンドなら220MHz以下ですら動作しそうな雰囲気。

ぶっちゃけた話、680MHzのAdreno 740は720pだと性能余剰状態なので、冷やしやすくGPU性能も安定しやすい400MHz以下で動作させてもGPU負荷の軽い原神(720p)なら問題ないです。

逆にスターレイルの様な、CPUよりもGPU重視なゲームの場合は348MHzだとGPU性能が足りず、非常に重い仙舟「羅浮」の鱗淵境では36fpsくらいしか出せません。

よくある「原神が快適に動かせるならスターレイルも(含め大体のゲームが)快適」というのは非常に不適切。当然ながら、たった348MHzで原神(720p)を60分間で平均59fpsなんて芸当は、Snapdragon 8 Gen 2でないとできません。

試しにSnapdragon 888のCPU側を上記の8 Gen 2に近い状態にして、GPUは500MHz以下だと性能が足りないので仕方なく最小クロックを540MHzに引き上げただけの状態で30分間動かしてみます。

CPUボトルネックゲーの原神とはいえ、540~608MHz以上で動かしてもAdreno 660は348MHzの740よりも余力が無い。400MHz前後では使用率99%に張り付いて、役に立たなくなってしまっています。

任意のクロックにするためサーマルスロットリングを無効化しており、Snapdragon 888(Samsung 5nm)なのでたった30分間でバッテリー温度は50℃を突破。60分間動かすのは色々無理があるので断念。

高い動作クロック、Snapdragon 8 Gen 2より楽な30分間の計測ですが…888では平均52.8fps、最低(1%)で32.7fpsしか出せません。

実行ユニット数の増加やアーキテクチャの改良もそうですが、動作クロック辺りの性能が段違いなので必然的な結果です。

逆にCPU<GPUに調整した場合を検証する

以前より”原神はCPUバウンド(CPUボトルネック)ゲームではないか”と感じており、Geekerwan=サンが魔改Switchで、Android版の原神とスターレイルを動作させた際の非常に分かりやすい説明で”ほぼ”確定しています。

実際にSnapdragon 8 Gen 2でも性能をCPU<GPUに調整した場合の動作を検証してみましょう。

CPUの最大・最小動作クロックをプライム・高性能・高効率コアそれぞれ、定格のほぼ半分の値に設定しクロックを固定。Adreno 740は最小クロックを680MHzに引き上げ、パフォーマンスを固定します。ガバナーは変更しません。

Geekbench 6(MOD)と3DMark Wild Life Extreme Stress Test(MOD)のベンチマーク結果は以下の通り。

CPUはSnapdragon 865やGoogle Tensorに近く、GPUはLowest Scoreでも3100を超え下手なゲーミングスマホを負かせる性能に。とはいえ動作クロックの固定は限りなく黒い灰色、ほぼ不正なのであくまで検証用です。

CPU側がかなり貧弱とはいえ、かつて言われていた「Lowest Scoreが2000だと原神が大体60fps出る」や、Ver.4.0「ゆえなく煙る霧雨のように」更新前の段階で、何故か「Snapdragon 855(Wild Life 4000)が公式の推奨」としている謎情報を超える結果なので期待しています。

テストは変わらず、グラフィック(最高)/720p@60fps設定にて”千尋の砂漠~蒼漠の囿土”の間を、敢えて60分間より結果が良好になりやすい様に約45分間プレイ。

結果は…平均55.7fps・最低(1%)で38.6fps。45分間かつGPUはフル性能の680MHz、適切では無かったとはいえ…完全に間違っていた訳では無い、例のLowest Score2000を超える状態にも関わらず384MHzに劣る結果です。

解像度や画質設定が低い場合、GPU負荷・重要度の低いタイトルではCPU性能の差が直結し、安定性とも言える最低(1%)フレームレートやスムーズ度の値が全然違います。特に原神は通常だと720pなので言うまでもないです。

Snapdragon 8 Gen 2(348MHz)では36fpsくらいしか出せなかった、スターレイルのようなGPU依存度が高いゲームは、680MHzだとGPU使用率7~80%で50fps以上まで動作が改善。

CPUボトルネックの有無を簡易計測

計測内容

もう少し、しっかりと原神におけるCPUボトルネックを検証してみます。

方法は色々考えました。例えば今、手持ちのSnapdragon 870/888/7+ Gen 2/8 Gen 1/8 Gen 2端末でGPU性能を870に合わせて統一するとか、逆に888に合わせて870をKonaBessで思いっきりOCするとか。

しかし、それらでは他に影響する様々な要因を排除できません。VC冷却の面積やRAM・ストレージ、各端末固有の最適化や使われているパーツ諸々。x86環境のCPU・GPUボトルネック検証に倣い、SoC以外は影響するものをなるべく排除しなければ有効な検証にはなりません…。

なので、CPU以外の要因を殆ど排除して検証可能なK60 Pro(Snapdragon 8 Gen 2)による、”擬似CPU性能の再現”でCPUボトルネックを検証します。

Geekbench 6のチャートや私自身が過去に所有していた端末のデータを元に、Snapdragon 8 Gen 2のCPUクロックを下げて、Snapdragon 845/855/865(上記)/888/7+ Gen 2/8+ Gen 1の性能を擬似的に再現。

もちろんこの検証は完全ではなく、あくまで擬似でしかないです。TSMC 4nmで製造されたCPUが1+4+3構成のSnapdragon 845や855なんて存在しないし、LPDDR5XやUFS 4.0にAdreno 740を搭載した865や888なんてものも存在しません。

とはいえ(サーマルスロットリングや最適化不足も含め)CPU性能が下がると、原神の動作にどんな影響があるかは簡易的に見れます。

【疑似:Snapdragon 845】プライムコア729MHz/パフォーマンスコア844MHz/スモールコア787MHz。

【疑似:Snapdragon 855】プライムコア1.24GHz/パフォーマンスコア1.05GHz/スモールコア1.01GHz。

【疑似:Snapdragon 865】プライムコア1.59GHz/パフォーマンスコア1.4GHz/スモールコア1.01GHz。

【疑似:Snapdragon 888】プライムコア2.09GHz/パフォーマンスコア1.05GHz/スモールコア1.01GHz。

【疑似:Snapdragon 7+ Gen 2】プライムコア2.22GHz/パフォーマンスコア1.17GHz/スモールコア1.22GHz。

【疑似:Snapdragon 8+ Gen 1】プライムコア2.47GHz/パフォーマンスコア1.17GHz/スモールコア1.01GHz。

これら”疑似:Snapdragon”と680MHzに固定した、Wild Life Extremeで最低3154スコアのAdreno 740を組み合わせ、グラフィック(最高)/720p@60fps設定にて”千尋の砂漠~蒼漠の囿土”で30分間プレイして計測します。

計測結果

やはり原神(720p)のCPUボトルネックは深刻で、安易に「3Dグラフィックが重くGPUがとても重要」と言ったり、ベンチマークスコアだけで判断するのは不適切。GPU性能が高く8コアCPUなら何でも良いわけじゃないです。

Snapdragon 845(疑似)では、Adreno 740(680MHz)が完全に台無しになり、平均でたった40.8fpsしか出せません。酷いのは最低フレームレート(1%)が30fpsを下回っています。安定性が皆無ということです。

Snapdragon 855(疑似)だと845比でマシになり、平均50fpsを超えて最低フレームレート(1%)もなんとか30fpsを超えます。865~888(疑似)は855から微増、それでもAdreno 740(680MHz)に対してまだ足を引っ張ります。

Snapdragon 7+ Gen 2と8+ Gen 1(疑似)でようやくCPUボトルネックがほぼ解消され、平均58fps前後、最低フレームレート(1%)も45fpsを超えて、720pで安定したフレームレートを出せる状態になります。

状態や計測条件が異なりますが…過去の計測結果でも近い傾向で、定格のSnapdragon 845→765G→855、865~8 Gen 1(MIUI 14)→7+ Gen 2では越えられない壁(CPUボトルネックが解消された跡)が存在しています。

私よりも恐らく、Snapdragon 8+ Gen 1(と7+ Gen 2)搭載端末とそれ以前のSoCで原神(スメール)をプレイしたことのある人の方が、腑に落ちるというか…この結果に納得がいく筈です。

Snapdragon 8+ Gen 1(7+ Gen 2)とそれ以前のSoCでは原神(スメール)における、スタッター(ジャンク)の数やフレームレート、最低fpsの安定性に明らかな差があると。あとGPU性能”だけは”良い8 Gen 1が微妙なことも。

TakoStatsで30分間計測した”疑似:Snapdragon”のCPU使用率をグラフ化。ボトルネックが解消される性能に近づく程、CPU使用率は下がっていきます。疑似とはいえSnapdragon 845相当だと70%近くもCPUだけで使います。

平均58fps前後で安定したSnapdragon 7+ Gen 2(疑似)+Adreno 740(680MHz)の組み合わせでは、甘露花海周辺でもGPU使用率は50%前後で余力はありつつ、CPUボトルネックでGPUが大幅に遊んでいる訳では無いです。

一方でCPUボトルネックが深刻なSnapdragon 845(疑似)+Adreno 740(680MHz)だと、CPU自体は90%のようなカツカツ具合ではありませんが…GPUが30%前後しか使われず遊び始めます。

実際のSnapdragon 845+Adreno 630相当だと使用率はもっと酷い筈です。

一応、1フレーム辺りの消費電力と最大バッテリー温度も比較。CPU性能が低ければGPU使用率も下がり、それらが作用して当然温度も下がります。加えてフレームレートが出なければ、消費電力自体が少なくてもワットパフォーマンスは悪化します。

どちらにしろ、電力効率という点では定格+各メーカーの調整が優れており、動作クロック固定も相まってSnapdragon 8 Gen 2で疑似的に845~8+ Gen 1を再現しても、実際の電力効率までは再現できません。

Snapdragon 8 Gen 1を再現しなかったのも、実機の8 Gen 1と乖離することに加えSnapdragon 8+ Gen 1(低周波版)や7+ Gen 2が、TSMCの技術を用いて作り直した8 Gen 1に近い存在なのでやる意味が無いです。

まぁ…性能を模倣しただけのSnapdragon 7+ Gen 2(疑似)では、Redmi Note 12 Turboでしっかりと調整された7+ Gen 2の電力効率には同じTSMC 4nmでも、遠く及ばないといった発見はありましたが…。

おまけ

もう1つ、Snapdragon 888でグラフィック(中)/568p@60fps設定にて、30分間検証したサンプルも確認。動作クロックや場所等は前述と同様。888クラスでも画質設定を下げれば60fps前後が安定するのかテスト。

グラフィック(最高)の720p→(中)568pへ設定を下げた場合、平均58.5fps、最低(1%)で48.6fps動作。最高画質での平均52.8fpsより多少は動作が改善してます。ただ、設定を下げても60fps安定とはなりません。

原神の画質設定を下げることで、要求するGPU性能を緩和(下げる)ことは可能です。Adreno 660でも最高画質では7~90%だった状態から、中設定では5~70%まで使用率が低下。

しかし依然としてCPU要求値は下がらず、中・最高画質に関係なくSnapdragon 888のCPUリソースをクロック固定でも50%前後使用するのは変わりません。根本的な原因が違うため画質(負荷)を下げても、多少…程度で劇的な動作改善には繋がらないのです。

Snapdragon 8 Gen 2 VS.1080p・4Kレンダリング原神

最後に少しだけ気になっていた、1080pや4Kに魔改造した原神とSnapdragon 8 Gen 2の対決をかるーくやります。

動作クロックとガバナーを定格に戻したSnapdragon 8 gen 2にて、GLToolsで720p→1080p(150%)にレンダリングした原神をグラフィック(最高)@60fps設定にて”千尋の砂漠”で約15分プレイして簡易計測。

1080pで定格のSnapdragon 8 Gen 2(Redmi K60 Pro)は、平均55.1fps、最低(1%)で41.6fpsにて動作し、CPUボトルネックが生じた720pでの疑似845~888の最低フレームレートを超えたうえで、問題無く遊べる平均55fpsを叩き出しました。

CPUは5~60%弱、GPUは7~85%前後で”まだ”余力が残されており、適切な設定であれば1080pの原神にSnapdragon 8 Gen 2は十分に通用すると思います。発熱さえ解決できればの話ですが…。

消費電力等は当然720pから増加し、約15分間で平均約9.2W、バッテリー最大温度は48℃に到達。30分とかの場合はファンレス駆動だと無理ですね…指とバッテリーがやられます。

1080pを平均55fpsで動作させることも驚嘆する結果ながら、消費電力がたった9.2Wな事に惚れ惚れしています。

前にやったSnapdragon 8 Gen 1で無理やり原神を50fps以上出すために、モジュールを用いて性能絞り出した場合、720pですら9.9W(約10W…)を超えます。ついでに720pをSnapdragon 8 Gen 1動作させるより、1080pの8 Gen 2の方が動作はスムーズという…。

POCO F4 GTの性能を調整、原神を平均54fpsで遊べる端末へと昇華させる
2週間弱掛かりましたが、ようやくPOCO F4 GTの調整が一段落ついたので記事にまとめます。 前提 root権限やモジュールの導入にあたりMagis...

4K(300%)レンダリングの場合は、流石のAdreno 740でもGPU性能が足りず680MHzでも使用率99%、今度はGPUバウンドが発生してCPUが遊び始めます。常用する気が無いので平均フレームレート等は計測してないです。

それでも大体20~30fpsの間で推移しており、最高画質の720pでたった10分間の計測ですらスタッター(ジャンク)を300以上叩き出し、平均12.4fpsしか出せなかったSnapdragon 845(Pixel 3)よりまだ動かせる水準。

海外で既に検証されていた通り、4Kにレンダリングした最高画質の原神をモバイル向けのArm系SoCが20fps前後とはいえ、4Kで動作させる程の性能を有するレベルになりました。

あとがき

本来はRedmi K60 Pro(Snapdragon 8 Gen 2)で1080pや4K相当を試したり、ダウンクロック化したらどうなるか程度のお遊び&メモ記事でした。

が…別の発見の方が大きかったので、ついでに消化しました。なので(仮)。

何故、Snapdragon 8 Gen 1の方がGPU性能が高く、ベンチマークスコア上は優位なのにSnapdragon 7+ Gen 2に劣るのか。そしてずーーーっと私の計測で、どんな状態(性能調整しても)であろうと上回れなかったのか。

何故、Snapdragon 865同士で3DMarkの結果・安定性は同じなのに、原神だと性能が全然違ったのか。

「ベンチマークスコアが違ってくるなら動作も違ってくる」というのは確かにそう。とはいえ…。

「Lowest Scoreが2000だと原神が大体60fps出る」というのも、GPUの安定性は高い方が良い。加えて720pの原神には総合的にSnapdragon 7+ Gen 2相当が理想的なので間違いでは無いです。どちらも端折り過ぎですね。

まぁ…辿り着いた答えがたまたま同じなだけで、6=1+2+3なのか6=1×2×3程度には”その結果までの道筋”が違いますが。

しかし、結局ベンチマークスコアが簡易的なものでしかないのは、実ゲームで常にCPU・GPUを99%使うことは基本的に有り得ないから。そして総合スコアやCPU・GPU単体のスコアではボトルネックを見ることが不可能。

原神はスマートフォン・タブレットにおける、CPUボトルネックが大きく影響する重量級PCタイトル”Microsoft Flight Simulator”的な存在。逆にスターレイルは、CPUよりもGPU性能に動作の良し悪しが大きく依存する激重な”Cyberpunk 2077”的存在。

一口に「重量級の3Dタイトル」と言っても、ゲームごとに性質が同じなわけがなく、それをベンチマークスコアだけでは判断しきれないという至極当たり前で簡単な答えでしかないです。解像度も統一されてないし。

例のアレを蒸し返すつもりはないですが、私自身が答えに辿り着けていない段階で触れていたのが間違いで、あれだけでは記述不足そのもの。加えて検証や知識が中途半端で不足。まだまだ憧れの存在からは遠く全然ダメ。

原神はCPUボトルネックの影響が深刻だと判断できる結果を得られた以上、今までの結果や段階も完全に無駄では無く、また各メーカーで同じSoCでも実動作に大きな差が生じることも深く理解できます。

海外(特に中華圏)では前提知識、真なるオタクとも言える方々は知っている情報で、今更私がCPUボトルネックを確かめたり、解像度に補足を入れたところでって話ですが…フォンテーヌで同じことを繰り返す前に自分で理解しておく必要がありました。

あとは、余談として「安価なBLUが確約されたSnapdragon 8 Gen 2」でRedmi K60 Proを買いましたが…結果的に役に立った端末なので、思っていたより気に入りました。

WHYLAB=サンXiaobai=サン、自分の計測結果でも最高画質@60fpsの原神(720p)において、平均58~59fpsを30分間でも安定して出せる端末かつ864p化も可能。WHYLAB=サンの計測では紅魔 8 Proの次に良い結果。

おまけにVC冷却も大きめで120W充電可、Xiaomi 13シリーズとカメラ以外は大きく劣らない良機種。惜しむらくは中国版のみなので、使いやすいROMがeuROMしか無いところですかね。

コメント

  1. ナタは より:

    ゲームタイトルごとの考察やCPU GPU ボトルネックの考察も非常に興味深く読んでいてたのしかったです。

    • hiro より:

      ありがとうございます。
      簡易的な検証とはいえ、あんまり興味を持つ人がいない内容なのでそう言って貰えると嬉しいです。

  2. MISTLua より:

    めちゃくちゃ面白かったです。ここまで定量的で参考になる検証をしてる記事は希少です。

    • hiro より:

      ありがとうございます。
      原神みたいなAAA級のモバイルゲームが出るまで、スマホゲーにCPUやGPUでボトルネックが生じるとは思ってもみませんでした…。
      ゲームにおけるボトルネックとかを考慮して書いている人はスマホ系では殆どいませんね、大半はそもそもゲーマーですら無いので。
      こういう変わった記事を出しているので、良かったらまた見に来てください。

タイトルとURLをコピーしました