xref: /aosp_15_r20/external/mesa3d/src/gallium/tools/trace/README.txt (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard WorkerThese directory contains tools for manipulating traces produced by the trace
2*61046927SAndroid Build Coastguard Workerpipe driver.
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Worker
5*61046927SAndroid Build Coastguard WorkerMost debug builds of gallium frontends already load the trace driver by default.
6*61046927SAndroid Build Coastguard WorkerTo produce a trace do
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Worker  export GALLIUM_TRACE=foo.gtrace
9*61046927SAndroid Build Coastguard Worker
10*61046927SAndroid Build Coastguard Workerand run the application.  You can choose any name, but the .gtrace is
11*61046927SAndroid Build Coastguard Workerrecommended to avoid confusion with the .trace produced by apitrace.
12*61046927SAndroid Build Coastguard Worker
13*61046927SAndroid Build Coastguard Worker
14*61046927SAndroid Build Coastguard WorkerYou can dump a trace by doing
15*61046927SAndroid Build Coastguard Worker
16*61046927SAndroid Build Coastguard Worker  ./dump.py foo.gtrace | less
17*61046927SAndroid Build Coastguard Worker
18*61046927SAndroid Build Coastguard Worker
19*61046927SAndroid Build Coastguard WorkerYou can dump a JSON file describing the static state at any given draw call
20*61046927SAndroid Build Coastguard Worker(e.g., 12345) by
21*61046927SAndroid Build Coastguard Workerdoing
22*61046927SAndroid Build Coastguard Worker
23*61046927SAndroid Build Coastguard Worker  ./dump_state.py -v -c 12345 foo.gtrace > foo.json
24*61046927SAndroid Build Coastguard Worker
25*61046927SAndroid Build Coastguard Workeror by specifying the n-th (e.g, 1st) draw call by doing
26*61046927SAndroid Build Coastguard Worker
27*61046927SAndroid Build Coastguard Worker  ./dump_state.py -v -d 1 foo.gtrace > foo.json
28*61046927SAndroid Build Coastguard Worker
29*61046927SAndroid Build Coastguard WorkerThe state is derived from the call sequence in the trace file, so no dynamic
30*61046927SAndroid Build Coastguard Worker(eg. rendered textures) is included.
31*61046927SAndroid Build Coastguard Worker
32*61046927SAndroid Build Coastguard Worker
33*61046927SAndroid Build Coastguard WorkerYou can compare two JSON files by doing
34*61046927SAndroid Build Coastguard Worker
35*61046927SAndroid Build Coastguard Worker  ./diff_state.py foo.json boo.json | less
36*61046927SAndroid Build Coastguard Worker
37*61046927SAndroid Build Coastguard WorkerIf you're investigating a regression in an gallium frontend, you can obtain a good
38*61046927SAndroid Build Coastguard Workerand bad trace, dump respective state in JSON, and then compare the states to
39*61046927SAndroid Build Coastguard Workeridentify the problem.
40