Follow Excellent, Success will Chase you

0%

OpenGL调试——apitrace

apitrace是一套用于调试OpenGL应用程序和驱动程序的工具,其中包括用于生成应用程序进行的所有OpenGL调用的跟踪的工具以及用于在程序执行期间重放这些跟踪并检查渲染和OpenGL状态的工具。

官网

http://apitrace.github.io

源码下载:

1
git clone https://github.com/janesma/apitrace.git

ubuntu安装:

1
sudo apt install apitrace apitrace-gui

用法

命令行 —— apitrace

  • 全部抓取
    1
    $apitrace trace glxgears

生成glxgears.trace文件

  • webgl

    1
    ./apitrace trace --api gl /usr/bin/chromium-browser https://webglsamples.org/aquarium/aquarium.html
  • 重现解析

    1
    ./apitrace replay --pgpu --pcpu --ppd chromium-browser.trace > chromium-browser.retrace
  • 输出结果

    1
    2
    3
    4
    5
    # 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

1
$qapitrace
1
$qapitrace chromium-browser.trace

profile

选中工具栏Trace下的Profile功能,会执行与replay相同的动作,并将结果更直观的展示出来

qapistrace-profile

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

界面说明:

  • 第一部分
    • Frames: 帧号
    • CPU: 处理器端的执行顺序和时长(用宽度表示)
    • GPU: 显卡draw函数的执行顺序和时长
    • 编号n: 第n个shader的执行情况
  • 第二部分
    • GPUCPU的执行时长(高度)
  • 第三部分
    • Program: shader的执行情况,左边编号与第一部分相对应

参考

-------------本文结束感谢您的阅读-------------
  • 本文作者: Winddoing
  • 本文链接: https://winddoing.github.io/post/65255.html
  • 作者声明: 本博文为个人笔记, 由于个人能力有限,难免出现错误,欢迎大家批评指正。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!