ovrgpuprofiler 时,通过 ADB 在连接的 Meta Quest 上打开一个 shell。如果不使用 shell,请在本主题中的所有命令前加上 adb shell <command>。ovrgpuprofiler -m
47 metrics supported:
1 Clocks / Second
2 GPU % Bus Busy
3 % Vertex Fetch Stall
4 % Texture Fetch Stall
5 L1 Texture Cache Miss Per Pixel
6 % Texture L1 Miss
7 % Texture L2 Miss
8 % Stalled on System Memory
9 Pre-clipped Polygons/Second
10 % Prims Trivially Rejected
11 % Prims Clipped
ovrgpuprofiler -m -v 提供同样的列表,不过该命令可以为每个指标提供更详细的说明。`ovrgpuprofiler -r<metric ID number>`
ovrgpuprofiler -r4,数据将在控制台每秒打印一次,直到您按下 Ctrl-C 为止。ovrgpuprofiler -r"4,5,6")来同时申请检索多个指标。以下显示了 ovrgpuprofiler -r"4,5,6" 的输出:$ ovrgpuprofiler -r"4,5,6" % Texture Fetch Stall : 2.449 L1 Texture Cache Miss Per Pixel : 0.124 % Texture L1 Miss : 20.338 % Texture Fetch Stall : 2.369 L1 Texture Cache Miss Per Pixel : 0.122 % Texture L1 Miss : 20.130 % Texture Fetch Stall : 2.580 L1 Texture Cache Miss Per Pixel : 0.127 % Texture L1 Miss
ovrgpuprofiler 支持在每个图块级别进行渲染阶段 GPU 追踪。与按顺序执行绘制调用的直接模式 GPU 不同,基于图块的渲染器会为某个完整界面批量执行绘制调用,然后将该界面切分成图块,再按顺序对每个图块进行计算,其中每个图块会执行所有与之相交的绘制调用。ovrgpuprofiler 可以展示追踪期间每个已渲染界面在每个渲染阶段各花费了多少时间。ovrgpuprofiler -e
ovrgpuprofiler -i 可显示是否启用了详细的 GPU 分析模式,而 ovrgpuprofiler -d 可禁用该模式。ovrgpuprofiler 进行分析的应用必须在其清单中加入 <uses-permission android:name="android.permission.INTERNET" /> 权限。ovrgpuprofiler -t
-t 参数加上一个数字来指定,以秒为单位。例如,ovrgpuprofiler -t1.2 将执行 1.2 秒的追踪。Surface 1 | 1216x1344 | color 32bit, depth 24bit, stencil 0 bit, MSAA 4 | 60 128x224 bins | 5.08 ms | 130 stages : Binning : 0.623ms Render : 1.877ms StoreColor : 0.309ms Blit : 0.002ms Preempt : 1.286ms
ovrgpuprofiler 将为多视图应用界面的每个切片输出一行数据。这意味着每只眼睛对应一个界面。您需要将两只眼睛对应界面的渲染时长累加,以得出帧渲染总时长。ovrgpuprofiler 将为界面的两个视图,输出一行数据。在 Quest 2 上,多视图界面的分块由两个视图共享,所以在追踪中135 96x176 bins
135 96x176x2 bins
ovrgpuprofiler 命令行参数:参数 | 描述 |
-r/--realtime | 每秒打印一次实时指标的值。接受一个可选的指标 ID 列表,这些 ID 以逗号分隔,用于指定需要追踪的指标。 |
-m/--metrics | 打印可用实时指标 ID 及其名称和说明的列表。 |
-v/--verbose | 为大多数其他命令添加更加详细的信息。 |
-e/--enable-detailed | 启用 GPU 驱动程序的详细分析模式;渲染阶段追踪时需要使用此参数。仅适用于在此模式启动后启动的应用。 |
-i/--is-detailed | 查询 GPU 驱动程序是否处于详细分析模式。 |
-t/--trace | 执行渲染阶段追踪,可选择加上以秒为单位的追踪时长参数。 |
-c/--continuous | 如果您在使用 -t/--trace 的同时指定了此参数,渲染阶段追踪的结果将定期轮询以减少内存压力。 |
-l/--low-overhead | 如果您在使用 -t/--trace 的同时指定了此参数,渲染阶段追踪将在低开销模式下运行,通过省略许多细节来获得更精确的测量结果。 |