[Render] Arm Graphics Analyzer 用户指南 [3] - 开始

英文原文:https://developer.arm.com/documentation/101545/0511/?lang=en

4. 开始

  本章介绍了如何使用主机GUI来配置和捕获帧缓冲区内容。它还描述了如何使用图形分析器中的捕获模式来捕获额外的内容。

4.1 打开 Graphics Analyzer

遵循这些指示来打开图形分析器。

  • 在Windows上,点击开始,展开 Stuido 文件夹,然后选择 Graphics Analyzer
  • 在Linux上,运行该命令。

< install_directory >/gui/aga &

  • 在macOS上,按Cmd+Space,输入Graphics Analyzer,然后按Enter键。

  要加载一个所提供的样本捕获,选择文件>打开,或点击打开图标,然后导航到< install_directory >/samples/traces/。各种应用程序的窗口中会出现加载的捕获的信息,你可以检查。

4.2 通过安卓设备的adb采集

  连接到你的安卓设备是通过设备管理器自动进行的。设备管理器检测任何连接到主机的安卓设备,然后在采集会话开始时自动安装图形分析器组件。

开始之前
  按照第18页3.3.2准备捕获可调试的应用程序中的说明进行操作

关于这项任务
  在多用户的安卓系统中,使用设备管理器选择一个应用程序将只捕获用户0的痕迹。要捕获其他用户的跟踪,请参见第18页3.3.3准备捕获不可调试的应用程序的说明。

流程

  1. 打开 Graphics Analyzer
  2. 单击 “打开设备管理器”。
  3. 在安卓标签中,选择你想连接的设备。
  4. 从可用选项列表中选择你想捕捉的应用程序。

图4-1:在设备管理器中连接到您的安卓设备
在这里插入图片描述

  1. 选择所需的API。

安装两个拦截器会影响你的应用程序的性能。如果你遇到这样的问题,可以尝试只安装一个拦截器。

  1. 单击 “开始捕获”。
    图形分析器连接到您的设备,并安装它用来与之通信的层驱动和 daemon 程序。当连接建立后,设备管理器关闭,并显示实时捕获。

  2. 可以选择一个预设配置,或选择捕获哪些API资产。

图4-2: 跟踪配置对话框
在这里插入图片描述
当你启用更多的资产类型时,应用程序运行得更慢,需要更多的内存,而且生成的捕获文件更大。更多信息请参见4.4配置追踪资产,第38页。

  1. 在设备上执行你的测试方案。图形分析器显示它从设备收到的数据。
  2. 当你在捕获中看到一个问题区域。
  • 使用暂停、步进和播放按钮,找到一个你想更仔细分析的帧。见第39页的4.5暂停、步进帧和恢复。
  • 要捕捉当前帧的帧缓冲输出,请点击相机图标。见4.6 捕捉帧缓冲区内容,第40页。
  • 通过启用overdraw、shader map或fragment count模式来捕获额外的帧数据,然后点击相机图标来收集数据。了解更多关于这些模式的信息,请参见5. 分析你的捕获,第43页。
  1. 当你捕捉到你需要的数据后,点击停止追踪。这些帧会被列在跟踪概要视图中。为了识别你所执行的帧捕获的类型,当你捕获了额外的数据时,在帧的旁边会显示一个图标。
  2. 要想只显示采集了额外数据的帧,请选择 "只显示启用了特征的帧 "复选框。

图4-3:只显示启用了功能的框架

在这里插入图片描述
12. 展开一个框架,查看其中的渲染通道和绘制调用。选择框架、渲染通道和绘制调用,使用不同的数据视图来探索它们的数据。请看6. 图形分析器界面第52页,了解更多关于视图的信息。

接下来的步骤
要保存或导出捕捉的文件,请使用 "文件 "菜单下的选项。

4.5 暂停,逐帧,和恢复

  图形分析器在收到来自设备的数据时显示捕获的情况。当你到达一个问题区域时,使用暂停、逐帧和播放按钮,找到你想更仔细分析的一帧。

  要暂停当前选定的进程,请按下该按钮。进程会在下一个eglSwapBuffers()调用时停止,以允许你检查结果。在进程暂停之前再次按下这个按钮,会迫使应用程序在下一个函数调用时暂停,不管它是否是eglSwapBuffers()。

  要暂停所有连接的进程,请按下按钮。在下一次调用eglSwapBuffers()时,这些进程会被停止,以便你能检查结果。

  当一个过程暂停时,你可以通过按钮的步进来渲染所选过程的单个帧。

要恢复选定的进程,请按下按钮。

只有正在调用图形API函数的线程被暂停。

4.6 捕获帧缓冲区内容

要看到发送到帧缓冲器的屏幕输出,要逐一捕捉图形系统输出的帧数据。

流程

  1. 要在应用程序的下一个完整帧中的每个绘图调用之后对帧缓冲区内容进行快照,请点击捕获。

拍摄这种快照涉及到相当多的数据合成和传输工作,这就降低了应用程序的速度。

  1. 打开 "跟踪概要 "视图。任何包含额外捕获数据的帧都会显示一个图标,以识别你执行的帧捕获类型。任何普通的帧现在都有一个图标来显示它是一个捕获的帧。

对于Vulkan应用程序的帧捕获存在一些限制。欲了解更多信息,请参见第61页的6.10 Vulkan帧捕获视图。

  1. 可以选择使用特殊的捕捉模式来捕捉额外的帧数据,如帧缓冲区的附件,或修改帧缓冲区的内容。要启用捕获模式,请在图形分析器工具栏中切换捕获模式图标,然后点击捕获以触发帧捕获。
    例如,要捕获每个绘图调用的所有可用的帧缓冲器附件,请点击 。该信息在帧缓冲区视图中的每个帧缓冲区都是可见的。关于帧缓冲区附件的更多信息,请参见第41页的4.6.1帧缓冲区附件。

  2. 要停止追踪,请点击停止追踪

4.6.1 帧缓冲器的附件

  可以捕获大多数帧缓冲器的附件,包括所有的颜色附件和深度及模板附件。

  在下面的例子中,在屏幕上绘制了三个深度不同的方块,从-1.0向0.0移动,在它们后面渲染了一个彩色的立方体。四个图形的绘制调用有不同的模版缓冲区写入掩码值,模版传递操作设置为GL_REPLACE

表4-1:帧缓冲器附件实例
在这里插入图片描述
  颜色附件显示在该帧中哪些颜色被渲染到屏幕上。它是你在捕捉时得到的正常的屏幕输出图像。为了调查图形渲染问题,你也可以捕获其他帧缓冲器。

  深度附件可以帮助你发现渲染缺陷,即片段在其他片段的前面或后面被错误地着色。当一个片段被着色时,深度值与颜色一起被存储。深度附件的值范围是-1.0到1.0,其中-1.0是全蓝色,0.0是黑色,1.0是全红色。当随后的片段被绘制时,深度值被比较以确定新的颜色是在已经绘制的颜色的前面还是后面。如果你把深度值弄错了,那么这个视图可以让你更容易看到发生了什么。输出在主机上被增强以增加对比度。

stencil attachment显示了你在哪里使用了 stencil 值来控制哪些片段被绘制。模板附件的数值范围是0-255,其中0是黑色,255是红色。

有关捕获帧缓冲区附件的信息,请参见第40页的4.6捕获帧缓冲区内容。

捕获所有帧缓冲器附件的限制

  • 在只有OpenGL ES 2.0的配置上,不可能捕捉到FBO 0的深度或模版附件。
  • 在以下情况下,只能对深度缓冲区进行低分辨率的捕捉。
    • 该配置不支持深度纹理采样。
    • 该设备只有OpenGL ES 2.0可用,深度附件是一个渲染缓冲区。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值