UE4 Android + SnapdragonProfiler

UE4 Android + SnapdragonProfiler

UE4確認バージョン  4.24.3

※SnapdragonProfiler v2019.4

※Pixel4 XL

Android ver 10

 

 

UE4モバイルでのプロファイルをしていると

CPUは計測できるがGPUが計測できなくて困ることがあります。

AndroidであればGPU部分のチップがメーカーによって違い

GPU用のProfilerを使い分けないといけない場合があります。

今回はハイエンドモバイルで採用例が多いSnapdragonでの

Profilerの簡単な使い方をまとめておきます。

 

 

※一応、4.23から追加されたUnrealInsightsを使えば計測ができるようです

qiita.com

 

 

準備 SnapdragonProfiler 入手

・まずProfilerツールの入手なのですがQualcommサイトのアカウントを作成する必要があります

・アカウント作成の後、以下の場所からツールをDLします。

・今回はWindowsPC上でプロファイルをするので「SnapdragonProfiler-windows

を選択します。

 

f:id:CrabPunch:20200305125232p:plain

f:id:CrabPunch:20200305125315p:plain

 

インストーラーを起動しセットアップを手順通りにすすめてください。

※インストール途中で [GTK ]が必要といわれる場合はまずそちらのDLをインストールを

しましょう。

※今回のSnapdragonProfilerのバージョンはv2019.4はGTK2.12.44が要求されました。

 

※また取得したSnapdragonProfilerのプロファイラーは別途保存しておくことを

お勧めします。新しいバージョンが配布されると過去のバージョンが

入手できない場合があります。しかし最新バージョンだと不安定で

過去のバージョンのほうが安定してプロファイルがとれる場合があるからです。

そのため一度入手したインストーラーのバックアップはしておきましょう。

 

 

準備 UE4にてAndroid用のプロジェクトを作成

・今回は仮に「TestProject」という名前で作成しておきます。

※4.24.3のandroidパッケージは

私の環境だけかもしれないのですがパッケージがslateまわりでこけることが何度かあります、ただ、キャッシュが作成され再度作成すると途中からパッケージが進んでいるので1、2度こけてもパッケージ作成ができる場合があります、、

f:id:CrabPunch:20200305132837p:plain 

手順1

準備が終われば、PCとAndroidをUSB接続します。

※USBデバッグを有効な状態にしておいてください。

 

接続ができたら、先ほど作成したTestProjectパッケージを

端末にインストールします

 

手順2

次にPCにてSnapdragonProfilerを立ち上げます。

最初は「Connect to Device」のみが有効となっています

f:id:CrabPunch:20200305131231p:plain

 

「Connect to Device」から対象端末を選び、

Connectボタンを押します。

 

f:id:CrabPunch:20200305132521p:plain

Connectが成功すると

「Realtime」

「New Trace Capture」

「New Snapshot Capture」

が有効になります

 

f:id:CrabPunch:20200305132645p:plain

 

 

Realtime

対象端末にて「TestProject」を立ち上げます。

その後、SnapdragonProfilerから「Realtime」を選択します。

 

「Realtime」は接続した端末の各種アプリケーションの

各種プロセスがグラフによりリアルタイムに確認できます。

CPU GPU メモリ 通信 バッテリーや細々とした内容が計測できます。

左上のLaunchApplicationの下に対象端末で起動しているアプリケーション一覧が

表示されるのですが数多くて見づらいので上のフィルタリングで対象の

アプリケーションを探します。

f:id:CrabPunch:20200305133506p:plain

 

 

計測したいアプリケーションを発見したら

アプリケーション一覧からアプリ選択してフォーカスを合わせます

その状態で次に見たいプロセスの項目をダブルクリックします

 

f:id:CrabPunch:20200305133826p:plain

 

 

New Trace Capture

TraceCaptureは自分の任意の開始タイミングと停止タイミングの間を

指定したプロセスのイベントをタイムラインにて確認できるものです。

 

・まずNewTraceCaptureを選び

・キャプチャーしたいプロセスを選択します

・次に対象となるアプリケーションを選択します

f:id:CrabPunch:20200305135435p:plain

 

ここまで準備ができたのなら起動しているアプリケーションで

計測したい場所とタイミングまでアプリケーションを進めます。

タイミングがきたら、左上の

「StartCapture」ボタンを押せば計測開始になります

その後数秒なり数分なりアプリケーションをプレイした後

「StartCapture」のボタンが「StopCapture」となっているので

押して計測を停止します。

f:id:CrabPunch:20200305135539p:plain

 

停止を押してからタイムライン表示まで少し時間がかかります。

f:id:CrabPunch:20200305135902p:plain

計測されたタイムラインは拡大などができ詳細表示されて確認ができます。

 

f:id:CrabPunch:20200305140007p:plain

 

New Snapshot Capture

 最後にSnapshotCaptureですが

こちらは任意プロセスの内容をの1Frameを詳細にCaptureするものです。

手順はプロセスを指定

アプリケーションを選択

左上のTakeSnapshotを押す

f:id:CrabPunch:20200305140649p:plain

 

すると対象のアプリケーションの画面がCaptureされます

そのFrameのDrawイベント内容が順番に確認できます’

 

f:id:CrabPunch:20200305141446p:plain

 

上から順番に描画された内容が確認できるので

指定のイベントをダブルクリックすると

ビューポート画面にて対象のオブジェクトが赤く明滅してくれます

f:id:CrabPunch:20200305141540p:plain

 

f:id:CrabPunch:20200305141718p:plain

 

 

 

おしまい

使い方を箇条書きしただけですが以上となります。

SnapdragonProfilerを1,2年前使用してた感想としては

かなりの頻度でクラッシュしてしまい計測するのがストレスでしたが

今回久々に計測した環境ですと例外1回を除いて

クラッシュすることがなく快適に計測できました。

 

1度だけクラッシュしたのですが計測対象のプロセスを

大量に選択したのが悪かったのかもしれません、

全て選択などせずに必要な部分だけ選んで計測する分には

安定しておりました。