diff options
author | José Fonseca <jrfonseca@tungstengraphics.com> | 2008-08-18 12:42:08 +0100 |
---|---|---|
committer | José Fonseca <jrfonseca@tungstengraphics.com> | 2008-08-18 20:47:41 +0100 |
commit | 90a1c6e4032571a1c3e43daeb357068ba14136fe (patch) | |
tree | 9aac3a295e5de4ff432a47162dc4cbb5cab8f0af /src/gallium/drivers/trace/README | |
parent | 747762f379f05d127865de77615d6e4dd46be191 (diff) |
trace: Explain how to integrate with a state tracker or winsys.
Diffstat (limited to 'src/gallium/drivers/trace/README')
-rw-r--r-- | src/gallium/drivers/trace/README | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/src/gallium/drivers/trace/README b/src/gallium/drivers/trace/README index 7e98ec2454..e7a2f12b02 100644 --- a/src/gallium/drivers/trace/README +++ b/src/gallium/drivers/trace/README @@ -1,9 +1,20 @@ + TRACE PIPE DRIVER + + += About = + This directory contains a Gallium3D pipe driver which traces all incoming calls. + += Build Instructions = + To build, invoke scons on the top dir as scons statetrackers=mesa drivers=softpipe,i915simple,trace winsys=xlib + += Usage = + To use do ln -s libGL.so build/linux-x86-debug/gallium/winsys/xlib/libGL.so.1 @@ -11,15 +22,43 @@ To use do ensure the right libGL.so is being picked by doing - ldd `which glxinfo` + ldd progs/trivial/tri and then try running - GALLIUM_TRACE=tri.trace ./progs/trivial/tri + GALLIUM_TRACE=tri.trace progs/trivial/tri which should create a tri.trace file, which is an XML file. You can view copying -trace.xsl to the same directory, and opening with a XSLT capable browser like +trace.xsl to the same directory, and opening with a XSLT capable browser such as Firefox or Internet Explorer. + += Integrating = + +You can integrate the trace pipe driver either inside the state tracker or the +winsys. The procedure on both cases is the same. Let's assume you have a +pipe_screen and a pipe_context pair obtained by the usual means (variable and +function names are just for illustration purposes): + + real_screen = real_screen_create(...); + + real_context = real_context_create(...); + +The trace screen and pipe_context is then created by doing + + trace_screen = trace_screen_create(real_screen); + + trace_context = trace_context_create(trace_screen, real_context); + +You can then simply use trace_screen and trace_context instead of real_screen +and real_context. + +Do not call trace_winsys_create. Simply pass trace_screen->winsys or +trace_context->winsys in places you would pass winsys. + +You can create as many contexts you wish. Just ensure that you don't mistake +trace_screen with real_screen when creating them. + + -- Jose Fonseca <jrfonseca@tungstengraphics.com> |