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

4089 Commits

Author SHA1 Message Date
Bartosz Taudul f7a8998663 Push locks draw lists to DrawThread(). 2023-04-15 22:56:44 +02:00
Bartosz Taudul 7f301dfec0 Precalculate draw lists for locks. 2023-04-15 22:56:44 +02:00
Bartosz Taudul 9b270c8e11 Another fix for determining if there's CPU usage data to draw. 2023-04-15 22:56:44 +02:00
Bartosz Taudul f0acb73d09 Add accessor for active lock info window lock id. 2023-04-15 22:56:43 +02:00
Bartosz Taudul d737b911e9 Make View::Vis() public. 2023-04-15 22:56:43 +02:00
Bartosz Taudul 6e815d13a0 Move common lock helper functions to a separate header. 2023-04-15 22:56:43 +02:00
Bartosz Taudul 4c0e6fe3ca Merge pull request #544 from simplyWiri/timeline-scrolling-tweak
Clamp scrolling to the difference between the deepest zone near the m…
2023-04-13 11:35:08 +02:00
Bartosz Taudul f17b44c212 Take DPI scaling into account when drawing thread migration lines. 2023-04-07 22:37:23 +02:00
Bartosz Taudul 492e6611b9 No need to perform domain conversion.
Pixel values will be needed anyways later on. It doesn't make sense to
perform comparison in time domain here.
2023-04-07 22:37:23 +02:00
Bartosz Taudul d0ffca56bf Fix logic determining if there's CPU core usage data to draw. 2023-04-07 22:37:22 +02:00
Bartosz Taudul 1b824797a9 Do not project running regions end time to last time.
Just display known running regions, keeping the unended ones infinitely
collapsed. This makes the CPU core usage graph possibly display wrong
data at the end of capture. Note that this behavior was also present in
previous releases.
2023-04-07 22:37:22 +02:00
Bartosz Taudul 1ff9e0012b Add a note why context switches only have coarse visibility check. 2023-04-05 19:39:39 +02:00
Bartosz Taudul 51f832c031 Don't recalculate sty. 2023-04-05 19:24:58 +02:00
Bartosz Taudul f48415315a Build samples draw list only if visible. 2023-04-05 19:03:40 +02:00
Bartosz Taudul a9ee4c499e Build messages draw list only if visible. 2023-04-05 18:55:23 +02:00
Bartosz Taudul 4b8ac41345 Calculate CPU data draw lists only if visible. 2023-04-05 18:45:00 +02:00
Bartosz Taudul bb9219384f Do not recalculate sty. 2023-04-05 18:44:36 +02:00
Bartosz Taudul f2a2669ca8 Decouple CPU graph availability from having the draw data. 2023-04-05 18:21:12 +02:00
Bartosz Taudul 9500add83b Push yPos to TimelineItem::Preprocess(). 2023-04-05 18:07:09 +02:00
Bartosz Taudul 2b7b79352b Parallelize calculation of per-CPU context switches. 2023-04-02 22:10:22 +02:00
simplyWiri a8b42488ad Clamp scrolling to the difference between the deepest zone near the mouse, and the height of the window.
This prevents from unncessary scrolling when the trace does not exceed the size of the screen
2023-04-02 19:01:58 +10:00
Bartosz Taudul 33a640f848 Name worker threads. 2023-03-25 22:14:34 +01:00
Bartosz Taudul 5eebc5d7cf Preprocess CPU usage.
Things of note: Worker::GetCpuUsage() functionality was moved to
TimelineItemCpuData::PreprocessCpuUsage().
2023-03-25 17:55:15 +01:00
Bartosz Taudul dcf27f4989 Provide small font height in TimelineContext. 2023-03-25 17:25:10 +01:00
Bartosz Taudul c0136dbdcc Don't do unnecessary work if items are not visible. 2023-03-25 16:54:38 +01:00
Bartosz Taudul 13b31db561 Cosmetics. 2023-03-25 16:54:38 +01:00
Bartosz Taudul e3ec455aba Decouple check for existence from building draw lists.
We need to know if samples, context switches and messages are present to be
able to correctly calculate thread height. However, if the thread is not
visible, it is not necessary to provide a list of items to draw.
2023-03-25 16:52:27 +01:00
Bartosz Taudul 96d60ce626 Change GetNextFrameHeight() to GetHeight().
The GetNextFrameHeight() name correctness was very situational. It was
often used in the meaning of "get current frame height".
2023-03-25 15:12:33 +01:00
Bartosz Taudul 7ec68f8b52 Push item visibility to Preprocess(). 2023-03-25 15:10:58 +01:00
Bartosz Taudul 8908b68557 Fix lockup in context switch processing. 2023-03-25 00:45:13 +01:00
Bartosz Taudul 1e63406ac7 Replace previous iterator manipulation with a boolean. 2023-03-25 00:30:44 +01:00
Bartosz Taudul efa095e25f Simplify context switch precalculation. 2023-03-25 00:30:44 +01:00
Bartosz Taudul 734753a941 Fix MinVisNs type in messages preprocessing. 2023-03-24 23:15:11 +01:00
Bartosz Taudul b3e9ede557 Move context switch minpx calculation to rendering code. 2023-03-24 23:10:58 +01:00
Bartosz Taudul f2700b2786 Remove rather useless check.
The prev == it condition could only fire on the first run of the loop,
and on all subsequent runs prev (=next-1) will never be "it" anymore.

Lack of this condition changes nothing, as the following lines checking
for time distance between next and prev satisfy the same exit condition
(i.e. next-1 will be "it" only if lower_bound does not find anything,
hence next is farther away than MinVisNs).
2023-03-23 22:17:36 +01:00
Bartosz Taudul e0cc6edbfb Zone end times must be consistent. 2023-03-23 22:17:33 +01:00
Bartosz Taudul 40e08e9594 Draw messages using precalculated list. 2023-03-23 22:16:47 +01:00
Bartosz Taudul 6c21edd509 Drawing is not finished until function return. 2023-03-23 22:09:19 +01:00
Bartosz Taudul e321e91c7d TimelineItemThread can now determine visibility internally. 2023-03-23 21:56:04 +01:00
Bartosz Taudul a141aafaab Preprocess thread messages. 2023-03-23 21:47:40 +01:00
Bartosz Taudul fbc87275e7 Add highlighted message accessor to View. 2023-03-23 21:47:22 +01:00
Bartosz Taudul f55d0d0f55 Fix distance calculation in folding.
The folding process starts at the "next" item. The nextTime variable
represents a time point before which everything should be folded, because
all items in that range are smaller than MinVis range.

The lower_bound search finds a new "next" item, which will be beyond the
nextTime range. But nextTime has origin in the previous "next" item, which
may be not the last item in the folding range. If the distance between the
new "next" and the item before is smaller than MinVis, then the new "next"
item is also folded and the folding loop must continue to run.
2023-03-23 00:40:09 +01:00
Bartosz Taudul aa8175ed47 Include DPI scaling in folding calculations. 2023-03-23 00:39:45 +01:00
Bartosz Taudul fb032b4f9b Rewrite CPU zones folding. 2023-03-23 00:17:55 +01:00
Bartosz Taudul 527b5f3311 Rewrite ghost zone folding. 2023-03-23 00:04:12 +01:00
Bartosz Taudul c75b62e3d6 Rewrite samples folding. 2023-03-22 23:44:23 +01:00
Bartosz Taudul 83ae9868e2 Fix pixel and nanosecond domain mixing. 2023-03-22 22:41:19 +01:00
Bartosz Taudul 80c15c0f9b Draw samples using precalculated data. 2023-03-22 22:26:20 +01:00
Bartosz Taudul 8bbd50361a Remove unused variables. 2023-03-22 22:26:19 +01:00
Bartosz Taudul da6ea47541 Preprocess samples. 2023-03-22 22:26:19 +01:00