]> git.cworth.org Git - apitrace/blobdiff - README.markdown
Add a script to analyse profile output per shader.
[apitrace] / README.markdown
index 4c1828bf5f078a4277a0bc42404649084b7179c5..9702ba0739294d14c41c8c7eb1264c3491d1391a 100644 (file)
@@ -3,7 +3,7 @@ About **apitrace**
 
 **apitrace** consists of a set of tools to:
 
 
 **apitrace** consists of a set of tools to:
 
-* trace OpenGL, OpenGL ES, D3D9, D3D8, D3D7, and DDRAW APIs calls to a file;
+* trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs calls to a file;
 
 * retrace OpenGL and OpenGL ES calls from a file;
 
 
 * retrace OpenGL and OpenGL ES calls from a file;
 
@@ -12,14 +12,18 @@ About **apitrace**
 * visualize and edit trace files.
 
 
 * visualize and edit trace files.
 
 
-Basic usage
-===========
+Obtaining **apitrace**
+======================
 
 To obtain apitrace either [download the latest
 binaries](https://github.com/apitrace/apitrace/downloads) for your platform if
 
 To obtain apitrace either [download the latest
 binaries](https://github.com/apitrace/apitrace/downloads) for your platform if
-available, or follow the (build instructions)[INSTALL.markdown] to build it
-yourself.  On 64bits Linux and Windows platforms you'll need apitrace binaries
-that match the architecture (32bits or 64bits) of the application being traced.
+available, or follow the instructions in INSTALL.markdown to build it yourself.
+On 64bits Linux and Windows platforms you'll need apitrace binaries that match
+the architecture (32bits or 64bits) of the application being traced.
+
+
+Basic usage
+===========
 
 Run the application you want to trace as
 
 
 Run the application you want to trace as
 
@@ -48,10 +52,18 @@ Replay an OpenGL trace with
 Pass the `-sb` option to use a single buffered visual.  Pass `--help` to
 glretrace for more options.
 
 Pass the `-sb` option to use a single buffered visual.  Pass `--help` to
 glretrace for more options.
 
+
+Basic GUI usage
+===============
+
 Start the GUI as
 
     qapitrace application.trace
 
 Start the GUI as
 
     qapitrace application.trace
 
+You can also tell the GUI to go directly to a specific call
+
+    qapitrace application.trace 12345
+
 
 Advanced command line usage
 ===========================
 
 Advanced command line usage
 ===========================
@@ -129,6 +141,67 @@ To trace the application inside gdb, invoke gdb as:
 
     gdb --ex 'set exec-wrapper env LD_PRELOAD=/path/to/glxtrace.so' --args /path/to/application
 
 
     gdb --ex 'set exec-wrapper env LD_PRELOAD=/path/to/glxtrace.so' --args /path/to/application
 
+### Android ###
+
+The following instructions should work at least for Android Ice Scream
+Sandwitch:
+
+For standalone applications the instructions above for Linux should
+work. To trace applications started from within the Android VM process
+(app_process aka zygote) you'll have to wrap this process and enable
+tracing dynamically for the application to be traced.
+
+- Wrapping the android main VM process:
+
+  In the Android root /init.rc add the LD_PRELOAD setting to zygote's
+  environment in the 'service zygote' section:
+
+  """
+  service zygote ...
+     setenv LD_PRELOAD /data/egltrace.so
+     ...
+  """
+
+  Note that ICS will overwrite the /init.rc during each boot with the
+  version in the recovery image. So you'll have to change the file in
+  your ICS source tree, rebuild and reflash the device.
+  Rebuilding/reflashing only the recovery image should be sufficient.
+
+
+- Copy egltrace.so to /data
+
+  On the host:
+  $ adb push /path/to/apitrace/build/wrappers/egltrace.so /data
+
+
+- Adjust file permissions to store the trace file:
+
+  By default egltrace.so will store the trace in
+  /data/app_process.trace. For this to work for applications running
+  with a uid other than 0, you have to allow writes to the /data
+  directory on the device:
+
+  # chmod 0777 /data
+
+
+- Enable tracing for a specific process name:
+
+  To trace for example the Settings application:
+  # setprop debug.apitrace.procname com.android.settings
+
+  In general this name will match what 'ps' reports.
+
+
+- Start the application:
+
+  If the application was already running, for example due to ICS's way
+  of pre-starting the apps, you might have to kill the application
+  first:
+
+  # kill <pid of app>
+
+  Launch the application for example from the application menu.
+
 ### Mac OS X ###
 
 Run the application you want to trace as
 ### Mac OS X ###
 
 Run the application you want to trace as
@@ -346,16 +419,20 @@ reference software renderer.
 
 This can be achieved with retracediff.py script, which invokes glretrace with
 different environments, allowing to choose the desired GL driver by
 
 This can be achieved with retracediff.py script, which invokes glretrace with
 different environments, allowing to choose the desired GL driver by
-manipulating variables such as `LD_LIBRARY_PATH` or `LIBGL_DRIVERS_DIR`.
+manipulating variables such as `LD_LIBRARY_PATH`, `LIBGL_DRIVERS_DIR`, or
+`TRACE_LIBGL`.
 
 
-For example:
+For example, on Linux:
 
     ./scripts/retracediff.py \
         --ref-env LD_LIBRARY_PATH=/path/to/reference/GL/implementation \
 
     ./scripts/retracediff.py \
         --ref-env LD_LIBRARY_PATH=/path/to/reference/GL/implementation \
-        -r ./glretrace \
+        --retrace /path/to/glretrace \
         --diff-prefix=/path/to/output/diffs \
         application.trace
 
         --diff-prefix=/path/to/output/diffs \
         application.trace
 
+Or on Windows:
+
+    python scripts\retracediff.py --retrace \path\to\glretrace.exe --ref-env TRACE_LIBGL=\path\to\reference\opengl32.dll application.trace
 
 
 Links
 
 
 Links
@@ -387,8 +464,12 @@ Closed-source:
 
   * [D3DSpy](http://doc.51windows.net/Directx9_SDK/?url=/directx9_sdk/graphics/programmingguide/TutorialsAndSamplesAndToolsAndTips/Tools/D3DSpy.htm): the predecessor of PIX
 
 
   * [D3DSpy](http://doc.51windows.net/Directx9_SDK/?url=/directx9_sdk/graphics/programmingguide/TutorialsAndSamplesAndToolsAndTips/Tools/D3DSpy.htm): the predecessor of PIX
 
+* [NVIDIA PerfKit](http://developer.nvidia.com/nvidia-perfkit)
+
 * [AMD GPU PerfStudio](http://developer.amd.com/gpu/PerfStudio/pages/APITraceWindow.aspx)
 
 * [AMD GPU PerfStudio](http://developer.amd.com/gpu/PerfStudio/pages/APITraceWindow.aspx)
 
+* [Intel Graphics Performance Analyzers](http://www.intel.com/software/gpa/)
+
 
 OpenGL
 ------
 
 OpenGL
 ------
@@ -401,9 +482,11 @@ Open-source:
 
 * [tracy](https://gitorious.org/tracy): OpenGL ES and OpenVG trace, retrace, and state inspection
 
 
 * [tracy](https://gitorious.org/tracy): OpenGL ES and OpenVG trace, retrace, and state inspection
 
+* [WebGL-Inspector](http://benvanik.github.com/WebGL-Inspector/)
+
 Closed-source:
 
 Closed-source:
 
-* [gDEBugger](http://www.gremedy.com/products.php)
+* [gDEBugger](http://www.gremedy.com/products.php) and [AMD gDEBugger](http://developer.amd.com/tools/gDEBugger/Pages/default.aspx)
 
 * [glslDevil](http://cumbia.informatik.uni-stuttgart.de/glsldevil/index.html)
 
 
 * [glslDevil](http://cumbia.informatik.uni-stuttgart.de/glsldevil/index.html)