mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-25 21:18:26 +02:00
refcounting uses atomics, which are a significant source of CPU overhead in many applications. by adding a method to inform the driver that the frontend has released ownership of a buffer, all other refcounting for the buffer can be eliminated see MR for more details Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36296> |
||
|---|---|---|
| .. | ||
| diff_state.py | ||
| dump.py | ||
| dump_state.py | ||
| format.py | ||
| model.py | ||
| parse.py | ||
| pytracediff.py | ||
| README.txt | ||
| TODO.txt | ||
| 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.