導入
たぶんhomebrewでQtが入っていないとうまくいかないかも
$ git clone git@github.com:apitrace/apitrace.git
$ cd apitrace
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
$ make install
$ apitrace
で何かしらメッセージが出れば成功
実行
適当なプログラムをapitrace経由で実行してみる
-
--api
は、gl
かglsl
を指定する模様。 -
--output
で上の階層を指定しているのは、glfwの仕様で初期化時に*.app/Contents/Resources/
が作業パスになる為。そうするとdump.trace
に結果が出力される。
$ apitrace trace --api=gl --output=../../../dump.trace ./graphicsExampleDebug.app/Contents/MacOS/graphicsExampleDebug
観測
上で出力したtraceファイルを開いてみる。qapitrace
コマンドでGUIが立ち上がる。
$ qapitrace ./dump.trace
こんな感じ。見た所OpenGLのコマンドがガリガリ書かれている模様。
CPU/GPU内で実行されている処理のプロファイリングをしたり、任意の地点でのGLコンテクスト内部状態を見たりとかができる臭い。
traceした結果はプレイバックできたり、シェーダー、テクスチャものぞけるみたい。
結果
クソ便利そう