Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5563 | serge | 1 | TRACE PIPE DRIVER |
2 | |||
3 | |||
4 | = About = |
||
5 | |||
6 | This directory contains a Gallium3D trace debugger pipe driver. |
||
7 | It can traces all incoming calls. |
||
8 | |||
9 | |||
10 | = Usage = |
||
11 | |||
12 | == Tracing == |
||
13 | |||
14 | For tracing then do |
||
15 | |||
16 | GALLIUM_TRACE=tri.trace trivial/tri |
||
17 | |||
18 | which should create a tri.trace file, which is an XML file. You can view copying |
||
19 | trace.xsl to the same directory, and opening with a XSLT capable browser such as |
||
20 | Firefox or Internet Explorer. |
||
21 | |||
22 | For long traces you can use the |
||
23 | |||
24 | src/gallium/tools/trace/dump.py tri.trace | less -R |
||
25 | |||
26 | |||
27 | == Remote debugging == |
||
28 | |||
29 | For remote debugging see: |
||
30 | |||
31 | src/gallium/drivers/rbug/README |
||
32 | |||
33 | |||
34 | = Integrating = |
||
35 | |||
36 | You can integrate the trace pipe driver either inside the state tracker or the |
||
37 | target. The procedure on both cases is the same. Let's assume you have a |
||
38 | pipe_screen obtained by the usual means (variable and function names are just |
||
39 | for illustration purposes): |
||
40 | |||
41 | real_screen = real_screen_create(...); |
||
42 | |||
43 | The trace screen is then created by doing |
||
44 | |||
45 | trace_screen = trace_screen_create(real_screen); |
||
46 | |||
47 | You can then simply use trace_screen instead of real_screen. |
||
48 | |||
49 | You can create as many contexts you wish from trace_screen::context_create they |
||
50 | are automatically wrapped by trace_screen. |
||
51 | |||
52 | |||
53 | -- |
||
54 | Jose Fonseca |
||
55 | Jakob Bornecrantz |