mesa/src/gallium/tools/trace
Marek Olšák 47c1f389ed gallium: remove take_ownership from set_vertex_buffers, assume it's true
This removes the take_ownership parameter and defines the behavior as if
take_ownership was always true, which is the fast path. This way, we don't
have to have 2 codepaths in set_vertex_buffers of every driver.

The old behavior is optionally available through util_set_vertex_buffers.

It also documents a new constraint that count in set_vertex_buffers must be
equal to the number of vertex buffers referenced by vertex elements or 0.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27492>
2024-02-07 09:19:42 +00:00
..
diff_state.py
dump.py
dump_state.py gallium: remove take_ownership from set_vertex_buffers, assume it's true 2024-02-07 09:19:42 +00: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 gallium/tools: add option for ignoring junk calls in trace dumper 2022-06-28 11:40:58 +00:00

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.