Commit Graph

3531 Commits

Author SHA1 Message Date
Bartosz Taudul
a6011cd1ad
Ignore intrinsic wrappers in callstack frames.
With gcc/clang the wrapper functions for intrinsics are annoyingly inserted at
top level of stack traces, making it hard to see the call site. Filter out all
known instrinsic headers.
2021-05-23 23:22:45 +02:00
Bartosz Taudul
c13611cf0c
Make unreliable hw stats darker. 2021-05-23 21:32:48 +02:00
Bartosz Taudul
19c41b94c0
Add glow to hotness indicators on lines. 2021-05-23 13:52:38 +02:00
Bartosz Taudul
a6f85bd061
Color hardware samples stats. 2021-05-23 13:13:38 +02:00
Bartosz Taudul
48ab346835
Add goodness color table accessor. 2021-05-23 12:49:40 +02:00
Bartosz Taudul
1b589855e8
Adjust hotness color scaling. 2021-05-23 12:29:48 +02:00
Bartosz Taudul
815cf7d00a
Display hardware counter statistics in asm line columns. 2021-05-23 02:39:31 +02:00
Bartosz Taudul
77c33327f4
Merge remote-tracking branch 'origin/master' into hw 2021-05-23 01:01:21 +02:00
Bartosz Taudul
5f7225ce32
Merge pull request #224 from keur/external_trace_use_file_and_line
Use file:line when comparing traces
2021-05-22 12:36:05 +02:00
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
Bartosz Taudul
9bbffcb67f
Add source tooltip in memory frame trees. 2021-03-27 14:09:40 +01:00
Bartosz Taudul
5ebffe388a
Check for file name pointer validity. 2021-03-27 14:09:35 +01:00
Bartosz Taudul
ff6ecef5f3
Add source preview to statistics window. 2021-03-27 14:02:52 +01:00
Bartosz Taudul
62ac5544b6
Trim empty lines at top and bottom of source preview. 2021-03-27 13:55:22 +01:00
Bartosz Taudul
a15ba0c7fb
Show source preview tooltip in find zones. 2021-03-27 13:47:20 +01:00
Bartosz Taudul
895a63b41a
Add source preview to call stack window. 2021-03-27 13:43:12 +01:00
Bartosz Taudul
e2be45c0ba
Show preview of lock source locations in options window. 2021-03-27 13:43:12 +01:00
Bartosz Taudul
8f0c5e867e
Source tooltip implementation. 2021-03-27 13:43:11 +01:00
Bartosz Taudul
0b6e55ee87
Store fixed-width font in View. 2021-03-27 13:43:11 +01:00
Bartosz Taudul
d56f7dab09
Remove unneeded forward declarations. 2021-03-27 13:05:59 +01:00
Bartosz Taudul
1cb6c17991
Move syntax color tables to a common header. 2021-03-27 13:03:19 +01:00
Bartosz Taudul
ff5435ff67
Cosmetics. 2021-03-27 13:03:19 +01:00
Bartosz Taudul
0b5a923e91
Display preview of source code for assembly instructions. 2021-03-26 02:42:15 +01:00
Bartosz Taudul
bd4335bace
Move source file parsing logic to a separate file. 2021-03-26 02:42:14 +01:00
Bartosz Taudul
174bb4d2f1
Extract source code tokenizer to a separate file. 2021-03-26 01:53:49 +01:00
Bartosz Taudul
b80899863b
Consistently use "entry call stacks". 2021-03-26 00:40:54 +01:00
Bartosz Taudul
2fe1fb974a
Display number of entry call stacks in a tooltip. 2021-03-26 00:27:23 +01:00
Bartosz Taudul
514acf1bac
Don't copy stats. 2021-03-26 00:21:19 +01:00
Bartosz Taudul
29133431bc
Calculate symbol address for parents earlier.
While currently this makes no sense, it will be also used in common code
path.
2021-03-26 00:17:46 +01:00
Bartosz Taudul
ec16182887
Only pack pointer if needed. 2021-03-26 00:14:12 +01:00
Stone Tickle
1918c0ffe6
fix TRACY_NO_FILESELECTOR macro 2021-03-17 08:51:24 +09:00
Bartosz Taudul
8dd92f32af
Handle memory double allocation failure. 2021-03-09 22:19:42 +01:00
Bartosz Taudul
6d5710901c
Fix ZoneColor channel order. 2021-03-09 02:14:57 +01:00
Bartosz Taudul
b51e3fbbc8 Remove unneeded variable. 2021-02-07 21:08:52 +01:00
Bartosz Taudul
9b5cc3352a Fast search for zone tid in GetZoneThreadData(). 2021-02-07 20:27:33 +01:00
Bartosz Taudul
c6c9fec383 Faster search for tid of zone in GetZoneParent(). 2021-02-07 20:27:33 +01:00
Bartosz Taudul
35267abc8e Remove obsolete GetZoneDepth() method. 2021-02-07 19:58:23 +01:00
Bartosz Taudul
02451fecd7 Remove not needed methods from SortedVector. 2021-02-07 19:36:45 +01:00
Bartosz Taudul
18e893752b Use SortedVector for source location zones. 2021-02-07 19:35:53 +01:00
Bartosz Taudul
0100d0beb4 SortedVector has to provide reserve(). 2021-02-07 19:35:23 +01:00
Bartosz Taudul
c220177828 Do postponed work only when needed. 2021-02-07 18:29:29 +01:00
Bartosz Taudul
9bb1d13afa Revert to non-shared mutex for data lock.
The main change here is that the UI will be unresponsive when a trace is being
saved when there's no capture being performed. Note that the UI was always
frozen during saving if the capture was live, due to how starvation is
prevented by the locks.
2021-02-07 18:11:36 +01:00
Bartosz Taudul
417d526581 Use SortedVector for plot data. 2021-02-07 15:52:08 +01:00
Bartosz Taudul
90c873421c Implement main sorting functionality in SortedVector. 2021-02-07 15:50:27 +01:00
Bartosz Taudul
e2db68e5f0 Comment out unneeded (for now) methods in SortedVector. 2021-02-07 15:49:16 +01:00
Bartosz Taudul
dcd76fc369 Add pass-through sorted vector wrapper. 2021-02-07 14:43:05 +01:00
Bartosz Taudul
3400331de1 Check source file validity against executable time. 2021-02-06 22:59:07 +01:00
Bartosz Taudul
ad2062fb40 Last-resort source code transfer from client to server. 2021-02-04 00:45:00 +01:00
Bartosz Taudul
f97223e394 Rename ParamPingback to more generic AckServerQueryNoop. 2021-02-04 00:03:58 +01:00
Bartosz Taudul
53505373c7 Always show full symbol name in ghost zone popups. 2021-01-31 20:49:49 +01:00
Bartosz Taudul
ab4d7259ea Display GPU context name in options menu. 2021-01-31 19:15:23 +01:00
Bartosz Taudul
f068a1d31f Display GPU context name in thread track labels. 2021-01-31 19:15:23 +01:00
Bartosz Taudul
c4a6f3f980 Save/load GPU context names. 2021-01-31 19:15:23 +01:00
Bartosz Taudul
7bb6114270 Process GPU context name messages. 2021-01-31 19:15:23 +01:00
Bartosz Taudul
82a9c3b2c8 Display program build time. 2021-01-31 17:58:33 +01:00
Bartosz Taudul
3ff1692918 Add executable time accessor. 2021-01-31 17:51:55 +01:00
Bartosz Taudul
8d39f91c6e Save/load executable image mtime. 2021-01-31 17:51:16 +01:00
Bartosz Taudul
6c728f6d23 Cosmetics. 2021-01-31 17:24:41 +01:00
Bartosz Taudul
c08d591bf3 Use proper capstone include path. 2021-01-26 20:35:57 +01:00
Bartosz Taudul
2b3405b9c7 Fix usage of deprecated stat64 on apple. 2021-01-26 20:09:34 +01:00
Bartosz Taudul
81c91a87fc Search in cache before issuing syscall. 2021-01-26 01:47:00 +01:00
Bartosz Taudul
ccf441176b
Merge pull request #168 from jkriegshauser/improve-import
Improve chrome import
2021-01-22 14:57:52 +01:00
joshuakr
c96f01956d PR feedback: write the name into the tracy file 2021-01-21 18:33:59 -08:00
joshuakr
c5261e42ba Fix for macOS build 2021-01-21 17:41:55 -08:00
Bartosz Taudul
efc856f842 Fix vertical padding of items in CPU data table. 2021-01-22 02:34:01 +01:00
joshuakr
2920f97911 Imported Chrome traces bring over thread names 2021-01-21 17:26:00 -08:00
joshuakr
25a95d99c0 Imported chrome traces show the file name in the title bar 2021-01-21 17:25:53 -08:00
Bartosz Taudul
239a17deb9 Fix typo. 2021-01-22 02:17:12 +01:00
Bartosz Taudul
e33f8e66d5 Set appropriate flags for CPU data table columns. 2021-01-21 23:26:32 +01:00
Bartosz Taudul
dee6395acf Update pdqsort.
978bc36a9b
2021-01-21 23:26:32 +01:00
Bartosz Taudul
0fc6ebc67d Another ImGuiTableColumnFlags_WidthAuto fix. 2021-01-21 23:26:32 +01:00
Bartosz Taudul
a4764141c6 Support serial callstacks when processing GPU zones. 2021-01-15 22:11:34 +01:00
Bartosz Taudul
d4c0d4fbb7 Rename CallstackMemory to CallstackSerial. 2021-01-15 20:49:39 +01:00
Bartosz Taudul
c66b2cb536 Process allocated source location GPU zones. 2021-01-15 20:33:45 +01:00
Bartosz Taudul
d827832d4d Don't operate on short_ptr. 2021-01-15 20:25:07 +01:00
Bartosz Taudul
44020487d2 Keep zone begin implementations together. 2021-01-15 20:20:34 +01:00
Bartosz Taudul
cc5c20db46 Bump ImGui. 2021-01-08 19:33:04 +01:00
Bartosz Taudul
6e715cf346 Use tables for callstack sample parents. 2020-12-16 15:05:35 +01:00
Bartosz Taudul
f1d48b1298 Use tables for call stack view. 2020-12-16 15:01:07 +01:00
Bartosz Taudul
325bcc035a Use tables to list memory entries. 2020-12-15 15:43:55 +01:00
Bartosz Taudul
6bb77d55a1 Use tables in CPU data view. 2020-12-09 21:53:36 +01:00
Bartosz Taudul
dc6893f419 Use tables for sampled statistics menu. 2020-12-09 21:36:53 +01:00
Bartosz Taudul
63e0170048 Find zones zone list fixes. 2020-12-09 21:18:40 +01:00
Bartosz Taudul
f1a641a838 Use tables for instrumented zones statistics. 2020-12-09 20:55:00 +01:00
Bartosz Taudul
6300f59183 Use tables in find zone zones list. 2020-12-09 02:18:06 +01:00
Bartosz Taudul
c437ecfcf5 Remove unneeded variable. 2020-12-08 19:55:20 +01:00
Bartosz Taudul
a0bae4aa00 Allow hiding columns in some tables. 2020-12-08 19:55:20 +01:00
Bartosz Taudul
b4860bbe4d Use tables in messages list. 2020-12-08 19:55:20 +01:00
Bartosz Taudul
45078cd99d Remove table row backgrounds. 2020-12-08 19:55:20 +01:00
Bartosz Taudul
18ac6ee548 Use tables for time distribution. 2020-12-08 19:55:19 +01:00
Bartosz Taudul
34683ceb4d Use tables in the failure callstack view. 2020-12-08 19:55:19 +01:00
Bartosz Taudul
a0bf2f5605 ImGui::BeginTable() is conditional. 2020-12-08 19:55:19 +01:00
Bartosz Taudul
9a0e7abefa Use proper identifier. 2020-12-08 19:55:19 +01:00
Bartosz Taudul
c23eb2f7fb Limit table size to 14 elements. 2020-12-08 19:55:19 +01:00
Bartosz Taudul
d962301124 Use tables for message list in zone info window. 2020-12-08 19:55:19 +01:00
Bartosz Taudul
99c4b9ef5f Use tables for wait regions. 2020-12-08 19:55:19 +01:00
Bartosz Taudul
a7cdffa736 Use tables for trace parameters. 2020-12-08 19:55:19 +01:00
Bartosz Taudul
3495a5a678 Print Arm machine code as a 4-byte number would be printed. 2020-11-28 13:24:56 +01:00
Ben Vanik
7dfdad2e02 Adding ZoneColor to set a dynamic color override to an existing zone. 2020-11-27 20:12:24 +01:00
Bartosz Taudul
d0acee2a9a Add missing default no-op to switch. 2020-11-23 22:58:40 +01:00
Bartosz Taudul
34e208368d Add missing include. 2020-11-23 22:58:12 +01:00
Bartosz Taudul
de69fc9850 Check if plot data values are finite numbers. 2020-11-23 22:48:55 +01:00
Bartosz Taudul
37c9a5807f Fix statistics image name filter clear button. 2020-11-18 01:30:28 +01:00
Bartosz Taudul
53eacd3dc2 Add lost connection popup. 2020-11-18 01:24:22 +01:00
Bartosz Taudul
78fd523a4b Don't print "connected to" after disconnection. 2020-11-18 01:24:22 +01:00
Bartosz Taudul
e580dfeed3 Release 0.7.4. 2020-11-15 21:51:34 +01:00
Bartosz Taudul
63e3c236f4 Add Zen 3 to list of uarchs. 2020-11-15 21:29:59 +01:00
Bartosz Taudul
31e20cba68 Add Zen 3 uarch measurements. 2020-11-15 21:23:15 +01:00
Bartosz Taudul
af4c9b7cdc Draw frame targets. 2020-11-15 16:16:36 +01:00
Bartosz Taudul
8a1d8e4bac Add frame target UI. 2020-11-15 15:46:23 +01:00
Bartosz Taudul
81dcd2c767 Optional namespace shortening for ghost zones. 2020-11-14 16:23:35 +01:00
Bartosz Taudul
2ac7048248 Support source location dynamic colors for ghost zones. 2020-11-14 16:18:27 +01:00
Bartosz Taudul
2f77885fd9 Show if an matching microarchitecture is selected. 2020-11-13 17:37:53 +01:00
Bartosz Taudul
dcddf8898b Display memory usage also as a percentage. 2020-11-13 17:22:10 +01:00
Bartosz Taudul
2bf00b5eab Get available physical memory size in viewer. 2020-11-13 17:09:57 +01:00
Bartosz Taudul
d7059eca63 Prepare for Zen 3.
0xA20F10 is Vermeer.
2020-11-07 00:26:45 +01:00
Bartosz Taudul
30b4eafa22 Add Zen 2 CPU ids.
0x860F81 is Lucienne.
0x890F00 is VanGogh.
2020-11-07 00:26:00 +01:00
Bartosz Taudul
b36e821cc7 Add cascade lake CPU ids. 2020-11-07 00:20:55 +01:00
Bartosz Taudul
02c90db2e4 Display op description, if available. 2020-11-07 00:16:10 +01:00
Bartosz Taudul
322cc3bf12 Add missing op description list definition. 2020-11-07 00:15:58 +01:00
Bartosz Taudul
a5fd6662be Add CLX to list of uarchs. 2020-11-07 00:07:20 +01:00
Bartosz Taudul
c08d081f9a Update uops.info data to 05.11.2020. 2020-11-06 23:59:57 +01:00
Bartosz Taudul
e5967bdc52 Fix context switch + samples offset logic. 2020-11-06 00:20:26 +01:00
Bartosz Taudul
a48d540854 Cache statistics range-limited data. 2020-11-01 16:24:08 +01:00
Bartosz Taudul
87c3796e84 Fix division by zero if no sampling data is present. 2020-11-01 14:45:26 +01:00
Bartosz Taudul
7791654896 Allow copying callstack to clipboard. 2020-10-30 18:27:52 +01:00
Bartosz Taudul
0c48956410 Fix parsing of source files that do not end in newline. 2020-10-28 21:43:03 +01:00
Bartosz Taudul
651cfd5c21 Now apple has to be stupid.
Remove this when they get their shit together with parallel execution.
2020-10-28 21:16:26 +01:00
Bartosz Taudul
3976408550 Adapt to non-obsolete ImGuiListClipper interface. 2020-10-18 22:51:59 +02:00
Bartosz Taudul
00c9dd24dc Use last range mode if no frames are available.
If during the first 5 seconds of the trace there are no frames being reported,
the profiler will switch to following last 5 seconds of the trace, instead of
displaying three last frames.
2020-10-06 18:46:36 +02:00
Bartosz Taudul
98e3822c88 C arrays are so much fun! 2020-10-06 14:58:42 +02:00
Bartosz Taudul
c9b64ef5c5 Move list of Tracy stack frames to a separate file. 2020-10-06 14:37:39 +02:00
Bartosz Taudul
e613c458dd Fix vertical alignment. 2020-10-06 01:38:40 +02:00
Bartosz Taudul
5af7f6ea0b Add memory pool selector to zone info window. 2020-10-06 01:32:03 +02:00
Bartosz Taudul
07fe1266b0 Fix string iteration condition. 2020-10-02 19:31:42 +02:00
Bartosz Taudul
a2f0f7754d Fix integer types. 2020-10-02 19:30:01 +02:00
Bartosz Taudul
b6724bec3a Ports are uint16_t. 2020-10-02 18:51:54 +02:00
Bartosz Taudul
4791b63ef8 Use int64_t for time. 2020-10-02 18:37:15 +02:00
Bartosz Taudul
8aae9a1477 Shut the compiler up about unused helper functions. 2020-10-02 18:33:13 +02:00
Bartosz Taudul
a5e0336936 Add missing server query space updates to failure handling. 2020-09-30 16:48:59 +02:00
Bartosz Taudul
0d209b80f4 Show call stack in failure dialog. 2020-09-30 16:32:34 +02:00
Bartosz Taudul
9d392d2c90 Process call stack frames during failure dispatch. 2020-09-30 15:57:14 +02:00
Bartosz Taudul
641649143c Make symbol queries optional. 2020-09-30 15:49:29 +02:00
Bartosz Taudul
cecc3783a8 Handle single and second string data in failure dispatch. 2020-09-30 15:46:00 +02:00
Bartosz Taudul
3135191e90 Wait for failure callstack to be received. 2020-09-29 18:40:04 +02:00
Bartosz Taudul
d8e653ecb4 Set memory failure callstack. 2020-09-29 18:40:04 +02:00
Bartosz Taudul
98aaca9597 Default-initialize failure data struct. 2020-09-29 18:40:04 +02:00
Bartosz Taudul
44aef7660d Don't keep two variables to track one thing. 2020-09-29 17:04:41 +02:00
Bartosz Taudul
d5b6befda2 Handle new callstack ordering on server. 2020-09-29 16:59:28 +02:00
Bartosz Taudul
e3d690df63 Cosmetics. 2020-09-25 18:10:22 +02:00
Bartosz Taudul
4c3dce6712 Preserve separate memory tree state for each pool. 2020-09-25 17:55:43 +02:00
Bartosz Taudul
ae14e7a879 Expose custom memory pools in the UI. 2020-09-25 17:51:05 +02:00
Bartosz Taudul
d238c97452 Save/load custom memory types. 2020-09-25 16:39:00 +02:00
Bartosz Taudul
ba4315c286 Store memory name in MemData struct. 2020-09-25 16:36:03 +02:00
Bartosz Taudul
97e17a8d49 Support custom names for memory plots. 2020-09-24 01:31:24 +02:00
Bartosz Taudul
5a6c8b4696 Process named memory allocations. 2020-09-24 01:31:24 +02:00
Bartosz Taudul
751692eedd Don't track latest trace events if there's no connection. 2020-09-24 01:31:24 +02:00
Bartosz Taudul
d1ea97b474 Prepare for handling multiple memory areas. 2020-09-24 01:31:23 +02:00
Bartosz Taudul
46f0853f1b Process memory name payload transfer. 2020-09-24 01:31:23 +02:00
Bartosz Taudul
a9ce4f6454 Cosmetics. 2020-09-24 01:31:23 +02:00
Bartosz Taudul
a668b61320 Allow ignoring custom zone colors. 2020-09-21 02:04:13 +02:00
Bartosz Taudul
5490948567 Release 0.7.2. 2020-09-14 22:55:41 +02:00
Bartosz Taudul
05f0ffd0ed Add "reconnect" button to connection failure dialogs. 2020-09-12 15:52:21 +02:00
Bartosz Taudul
812f869669 Decouple zoom level from tracking last events. 2020-09-12 15:49:41 +02:00
Bartosz Taudul
75ae14cd04 Use in-place merge to sort symbol data. 2020-09-07 01:47:11 +02:00
Bartosz Taudul
4b97528604 Streamline "waiting for connection" dialog. 2020-09-06 13:54:22 +02:00
Bartosz Taudul
4ac0e7d955 Allow filtering sampling results by image name. 2020-08-21 14:23:23 +02:00
Bartosz Taudul
0f13a02062 Properly terminate symbol inline location data.
Previously there was no end value on which iteration would stop in case of
the last-in-the-process-space symbol, which resulted in out-of-bounds read.

Workaround has been added for versions < 0.7.2, but no version bump has been
performed (still at 0.7.1). Having two terminator values at the end of the
list is harmless.
2020-08-20 18:50:20 +02:00
Bartosz Taudul
7cf3b0b004 Workaround issues with sample order. 2020-08-18 21:53:52 +02:00
Bartosz Taudul
5239b706c3 Allow disabling code transfer. 2020-08-16 01:31:54 +02:00
Bartosz Taudul
28af5230d3 Perform OpenGL texture cleanup only on main thread. 2020-08-15 15:02:36 +02:00
Bartosz Taudul
a3d8b5d225 Allow running specific tasks on main thread. 2020-08-15 14:59:16 +02:00
Bartosz Taudul
caa1b1a792 Fix initialization list order. 2020-08-15 02:26:35 +02:00
Bartosz Taudul
f828fed015 Remove unused variables. 2020-08-15 02:23:04 +02:00
Bartosz Taudul
be0e3b9cc4 Silence memcpy/memset warnings. 2020-08-15 02:14:29 +02:00
Bartosz Taudul
833653ce40 Display time stamp when hovering mouse over time scale. 2020-08-14 13:28:34 +02:00
Bartosz Taudul
5e559322a0 Properly check if symbol code is available. 2020-08-14 12:38:56 +02:00
Bartosz Taudul
16eef3f966 Clamp frame image textures to edge. 2020-08-13 18:16:10 +02:00
Bartosz Taudul
321c079205 Fix typo. 2020-08-13 16:56:56 +02:00
Bartosz Taudul
fa7d515165 Display base symbol address in symbol view window. 2020-08-13 16:36:13 +02:00
Bartosz Taudul
b6feb99e98 Show which symbols are available. 2020-08-13 16:24:09 +02:00
Bartosz Taudul
b6d54281a9 Ignore unknown source lines during ip stats gathering. 2020-08-13 00:34:55 +02:00
Bartosz Taudul
8e9a701277 Fix crash when trying to open unavailable source file. 2020-08-12 19:05:16 +02:00
Bartosz Taudul
8cfc614047 Include time range limits in symbol view functions list. 2020-08-11 21:07:23 +02:00
Bartosz Taudul
46163a1989 Implement asm ip stats counter. 2020-08-11 21:07:23 +02:00
Bartosz Taudul
7aa8e408df Remove unused variable. 2020-08-11 16:02:07 +02:00
Bartosz Taudul
34fa99c7ee Restrict sample statistics percentages to time range limit. 2020-08-11 15:50:54 +02:00
Bartosz Taudul
b9a810827d Make instrumented statistics percentages relative to time range. 2020-08-11 15:38:55 +02:00
Bartosz Taudul
6feb017cbe Also display statistics time range if symbol view is open. 2020-08-10 19:03:32 +02:00
Bartosz Taudul
b9b39f1957 Allow checking if source view is symbol view. 2020-08-10 19:03:23 +02:00
Bartosz Taudul
5dd7c7e402 Add time range limiting to symbol view. 2020-08-10 18:58:33 +02:00
Bartosz Taudul
7a4ecc5417 Store instruction pointers in per-symbol sample data. 2020-08-10 14:52:51 +02:00
Bartosz Taudul
85f54499fe Add range limit UI to symbol view. 2020-08-10 12:11:07 +02:00
Bartosz Taudul
339ed7cc4d Fix tooltip stroboscope. 2020-08-09 21:40:06 +02:00
Bartosz Taudul
06ac6f4f24 Build per-symbol samples list during live capture. 2020-08-09 21:04:03 +02:00
Bartosz Taudul
3be0a3f628 Vector is not empty here. 2020-08-09 20:46:44 +02:00
Bartosz Taudul
1650d371e6 Actually set self time option, if required. 2020-08-07 19:43:31 +02:00
Bartosz Taudul
d6aa814de5 Use time limited data for inline stats. 2020-08-07 19:42:18 +02:00
Bartosz Taudul
d151aff237 Allow time limiting sampled call stacks statistics. 2020-08-07 19:26:19 +02:00
Bartosz Taudul
b418c98e63 Add symbol samples accessor. 2020-08-07 19:14:21 +02:00
Bartosz Taudul
aa8b60a824 Calculate per-symbol sample time list.
This is for loaded traces. Real time capture will be implemented later.
2020-08-07 19:05:27 +02:00
Bartosz Taudul
87e7cba289 Disable samples limit range until background job is done. 2020-08-07 14:54:00 +02:00
Simon van Bernem
d06617b2a5 Fixed variable name 2020-08-07 10:55:00 +02:00
Simon van Bernem
4e1ed15237 More matching code-style 2020-08-07 10:45:52 +02:00
Simon van Bernem
ab85fba7e0 Matching the braketing style 2020-08-07 10:42:36 +02:00
Simon van Bernem
903b7badc0 next try 2020-08-07 10:39:22 +02:00
Simon van Bernem
e14bb56db1 matching spacing to remove change from original 2020-08-07 10:38:38 +02:00
Simon van Bernem
b826c14e4d reverted an unnecessary change 2020-08-07 10:37:19 +02:00
Simon van Bernem
3dd80c5288 DrawStripedRect can now draw screen-space stripes
Added two parameters to DrawStripedRect: fix_stripes_in_screen_space aligns the stripes to screen space. This leads to the stripes of any stripe rect being drawn aligning. Also added inverted, which flips the empty and filled part of the striped rect. This is used to make statRange and findZone stripes interleave, when they overlap.
2020-08-07 10:24:13 +02:00
Bartosz Taudul
550e05d149 Fix time range limits created by reverse-mouse-drag. 2020-08-07 00:24:22 +02:00
Bartosz Taudul
983aba7a0b Self time is forced for range limit in sampling stats. 2020-08-06 17:22:47 +02:00
Bartosz Taudul
0a0d04fff6 Add time range limits to instrumentation statistics. 2020-08-06 15:22:10 +02:00
Bartosz Taudul
b68423fc1a Fix copy pasta. 2020-08-06 15:22:10 +02:00
Bartosz Taudul
71440cc6ee Use custom data structure for temporary stats data. 2020-08-06 15:22:10 +02:00
Bartosz Taudul
251e8f1fe2 Fix vertical panning. 2020-08-05 17:20:19 +02:00
Bartosz Taudul
c4cf690e39 Display annotation extent on annotations list. 2020-08-04 17:31:33 +02:00
Bartosz Taudul
05c60259b6 Display exact time for annotation begin, end. 2020-08-04 17:26:00 +02:00
Bartosz Taudul
22e86af4ab Remove redundant tooltip. 2020-08-04 17:24:59 +02:00
Bartosz Taudul
a5c16a39ba Make annotations resizable. 2020-08-04 17:23:12 +02:00
Bartosz Taudul
f589fba274 Use Range for annotation extent. 2020-08-04 17:14:58 +02:00
Bartosz Taudul
2acc1d9670 Move Range, RangeSlim out of View. 2020-08-04 17:09:17 +02:00
Bartosz Taudul
68e452802b Allow performing range copies from one to another. 2020-08-04 17:06:24 +02:00
Bartosz Taudul
85e8a6a81c Add icons to range limits window entries. 2020-08-04 17:06:24 +02:00
Bartosz Taudul
67e86d2b27 Add context menus to ghost zones. 2020-08-04 17:06:24 +02:00
Bartosz Taudul
bd51add4f1 Display zone range popup area. 2020-08-04 17:06:24 +02:00
Bartosz Taudul
321fa06a3d Merge adding annotations and setting range limits. 2020-08-04 16:40:35 +02:00
Bartosz Taudul
79fc917483 Hook-up statistics time range logic. 2020-08-04 14:31:53 +02:00
Bartosz Taudul
7fe1560ca5 Change find zone limit range color to green. 2020-08-04 14:23:37 +02:00
Bartosz Taudul
1e526cfc09 Extract range entry drawing. 2020-08-04 14:20:35 +02:00
Bartosz Taudul
9449f3ef89 Add time range limit UI to statistics menu. 2020-08-04 14:15:28 +02:00
Bartosz Taudul
a23f58cc8f Add spacing in find zone menu. 2020-08-04 14:13:12 +02:00
Bartosz Taudul
ed01a3e4e0 Extract common filtering UI logic. 2020-08-04 14:09:59 +02:00
Bartosz Taudul
21589a238b Reduce size of statistics menu controls. 2020-08-04 14:06:32 +02:00
Bartosz Taudul
2f94b44a6c Move filter UI to a separate line in statistics menu. 2020-08-03 17:08:47 +02:00
Bartosz Taudul
9b1573d803 Add limits button to find zone menu. 2020-08-03 16:07:38 +02:00
Bartosz Taudul
02aae23a98 Move limits button to tools submenu. 2020-08-03 16:07:28 +02:00
Bartosz Taudul
498781b5bf Clear potential click after mouse button is released. 2020-08-01 13:01:04 +02:00
Bartosz Taudul
734b0c25d9 Fix typo. 2020-08-01 12:55:49 +02:00
Bartosz Taudul
7d34350bf3 Drag delta (accumulated) shouldn't be consumed. 2020-08-01 12:36:52 +02:00
Bartosz Taudul
b33445c073 Open context menus without ctrl key. 2020-08-01 12:35:30 +02:00
Bartosz Taudul
b4021d7d79 Add mouse click vs drag logic. 2020-08-01 12:35:15 +02:00
Bartosz Taudul
4da8385300 Range overlay resize has priority over other mouse interactions. 2020-08-01 12:11:06 +02:00
Bartosz Taudul
22651eccc5 Implement consumption of mouse events. 2020-08-01 12:10:59 +02:00
Bartosz Taudul
6d0d12ce78 Remove unneeded parameter. 2020-08-01 12:03:11 +02:00
Bartosz Taudul
6836014caa Capture ImGui mouse state. 2020-08-01 12:02:11 +02:00
Bartosz Taudul
39197b9ff8 Use mouse wrappers. 2020-08-01 11:53:11 +02:00
Bartosz Taudul
733b9c4048 Add wrapper for ImGui mouse handling. 2020-08-01 11:49:43 +02:00
Bartosz Taudul
dbcc908dee Fix initialization. 2020-07-31 18:10:03 +02:00
Bartosz Taudul
19246a027f Allow limiting find zone time range to zone extent. 2020-07-31 18:01:07 +02:00
Bartosz Taudul
efc9c7c58f Add color key for find zone time range. 2020-07-31 17:57:54 +02:00
Bartosz Taudul
65e00eb2d4 Show time limit overlay if range window is open. 2020-07-31 17:54:46 +02:00