.gitignore | 11 CMakeLists.txt | 454 DEVELOPMENT.markdown | 9 INSTALL.markdown | 50 NEWS.markdown | 22 README.markdown | 218 TODO.markdown | 129 cgltrace.py | 68 cli/CMakeLists.txt | 5 cli/cli.hpp | 1 cli/cli_diff.cpp | 80 cli/cli_diff_images.cpp | 25 cli/cli_diff_state.cpp | 38 cli/cli_dump.cpp | 25 cli/cli_dump_images.cpp | 145 cli/cli_main.cpp | 1 cli/cli_pickle.cpp | 132 cli/cli_repack.cpp | 35 cli/cli_trace.cpp | 83 cli/cli_trim.cpp | 72 cmake/.gitignore | 1 cmake/FindDirectX.cmake | 194 cmake/toolchain/android.toolchain.cmake | 1110 + codegen.py | 81 common/formatter.hpp | 83 common/image.hpp | 4 common/image_png.cpp | 7 common/image_pnm.cpp | 51 common/json.hpp | 342 common/os_binary.hpp | 1 common/os_posix.cpp | 23 common/os_process.hpp | 24 common/os_string.hpp | 97 common/os_time.hpp | 21 common/os_win32.cpp | 15 common/pickle.hpp | 18 common/trace_api.hpp | 13 common/trace_dump.cpp | 28 common/trace_file_zlib.cpp | 10 common/trace_format.hpp | 4 common/trace_model.cpp | 13 common/trace_model.hpp | 46 common/trace_parser.cpp | 50 common/trace_parser.hpp | 5 common/trace_parser_flags.cpp | 32 common/trace_profiler.cpp | 201 common/trace_profiler.hpp | 122 common/trace_resource.cpp | 93 common/trace_resource.hpp | 5 common/trace_tools_trace.cpp | 138 common/trace_writer.cpp | 8 common/trace_writer.hpp | 5 common/trace_writer_local.cpp | 6 common/trace_writer_local.hpp | 2 common/trace_writer_model.cpp | 9 compat.h | 81 d3d10trace.py | 45 d3d8trace.py | 54 d3d9imports.hpp | 83 d3d9trace.py | 94 d3dshader.cpp | 96 d3dshader.hpp | 38 ddrawtrace.py | 81 debian/apitrace-gl-frontend.install | 8 debian/apitrace-gl-retracer.install | 4 debian/apitrace-gl-tracer.install | 3 debian/apitrace-gl-tracers.install | 2 debian/changelog | 4 debian/control | 30 debian/patches/01_use_system_libpng_snappy_zlib.diff | 107 debian/patches/series | 2 dispatch.py | 115 dispatch/.gitignore | 1 dispatch/CMakeLists.txt | 55 dispatch/__init__.py | 1 dispatch/compat.h | 748 + dispatch/d3d10_1imports.hpp | 43 dispatch/d3d10imports.hpp | 43 dispatch/d3d11imports.hpp | 43 dispatch/d3d9imports.hpp | 99 dispatch/d3derr.hpp | 63 dispatch/dispatch.py | 124 dispatch/eglimports.hpp | 94 dispatch/glimports.hpp | 122 dispatch/glproc.py | 544 dispatch/glproc_egl.cpp | 151 dispatch/glproc_gl.cpp | 230 dlltrace.py | 69 eglimports.hpp | 126 egltrace.py | 190 glcaps.cpp | 177 glimports.hpp | 162 glproc.py | 540 glproc_egl.cpp | 101 glproc_gl.cpp | 230 glretrace.hpp | 69 glretrace.py | 400 glretrace_cgl.cpp | 125 glretrace_egl.cpp | 274 glretrace_glx.cpp | 260 glretrace_main.cpp | 391 glretrace_wgl.cpp | 309 glsize.hpp | 786 - glstate.cpp | 1445 -- glstate.hpp | 61 glstate.py | 498 gltrace.hpp | 49 gltrace.py | 939 - glws.cpp | 62 glws.hpp | 170 glws_cocoa.mm | 270 glws_egl_xlib.cpp | 441 glws_glx.cpp | 377 glws_wgl.cpp | 282 glxtrace.py | 161 gui/CMakeLists.txt | 15 gui/apicalldelegate.cpp | 59 gui/apisurface.cpp | 3 gui/apitrace.cpp | 74 gui/apitrace.h | 23 gui/apitracecall.cpp | 28 gui/apitracecall.h | 6 gui/apitracemodel.cpp | 23 gui/apitracemodel.h | 2 gui/imageviewer.cpp | 88 gui/imageviewer.h | 5 gui/main.cpp | 3 gui/mainwindow.cpp | 222 gui/mainwindow.h | 29 gui/profiledialog.cpp | 83 gui/profiledialog.h | 34 gui/profiletablemodel.cpp | 272 gui/profiletablemodel.h | 65 gui/retracer.cpp | 540 gui/retracer.h | 74 gui/saverthread.cpp | 14 gui/settingsdialog.cpp | 11 gui/settingsdialog.h | 2 gui/thumbnail.h | 13 gui/timelinewidget.cpp | 883 + gui/timelinewidget.h | 119 gui/tracedialog.cpp | 17 gui/tracedialog.h | 1 gui/traceloader.cpp | 43 gui/traceloader.h | 5 gui/traceprocess.cpp | 12 gui/traceprocess.h | 2 gui/trimprocess.cpp | 120 gui/trimprocess.h | 45 gui/ui/imageviewer.ui | 69 gui/ui/mainwindow.ui | 56 gui/ui/profiledialog.ui | 276 gui/ui/profilereplaydialog.ui | 112 gui/ui/settings.ui | 23 gui/ui/tracedialog.ui | 14 helpers/d3dsize.hpp | 379 helpers/eglsize.cpp | 217 helpers/eglsize.hpp | 57 helpers/glsize.hpp | 809 + retrace.cpp | 136 retrace.hpp | 152 retrace.py | 316 retrace/.gitignore | 2 retrace/CMakeLists.txt | 161 retrace/d3dretrace.hpp | 63 retrace/d3dretrace.py | 113 retrace/d3dretrace_main.cpp | 94 retrace/d3dretrace_ws.cpp | 151 retrace/d3dstate.cpp | 45 retrace/d3dstate.hpp | 55 retrace/d3dstate_images.cpp | 100 retrace/dllretrace.py | 70 retrace/glretrace.hpp | 98 retrace/glretrace.py | 527 retrace/glretrace_cgl.cpp | 117 retrace/glretrace_egl.cpp | 267 retrace/glretrace_glx.cpp | 222 retrace/glretrace_main.cpp | 444 retrace/glretrace_wgl.cpp | 293 retrace/glretrace_ws.cpp | 193 retrace/glstate.cpp | 155 retrace/glstate.hpp | 54 retrace/glstate_images.cpp | 1189 + retrace/glstate_internal.hpp | 73 retrace/glstate_params.py | 527 retrace/glstate_shaders.cpp | 742 + retrace/glws.cpp | 59 retrace/glws.hpp | 167 retrace/glws_cocoa.mm | 270 retrace/glws_egl_xlib.cpp | 484 retrace/glws_glx.cpp | 377 retrace/glws_wgl.cpp | 352 retrace/json.hpp | 369 retrace/retrace.cpp | 119 retrace/retrace.hpp | 241 retrace/retrace.py | 510 retrace/retrace_main.cpp | 320 retrace/retrace_stdc.cpp | 71 retrace/retrace_swizzle.cpp | 274 retrace/retrace_swizzle.hpp | 102 retrace_stdc.cpp | 238 scripts/highlight.py | 81 scripts/profileshader.py | 84 scripts/retracediff.py | 4 scripts/snapdiff.py | 49 scripts/tracediff.py | 215 scripts/tracediff.sh | 59 scripts/tracediff2.py | 341 scripts/unpickle.py | 216 specs/__init__.py | 28 specs/cglapi.py | 4 specs/d3d.py | 56 specs/d3d10.def | 6 specs/d3d10.py | 386 specs/d3d10_1.def | 6 specs/d3d10_1.py | 101 specs/d3d10effect.py | 384 specs/d3d10misc.py | 48 specs/d3d10sdklayers.py | 620 specs/d3d10shader.py | 175 specs/d3d11.py | 1236 + specs/d3d11_1.py | 180 specs/d3d11sdklayers.py | 890 + specs/d3d11shader.py | 186 specs/d3d8.def | 4 specs/d3d8.py | 67 specs/d3d9.def | 12 specs/d3d9.py | 289 specs/d3d9caps.py | 11 specs/d3d9types.py | 85 specs/d3dcommon.py | 701 + specs/ddraw.def | 23 specs/ddraw.py | 67 specs/dxgi.py | 292 specs/dxgiformat.py | 2 specs/dxgitype.py | 28 specs/eglapi.py | 8 specs/glapi.py | 946 - specs/glesapi.py | 66 specs/glparams.py | 582 specs/gltypes.py | 27 specs/glxapi.py | 34 specs/opengl32.def | 371 specs/scripts/cdecl.py | 139 specs/scripts/glspec.py | 12 specs/stdapi.py | 370 specs/wglapi.py | 14 specs/winapi.py | 78 thirdparty/glext/.gitignore | 1 thirdparty/glext/GL/Makefile | 11 thirdparty/glext/GL/glext.h |11490 ----------------- thirdparty/glext/GL/glext.sed | 19 thirdparty/glext/GL/glxext.h | 993 - thirdparty/glext/GL/wglext.h | 929 - thirdparty/khr/EGL/egl.h | 329 thirdparty/khr/EGL/eglext.h | 335 thirdparty/khr/GLES/glext.h | 1073 - thirdparty/khr/GLES2/gl2ext.h | 1138 - thirdparty/khronos/.gitignore | 1 thirdparty/khronos/EGL/egl.h | 329 thirdparty/khronos/EGL/eglext.h | 464 thirdparty/khronos/EGL/eglplatform.h | 131 thirdparty/khronos/EGL/eglplatform.patch | 27 thirdparty/khronos/GL/gl.h | 1957 ++ thirdparty/khronos/GL/glext.h |12804 +++++++++++++++++++ thirdparty/khronos/GL/glext.patch | 22 thirdparty/khronos/GL/glx.h | 325 thirdparty/khronos/GL/glxext.h | 1001 + thirdparty/khronos/GL/wglext.h | 943 + thirdparty/khronos/GLES/gl.h | 770 + thirdparty/khronos/GLES/glext.h | 1192 + thirdparty/khronos/GLES/glext.patch | 19 thirdparty/khronos/GLES/glplatform.h | 30 thirdparty/khronos/GLES2/gl2.h | 620 thirdparty/khronos/GLES2/gl2ext.h | 1525 ++ thirdparty/khronos/GLES2/gl2platform.h | 30 thirdparty/khronos/KHR/khrplatform.h | 269 thirdparty/khronos/Makefile | 42 thirdparty/khronos/README.markdown | 12 thirdparty/less.patch | 100 thirdparty/less/CMakeLists.txt | 36 thirdparty/less/COPYING | 674 + thirdparty/less/INSTALL | 186 thirdparty/less/LICENSE | 27 thirdparty/less/NEWS | 820 + thirdparty/less/README | 236 thirdparty/less/brac.c | 101 thirdparty/less/ch.c | 933 + thirdparty/less/charset.c | 1173 + thirdparty/less/charset.h | 19 thirdparty/less/cmd.h | 133 thirdparty/less/cmdbuf.c | 1503 ++ thirdparty/less/command.c | 1763 ++ thirdparty/less/cvt.c | 120 thirdparty/less/decode.c | 841 + thirdparty/less/defines.h.in | 426 thirdparty/less/defines.wn | 347 thirdparty/less/edit.c | 818 + thirdparty/less/filename.c | 1081 + thirdparty/less/forwback.c | 424 thirdparty/less/funcs.h | 291 thirdparty/less/help.c | 236 thirdparty/less/ifile.c | 346 thirdparty/less/input.c | 458 thirdparty/less/jump.c | 309 thirdparty/less/less.h | 504 thirdparty/less/less.hlp | 231 thirdparty/less/lessecho.c | 272 thirdparty/less/lesskey.c | 873 + thirdparty/less/lesskey.h | 40 thirdparty/less/lglob.h | 95 thirdparty/less/line.c | 1244 + thirdparty/less/linenum.c | 471 thirdparty/less/lsystem.c | 376 thirdparty/less/main.c | 414 thirdparty/less/mark.c | 258 thirdparty/less/mkhelp.c | 69 thirdparty/less/optfunc.c | 707 + thirdparty/less/option.c | 702 + thirdparty/less/option.h | 67 thirdparty/less/opttbl.c | 599 thirdparty/less/os.c | 364 thirdparty/less/output.c | 601 thirdparty/less/pattern.c | 322 thirdparty/less/pattern.h | 48 thirdparty/less/pckeys.h | 34 thirdparty/less/position.c | 232 thirdparty/less/position.h | 19 thirdparty/less/prompt.c | 587 thirdparty/less/regexp.c | 1250 + thirdparty/less/regexp.h | 34 thirdparty/less/screen.c | 2502 +++ thirdparty/less/scrsize.c | 104 thirdparty/less/search.c | 1211 + thirdparty/less/signal.c | 257 thirdparty/less/tags.c | 757 + thirdparty/less/ttyin.c | 178 thirdparty/less/version.c | 748 + thirdparty/libpng/ANNOUNCE | 60 thirdparty/libpng/CHANGES | 559 thirdparty/libpng/LICENSE | 4 thirdparty/libpng/README | 13 thirdparty/libpng/libpng.txt | 3352 ---- thirdparty/libpng/png.c | 900 + thirdparty/libpng/png.h | 477 thirdparty/libpng/pngconf.h | 117 thirdparty/libpng/pngerror.c | 278 thirdparty/libpng/pngget.c | 120 thirdparty/libpng/pnginfo.h | 1 thirdparty/libpng/pnglibconf.h | 20 thirdparty/libpng/pngmem.c | 37 thirdparty/libpng/pngpread.c | 267 thirdparty/libpng/pngpriv.h | 669 thirdparty/libpng/pngread.c | 501 thirdparty/libpng/pngrtran.c | 2468 ++- thirdparty/libpng/pngrutil.c | 1482 +- thirdparty/libpng/pngset.c | 109 thirdparty/libpng/pngstruct.h | 90 thirdparty/libpng/pngtrans.c | 16 thirdparty/libpng/pngwrite.c | 240 thirdparty/libpng/pngwtran.c | 30 thirdparty/libpng/pngwutil.c | 570 thirdparty/msvc/.gitignore | 1 thirdparty/msvc/Makefile | 10 thirdparty/snappy/ChangeLog | 422 thirdparty/snappy/NEWS | 31 thirdparty/snappy/README | 4 thirdparty/snappy/format_description.txt | 6 thirdparty/snappy/framing_format.txt | 124 thirdparty/snappy/snappy-sinksource.cc | 1 thirdparty/snappy/snappy-sinksource.h | 1 thirdparty/snappy/snappy-stubs-internal.h | 62 thirdparty/snappy/snappy-stubs-public.h | 2 thirdparty/snappy/snappy-test.cc | 2 thirdparty/snappy/snappy-test.h | 2 thirdparty/snappy/snappy.cc | 197 thirdparty/snappy/snappy.h | 4 thirdparty/snappy/snappy_unittest.cc | 18 thirdparty/zlib/CMakeLists.txt | 2 thirdparty/zlib/ChangeLog | 141 thirdparty/zlib/README | 24 thirdparty/zlib/adler32.c | 68 thirdparty/zlib/crc32.c | 31 thirdparty/zlib/crc32.h | 2 thirdparty/zlib/deflate.c | 259 thirdparty/zlib/deflate.h | 10 thirdparty/zlib/example.c | 565 thirdparty/zlib/gzguts.h | 80 thirdparty/zlib/gzlib.c | 77 thirdparty/zlib/gzread.c | 417 thirdparty/zlib/gzwrite.c | 150 thirdparty/zlib/infback.c | 14 thirdparty/zlib/inffixed.h | 6 thirdparty/zlib/inflate.c | 71 thirdparty/zlib/inftrees.c | 46 thirdparty/zlib/minigzip.c | 440 thirdparty/zlib/trees.c | 40 thirdparty/zlib/zconf.h | 146 thirdparty/zlib/zlib.h | 279 thirdparty/zlib/zutil.c | 31 thirdparty/zlib/zutil.h | 92 trace.py | 589 wgltrace.py | 83 wrappers/.gitignore | 12 wrappers/CMakeLists.txt | 403 wrappers/cgltrace.py | 107 wrappers/d3d10.def | 31 wrappers/d3d10_1.def | 6 wrappers/d3d10_1trace.py | 40 wrappers/d3d10shader.cpp | 115 wrappers/d3d10shader.hpp | 38 wrappers/d3d10trace.py | 52 wrappers/d3d11.def | 9 wrappers/d3d11trace.py | 48 wrappers/d3d8.def | 4 wrappers/d3d8trace.py | 54 wrappers/d3d9.def | 12 wrappers/d3d9shader.cpp | 105 wrappers/d3d9shader.hpp | 38 wrappers/d3d9trace.py | 95 wrappers/ddraw.def | 23 wrappers/ddrawtrace.py | 70 wrappers/dlltrace.py | 69 wrappers/egltrace.py | 281 wrappers/glcaps.cpp | 226 wrappers/gltrace.hpp | 90 wrappers/gltrace.py | 1029 + wrappers/gltrace_state.cpp | 156 wrappers/glxtrace.py | 177 wrappers/opengl32.def | 371 wrappers/trace.cpp | 115 wrappers/trace.hpp | 56 wrappers/trace.py | 709 + wrappers/wgltrace.py | 103 434 files changed, 91985 insertions(+), 39470 deletions(-)
New commits: commit 71a8716734495fa15a55433c401021f1c00982e8 Author: Christopher James Halse Rogers <ch...@cooperteam.net> Date: Fri Aug 17 13:57:20 2012 +1000 Rearrange package split. Now split into apitrace-gl-frontend and apitrace-gl-tracers. The -frontend package contains both the CLI and Qt frontends for tracing/replaying/etc. The -tracers package contains the actual LD_PRELOADable tracer DSOs; this is tagged Multi-Arch: same, so can be parallel installed across architectures diff --git a/debian/apitrace-gl-frontend.install b/debian/apitrace-gl-frontend.install index 6e90379..d5d680f 100644 --- a/debian/apitrace-gl-frontend.install +++ b/debian/apitrace-gl-frontend.install @@ -1,4 +1,8 @@ -debian/qapitrace.desktop usr/share/applications +usr/bin/apitrace usr/bin/eglretrace usr/bin/glretrace usr/bin/qapitrace + +debian/qapitrace.desktop usr/share/applications + +usr/lib/apitrace diff --git a/debian/apitrace-gl-tracers.install b/debian/apitrace-gl-tracers.install index de2df69..b7c0380 100644 --- a/debian/apitrace-gl-tracers.install +++ b/debian/apitrace-gl-tracers.install @@ -1,3 +1,2 @@ -usr/lib/apitrace -usr/bin/apitrace -usr/share/doc/* usr/share/doc/apitrace-gl-tracer/ +usr/lib/*/apitrace/wrappers +usr/share/doc/* usr/share/doc/apitrace-gl-tracers/ diff --git a/debian/control b/debian/control index 7140d03..ea67a85 100644 --- a/debian/control +++ b/debian/control @@ -19,16 +19,15 @@ Homepage: https://github.com/apitrace/apitrace Vcs-Git: git://git.debian.org/pkg-xorg/app/apitrace.git Vcs-Browser: http://git.debian.org/?p=pkg-xorg/app/apitrace.git;a=summary -Package: apitrace-gl-tracer +Package: apitrace-gl-frontend Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, + apitrace-gl-tracers (= ${binary:Version}), python, python-imaging, -Pre-Depends: ${misc:Pre-Depends} -Multi-Arch: same -Description: tools for debugging OpenGL applications and drivers - application tracer +Description: tools for debugging OpenGL applications and drivers - tracing frontends apitrace is a suite of tools for debugging OpenGL applications and drivers. It includes a tool to generate a trace of all the OpenGL calls an applicaton makes and a tool for replaying these traces and inspecting the rendering and @@ -37,18 +36,17 @@ Description: tools for debugging OpenGL applications and drivers - application t This makes it useful for identifying the sources of graphical corruption in OpenGL applications. . - This package contains the components required to trace the OpenGL calls made - by an application and record them into a trace file for later replay and - debugging. + This package contains frontends for the apitrace tool, making it easy to trace + applicatons and replay, compare, profile, and modify existing traces. -Package: apitrace-gl-retracer +Package: apitrace-gl-tracers Architecture: any -Depends: +Depends: ${shlibs:Depends}, ${misc:Depends}, -Recommends: - apitrace-gl-tracer -Description: tools for debugging OpenGL applications and drivers - trace inspectors +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: tools for debugging OpenGL applications and drivers - application tracer apitrace is a suite of tools for debugging OpenGL applications and drivers. It includes a tool to generate a trace of all the OpenGL calls an applicaton makes and a tool for replaying these traces and inspecting the rendering and @@ -57,5 +55,6 @@ Description: tools for debugging OpenGL applications and drivers - trace inspect This makes it useful for identifying the sources of graphical corruption in OpenGL applications. . - This package contains the tools needed to process, view, and replay traces - captured using the tools in the apitrace-gl-tracer package. + This package contains the components required to trace the OpenGL calls made + by an application and record them into a trace file for later replay and + debugging. commit 4be60a495c85f76a3ff4f755cdfcc672eb47a4a8 Author: Christopher James Halse Rogers <ch...@cooperteam.net> Date: Fri Aug 17 12:53:37 2012 +1000 Drop 01_use_system_libpng_snappy_zlib.diff. Upstream has a reasonable fear of symbol contamination here, given that the intended use is to inject the tracer into arbitrary executables. There shouldn't be security concerns here; if a user can apitrace something, they can interpose an arbitary DSO which is hella-bad. diff --git a/debian/apitrace-gl-frontend.install b/debian/apitrace-gl-frontend.install new file mode 100644 index 0000000..6e90379 --- /dev/null +++ b/debian/apitrace-gl-frontend.install @@ -0,0 +1,4 @@ +debian/qapitrace.desktop usr/share/applications +usr/bin/eglretrace +usr/bin/glretrace +usr/bin/qapitrace diff --git a/debian/apitrace-gl-retracer.install b/debian/apitrace-gl-retracer.install deleted file mode 100644 index 6e90379..0000000 --- a/debian/apitrace-gl-retracer.install +++ /dev/null @@ -1,4 +0,0 @@ -debian/qapitrace.desktop usr/share/applications -usr/bin/eglretrace -usr/bin/glretrace -usr/bin/qapitrace diff --git a/debian/apitrace-gl-tracer.install b/debian/apitrace-gl-tracer.install deleted file mode 100644 index de2df69..0000000 --- a/debian/apitrace-gl-tracer.install +++ /dev/null @@ -1,3 +0,0 @@ -usr/lib/apitrace -usr/bin/apitrace -usr/share/doc/* usr/share/doc/apitrace-gl-tracer/ diff --git a/debian/apitrace-gl-tracers.install b/debian/apitrace-gl-tracers.install new file mode 100644 index 0000000..de2df69 --- /dev/null +++ b/debian/apitrace-gl-tracers.install @@ -0,0 +1,3 @@ +usr/lib/apitrace +usr/bin/apitrace +usr/share/doc/* usr/share/doc/apitrace-gl-tracer/ diff --git a/debian/changelog b/debian/changelog index 2146960..d27daf4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,5 @@ apitrace (3.0+git20120817.56ad11c7-1) UNRELEASED; urgency=low * Initial release (Closes: #636679, LP: #813848) - * debian/patches/01_use_system_libpng_snappy_zlib.diff: - - Use system libraries rather than bundled copies. -- Christopher James Halse Rogers <r...@ubuntu.com> Mon, 13 Feb 2012 16:32:44 +1100 diff --git a/debian/control b/debian/control index a3d4fc0..7140d03 100644 --- a/debian/control +++ b/debian/control @@ -12,11 +12,8 @@ Build-Depends: libqt4-dev, libqtwebkit-dev, libqjson-dev, - libsnappy-dev, - libpng12-dev, pkg-config, python, - zlib1g-dev, Standards-Version: 3.9.2 Homepage: https://github.com/apitrace/apitrace Vcs-Git: git://git.debian.org/pkg-xorg/app/apitrace.git diff --git a/debian/patches/01_use_system_libpng_snappy_zlib.diff b/debian/patches/01_use_system_libpng_snappy_zlib.diff deleted file mode 100644 index 6b5f844..0000000 --- a/debian/patches/01_use_system_libpng_snappy_zlib.diff +++ /dev/null @@ -1,107 +0,0 @@ -Description: Link against system libraries for zlib, libsnappy, and libpng -Author: Christopher James Halse Rogers <christopher.halse.rog...@canonical.com> -Forwarded: not-needed - -Index: apitrace/CMakeLists.txt -=================================================================== ---- apitrace.orig/CMakeLists.txt 2012-02-13 13:11:55.503382553 +1100 -+++ apitrace/CMakeLists.txt 2012-02-13 13:11:58.827382375 +1100 -@@ -155,25 +155,20 @@ - # - on unices to prevent symbol collisions when tracing applications that link - # against other versions of these libraries - --set (ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/zlib) --set (ZLIB_LIBRARIES z_bundled) --add_subdirectory (thirdparty/zlib EXCLUDE_FROM_ALL) -- -+find_package (ZLIB REQUIRED) - include_directories (${ZLIB_INCLUDE_DIRS}) - link_libraries (${ZLIB_LIBRARIES}) -- --set (SNAPPY_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/snappy) --set (SNAPPY_LIBRARIES snappy_bundled) --add_subdirectory (thirdparty/snappy EXCLUDE_FROM_ALL) -+# -+# libSnappy doesn't ship a pc file, because it is made of hate -+# -+#find_package (SNAPPY REQUIRED) -+set (SNAPPY_INCLUDE_DIRS "") -+set (SNAPPY_LIBRARIES -lsnappy) - - include_directories (${SNAPPY_INCLUDE_DIRS}) - link_libraries (${SNAPPY_LIBRARIES}) - --set (PNG_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libpng) --set (PNG_DEFINITIONS "") --set (PNG_LIBRARIES png_bundled) -- --add_subdirectory (thirdparty/libpng EXCLUDE_FROM_ALL) -+find_package (PNG REQUIRED) - include_directories (${PNG_INCLUDE_DIR}) - add_definitions (${PNG_DEFINITIONS}) - link_libraries (${PNG_LIBRARIES}) -Index: apitrace/common/trace_file_zlib.cpp -=================================================================== ---- apitrace.orig/common/trace_file_zlib.cpp 2012-02-13 13:11:34.000000000 +1100 -+++ apitrace/common/trace_file_zlib.cpp 2012-02-13 13:12:12.107381666 +1100 -@@ -31,11 +31,11 @@ - #include <string.h> - - #include <zlib.h> --#include <gzguts.h> - - #include "os.hpp" - - #include <iostream> -+#include <stdio.h> - - - using namespace trace; -@@ -60,6 +60,7 @@ - virtual bool rawSkip(size_t length); - virtual int rawPercentRead(); - private: -+ int raw_fd; - void *m_gzFile; - double m_endOffset; - }; -@@ -78,18 +79,23 @@ - - bool ZLibFile::rawOpen(const std::string &filename, File::Mode mode) - { -- m_gzFile = gzopen(filename.c_str(), -- (mode == File::Write) ? "wb" : "rb"); -+ FILE *file = fopen(filename.c_str(), -+ (mode == File::Write) ? "wb" : "rb") ; -+ if (file == NULL) -+ return false; -+ -+ int raw_fd = fileno(file); -+ m_gzFile = gzdopen(raw_fd, -+ (mode == File::Write) ? "wb" : "rb"); - - if (mode == File::Read && m_gzFile) { - //XXX: unfortunately zlib doesn't support - // SEEK_END or we could've done: - //m_endOffset = gzseek(m_gzFile, 0, SEEK_END); - //gzrewind(m_gzFile); -- gz_state *state = (gz_state *)m_gzFile; -- off_t loc = lseek(state->fd, 0, SEEK_CUR); -- m_endOffset = lseek(state->fd, 0, SEEK_END); -- lseek(state->fd, loc, SEEK_SET); -+ off_t loc = lseek(raw_fd, 0, SEEK_CUR); -+ m_endOffset = lseek(raw_fd, 0, SEEK_END); -+ lseek(raw_fd, loc, SEEK_SET); - } - - return m_gzFile != NULL; -@@ -141,8 +147,7 @@ - - int ZLibFile::rawPercentRead() - { -- gz_state *state = (gz_state *)m_gzFile; -- return 100 * (lseek(state->fd, 0, SEEK_CUR) / m_endOffset); -+ return 100 * (lseek(raw_fd, 0, SEEK_CUR) / m_endOffset); - } - - diff --git a/debian/patches/series b/debian/patches/series index 21482db..8b13789 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1 @@ -01_use_system_libpng_snappy_zlib.diff + commit 66ff12b47bd2b04997067425811d60a756aadc55 Author: Christopher James Halse Rogers <ch...@cooperteam.net> Date: Fri Aug 17 12:26:36 2012 +1000 Bump changelog version diff --git a/debian/changelog b/debian/changelog index af38e67..2146960 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apitrace (2.0+git20120213.d8ea58f1-1) UNRELEASED; urgency=low +apitrace (3.0+git20120817.56ad11c7-1) UNRELEASED; urgency=low * Initial release (Closes: #636679, LP: #813848) * debian/patches/01_use_system_libpng_snappy_zlib.diff: commit 56ad11c7849c7e6ca0ad66558cb1a99c58d4cd3d Author: James Benton <jben...@vmware.com> Date: Thu Aug 16 13:44:19 2012 +0100 Improve profiling. Remove frame_begin from profile output. Change frame_end to no longer record times. Profile non-draw calls for CPU only. Resynchronise gpu time every frame to account for drift. Improve performance of profile gui. Add seperate CPU view to timeline widget. diff --git a/common/trace_profiler.cpp b/common/trace_profiler.cpp index 403c260..642ba6e 100644 --- a/common/trace_profiler.cpp +++ b/common/trace_profiler.cpp @@ -24,16 +24,16 @@ **************************************************************************/ #include "trace_profiler.hpp" +#include "os_time.hpp" #include <iostream> #include <string.h> -#include <assert.h> #include <sstream> -#include "os_time.hpp" namespace trace { Profiler::Profiler() : baseGpuTime(0), baseCpuTime(0), + minCpuTime(1000), cpuTimes(false), gpuTimes(true), pixelsDrawn(false) @@ -50,14 +50,26 @@ void Profiler::setup(bool cpuTimes_, bool gpuTimes_, bool pixelsDrawn_) gpuTimes = gpuTimes_; pixelsDrawn = pixelsDrawn_; - std::cout << "# frame_begin no gpu_start cpu_start" << std::endl; - std::cout << "# frame_end no gpu_end gpu_dura cpu_end cpu_dura" << std::endl; std::cout << "# call no gpu_start gpu_dura cpu_start cpu_dura pixels program name" << std::endl; } -void Profiler::setBaseTimes(int64_t gpuStart, int64_t cpuStart) +int64_t Profiler::getBaseCpuTime() +{ + return baseCpuTime; +} + +int64_t Profiler::getBaseGpuTime() +{ + return baseGpuTime; +} + +void Profiler::setBaseCpuTime(int64_t cpuStart) { baseCpuTime = cpuStart; +} + +void Profiler::setBaseGpuTime(int64_t gpuStart) +{ baseGpuTime = gpuStart; } @@ -84,6 +96,10 @@ void Profiler::addCall(unsigned no, double cpuTimeScale = 1.0E9 / os::timeFrequency; cpuStart = (cpuStart - baseCpuTime) * cpuTimeScale; cpuDuration = cpuDuration * cpuTimeScale; + + if (cpuDuration < minCpuTime) { + return; + } } else { cpuStart = 0; cpuDuration = 0; @@ -105,108 +121,81 @@ void Profiler::addCall(unsigned no, << std::endl; } -void Profiler::addFrameStart(unsigned no, int64_t gpuStart, int64_t cpuStart) -{ - lastFrame.no = no; - lastFrame.gpuStart = gpuStart; - lastFrame.cpuStart = cpuStart; - - if (gpuTimes) { - gpuStart = gpuStart - baseGpuTime; - } else { - gpuStart = 0; - } - - if (cpuTimes) { - double cpuTimeScale = 1.0E9 / os::timeFrequency; - cpuStart = (cpuStart - baseCpuTime) * cpuTimeScale; - } else { - cpuStart = 0; - } - - std::cout << "frame_begin" - << " " << no - << " " << gpuStart - << " " << cpuStart - << std::endl; -} - -void Profiler::addFrameEnd(int64_t gpuEnd, int64_t cpuEnd) +void Profiler::addFrameEnd() { - int64_t gpuDuration, cpuDuration; - - if (gpuTimes) { - gpuDuration = gpuEnd - lastFrame.gpuStart; - gpuEnd = gpuEnd - baseGpuTime; - } else { - gpuEnd = 0; - gpuDuration = 0; - } - - if (cpuTimes) { - double cpuTimeScale = 1.0E9 / os::timeFrequency; - cpuDuration = (cpuEnd - lastFrame.cpuStart) * cpuTimeScale; - cpuEnd = (cpuEnd - baseCpuTime) * cpuTimeScale; - } else { - cpuEnd = 0; - cpuDuration = 0; - } - - std::cout << "frame_end" - << " " << lastFrame.no - << " " << gpuEnd - << " " << gpuDuration - << " " << cpuEnd - << " " << cpuDuration - << std::endl; + std::cout << "frame_end" << std::endl; } void Profiler::parseLine(const char* in, Profile* profile) { std::stringstream line(in, std::ios_base::in); std::string type; + static int64_t lastGpuTime; + static int64_t lastCpuTime; - if (in[0] == '#' || strlen(in) < 12) + if (in[0] == '#' || strlen(in) < 4) return; + if (profile->programs.size() == 0 && profile->cpuCalls.size() == 0 && profile->frames.size() == 0) { + lastGpuTime = 0; + lastCpuTime = 0; + } + line >> type; if (type.compare("call") == 0) { - assert(profile->frames.size()); - Profile::Call call; - - line >> call.no - >> call.gpuStart - >> call.gpuDuration - >> call.cpuStart - >> call.cpuDuration - >> call.pixels - >> call.program - >> call.name; - - if (call.pixels >= 0) { - profile->frames.back().calls.push_back(call); + Profile::DrawCall draw; + unsigned program; + + line >> draw.no + >> draw.gpuStart + >> draw.gpuDuration + >> draw.cpuStart + >> draw.cpuDuration + >> draw.pixels + >> program + >> draw.name; + + if (lastGpuTime < draw.gpuStart + draw.gpuDuration) { + lastGpuTime = draw.gpuStart + draw.gpuDuration; } - } else if (type.compare("frame_begin") == 0) { - Profile::Frame frame; - frame.gpuDuration = 0; - frame.cpuDuration = 0; - line >> frame.no - >> frame.gpuStart - >> frame.cpuStart; + if (lastCpuTime < draw.cpuStart + draw.cpuDuration) { + lastCpuTime = draw.cpuStart + draw.cpuDuration; + } - profile->frames.push_back(frame); + if (draw.pixels >= 0) { + if (profile->programs.size() <= program) { + profile->programs.resize(program + 1); + } + + profile->programs[program].cpuTotal += draw.cpuDuration; + profile->programs[program].gpuTotal += draw.gpuDuration; + profile->programs[program].pixelTotal += draw.pixels; + profile->programs[program].drawCalls.push_back(draw); + } + + Profile::CpuCall call; + call.no = draw.no; + call.name = draw.name; + call.cpuStart = draw.cpuStart; + call.cpuDuration = draw.cpuDuration; + profile->cpuCalls.push_back(call); } else if (type.compare("frame_end") == 0) { - assert(profile->frames.size()); - Profile::Frame& frame = profile->frames.back(); - int64_t skipi64; - - line >> frame.no - >> skipi64 - >> frame.gpuDuration - >> skipi64 - >> frame.cpuDuration; + Profile::Frame frame; + frame.no = profile->frames.size(); + + if (frame.no == 0) { + frame.gpuStart = 0; + frame.cpuStart = 0; + } else { + frame.gpuStart = profile->frames.back().gpuStart + profile->frames.back().gpuDuration; + frame.cpuStart = profile->frames.back().cpuStart + profile->frames.back().cpuDuration; + } + + frame.gpuDuration = lastGpuTime - frame.gpuStart; + frame.cpuDuration = lastCpuTime - frame.cpuStart; + profile->frames.push_back(frame); } } } diff --git a/common/trace_profiler.hpp b/common/trace_profiler.hpp index dc3c4be..42fd032 100644 --- a/common/trace_profiler.hpp +++ b/common/trace_profiler.hpp @@ -34,34 +34,51 @@ namespace trace { -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1t2kql-0006xh...@vasks.debian.org