开发
开发
选择平台

性能平视显示器

LINK PC-VR DOCUMENTATION
本主题介绍基于电脑 SDK 的开发。如需了解 Meta Quest 应用性能优化的详细信息,请根据您的开发平台查阅下列主题文章:
借助性能平视显示器 (HUD),您或您的用户可以查看使用 SDK 构建的应用的性能信息。
性能 HUD 屏幕由合成器渲染,使屏幕可以通过调用单个 SDK ovr_EndFrame 显示。在 Oculus 调试工具或 OculusWorldDemo 中,您可以按下 F11 切换不同的性能 HUD 屏幕。

性能摘要

性能摘要 HUD 显示了应用的帧率和未使用的硬件性能。您或用户可以使用此 HUD 来调整应用的模拟和图形保真度。由于用户无法禁用 V-Sync,因此它可以用来衡量性能,而不是计算帧率。无论问题涉及应用还是硬件设置,它都可以用来排除故障。
以下图像展示了性能摘要 HUD:
以下表格描述了每项指标:
指标描述
应用运动到光子延迟
从应用使用 ovr_GetTrackingState() 查询最后预测的追踪信息到目标帧的中间扫描线在 HMD 显示器上显示之间的延迟。这也是延迟时间 HUD 提供的相同信息。
未使用的性能
这项指标显示了应用和合成器未使用的可用电脑性能百分比,旨在帮助用户验证电脑功能是否足够强大,可以避免掉帧。计算方式是应用渲染时间 HUD 追踪的 CPU 和 GPU 时间除以 HMD 的原生帧时间(相反的刷新率)。注意:随着 GPU 利用率接近 100%,前面的自适应队列将选择更早的渲染起点。如果这个起点与上一帧中的合成器进程重叠,性能将达到峰值。如果您开始降低利用率,图表的趋势将先下降,再变得更加线性。
应用掉帧
每次应用未能在每次 V-Sync(垂直同步)前执行合成器之前使用 ovr_EndFrame 提交一组新的图层,该数据会增加。这与应用渲染时间 HUD 中应用丢失的提交次数相同。
合成器掉帧
每次合成器无法在 V-Sync(垂直同步)时呈现新的渲染帧时,该数据会增加。这与合成器渲染时间 HUD 中的合成器丢失的 V-Sync 次数相同。

延迟时间

延迟时间 HUD 显示了应用到中期光子、时间扭曲到光子-启动,以及时间扭曲到光子-启动图表。-->
以下截图显示了延迟时间 HUD:
以下表格描述了每项指标:
指标描述
应用追踪到中期光子
从应用调用 ovr_GetTrackingState() 到目标帧最终在 HMD 显示器上显示(即照亮)之间的延迟。
时间扭曲到中期光子
从最后预测的追踪信息被传输到 GPU 以执行时间扭曲到目标帧的中间扫描线在 HMD 显示器上显示之间的延迟。
翻转到光子-启动
从后背缓冲呈现到 HMD 到目标帧的第一条扫描线在 HMD 显示器上显示之间的时差。

应用渲染时间

应用渲染时间 HUD 显示了应用特定的渲染时间信息。
以下截图显示了应用渲染时间 HUD:
以下表格描述了每项指标:
指标描述
应用丢失的提交次数
每次应用未能在执行合成器之前和每次 V-Sync(垂直同步)之前使用 ovr_EndFrame 提交一组新的图层,该数据会增加。
应用帧率
应用渲染调用 ovr_EndFrame 的速率。该速率永远不会超过 HMD 的原生刷新率,因为根据需要调用 ovr_EndFrame 会限制应用的 CPU 执行。
应用渲染 GPU 时间
客户端应用在渲染上花费的总 GPU 时间。这包括应用从 ovr_EndFrame 返回后使用镜面纹理(如适用)完成的工作。如果应用的 CPU 线程没有足够快地将数据推送到 GPU 以保持 GPU 被占用,那么该时间也包括 GPU 命令缓冲区“气泡”。类似地,如果应用几乎充分利用 GPU,下一帧 (N+1) 的工作可能会被合成器在当前帧 (N) 上的渲染工作抢占。由于应用 GPU 时间查询的操作方式,这可能导致应用 GPU 时间过分增加,因为该时间会开始包含合成器 GPU 使用时间。
应用渲染 CPU 时间
从应用继续在 CPU 上执行到 ovr_EndFrame 返回后续的 ovr_EndFrame 调用之间的时差。如果延迟测试器没有按预期运行(例如,由于长时间不运作,HMD 显示器处于睡眠状态),该时间将显示“N/A”。这包括客户端应用调用 ovr_EndFrame 后向合成器发出的 IPC 调用消耗。
 

合成器渲染时间

合成器渲染时间 HUD 显示了运行时合成器的渲染时间信息。合成器会向由 VR 应用提供的图层眼部纹理应用失真和时间扭曲。
以下截图显示了合成器渲染时间 HUD:
以下表格描述了每项指标:
指标描述
合成器丢失的 V-Sync 次数
每次合成器无法在 V-Sync(垂直同步)时呈现新的渲染帧时,该数据会增加。
合成器帧率
最终合成的速率;这与客户端应用渲染速率无关。由于合成器始终锁定为 V-Sync,因此该值永远不会超过原生 HMD 刷新率。但是,如果合成器未能按时完成新的帧,帧率可能会低于原生刷新率。
合成器 GPU 时间
GPU 在执行合成器渲染器上花费的时间。这包括应用提交的所有图层的时间扭曲和失真。活跃图层的数量、其分辨率和要求的采样质量都会影响 GPU 时间。
合成器 GPU 端到 V-Sync
从 GPU 完成合成器渲染到完成 V-Sync 且该缓冲区开始扫描 HMD 之间的时间。

异步空间扭曲数据

异步空间扭曲 (ASW) HUD 显示了异步空间扭曲的活动和追踪数据,异步空间扭曲会作为运行时合成器的一部分运行。当应用未能达到所连接的 HMD 要求的原生帧率时,异步空间扭曲会启动启用。启用后,异步空间扭曲会强制应用以正常帧率的一半运行,同时外推其他所有帧。这样应用就有更多时间完成工作。
以下截图显示了异步空间扭曲 HUD:
以下表格描述了每项指标:
指标描述
异步空间扭曲状态
显示异步空间扭曲的可用情况和当前状态。“不可用”可能是由于电脑上使用的操作系统和/或 GPU 类型。“可用 — 未启用”表示应用成功维持所需的原生刷新率,因此异步空间扭曲未启用。
异步空间扭曲启用切换次数
追踪 HMD 使用期内异步空间扭曲启用的次数。
异步空间扭曲呈现的帧数
追踪已显示的异步空间扭曲外推帧数。启用异步空间扭曲时,由于应用被强制以一半的帧率运行,因此在 90 Hz 刷新率的 HMD 上,该数值会增加 45 fps。
异步空间扭曲失败的帧数
追踪异步空间扭曲需要显示但未能及时准备的外推帧数。造成这种情况的原因有多种,但可能是由于超出系统功能时,操作系统资源被争用而造成的。

版本信息

版本信息 HUD 显示了 HMD 和用于创建应用的 SDK 版本的信息。
以下截图显示了版本信息 HUD:
以下表格介绍了每项信息:
名称描述
OVR SDK 运行时版本
当前安装的运行时版本。使用 0.5.0 版本以上的 OVR SDK 的所有 VR 应用都使用此运行时。
OVR SDK 客户端 DLL 版本
编译客户端应用时使用的 SDK 版本。
HMD 类型
HMD 的类型。
HMD 序列号
HMD 的序列号。
HMD 固件
所安装的 HMD 固件的版本。
传感器序列号
位置传感器的序列号。
传感器固件
所安装的位置传感器固件的版本。