Version: Unity 6.0 (6000.0)
言語 : 日本語
Frame Timing Manager
フレームのタイミングデータの取得

Frame Timing Manager の概要

FrameTimingManager は、アプリケーションの個々のフレーム中のパフォーマンスに関する詳細なタイミングデータを取得する API です。このデータを使用してフレームを評価することで、アプリケーションがパフォーマンス目標に達しない理由を理解することができます。

以下のような場合に FrameTimingManager を使用してください。

フレームタイミングは、プロファイラー からのデータを置き換えるものではありません。アプリケーションの概要の高度なプロファイルを行った後、FrameTimingManager を使用して特定の詳細を調査します。FrameTimingManager はデータを記録するときにパフォーマンスを低下させるため、アプリケーションのパフォーマンスを正確に測定することはできません。

プラットフォームのサポート

| プロパティ | 説明 | サポートあり | コメント | | :————— | :—— | :——- | :—————————– | | Windows | DirectX 11 | はい | | | | DirectX 12 | はい | | | | OpenGL | はい | | | | Vulkan | はい | | | macOS | Metal | はい | タイルベースのディファードレンダリング GPU の動作により、総フレーム時間よりも大きな GPU 時間測定値がレポートされる可能性があります。 | | Linux | OpenGL | 部分的 | GPU 時間計測をサポートしていません。 | | | Vulkan | はい | | | Android | OpenGL ES | はい | | | | Vulkan | はい | | | iOS | Metal | はい | タイルベースのディファードレンダリング GPU の動作により、総フレーム時間よりも大きな GPU 時間測定値がレポートされる可能性があります。 | | tvOS | Metal | はい | タイルベースのディファードレンダリング GPU の動作により、総フレーム時間よりも大きな GPU 時間測定値がレポートされる可能性があります。 | | WebGL | WebGL | 部分的 | GPU 時間計測をサポートしていません。 |

FrameTimingManager の機能について

FrameTimingManager は、4 フレーム分の固定された遅延を含んだ結果を提供します。これは、タイミングの結果が各フレームの終了時にすぐに得られないからで、このために FrameTimingManager はフレームの CPU および GPU データを取得する前に待機するからです。

この遅延は、正確なタイミングの結果を保証するものではありません。なぜなら、GPU が結果を返すために使用可能なリソースを持っていなかったり、正しく結果を返せない可能性があるからです。

FrameTimingManger は、以下のような特定の状況下では、FrameTimeComplete タイムスタンプの生成方法を変更します。

  • GPU が GPU タイムスタンプをサポートしている場合は、GPU が FrameTimeComplete タイムスタンプを提供します。
  • GPU が GPU タイムスタンプをサポートしておらず GPU Time を返す場合は、FrameTimingManager は gpuFrameTime の値を計算します。この値は、レポートされた GPU Time と FirstSubmitTimestamp の値の合計です。
  • GPU が GPU タイムスタンプをサポートしておらず、GPU Timeを返さない場合は、FrameTimingManager は PresentTimestamp の値を FrameTimeComplete の値として設定します。

追加リソース

Frame Timing Manager
フレームのタイミングデータの取得