summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/trace/README
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/trace/README')
-rw-r--r--src/gallium/drivers/trace/README53
1 files changed, 40 insertions, 13 deletions
diff --git a/src/gallium/drivers/trace/README b/src/gallium/drivers/trace/README
index 81da610bd5..e7a2f12b02 100644
--- a/src/gallium/drivers/trace/README
+++ b/src/gallium/drivers/trace/README
@@ -1,37 +1,64 @@
+ 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
export LD_LIBRARY_PATH=$PWD/build/linux-x86-debug/gallium/winsys/xlib
- export GALLIUM_TRACE=y
ensure the right libGL.so is being picked by doing
- ldd `which glxingo`
+ ldd progs/trivial/tri
and then try running
- glxinfo
+ GALLIUM_TRACE=tri.trace progs/trivial/tri
-which should create a gallium.*.trace file, which is an XML file. You can view
-copying trace.xsl and trace.css to the same directory, and opening with a
-XSLT capable browser like Firefox or Internet Explorer. It often happens that
-the trace file was not properly terminated, and a
+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 such as
+Firefox or Internet Explorer.
- </trace>
-
-closing tag is missing from the file end. Add it before try to open or
-further transform it by doing
- echo '</trace>' >> gallium.??.trace
+= 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.
-This is still work in progress.
--
Jose Fonseca <jrfonseca@tungstengraphics.com>