Commit Graph

4220 Commits

Author SHA1 Message Date
Bartosz Taudul
0a32929b0b
Move hover flag to TimelineContext. 2023-03-18 16:07:56 +01:00
Bartosz Taudul
c75bec9122
Cosmetics. 2023-03-18 15:59:52 +01:00
Bartosz Taudul
9538fa99ca
Pass yMin, yMax through TimelineContext. 2023-03-15 23:56:57 +01:00
Bartosz Taudul
c81ef177ab
Push timline context to Draw and DrawContents functions. 2023-03-14 02:25:15 +01:00
Bartosz Taudul
b6b6e1edcf
Store common constants in context variable. 2023-03-14 02:25:14 +01:00
Bartosz Taudul
66d8dab925
Preprocess timeline items in controller. 2023-03-14 02:02:50 +01:00
Bartosz Taudul
7dd31ab609
Timeline items may have preprocessing. 2023-03-14 02:02:21 +01:00
Bartosz Taudul
988de5b594
Fix typo. 2023-03-14 01:54:21 +01:00
Bartosz Taudul
7d69103444
Add plot type "power" and Watt format.
Note that this technically breaks backwards compatibility of trace files
for 0.9.2 builds. But, whatever, as it's not yet released.
2023-03-10 01:25:41 +01:00
Bartosz Taudul
23705fd84c
Add a reminder to keep interfaces in sync. 2023-03-10 01:07:06 +01:00
Bartosz Taudul
69855c671f
Process power usage messages. 2023-03-10 01:02:41 +01:00
Bartosz Taudul
f428a5b52b
Fix popup of collapsed items near timeline start.
There are various changes involved into making this work:

1. Zone size (zsz) is no longer clamped to the timeline viewport area.
   This clamping has to be removed to prevent otherwise uncollapsed zones
   from apparently becoming small near the viewport borders. Such a small
   zone would then be collapsed, resulting in unwanted popping.
   Interesingly, only the CPU zones were clamped before. GPU zones were
   not.
2. Iteration over visible zones has to start before the visible timeline
   viewport area. Without this some zones that would be otherwise
   included in the collapsed area (started by a previous zone) may be
   fully visible. This causes child zones to be drawn and produces
   unwanted popping. (At this point threshold for continuing collapsed
   area is greater than threshold for starting it.)
3. Since the iteration now starts before timeline visible area, it may so
   happen that everything found will be in a small slice of timeline that
   is outside the screen. To fix this, the end time of last found item is
   checked against the viewport start time.
   It is always valid to access *(zitend-1), as it is in each case done
   after null set check (it == zitend).

Similar but simpler fix was also applied to per-thread call stack samples.
2023-03-09 00:38:23 +01:00
Bartosz Taudul
107afd78a4
Make collpsed zones gray in source location dynamic color mode.
The reasoning is that you want to use the color to see where a zone of
a particular type is placed. When collapsed zones go back to displaying
thread color, you may mistake such region of collapsed zones for something
they aren't.
2023-03-04 22:54:58 +01:00
Bartosz Taudul
2434514a42
Make view mode heuristic work correctly in on demand mode. 2023-03-04 00:37:38 +01:00
Bartosz Taudul
a8cc3cb06b
Use on demand flag in GetFirstTime(). 2023-03-04 00:33:52 +01:00
Bartosz Taudul
f9449bc938
Only retrieve frame offset internally in GetFrameNumber(). 2023-03-04 00:32:15 +01:00
Bartosz Taudul
8164b776fd
Don't pass GetFrameOffset() results to GetFrameText().
Frame offset can be retrieved internally.
2023-03-04 00:29:00 +01:00
Bartosz Taudul
9155b01ddf
Use on demand flag to determine if need to show missed frames. 2023-03-04 00:25:30 +01:00
Bartosz Taudul
5ebc499f49
Add on demand mode flag accessor. 2023-03-04 00:19:58 +01:00
Bartosz Taudul
e92874c0bb
Save "on demand" flag in traces.
Previously on demand mode was determined by frame offset parameter being
greater than zero. However, if the application is not pumping frames with
FrameMark macro, the frame index will never increase and the frame offset
parameter stay at zero. It is not possible to distinguish on demand traces
from normal ones in this scenario.

Fix by explicitly saving the on demand flag in trace file and employ the
previous logic to set the flag when importing older traces.
2023-03-04 00:11:32 +01:00
Bartosz Taudul
256905b7e3
Include first time in CPU thread lifetime calculation. 2023-03-03 22:46:25 +01:00
Bartosz Taudul
28199512cd
Create first memory plot data point at first time. 2023-03-03 22:44:25 +01:00
Bartosz Taudul
3ff158c8be
Worker::GetMemoryDefault() is not needed. 2023-03-03 22:40:14 +01:00
Bartosz Taudul
5ff809cc0a
Calculate plot timeline taking active time span into account. 2023-03-03 22:36:04 +01:00
Bartosz Taudul
3ed543a1b7
Dim timeline before first time. 2023-03-03 22:25:07 +01:00
Bartosz Taudul
b7cefe816e
Restrict keyboard navigation to active time span. 2023-03-03 22:23:30 +01:00
Bartosz Taudul
e659c630fd
Calculate statistics percentages relative to active time span. 2023-03-03 22:19:43 +01:00
Bartosz Taudul
fc7bd61576
Calculate CPU data percentages relative to active time span. 2023-03-03 22:18:08 +01:00
Bartosz Taudul
2f49caaa6e
Show only active time span in on-demand mode. 2023-03-03 22:12:33 +01:00
Bartosz Taudul
1f94ab32df
Exclude missing on-demand frames from on-load zoom. 2023-03-03 21:48:34 +01:00
Bartosz Taudul
c91b052c80
Add first time getter. 2023-03-03 21:48:34 +01:00
Bartosz Taudul
b89bfd44f1
Line stats may not exist, even if the line has attributed cost.
One scenario for this to happen is when there's children calls data in the
symbol.
2023-03-01 19:28:58 +01:00
Bartosz Taudul
897aec5b06
Release 0.9.1. 2023-02-26 15:30:03 +01:00
Bartosz Taudul
40b648655b
Fix out-of-bounds reference. 2023-02-24 23:06:12 +01:00
Bartosz Taudul
b3186a9b7d
Fix uninitialized variable. 2023-02-24 22:57:14 +01:00
Bartosz Taudul
55823df56a
Remove support for AT&T assembly syntax. 2023-02-10 20:41:03 +01:00
Tomaž Vöröš
645d53f254 More correct shouldUpdateCenterItem. 2023-01-31 20:35:17 +01:00
Tomaž Vöröš
ea1a0299f3 Add switch for vertical centering on/off at compile-time. 2023-01-31 19:48:19 +01:00
Tomaž Vöröš
bca8f28f43 Centering around the mouse pointer. 2023-01-29 19:20:26 +01:00
Tomaž Vöröš
dbefb70db3 Add key to TimelineItem. 2023-01-27 20:00:05 +01:00
Tomaž Vöröš
2df56e9941 Fix off-by-one-frame in timeline item height. 2023-01-27 20:00:05 +01:00
Tomaž Vöröš
7b9b810421 Refactor the use of offset in TimelineItem::Draw() and TimelineController::End(). 2023-01-27 20:00:05 +01:00
Bartosz Taudul
d47122586c
Fix color channel names in source location message. 2023-01-23 01:23:15 +01:00
Bartosz Taudul
6652999a60
Fix color channels names in zone color message. 2023-01-23 01:18:54 +01:00
Bartosz Taudul
eb7c13e7bb
Fix message color component names in the protocol.
Red and blue channels were mislabeled. Otherwise, coding and decoding was
performed correctly, as far as the color channel order described in the manual
is followed by the user.

No change to the binary protocol was made.
2023-01-23 01:07:07 +01:00
Bartosz Taudul
c59413ab56
Query jump and call target addresses.
This enables discovery of target function names (and recursively, their
bodies), even if such function has no samples and is not present in any
callstack.
2023-01-22 02:06:43 +01:00
Cody Tapscott
cabfe25333 Add left/right counts to histogram tooltip 2023-01-06 21:37:23 -07:00
Bartosz Taudul
8a9deb69c8
Fix expand-process separators in CPU data window. 2023-01-05 22:48:07 +01:00
Bartosz Taudul
006bfeaf56
Use fixed-width font to draw addresses. 2023-01-05 22:20:56 +01:00
Bartosz Taudul
d76e3a364a
Cosmetics. 2023-01-03 13:56:56 +01:00
sean
b597ab5a0a
Fix: Don't let make_unique initialise data unnecessarily 2023-01-03 13:09:26 +01:00
Bartosz Taudul
6c699d293e
Annotate assembly dumps with source line information. 2023-01-01 16:19:37 +01:00
Bartosz Taudul
bb8393c918
Calculate max operand length. 2023-01-01 14:47:10 +01:00
Bartosz Taudul
1945b1bfa0
Change assembly comment character from ; to #.
This makes llvm-mca silent about unknown tokens.
2023-01-01 14:42:50 +01:00
Bartosz Taudul
b8029f7448
Show diff direction and allow reversal. 2022-12-30 20:33:17 +01:00
Bartosz Taudul
166c553af3
Make diff added/deleted files list collapsed by default. 2022-12-30 20:20:52 +01:00
Bartosz Taudul
314b1b48c8
Condense source diff. 2022-12-23 19:56:39 +01:00
Bartosz Taudul
1eaebb44cb
Display changes in source files in compare menu. 2022-12-23 19:40:58 +01:00
Bartosz Taudul
205930fd2c
Add file and diff printers. 2022-12-23 19:40:58 +01:00
Bartosz Taudul
5a442f123e
Calculate diff between source files. 2022-12-23 19:40:58 +01:00
Bartosz Taudul
4bb0a1f1ed
Add line splitter. 2022-12-23 19:40:58 +01:00
Bartosz Taudul
bd06d4e104
Build lists of unique source files in comparison menu. 2022-12-23 19:40:58 +01:00
Bartosz Taudul
886456ea44
Load source cache in comparison worker. 2022-12-23 19:40:57 +01:00
Bartosz Taudul
359840bec0
Add source diff radio button to compare menu.
Majority of this commit are whitespace changes.
2022-12-23 19:40:57 +01:00
Tomaž Vöröš
1969ef0f43 Reintroduce the vertical scroll-bar reset logic in TimelineController. 2022-12-19 19:05:18 +01:00
Tomaž Vöröš
b4e8e042a8 Fix a code style issue. 2022-12-18 23:30:47 +01:00
Tomaž Vöröš
e4ab6cdaf1 Fix TimelineController height calculation. 2022-12-18 20:45:42 +01:00
Tomaž Vöröš
d6772900ad Get rid of a non-linearity in TimelineItem resizing animation. 2022-12-18 20:09:15 +01:00
Tomaž Vöröš
0cc6bb4ff9 More pleasant TimelineItem resizing parameters. 2022-12-18 20:06:57 +01:00
Tomaž Vöröš
db6acfe9b5 Change resize logic such that TimelineItem instances "don't chase" each other anymore. 2022-12-18 20:06:10 +01:00
Bartosz Taudul
a2825c8601
Update ZEN4 CPU name. 2022-11-29 17:06:10 +01:00
Bartosz Taudul
d24f768b1f
Update to official uops.info ZEN4 data. 2022-11-29 17:03:29 +01:00
Bartosz Taudul
4abb3b5e90
Pressing cancel is not an error. 2022-10-30 00:44:30 +02:00
Bartosz Taudul
11cafbff1d
Expose internal file selector failure state. 2022-10-30 00:36:07 +02:00
Bartosz Taudul
fbfd7e5186
Report if file selector can be displayed. 2022-10-30 00:31:15 +02:00
Bartosz Taudul
bae7fb3e88
Drop support for 0.7.x traces. 2022-10-28 00:14:06 +02:00
Bartosz Taudul
96c6898da3
Add 0.9 protocol version to protocol history. 2022-10-27 23:56:54 +02:00
Bartosz Taudul
d34af7166e
Remove graphical representation of instruction latencies. 2022-10-26 21:47:17 +02:00
Bartosz Taudul
3afe9a98cf
Move code size to assembly pane. 2022-10-26 21:45:14 +02:00
Bartosz Taudul
19e36f5e80
Condense some more. 2022-10-26 21:33:07 +02:00
Bartosz Taudul
fbf0d47c1c
Condense some text labels. 2022-10-26 19:49:13 +02:00
Bartosz Taudul
762b3a810a
Smaller font for symbol image name. 2022-10-26 19:40:30 +02:00
Bartosz Taudul
0eef0a8313
Fix window focus issues when navigating with WSAD. 2022-10-26 19:33:04 +02:00
Bartosz Taudul
e3eead78a8
Further as-needed compression of jump graph. 2022-10-19 21:33:20 +02:00
Bartosz Taudul
11258fab73
Condense jump arrows, depending on max depth of jump graph. 2022-10-19 01:06:41 +02:00
Bartosz Taudul
33e5e07629
Extract calculation of jump separation. 2022-10-19 01:01:59 +02:00
Bartosz Taudul
11ea081c57
Do not use thousands separator for source line numbers. 2022-10-18 22:18:50 +02:00
Bartosz Taudul
d90fed8296
Implement resetting selected microarchitecture. 2022-10-18 21:44:08 +02:00
Bartosz Taudul
dc6c3962d3
Add software S3TC decoder. 2022-10-15 13:06:08 +02:00
Bartosz Taudul
fdb130651d
Detect if hardware supports S3TC. 2022-10-15 12:56:19 +02:00
Bartosz Taudul
306ef02aa2
Do not limit inline propagation to sample count cost. 2022-10-15 00:43:07 +02:00
Bartosz Taudul
564534c703
Perform fast integer comparison before comparing strings. 2022-10-15 00:42:01 +02:00
Bartosz Taudul
47ec7de479
Propagate inlines for hw sample impact. 2022-10-15 00:39:25 +02:00
Bartosz Taudul
e7da2efdd1
Include hardware samples in inline propagation. 2022-10-15 00:35:51 +02:00
Bartosz Taudul
5db18087f5
Propagate inlines to src line addresses. 2022-10-15 00:27:54 +02:00
Bartosz Taudul
ba34596b91
No cost propagation when symbol is narrowed down to a single function. 2022-10-14 21:36:09 +02:00
Bartosz Taudul
d0d6b8fd8e
Use menus in inline call stack popup. 2022-10-14 19:49:06 +02:00
Bartosz Taudul
27ab25709d
Update imgui to f87e891f. 2022-10-14 19:48:38 +02:00
Bartosz Taudul
a226446a92
Add local call stack navigation menu to asm lines. 2022-10-14 17:37:06 +02:00
Bartosz Taudul
0f283d5825
Select clicked on asm line. 2022-10-13 23:01:06 +02:00
Bartosz Taudul
4c69b21a29
Reverse mouse buttons for jumping in symbol view. 2022-10-13 21:22:46 +02:00
Bartosz Taudul
1419283a91
Make the local callstack more readable. 2022-10-13 21:03:33 +02:00
Bartosz Taudul
7727a17153
Request attention on disconnect. 2022-10-13 20:49:30 +02:00
Bartosz Taudul
1c5d90c98a
Require attention after load / connect. 2022-10-13 20:47:02 +02:00
Bartosz Taudul
b66c3a0e30
Request attention when save finishes. 2022-10-13 20:42:32 +02:00
Bartosz Taudul
8dec765f5f
Require attention on failure popups. 2022-10-13 20:39:43 +02:00
Bartosz Taudul
94fd3b664e
Add attention callback helper. 2022-10-13 20:36:54 +02:00
Bartosz Taudul
0a7ae94fcb
View::Draw() is no longer static. 2022-10-13 19:50:35 +02:00
Bartosz Taudul
c89c4f46ea
Hook up attention callback. 2022-10-13 19:31:47 +02:00
Bartosz Taudul
575f627136
All View ctor parameters need to be explicitly stated. 2022-10-13 19:30:15 +02:00
Bartosz Taudul
c0c3b58955
Remove dead code. 2022-10-13 19:25:36 +02:00
Bartosz Taudul
b88ef29792
Make sure source file data is properly tracked. 2022-10-13 19:00:22 +02:00
Bartosz Taudul
fc85e46f31
Always fill source code query queue when performing a query.
Previous implementation made these two events separate.
2022-10-13 18:15:04 +02:00
Bartosz Taudul
70dd37bbea
Display local call stack for assembly lines. 2022-10-12 00:45:05 +02:00
Bartosz Taudul
c041b962c0
Construct fake callstack frames for code location data. 2022-10-12 00:27:12 +02:00
Bartosz Taudul
ed455339b3
Remove codeAddressToLocation map. 2022-10-12 00:13:07 +02:00
Bartosz Taudul
0b84b50d9f
Remove locationCodeAddressList map from Worker.
Mapping of source code locations to code addresses is now performed
dynamically during disassembly in SourceView.
2022-10-12 00:13:07 +02:00
Bartosz Taudul
57e039f96c
Restore building code symbol map. 2022-10-11 23:04:06 +02:00
Bartosz Taudul
383ecb6a12
Remove CodeLocation query and CodeInformation response. 2022-10-11 22:56:23 +02:00
Bartosz Taudul
ac6902501a
Get location for address from callstack frame data. 2022-10-11 21:47:28 +02:00
Bartosz Taudul
4d0768ba9d
Replace code location queries with callstack frame ones. 2022-10-11 21:40:45 +02:00
Bartosz Taudul
c9adadf86a
When opening a new trace, set view to whole time span. 2022-10-10 22:55:56 +02:00
Bartosz Taudul
60f0ed8c0e
Include child calls in inline propagation. 2022-10-09 21:12:47 +02:00
Bartosz Taudul
720f339784
Implement inline cost propagation down the stack. 2022-10-09 21:09:25 +02:00
Bartosz Taudul
dbad69cd4f
Add inlines propagation UI. 2022-10-09 21:04:41 +02:00
Bartosz Taudul
a87cbacbc1
Fix offset of source code separator line. 2022-10-09 13:45:20 +02:00
Bartosz Taudul
9f60b53729
Enable file selector on emscripten. 2022-10-06 18:12:51 +02:00
Bartosz Taudul
ec0757c03a
Change file selector to work with callbacks. 2022-10-06 18:12:50 +02:00
Bartosz Taudul
5d7cf137cf
Convert std::string to const char* in printf call. 2022-10-05 23:45:59 +02:00
Bartosz Taudul
3ca61ad227
Extract file selector functionality. 2022-10-05 22:50:17 +02:00
Bartosz Taudul
5940af8995
Support opening web pages on emscripten. 2022-10-05 01:22:35 +02:00
Bartosz Taudul
5874ac11f7
Sample parents show function, not symbol. 2022-10-04 22:03:05 +02:00
Bartosz Taudul
dff45f1dc1
Just one compression worker thread on emscripten. 2022-10-02 00:40:43 +02:00
Bartosz Taudul
7cdc60886c
Add ZEN4 to microarchitecture selector. 2022-10-01 12:45:11 +02:00
Bartosz Taudul
62c4b70aaa
Reenable ZEN4 cpuid. 2022-10-01 12:40:57 +02:00
Bartosz Taudul
ccb5fefca2
Add ZEN4 microarchitecture data. 2022-10-01 12:40:05 +02:00
Bartosz Taudul
c2142279f1
But do not expose it yet. 2022-10-01 01:42:17 +02:00
Bartosz Taudul
b3dcd57087
Add ZEN4 cpuid. 2022-10-01 01:39:53 +02:00
Bartosz Taudul
863b36d04b
Emscripten expects GLES2 (WebGL 1). 2022-09-30 00:39:42 +02:00
Bartosz Taudul
73fe208b97
Remove unused variable. 2022-09-29 21:02:05 +02:00
Bartosz Taudul
c8c198cae7
Drop support for old, broken compilers.
These version macros report 4.2.1 on clang.
2022-09-29 20:59:31 +02:00
Bartosz Taudul
bc30786c05
Mark activity when playback is underway. 2022-09-28 01:17:08 +02:00
Bartosz Taudul
37442a7671
Mark activity when animating message marker. 2022-09-28 01:13:40 +02:00
Bartosz Taudul
64dbaf9d84
Mark activity on buzz anim in zone trace. 2022-09-28 01:12:06 +02:00
Bartosz Taudul
29c7b5f259
Mark activity on frame times histogram highlight. 2022-09-28 01:12:06 +02:00
Bartosz Taudul
1db9681ee2
Mark activity when lock is highlighting. 2022-09-28 01:12:05 +02:00
Bartosz Taudul
fd93f244f0
Mark activity when find zone histogram is highlighting. 2022-09-28 01:12:05 +02:00
Bartosz Taudul
8117d7d4d4
Mark activity when buzz anim is enabled. 2022-09-28 01:12:04 +02:00
Bartosz Taudul
6552108f52
BuzzAnim Update() returns whether it's active. 2022-09-28 01:12:03 +02:00
Bartosz Taudul
499f51f025
Mark activity when animating timeline items. 2022-09-28 01:12:03 +02:00
Bartosz Taudul
09d7b7336f
Mark activity when notification area is in use. 2022-09-28 00:48:45 +02:00
Bartosz Taudul
1f8de433ec
Mark activity when zoom animation is underway. 2022-09-28 00:43:12 +02:00
Bartosz Taudul
03a17c621e
Mark activity when waiting dots are drawn. 2022-09-28 00:36:01 +02:00
Bartosz Taudul
fb4d76469b
Activity tracking global variable. 2022-09-28 00:36:00 +02:00
Bartosz Taudul
a8276c41c3
Allow checking whether View was active.
Currently this only checks if client connection is active.
2022-09-27 22:31:53 +02:00
Bartosz Taudul
e7184565b3
No need for more than one space between mnemonic and operands. 2022-09-24 00:39:04 +02:00
Bartosz Taudul
da58c1f55e
Make source location display a bit shorter in asm line. 2022-09-24 00:37:23 +02:00
Bartosz Taudul
55e78ba4f7
Use ellipsis for more condensed source file in asm line. 2022-09-24 00:29:38 +02:00
Bartosz Taudul
7ea063539c
Take less space for asm address in relative mode. 2022-09-21 20:39:35 +02:00
Bartosz Taudul
3d0e461140
Assembly lines spacing improvements. 2022-09-21 20:26:17 +02:00
Bartosz Taudul
3fa5b8f15a
Display local jump target source code preview in tooltip. 2022-09-19 00:33:45 +02:00
Bartosz Taudul
0596fac6f2
Display inline function name in local jump label. 2022-09-19 00:33:18 +02:00
Bartosz Taudul
8d626d25f0
Display call target function name more prominently. 2022-09-18 01:12:52 +02:00
Bartosz Taudul
cdcee49776
Make the ARM registers list more complete. 2022-09-17 23:31:42 +02:00
Bartosz Taudul
8da6105ee4
Cosmetics. 2022-09-17 23:31:34 +02:00
Bartosz Taudul
4cf096d883
Mark privileged instructions in the tooltip. 2022-09-17 23:06:16 +02:00
Bartosz Taudul
4c086e94e4
Different coloring for jump/call/ret or privileged mnemonics. 2022-09-17 22:59:50 +02:00
Bartosz Taudul
dc31ebfd9c
Use proper list of x64 registers. 2022-09-17 22:36:29 +02:00
Bartosz Taudul
2bd987b783
Use common colors. 2022-09-17 22:14:35 +02:00
Bartosz Taudul
a8a4fe21b3
Adjust assembly register selection colors. 2022-09-17 22:03:41 +02:00
Bartosz Taudul
79a1f5cd80
Tokenize assembly operands. 2022-09-17 21:54:50 +02:00
Bartosz Taudul
0a69ef3b9c
Print asm operands taking tokens into account. 2022-09-16 00:30:56 +02:00
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