Skip to content

Commit 1930f6a

Browse files
authored
Import tracy 0.7.7 (#24)
1 parent 8148a52 commit 1930f6a

205 files changed

Lines changed: 114620 additions & 76814 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

tracy/.github/sponsor.png

-20 Bytes
Loading

tracy/.github/workflows/gcc.yml

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,36 @@ on:
99
jobs:
1010
build:
1111

12-
runs-on: ubuntu-latest
12+
runs-on: ${{ matrix.os }}
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
os: [ubuntu-20.04, macOS-latest]
1317

1418
steps:
1519
- uses: actions/checkout@v2
16-
- name: Install libraries
17-
run: sudo apt-get update && sudo apt-get -y install libglfw3-dev libgtk2.0-dev libcapstone-dev
20+
- name: Install linux libraries
21+
if: ${{ matrix.os == 'ubuntu-20.04' }}
22+
run: sudo apt-get update && sudo apt-get -y install libglfw3-dev libgtk-3-dev libcapstone-dev libtbb-dev
23+
- name: Install macos libraries
24+
if: ${{ matrix.os == 'macOS-latest' }}
25+
run: brew install capstone tbb pkg-config glfw
1826
- name: Profiler GUI
19-
run: make -C profiler/build/unix debug release
27+
run: make -j -C profiler/build/unix debug release
2028
- name: Update utility
21-
run: make -C update/build/unix debug release
29+
run: make -j -C update/build/unix debug release
2230
- name: Capture utility
23-
run: make -C capture/build/unix debug release
31+
run: make -j -C capture/build/unix debug release
32+
- name: Csvexport utility
33+
run: make -j -C csvexport/build/unix debug release
34+
- name: Import-chrome utility
35+
run: make -j -C import-chrome/build/unix debug release
2436
- name: Library
25-
run: make -C library/unix debug release
37+
run: make -j -C library/unix debug release
2638
- name: Test application
2739
run: |
28-
make -C test
29-
make -C test clean
30-
make -C test TRACYFLAGS=-DTRACY_ON_DEMAND
40+
make -j -C test
41+
make -j -C test clean
42+
make -j -C test TRACYFLAGS=-DTRACY_ON_DEMAND
43+
make -j -C test clean
44+
make -j -C test TRACYFLAGS="-DTRACY_DELAYED_INIT -DTRACY_MANUAL_LIFETIME"

tracy/.github/workflows/msvc.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
steps:
1515
- uses: actions/checkout@v2
16-
- uses: microsoft/setup-msbuild@v1.0.0
16+
- uses: microsoft/setup-msbuild@v1.0.2
1717
- name: Integrate vcpkg
1818
run: vcpkg integrate install
1919
- name: Build vcpkg libraries
@@ -30,6 +30,14 @@ jobs:
3030
run: msbuild .\capture\build\win32\capture.vcxproj /property:Configuration=Debug /property:Platform=x64
3131
- name: Capture utility Release
3232
run: msbuild .\capture\build\win32\capture.vcxproj /property:Configuration=Release /property:Platform=x64
33+
- name: Csvexport utility Debug
34+
run: msbuild .\csvexport\build\win32\csvexport.vcxproj /property:Configuration=Debug /property:Platform=x64
35+
- name: Csvexport utility Release
36+
run: msbuild .\csvexport\build\win32\csvexport.vcxproj /property:Configuration=Release /property:Platform=x64
37+
- name: Import-chrome utility Debug
38+
run: msbuild .\import-chrome\build\win32\import-chrome.vcxproj /property:Configuration=Debug /property:Platform=x64
39+
- name: Import-chrome utility Release
40+
run: msbuild .\import-chrome\build\win32\import-chrome.vcxproj /property:Configuration=Release /property:Platform=x64
3341
- name: Library
3442
run: msbuild .\library\win32\TracyProfiler.vcxproj /property:Configuration=Release /property:Platform=x64
3543
- name: Package binaries
@@ -39,6 +47,8 @@ jobs:
3947
copy profiler\build\win32\x64\Release\Tracy.exe bin
4048
copy update\build\win32\x64\Release\update.exe bin
4149
copy capture\build\win32\x64\Release\capture.exe bin
50+
copy import-chrome\build\win32\x64\Release\import-chrome.exe bin
51+
copy csvexport\build\win32\x64\Release\csvexport.exe bin
4252
copy library\win32\x64\Release\TracyProfiler.dll bin\dev
4353
copy library\win32\x64\Release\TracyProfiler.lib bin\dev
4454
7z a Tracy.7z bin

tracy/.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@
55
x64
66
Release
77
Debug
8+
_build
9+
_compiler
10+
tools/*
811
*.d
912
*.o
13+
*.so
1014
*.swp
1115
imgui.ini
1216
test/tracy_test
@@ -27,3 +31,9 @@ vcpkg/*
2731
!vcpkg/install_vcpkg_dependencies.bat
2832
.deps/
2933
.dirstamp
34+
.vscode/
35+
36+
/_*/**
37+
/**/__pycache__/**
38+
extra/vswhere.exe
39+
extra/tracy-build

tracy/AUTHORS

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Bartosz Taudul <wolf.pld@gmail.com>
1+
Bartosz Taudul <wolf@nereid.pl>
22
Kamil Klimek <kamil.klimek@sharkbits.com> (initial find zone implementation)
33
Bartosz Szreder <zgredder@gmail.com> (view/worker split)
44
Arvid Gerstmann <dev@arvid-g.de> (compatibility fixes)
@@ -9,3 +9,7 @@ Dedmen Miller <dedmen@dedmen.de> (find zone bug fixes, improv
99
Michał Cichoń <michcic@gmail.com> (OSX call stack decoding backport)
1010
Thales Sabino <thales@codeplay.com> (OpenCL support)
1111
Andrew Depke <andrewdepke@gmail.com> (Direct3D 12 support)
12+
Simonas Kazlauskas <git@kazlauskas.me> (OSX CI, external bindings)
13+
Jakub Žádník <kubouch@gmail.com> (csvexport utility)
14+
Andrey Voroshilov <andrew.voroshilov@gmail.com> (multi-DLL fixes)
15+
Benoit Jacob <benoitjacob@google.com> (Android improvements)

tracy/LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Tracy Profiler (https://github.com/wolfpld/tracy) is licensed under the
22
3-clause BSD license.
33

4-
Copyright (c) 2017-2020, Bartosz Taudul <wolf.pld@gmail.com>
4+
Copyright (c) 2017-2021, Bartosz Taudul <wolf@nereid.pl>
55
All rights reserved.
66

77
Redistribution and use in source and binary forms, with or without

tracy/NEWS

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,167 @@ Note: Release numbers are nothing more than numbers. There are some
66
"missing" versions due to trace file changes during development. This is not
77
a mistake.
88

9+
v0.7.7 (2021-04-01)
10+
-------------------
11+
12+
- Linux crash handler will now also catch SIGABRT.
13+
- Fixed invalid name assignment to source files discovered client-side.
14+
- Added ability to check if a zone is active (which may be used to avoid
15+
preparing zone text, etc., as it wouldn't be used anyway).
16+
- Improved sorting behavior of internal vectors.
17+
- Some data will now be always properly displayed during live capture.
18+
This was not particularly visible before, as it mainly concerns edge
19+
cases.
20+
- Sorting is performed only as needed.
21+
- In case of plots the performance during live capture may be decreased,
22+
as these were sorted with at least 0.25 second intervals before. Now
23+
the sorting is performed every frame.
24+
- Some other data, which previously was not sorted, is sorted now.
25+
- In headless capture mode sorting will be only performed when the trace
26+
is saved to disk.
27+
- Fixed some typos in macros.
28+
- Fixed handling of non-ANSI file names on Windows. You can now name your
29+
traces 'ęśąćż.tracy' and it should work as intended. This is supported on
30+
Windows 10 release 1903 and newer.
31+
- Fixed sending GPU context name in on-demand mode.
32+
- Fixed color channel order in ZoneColor() macro.
33+
- Handle failure state when a memory pointer allocation is reported twice,
34+
without an intermediate free.
35+
- Renamed "call stack parents" to "entry call stacks".
36+
- Display number of entry call stacks in assembly line sample count tooltip.
37+
- Added tooltips with preview of source code in various places in the UI.
38+
39+
40+
v0.7.6 (2021-02-06)
41+
-------------------
42+
43+
- Various fixes in build scripts.
44+
- Fixed a faulty rpmalloc initialization path when the first thing the
45+
thread did was sending a message with call stack.
46+
- Added fallback timer define for various virtualized environments, which
47+
may not be able to access the hardware timer registers. This will result
48+
in usage of timer provided by the standard library, with reduced
49+
resolution.
50+
- Further OpenCL improvements.
51+
- Updated libbacktrace.
52+
- Adds Mach-O 64-bit FAT support.
53+
- Fixes memory corruption when processing Mach-O data.
54+
- Fixes missing matching entries during binary search.
55+
- Adds support for MiniDebugInfo.
56+
- Adds fallback to ELF symbol table if no debug info is available.
57+
- Various other fixes.
58+
- Store build time of profiled program in captures.
59+
- GPU contexts can be now named.
60+
- Implemented client -> server source code transfer.
61+
62+
63+
v0.7.5 (2021-01-23)
64+
-------------------
65+
66+
- More robust handling of system tracing on Android.
67+
- Added warning dialog when the connection is lost before all needed data
68+
can be retrieved.
69+
- Fixed handling of NaN plot entries (by skipping them).
70+
- Dynamic zone colors are now supported through the ZoneColor() macro.
71+
- Fixed Arm machine code printout to match the one printed by objdump.
72+
- Fixed client memory corruption when using colored messages.
73+
- Switched to the next-gen ImGui table UI.
74+
- Table columns can have their order rearranged, can be hidden, can be
75+
sorted both in ascending and descending order (where appropriate).
76+
- Table columns state is now preserved between runs.
77+
- Various fixes related to restricting listening to localhost.
78+
- Improved compatibility of ETW tracing with non-MSVC compilers.
79+
- Fixed Vulkan call stack transfer.
80+
- Added support for transient GPU zones (OpenGL, Vulkan, Direct3D 12).
81+
- OpenCL fixes for assert-less builds and non-active zones.
82+
- Added support for thread names and title bar description in traces
83+
imported from chrome tracing format.
84+
85+
86+
v0.7.4 (2020-11-15)
87+
-------------------
88+
89+
- Added support for user-provided locks to keep dbghelp calls thread-safe.
90+
- Call stacks can be now copied to clipboard.
91+
- Allow more control over which automated captures are performed.
92+
- Added textual descriptions for some assembly instructions.
93+
- Profiler memory usage is now also displayed as a percentage of available
94+
physical memory.
95+
- Microarchitecture mismatch is now clearly displayed in the source view
96+
window.
97+
- Added Zen 3 and Cascade Lake microarchitectural data.
98+
- Ghost zones are now supporting all zone coloring modes and namespace
99+
shortening.
100+
- Extend C API to support memory pools.
101+
- Frame rate targets can be now visually represented on the timeline view.
102+
103+
104+
v0.7.3 (2020-10-06)
105+
-------------------
106+
107+
- Properly support DPI scaling on Linux (requires GLFW 3.3).
108+
- Added early checks for output file validity in the capture utility.
109+
- Improvements to presence broadcast handling.
110+
- Custom zone colors can be optionally ignored.
111+
- Added support for tracking multiple memory pools.
112+
- Memory free failure dialog can now show call stack pointing to the failure
113+
location.
114+
- Added support for Wayland on Linux.
115+
- If during the first 5 seconds of the trace there are no frames being
116+
reported, the profiler will switch to following last 5 seconds of the
117+
trace, instead of displaying three last frames.
118+
119+
120+
v0.7.2 (2020-09-14)
121+
-------------------
122+
123+
- Note: the bitbucket repository is obsolete and will soon stop receiving
124+
updates. Migrate to https://github.com/wolfpld/tracy, if you haven't
125+
already.
126+
- The "waiting for connection" dialog no longer has "cancel" button. To
127+
abort connection attempt just use the "close window" button.
128+
- Added update notification.
129+
- The most recent traced events can be now viewed regardless of timeline
130+
zoom level.
131+
- Fixed going-to-line in source view (again).
132+
- Crash handling on client is now not performed, if there is no active
133+
connection.
134+
- Added ability to listen only on IPv4 interfaces.
135+
136+
137+
v0.7.1 (2020-08-24)
138+
-------------------
139+
140+
- Dropped support for pre-v0.6 traces.
141+
- Fixed regression on non-AVX2 CPUs.
142+
- Fixed incorrect calculation of some ghost zones.
143+
- Added list of cached source files.
144+
- Added import of plot data.
145+
- Secure versions of alloc/free macros.
146+
- Automated tracing of vertical synchronization on Windows.
147+
- Fixed attachment of postponed frame images.
148+
- Source location data can be now copied to clipboard from zone info window.
149+
- Zones in find zones menu can be now grouped by zone name.
150+
- Vulkan and D3D12 GPU contexts can be now calibrated.
151+
- Added CSV export utility.
152+
- "Go to frame" popup no longer has a dedicated button. To show it, click on
153+
the frame counter.
154+
- Added macro for checking if profiler is connected.
155+
- Implemented optional data removal from traces in the update utility.
156+
- Allow manual management of profiler lifetime.
157+
- Adjusted priority of ETW threads to time critical.
158+
- Annotations can be now freely adjusted on the timeline.
159+
- Limiting time range for find zone functionality has been significantly
160+
improved.
161+
- Added time range limits for statistics and symbol view.
162+
- Implemented call stack sampling on Linux (including Android).
163+
- Exact time from start of profiling session can be now viewed by hovering
164+
the mouse over the time scale.
165+
- Code transfer can be now compiled-out.
166+
- Added support for zone markup in unloadable modules.
167+
- Added image name filter to sampling statistics results window.
168+
169+
9170
v0.7 (2020-06-11)
10171
-----------------
11172

@@ -67,6 +228,7 @@ update utility to convert your old traces now!
67228
- OpenCL profiling.
68229
- Direct3D 12 profiling.
69230

231+
70232
v0.6.3 (2020-02-13)
71233
-------------------
72234

@@ -87,6 +249,7 @@ v0.6.3 (2020-02-13)
87249
- Frame images are now internally compressed using Zstd (instead of LZ4).
88250
- Fix display of continuous frame set tooltips.
89251

252+
90253
v0.6.2 (2019-12-30)
91254
-------------------
92255

@@ -101,6 +264,7 @@ v0.6.2 (2019-12-30)
101264
- Highlight hovered zone from find zone menu zone list on the histogram.
102265
- Allow copying user data directory location to the clipboard.
103266

267+
104268
v0.6.1 (2019-11-28)
105269
-------------------
106270

@@ -112,6 +276,7 @@ v0.6.1 (2019-11-28)
112276
- Client parameters may be now set from the server.
113277
- Minor UI fixes.
114278

279+
115280
v0.6 (2019-11-17)
116281
-----------------
117282

@@ -171,6 +336,7 @@ update utility to convert your old traces now!
171336
- Implemented configuration of plots.
172337
- Messages can now collect call stacks.
173338

339+
174340
v0.5 (2019-08-10)
175341
-----------------
176342

@@ -258,6 +424,7 @@ update utility to convert your old traces now!
258424
- GPU drift value can be now automatically measured.
259425
- Connection window is now a popup hidden under a dedicated button.
260426

427+
261428
v0.4.1 (2018-12-30)
262429
-------------------
263430

@@ -285,6 +452,7 @@ v0.4.1 (2018-12-30)
285452
- Pressing enter key after entering client address in the welcome dialog
286453
will now automatically begin connection process.
287454

455+
288456
v0.4 (2018-10-09)
289457
-----------------
290458

0 commit comments

Comments
 (0)