[Xcode](https://developer.apple.com/xcode/ には、フレームデバッガーツールがあり、アプリケーションのフレームをキャプチャして、フレームで GPU が実行したコマンドを確認したり、GPU メモリのデータを調べたり、シェーダーのボトルネックを特定したりすることができます。これにより、GPU のパフォーマンスを解析することができます。
Unity は、Xcode のフレームデバッガーと以下のように統合されています。
フレームデバッグは、Xcode がサポートするプラットフォームとグラフィックス API で Unity が 実行されている場合にのみ機能します。Unity 2019.2 時点で、Xcode は Metal グラフィックスの macOS のみをサポートします。Unity が別の API を使用する場合、サポートされているグラフィックス API を選択するまで Xcode のインテグレーションは無効になります。
Xcode のフレームデバッガーを使用してアプリケーションからフレームをキャプチャするには、以下のいずれかを実行します。
FrameCapture
API を使用してフレームキャプチャを要求します。フレームキャプチャは、Xcode ですぐに解析することも、ディスクに保存することも可能です。このワークフローは、Metal を使用するすべてのプラットフォームでサポートされます。FrameCapture
API を使用してフレームキャプチャをディスクに保存することができます。このワークフローは iOS ではサポートされません。ここでは、アプリケーションを起動し、Xcode UI か FrameCapture
API を使用してフレームキャプチャーを実行する方法について説明します。
このワークフローは、Metal を使用するすべてのプラットフォームでサポートされます。
XcScheme
API を使用して、Xcode プロジェクトのスキームを設定することができます。これは、自動化されたビルドに役立ちます。詳細は、XcScheme API documentation を参照してください。FrameCapture
API を使って、スクリプトからフレームキャプチャを実行することもできます。詳細は、FrameCapture API のドキュメントを参照してください。Xcode でフレームキャプチャデータを分析する方法については、Xcode フレームデバッガーのドキュメント を参照してください。
ここでは、コマンドラインからアプリケーションを起動し、FrameCapture
API を使ってフレームキャプチャを実行し、その結果をディスクに保存する方法を説明します。
このワークフローは、iOS ではサポートされていません。iOS でフレームキャプチャを行うには、必ず Xcode からアプリケーションを起動する必要があります。
-enable-metal-capture
を設定します。Xcode は、コードが要求するとフレームキャプチャを実行し、その結果をディスクに保存します。Xcode でこのデータを分析する方法については、Xcode フレームデバッガーのドキュメント を参照してください。
macOS では、Xcode のフレームデバッガーを使って、Unity エディターからフレームを解析することができます。Xcodeを使用してUnity エディターを起動した場合、Unity エディターの UI からフレームキャプチャを要求することができます。
このセクションでは、Xcode から Unity エディターを起動し、Unity エディター UI、Xcode UI、FrameCapture
API を使用してフレームキャプチャを実行する方法について説明します。フレームキャプチャを即座に解析したり、結果をディスクに保存することができます。
このワークフローは macOS に対応しています。
FrameCapture
API を使って、スクリプトからフレームキャプチャを実行することもできます。詳細は、FrameCapture API のドキュメントを参照してください。Xcode でフレームキャプチャデータを分析する方法については、Xcode フレームデバッガーのドキュメント を参照してください。
ここでは、コマンドラインから Unity エディターを起動し、FrameCapture
API を使ってフレームキャプチャを実行し、その結果をディスクに保存する方法を説明します。
このワークフローは macOS に対応しています。
-enable-metal-capture
を設定します。Xcode は、コードが要求するとフレームキャプチャを実行し、その結果をディスクに保存します。Xcode でこのデータを分析する方法については、Xcode フレームデバッガーのドキュメント を参照してください。