.editorconfig | 27 .gitignore | 6 .lvimrc | 1 .travis.yml | 63 Android.mk | 9 CMakeLists.txt | 271 appveyor.yml | 38 cli/CMakeLists.txt | 10 cli/cli.hpp | 2 cli/cli_dump.cpp | 65 cli/cli_leaks.cpp | 85 cli/cli_main.cpp | 2 cli/cli_pickle.cpp | 34 cli/cli_repack.cpp | 170 cli/cli_sed.cpp | 49 cli/cli_trace.cpp | 31 cli/cli_trim.cpp | 284 cli/cli_trim_auto.cpp | 432 cli/cli_trim_auto_analyzer.cpp | 767 + cli/cli_trim_auto_analyzer.hpp | 114 cli/pickle.hpp | 1 cli/trace_analyzer.cpp | 767 - cli/trace_analyzer.hpp | 114 cmake/FindDirectX.cmake | 75 cmake/FindWaffle.cmake | 38 cmake/Windows10SDK.cmake | 53 cmake/toolchain/android.toolchain.cmake | 1767 -- common/highlight.cpp | 324 common/highlight.hpp | 86 common/os.hpp | 106 common/os_backtrace.cpp | 486 common/os_backtrace.hpp | 44 common/os_binary.hpp | 59 common/os_dl.hpp | 87 common/os_memory.hpp | 78 common/os_posix.cpp | 450 common/os_process.hpp | 89 common/os_string.hpp | 435 common/os_thread.hpp | 499 common/os_time.hpp | 104 common/os_version.hpp | 61 common/os_win32.cpp | 398 common/trace_api.hpp | 56 common/trace_callset.cpp | 255 common/trace_callset.hpp | 195 common/trace_dump.cpp | 313 common/trace_dump.hpp | 75 common/trace_fast_callset.cpp | 210 common/trace_fast_callset.hpp | 140 common/trace_file.cpp | 56 common/trace_file.hpp | 206 common/trace_file_read.cpp | 69 common/trace_file_snappy.cpp | 415 common/trace_file_write.cpp | 50 common/trace_file_zlib.cpp | 181 common/trace_format.hpp | 83 common/trace_loader.cpp | 137 common/trace_loader.hpp | 63 common/trace_lookup.hpp | 109 common/trace_model.cpp | 301 common/trace_model.hpp | 585 common/trace_option.cpp | 62 common/trace_option.hpp | 38 common/trace_parser.cpp | 1043 - common/trace_parser.hpp | 224 common/trace_parser_flags.cpp | 646 - common/trace_profiler.cpp | 259 common/trace_profiler.hpp | 143 common/trace_writer.cpp | 372 common/trace_writer.hpp | 116 common/trace_writer_local.cpp | 269 common/trace_writer_local.hpp | 121 common/trace_writer_model.cpp | 149 common/ubjson.hpp | 111 compat/cxx_compat.hpp | 65 compat/d3derr.hpp | 99 compat/winsdk_compat.h | 797 + debian/control | 2 debian/copyright | 76 debian/patches/use-system-gtest | 10 debian/patches/use-system-libbacktrace | 10 debian/patches/use-system-md5 | 14 debian/patches/use-system-snappy | 83 debian/rules | 6 dispatch/compat.h | 771 - dispatch/d2dimports.hpp | 11 dispatch/d3d10imports.hpp | 2 dispatch/d3d11imports.hpp | 4 dispatch/d3d8imports.hpp | 2 dispatch/d3d9imports.hpp | 2 dispatch/d3derr.hpp | 96 dispatch/d3dimports.hpp | 2 dispatch/dcompimports.hpp | 78 dispatch/dxgiint.h | 7 dispatch/dxva2imports.hpp | 49 dispatch/dxvaint.h | 179 dispatch/eglimports.hpp | 5 dispatch/glproc.py | 28 dispatch/glproc_egl.cpp | 97 dispatch/glproc_gl.cpp | 5 docs/Android.markdown | 45 docs/Dalvik.markdown | 52 docs/FORMAT.markdown | 2 docs/HACKING.markdown | 1 docs/INSTALL.markdown | 86 docs/NEWS.markdown | 4 docs/USAGE.markdown | 25 gui/CMakeLists.txt | 76 gui/androiddevicedialog.cpp | 16 gui/androiddevicedialog.h | 2 gui/androidfiledialog.cpp | 8 gui/androidfiledialog.h | 2 gui/androidretracer.cpp | 2 gui/androidretracer.h | 2 gui/apicalldelegate.h | 4 gui/apisurface.cpp | 26 gui/apisurface.h | 8 gui/apitrace.cpp | 18 gui/apitrace.h | 1 gui/apitracecall.cpp | 91 gui/apitracecall.h | 52 gui/apitracefilter.h | 2 gui/apitracemodel.cpp | 2 gui/apitracemodel.h | 24 gui/argumentseditor.h | 2 gui/calldurationgraph.h | 16 gui/glsledit.cpp | 6 gui/glsledit.h | 6 gui/graphing/frameaxiswidget.h | 2 gui/graphing/graphaxiswidget.h | 6 gui/graphing/graphlabelwidget.h | 2 gui/graphing/graphview.h | 10 gui/graphing/graphwidget.h | 2 gui/graphing/heatmapverticalaxiswidget.h | 4 gui/graphing/heatmapview.h | 8 gui/graphing/histogramview.h | 12 gui/graphing/timeaxiswidget.h | 2 gui/imageviewer.cpp | 10 gui/imageviewer.h | 6 gui/jumpwidget.h | 4 gui/leaktracethread.cpp | 82 gui/leaktracethread.h | 35 gui/mainwindow.cpp | 264 gui/mainwindow.h | 13 gui/pixelwidget.h | 20 gui/profiledialog.cpp | 12 gui/profileheatmap.h | 44 gui/profiletablemodel.cpp | 13 gui/profiletablemodel.h | 10 gui/qubjson_test.cpp | 4 gui/resources/glreference.tsv | 2598 +--- gui/retracer.cpp | 12 gui/retracer.h | 2 gui/saverthread.cpp | 28 gui/saverthread.h | 2 gui/searchwidget.h | 4 gui/settingsdialog.h | 2 gui/tracedialog.h | 2 gui/traceloader.cpp | 210 gui/traceloader.h | 2 gui/trimprocess.cpp | 2 gui/ui/jumpwidget.ui | 2 gui/ui/mainwindow.ui | 77 helpers/CMakeLists.txt | 2 helpers/com_ptr.hpp | 61 helpers/d3d11size.hpp | 56 helpers/d3d7size.hpp | 15 helpers/d3d8size.hpp | 98 helpers/d3d9size.hpp | 150 helpers/d3dcommonsize.hpp | 88 helpers/dxgisize.hpp | 43 helpers/glfeatures.cpp | 408 helpers/glfeatures.hpp | 177 helpers/glprofile.cpp | 325 helpers/glprofile.hpp | 143 helpers/glsize.hpp | 257 image/CMakeLists.txt | 17 image/README.markdown | 2 image/image.hpp | 156 image/image_bmp.cpp | 142 image/image_md5.cpp | 64 image/image_png.cpp | 277 image/image_pnm.cpp | 319 image/image_raw.cpp | 66 inject/CMakeLists.txt | 10 inject/inject.h | 74 inject/injectee.cpp | 434 inject/injector.cpp | 180 lib/CMakeLists.txt | 5 lib/guids/CMakeLists.txt | 9 lib/guids/guids.cpp | 132 lib/guids/guids.hpp | 51 lib/guids/guids_defs.hpp | 40 lib/guids/guids_entries.h | 763 + lib/guids/guids_test.cpp | 56 lib/highlight/CMakeLists.txt | 4 lib/highlight/highlight.cpp | 324 lib/highlight/highlight.hpp | 86 lib/image/CMakeLists.txt | 18 lib/image/README.markdown | 2 lib/image/image.hpp | 156 lib/image/image_bmp.cpp | 142 lib/image/image_md5.cpp | 64 lib/image/image_png.cpp | 277 lib/image/image_pnm.cpp | 319 lib/image/image_raw.cpp | 66 lib/os/CMakeLists.txt | 40 lib/os/os.hpp | 106 lib/os/os_backtrace.cpp | 486 lib/os/os_backtrace.hpp | 44 lib/os/os_binary.hpp | 59 lib/os/os_crtdbg.cpp | 92 lib/os/os_crtdbg.hpp | 57 lib/os/os_dl.hpp | 87 lib/os/os_memory.hpp | 78 lib/os/os_osx.mm | 41 lib/os/os_posix.cpp | 468 lib/os/os_process.hpp | 89 lib/os/os_string.hpp | 437 lib/os/os_thread.hpp | 539 lib/os/os_thread_test.cpp | 161 lib/os/os_time.hpp | 104 lib/os/os_version.hpp | 61 lib/os/os_win32.cpp | 405 lib/os/thread_pool.hpp | 113 lib/trace/CMakeLists.txt | 37 lib/trace/trace_api.hpp | 56 lib/trace/trace_callset.cpp | 264 lib/trace/trace_callset.hpp | 195 lib/trace/trace_dump.cpp | 327 lib/trace/trace_dump.hpp | 76 lib/trace/trace_dump_internal.hpp | 81 lib/trace/trace_fast_callset.cpp | 210 lib/trace/trace_fast_callset.hpp | 140 lib/trace/trace_file.cpp | 60 lib/trace/trace_file.hpp | 169 lib/trace/trace_file_brotli.cpp | 150 lib/trace/trace_file_read.cpp | 70 lib/trace/trace_file_snappy.cpp | 353 lib/trace/trace_file_zlib.cpp | 144 lib/trace/trace_format.hpp | 83 lib/trace/trace_lookup.hpp | 109 lib/trace/trace_model.cpp | 301 lib/trace/trace_model.hpp | 593 lib/trace/trace_option.cpp | 62 lib/trace/trace_option.hpp | 38 lib/trace/trace_ostream.hpp | 52 lib/trace/trace_ostream_snappy.cpp | 207 lib/trace/trace_ostream_zlib.cpp | 93 lib/trace/trace_parser.cpp | 1039 + lib/trace/trace_parser.hpp | 248 lib/trace/trace_parser_flags.cpp | 550 lib/trace/trace_parser_flags_test.cpp | 644 + lib/trace/trace_parser_loop.cpp | 111 lib/trace/trace_profiler.cpp | 259 lib/trace/trace_profiler.hpp | 143 lib/trace/trace_snappy.hpp | 34 lib/trace/trace_writer.cpp | 372 lib/trace/trace_writer.hpp | 116 lib/trace/trace_writer_local.cpp | 287 lib/trace/trace_writer_local.hpp | 121 lib/trace/trace_writer_model.cpp | 149 lib/ubjson/ubjson.hpp | 111 retrace/CMakeLists.txt | 35 retrace/d3d10state.cpp | 40 retrace/d3d10state.hpp | 9 retrace/d3d10state_images.cpp | 49 retrace/d3d11state.cpp | 40 retrace/d3d9retrace.py | 64 retrace/d3d9state.cpp | 10 retrace/d3d9state_formats.cpp | 6 retrace/d3d9state_images.cpp | 22 retrace/d3dretrace.hpp | 3 retrace/d3dretrace_dxgi.hpp | 11 retrace/d3dretrace_dxgi_misc.cpp | 113 retrace/d3dretrace_ws.cpp | 135 retrace/d3dstate.hpp | 12 retrace/ddrawretrace.py | 13 retrace/dxgiretrace.py | 140 retrace/dxgistate.cpp | 85 retrace/dxgistate.hpp | 2 retrace/glretrace.hpp | 124 retrace/glretrace.py | 153 retrace/glretrace_cgl.cpp | 29 retrace/glretrace_egl.cpp | 22 retrace/glretrace_glx.cpp | 17 retrace/glretrace_main.cpp | 398 retrace/glretrace_wgl.cpp | 216 retrace/glretrace_wgl.hpp | 42 retrace/glretrace_wgl_font.cpp | 4896 ++++++++ retrace/glretrace_ws.cpp | 87 retrace/glstate.cpp | 69 retrace/glstate_formats.cpp | 63 retrace/glstate_images.cpp | 283 retrace/glstate_internal.hpp | 20 retrace/glstate_shaders.cpp | 444 retrace/glws.cpp | 35 retrace/glws.hpp | 78 retrace/glws_cocoa.mm | 52 retrace/glws_egl_android.cpp | 46 retrace/glws_egl_xlib.cpp | 53 retrace/glws_glx.cpp | 269 retrace/glws_waffle.cpp | 142 retrace/glws_wgl.cpp | 462 retrace/glws_xlib.cpp | 10 retrace/json.cpp | 10 retrace/metric_backend.hpp | 285 retrace/metric_backend_amd_perfmon.cpp | 449 retrace/metric_backend_amd_perfmon.hpp | 178 retrace/metric_backend_intel_perfquery.cpp | 361 retrace/metric_backend_intel_perfquery.hpp | 170 retrace/metric_backend_opengl.cpp | 481 retrace/metric_backend_opengl.hpp | 198 retrace/metric_helper.cpp | 217 retrace/metric_writer.cpp | 224 retrace/metric_writer.hpp | 124 retrace/mmap_allocator.hpp | 171 retrace/retrace.hpp | 26 retrace/retrace.py | 54 retrace/retrace_main.cpp | 188 retrace/retrace_swizzle.cpp | 6 retrace/retrace_swizzle.hpp | 9 retrace/state_writer_json.cpp | 28 retrace/state_writer_ubjson.cpp | 28 retrace/threaded_snapshot.hpp | 91 retrace/ws.cpp | 38 retrace/ws.hpp | 37 retrace/ws_win32.cpp | 237 retrace/ws_win32.hpp | 49 scripts/CMakeLists.txt | 10 scripts/jsondiff.py | 32 scripts/leaks.py | 162 scripts/retracediff.py | 5 scripts/snapdiff.py | 51 scripts/tracediff.py | 6 scripts/unpickle.py | 11 specs/cglapi.py | 3 specs/d2d1.py | 784 + specs/d2dbasetypes.py | 80 specs/d2derr.py | 62 specs/d3d10.py | 47 specs/d3d11.py | 1096 + specs/d3d9.py | 31 specs/d3d9dxva2.py | 382 specs/d3dcommon.py | 702 - specs/dcomp.py | 303 specs/ddraw.py | 25 specs/dwrite.py | 639 + specs/dxgi.py | 87 specs/dxva2.py | 458 specs/eglapi.py | 217 specs/eglenum.py | 56 specs/glapi.py | 251 specs/glparams.py | 188 specs/gltypes.py | 1 specs/scripts/Makefile | 6 specs/scripts/cxx2api.h | 39 specs/scripts/cxx2api.py | 488 specs/scripts/xml2glparams.py | 38 specs/stdapi.py | 26 specs/wglapi.py | 14 specs/winapi.py | 11 thirdparty/brotli/CMakeLists.txt | 75 thirdparty/brotli/CONTRIBUTING.md | 27 thirdparty/brotli/LICENSE | 19 thirdparty/brotli/README.md | 17 thirdparty/brotli/dec/bit_reader.c | 48 thirdparty/brotli/dec/bit_reader.h | 389 thirdparty/brotli/dec/context.h | 251 thirdparty/brotli/dec/decode.c | 2237 +++ thirdparty/brotli/dec/decode.h | 96 thirdparty/brotli/dec/dictionary.c | 9466 +++++++++++++++ thirdparty/brotli/dec/dictionary.h | 38 thirdparty/brotli/dec/huffman.c | 357 thirdparty/brotli/dec/huffman.h | 73 thirdparty/brotli/dec/port.h | 224 thirdparty/brotli/dec/prefix.h | 749 + thirdparty/brotli/dec/state.c | 178 thirdparty/brotli/dec/state.h | 249 thirdparty/brotli/dec/transform.h | 300 thirdparty/brotli/dec/types.h | 38 thirdparty/brotli/enc/backward_references.cc | 858 + thirdparty/brotli/enc/backward_references.h | 116 thirdparty/brotli/enc/bit_cost.h | 161 thirdparty/brotli/enc/block_splitter.cc | 505 thirdparty/brotli/enc/block_splitter.h | 61 thirdparty/brotli/enc/brotli_bit_stream.cc | 1181 + thirdparty/brotli/enc/brotli_bit_stream.h | 179 thirdparty/brotli/enc/cluster.h | 330 thirdparty/brotli/enc/command.h | 156 thirdparty/brotli/enc/compress_fragment.cc | 701 + thirdparty/brotli/enc/compress_fragment.h | 47 thirdparty/brotli/enc/compress_fragment_two_pass.cc | 524 thirdparty/brotli/enc/compress_fragment_two_pass.h | 40 thirdparty/brotli/enc/context.h | 178 thirdparty/brotli/enc/dictionary.cc | 9466 +++++++++++++++ thirdparty/brotli/enc/dictionary.h | 41 thirdparty/brotli/enc/dictionary_hash.h | 4117 ++++++ thirdparty/brotli/enc/encode.cc | 1175 + thirdparty/brotli/enc/encode.h | 207 thirdparty/brotli/enc/encode_parallel.cc | 279 thirdparty/brotli/enc/encode_parallel.h | 28 thirdparty/brotli/enc/entropy_encode.cc | 480 thirdparty/brotli/enc/entropy_encode.h | 104 thirdparty/brotli/enc/entropy_encode_static.h | 572 thirdparty/brotli/enc/fast_log.h | 139 thirdparty/brotli/enc/find_match_length.h | 77 thirdparty/brotli/enc/hash.h | 974 + thirdparty/brotli/enc/histogram.cc | 67 thirdparty/brotli/enc/histogram.h | 94 thirdparty/brotli/enc/literal_cost.cc | 165 thirdparty/brotli/enc/literal_cost.h | 24 thirdparty/brotli/enc/metablock.cc | 539 thirdparty/brotli/enc/metablock.h | 80 thirdparty/brotli/enc/port.h | 142 thirdparty/brotli/enc/prefix.h | 79 thirdparty/brotli/enc/ringbuffer.h | 145 thirdparty/brotli/enc/static_dict.cc | 455 thirdparty/brotli/enc/static_dict.h | 32 thirdparty/brotli/enc/static_dict_lut.h |12055 ++++++++++++++++++++ thirdparty/brotli/enc/streams.cc | 114 thirdparty/brotli/enc/streams.h | 121 thirdparty/brotli/enc/transform.h | 248 thirdparty/brotli/enc/types.h | 29 thirdparty/brotli/enc/utf8_util.cc | 83 thirdparty/brotli/enc/utf8_util.h | 25 thirdparty/brotli/enc/write_bits.h | 84 thirdparty/crc32c/CMakeLists.txt | 3 thirdparty/crc32c/README.md | 6 thirdparty/crc32c/crc32c.c | 332 thirdparty/crc32c/crc32c.hpp | 111 thirdparty/khronos/EGL/egl.h | 6 thirdparty/khronos/EGL/eglext.h | 76 thirdparty/khronos/EGL/eglplatform.h | 2 thirdparty/khronos/EGL/eglplatform.patch | 14 thirdparty/khronos/GL/glext.h | 197 thirdparty/khronos/GL/glxext.h | 6 thirdparty/khronos/GL/wglext.h | 6 thirdparty/khronos/GLES2/gl2.h | 6 thirdparty/khronos/GLES2/gl2ext.h | 124 thirdparty/khronos/Makefile | 18 thirdparty/snappy/AUTHORS | 1 thirdparty/snappy/CMakeLists.txt | 23 thirdparty/snappy/COPYING | 54 thirdparty/snappy/ChangeLog | 1916 --- thirdparty/snappy/NEWS | 128 thirdparty/snappy/README | 135 thirdparty/snappy/config.h | 146 thirdparty/snappy/format_description.txt | 110 thirdparty/snappy/framing_format.txt | 135 thirdparty/snappy/snappy-c.cc | 90 thirdparty/snappy/snappy-c.h | 138 thirdparty/snappy/snappy-internal.h | 150 thirdparty/snappy/snappy-sinksource.cc | 71 thirdparty/snappy/snappy-sinksource.h | 137 thirdparty/snappy/snappy-stubs-internal.cc | 42 thirdparty/snappy/snappy-stubs-internal.h | 491 thirdparty/snappy/snappy-stubs-public.h | 98 thirdparty/snappy/snappy-stubs-public.h.in | 98 thirdparty/snappy/snappy-test.cc | 606 - thirdparty/snappy/snappy-test.h | 582 thirdparty/snappy/snappy.cc | 1306 -- thirdparty/snappy/snappy.h | 184 thirdparty/snappy/snappy_unittest.cc | 1355 -- wrappers/CMakeLists.txt | 86 wrappers/assert.cpp | 4 wrappers/config.cpp | 1 wrappers/d2d1trace.py | 2 wrappers/d3d9.def | 2 wrappers/d3d9trace.py | 42 wrappers/dlltrace.hpp | 69 wrappers/dlltrace.py | 24 wrappers/dxgitrace.def | 2 wrappers/dxgitrace.hpp | 129 wrappers/dxgitrace.py | 80 wrappers/egltrace.py | 10 wrappers/glcaps.cpp | 15 wrappers/gltrace.hpp | 90 wrappers/gltrace.py | 453 wrappers/gltrace_arrays.cpp | 193 wrappers/gltrace_arrays.hpp | 97 wrappers/gltrace_state.cpp | 13 wrappers/memtrace.cpp | 244 wrappers/memtrace.hpp | 63 wrappers/trace.py | 88 wrappers/wgltrace.py | 145 486 files changed, 91400 insertions(+), 30053 deletions(-)
New commits: commit 28dba4cc70a55f28e53c79809665b0e7b4d5d9f2 Author: Christopher James Halse Rogers <ch...@cooperteam.net> Date: Fri Jun 3 15:53:14 2016 +1000 Refresh copyright for new 3rd-party bundles diff --git a/debian/copyright b/debian/copyright index fb20c20..cf7f146 100644 --- a/debian/copyright +++ b/debian/copyright @@ -15,35 +15,32 @@ Files: thirdparty/khronos/* Copyright: © 2007-2011 The Khronos Group Inc. License: Expat -Files: thirdparty/snappy/* -Copyright: © 2005-2011, Google Inc. -License: BSD-3-clause - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: +Files: thirdparty/brotli/* +Copyright: © 2009, 2010, 2013-2015 by the Brotli Authors. +License: Expat + +Files: thirdparty/crc32c/crc32c.c +Copyright: © 2004-2006 Intel Corporation +License: BSD-2-clause + +Files: thirdparty/crc32c/crc32c.hpp +Copyright: © 2011-2013 Stephan Brumme +License: BSD-like + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. . - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following disclaimer - in the documentation and/or other materials provided with the - distribution. - * Neither the name of Google Inc. nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: . - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy @@ -52,7 +49,7 @@ License: Expat to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - . + . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . @@ -63,3 +60,26 @@ License: Expat LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. commit fe14c15013014861d38010e903fb94bc0a549177 Author: Christopher James Halse Rogers <ch...@cooperteam.net> Date: Fri Jun 3 15:25:59 2016 +1000 Build against libpng-dev rather than (old) libpng12-dev diff --git a/debian/control b/debian/control index bbfb447..6c58210 100644 --- a/debian/control +++ b/debian/control @@ -15,7 +15,7 @@ Build-Depends: python, zlib1g-dev, libsnappy-dev, - libpng12-dev, + libpng-dev, libbsd-dev, libprocps-dev, libgtest-dev, commit 71b5182e87f882f03fc08580da1d4d8ddd8f3078 Author: Christopher James Halse Rogers <ch...@cooperteam.net> Date: Fri Jun 3 15:25:14 2016 +1000 Add libsnappy to Built-Using generation. Now that libsnappy-dev ships a libsnappy-shared.a built with -fPIC, we can use that rather than the bundled snappy diff --git a/debian/rules b/debian/rules index 2c29330..186317e 100755 --- a/debian/rules +++ b/debian/rules @@ -28,7 +28,11 @@ override_dh_gencontrol: echo "built-using:Depends=zlib1g-dev (= $(shell dpkg-query -s zlib1g-dev \ | grep Version: \ | cut -d' ' -f2))" \ - >> debian/apitrace-gl-tracers.substvars + >> debian/apitrace-tracers.substvars + echo "built-using:Depends=libsnappy-dev (= $(shell dpkg-query -s libsnappy-dev \ + | grep Version: \ + | cut -d' ' -f2))" \ + >> debian/apitrace-tracers.substvars dh_gencontrol %: commit 383f2652bfdbfe92c04695b8da2544cec0213ee1 Author: Christopher James Halse Rogers <ch...@cooperteam.net> Date: Fri Jun 3 15:24:00 2016 +1000 Refresh patches for new upstream version diff --git a/debian/patches/use-system-gtest b/debian/patches/use-system-gtest index f236c22..ee3b4ee 100644 --- a/debian/patches/use-system-gtest +++ b/debian/patches/use-system-gtest @@ -2,9 +2,11 @@ Description: Use system libgtest-dev Forwarded: not-needed Author: Christopher James Halse Rogers <r...@ubuntu.com> ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -465,9 +465,9 @@ +Index: apitrace/CMakeLists.txt +=================================================================== +--- apitrace.orig/CMakeLists.txt 2016-05-31 17:15:21.165385400 +1000 ++++ apitrace/CMakeLists.txt 2016-05-31 17:15:21.161385434 +1000 +@@ -510,9 +510,9 @@ include_directories (BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/khronos) # We use non-standard C++ flags, so we can't just use GTest's CMakeLists.txt @@ -16,4 +18,4 @@ Author: Christopher James Halse Rogers <r...@ubuntu.com> +set_property (TARGET gtest APPEND PROPERTY INCLUDE_DIRECTORIES /usr/src/gtest) target_link_libraries (gtest ${CMAKE_THREAD_LIBS_INIT}) - enable_testing () + # Convenience macro for adding unit tests diff --git a/debian/patches/use-system-libbacktrace b/debian/patches/use-system-libbacktrace index b3cef70..fcb0dc2 100644 --- a/debian/patches/use-system-libbacktrace +++ b/debian/patches/use-system-libbacktrace @@ -2,10 +2,12 @@ Description: Use system libbacktrace Forwarded: not-needed Author: Christopher James Halse Rogers <r...@ubuntu.com> ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -448,8 +448,6 @@ - endif () +Index: apitrace/CMakeLists.txt +=================================================================== +--- apitrace.orig/CMakeLists.txt 2016-05-31 17:15:26.313340972 +1000 ++++ apitrace/CMakeLists.txt 2016-05-31 17:15:26.309341009 +1000 +@@ -493,8 +493,6 @@ + add_subdirectory (thirdparty/crc32c) if (CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF") - add_subdirectory (thirdparty/libbacktrace) diff --git a/debian/patches/use-system-md5 b/debian/patches/use-system-md5 index 116fe02..008d46d 100644 --- a/debian/patches/use-system-md5 +++ b/debian/patches/use-system-md5 @@ -2,9 +2,11 @@ Description: Use md5 implementation from system libbsd Forwarded: not-needed Author: Christopher James Halse Rogers <r...@ubuntu.com> ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -432,9 +432,7 @@ +Index: apitrace/CMakeLists.txt +=================================================================== +--- apitrace.orig/CMakeLists.txt 2016-05-31 17:15:29.289315149 +1000 ++++ apitrace/CMakeLists.txt 2016-05-31 17:15:29.285315183 +1000 +@@ -497,9 +497,7 @@ add_definitions (-DHAVE_BACKTRACE=1) endif () @@ -15,8 +17,10 @@ Author: Christopher James Halse Rogers <r...@ubuntu.com> # We use bundled headers for all Khronos APIs, to guarantee support for both # OpenGL and OpenGL ES at build time, because the OpenGL and OpenGL ES 1 APIs ---- a/image/image_md5.cpp -+++ b/image/image_md5.cpp +Index: apitrace/lib/image/image_md5.cpp +=================================================================== +--- apitrace.orig/lib/image/image_md5.cpp 2016-05-31 17:15:29.289315149 +1000 ++++ apitrace/lib/image/image_md5.cpp 2016-05-31 17:15:29.285315183 +1000 @@ -28,7 +28,7 @@ #include <fstream> #include "image.hpp" diff --git a/debian/patches/use-system-snappy b/debian/patches/use-system-snappy index 408091b..3c0c0af 100644 --- a/debian/patches/use-system-snappy +++ b/debian/patches/use-system-snappy @@ -6,78 +6,35 @@ Description: Use system libsnappy for retracers Forwarded: not-needed Author: Christopher James Halse Rogers <r...@ubuntu.com> ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -403,11 +403,18 @@ +Index: apitrace/CMakeLists.txt +=================================================================== +--- apitrace.orig/CMakeLists.txt 2016-05-31 17:27:56.392706958 +1000 ++++ apitrace/CMakeLists.txt 2016-05-31 17:28:20.812382053 +1000 +@@ -441,10 +441,10 @@ find_package (SNAPPY) endif () if (ENABLE_STATIC_SNAPPY OR NOT SNAPPY_FOUND) +- message (STATUS "Using bundled SNAPPY") - set (SNAPPY_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/snappy) - set (SNAPPY_LIBRARIES snappy_bundled) -+ # We want to use the system snappy for the retracers, as they run on -+ # potentially-untrusted input, but we need static snappy for the -+ # LD_PRELOADed tracers to avoid symbol collisions in the tracee. -+ # -+ # Predictably, the system libsnappy.a is built without PIC, so -+ # useless for us. So do both: find the system libsnappy for the -+ # retracers and and build the bundled libsnappy for the tracers. -+ find_package (SNAPPY REQUIRED) -+ set (SNAPPY_STATIC_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/snappy) -+ set (SNAPPY_STATIC_LIBRARIES snappy_bundled) - add_subdirectory (thirdparty/snappy) +- add_subdirectory (thirdparty/snappy) ++ message (STATUS "Using static SNAPPY") ++ find_package(SNAPPY REQUIRED) ++ # Our libsnappy package builds a PIC libsnappy-shared.a archive. ++ find_library(SNAPPY_STATIC_LIBRARIES libsnappy-shared.a) endif () --include_directories (${SNAPPY_INCLUDE_DIRS}) + include_directories (${SNAPPY_INCLUDE_DIRS}) - if (NOT WIN32) - # zlib 1.2.4-1.2.5 made it impossible to read the last block of incomplete ---- a/wrappers/CMakeLists.txt -+++ b/wrappers/CMakeLists.txt -@@ -2,6 +2,8 @@ - # API tracers - - -+include_directories (${SNAPPY_STATIC_INCLUDE_DIRS}) -+ - if (ENABLE_STATIC_LIBGCC) - add_linker_flags (-static-libgcc) - endif () -@@ -62,7 +64,7 @@ - ) - target_link_libraries (trace +Index: apitrace/wrappers/CMakeLists.txt +=================================================================== +--- apitrace.orig/wrappers/CMakeLists.txt 2016-05-31 17:27:56.392706958 +1000 ++++ apitrace/wrappers/CMakeLists.txt 2016-05-31 17:27:56.392706958 +1000 +@@ -84,7 +84,7 @@ common + guids + crc32c - ${SNAPPY_LIBRARIES} + ${SNAPPY_STATIC_LIBRARIES} ) - if (WIN32) ---- a/cli/CMakeLists.txt -+++ b/cli/CMakeLists.txt -@@ -14,6 +14,8 @@ - add_definitions (-DAPITRACE_PYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}") - endif () - -+include_directories(${SNAPPY_INCLUDE_DIRS}) -+ - add_executable (apitrace - cli_main.cpp - cli_diff.cpp ---- a/gui/CMakeLists.txt -+++ b/gui/CMakeLists.txt -@@ -82,6 +82,7 @@ - #add_app_icon(qapitrace_SRCS ../icons/hi*-qapitrace.png) - include_directories( - ${CMAKE_SOURCE_DIR} # for image/* -+ ${SNAPPY_INCLUDE_DIRS} - ) - - add_executable (qapitrace ${qapitrace_SRCS} ${qapitrace_UIS_H}) ---- a/retrace/CMakeLists.txt -+++ b/retrace/CMakeLists.txt -@@ -8,6 +8,7 @@ - ${CMAKE_SOURCE_DIR}/dispatch - ${CMAKE_SOURCE_DIR}/image - ${CMAKE_SOURCE_DIR}/thirdparty/dxerr -+ ${SNAPPY_INCLUDE_DIRS} - ) - - add_definitions (-DRETRACE) + # Code shared across all OpenGL variants commit 2d78bef000ebcca662ce074ee20257d3b7337be9 Author: Jose Fonseca <jfons...@vmware.com> Date: Thu May 19 15:10:23 2016 +0100 dxgiretrace: Handle ID3D11VideoContext properly. Essentially do the same thing done for DXVA's IDirectXVideoDecoder interface. diff --git a/retrace/dxgiretrace.py b/retrace/dxgiretrace.py index 2321078..12b4ff3 100755 --- a/retrace/dxgiretrace.py +++ b/retrace/dxgiretrace.py @@ -166,6 +166,16 @@ class D3DRetracer(Retracer): print r' Software = NULL;' print r' }' + def doInvokeInterfaceMethod(self, interface, method): + Retracer.doInvokeInterfaceMethod(self, interface, method) + + # Keep retrying ID3D11VideoContext::DecoderBeginFrame when returns E_PENDING + if interface.name == 'ID3D11VideoContext' and method.name == 'DecoderBeginFrame': + print r' while (_result == D3DERR_WASSTILLDRAWING || _result == E_PENDING) {' + print r' Sleep(1);' + Retracer.doInvokeInterfaceMethod(self, interface, method) + print r' }' + def invokeInterfaceMethod(self, interface, method): # keep track of the last used device for state dumping if interface.name in ('ID3D10Device', 'ID3D10Device1'): @@ -360,6 +370,19 @@ class D3DRetracer(Retracer): print ' _pbData = 0;' print ' }' + if interface.name.startswith('ID3D11VideoContext'): + if method.name == 'GetDecoderBuffer': + print ' if (*ppBuffer && *pBufferSize) {' + print ' g_Maps[nullptr][SubresourceKey(_this, Type)] = *ppBuffer;' + print ' }' + if method.name == 'ReleaseDecoderBuffer': + print ' SubresourceKey _mappingKey(_this, Type);' + print ' void *_pBuffer = g_Maps[nullptr][_mappingKey];' + print ' if (_pBuffer) {' + print ' retrace::delRegionByPointer(_pBuffer);' + print ' g_Maps[nullptr][_mappingKey] = 0;' + print ' }' + # Attach shader byte code for lookup if 'pShaderBytecode' in method.argNames(): ppShader = method.args[-1] commit 91403b6268d37cfdc6148171082457bedfa01bca Author: Jose Fonseca <jfons...@vmware.com> Date: Thu May 19 15:10:03 2016 +0100 dxgitrace: Handle ID3D11VideoContext::Get/ReleaseDecoderBuffer properly. Essentially do the same thing done for DXVA's IDirectXVideoDecoder::Get/ReleaseBuffer methods. Untested, but it should fare no worse than it does now. diff --git a/specs/d3d11.py b/specs/d3d11.py index 3313f21..2fc2771 100644 --- a/specs/d3d11.py +++ b/specs/d3d11.py @@ -2117,11 +2117,11 @@ ID3D11VideoProcessorOutputView.methods += [ ID3D11VideoContext = Interface("ID3D11VideoContext", ID3D11DeviceChild) ID3D11VideoContext.methods += [ - StdMethod(HRESULT, "GetDecoderBuffer", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (D3D11_VIDEO_DECODER_BUFFER_TYPE, "Type"), Out(Pointer(UINT), "pBufferSize"), Out(Pointer(OpaqueBlob(Void, "*pBufferSize")), "ppBuffer")]), + StdMethod(HRESULT, "GetDecoderBuffer", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (D3D11_VIDEO_DECODER_BUFFER_TYPE, "Type"), Out(Pointer(UINT), "pBufferSize"), Out(Pointer(LinearPointer(Void, "*pBufferSize")), "ppBuffer")]), StdMethod(HRESULT, "ReleaseDecoderBuffer", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (D3D11_VIDEO_DECODER_BUFFER_TYPE, "Type")]), StdMethod(HRESULT, "DecoderBeginFrame", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (ObjPointer(ID3D11VideoDecoderOutputView), "pView"), (UINT, "ContentKeySize"), (Blob(Const(Void), "ContentKeySize"), "pContentKey")]), StdMethod(HRESULT, "DecoderEndFrame", [(ObjPointer(ID3D11VideoDecoder), "pDecoder")]), - StdMethod(HRESULT, "SubmitDecoderBuffers", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (UINT, "NumBuffers"), (Pointer(Const(D3D11_VIDEO_DECODER_BUFFER_DESC)), "pBufferDesc")]), + StdMethod(HRESULT, "SubmitDecoderBuffers", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (UINT, "NumBuffers"), (Array(Const(D3D11_VIDEO_DECODER_BUFFER_DESC), "NumBuffers"), "pBufferDesc")]), StdMethod(HRESULT, "DecoderExtension", [(ObjPointer(ID3D11VideoDecoder), "pDecoder"), (Pointer(Const(D3D11_VIDEO_DECODER_EXTENSION)), "pExtensionData")]), StdMethod(Void, "VideoProcessorSetOutputTargetRect", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "Enable"), (Pointer(Const(RECT)), "pRect")]), StdMethod(Void, "VideoProcessorSetOutputBackgroundColor", [(ObjPointer(ID3D11VideoProcessor), "pVideoProcessor"), (BOOL, "YCbCr"), (Pointer(Const(D3D11_VIDEO_COLOR)), "pColor")]), diff --git a/wrappers/dxgitrace.py b/wrappers/dxgitrace.py index f3ea82d..476d0a3 100644 --- a/wrappers/dxgitrace.py +++ b/wrappers/dxgitrace.py @@ -106,6 +106,10 @@ class D3DCommonTracer(DllTracer): ('std::map< std::pair<ID3D11Resource *, UINT>, _MAP_DESC >', 'm_MapDescs', None), ('std::map< std::pair<ID3D11Resource *, UINT>, MemoryShadow >', 'm_MapShadows', None), ] + if interface.hasBase(d3d11.ID3D11VideoContext): + variables += [ + ('std::map<UINT, std::pair<void *, UINT> >', 'm_MapDesc', None), + ] return variables @@ -136,6 +140,14 @@ class D3DCommonTracer(DllTracer): print ' }' print ' }' + if interface.hasBase(d3d11.ID3D11VideoContext) and \ + method.name == 'ReleaseDecoderBuffer': + print ' std::map<UINT, std::pair<void *, UINT> >::iterator it = m_MapDesc.find(Type);' + print ' if (it != m_MapDesc.end()) {' + self.emit_memcpy('it->second.first', 'it->second.second') + print ' m_MapDesc.erase(it);' + print ' }' + DllTracer.implementWrapperInterfaceMethodBody(self, interface, base, method) if method.name == 'Map': @@ -154,6 +166,14 @@ class D3DCommonTracer(DllTracer): print ' _MapDesc.Size = 0;' print ' }' + if interface.hasBase(d3d11.ID3D11VideoContext) and \ + method.name == 'GetDecoderBuffer': + print ' if (SUCCEEDED(_result)) {' + print ' m_MapDesc[Type] = std::make_pair(*ppBuffer, *pBufferSize);' + print ' } else {' + print ' m_MapDesc[Type] = std::make_pair(nullptr, 0);' + print ' }' + def invokeMethod(self, interface, base, method): DllTracer.invokeMethod(self, interface, base, method) commit 8a4c9af839e466e927aa92654d8815dadaa7d37e Author: Jose Fonseca <jfons...@vmware.com> Date: Wed May 18 16:25:35 2016 +0100 specs: Standardize on EnumFlags. diff --git a/specs/d2d1.py b/specs/d2d1.py index 815a121..39375ab 100644 --- a/specs/d2d1.py +++ b/specs/d2d1.py @@ -231,7 +231,7 @@ D2D1_BITMAP_INTERPOLATION_MODE = Enum("D2D1_BITMAP_INTERPOLATION_MODE", [ "D2D1_BITMAP_INTERPOLATION_MODE_LINEAR", ]) -D2D1_DRAW_TEXT_OPTIONS = EnumFlag("D2D1_DRAW_TEXT_OPTIONS", [ +D2D1_DRAW_TEXT_OPTIONS = EnumFlags("D2D1_DRAW_TEXT_OPTIONS", [ "D2D1_DRAW_TEXT_OPTIONS_NONE", "D2D1_DRAW_TEXT_OPTIONS_NO_SNAP", "D2D1_DRAW_TEXT_OPTIONS_CLIP", @@ -355,7 +355,7 @@ D2D1_TRIANGLE = Struct("D2D1_TRIANGLE", [ (D2D1_POINT_2F, "point3"), ]) -D2D1_PATH_SEGMENT = EnumFlag("D2D1_PATH_SEGMENT", [ +D2D1_PATH_SEGMENT = EnumFlags("D2D1_PATH_SEGMENT", [ "D2D1_PATH_SEGMENT_NONE", "D2D1_PATH_SEGMENT_FORCE_UNSTROKED", "D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN", @@ -406,7 +406,7 @@ D2D1_STROKE_STYLE_PROPERTIES = Struct("D2D1_STROKE_STYLE_PROPERTIES", [ (FLOAT, "dashOffset"), ]) -D2D1_LAYER_OPTIONS = EnumFlag("D2D1_LAYER_OPTIONS", [ +D2D1_LAYER_OPTIONS = EnumFlags("D2D1_LAYER_OPTIONS", [ "D2D1_LAYER_OPTIONS_NONE", "D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE", ]) @@ -421,7 +421,7 @@ D2D1_LAYER_PARAMETERS = Struct("D2D1_LAYER_PARAMETERS", [ (D2D1_LAYER_OPTIONS, "layerOptions"), ]) -D2D1_WINDOW_STATE = EnumFlag("D2D1_WINDOW_STATE", [ +D2D1_WINDOW_STATE = EnumFlags("D2D1_WINDOW_STATE", [ "D2D1_WINDOW_STATE_NONE",