* trace OpenGL, OpenGL ES, Direct3D, and DirectDraw APIs calls to a file;
-* retrace OpenGL and OpenGL ES calls from a file;
+* replay OpenGL and OpenGL ES calls from a file;
* inspect OpenGL state at any call while retracing;
Replay an OpenGL trace with
- apitrace retrace application.trace
+ apitrace replay application.trace
Pass the `--sb` option to use a single buffered visual. Pass `--help` to
-`apitrace retrace` for more options.
+`apitrace replay` for more options.
Basic GUI usage
### 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.
+To trace standalone native OpenGL ES applications, use
+`LD_PRELOAD=/path/to/egltrace.so /path/to/application` like described in the
+previous section. To trace Java applications, refer to Android.markdown.
### Mac OS X ###
You can get a dump of the bound GL state at call 12345 by doing:
- apitrace retrace -D 12345 application.trace > 12345.json
+ apitrace replay -D 12345 application.trace > 12345.json
This is precisely the mechanism the GUI obtains its own state.
For example, to record all profiling data and utilise the per shader script:
- apitrace retrace --pgpu --pcpu --ppd foo.trace | ./scripts/profileshader.py
+ apitrace replay --pgpu --pcpu --ppd foo.trace | ./scripts/profileshader.py
Advanced usage for OpenGL implementors