Commit Graph

4070 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