丢帧、卡顿、插值,如何用英伟达FCAT VR详细测试VR系统性能
作者:媒体转发 时间:2018-11-20 21:03
英伟达 于2013年推出的FCAT改变了图形显卡基准测试,这款免费的工具不仅能支持游戏玩家和测评者测试FPS,同时还可以测试游戏在不同显卡上的流畅度和质量。借助FCAT,用户可以首次以复杂的细节来衡量性能,判断卡顿,丢帧,以及不正确的多GPU帧间距等等。现在,最佳的显卡是快速且流畅,并允许游戏玩家在每次游戏中都能享受到更加愉悦体验的产品。
英伟达于2017年3月正式推出了FCAT VR,从而帮助游戏开发者,硬件厂商和VR爱好者能够可靠地测试VR游戏的性能。对于VR体验,快速和流畅的性能表现可以防止糟糕的 晕动症 影响,而后者有可能导致眼睛疲劳和不适。

在这之前,虚拟现实测试依赖于通用基准测试工具,综合测试和零件拼装解决方案,而它们难以说明显卡的真实性能。借助FCAT VR,我们可以读取一系列的数据,如英伟达驱动程序, Oculus Rift 的Event Tracing for Windows (ETW),以及 HTC Vive 的 Steam VR性能API数据,从而为所有显卡生成精确的VR性能数据。
使用相关的数据,FCAT VR用户可以创建图表并分析帧时间,丢帧,运行时扭曲丢帧和异步空间扭曲合成帧的数据,判断卡顿,插值,以及任意显卡在运行虚拟现实游戏时的体验。
如果你希望使用FCAT VR来对系统进行基准测试,我可以告诉你测试本身十分简单,但设置基准数据分析确实需要经过数个步骤。下面由映维网整理的具体操作指南和额外信息可帮助你更深入了解FCAT VR测试。
1. FCAT VR测试详细介绍
今天领先的高端VR头显 Oculus Rift 和HTC Vive 都以90Hz的固定间隔刷新屏幕,相当于每隔约11.1毫秒刷新一次屏幕。VSYNC需要启动以防止图像撕裂,因为头显画面的撕裂会对用户造成严重不适。
用于传输帧的VR软件可以分成两部分:VR Game和VR Runtime。当满足了时序要求,而且流程正确进行,你将能观察到下面的顺序事件:
VR Game对当前头显位置传感器进行采样,并更新游戏中的camera位置以正确追踪用户的头部。
游戏将建立一个图形帧,而GPU则将新帧渲染到纹理(非最终显示)。
VR Runtime读取新纹理,进行修改,并生成显示在头显显示屏上的最终图像。其中两个有趣的修改包括色彩校正和镜头校正,但VR Runtime完成的工作可以更精细。
下面显示了时序图表中的内容:
1.1 理想的VR管道
如果生成帧的时间超过刷新间隔,运行时的工作将变得非常复杂。在这种情况下,VR Game 和VR Runtime的总耗用时间太长,而且帧将无法在下一次扫描开始时显示。
在这种情况下,头显通常会重新显示来自运行时的先前渲染帧,但对于VR而言,这种体验不可接受,因为在VR头显显示器上重复旧帧忽略了头部运动,并将导致糟糕的用户体验。
运行时采用各种技术来改善这种情况,包括合成新帧而不是重复旧帧的算法。大多数技术都集中在二次投影的概念上:二次投影使用最新的头部传感器位置输入来调整旧帧,从而匹配当前的头部位置。这并没有改善嵌入在帧中的动画(受到较低帧速率和卡顿的影响),但能够在头显中显示有着更佳头部运动追踪的更加流畅的视觉体验。
FCAT VR Capture为Rift和Vive捕捉了四个关键性能指标:
丢帧(也称为App Miss或App Drop)
未扭曲
帧时间数据
异步空间扭曲合成帧
1.1.1 丢帧
每当VR Game渲染的帧到达时间太晚而无法在当前刷新间隔中显示时,丢帧将会出现并导致游戏卡顿。理解丢帧情况并进行测量可以深入判断VR性能。
1.1.2 合成帧
合成帧:异步空间扭曲是一种应用先前渲染帧的动画检测以合成新的预测帧的过程。
请参见下面的异步空间扭曲一节以进一步了解具体的工作原理。
1.1.3 未扭曲
未扭曲对VR体验来说是一个更重要的问题。只要运行时无法在当前刷新间隔中生成新帧(或重新投影的帧),未扭曲就会发生。在上图中,GPU重新显示了先前扭曲的帧。VR用户将此冻结时间视为严重的卡顿。
1.1.4 帧时间
由于FCAT VR提供详细的时序,因此它可以准确地测量任何内容的无限定FPS。通过检测系统渲染每帧所需的时间,我们可以看到系统在非90Hz刷新节奏的情况下显示该帧的速度有多快。利用这个信息,FCAT VR Capture可查看帧内部以计算估计的余量,并能够在固定刷新率的VR生态系统中真正测量VR内容的相对GPU性能。
1.2 使用FCAT VR对Oculus Rift进行测试
FCAT VR Capture直接访问Oculus运行时记录到ETW的性能信息。按下热键后,FCAT VR Capture会动态捕捉所需的事件,并将其转换为可读的时间戳,然后记录到CSV文件中。
今天Oculus生成以下时间戳:
App Render Begin(应用渲染开始)
App Render Completion(应用渲染完成)
App Miss(丢帧)
Warp Render Begin(扭曲渲染开始)
Warp Render Completion(扭曲渲染完成)
Warp Miss(未扭曲)
当前的SDK版本支持<= 1.11。 1.2.1 Oculus:FCAT VR Capture各栏解释
下表显示了FCAT VR Capture各栏和相应的Oculus事件。(注:N/A表示“不可用”,某些ETW事件没有字段)
1.2.2 异步空间扭曲(ASW)
异步空间扭曲是Oculus开发的一项技术,旨在提高主流GPU的流畅度。在这种情况,默认在1.10 BETA公共运行时中启用ASW。




