OpenGL 调试 ——apitrace

OpenGL 调试 ——apitrace
择一事,终一生
apitrace
是一套用于调试 OpenGL 应用程序和驱动程序的工具,其中包括用于生成应用程序进行的所有 OpenGL 调用的跟踪的工具以及用于在程序执行期间重放这些跟踪并检查渲染和 OpenGL 状态的工具。
官网
http://apitrace.github.io
源码下载:
git clone https://github.com/janesma/apitrace.git
ubuntu 安装:
sudo apt install apitrace apitrace-gui
用法
命令行 —— apitrace
全部抓取
$apitrace trace glxgears
生成 glxgears.trace 文件
webgl
./apitrace trace --api gl /usr/bin/chromium-browser https://webglsamples.org/aquarium/aquarium.html
重现解析
./apitrace replay --pgpu --pcpu --ppd chromium-browser.trace > chromium-browser.retrace
输出结果
输出结果
# call no gpu_start gpu_dura cpu_start cpu_dura vsize_start vsize_dura rss_start rss_dura pixels program name
call 741 0 0 15358963 4741 0 0 0 0 -1 0 glViewport
call 742 0 0 15389926 2370 0 0 0 0 -1 0 glScissor
call 2903 0 0 125774519 8000 0 0 0 0 -1 0 glViewport
call 2904 0 0 125802222 6223 0 0 0 0 -1 0 glScissor
图形 —— qapitrace
$qapitrace
$qapitrace chromium-browser.trace
profile
选中工具栏 Trace 下的 Profile
功能,会执行与 replay 相同的动作,并将结果更直观的展示出来

将鼠标放到某个函数上会出现提示信息,双击会在主窗口中显示当前函数
界面说明:
- 第一部分
Frames
: 帧号CPU
: 处理器端的执行顺序和时长(用宽度表示)GPU
: 显卡 draw 函数的执行顺序和时长编号n
: 第 n 个 shader 的执行情况
- 第二部分
GPU
、CPU
的执行时长(高度)
- 第三部分
Program
: shader 的执行情况,左边编号与第一部分相对应
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了