Commit Graph

7814 Commits

Author SHA1 Message Date
Bartosz Taudul
d085f2541a Fix drawing folded ghost zones. 2023-03-22 20:52:44 +01:00
Bartosz Taudul
a3947fbc57 Use vStart retrieved from ctx. 2023-03-22 20:52:31 +01:00
Bartosz Taudul
1e67c8bce2 Move const out of the loop. 2023-03-22 20:38:43 +01:00
Bartosz Taudul
50ccdc1ef4 Draw thread context switches using precalculated data. 2023-03-22 19:38:58 +01:00
Bartosz Taudul
88f0b9c754 Preprocess thread context switch data. 2023-03-22 19:38:36 +01:00
Bartosz Taudul
060bab357d Add DrawFinished() to early exit paths. 2023-03-21 02:11:50 +01:00
Bartosz Taudul
e62a383833 Update imgui to 1.89.4 + docking + emscripten glfw fix. 2023-03-20 23:54:46 +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
fd3d5114e8 Update NEWS. 2023-03-10 01:27:27 +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
2971db21e3 Read and report power usage. 2023-03-10 00:23:09 +01:00
Bartosz Taudul
c3e7157cd5 Detect power domains. 2023-03-10 00:05:18 +01:00
Bartosz Taudul
5e2e5eeefb Add system power use tracking skeleton. 2023-03-09 22:31:31 +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
7151c6afd9 Add support for configuring plots to C API. 2023-03-08 23:18:36 +01:00
Bartosz Taudul
9d2f3860e7 Update NEWS. 2023-03-05 19:42:20 +01:00
Bartosz Taudul
22661f79de Merge pull request #532 from spnda/vulkan_host_ops
Add: Alternative Vulkan context constructor
2023-03-05 18:38:07 +01:00
sean
1eb0651255 Note new Vulkan context constructor in documentation 2023-03-05 17:37:32 +01:00
sean
c7ee536209 Add: Alternative Vulkan context constructor 2023-03-05 17:37:22 +01:00
Bartosz Taudul
e77512abe6 Update NEWS. 2023-03-04 23:00:49 +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
ed79c4f241 Update NEWS. 2023-03-03 22:56:15 +01:00