Tracer for OpenGL

在DDMS工具中,系统提供了Tracer for OpenGL工具用于追踪GPU绘图的详细过程。该工具位于DDMS工具中的最后一个,如图6.7所示。

Tracer for OpenGL - 图1 图6.7 Tracer for OpenGL

选择要追踪的进程,然后点击Tracer for OpenGL按钮,弹出如图6.8所示的界面。

Tracer for OpenGL - 图2 图6.8 Tracer for OpenGL界面

根据自己的需要,选择要采集的数据和保存路径,点击Trace按钮即可开始追踪数据。根据页面的复杂程度,采集数据的时间可能长短不一。当获取到一定数量的Frame数据后,点击Stop即可完成数据采集工作,同时切换到Trace for OpenGL ES标签,该标签可以通过Window-Perspective打开窗口选择器,如图6.9所示。

Tracer for OpenGL - 图3 图6.9 打开Tracer for OpenGL界面

切换到该标签,系统同时也会打开刚刚采集到的Trace数据,如图6.10所示。

Tracer for OpenGL - 图4 图6.10 Tracer for OpenGL数据

最上面的进度条可以选择要查看的Frame,选择相应的Frame后,下面就会详细地列出GPU调用绘图函数的顺序。函数列表中蓝色的行,表示具体绘图的函数,选中这些行可以在Detail窗口中看见当前绘制的图像。例如笔者选中一行,当前绘图状态如图6.11所示。

Tracer for OpenGL - 图5 图6.11 Tracer for OpenGL绘图状态

从图6.11可以看出,目前已经绘制了下方的两个Button。继续选择下面的绘图函数,Detail窗口中的图像如图6.12所示。

Tracer for OpenGL - 图6 图6.12 Tracer for OpenGL绘图效果

此时已经绘制了上面的背景界面,再继续往下查看,如图6.13所示。

Tracer for OpenGL - 图7 图6.13 Tracer for OpenGL绘图效果2

此时已经绘制了中间的云朵。

通过这个GPU追踪工具,可以具体了解到绘图的过程,从而精确地定位到系统的绘图性能问题,特别是重复绘制问题。