X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=README.markdown;h=7d858371ca4e9ea0552a619b45ac97ec7207b94b;hb=977400f966549e14f02ecdd7eb93830beee18f7d;hp=b59ee3bef506501b69d0ce4dc6e976345f3c8a43;hpb=0a64dc2a3c3ce9b83b752d0ae46b6e49d0d0cbf8;p=apitrace diff --git a/README.markdown b/README.markdown index b59ee3b..7d85837 100644 --- a/README.markdown +++ b/README.markdown @@ -118,14 +118,14 @@ and it will generate a trace named `application.trace` in the current directory. You can specify the written trace filename by setting the `TRACE_FILE` environment variable before running. -The `LD_PRELOAD` mechanism should work with most applications. There are some -applications, e.g., Unigine Heaven, which global function pointers with the -same name as GL entrypoints, living in a shared object that wasn't linked with -`-Bsymbolic` flag, so relocations to those globals function pointers get -overwritten with the address to our wrapper library, and the application will -segfault when trying to write to them. For these applications it is possible -to trace by using `glxtrace.so` as an ordinary `libGL.so` and injecting into -`LD_LIBRARY_PATH`: +The `LD_PRELOAD` mechanism should work with the majority applications. There +are some applications (e.g., Unigine Heaven, Android GPU emulator, etc.), that +have global function pointers with the same name as GL entrypoints, living in a +shared object that wasn't linked with `-Bsymbolic` flag, so relocations to +those globals function pointers get overwritten with the address to our wrapper +library, and the application will segfault when trying to write to them. For +these applications it is possible to trace by using `glxtrace.so` as an +ordinary `libGL.so` and injecting it via `LD_LIBRARY_PATH`: ln -s glxtrace.so wrappers/libGL.so ln -s glxtrace.so wrappers/libGL.so.1 @@ -134,6 +134,9 @@ to trace by using `glxtrace.so` as an ordinary `libGL.so` and injecting into export TRACE_LIBGL=/path/to/real/libGL.so.1 /path/to/application +If you are an application developer, you can avoid this either by linking with +`-Bsymbolic` flag, or by using some unique prefix for your function pointers. + See the `ld.so` man page for more information about `LD_PRELOAD` and `LD_LIBRARY_PATH` environment flags. @@ -503,9 +506,11 @@ Open-source: Closed-source: +* [AMD CodeXL](http://developer.amd.com/tools/hc/CodeXL/Pages/default.aspx) + +* [AMD GPU PerfStudio](http://developer.amd.com/gpu/PerfStudio/pages/APITraceWindow.aspx) + * [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) -* [AMD GPU PerfStudio](http://developer.amd.com/gpu/PerfStudio/pages/APITraceWindow.aspx) -