2017年6月23日

ARM の Mali Graphics Debugger を使ってモバイル向けアンリアル エンジン アプリケーションを最適化

作成 Alexander Paschall

ARM の Mali Graphics Debugger は、モバイル プラットフォームのグラフィック アプリケーションの最適化を支援するツールです。UE4.15 以降では、Mali Graphics Debugger は、プロジェクト設定ウィンドウでオプションを選択するだけで簡単に使用することができます。UE4.15 では、エディタから直接モバイル デバイスのプロファイリングを有効にする機能が加わりました。過去のブログ記事 では、UE4.15 よりも前のバージョンでこの機能を有効にする方法を説明しました。以下の内容は、4.15 以降 に適用されます。この記事は、Mali Graphics Debugger バージョン 4.5 を用いて書きました。

アンリアル エンジンのライブ ストリームで ARM のエンジニアが、UE4 に Mali Graphics Debugger を実装し、Android デバイスをデバッグする方法を実演しました。Samsung S7 を使用し、リアルタイムでデバイスとデバッガーを実行し、プロジェクトを最適化しました。
 

Mali Graphics Debugger は非常に簡単に起動することができます。プロジェクト設定ウィンドウでオプションを選択するだけです。まずプロジェクトを開きます。次に、[Project Settings (プロジェクト設定)] ウィンドウを開きます。ここから、左側のメニューで [Platforms] の下にある [Android] を探します。メニュー内の、[Platforms] セクション で、 [Graphics Debugger]  セクションを探します。最後に、ドロップダウン メニューから [Mali Graphics Debugger] を選択します。
Project Settings

選択したら、ホスト コンピュータ上で Mali Graphics Debugger インストールのパスを入力しなければなりません。これが機能するためには、システムに Mali Graphics Debugger の有効なバージョンが入っている必要があります。インストール方法の詳細は、こちら をご覧ください。
 
Settings

次に、MGD Daemon をターゲット デバイスにインストールします。これを行うには、MGD インストール フォルダを探し、 target\android\arm 内に、以下のコマンドを使って MGDDaemon をインストールします。
 

adb install -r MGD.apk


アプリケーションを実行する前に、ホスト PC から以下のコマンドを実行する必要があります ("adb devices" コマンドを先に実行して、そのデバイスを表示させておいてください)。

adb forward tcp:5002 tcp:5002


MGD daemon アプリケーションをターゲット端末で実行し、daemon そのものを起動します。
blogAssets%2F2017%2FJUNE+2017%2FARM+Mali+Graphics+Debugger%2FMALI_03-320x210-7e86bc8fd2479e24c233f50700f517cf87746029

この時点でホスト PC でデバイスを MGD に接続できるので、アプリケーションを開始してデバッグを開始します。操作方法の詳細については、MGD マニュアル を参照してください。
blogAssets%2F2017%2FJUNE+2017%2FARM+Mali+Graphics+Debugger%2FMALI_04-320x179-5be378c8e481d239e3386e90be947ce82142328b
Mali

非常に複雑なアプリケーションなど一部のケースでは、ゲーム スレッドがレンダリング スレッドを待ってタイムアウトすることがあります。最終的にこうしたログが表示されます (ログを表示するには、'adb logcat –s “UE4”' というコマンドを使用します)。

GameThread timed out waiting for RenderThread after 30.01 secs


この場合、Unreal コンソール (デフォルトで 4 フィンガー タップ) でこれを実行して、タイムアウトを無効にします。
 

g.TimeoutForBlockOnRenderFence 9999999


こうしたステップに従うと、すべての Mali ベース プラットフォーム上でアンリアル アプリケーションと合わせて Mali Graphics Debugger を使うことができます。お気付きの点や問題があれば、コミュニティ ページ でお知らせください。コミュニティ メンバーが支援します。