X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=README.markdown;h=b1eb08397aa4bf1a64d1db5b2e7cf3dd11248599;hb=cbb86175e81c2765f14fa01a2dc49d367203ac1f;hp=af54b7f959a86da9ae3483f1611473f54b54b8a4;hpb=b35ae0df401ff22e3b2dc9b6bfacf1e23baebde0;p=apitrace diff --git a/README.markdown b/README.markdown index af54b7f..b1eb083 100644 --- a/README.markdown +++ b/README.markdown @@ -49,12 +49,10 @@ View the trace with Replay an OpenGL trace with - glretrace application.trace + apitrace retrace application.trace Pass the `--sb` option to use a single buffered visual. Pass `--help` to -`glretrace` for more options. - -EGL traces must be replayed with `eglretrace` instead of `glretrace`. +`apitrace retrace` for more options. Basic GUI usage @@ -78,22 +76,22 @@ Call sets Several tools take `CALLSET` arguments, e.g: - apitrace dump --calls CALLSET foo.trace - glretrace -S CALLSET foo.trace + apitrace dump --calls=CALLSET foo.trace + apitrace dump-images --calls=CALLSET foo.trace The call syntax is very flexible. Here are a few examples: * `4` one call - * `1,2,4,5` set of calls + * `0,2,4,5` set of calls - * `"1 2 4 5"` set of calls (commas are optional and can be replaced with whitespace) + * `"0 2 4 5"` set of calls (commas are optional and can be replaced with whitespace) - * `1-100/2` calls 1, 3, 5, ..., 99 + * `0-100/2` calls 1, 3, 5, ..., 99 - * `1-1000/draw` all draw calls between 1 and 1000 + * `0-1000/draw` all draw calls between 0 and 1000 - * `1-1000/fbo` all fbo changes between calls 1 and 1000 + * `0-1000/fbo` all fbo changes between calls 0 and 1000 * `frame` all calls at end of frames @@ -243,6 +241,13 @@ Then run the application as usual. You can specify the written trace filename by setting the `TRACE_FILE` environment variable before running. +For D3D10 and higher you really must use `apitrace trace -a DXGI ...`. This is +because D3D10-11 API span many DLLs which depend on each other, and once a DLL +with a given name is loaded Windows will reuse it for LoadLibrary calls of the +same name, causing internal calls to be traced erroneously. `apitrace trace` +solves this issue by injecting a DLL `dxgitrace.dll` and patching all modules +to hook only the APIs of interest. + Emitting annotations to the trace --------------------------------- @@ -297,7 +302,7 @@ Dump GL state at a particular call You can get a dump of the bound GL state at call 12345 by doing: - glretrace -D 12345 application.trace > 12345.json + apitrace retrace -D 12345 application.trace > 12345.json This is precisely the mechanism the GUI obtains its own state. @@ -320,7 +325,7 @@ Recording a video with FFmpeg You can make a video of the output by doing - glretrace -s - application.trace \ + apitrace dump-images -o - application.trace \ | ffmpeg -r 30 -f image2pipe -vcodec ppm -i pipe: -vcodec mpeg4 -y output.mp4 @@ -354,7 +359,7 @@ table which displays profiling results per shader. For example, to record all profiling data and utilise the per shader script: - ./glretrace --pgpu --pcpu --ppd foo.trace | ./scripts/profileshader.py + apitrace retrace --pgpu --pcpu --ppd foo.trace | ./scripts/profileshader.py Advanced usage for OpenGL implementors @@ -373,17 +378,13 @@ These are the steps to create a regression test-suite around **apitrace**: * obtain reference snapshots, by doing on a reference system: mkdir /path/to/reference/snapshots/ - glretrace -s /path/to/reference/snapshots/ application.trace + apitrace dump-images -o /path/to/reference/snapshots/ application.trace * prune the snapshots which are not interesting -* to do a regression test, do: - - glretrace -c /path/to/reference/snapshots/ application.trace - - Alternatively, for a HTML summary, use `apitrace diff-images`: +* to do a regression test, use `apitrace diff-images`: - glretrace -s /path/to/test/snapshots/ application.trace + apitrace dump-images -o /path/to/test/snapshots/ application.trace apitrace diff-images --output summary.html /path/to/reference/snapshots/ /path/to/test/snapshots/