mesa/src/gallium/tools/trace
Jose Fonseca db38c3b4ba trace: Fix parsing of recent traces.
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
2018-06-04 21:06:31 +01:00
..
diff_state.py gallium/tools: use correct shebang for python scripts 2017-03-10 14:12:47 +00:00
dump.py gallium/tools: use correct shebang for python scripts 2017-03-10 14:12:47 +00:00
dump_state.py trace: Fix parsing of recent traces. 2018-06-04 21:06:31 +01:00
format.py gallium/tools: use correct shebang for python scripts 2017-03-10 14:12:47 +00:00
model.py gallium/tools: use correct shebang for python scripts 2017-03-10 14:12:47 +00:00
parse.py gallium/tools: use correct shebang for python scripts 2017-03-10 14:12:47 +00:00
README.txt
TODO.txt
tracediff.sh

These directory contains tools for manipulating traces produced by the trace
pipe driver.


Most debug builds of state trackers 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 a state tracker, you can obtain a good
and bad trace, dump respective state in JSON, and then compare the states to
identify the problem.