Index of /archives/NetBSD/NetBSD-release-10/xsrc/external/mit/MesaLib/dist/src/gallium/tools/trace

Icon  Name                                                                                 Last modified      Size  Description
[PARENTDIR] Parent Directory - [DIR] CVS/ 2022-12-18 05:57 - [TXT] README.txt 2022-05-09 10:23 1.1K [TXT] TODO.txt 2014-12-18 15:02 212 [TXT] diff_state.py 2022-05-09 10:23 9.8K [TXT] dump.py 2022-05-09 10:23 1.4K [TXT] dump_state.py 2022-05-09 10:23 26K [TXT] format.py 2022-05-09 10:23 5.0K [TXT] model.py 2022-05-09 10:23 7.4K [TXT] parse.py 2022-05-09 10:23 14K [   ] tracediff.sh 2022-05-09 10:23 3.9K
These directory contains tools for manipulating traces produced by the trace
pipe driver.


Most debug builds of gallium frontends already load the trace driver by default.
To produce a trace do

  export GALLIUM_TRACE=foo.gtrace

and run the application.  You can choose any name, but the .gtrace is
recommended to avoid confusion with the .trace produced by apitrace.


You can dump a trace by doing

  ./dump.py foo.gtrace | less


You can dump a JSON file describing the static state at any given draw call
(e.g., 12345) by
doing

  ./dump_state.py -v -c 12345 foo.gtrace > foo.json

or by specifying the n-th (e.g, 1st) draw call by doing

  ./dump_state.py -v -d 1 foo.gtrace > foo.json

The state is derived from the call sequence in the trace file, so no dynamic
(eg. rendered textures) is included.


You can compare two JSON files by doing

  ./diff_state.py foo.json boo.json | less

If you're investigating a regression in an gallium frontend, you can obtain a good
and bad trace, dump respective state in JSON, and then compare the states to
identify the problem.