1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00
Commit Graph

4233 Commits

Author SHA1 Message Date
Bartosz Taudul 060bab357d Add DrawFinished() to early exit paths. 2023-03-21 02:11:50 +01:00
Bartosz Taudul 1e1833edc2 Parallelize timeline item preprocessing. 2023-03-19 18:54:32 +01:00
Bartosz Taudul 66d3c2a472 Draw CPU zones using a precalculated list. 2023-03-19 18:37:27 +01:00
Bartosz Taudul 85d541124e Inline frames limit was raised to 64 in 7552341ff. 2023-03-19 18:23:04 +01:00
Bartosz Taudul 1d7afbd07e Calculate which CPU zones to draw beforehand. 2023-03-19 18:23:04 +01:00
Bartosz Taudul b4893fafb7 Notify TimelineItem when drawing has finished. 2023-03-19 16:07:47 +01:00
Bartosz Taudul 3a2cc0bed0 Allow setting short_ptr pointer. 2023-03-19 15:21:52 +01:00
Bartosz Taudul 6ab4180b5b Use TimelineContext to draw CPU zones. 2023-03-19 01:14:36 +01:00
Bartosz Taudul ee5d6f1adb Use TimelineContext for drawing GPU zones. 2023-03-19 00:28:14 +01:00
Bartosz Taudul 5743bff0af Use TimelineContext when drawing CPU data. 2023-03-19 00:23:33 +01:00
Bartosz Taudul 26791f55d1 Use TimelineContext data for drawing plots. 2023-03-18 17:11:24 +01:00
Bartosz Taudul 0ecdcbc13c Move TimelineContext struct definition to a separate header. 2023-03-18 17:03:23 +01:00
Bartosz Taudul 5b3427395e Add view start and end to TimelineContext. 2023-03-18 17:02:23 +01:00
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