Commit Graph

4215 Commits

Author SHA1 Message Date
Bartosz Taudul
d3cb8ccef2
Normalize jump names in assembly lines. 2022-08-15 22:44:31 +02:00
Bartosz Taudul
04aebb090b
Normalize frame names in zone trace. 2022-08-15 22:32:42 +02:00
Bartosz Taudul
fd2918eaf2
Normalize frames in find zone view callstack. 2022-08-15 22:27:36 +02:00
Bartosz Taudul
a5998adf83
Normalize function name in assembly line location popup. 2022-08-15 22:16:05 +02:00
Bartosz Taudul
2031c92f7a
Add source code tooltip to function selection list. 2022-08-15 22:10:59 +02:00
Bartosz Taudul
163e7fd490
Normalize names in function selection list in symbol view. 2022-08-15 22:06:35 +02:00
Bartosz Taudul
b1aca6acf9
Show original name in tooltip in sample parents window. 2022-08-15 21:54:29 +02:00
Bartosz Taudul
dc84752fab
Normalize symbol view symbol name. 2022-08-15 21:51:11 +02:00
Bartosz Taudul
f4524a8453
Show more elements in one-line callstacks. 2022-08-15 21:36:29 +02:00
Bartosz Taudul
697d1f0cad
Fully shorten frame names in one-line callstack calls. 2022-08-15 21:33:25 +02:00
Bartosz Taudul
baf365c0c3
Normalize frame names in memory callstack tree. 2022-08-15 21:29:21 +02:00
Bartosz Taudul
9c4f257596
Normalize frame names in wait stacks tree. 2022-08-15 21:27:05 +02:00
Bartosz Taudul
4d974da290
Add shorten name accessor. 2022-08-15 21:21:50 +02:00
Bartosz Taudul
257a836dc7
Adjust zone name shortening option names.
"Always full" was kinda ambiguous. It could either mean that the name will be
always full (shortening effectively disabled), or that the shortening will be
performed to the maximum extent (as it was).
2022-08-15 20:47:59 +02:00
Bartosz Taudul
c4324873b2
Add tooltips for parent names. 2022-08-15 20:40:49 +02:00
Bartosz Taudul
655bcd40fb
Limit sample statistics frame name tooltip to frame name. 2022-08-15 20:39:35 +02:00
Bartosz Taudul
27165d12a6
Normalize frame names in parents frame tree. 2022-08-15 20:09:35 +02:00
Bartosz Taudul
389cf135c0
Normalize frame names in sample parents call stack view. 2022-08-15 20:04:57 +02:00
Bartosz Taudul
6932eb4b79
Shorten frame names in sample statistics view. 2022-08-15 19:56:17 +02:00
Bartosz Taudul
4d0591cf2f
Extract normalized name tooltip function. 2022-08-15 19:43:03 +02:00
Bartosz Taudul
63d074c5d8
Fix zone size calculation wrt text fitting.
Previously the zone size calculation hasn't took into account the possibility
of the zone going out of the screen. This is now fixed.
2022-08-15 19:38:40 +02:00
Bartosz Taudul
7f99ee2c13
Shorten frame names in callstack table. 2022-08-15 19:38:39 +02:00
Bartosz Taudul
f2001c95a5
Shorten frame names in callstack tooltip. 2022-08-15 17:13:39 +02:00
Bartosz Taudul
112406472a
Do not normalize non-ghost zone names.
These do not have unwanted decorations, but may include useful user
annotations (e.g. "Open file (/etc/passwd)"), which we would not want to
remove.
2022-08-15 17:03:45 +02:00
Bartosz Taudul
d27cb4a094
Normalize names in ghost zone tooltips. 2022-08-15 16:54:12 +02:00
Bartosz Taudul
57cabc1e09
Support zone name shortening without text/zone sizes. 2022-08-15 16:39:25 +02:00
Bartosz Taudul
8531ef6591
Extract ShortenZoneName() function to a separate file. 2022-08-15 16:34:37 +02:00
Bartosz Taudul
07a1383304
Expose zone name normalization as a separate setting. 2022-08-15 16:24:44 +02:00
Bartosz Taudul
89016454f8
Progressively remove namespaces. 2022-08-15 15:44:13 +02:00
Bartosz Taudul
af934f1387
Remove common return value types from function names.
Which types are included is a balance between efficiency and frequency of
occurrence.
2022-08-15 15:38:34 +02:00
Bartosz Taudul
fb6f63f06f
Remove const qualifier from shortened function names. 2022-08-15 15:22:57 +02:00
Bartosz Taudul
60f82dfd2e
Fix off-by-one.
The null terminator was included during the string copy. The destination
pointer points to one-beyond-the-end, and has to be decreased.
2022-08-15 15:12:20 +02:00
Bartosz Taudul
0c6acf3c2e
Use string end pointer. 2022-08-15 14:54:23 +02:00
Bartosz Taudul
d91321a774
Do not shorten kernel module names. 2022-08-15 14:50:57 +02:00
Bartosz Taudul
47a2512957
Change namespace shortening to zone name shortening.
Namespace shortening was kinda ok for function names produced by MSVC, which
are generally clean looking. However, gcc/clang like to produce function names
which include template arguments, function parameters, return values, etc. In
such cases the old algorithm simply didn't work, because removal of everything
before the last :: could as well happen in midst of function parameters list.
The result was certainly not an usable function name.

With this new approach namespaces are no longer explicitly mentioned and this
functionality is simply called zone name shortening.

The user-selectable options were changed to make the shortening always
enabled, disabled, or to apply as needed. Note that the "as needed" approach
will be dynamic, trying to gradually remove more and more from the name, until
it fits in the requested area.

Current implementation is only the first step into making this work. In this
first step the function parameters are reduced to () and the template
arguments are reduced to <>. This alone greatly improves readability of the
zone names.

The option to reduce namespaces to one letter (i.e. std::tr1::hash would
become s:t:hash) will no longer be present, now or in the future.
2022-08-15 14:19:57 +02:00
Bartosz Taudul
c01ad38d46
Start extracting timeline height control logic. 2022-08-15 13:29:45 +02:00
Bartosz Taudul
b0ac78dde1
Don't care about std::regex_error value. 2022-08-14 18:20:40 +02:00
Bartosz Taudul
d12fa11762
Change magic value enums to constexprs. 2022-08-14 18:16:30 +02:00
Bartosz Taudul
77e39700b1
Proper way to detect mouse hover over timeline. 2022-08-14 17:17:51 +02:00
Bartosz Taudul
86c2574848
Fix printing floats in source view. 2022-08-14 14:16:56 +02:00
Bartosz Taudul
e289884395
Display jump target even if there's no source location. 2022-08-14 14:01:01 +02:00
Bartosz Taudul
99a110d5b1
Add asm line hover highlight for unknown locations.
In some cases there are many unknown locations next to each other. Having a
hover highlight helps to distinguish one from another.
2022-08-14 13:40:39 +02:00
Bartosz Taudul
d5a46f97c1
Release MemData. 2022-08-14 11:37:24 +02:00
Bartosz Taudul
7dbfed9aea
Drop access to native window.
The new NFD library is not using this information, and the old one was using
it only on Windows. Oh well.

Removal of this functionality also removes some build-time decisions.
2022-08-12 21:44:24 +02:00
Bartosz Taudul
baea6ddf11
More concise machine code display. 2022-08-09 01:17:24 +02:00
Bartosz Taudul
259672abc6
Use proper type in StringKey initialization. 2022-08-08 18:47:11 +02:00
Bartosz Taudul
4cd36ecdea
No parallel execution on emscripten. 2022-08-08 18:41:06 +02:00
Bartosz Taudul
73be35ea98
Fix unknown source box style. 2022-08-06 23:41:47 +02:00
Bartosz Taudul
4607dca13b
Smaller frame bar color thresholds legend. 2022-08-04 22:32:35 +02:00
Bartosz Taudul
49dc3431ab
Allow setting custom FPS targets on frames overview. 2022-08-04 18:58:13 +02:00
Bartosz Taudul
9b5d0747eb
Add overview of frame target colors. 2022-08-04 18:46:37 +02:00
Bartosz Taudul
740155f5e3
Make frame targets input box smaller. 2022-08-04 18:23:25 +02:00
Daniel
dc74b8adfd Using push/pop in all pragma pack pair to avoid potential padding bugs 2022-08-03 18:39:42 +08:00
Lei Zhang
37bcb9cd4a Fix include path and QueueType::PlotData in TracyEventDebug.cpp
* common/TracyQueue.hpp is now under public/.
* QueueType::PlotData is splitted by cases.
2022-08-02 12:44:13 -04:00
Bartosz Taudul
5a36782c83
Fix inline functions not being attributed to symbols.
Regression was introduced in commit 18112d3c6.
2022-07-31 12:38:24 +02:00
Bartosz Taudul
8b4385498d
Process Vsync frame messages.
Version bump is required due to frame set name pointer hack.
2022-07-30 19:51:29 +02:00
Bartosz Taudul
b19f9e1f4d
Use common functionality to get frame set name. 2022-07-30 19:32:25 +02:00
Bartosz Taudul
92871ba75a
Allow external data insertion into string discovery vectors. 2022-07-30 18:35:50 +02:00
Bartosz Taudul
66a6488980
Add centered image helper. 2022-07-28 00:24:50 +02:00
Bartosz Taudul
0c36bfba5d
Allow creating RGBA textures. 2022-07-28 00:24:49 +02:00
Bartosz Taudul
2d327abd80
Move imgui backends to a subdirectory. 2022-07-28 00:24:43 +02:00
Jiangping Xu
ad7c2cf5d8 fix tracy worker threads conflict 2022-07-27 11:44:19 -07:00
Bartosz Taudul
b782b021c7
Obey custom plot colors. 2022-07-24 14:31:56 +02:00
Bartosz Taudul
b026e09a09
Include custom color in plot configuration. 2022-07-24 13:42:25 +02:00
Bartosz Taudul
1dfe36e962
Implement reading 10 elements at once. 2022-07-24 13:40:06 +02:00
Bartosz Taudul
f354735fc4
Plot fill may be disabled. 2022-07-24 13:28:12 +02:00
Bartosz Taudul
b2a94cbfa2
Set plot fill using configuration message. 2022-07-24 13:10:20 +02:00
Bartosz Taudul
dceb2399ee
Set plot staircase using plot configuration message. 2022-07-24 13:09:45 +02:00
Bartosz Taudul
810f1573ac
Use separate messages for transfer of different plot value types. 2022-07-24 13:00:36 +02:00
Bartosz Taudul
aeedf7de2d
Save/load plot steps parameter. 2022-07-24 12:42:39 +02:00
Bartosz Taudul
16627d7313
Plots may now be drawn as staircases. 2022-07-24 12:37:30 +02:00
Bartosz Taudul
f8115168a6
Fill area under plots. 2022-07-24 12:28:47 +02:00
Bartosz Taudul
b0f484d593
Display plot colors in options menu. 2022-07-24 12:13:28 +02:00
Bartosz Taudul
3393471dcc
Draw memory plot ranges on top of plot. 2022-07-24 12:10:46 +02:00
Bartosz Taudul
a3b6a9c95c
Color plot background. 2022-07-24 01:39:51 +02:00
Bartosz Taudul
755df94f45
Move DarkenColor() to a proper source file. 2022-07-24 01:29:52 +02:00
Bartosz Taudul
27a98a3cc2
Make user plot color depend on its name. 2022-07-24 01:26:20 +02:00
Bartosz Taudul
a98bbc2340
Display plot color in plot tooltip. 2022-07-24 01:12:42 +02:00
Bartosz Taudul
7d1539a0ce
Plot coloring, currently by type. 2022-07-24 01:07:10 +02:00
Bartosz Taudul
5bee753376
Add source preview to lock info window source location. 2022-07-24 00:18:57 +02:00
Bartosz Taudul
0a00925a9b
More compact locks drawing. 2022-07-24 00:13:11 +02:00
Bartosz Taudul
efaf1df8d4
Move LockMap and LockHighlight definitions. 2022-07-23 15:54:48 +02:00
Bartosz Taudul
f7598d2431
Implement direct children search. 2022-07-23 13:31:41 +02:00
Bartosz Taudul
57f03dfe9a
Implement children messages filtering in zone tooltip. 2022-07-23 13:19:30 +02:00
Bartosz Taudul
4d40a9cb53
Track locking thread on server side. 2022-07-18 02:06:19 +02:00
Bartosz Taudul
06c7984a16
Move all client headers and sources to public/ directory. 2022-07-17 15:47:38 +02:00
Bartosz Taudul
b70321fe6a
Add protocol -> version mapping table. 2022-07-13 00:44:02 +02:00
Bartosz Taudul
0624c592e3
Advise about slow send queue. 2022-07-03 15:14:53 +02:00
Bartosz Taudul
edad2d7e35
Monitor send queue size. 2022-07-03 14:52:18 +02:00
Bartosz Taudul
71b3706486
Increase contrast on timeline CPU data CPU labels. 2022-07-03 13:04:09 +02:00
Bartosz Taudul
6748756fa1
Increase contrast of plot min/max labels. 2022-07-03 13:01:41 +02:00
Bartosz Taudul
f8f76a3d04
Text drawing with even more increased contrast. 2022-07-03 13:01:41 +02:00
Bartosz Taudul
c2a9a4e6be
Add missing includes. 2022-07-02 17:13:20 +02:00
Bartosz Taudul
2331ee04d2
Cleanup TracyView includes. 2022-07-02 17:00:08 +02:00
Bartosz Taudul
96dc8c8d1c
No need to include imgui.h in source view header. 2022-07-02 16:33:45 +02:00
Bartosz Taudul
1879d07eae
TracyImGui.hpp does not need assert.h nor algorithm includes. 2022-07-02 16:29:37 +02:00
Bartosz Taudul
4347cc58b1
Forward declare ImFont. 2022-07-02 16:25:47 +02:00
Bartosz Taudul
a46d3992a2
Thread view adjustment is timeline handling. 2022-07-02 15:44:00 +02:00
Bartosz Taudul
d9ce848bb0
Also extract (and rename) timeline mouse handling. 2022-07-02 15:42:01 +02:00
Bartosz Taudul
889e643d2a
Extract ranges UI from View. 2022-07-02 15:40:51 +02:00
Bartosz Taudul
9fb618c12d
Rename DrawZone* -> DrawTimeline*. 2022-07-02 15:38:10 +02:00
Bartosz Taudul
e3b11821c3
Extract zone timeline rendering from View. 2022-07-02 15:36:36 +02:00
Bartosz Taudul
7b04d8c0b3
Extract frames timeline UI from View. 2022-07-02 15:31:03 +02:00
Bartosz Taudul
0d41a6c48b
Move DrawHistogramMinMaxLabel() to TracyImGui.cpp. 2022-07-02 15:27:08 +02:00
Bartosz Taudul
5ed7d71927
DrawAllocList() is memory. 2022-07-02 15:24:59 +02:00
Bartosz Taudul
c2728fde04
Extract locks UI from View. 2022-07-02 15:24:09 +02:00
Bartosz Taudul
10205f90b4
Also extract timeline CPU data. 2022-07-02 15:20:47 +02:00
Bartosz Taudul
c6b6cb47da
Also move timeline samples. 2022-07-02 15:16:52 +02:00
Bartosz Taudul
e005d4ff36
Extract messages UI from View. 2022-07-02 15:15:24 +02:00
Bartosz Taudul
fe8269fa49
Mark syntax colors constexpr. 2022-07-02 15:10:01 +02:00
Bartosz Taudul
87d639c851
Move DrawStripedRect() out of header. 2022-07-02 15:08:52 +02:00
Bartosz Taudul
c427214f46
Move DrawHelpMarker to TracyImGui.hpp. 2022-07-02 15:07:40 +02:00
Bartosz Taudul
358148920a
Extract annotations UI from View. 2022-07-02 15:04:54 +02:00
Bartosz Taudul
5b451c3557
Extract samples UI from View. 2022-07-02 15:04:53 +02:00
Bartosz Taudul
06a840c19a
Wait stacks are context switches. 2022-07-02 15:01:23 +02:00
Bartosz Taudul
585587fa36
Extract frame tree functionality from View. 2022-07-02 15:01:22 +02:00
Bartosz Taudul
8147eadaf0
Extract connection state and notification area. 2022-07-02 14:47:13 +02:00
Bartosz Taudul
de5c4c678a
Extract memory UI from View. 2022-07-02 14:42:06 +02:00
Bartosz Taudul
f3fe8b27e8
Extract plot drawing from View. 2022-07-02 14:36:54 +02:00
Bartosz Taudul
e98b24a9ed
Extract frame overview UI from View. 2022-07-02 14:19:16 +02:00
Bartosz Taudul
b58a206d9d
More utility extract. 2022-07-02 14:14:27 +02:00
Bartosz Taudul
701cc16cbf
Zone tooltip is zone info. 2022-07-02 14:10:36 +02:00
Bartosz Taudul
003621802f
Split callstack UI from View. 2022-07-02 14:09:15 +02:00
Bartosz Taudul
5a3305095e
Extract CPU data UI from View. 2022-07-02 14:04:45 +02:00
Bartosz Taudul
6f99c8d055
Extract trace info UI from View. 2022-07-02 14:03:01 +02:00
Bartosz Taudul
ee18e07d6f
Cosmetics. 2022-07-02 13:59:54 +02:00
Bartosz Taudul
1aeb1d9a2d
More find zones extraction. 2022-07-02 13:58:37 +02:00
Bartosz Taudul
a6cee9e7f7
Extract statistics UI from View. 2022-07-02 13:57:56 +02:00
Bartosz Taudul
749bab7ab0
Extract playback UI from View. 2022-07-02 13:55:45 +02:00
Bartosz Taudul
44e5218301
Extract more utility functions. 2022-07-02 13:51:50 +02:00
Bartosz Taudul
35f55c781b
Extract compare UI from View. 2022-07-02 13:48:54 +02:00
Bartosz Taudul
7ed1c4ffb1
More navigation extraction. 2022-07-02 13:43:46 +02:00
Bartosz Taudul
10dbefefab
Extract context switch UI from View. 2022-07-02 13:43:09 +02:00
Bartosz Taudul
c9f77ee5fa
Move zone info UI out of View. 2022-07-02 13:37:04 +02:00
Bartosz Taudul
b602d61944
Extract options UI from View. 2022-07-02 13:23:52 +02:00
Bartosz Taudul
d19b337573
Split View navigation functions. 2022-07-02 13:16:06 +02:00
Bartosz Taudul
5b8c8c5309
Extract common zone algorithms from View. 2022-07-02 13:12:30 +02:00
Bartosz Taudul
2473760c04
Extract Find Zone UI to a separate file. 2022-07-02 13:12:29 +02:00
Bartosz Taudul
dd6933fe32
Fix striped rect early exit test. 2022-06-29 01:39:06 +02:00
Bartosz Taudul
e6c54600f1
Fix typo. 2022-06-29 01:32:02 +02:00
Bartosz Taudul
a8511d3576
Release 0.8.2. 2022-06-28 17:57:46 +02:00
Bartosz Taudul
68de009e0e
Extract common reference time processing to a function. 2022-06-22 01:56:31 +02:00
Bartosz Taudul
183cbf12a0
Subtract base time directly in TscTime(). 2022-06-22 01:56:31 +02:00
Bartosz Taudul
ac1cd62847
Remove unused intrinsic includes. 2022-06-22 00:49:51 +02:00
Bartosz Taudul
1468522126
Replace CPU topology tree with CPU schematics. 2022-06-21 00:45:42 +02:00
Bartosz Taudul
2f6399a4b2
Display true values in plot ranges, not animation values. 2022-06-19 00:39:14 +02:00
Bartosz Taudul
331f18345f
Add braces around initialization of subobjects. 2022-06-16 15:29:39 +02:00
Ben Vanik
aa154792c7 Hiding the "Incomplete context switch data" warning on fibers. 2022-06-14 08:01:19 -07:00
thedmd
9ed9e18bc8 Add ability to filter callstacks in memory tab by inactive allocations.
Filtering by inactive allocations helps to pin point wasteful allocations
in an app.
2022-06-06 06:45:35 +02:00
Pavel Šmejkal
2c63d9b320 Fix crash when compare trace not selected 2022-05-20 09:26:50 +02:00
Bartosz Taudul
bdd4d28770
Extend max asm line width, if needed. 2022-05-09 00:44:45 +02:00
Bartosz Taudul
76f3207bc4
Restore the intended spacing for extra asm comments. 2022-05-09 00:37:59 +02:00
Bartosz Taudul
a354eb4ab8
Merge pull request #381 from bjacob/fix-layout-379
Fix layout bug (https://github.com/wolfpld/tracy/issues/379)
2022-05-04 21:48:34 +02:00
Benoit Jacob
2c4fe22f50 Fix layout bug (https://github.com/wolfpld/tracy/issues/379)
I had introduced this bug recently in https://github.com/wolfpld/tracy/pull/369

Fixes #379
2022-05-04 16:26:42 +00:00
Bartosz Taudul
8bf21bfb81
Update microarchitecture CPU ids. 2022-05-03 22:15:12 +02:00
Bartosz Taudul
45a4dc154a
Update microarchitectures list. 2022-05-03 22:01:50 +02:00
Bartosz Taudul
60c9b50f81
Update microarchitecture data. 2022-05-03 21:58:23 +02:00
Bartosz Taudul
579339dd24
Retrieve correct symbol address. 2022-05-02 01:12:35 +02:00
Bartosz Taudul
85e11c2d97
Merge two conditions. 2022-05-02 01:12:35 +02:00
Bartosz Taudul
caf092d4b4
Symbol map is alway available. 2022-05-02 01:12:34 +02:00
Bartosz Taudul
aa2bbfe5f9
Transfer executable image name in source file queries. 2022-05-01 14:30:18 +02:00
Bartosz Taudul
fd55c1e975
Pass symbol image name to CacheSource(). 2022-05-01 14:25:07 +02:00
Bartosz Taudul
33a6853423
Use big font to print save path. 2022-05-01 13:04:16 +02:00
Bartosz Taudul
4c0dd704d8
There are situations in which inSym can be nullptr.
Don't know exactly how to reproduce this. Nevertheless, the capture was
produced in an usual way. This may be dependant on the exact client
configuration.
2022-04-29 19:13:34 +02:00
Bartosz Taudul
fc37f3c04c
Remove leftovers. 2022-04-29 19:13:26 +02:00
Bartosz Taudul
1b7e8c3520
Use ImGui keycodes. 2022-04-27 01:16:46 +02:00
Bartosz Taudul
95cf143336
Remove unused variables. 2022-04-26 22:01:09 +02:00
Bartosz Taudul
c9240c100d
Fix initialization order. 2022-04-26 22:01:09 +02:00
Bartosz Taudul
066c266df9
Add missing includes. 2022-04-26 22:01:09 +02:00
Bartosz Taudul
1f3ebc9f41
Use item spacing instead of ExtraLineHeight. 2022-04-26 21:11:38 +02:00
Bartosz Taudul
d56741cbeb
Stop pretending to not require additional fonts. 2022-04-25 23:29:44 +02:00
Bartosz Taudul
e0897e8e40
Draw wait reason/state explanation with small font. 2022-04-25 03:05:12 +02:00
Bartosz Taudul
37a4478127
Fix horizontal scroll of main window.
Horizontal mouse scroll (or touchpad action) should map to navigation within
the trace. While this was true in most cases, there was an edge case, when the
top buttons row couldn't be entirely displayed, e.g. due to the window being
resized too small, or due to set zoom level. This change disables scroll
action on the main window, which fixes the issue.
2022-04-22 22:38:05 +02:00
Bartosz Taudul
6f126ce0f5
Stop playback when frame is changed with mouse scroll. 2022-04-22 22:02:04 +02:00
Bartosz Taudul
9757fcc0ef
Mouse scroll over playback image also changes frame. 2022-04-22 22:02:03 +02:00
Bartosz Taudul
80f6a93da7
Release 0.8.1. 2022-04-21 19:28:07 +02:00
bjacob
e6a29862ec
Fix column widths for hw counts and source location (#369)
Fix column widths for hw counts and source location
2022-04-21 18:30:55 +02:00
Bartosz Taudul
a852cf390a
Adapt code to new NFD. 2022-04-20 19:40:27 +02:00
Bartosz Taudul
1e762c246a
Don't show callstack column in messages, if no callstacks. 2022-04-18 15:06:23 +02:00
Bartosz Taudul
18112d3c66
Drop support for pre-0.7 traces. 2022-04-18 13:59:48 +02:00
Bartosz Taudul
95187c94e9
Bump protocol to simplify IsQueryPrio(). 2022-04-18 13:39:49 +02:00
Bartosz Taudul
5eb724f34c
Add touchpad support for frames overview. 2022-04-13 01:37:56 +02:00
Bartosz Taudul
1fd39e90b9
Implement navigation from jump arrow context menu. 2022-04-06 23:41:46 +02:00
Bartosz Taudul
0e56397c5a
Don't show empty menu when source is not available. 2022-04-06 23:34:30 +02:00
Bartosz Taudul
7893a83633
Display jump arrow context (src and target source code). 2022-04-06 02:01:29 +02:00
Bartosz Taudul
db3736983a
Always open jump arrow context menu. 2022-04-06 02:01:07 +02:00
Bartosz Taudul
4555910536
Extract source fragment printing functionality. 2022-04-06 01:54:14 +02:00
Bartosz Taudul
1b3464a386
Fix wrong source color box. 2022-04-06 01:42:13 +02:00
Bartosz Taudul
e34d79c0c7
Display target location for local jumps. 2022-04-06 01:23:35 +02:00
Bartosz Taudul
2fc64fceba
Select appropriate branch cost, if no retirement data. 2022-04-01 19:09:56 +02:00
Bartosz Taudul
88a153504d
Show branch impact if no retirement data available.
Some CPUs are only able to report branch miss data, but not branch retirement
data.
2022-04-01 19:06:15 +02:00
Bartosz Taudul
d8ec98042a
Add branch retirement state accessor. 2022-04-01 18:48:11 +02:00
Bartosz Taudul
381f706796
Remember if there is branch retirement data. 2022-04-01 18:46:46 +02:00
Bartosz Taudul
2b47c2a64e
Send priority queries before other queued up queries.
This ensures that simple to handle yet important queries are answered in a
timely manner. Previously an onslaught of slow symbol-related queries could
block e.g. zone name resolving for a couple of minutes.
2022-03-31 00:06:49 +02:00
Bartosz Taudul
5ae9e791a5
Make easy check first. 2022-03-31 00:06:49 +02:00
Bartosz Taudul
d691cb2a06
Define a list of priority queries. 2022-03-31 00:02:02 +02:00
Bartosz Taudul
a335efe9e6
Implement scanning for source files missing in cache. 2022-03-30 16:07:15 +02:00
Bartosz Taudul
e086488928
Extract source file caching functionality. 2022-03-30 16:06:35 +02:00
Bartosz Taudul
9ba7171c3d
Release 0.8.0. 2022-03-28 21:20:44 +02:00
Bartosz Taudul
f1fea0331a
Merge pull request #344 from thedmd/callstack_table-clipboard_full_location
In callstack table view, copy full location with line to clipboard
2022-03-19 15:37:59 +01:00
thedmd
dc79ae6fea In callstack table view, copy location with line to clipboard instead just location. 2022-03-19 09:48:48 +01:00
Bartosz Taudul
fdee87b0ae
Update robin_hood to 3.11.5. 2022-03-18 02:01:46 +01:00
Bartosz Taudul
7d14aac137
Set focus on input field when find zone window appears. 2022-03-18 01:47:58 +01:00
Bartosz Taudul
dc874a732e
Merge pull request #339 from voysys/fix-server-assertion-crash
Ignore uninitialized GPU contexts when rendering GPU events
2022-03-17 18:54:34 +01:00
Bartosz Taudul
8483ef4310
Indicate currently selected annotation. 2022-03-15 17:36:01 +01:00
Bartosz Taudul
4be2aa0682
Allow adding full-view annotations. 2022-03-15 17:26:12 +01:00
Bartosz Taudul
ba4b261ae4
Make the annotations list always accessible. 2022-03-15 17:25:52 +01:00
Bartosz Taudul
f17a579753
Move adding annotations to a separate function. 2022-03-15 17:25:28 +01:00
Bartosz Taudul
42688c9bf3
Add id to annotation description input box. 2022-03-15 17:24:53 +01:00
Thomas Bernard
79e146c957 Avoid accessing address 0 when reporting a failure. 2022-03-10 14:28:31 +01:00
Niclas Olmenius
2c79194e7d Ignore uninitialized GPU contexts when rendering GPU events
This fixes an assertion crash when viewing GPU zones when no zones have been
recorded on a GPU context if the client is compiled with TRACY_ON_DEMAND
2022-03-09 19:20:56 +01:00
Bartosz Taudul
efe22461cc
Implement going to parent zone in find zone window. 2022-03-03 15:39:07 +01:00
Bartosz Taudul
361782f3fd
Fix edge case triggered by mouse being out-of-window. 2022-01-29 15:53:50 +01:00
Bartosz Taudul
df96293477
Create GPU source location zones stats entry, if not present.
In case of CPU statistics data, this entry is created during creation of a
source location. This won't be done for GPU zones, as it would needlessly
expand the number of held entries. This is assuming the number of GPU zones
is significantly less than the number of CPU zones.
2022-01-29 15:45:25 +01:00
Bartosz Taudul
f4043d9bb8
Display GPU zone statistics. 2022-01-29 15:35:25 +01:00
Bartosz Taudul
45c7edcc96
GPU source locations zones data accessor. 2022-01-29 15:22:49 +01:00
Bartosz Taudul
6d55f79109
Save source location data counts. 2022-01-29 15:14:43 +01:00
Bartosz Taudul
2ca4b0058a
Add AreGpuSourceLocationZonesReady() query. 2022-01-29 00:51:43 +01:00
Bartosz Taudul
ba87929074
Perform GPU statistics reconstruction.
Note: Zone counts are currently being calculated, but they are not being
saved. Proper usage of this data (as is performed in the CPU counterpart)
would remove the possibility of insertion of new entries into the map in
ReconstructZoneStatistics().
2022-01-29 00:48:01 +01:00
Bartosz Taudul
7870ca9da6
Add GPU mutable children accessor. 2022-01-29 00:40:11 +01:00
Bartosz Taudul
7a1b9efc2f
Add GPU statistics radio button. 2022-01-29 00:33:53 +01:00
Bartosz Taudul
28d029f820
Collection of GPU statistics. 2022-01-29 00:15:33 +01:00
Bartosz Taudul
f9279afaec
GPU zone counting. 2022-01-29 00:15:32 +01:00
Bartosz Taudul
f1095bba12
GPU statistics data accessors. 2022-01-29 00:15:32 +01:00
Bartosz Taudul
8533bdf5f4
Add data structures for GPU statistics. 2022-01-29 00:15:31 +01:00
Bartosz Taudul
fcced3c76a
Don't call SameLine() twice in a row. 2022-01-29 00:15:31 +01:00
Bartosz Taudul
3ee91b909f
Unify comparison for accumulation mode combo box. 2022-01-29 00:15:28 +01:00
Bartosz Taudul
c6da04a18b
Use TooltipIfHovered() where appropriate. 2022-01-01 16:57:48 +01:00
Bartosz Taudul
d5f12744c4
Display unique node cost in trees. 2022-01-01 16:27:16 +01:00
Bartosz Taudul
6b9ccb3077
Tooltip shortcut function. 2022-01-01 16:10:49 +01:00
Bartosz Taudul
6257ec6b7f
Make the callstack parents trees scrollable. 2021-12-31 15:08:46 +01:00
Bartosz Taudul
4b167fa3df
Allow time display in callstack parents trees. 2021-12-31 15:06:26 +01:00
Bartosz Taudul
563daed10f
Add bottom/top tree to callstack parents. 2021-12-31 15:01:06 +01:00
Bartosz Taudul
5d439c0165
Round jump separation. 2021-12-30 16:35:18 +01:00
Bartosz Taudul
adb168a5ea
Fix offset. 2021-12-30 03:19:03 +01:00
Bartosz Taudul
36068d1f2b
Condense hw samples. 2021-12-29 14:07:37 +01:00
Bartosz Taudul
0d5fbff07f
Adjust jump arrow separation to DPI scale. 2021-12-29 13:44:58 +01:00
Bartosz Taudul
ae9b9318e8
Fix calculation of jump arrows offset. 2021-12-29 13:41:55 +01:00
Bartosz Taudul
81de0a3a75
Display source location of symbol functions. 2021-12-24 03:19:13 +01:00
Bartosz Taudul
dc2ac4e4b3
Display child calls source locations. 2021-12-24 03:11:46 +01:00
Bartosz Taudul
acd8a32672
Fix referencing unknown symbol. 2021-12-24 02:36:28 +01:00
Bartosz Taudul
c4c43ef7fe
Take rounding into consideration. 2021-12-23 16:02:07 +01:00
Bartosz Taudul
b83cda575a
Add Rembrandt cpuid. 2021-12-23 13:34:24 +01:00
Bartosz Taudul
29d7115815
Add ADL cpuid. 2021-12-23 13:32:17 +01:00
Bartosz Taudul
12e0cb2036
Reorder uarch list. Push old ones to the bottom. 2021-12-23 13:28:06 +01:00
Bartosz Taudul
4642afdb9d
Add Alder Lake to uarch selection list. 2021-12-23 13:24:26 +01:00
Bartosz Taudul
1ecd28a31f
Add Alder Lake uops info. 2021-12-23 13:17:50 +01:00
Bartosz Taudul
6b59ccfe4d
GetFontSize() -> GetTextLineHeight(). 2021-12-22 17:57:57 +01:00
Bartosz Taudul
9fae8b7e42
Don't use obsolete functions. 2021-12-22 17:08:27 +01:00
Bartosz Taudul
db64a5fa7e
Explicitly save context switch callstack samples. 2021-12-21 15:24:11 +01:00
Bartosz Taudul
67c2ffcb17
Look for context switch stacks on both ends of a switch. 2021-12-21 14:36:47 +01:00
Bartosz Taudul
c5654c333a
Process explicit context switch callstack samples. 2021-12-21 14:18:32 +01:00
Bartosz Taudul
3f1c540b3a
Further split ProcessCallstackSampleImpl(). 2021-12-21 14:18:14 +01:00
Bartosz Taudul
d88bf2c7a8
Separate message type for context switch callstack samples. 2021-12-21 14:05:07 +01:00
Bartosz Taudul
9b624049a5
Immediately disconnect connection on disconnect request.
The disconnect handling logic is broken on the client, after the symbol
resolution was moved to a separate thread. Use workaround until a proper fix
is available.
2021-12-11 13:15:50 +01:00
Bartosz Taudul
d7dc2d6127
Extend process state descriptions, add P (parked). 2021-12-05 01:32:33 +01:00
Bartosz Taudul
bbbae35925
Only identify samples when IdentifySamples is set. 2021-12-04 15:16:17 +01:00
Bartosz Taudul
c98680ad0b
Add support for sample data without time. 2021-12-02 02:06:05 +01:00
Bartosz Taudul
6579399bfd
Update xxHash to 0.8.1. 2021-12-01 21:52:31 +01:00
Bartosz Taudul
1a0cf3ff46
Update robin_hood to 3.11.3. 2021-12-01 21:44:56 +01:00
Bartosz Taudul
899b466ba4
There is more than one wait stack. 2021-11-29 19:34:43 +01:00
Bartosz Taudul
5c379603b5
Move onlyActive check out of the loops. 2021-11-29 19:23:31 +01:00
Bartosz Taudul
04f045b22b
Replace "restrict time" with time range limits in memory. 2021-11-29 19:20:56 +01:00
Bartosz Taudul
de11604910
Add memory time range limit UI. 2021-11-29 18:17:19 +01:00
Bartosz Taudul
f3ee2235f6
Enable sample parents selection for self-less symbols. 2021-11-27 18:12:06 +01:00
Bartosz Taudul
05f9c74170
Don't include inlines when separate inlines are enabled. 2021-11-27 18:05:05 +01:00
Bartosz Taudul
582fcd5538
Fix sample parents for the whole symbol.
Previously when whole symbol was selected, it wasn't. All the inlines were
ignored and the data was displayed only for the base (self) symbol.
2021-11-27 17:55:18 +01:00
Bartosz Taudul
d8a611e952
Also calculate sample parents without inlines. 2021-11-27 17:47:09 +01:00
Bartosz Taudul
687d4defc0
Cosmetics. 2021-11-27 17:46:43 +01:00
Bartosz Taudul
52eeddd63a
Fix display of entry call stacks when inlines are present. 2021-11-27 16:41:27 +01:00
Bartosz Taudul
a84fd26ecb
Change toggle button to faux drop down. 2021-11-27 15:40:23 +01:00
Bartosz Taudul
355a179678
Merge callstack samples with the same timestamp. 2021-11-27 15:29:33 +01:00
Bartosz Taudul
4f735e1ae2
Extract callstack merging. 2021-11-27 15:06:58 +01:00
Bartosz Taudul
58d5fb2ff4
Fix calculation of child sample counts. 2021-11-27 14:49:22 +01:00
Bartosz Taudul
702c87dad0
Display list of child calls. 2021-11-27 14:43:31 +01:00
Bartosz Taudul
6a7b4e6066
Add calculation of child stats to source view. 2021-11-27 14:42:23 +01:00
Bartosz Taudul
85f755f3f5
Use proper base symbol address. 2021-11-27 14:30:46 +01:00
Bartosz Taudul
a02575322f
Collect child sample addresses. 2021-11-27 02:03:59 +01:00
Bartosz Taudul
4bde9022e1
Properly acknowledge unavailable symbol code. 2021-11-25 22:44:56 +01:00
Bartosz Taudul
abdd6020ba
No need to remember addresses of symbol code queries. 2021-11-25 22:35:43 +01:00
Bartosz Taudul
b4da047355
Don't filter out kernel symbols from code transfer. 2021-11-25 22:28:05 +01:00
Bartosz Taudul
ac331d0343
Fix one frame lag of out-of-trace dimming. 2021-11-22 01:19:37 +01:00
Bartosz Taudul
6c08943e66
Don't perform any work in collapsed windows. 2021-11-22 01:15:22 +01:00
Bartosz Taudul
b3562c99fb
Display jump target/source function names. 2021-11-20 14:50:26 +01:00
Bartosz Taudul
7b2ed41179
Push small font to SourceView. 2021-11-20 14:47:13 +01:00
Bartosz Taudul
f0d524ad1f
Don't pass font to SourceView ctor. 2021-11-20 14:44:22 +01:00
Bartosz Taudul
3e78c826cf
Adapt minimum samples distance to DPI scaling. 2021-11-20 13:51:42 +01:00
Bartosz Taudul
8d65b190d6
Handle frame image dictionary creation failures. 2021-11-20 03:30:28 +01:00
Bartosz Taudul
b4dab753e6
List jump source locations. 2021-11-20 02:30:49 +01:00
Bartosz Taudul
fbe85ff8d3
Adapt hotness indicators to DPI scale. 2021-11-20 02:19:50 +01:00
Bartosz Taudul
0f215c7393
Keep text shadow offset constant.
ImGui aligns the text to be pixel perfect. Fractional offset of shadow made it
move not in sync with the text proper.
2021-11-20 01:55:47 +01:00
Bartosz Taudul
261721b8a3
Don't provide number of segments to generate in a circle. 2021-11-20 01:46:34 +01:00
Bartosz Taudul
dd6a973fbe
Adapt context switch line size to DPI scale. 2021-11-20 01:46:14 +01:00
Bartosz Taudul
a075323a80
Draw smaller "inline" index in callstacks. 2021-11-20 01:36:05 +01:00
Bartosz Taudul
b8766ad5d7
Apply DPI scale to text shadow. 2021-11-20 01:24:37 +01:00
Bartosz Taudul
be9cbfc3e2
Move GetScale() to TracyImGui.hpp. 2021-11-20 01:21:06 +01:00
Bartosz Taudul
d0d0aca758
Use font helpers. 2021-11-19 21:09:13 +01:00
Bartosz Taudul
e0a6c51a2f
Add font set/unset helpers. 2021-11-19 21:06:07 +01:00
Bartosz Taudul
dd8083e0ee
Prevent out-of-bounds access.
This fixes the issue when assembly view is scrolled to the bottom of the
screen and display scale is reduced by the user. In such case clipper will
report DisplayStart to be at the end element, which would cause out-of-bounds
access to the m_asm array.

Clipper self-fixes this in the next frame, so this workaround is enough.
2021-11-19 20:58:09 +01:00
Bartosz Taudul
c23abca979
Round jump arrows offsets. 2021-11-19 20:56:09 +01:00
Bartosz Taudul
fdadb9cb63
Update source view font. 2021-11-18 23:03:17 +01:00
Bartosz Taudul
f3ea9e1314
Add run-time UI scaling menu. 2021-11-18 22:48:32 +01:00
Bartosz Taudul
902de497dc
Allow forceful insertion into main thread queue.
This is useful to run some tasks outside of the main render job.
2021-11-18 22:46:59 +01:00
Bartosz Taudul
89ca010146
Add scale setup callback infrastructure. 2021-11-18 22:22:11 +01:00
Bartosz Taudul
01a0363c29
Adapt item width to DPI scale. 2021-11-18 20:33:44 +01:00
Bartosz Taudul
0b869bcb13
Adapt network graph to DPI scale. 2021-11-18 20:12:41 +01:00
Bartosz Taudul
1dff4329e4
Adapt window sizes to DPI scaling. 2021-11-18 19:20:45 +01:00
Bartosz Taudul
4d397aeb67
Add helper for getting DPI scaling. 2021-11-18 19:04:21 +01:00
Bartosz Taudul
1002e949d6
Enable playback frame change with mouse wheel. 2021-11-15 02:34:13 +01:00
Bartosz Taudul
176bc279f1
Don't copy short_ptr. 2021-11-15 02:18:19 +01:00
Bartosz Taudul
641338cb3c
Remove postponed samples when they are handled. 2021-11-14 23:55:44 +01:00
Bartosz Taudul
bb30333947
Implement erase() in SortedVector.
Requires vector to be sorted, in order to not bother with recalculating
sortedEnd value.
2021-11-14 23:54:39 +01:00
Bartosz Taudul
710a488af0
Handle postponed samples with SortedVector. 2021-11-14 23:48:50 +01:00
Bartosz Taudul
f2380590f9
Limit server query space to 8K entries.
In the default configuration this limit is unlikely to be hit. On Windows the
send buffer is 64 KB, which results in ~5K entries. On Linux the buffer is a
bit higher and the number of entries is lower than 7K.
2021-11-14 18:14:52 +01:00
Bartosz Taudul
0e05d70691
Remove obsolete check. 2021-11-14 17:09:37 +01:00
Bartosz Taudul
ffa8bf4d75
Use table instead of map to track reentrant calls. 2021-11-14 16:42:11 +01:00
Bartosz Taudul
cb004e9cc0
Sort source location zones only when needed. 2021-11-14 16:05:55 +01:00
Bartosz Taudul
befeffb61e
Add ensure_sorted() method for SortedVector. 2021-11-14 15:57:20 +01:00
Bartosz Taudul
404168ec69
Check whether symbols are ready, not source locations. 2021-11-14 15:51:29 +01:00
Bartosz Taudul
e0872ce61b
Cosmetics. 2021-11-14 15:51:27 +01:00
Bartosz Taudul
864d7e4e47
Sort symbols list only when actually needed. 2021-11-14 13:05:05 +01:00
Bartosz Taudul
b978a7c652
Sort plot data only when needed (i.e. to draw). 2021-11-14 13:01:27 +01:00
Bartosz Taudul
50e532ebc0
Display unknown locations dimmed in callstack trees. 2021-11-14 02:27:43 +01:00
Bartosz Taudul
19f87502d3
Keep wait stacks header on top. 2021-11-14 02:17:02 +01:00
Bartosz Taudul
2040ef945f
Color kernel frames in callstack trees. 2021-11-14 02:06:22 +01:00
Bartosz Taudul
014f084393
UI cosmetics. 2021-11-13 22:27:54 +01:00
Bartosz Taudul
41c5d93a11
Use big icons in the rest of dialogs. 2021-11-13 22:23:18 +01:00
Bartosz Taudul
be264896f0
Use big icons in bad version dialogs. 2021-11-13 22:20:00 +01:00
Bartosz Taudul
d4a5df0244
Use big icon in waiting for connection dialog. 2021-11-13 22:14:47 +01:00
Bartosz Taudul
1d7ab70199
Non-memory tree callstacks are not needed. 2021-11-13 22:09:16 +01:00
Bartosz Taudul
b4726833e9
Cosmetics. 2021-11-13 22:09:10 +01:00
Bartosz Taudul
633cd1262c
Draw callstack tree for wait stacks. 2021-11-13 22:06:04 +01:00
Bartosz Taudul
5f9a0ab61f
Wait stacks mode selection. 2021-11-13 22:06:04 +01:00
Bartosz Taudul
4f6e9bbb65
Generic callstack tree builder.
Previously this was exclusive for memory callstacks.
2021-11-13 22:06:04 +01:00
Bartosz Taudul
c6be16dcd2
Rename PathData -> MemPathData. 2021-11-13 21:28:56 +01:00
Bartosz Taudul
a2547ccf1d
Rename CallstackFrameTree -> MemCallstackFrameTree. 2021-11-13 21:26:28 +01:00
Bartosz Taudul
98edee9b07
Change memory call stack tree icons. 2021-11-13 20:42:52 +01:00
Bartosz Taudul
667112c71f
Some old traces might have invalid image names. 2021-11-13 20:34:54 +01:00
Bartosz Taudul
0c7c3ae641
Time range limits for wait stacks. 2021-11-13 18:43:55 +01:00
Bartosz Taudul
94d4272c9c
Allow limiting wait stacks to certain threads. 2021-11-13 18:20:06 +01:00
Bartosz Taudul
265a39e7c9
Don't select out-of-context asm lines. 2021-11-13 17:35:02 +01:00
Bartosz Taudul
50627646c1
Don't highlight asm lines out of context on hover. 2021-11-13 16:36:46 +01:00
Bartosz Taudul
25316ddada
Display notification icon when context is limited. 2021-11-13 16:34:51 +01:00
Bartosz Taudul
cc425c4a2d
Separate function for checking asm function context. 2021-11-13 16:34:50 +01:00
Bartosz Taudul
9ba5180b04
Add wait stacks window. 2021-11-13 15:58:25 +01:00
Bartosz Taudul
45df37e3a9
Separate callstack table drawing functionality. 2021-11-13 15:56:57 +01:00
Bartosz Taudul
c1f6d6c9ce
Cosmetics. 2021-11-13 15:39:37 +01:00
Bartosz Taudul
14b469f219
Direct selection of find zone callstack. 2021-11-13 15:31:48 +01:00
Bartosz Taudul
151eadc69e
Direct selection of sample entry call stack index. 2021-11-13 15:15:49 +01:00
Bartosz Taudul
601f0a17df
Remove "Go to frame" button. 2021-11-13 15:13:35 +01:00
Bartosz Taudul
81c66ad126
Fix samples order on save, not load.
Sorting samples during load was a major mistake, as three different background
processing threads were concurrently accessing the samples table, and it was
being sorted in one of them!
2021-11-13 03:25:47 +01:00
Bartosz Taudul
0ab73e2aa7
Detect context switch samples during reconstruction. 2021-11-13 03:15:20 +01:00
Bartosz Taudul
484ed84252
Display context switch samples count. 2021-11-13 02:52:08 +01:00
Bartosz Taudul
d8d6423266
Context switch samples counting. 2021-11-13 02:47:39 +01:00
Bartosz Taudul
8ef212c26e
Determine if postponed callstacks are for context switches.
Samples are processed only when new context switch data has been received.
2021-11-13 02:44:54 +01:00
Bartosz Taudul
745b795d50
Detect context switch callstack samples.
Context switch callstack samples are not included in the sampling data
statistics (as these don't represent random sampling), but are rather put into
a separate dedicated data structure.

For this to work, a complete context switch data has to be available for the
callstack timestamp. There is no guarantee it will be present at the time it
is needed, so a second structure is added to allow postponing qualification of
callstacks.
2021-11-13 02:40:32 +01:00
Bartosz Taudul
5b799e0e45
Monitor when new context switch data is received. 2021-11-13 02:38:33 +01:00
Bartosz Taudul
00834ed32b
No need to pass time and callstack. 2021-11-13 02:26:11 +01:00
Bartosz Taudul
06c1bb4e59
Open callstack windows when clicking on context switch. 2021-11-13 01:34:49 +01:00
Bartosz Taudul
4b74777fcf
Display image name in callstack tooltips. 2021-11-13 01:31:28 +01:00
Bartosz Taudul
1200409a44
Display context switch wait call stack. 2021-11-13 01:21:47 +01:00
Bartosz Taudul
ce8e42f00b
Separate drawing callstack tooltip from drawing its contents. 2021-11-13 01:08:36 +01:00
Bartosz Taudul
f925da5e01
Handle fiber enter -> enter case (without leave in between). 2021-11-06 21:14:37 +01:00
Bartosz Taudul
d33de972f0
Properly show fiber context switch data. 2021-11-06 21:06:08 +01:00
Bartosz Taudul
40cd5435df
Fix context switch reconstruction condition. 2021-11-06 20:49:15 +01:00
Bartosz Taudul
69e5cf796d
Construct faux context switch data from fiber events. 2021-11-06 20:38:16 +01:00
Bartosz Taudul
efeed326bf
Context switch data may exists without CPU data. 2021-11-06 20:22:08 +01:00
Bartosz Taudul
904a444ea5
Label fiber threads across the UI. 2021-11-06 19:27:36 +01:00
Bartosz Taudul
0075050679
Allow checking if thread is a fiber. 2021-11-06 19:02:02 +01:00
Bartosz Taudul
3ede2a1345
Explicit tracking of fiber state in ThreadData.
This replaces the use of hard-to-track global state with well-defined accessor
functionality.
2021-11-06 18:55:29 +01:00
Bartosz Taudul
373a6fc19e
Add event debug routine. 2021-11-04 22:30:16 +01:00
Bartosz Taudul
4c774130ee
Allow direct switching from one fiber to another. 2021-11-04 17:51:32 +01:00
Bartosz Taudul
fceb065329
Fiber name transport. 2021-11-03 18:57:30 +01:00
Bartosz Taudul
211b202d8e
Process fiber entry and leave events. 2021-11-02 01:53:10 +01:00
Bartosz Taudul
b4e4c05088
Thread context data may be invalidated due to fibers. 2021-11-02 01:52:41 +01:00
Bartosz Taudul
d522af99b9
Threads may be mapped to fibers. 2021-11-02 01:51:54 +01:00
Bartosz Taudul
0718330016
Add fiber labels to places with thread information. 2021-11-02 01:48:28 +01:00
Bartosz Taudul
e5c44afdcb
Distinguish fiber threads with green color. 2021-11-02 01:48:07 +01:00
Bartosz Taudul
bb72bf10e9
Add fiber failures. 2021-11-02 01:47:31 +01:00
Bartosz Taudul
93b6d88c4c
Save/load fiber thread flag. 2021-11-02 01:46:29 +01:00
Bartosz Taudul
8f44f1c68b
Store fiber state is ThreadData. 2021-11-02 01:45:01 +01:00
Bartosz Taudul
8f6a911f1e
Save/load sum of values in plots. 2021-10-17 13:14:44 +02:00
Bartosz Taudul
0b190b1a69
Calculate sum of values in reconstructed memory plot. 2021-10-17 13:14:23 +02:00
Bartosz Taudul
04db76d5fd
Calculate plot values sum during data import. 2021-10-17 13:07:37 +02:00
Bartosz Taudul
facd2be33b
Display average plot value. 2021-10-17 13:05:10 +02:00
Bartosz Taudul
0bd1364c2f
Calculate plot values sum. 2021-10-17 13:04:56 +02:00
Bartosz Taudul
a1511a39bd
Delta-encode code information pointers. 2021-10-16 16:29:06 +02:00
Bartosz Taudul
dfb1ce64df
Sample data inconsistency warning. 2021-10-16 16:15:19 +02:00
Bartosz Taudul
bcaac7b53f
Add ~2 second overflow grace period.
This fixes issues when the GPU is actually permitted to report out-of-order
timestamps (e.g. when tasks are scheduled by the GPU, instead of being forced
to execute in submission order).
2021-10-11 00:29:24 +02:00
Bartosz Taudul
d3905bd4bb
Add context to zone text failures. 2021-10-10 14:14:33 +02:00
Bartosz Taudul
930ef77ea9
Add zone value failure context. 2021-10-10 14:12:13 +02:00
Bartosz Taudul
9300934fa5
Separate zone value and text failures. 2021-10-10 14:05:21 +02:00
Bartosz Taudul
07bc665d8c
Drop support for Cygwin. 2021-10-07 23:28:40 +02:00
Bartosz Taudul
b7a27d02af
Fix total time in find zone, if limit range is enabled. 2021-09-28 01:11:22 +02:00
Bartosz Taudul
9cb54982cb
Fix crash. 2021-09-27 18:13:45 +02:00
Bartosz Taudul
c2e94355f0
Add icon to samples label. 2021-09-27 02:07:02 +02:00
Bartosz Taudul
99f2d0e059
Fix vertical spacing in inline symbols list. 2021-09-27 01:54:37 +02:00
Bartosz Taudul
28ae970887
Remove trailing whitespace. 2021-09-27 01:54:15 +02:00
xavier
f37ef1affd Display the samples after the groups in the "find zone" window
to make it clear they are filtered by selected group.
2021-09-23 21:03:56 +02:00
xavier
61670e30aa Update samples statistics continuously in the "find zone" window 2021-09-23 21:03:56 +02:00
xavier
63acfe72e7 Apply group filters to the samples statistics in the "find zone" window
reduce memory by storing the thread ids next to the zones intead of
making zone lists per thread.

speed-up by reading the zones in linear order rather than bisecting
the whole list for each sample.
2021-09-23 21:03:56 +02:00
xavier
41130d2a69 Avoid useless work when there aren't any samples 2021-09-23 21:03:56 +02:00
xavier
1233b39b69 Move samples before groups in "find zone" window
and fix style
2021-09-23 21:03:56 +02:00
xavier
0089c832f7 Cache samples statistics in the "find zone" window 2021-09-23 21:03:56 +02:00
xavier
ed42c2388c Add samples statistics to the "find zone" window 2021-09-23 21:03:56 +02:00
xavier
e4ce9f0f41 Include threadid in SampleDataRange
TODO: maybe make lists per thread to avoid increasing the packed structure by 2 bytes?
2021-09-23 21:03:56 +02:00
xavier
6b901a7156 Extract DrawSamplesStatistics() 2021-09-23 21:03:56 +02:00
Bartosz Taudul
4c220bdc14
Always display statistics mode selection.
Even if only one option is available.
2021-09-23 18:32:59 +02:00
Bartosz Taudul
f74818ece5
Make accumulation combo consistent. 2021-09-23 18:28:19 +02:00
Bartosz Taudul
bcfc4a4fa7
Fix message thread assignment in import-chrome. 2021-09-23 18:08:03 +02:00
Bartosz Taudul
dfb4020a92
Add missing include for intptr_t. 2021-08-22 13:38:28 +02:00
Bartosz Taudul
673dfd0f02
Update ImGui GLFW and OpenGL 3.x backends.
The new embedded ImGui OpenGL loader has been extended with a couple of
functions and definitions needed by TracyTexture.cpp.
2021-08-22 13:30:46 +02:00
Bartosz Taudul
30445b656f
Update ImGui to 1.84.1 + docking. 2021-08-21 00:52:30 +02:00
Bartosz Taudul
c82bf3915b
Extend thread expansion grace period to half a second.
Previously a framerate-dependent 10 frame count was used.
2021-08-19 00:24:11 +02:00
Bartosz Taudul
7304558bdf
Cycle through assembly blocks when right-clicking source line. 2021-07-26 01:21:58 +02:00
Bartosz Taudul
55a966f9c6
Fix assert. 2021-07-26 01:18:17 +02:00
Bartosz Taudul
06ae39d9cc
Fix debug build. 2021-07-18 16:34:24 +02:00
Bartosz Taudul
8b489c95ff
Rename slow branches/cache to branch/cache impact. 2021-07-18 16:15:32 +02:00
Bartosz Taudul
0e603a0997
Render relative hw samples values. 2021-07-18 16:15:32 +02:00
Bartosz Taudul
d0fad4fd39
Rename relative hw samples to "impact". 2021-07-18 16:15:31 +02:00
Bartosz Taudul
83b159b43b
Count hw stats, if relative mode is set. 2021-07-18 15:00:22 +02:00
Bartosz Taudul
fbf2c87a20
Include hw stats in AddrStatData. 2021-07-18 15:00:22 +02:00
Bartosz Taudul
e30608afbf
Store and pass AddrStat data in one data structure. 2021-07-18 15:00:22 +02:00
Bartosz Taudul
9c7a122d94
Implement counting relative hw samples data.
This exploits the fact that AddrStat has two data fields (local and ext) to
store branch and cache information.
2021-07-18 15:00:22 +02:00
Bartosz Taudul
8c78af4d00
Drop limitView from GatherIpHwStats interface. 2021-07-18 15:00:21 +02:00
Bartosz Taudul
a5e655d1ee
Add relative hw samples checkbox. 2021-07-18 15:00:21 +02:00
Bartosz Taudul
b4c1313a2e
Make hw stats cost a parameter. 2021-07-18 02:03:29 +02:00
Bartosz Taudul
50f7deb1a3
Merge pull request #243 from benvanik/patch-4
Indenting empty GPU zone tree nodes when grouped to keep zones aligned.
2021-07-17 20:48:43 +02:00
Ben Vanik
ba185b18f9 Indenting empty grouped CPU/GPU zone tree nodes to keep things aligned. 2021-07-17 11:46:29 -07:00
Ben Vanik
e3165c333b Fixing unbalanced tree pop in grouped GPU zones. 2021-07-17 09:25:44 -07:00
Bartosz Taudul
edae542a48
Allow selecting image name for filtering from a list. 2021-07-11 19:43:51 +02:00
Bartosz Taudul
b6db644ac6
Add hasher and comparator for StringIdx. 2021-07-11 19:43:40 +02:00
Terence Rokop
68ec7abdf4
Move responsibility for spacing of combo box
Thereby fix a spurious horizontal separator bar.
2021-06-26 11:51:57 -07:00
Terence Rokop
d6fd252ce4
Add more spacing to pre-existing options 2021-06-26 10:41:24 -07:00
Terence Rokop
e105d2d96c
Aesthetic fixes to accumulation mode combo box
Shorter text fields and more spacing.
2021-06-26 10:41:23 -07:00
Terence Rokop
1dd117533e
Avoid non-reentrant option in sampling/symbol view 2021-06-26 10:41:23 -07:00
Terence Rokop
f000dce73f
Replace "enum class" switches with explicit casts 2021-06-26 08:30:15 -07:00
Terence Rokop
b392671a7a
Make time accumulation mode use combo box 2021-06-25 21:27:45 -07:00
Bartosz Taudul
9a22b8e83c
Cosmetics. 2021-06-23 20:43:46 +02:00
Bartosz Taudul
913463635a
Cosmetics. 2021-06-23 20:37:14 +02:00
Terence Rokop
9366e58d12
Introduce "Non-reentrant time" radio button
Add to the statistics view an option for "Non-reentrant
time", which displays the count of and time spent in zone
events which were the only appearances (at that time) of
their zones on their threads' stacks.

Besides the GUI changes, this involves:

- Introducing a tri-state accumulation mode to replace the
boolean "self time":  now there's "Self time only",
"Child time", and "Non-reentrant time".

- Removing the separate "selfTotal" from SrcLocZonesSlim,
making "total" represent whichever of the now three options
is active, which in turn requires keeping track of the
accumulation mode in StatisticsCache and invalidating that
cache when the accumulation mode changes.
2021-06-20 17:56:15 -07:00
Terence Rokop
66053e37f7
Add non-reentrant stats to SourceLocationZones
Extend SourceLocationZones with fields to track the count
and time of non-reentrant zone events -- that is, zone
events which were the only appearances (at the time) of
those zones on their threads' stacks.
2021-06-20 17:56:15 -07:00
Terence Rokop
c90e39e06e
Keep track of zone appearances on thread stacks
Start keeping track, using the previously-introduced
SrcLocCountMap, of the number of appearances of each zone
on each thread's stack at a given time.
2021-06-20 17:56:15 -07:00
Terence Rokop
1f0b4656f4
Introduce SrcLocCountMap
Add to ThreadData a map from source location to a counter,
which will be used to keep track of the number of
appearances of zones with the corresponding source locations
on each thread's stack.
2021-06-20 17:56:14 -07:00
Terence Rokop
0a8ec09566
Introduce View::IsZoneReentry()
These two methods can search a timeline to determine whether
a given ZoneEvent is the only appearance of the given zone
on the current thread stack, or a re-entry.
2021-06-20 17:53:38 -07:00
Bartosz Taudul
0e0692b7f7
Don't display hw samples as time in selected lines summary. 2021-06-20 16:01:19 +02:00
Bartosz Taudul
e9aca02880
Make hw sample cost in source files relative to whole symbol. 2021-06-20 15:55:21 +02:00
Bartosz Taudul
846bde1a11
Narrow down search range. 2021-06-20 14:37:56 +02:00
Bartosz Taudul
15b42039bd
Add very early exit test. 2021-06-20 14:34:47 +02:00
Bartosz Taudul
d4b92e0fbe
Add early exit conditions. 2021-06-20 14:33:08 +02:00
Bartosz Taudul
a10d71b766
Switch loop order for better cache locality on the slow path. 2021-06-20 14:30:55 +02:00
Bartosz Taudul
a9a16b4d94
Narrow down search region. 2021-06-20 14:24:42 +02:00
Bartosz Taudul
22352dd29b
Select optimized path before entering loop. 2021-06-20 14:22:14 +02:00
Bartosz Taudul
5d86002f82
Calculate all CPU usage values in one go. 2021-06-20 14:19:18 +02:00
Bartosz Taudul
5efc03cdf9
Move cycles up in cost combo selector. 2021-06-20 12:50:13 +02:00
Bartosz Taudul
7e17c8643c
Don't show hw events as time. 2021-06-20 01:08:18 +02:00
Bartosz Taudul
bc4016e97c
Don't depend on callstack frames to match hw samples to source. 2021-06-20 01:01:29 +02:00
Bartosz Taudul
2f3ee594f0
Use square root to make slow branches and cache less spiky. 2021-06-20 00:50:14 +02:00
Bartosz Taudul
3305ea2775
Keep raw hw sample data visually separate. 2021-06-20 00:46:29 +02:00
Bartosz Taudul
07fe0a5447
Use enum for cost selection. 2021-06-20 00:45:39 +02:00
Bartosz Taudul
3cc69b221e
Select Zstd compression when Zstd level is changed. 2021-06-20 00:25:30 +02:00
Bartosz Taudul
80e1b0c2cf
Don't display hw samples as time in files list. 2021-06-20 00:14:19 +02:00
Bartosz Taudul
52708268fe
Store 64-bit integers in AddrStat. 2021-06-20 00:08:25 +02:00
Bartosz Taudul
4e6a1bae22
Don't display time for hw samples. 2021-06-20 00:04:08 +02:00
Bartosz Taudul
326a2a70d8
Add indirect hw statistics. 2021-06-20 00:01:37 +02:00
Bartosz Taudul
ad2b6e932b
Don't scroll cost combo list. 2021-06-20 00:01:21 +02:00
Bartosz Taudul
a5991036dc
Add more hw stats as cost. 2021-06-19 23:43:46 +02:00
Bartosz Taudul
c7b3d42852
Calculating cost in cycles and retirements. 2021-06-19 23:39:33 +02:00
Bartosz Taudul
90149641df
Reset cost selection when no samples. 2021-06-19 23:17:24 +02:00
Bartosz Taudul
8d52d2acfd
Disable inline context if no inline symbols available. 2021-06-19 21:40:30 +02:00
Bartosz Taudul
2e3241ba54
Restrict hardware samples to inline function context. 2021-06-19 20:50:06 +02:00
Bartosz Taudul
6cc844abee
Display inline symbol address. 2021-06-19 20:20:52 +02:00
Bartosz Taudul
748c22df8e
Darken assembly instructions which aren't in current context. 2021-06-19 20:11:53 +02:00
Bartosz Taudul
53111f9dd9
Save/load code symbol map. 2021-06-19 19:58:16 +02:00
Bartosz Taudul
8045ceee5d
Display function assigned to assembly line. 2021-06-19 19:52:33 +02:00
Bartosz Taudul
ec3ee09f09
Add inline symbols map accessors. 2021-06-19 19:13:34 +02:00
Bartosz Taudul
654331a8c8
Create code address -> symbol map. 2021-06-19 19:07:57 +02:00
Bartosz Taudul
cc0ca341bb
Add cost criteria selection UI. 2021-06-19 18:16:11 +02:00
Bartosz Taudul
7ad9cafefb
Add child call samples hints to the UI. 2021-06-19 17:41:29 +02:00
Bartosz Taudul
6e8d57bc98
Update context switches look. 2021-06-19 16:50:25 +02:00
Bartosz Taudul
c17a913cf5
Update zones look. 2021-06-19 16:43:56 +02:00
Bartosz Taudul
b91cd9148d
Add 2-segment line drawing wrapper. 2021-06-19 16:22:50 +02:00
Bartosz Taudul
188320db48
Simplify zone color data retrieval. 2021-06-19 16:20:35 +02:00
Bartosz Taudul
5e582ef057
Omit line number from source locations, if not known. 2021-06-19 12:47:55 +02:00
Bartosz Taudul
91f1845d92
Add LocationToString() helper. 2021-06-19 12:33:23 +02:00
Bartosz Taudul
c69cf5bd3f
Cosmetics. 2021-06-19 12:33:16 +02:00
Bartosz Taudul
8e5a53a191
Merge remote-tracking branch 'origin/master' into hw 2021-06-19 12:19:10 +02:00
Andrey Voroshilov
d4d77006ac Fix a crash in Worker c-tor when converting certain JSON files 2021-06-19 01:12:41 -07:00
Bartosz Taudul
e1b68232dc
Better describe kernel ghost zones. 2021-06-19 01:40:05 +02:00
Bartosz Taudul
a96410547b
Display thread kernel time. 2021-06-17 01:56:16 +02:00
Bartosz Taudul
d49da69972
Count kernel samples. 2021-06-17 01:47:19 +02:00
Bartosz Taudul
d2ebe341f2
Allow filtering out kernel symbols from statistics view. 2021-06-16 01:43:09 +02:00
Bartosz Taudul
f145ca5897
Fix assert. 2021-06-16 01:39:43 +02:00
Bartosz Taudul
48fe6550a6
Kernel code is unreachable from user space. 2021-06-15 21:40:08 +02:00
Bartosz Taudul
5b642cad01
Implement combining sample callstacks.
This is required, because Windows will send two callstacks with the same
timestamp, one for kernel-space, second for user-space.
2021-06-15 02:25:12 +02:00
Bartosz Taudul
db1dc311b0
Add Int48 clearing function. 2021-06-15 02:04:32 +02:00
Bartosz Taudul
0fdd5ab01b
Extract callstack sample processing implementation. 2021-06-15 01:59:49 +02:00
Bartosz Taudul
891e1ac280
Read combine samples flag on server. 2021-06-15 01:33:43 +02:00
Bartosz Taudul
06dcdd342f
Combine flags in welcome message. 2021-06-15 01:26:50 +02:00
Bartosz Taudul
004681b02b
Merge remote-tracking branch 'origin/master' into hw 2021-06-14 23:54:34 +02:00