Facebook发布Quest性能优化工具——RencerDoc独立分支

2020-09-08 06:10:34来源:YiVian


查看引用/信息源请点击:映维网

Oculus将维护自己的fork

1.TileTimeline时间轴

无我VR 聚合新闻

新数据将以TileTimeline视图的形式呈现,而你可以通过“Window”->“TileTimeline”菜单打开。当成功完成渲染阶段跟踪后,系统将显示单个帧的时间轴视图。时间轴的第一行显示在帧期间连续渲染的每个表面,包括表面ID,表面尺寸,MSAA状态,bitcolor,Tile尺寸和Tile数量等等。

时间轴的第二行列出了给定表面的每个Tile的所有渲染阶段。这将为每个渲染阶段提供精确的计时(以微秒为单位),色键和标签指示渲染阶段的类型:

Binning:Binning阶段

LoadColor:当数据从系统内存读入GMEM时

Render:当Tile渲染器在GMEM中渲染原语时

StoreColor:将数据从GMEM写入系统内存中的渲染目标时

LoadDepth和StoreDepth的作用与LoadColor和StoreColor相同,但用于表面的深度读取和写入

Blit:Blit操作

TileTimeline显示了大量的信息,所以你可以通过鼠标滚轮缩放时间轴的特定区域。你或许记得GPUStstrace的渲染阶段;这里的渲染阶段信息与你从Ststrace获得的信息相同。RenderDoc的UI令渲染阶段捕获变得更为方便,但无法查看CPU-GPU的并发性。有关渲染阶段的详细说明,请访问这个文档。

绘制调用度量

除了渲染阶段跟踪之外,RenderDocforOculus现在允许你通过VulkanAPI对应用程序执行绘制调用跟踪,并收集多达45个与绘制调用相关的底层度量。

无我VR 聚合新闻

Oculus已经对每个度量进行过详细的说明。

如何使用

当在RenderDoc选择一个ReplayContext时,你将会在通常的Quest设备连接旁边看到一个新的Context;它称为“OculusQuestProfilingMode”,并且是你应该使用的Context。如果这是你第一次在设备安装RenderDoc,头显会提示你授予RenderDoc写入文件的权限。

无我VR 聚合新闻

单击ProfilingMode后,RenderDoc将在安装并在头显运行服务器,然后建立连接。ProfilingModeReplayContext将头显置于详细的GPU分析模式。为了换取精确的分析数据,这种模式会带来5-10%的GPU性能损失。所述模式同时强制头显GPU调至最大时钟,从而确保你获得精确的分析数据。如果你选择没有ProfilingMode后缀的常规OculusQuest设备,所述分析功能将禁用。请注意,当你切换到非ProfilingReplayMode或退出RenderDoc时,头显将恢复到默认的非Profiling状态。

无我VR 聚合新闻

选择ProfilingMode后,请通过RenderDoc界面启动需要分析的应用程序。在Launch选项卡中,配置可执行路径以选择要在头显运行的应用APK,然后点击Launch按钮。

无我VR 聚合新闻

一旦启动目标应用,RenderDoc中的状态面板应该会显示检测到的API;然后你可以通过点击CaptureFrame来捕获帧。

2.渲染阶段跟踪

无我VR 聚合新闻

然后,打开EventBrowser选项卡(如果尚未打开),单击渲染阶段跟踪按钮(上图中的Oculus图标)。接下来,RenderDoc将执行渲染阶段跟踪。头显的接近传感器将禁用数秒钟,这样RenderDoc就可以在你不佩戴头显的情况下执行跟踪;通常而言,只有在你需要确定什么时候点击CaptureFrame按钮时才佩戴头显。

无我VR 聚合新闻

几秒钟后,TileTimeline窗口将显示渲染阶段数据,而你可以通过鼠标滚轮进行放大和缩小。

由于RenderDoc在Replay期间插入了加载和存储操作(用于图形调试功能),你可能会注意到时间轴出现意外的颜色/深度存储。若要将出现意外渲染阶段的可能性降至最低,请尝试将Replay优化级别设置为Fastest,如这个页面所示。

3.Vulkan绘制调用(alpha)

无我VR 聚合新闻

要执行绘图调用跟踪,请选择Windows->PerformanceConterViewer

无我VR 聚合新闻

点击Capturecounters

无我VR 聚合新闻

通过单击复选框选择所需的性能计数器,然后单击Samplecounters

无我VR 聚合新闻

在头显放场景后,PerformanceCounterViewer将显示一个度量表。每一行代表一个绘制调用,你可以双击一行以在EeventBrowser中选择相应的绘制调用。

4.渲染通道计时

Oculus同时对stockRenderDoc计时系统进行了改动。对于默认的RenderDoc,你单击时钟按钮时系统会围绕绘制调用添加性能查询,但这对Tile渲染器(如OculusQuest运行的渲染器)存在不利的地方。对于使用time_elapsed计时器查询的OpenGL而言,绘制调用计时器查询将增加开销,因为GPU现在需要在每个Tile中的绘制调用之间暂停以计算其总成本。对于只支持时间戳的Vulkan,围绕一个绘制调用放置两个时间戳没有多大意义,因为绘制调用不是按顺序执行,所以结果根本不具有代表性。

无我VR 聚合新闻

Oculus为Settings添加了一个新的Profiling选项卡,你可以选择只围绕每个渲染通道添加时间戳。

无我VR 聚合新闻

考虑到渲染通道是作为一个单独的工作单元在GPU执行,测量它们的时间没有任何开销,而这在Vulkan中具有实际意义。在播放时,RenderDoc现在将显示每个渲染通道时间:

如果将播放模式设置为Fast,则与实际应用相比,这应该不会产生任何开销。

映维网。