3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Armのプロファイリングツール『Streamline』でオーバードローを計測してみた

Last updated at Posted at 2025-12-11

この記事は Unity Advent Calendar 2025の12日目の記事になります!

はじめに

Armのプロファイリングツールである『Streamline』をインストールし、動くようになるまでのセットアップ、その後の計測についてを書きます。

Streamlineを使用しようと思った経緯ですが、もともとSnapDragonのプロファイリングツールを使用してオーバードローの割合を調べようと思っていました。

こちらのSnapDragonのプロファイリングツールについてのページを見るとSnapshotで『overdraw analysis』という機能があるらしく、これを使ってみたい!と思っていました。

しかし、自分はNothing Phone (2a)というスマホを使っており、これに搭載されているGPUはArm製だったのでStreamlineを使用することにしました。

Unity

プロファイリングするためにまずはUnityを使用してテスト用のデータをビルドします。

image.png

Unityの左上のFile > Buid Settingsからメニューを開き以下のように設定します。

image.png

①PlatformをAndroidにする
PlatformはAndroidを選択、この時選択しても右に何も項目が出てこない場合はAndroidビルド用のモジュールをインストールします。
これを選択することでAndroid用にゲームをビルドします。

②Developmet Buildを選択する
Developmet Buildを選択します。
これをすることでビルドしたゲームをUnityProfilerや他のプロファイリング機能で解析したりできるようになります。

image.png

次にPlayer Settingsから他の項目を設定します。

image.png

①アプリ名を設定する
Player項目のProduct Nameにアプリ名を入れます。

image.png

②Configurationを設定する
Scripting BackendをIL2CPPにします。
Target ArchitecturesをARM64に設定します。

image.png

これで設定項目はすべてなのでBuildボタンを押してビルドします。

image.png

ビルドが終わりとログに成功、もしくは失敗が出てきます。
失敗した場合はスクリプトがエラーになっていないか(コンパイルエラーが起きていたり、UnityEditor用のコードがビルドに含まれてしまってエラーになったりなど)を確かめます。

image.png

作成できたAPKはAndroidスマホにいれ、スマホのファイルを見るアプリでこのAPKをタップすることでインストールできます。

Streamline

インストール方法

StreamlineはArm Performance Studitoというパフォーマンスを計測するツールがいくつか入ったパッケージの中の1つのツールのため、Arm Performance Studitoを入れることになります。

こちらのページに飛び、使用しているOSに対応したものをダウンロードします。

他にも内包されているツールが気になる方はこちらでArm Performance Studitonにはどのようなツールが入っているのか紹介されています。

  • Performance Advisor
  • Streamline
  • Frame Advisor
  • Mali Offline Compiler
  • RenderDoc for Arm GPUs
    が含まれています。

インストーラー起動後、設定に注意しないといけない項目などは無いため割愛します。

Streamlineを起動してみる

Pasted image 20251028005546.png

このような画面が出ます。

image.png

画面のそれぞれの場所の説明は上記の通りです。

image.png

しかし、上記の画像のようにADBというものがない状態だとPCとスマホを接続しても何も起きないです。
ADBとはAndroid Debug Bridgenの略で、これが使える状態にないとStreamlineは使用できません。

ADB(Android Debug Bridge)のインストール方法

ADBが入っているか確認する

まず、使っているPCにADBがインストールされているのか確認します。
コマンドプロンプトを開き(Windowsの場合)adb --helpを入力して打ちます。
その後下記のようにADBのバージョンなどいろいろ文字が出てきたらインストールされている状態です。

Android Debug Bridge version 1.0.41
Version 36.0.0-13206524
Installed as 『インストール場所』
~~いろいろ情報がたくさん書かれている~~

ADBがない場合

上のコマンドを入力して何も出なかった場合はインストールされていない状態です。
そのためインストールします。
ADBはAndroid SDK Platform Toolsというものの中に含まれているのでこれを手に入れます。

こちらから対象OSのものをダウンロードします。

image.png

Zipが手に入るので展開し、上記のデータ達をパスに全角文字が含まれない場所に置きます。
その後、これをコマンドプロンプトで使えるように環境変数として登録します。

image.png

Windowsの設定を開き、上の検索欄で『環境変数』と検索して『環境変数を編集』するウィンドウを出します。

image.png

ユーザー環境変数のPathを選択して編集ボタンを押し、編集します。

image.png

ここに新規でplatform-toolsまでのパスを格納します。ここに追加する必要があるため、platform-toolsは全角文字がないパスに保存するのが安全です。

保存後、コマンドプロンプトを開き adb --helpを入力してインストール場所やバージョンについてのログが流れてきたら成功です。

StreamlineにADBを設定する

次に、インストールしたADBをStreamlineから使えるように設定します。

image.png

Streamlineの上のメニュー一覧からウィンドウ > 環境設定を開きます。
外部ツールを開き、ADBパスにadb.exeまでのパスを入力します。
設定したらApply And Closeで閉じ、Streamlineを再起動します。

image.png

SelectDevice欄にこのようなメッセージが出ていれば成功です。

計測する

ここまで準備したら端末をPCに接続します。

image.png

Select Device欄に自分の端末が表示され、Select Application欄にビルドしたUnityアプリが表示されていれば問題ないです。

計測したいアプリを選び、右下のStart Captureボタンを押して開始します。

StartCaptureはスマホのロックがかかっていても自動でゲームが起動します。
この点は注意してください。

image.png

計測が中や結果はこのようになります。

正直、取得できる項目が多すぎて自分でも理解できているのは数種類しか無いです…

image.png

歯車マークを押すと計測項目のオプションが開きます。

image.png

折れ線グラフを棒グラフに変更したり、グラフの色を変更したり、このグラフを出すための計算式を変更したりできます。
式の欄に$~~を入力する、またはCtrl+Spaceで予測変換が出てきます。
ただし、Ctrl+Zなどでこの欄を戻せなかったので注意してください。

オーバードローの計測

試しにオーバードローの計測を行います。

半透明の板を10枚並べ、その状態を計測しました。

Pasted image 20251101233344.png

オーバードローはMali Overdrawの項目で確認することができます。
公式のドキュメントによれば

Mali Overdraw チャートには、出力ピクセルごとにシェーディングされたフラグメントの数が表示されます。理想的には、この数は 3 未満にする必要があります。

とあり、3未満にするのが良いそうです。

($MaliShaderWarpsFragmentWarps * 16) / ($MaliGPUTasksFragmentTasks * 1024)

1.63Threadsという結果やグラフは上の計算式によって計算されていますが、これが本当に半透明の重なりの時の回数を数えてくれているのかわからなかったです。

そのため、不透明を重ねた状態も作って検証します。

Pasted image 20251102114821.png

Pasted image 20251102114759.png

不透明を重ねたときの結果は1.28threadsという結果になりました。

そのため、Streamlineで計測されるOverdrawの項目はしっかりと半透明の時の重なりについて計測が行えていそうです。

さいごに

今回はArmのプロファイリングツールの『Streamline』を使ってみました。
Unityよりも詳しくいろいろな数値を見ることができ、とても便利そうだと思いました。
まだ、どの数値がどういったことを調べるのに使えるのかわかっていないことが多いですが少しづつ使ってみようと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?