使用apitrace跟踪分析OpenGL函数调用流程

说明

apitrace由一组工具组成,用于:

  • 跟踪对文件的OpenGL、Direct3D和DirectDraw API调用;
  • 在任何机器上以及对于OpenGL,在任何操作系统上回放来自文件的记录调用;

抓取数据

执行命令运行程序,抓取所有类型

1
./apitrace trace filename

程序关闭时会在桌面生成filename.trace

程序

  • apitrace分析所有类型
  • glretrace分析OpenGL/OpenGL ES
  • d3dretrace分析d3d

重现解析

输入以下命令,可以重现抓取数据时软件运行的画面

1
./apitrace replay --pgpu --pcpu --ppd filename.trace > filename.retrace

图形显示

双击打开qapitrace.exe

qapitrace

File -> Open -> 选择文件打开

打开

文件打开后,以帧为单位

帧列表

打开某一帧,点击某一个函数,括号里面的是函数参数

函数列表

从上往下是当前帧中OpenGL函数调用流程

profile

点击Trace -> Profile

profile

弹出配置界面

配置界面

会先回放trace中记录的程序运行画面

然后显示分析界面

分析界面

将鼠标放到某个函数上会出现提示信息,双击会在主窗口中显示当前函数

界面说明:

第一部分

  • Frames: 帧号
  • CPU: 处理器端的执行顺序和时长(用宽度表示)
  • GPU: 显卡 draw 函数的执行顺序和时长
  • 编号n: 第 n 个 shader 的执行情况

第二部分

  • GPU、CPU 的执行时长(高度)

第三部分

  • Program: shader 的执行情况,左边编号与第一部分相对应

使用apitrace跟踪分析OpenGL函数调用流程
https://blog.jackeylea.com/opengl/track-opengl-function-call-routine-with-apitrace/
作者
JackeyLea
发布于
2023年10月6日
许可协议