Version: 6000.3
语言: 中文
收集帧时序数据
获取帧时序数据

帧时序管理器介绍

您可以使用FrameTimingManager捕获有关应用程序中单个帧性能的高级时序数据。然后,您可以使用此数据来评估您的应用程序是否满足性能目标。

您可以使用FrameTimingManager类在以下情况下:

帧时序不会替换分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表
.在使用FrameTimingManager,然后可以使用探查器调查特定详细信息。

注意: FrameTimingManager在 OpenGL ES 上记录数据时可能会降低 GPU 性能,因此无法准确度量应用程序的性能。

使用您从以下位置收集的数据FrameTimingManager请参阅获取帧时序数据

FrameTimingManager 数据可用性

FrameTimingManager提供具有 4 帧设置延迟的结果。这是出于以下原因:

  • CPU 计时结果不会在每帧结束时立即可用。
  • Unity 读取 GPU 时序结果时延为 3 帧。

注意:四帧延迟不能保证准确的计时结果,因为 GPU 可能没有任何可用资源来返回结果,或者可能无法正确返回结果。

有关可用时序的详细说明,请参阅获取帧时序数据

FrameTimingManger更改它生成FrameTimeCompletetimestamp 在以下情况下:

  • 如果 GPU 支持 GPU 时间戳,则 GPU 会提供FrameTimeComplete时间戳。
  • 如果 GPU 不支持 GPU 时间戳,但返回 GPU 时间FrameTimingManager计算gpuFrameTime.该值是报告的 GPU 时间和FirstSubmitTimestamp值。
  • 如果 GPU 不支持 GPU 时间戳并且不返回 GPU 时间,FrameTimingManager设置PresentTimestamp作为FrameTimeComplete.

平台支持

FrameTimingManager在以下平台和图形 API 上受支持:

平台 图形 支持
人造人 OpenGL ES 是的
人造人 火神 是的
iOS系统 金属 是的
Linux的 开放GL 部分:不支持 GPU 帧时间测量。
Linux的 火神 是的
macOS作系统 金属 是的
tv作系统 金属 是的
WebGL一种在 Web 浏览器中呈现 2D 和 3D 图形的 JavaScript API。Unity Web 构建选项允许 Unity 将内容发布为 JavaScript 程序,这些程序使用 HTML5 技术和 WebGL 渲染 API 在 Web 浏览器中运行 Unity 内容。更多信息
请参阅术语表
WebGL 部分:不支持 GPU 帧时间测量。
窗户 DirectX 11 的 是的
窗户 DirectX 12的 是的
窗户 开放GL 是的
窗户 火神 是的
XR一个总称,包括虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用。支持这些形式的交互式应用程序的设备可以称为 XR 设备。更多信息
请参阅术语表
OpenGL ES 部分:不支持 CPU 渲染线程帧时间和 GPU 帧时间测量。
XR的 火神 部分:不支持 CPU 渲染线程帧时间和 GPU 帧时间测量。

与基于图块的延迟渲染 GPU 兼容

对于使用基于图块的延迟渲染架构的 GPU(例如 Apple 设备中的 Metal GPU),报告的 GPU 时间可能大于报告的帧时间。

当 GPU 负载过重或 GPU 管道已满时,可能会发生这种情况。在这些情况下,GPU 可能会延迟某些渲染阶段的执行。因为FrameTimingManager测量帧渲染开始和结束之间的时间,阶段之间的任何间隙都会增加报告的 GPU 时间。

在以下示例中,没有可用的 GPU 资源,因为 GPU 将作业从顶点队列传递到片段队列。因此,GPU 的图形 API 会延迟下一阶段的执行。发生这种情况时,GPU 时间测量包括相位工作时间和两者之间的任何间隙。结果是FrameTimingManager报告的 GPU 时间测量值高于预期。

显示 Metal API 中报告的 GPU 时间差异如何发生的图表
显示 Metal API 中报告的 GPU 时间差异如何发生的图表

其他资源

收集帧时序数据
获取帧时序数据