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