mesa/src/gallium/tools/trace
Qiang Yu 11027dd3f8 all: rename PIPE_SHADER_FRAGMENT to MESA_SHADER_FRAGMENT
Use command:
  find . -type f -not -path '*/.git/*' -exec sed -i 's/PIPE_SHADER_FRAGMENT/MESA_SHADER_FRAGMENT/g' {} +

Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36569>
2025-08-06 10:28:39 +08:00
..
diff_state.py
dump.py
dump_state.py all: rename PIPE_SHADER_FRAGMENT to MESA_SHADER_FRAGMENT 2025-08-06 10:28:39 +08:00
format.py trace: Don't use italic escape code. 2023-01-27 12:05:17 +00:00
model.py gallium/tools: reimplement tracediff completely in Python 2022-06-28 11:40:58 +00:00
parse.py pytracediff: change how 'junk' calls are handled 2022-06-28 11:40:58 +00:00
pytracediff.py pytracediff: implement pager ('less') invocation internally 2022-06-28 11:40:58 +00:00
README.txt
TODO.txt docs: Remove graw related words 2022-10-19 10:56:00 +00:00
tracediff.sh

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.