Commit Graph

3272 Commits

Author SHA1 Message Date
Kevin Kuehler
871d41be1f Implement FindMatchingZone(..)
Sets m_compare to the matched index. It supports multiple flags. It can
be run by comparing function name, source file, line number, and any
combination thereof. When searching for a match, we do 3 runs, quitting
out if any of them succeed.

  1. Look for zone with same function same, source file, line number.
  2. Look for zone with same function same, source file.
  3. Look for zone with same function same.
2021-05-22 01:33:06 -07:00
Bartosz Taudul
306055ebfa
Cosmetics. 2021-05-22 00:46:11 +02:00
Kevin Kuehler
5ab84d0c3f Use file:line when comparing traces
When comparing traces, where multiple classes share the same zone
names, the behavior prior to this patch was to auto-select the first
matching zone name in the other trace. Instead, find the most correct
zone by using filename and line number.
2021-05-21 15:25:26 -07:00
Bartosz Taudul
ea5a9ee83b
Merge remote-tracking branch 'origin/master' into hw 2021-05-20 20:56:16 +02:00
Bartosz Taudul
87cff004a4
Show hw samples tooltip when there are no samples. 2021-05-20 20:10:27 +02:00
Bartosz Taudul
3ba82ba4d6
Separate IPC, cache and branch data in tooltip. 2021-05-20 19:56:23 +02:00
Bartosz Taudul
c6f071a66a
Save and load hardware sample data. 2021-05-20 19:37:51 +02:00
xavier
28e5aae17e build with gcc 11 2021-05-20 17:30:54 +02:00
Bartosz Taudul
df50eb890f
Fix printing percentage. 2021-05-20 02:53:49 +02:00
Bartosz Taudul
5a7e9cdbdd
0% miss rates are fine too. 2021-05-20 02:31:00 +02:00
Bartosz Taudul
9b4716c49e
Display cache and branch miss rates. 2021-05-20 02:26:02 +02:00
Bartosz Taudul
227a8d1aee
Process additional hardware sample data. 2021-05-20 02:19:11 +02:00
Bartosz Taudul
24b5e16718
Display hw sampling stats in tooltip. 2021-05-20 01:37:59 +02:00
Bartosz Taudul
3a0e12043d
Differentiate hw samples from code addresses. 2021-05-19 23:29:27 +02:00
Bartosz Taudul
28cc72a69c
Display hardware samples count. 2021-05-19 23:05:58 +02:00
Bartosz Taudul
3228e20c2e
Add hardware samples accessors. 2021-05-19 23:05:50 +02:00
Bartosz Taudul
373a2b66c6
Collect hardware sample data. 2021-05-19 23:05:33 +02:00
Bartosz Taudul
64ed3d057d
Add no-op dispatch of HW samples. 2021-05-19 21:09:55 +02:00
Bartosz Taudul
efc1777051
Implement range limit for child samples. 2021-05-19 20:26:50 +02:00
Bartosz Taudul
5ec1313af1
Drop legacy code for reading long unsupported traces. 2021-05-18 02:24:56 +02:00
Giulio Eulisse
aace8ac317
Update TracyView.cpp 2021-05-17 12:09:14 +02:00
Giulio Eulisse
2cdc3abba2
Update TracyImGui.hpp 2021-05-17 12:07:35 +02:00
Giulio Eulisse
4ab706d538
Update TracyMouse.cpp 2021-05-17 12:07:06 +02:00
Giulio Eulisse
bcb250aaab
Update TracySourceView.cpp 2021-05-17 12:06:37 +02:00
Giulio Eulisse
63e2c16e74
Do not use relative include path for ImGUI.h
#pragma once gets confused by `../../imgui/imgui.h` and `imgui.h` on macOS with XCode 12.5.
2021-05-17 12:05:14 +02:00
Bartosz Taudul
8219a0e4ca
Fix shift. 2021-05-15 18:39:01 +02:00
Bartosz Taudul
c91c7a7fd5
Use zstd dict for packing/unpacking frame images.
This only affects run-time memory usage and needs an offline calculation of
the dictionary. Results vary depending on similarity of image blocks.

agora        34.96 MB ->  28.21 MB
agora2       40.75 MB ->  34.14 MB
android-vk   36.21 MB ->  18.44 MB
astar3       44.72 MB ->  43.38 MB
clipper1    134.36 MB ->  52.16 MB
fi           50.82 MB ->  40.79 MB
fi-big      537.74 MB -> 469.54 MB
test         23.26 MB ->   1.87 MB
2021-05-15 18:06:44 +02:00
Bartosz Taudul
d555256546
Don't use separate texture compression context.
Previously it was needed, as saving could be made at the same time the UI was
active. Currently saving blocks UI access to data structures, as it possibly
may need to sort unsorted vectors.
2021-05-15 18:04:14 +02:00
Bartosz Taudul
925a23a053
Add texture packer with zstd dict support. 2021-05-15 18:04:14 +02:00
Bartosz Taudul
a53f5702b1
Calculate frame images dictionary. 2021-05-15 18:03:50 +02:00
Bartosz Taudul
56958a018c
Only show dict building checkbox if there are frame images. 2021-05-15 15:52:54 +02:00
Bartosz Taudul
3d75bf653a
Add interface for frame images dict building. 2021-05-15 15:50:20 +02:00
Bartosz Taudul
92ae003308
Improve trace saving experience.
This adds additional dialog, which allows selection of compression mode. Also,
when a trace cannot be saved, a failure popup will be displayed.
2021-05-15 14:25:45 +02:00
Bartosz Taudul
ab830962c8
Fix notifications disappearing after a long UI lock. 2021-05-15 14:21:45 +02:00
Bartosz Taudul
7f1f929662
Decode PID and TID when generating imported thread names. 2021-05-15 13:08:51 +02:00
Bartosz Taudul
8ea02a4794
Cosmetics. 2021-05-15 13:03:42 +02:00
Bartosz Taudul
4f76fb2cda
Store location in SourceLocation during chrome import. 2021-05-11 01:37:59 +02:00
Bartosz Taudul
db734e3e0a
Parse custom location tags. 2021-05-11 01:37:59 +02:00
Bartosz Taudul
8d21202aaa
Remove floating point computation within hot loops. 2021-05-02 16:36:35 +02:00
Bartosz Taudul
7708184f73
Merge pull request #204 from nosferalatu/Direct3D11
Direct3D11
2021-05-02 02:46:24 +02:00
Bartosz Taudul
ab627f9da2
Build zig-zag path in a preallocated buffer. 2021-05-02 02:40:36 +02:00
David Farrell
dcf33b51cf Updated comment to say that both OpenGL _and_ Direct3D11
don't need per-zone thread id.
2021-05-01 16:31:06 -07:00
David Farrell
e9fd767884 Added missing comma in GpuContextNames 2021-05-01 15:03:02 -07:00
Rahul Gupta
a950e444b5 Updated as suggested by wolf in the PR 2021-05-01 14:55:45 -07:00
Bartosz Taudul
4a8bfb4fac
Add ctrl/shift modifiers to mouse wheel zoom speed. 2021-05-01 18:20:19 +02:00
Bartosz Taudul
0e6a25fdd8
Directly compare time, with data piggybacked in low bits. 2021-05-01 15:04:56 +02:00
Bartosz Taudul
a688d24665
Replace two memory reads with just one. 2021-05-01 14:32:02 +02:00
Bartosz Taudul
088dd06197
Use DrawLine() in TracyView.cpp. 2021-05-01 13:59:43 +02:00
Bartosz Taudul
837272afba
Properly align context switch darken boxes. 2021-05-01 13:39:19 +02:00
Bartosz Taudul
a1aefe33a0
Use DrawLine() in TracySourceView.cpp. 2021-05-01 12:55:56 +02:00
Bartosz Taudul
c27c81db4c
Use DrawLine() in DrawCpuData(). 2021-05-01 02:59:43 +02:00
Bartosz Taudul
fe22d5a6f6
Add fast line drawing function.
This skips unnecessary construction of ImVec2 vector.

Note: unlike AddLine(), this function doesn't add 0.5 to x and y coordinates.
The user is expected to do it on his own, which if done in just one place will
be performance beneficial.
2021-05-01 02:57:35 +02:00
Bartosz Taudul
b9ce9540be
Remove namespace indent in TracyImGui.hpp. 2021-05-01 02:26:46 +02:00
Bartosz Taudul
57d87af8a2
Add tooltips for register read/write markers. 2021-05-01 00:22:11 +02:00
Bartosz Taudul
de5f258b03
Display complementary assembly address tooltips. 2021-04-29 20:33:10 +02:00
Bartosz Taudul
854439cdb1
Display jump target in asm instruction tooltip. 2021-04-29 20:27:32 +02:00
Bartosz Taudul
ac9b97319a
Extract jump name retrieval. 2021-04-29 20:08:18 +02:00
Bartosz Taudul
7cfaaf6310
Exactly known latency shouldn't vary. 2021-04-29 18:24:37 +02:00
David Farrell
be963f184c Change ev.ptr nullptr early-out to happen only when there is not a previous allocation for address 0. Custom memory pools (like custom allocators for Vulkan memory pools) can allocate at address 0, so the previous code would cause the Tracy server to alloc(0), free(0) (but early out), then on the next alloc(0) it would have a MemAllocTwiceFailure (because it skipped the free). 2021-04-21 11:53:55 -07:00
Bartosz Taudul
0bbda5ea11
Pressing Z will temporarily switch child calls. 2021-04-20 18:19:00 +02:00
Bartosz Taudul
e189f596ac
Add no-statistics guards. 2021-04-18 22:59:10 +02:00
Bartosz Taudul
d234f4dbe4
Generate child sample data during capture. 2021-04-18 22:44:37 +02:00
Bartosz Taudul
fb872fa088
Add child samples to source view percentages. 2021-04-18 22:23:55 +02:00
Bartosz Taudul
cba72859e9
No parents if only child samples. 2021-04-18 22:00:49 +02:00
Bartosz Taudul
141a4bc0fe
Fix scroll bar display of child-only samples. 2021-04-18 22:00:49 +02:00
Bartosz Taudul
c7da9b1092
Fix rendering of lines with no local samples. 2021-04-18 22:00:49 +02:00
Bartosz Taudul
66ef71cf7b
Gather child IP stats for addresses without samples. 2021-04-18 22:00:49 +02:00
Bartosz Taudul
ef93c69ee9
Make child calls more discoverable. 2021-04-18 22:00:48 +02:00
Bartosz Taudul
2009f63e32
Group time/samples data by local and child. 2021-04-18 20:43:23 +02:00
Bartosz Taudul
a5afa2cb4e
Use correct address for child sample information. 2021-04-18 20:43:23 +02:00
Bartosz Taudul
4970c48c51
Don't shadow variables. 2021-04-18 20:43:23 +02:00
Bartosz Taudul
c859d655ad
Include child calls in asm view percentages. 2021-04-18 20:43:22 +02:00
Bartosz Taudul
50a1faa880
Don't print zero sample counts in tooltips. 2021-04-18 20:16:05 +02:00
Bartosz Taudul
5f97c484f1
Include child samples in symbol view file list. 2021-04-18 19:42:24 +02:00
Bartosz Taudul
046881e32f
Add AddrStat::operator+=( AddrStat ). 2021-04-18 19:40:43 +02:00
Bartosz Taudul
22a8c53e8b
Account for case with no local samples (external only). 2021-04-18 19:21:53 +02:00
Bartosz Taudul
b217e00dd9
Hackfix support for UTF-8 in source files. 2021-04-18 19:14:12 +02:00
Bartosz Taudul
526d0cd22a
Display child time and samples in symbol stats. 2021-04-18 19:10:39 +02:00
Bartosz Taudul
c5eb398319
Gather external IP stats (no range limit case). 2021-04-18 19:04:29 +02:00
Bartosz Taudul
8db9bcf7f8
Disable child calls checkbox while processing data. 2021-04-18 18:27:39 +02:00
Bartosz Taudul
0d8ee47231
Store instruction pointer stats as AddrStat. 2021-04-18 16:16:47 +02:00
Bartosz Taudul
3845c392fa
Cosmetics. 2021-04-18 15:52:42 +02:00
Bartosz Taudul
55efa64b3f
Do not copy instruction pointer maps. 2021-04-18 15:51:50 +02:00
Bartosz Taudul
32e3c0ebb1
Display child sample counts in info window. 2021-04-18 15:06:54 +02:00
Bartosz Taudul
34b80ac52f
Add child samples count getters. 2021-04-18 15:03:42 +02:00
Bartosz Taudul
2f6adf3641
Add child calls UI. 2021-04-18 15:00:19 +02:00
Bartosz Taudul
ffe8aebfbd
Extend address stats to include child samples. 2021-04-18 15:00:19 +02:00
Bartosz Taudul
df462f109d
Reconstruct child sample data. 2021-04-18 15:00:19 +02:00
Bartosz Taudul
4dc6222ba1
Add child samples data structure. 2021-04-18 14:42:35 +02:00
Bartosz Taudul
fa8c99fd74
Fix missing limit range checkbox in source view.
This could happen if range was limited in such a way, that no sample was
within the region.
2021-04-18 14:42:35 +02:00
Bartosz Taudul
aee39d3fcd
Disable collapsing of connection window. 2021-04-18 14:42:31 +02:00
Bartosz Taudul
d71d76414b
Allow setting NO_PARALLEL_SORT externally. 2021-04-15 19:55:50 +02:00
Bartosz Taudul
07996c16cf
Fix gcc 8.3 with LTO.
In member function ‘UpdateSampleStatisticsImpl’:
warning: argument 1 value ‘18446744073709551598’ exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
         auto cfdata = (CallstackFrame*)alloca( ( fxsz-1 ) * sizeof( CallstackFrame ) );
                                        ^
2021-04-09 01:15:18 +02:00
Bartosz Taudul
2477f33a6d
Update robin-hood-hashing to 3.11.1. 2021-04-08 01:07:56 +02:00
Bartosz Taudul
592644ae43
Don't issue warning if only disconnect is in send queue. 2021-04-01 20:16:47 +02:00
Bartosz Taudul
9b7f759347
Allow checking if disconnect was requested. 2021-04-01 20:16:29 +02:00
Bartosz Taudul
450013bc27
Update to current uops.info xml file.
This updates ZEN3 and adds Tiger Lake.
2021-04-01 18:46:00 +02:00
Bartosz Taudul
da29ec975b
Release 0.7.7. 2021-04-01 18:15:07 +02:00
Bartosz Taudul
8ddf26fff2
Simplify code. 2021-03-27 15:24:42 +01:00
Bartosz Taudul
4c4fc7197c
Add source preview to entry call stacks window. 2021-03-27 14:15:18 +01:00