- API Trace
+ API Trace & Retrace
= Copyright =
-Copyright 2008-2009 VMware, Inc.
+Copyright 2008-2010 VMware, Inc.
All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
= About =
-Wrapper DLLs to trace D3D8, D3D9, and OpenGL APIs calls.
-
-Based on the idea from Michael Koch.
-
-See also:
-* http://www.mikoweb.eu/index.php?node=21
-* http://www.codeguru.com/cpp/g-m/directx/directx8/article.php/c11453/
-* http://doc.51windows.net/Directx9_SDK/?url=/directx9_sdk/graphics/programmingguide/TutorialsAndSamplesAndToolsAndTips/Tools/D3DSpy.htm
+Wrapper DLLs to trace OpenGL, D3D8, and D3D9 APIs calls.
= Status =
-* Only Direct3D 8 and 9 are supported at the moment.
+* Direct3D 8 and 9 are broken at the moment.
* It has not been tested with many applications. Bugs may cause the application to crash.
= Building from source =
+Common requirements:
+* Python (tested with version 2.6)
+* CMake (tested with version 2.8)
+
+== Linux ==
-== MSVC ==
+Build as:
+
+ cmake -H. -Bbuild
+ make -C build
+
+== Windows ==
Requirements:
-* Python (tested with version 2.5)
-* SCons (tested with 0.98.4)
-* Microsoft Visual Studio (tested with 2005 version)
+* Microsoft Visual Studio (tested with 2008 version) or MinGW (tested with gcc version 4.4)
* Microsoft DirectX SDK (tested with August 2007 release)
-Instructions:
-
-* Invoke scons:
+To build with Visual Studio invoke CMake as:
- scons debug=no dxsdk=C:\DXSDK
+ cmake -G "Visual Studio 9 2008" -H%CD% -B%CD%\build
+ cmake --build %CD%\build --config MinSizeRel
+It's also possible to build on Linux with MinGW cross compilers. See
+http://www.cmake.org/Wiki/CmakeMingw for detailed instructions.
-== MinGW crosscompiler ==
-Requirements:
-* apt-get install mingw32
+= Usage =
-Intructions:
+== Linux ==
- scons platform=windows machine=x86 toolchain=crossmingw opengl32.dll
+* Run the application you want to trace as
+ LD_PRELOAD=path/to/glxtrace.so path/to/application
-= Usage =
+* View the trace with
+
+ path/to/dump application.trace
+
+* Replay the trace with
-* Copy d3d8.dll, d3d9.dll, or opengl32.dll and apitrace.xsl to the directory with the application you want to trace.
+ path/to/glretrace application.trace
+
+
+== Windows ==
+
+* Copy opengl32.dll, d3d8.dll, or d3d9.dll to the directory with the application you want to trace.
* Run the application.
-* Decompress the output .xml.gz and open the XML with Firefox or Internet Explorer to view the log. On Firefox hover on the arguments to see their contents.
-* For long XML files is better to use xml2txt.py script directly on the .xml.gz file, as:
+* View the trace with
+
+ path/to/dump application.trace
+
+* Replay the trace with
+
+ path/to/glretrace application.trace
+
+
+= Related Links =
+
+* http://jrfonseca.blogspot.com/2008/07/tracing-d3d-applications.html
+
+== Direct3D ==
+
+ * [http://www.mikoweb.eu/index.php?node=21 Proxy DLL]
+ * [http://www.codeguru.com/cpp/g-m/directx/directx8/article.php/c11453/ Intercept Calls to DirectX with a Proxy DLL]
+ * [http://doc.51windows.net/Directx9_SDK/?url=/directx9_sdk/graphics/programmingguide/TutorialsAndSamplesAndToolsAndTips/Tools/D3DSpy.htm D3DSpy]
+ * [http://msdn.microsoft.com/en-us/library/ee417062.aspx PIX]
- python xml2txt.py d3d9.xml.gz > d3d9.log
+== OpenGL ==
-See also http://jrfonseca.blogspot.com/2008/07/tracing-d3d-applications.html
+ * [http://www.opengl.org/sdk/tools/BuGLe/ BuGLe]
+ * [http://glintercept.nutty.org/ GLIntercept]
+ * [http://www.gremedy.com/products.php gDEBugger]