Commit Graph

3948 Commits

Author SHA1 Message Date
Bartosz Taudul
d823a24534
Dummy tokenization of asm operands. 2022-09-16 00:30:29 +02:00
Bartosz Taudul
4913f0e1e6
Greatly simplify asm line text drawing.
This change also colors asm mnemonics and jump labels. Asm operands are not
yet colored.
2022-09-15 23:36:31 +02:00
Bartosz Taudul
a45293d6ff
Enumerate asm token color names. 2022-09-15 23:36:30 +02:00
Bartosz Taudul
31b5a464cd
Add assembly color tables. 2022-09-15 23:36:30 +02:00
Bartosz Taudul
6dc7c8c6b5
Add assembly keyword maps. 2022-09-15 23:36:29 +02:00
Bartosz Taudul
c27bcc524c
Store syntax colors as 32-bit uints. 2022-09-11 00:46:27 +02:00
Bartosz Taudul
9372d9fb28
Collect asm operation type data. 2022-09-11 00:30:37 +02:00
simplyWiri
830e7162eb Add missing TreePop in function which is called from inside a TreeNode 2022-09-10 17:09:04 +10:00
Bartosz Taudul
eee6cb06fa
Align jump arrows to pixel boundaries. 2022-09-09 00:32:13 +02:00
Bartosz Taudul
0e930a2c13
Prevent thick zone highlight from going outside the zone box. 2022-09-09 00:18:40 +02:00
Bartosz Taudul
5bd3f3de5f
Don't use space for frame sets that are out of view range.
This becomes problematic at the end of the range, as continuous frames do not
have an "end", but rather essentially persist until the last recorded event.
2022-09-07 23:35:27 +02:00
Bartosz Taudul
48e7a17d1d
Clicking on a CPU data thread will make it visible. 2022-09-05 20:30:03 +02:00
Bartosz Taudul
d2ab66195c
Allow changing timeline item collapsed state. 2022-09-05 20:29:45 +02:00
Bartosz Taudul
5200ea2c84
Hide frame related information if no frame instrumentation. 2022-09-05 20:12:36 +02:00
Bartosz Taudul
23ebce2862
Implement checking if frames are in use. 2022-09-05 20:12:12 +02:00
Bartosz Taudul
53632ccb5b
Cleanup. 2022-09-04 14:56:12 +02:00
Bartosz Taudul
44efb15df1
Remove VisData.
Its functionality is now incorporated into TimelineItem. For purposes of
maintaining visibility of frame sets and locks a much simpler ptr -> bool map
is now used.
2022-09-04 14:46:51 +02:00
Bartosz Taudul
ad2fc03125
Migrate CPU data to timeline item system. 2022-09-04 14:31:02 +02:00
Bartosz Taudul
827b390e34
Add mutable ViewData accessor. 2022-09-04 14:31:01 +02:00
Bartosz Taudul
9c464e9f05
Make timeline item visibility functions virtual. 2022-09-04 14:31:00 +02:00
Bartosz Taudul
135d3b7f30
Fix GPU contexts in options menu. 2022-09-04 13:52:53 +02:00
Bartosz Taudul
06d0989161
Add GPU index accessor. 2022-09-04 13:52:17 +02:00
Bartosz Taudul
9fdafb2ecc
Make the GPU context name primary focus. 2022-09-04 13:47:06 +02:00
Bartosz Taudul
60579d6334
Migrate drawing GPU data to the new timeline item system. 2022-09-04 13:39:20 +02:00
Bartosz Taudul
ec3e88ce53
Manage GPU index counter in View. 2022-09-04 13:37:19 +02:00
Bartosz Taudul
2711af39e5
Check if zoom range is valid.
This is important for GPU zones, which may have broken timing data.
2022-09-04 13:16:26 +02:00
Bartosz Taudul
e41deb1ff6
Check item map too for hidden items. 2022-09-03 23:43:26 +02:00
Bartosz Taudul
10faf16aee
Allow access to item map. 2022-09-03 23:43:17 +02:00
Bartosz Taudul
b66e10972a
Add visibility accessor to TimelineItem. 2022-09-03 23:42:52 +02:00
Bartosz Taudul
ca125bd44c
Collapse Tracy threads by default.
Note that this will likely work only when loading existing traces. In live
captures the thread name may not have yet been retrieved at the point when
timeline item insertion occurs, which will prevent the check from succeeding.
2022-09-03 23:35:35 +02:00
Bartosz Taudul
ec3dcaeef3
Migrate drawing CPU threads to the new timeline item system. 2022-09-03 23:28:54 +02:00
Bartosz Taudul
e3007062fc
Add support for drawing timeline item overlays. 2022-09-03 23:24:00 +02:00
Bartosz Taudul
8e713e6366
Limit access to internal methods. 2022-09-03 23:17:57 +02:00
Bartosz Taudul
5cbf06ba31
Only clip timeline item contents.
Timeline item header may overflow over other items, e.g. the crash marker is
taller than the header line.
2022-09-03 23:09:23 +02:00
Bartosz Taudul
840709fe46
Push pxns to HeaderExtraContents(). 2022-09-03 22:55:54 +02:00
Bartosz Taudul
3ee928a7d1
Fix mass visibility changing. 2022-09-03 22:08:08 +02:00
Bartosz Taudul
d65bde99a2
Hide timeline item if it had no content. 2022-09-03 21:57:56 +02:00
Bartosz Taudul
3780c47bb6
Check if plot is in drawing range. 2022-09-03 21:46:00 +02:00
Bartosz Taudul
0e94ed8fc6
DrawContents reports if anything was drawn. 2022-09-03 21:41:38 +02:00
Bartosz Taudul
eaa78de534
Don't draw separator when timeline item is collapsed. 2022-09-03 21:14:56 +02:00
Bartosz Taudul
5c90fe7a6e
Use the indented spacing.
Plots for some reason were packed tighter.
2022-09-03 21:11:36 +02:00
Bartosz Taudul
6abce4e0c9
Pass hover parameter to HeaderExtraContents(). 2022-09-03 20:04:24 +02:00
Bartosz Taudul
6e36469840
Add non-View-dependent thread color getter. 2022-09-03 19:28:50 +02:00
Bartosz Taudul
0c4ca4cd69
Add function for highlighting a thread. 2022-09-03 19:25:02 +02:00
Bartosz Taudul
e19a3a8767
Implement check for empty plot. 2022-09-03 19:18:01 +02:00
Bartosz Taudul
450fbf5ea0
Draw timeline item separator lines with proper colors. 2022-09-03 19:06:06 +02:00
Bartosz Taudul
fa20700825
Replace timeline item open/close triangles with font carets. 2022-09-03 18:53:05 +02:00
Bartosz Taudul
119152aac1
Worker must be mutable.
This is to allow use of various accessors that cache results, etc.
2022-09-03 18:34:11 +02:00
Bartosz Taudul
b481bb367c
Switch plot drawing to the timeline items system. 2022-09-03 17:51:33 +02:00
Bartosz Taudul
55a82ea714
Make plot color/value formatting generic utilities.
Previous implementations of these functions (in TracyView) are still used
throughout the code. They will be removed in subsequent commits.
2022-09-03 17:51:32 +02:00
Bartosz Taudul
1736fb387a
Allow access to timeline items stored in the controller.
This is similar to the previously existing Vis() access function.
2022-09-03 17:51:32 +02:00
Bartosz Taudul
9355a14657
New TimelineController begin/end logic. 2022-09-03 17:51:31 +02:00
Bartosz Taudul
8034fce416
Allow adding timeline items to TimelineController.
TimelineItem class is basically an expansion of the previous VisData
structure. After the transition process is finished the VisData map will be
removed, as it will no longer have any function.
2022-09-03 17:51:30 +02:00
Bartosz Taudul
449dff0eca
Store View and Worker in TimelineController. 2022-09-03 17:51:30 +02:00
Bartosz Taudul
b42182f0a8
Add base class for timeline items. 2022-09-03 17:51:29 +02:00
Bartosz Taudul
427dc4fffa
Make View::ZoomToRange() public. 2022-09-03 17:51:26 +02:00
jkriegshauser
59ae71df2b
Import frame messages (#459)
Co-authored-by: Joshua Kriegshauser <joshuakr@nvidia.com>
Co-authored-by: Bartosz Taudul <wolf@nereid.pl>
2022-09-02 19:44:37 +02:00
Bartosz Taudul
8b75a3fab0
Fix callstackPayload overflow when data to read size was POT. 2022-09-02 18:52:32 +02:00
Bartosz Taudul
2f44f65e02
Don't copy short_ptr. 2022-09-02 18:47:13 +02:00
Bartosz Taudul
107975c8de
Fix time rounding logic.
PrintSmallInt() expects values in the 0-999 range, but the in+1 may produce
1000 here. This is invalid and it either asserted, or outputted an empty
string.

Workaround by simple outputting "1000" as the value here.

This function is only used in context of printing time, and only in specific
context. The end result will be that values like "1000 us" or "1000 ms" may
appear, where they would be otherwise shortened to "1 ms" or "1 s". This may
be a bit unusual, but is acceptable, as the real time value has not yet
crossed the threshold required for such shortening.
2022-08-28 14:50:38 +02:00
Bartosz Taudul
c2d527e2e7
Cosmetics. 2022-08-28 13:17:29 +02:00
Bartosz Taudul
74789d1049
Merge pull request #446 from simplyWiri/master
Add WASD panning/zooming functionality to timeline.
2022-08-28 13:13:21 +02:00
Bartosz Taudul
be392a76fb
Move TracyVersion.hpp to common. 2022-08-27 16:05:36 +02:00
simplyWiri
d2e3856724 Add WASD panning/zooming functionality to timeline. 2022-08-22 17:23:57 +10:00
Bartosz Taudul
655d8a01ea
Move vis data to timeline controller. 2022-08-20 17:02:29 +02:00
Bartosz Taudul
414f467c6e
More jump targets to normalize. 2022-08-19 12:50:47 +02:00
Bartosz Taudul
2f219188e1
Fix function normalization being forced on. 2022-08-18 14:13:53 +02:00
Bartosz Taudul
d62f7d5d13
Shorten zone name in jump popup target submenu. 2022-08-18 00:49:42 +02:00
Bartosz Taudul
f9a4bc55cc
Normalize function names in jump popup. 2022-08-18 00:35:59 +02:00
Bartosz Taudul
a1f09fab35
Assembly lines without source locations are navigatable to. 2022-08-18 00:19:32 +02:00
Bartosz Taudul
e8aaf5fa99
Run source file query on payloaded source locations. 2022-08-17 16:04:20 +02:00
Bartosz Taudul
4bcb59bbe6
Update font awesome and migrate to v6 headers. 2022-08-17 12:07:38 +02:00
Bartosz Taudul
ef35c01e14
Highlight jump line on hover over jump target label. 2022-08-17 00:30:07 +02:00
Bartosz Taudul
827bbeb442
Context menu hide for plots. 2022-08-16 18:51:28 +02:00
Bartosz Taudul
4bf6a2b9d2
Context menu hide for CPU data. 2022-08-16 18:48:54 +02:00
Bartosz Taudul
3aa62a18cc
Context menu hide of GPU zones. 2022-08-16 18:43:13 +02:00
Bartosz Taudul
fa8a071334
Add context menu with hide option to threads on timeline. 2022-08-16 18:40:10 +02:00
Bartosz Taudul
5ef7e42223
Fix indentation. 2022-08-16 18:39:43 +02:00
Bartosz Taudul
6659e9967a
Fix alignment of inline function warning triangle. 2022-08-15 23:04:56 +02:00
Bartosz Taudul
c6ad1c4969
Print file name in source view with big font. 2022-08-15 23:01:40 +02:00
Bartosz Taudul
f39efbaa07
Normalize child call names in symbol view. 2022-08-15 22:58:35 +02:00
Bartosz Taudul
00e0187506
Print symbol name in symbol view with big font. 2022-08-15 22:53:32 +02:00
Bartosz Taudul
fa0322f6b4
Push big font to source view. 2022-08-15 22:48:00 +02:00
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