はじめまして。普段はiOSを使っているのに開発中はAndroid周りについて見ること多いsuzu-jです。
最近はHuawei製の端末等、国内でも搭載しているSoCがSnapdragonではない端末が増えてきました。 そんな端末でも、読み込まれているテクスチャや、描画順の確認等、グラフィックス周りのデバッグをするために、今回は Mali Graphics Debugger の使い方を紹介します。
対象はCPUがARMでGPUがMaliのAndroidとなります。 x86系統のCPUだとrootedな端末が必要な上、手順が違うため今回の記事では対象外です。
説明は dtab Compact d-02H と Windows 上で行いますので、Mac等その他のOSを使っている方は適宜読み替えてください。
なお、大体のアプリに繋げられてしまうSnapdragon系列と違い、こちらは残念ながら自分でビルドするアプリケーションでしか見れません。 むしろセキュリティ的に見えるのがおかしいと思うのですが。
まずはダウンロード、公式サイトから自分のプラットフォームに応じてダウンロードしてインストールします。
インストール後は Edit->Preferences
の Path to ADB
にADBのパスを指定しておきましょう。
端末側にはDebuggerと繋げるためのアプリケーションをインストールする必要があります。
Windowsでインストール先を変えていなければ、 C:\Program Files\Arm\Mali Developer Tools\Mali Graphics Debugger v4.8.0\target\android\
に MGD.apk
があるため adb install
でインストールしましょう。
アプリケーション側にはPluginを入れる必要があります。
Pluginは C:\Program Files\Arm\Mali Developer Tools\Mali Graphics Debugger v4.8.0\target\android\
以下に、各CPUに応じたlibMGD.so
があるので、デバッグしたい端末に応じて配置していきましょう。
今回の端末はarm-v7aの端末なので C:\Program Files\Arm\Mali Developer Tools\Mali Graphics Debugger v4.8.0\target\android\arm\unrooted\armeabi-v7a\libMGD.so
を Assets\Plugins\Android\libs\armeabi-v7a
以下に配置します。
通常であればこれで準備完了となります。
対象アプリのAPKをインストール後に、PCとAndroidを繋げたまま、Android側の Mali Graphics Debugger を起動しましょう。 Enable MGD Deamon:
の項目をONにして下のアプリケーション一覧からDebuggerに繋げたいアプリを起動しましょう。
アプリを起動したらPC側のDebuggerから Debug->Open the Device Manager
を選択すると、接続している端末の一覧を開きます。
接続したい端末名の左にあるアイコンを選択すれば接続完了。晴れて各種描画関連の確認が出来るようになりました!
Debugger起動前にアプリを開いている場合、うまく接続できないことがあるようなので、アプリのタスクキルをしてから再度開きなおしてみましょう。
Activityをカスタマイズしている等の場合、Activity側にも手を入れる必要があります。UnityPlayer
を new
するより前に System.loadLibrary("MGD");
を呼んであげましょう。 よくわからないけれど使っている外部PluginがActivityを書き換えている、という場合は onCreate
をOverrideしたActivityを作ってあげると動くことが多いと思います。
それではよい最適化ライフを!
明日、20日目はやまださんです。よろしくお願いします。
KLabのゲーム開発・運用で培われた技術や挑戦とそのノウハウを発信します。
合わせて読みたい
KLabのゲーム開発・運用で培われた技術や挑戦とそのノウハウを発信します。