Commit Graph

3509 Commits

Author SHA1 Message Date
Bartosz Taudul
1dff4329e4
Adapt window sizes to DPI scaling. 2021-11-18 19:20:45 +01:00
Bartosz Taudul
4d397aeb67
Add helper for getting DPI scaling. 2021-11-18 19:04:21 +01:00
Bartosz Taudul
1002e949d6
Enable playback frame change with mouse wheel. 2021-11-15 02:34:13 +01:00
Bartosz Taudul
176bc279f1
Don't copy short_ptr. 2021-11-15 02:18:19 +01:00
Bartosz Taudul
641338cb3c
Remove postponed samples when they are handled. 2021-11-14 23:55:44 +01:00
Bartosz Taudul
bb30333947
Implement erase() in SortedVector.
Requires vector to be sorted, in order to not bother with recalculating
sortedEnd value.
2021-11-14 23:54:39 +01:00
Bartosz Taudul
710a488af0
Handle postponed samples with SortedVector. 2021-11-14 23:48:50 +01:00
Bartosz Taudul
f2380590f9
Limit server query space to 8K entries.
In the default configuration this limit is unlikely to be hit. On Windows the
send buffer is 64 KB, which results in ~5K entries. On Linux the buffer is a
bit higher and the number of entries is lower than 7K.
2021-11-14 18:14:52 +01:00
Bartosz Taudul
0e05d70691
Remove obsolete check. 2021-11-14 17:09:37 +01:00
Bartosz Taudul
ffa8bf4d75
Use table instead of map to track reentrant calls. 2021-11-14 16:42:11 +01:00
Bartosz Taudul
cb004e9cc0
Sort source location zones only when needed. 2021-11-14 16:05:55 +01:00
Bartosz Taudul
befeffb61e
Add ensure_sorted() method for SortedVector. 2021-11-14 15:57:20 +01:00
Bartosz Taudul
404168ec69
Check whether symbols are ready, not source locations. 2021-11-14 15:51:29 +01:00
Bartosz Taudul
e0872ce61b
Cosmetics. 2021-11-14 15:51:27 +01:00
Bartosz Taudul
864d7e4e47
Sort symbols list only when actually needed. 2021-11-14 13:05:05 +01:00
Bartosz Taudul
b978a7c652
Sort plot data only when needed (i.e. to draw). 2021-11-14 13:01:27 +01:00
Bartosz Taudul
50e532ebc0
Display unknown locations dimmed in callstack trees. 2021-11-14 02:27:43 +01:00
Bartosz Taudul
19f87502d3
Keep wait stacks header on top. 2021-11-14 02:17:02 +01:00
Bartosz Taudul
2040ef945f
Color kernel frames in callstack trees. 2021-11-14 02:06:22 +01:00
Bartosz Taudul
014f084393
UI cosmetics. 2021-11-13 22:27:54 +01:00
Bartosz Taudul
41c5d93a11
Use big icons in the rest of dialogs. 2021-11-13 22:23:18 +01:00
Bartosz Taudul
be264896f0
Use big icons in bad version dialogs. 2021-11-13 22:20:00 +01:00
Bartosz Taudul
d4a5df0244
Use big icon in waiting for connection dialog. 2021-11-13 22:14:47 +01:00
Bartosz Taudul
1d7ab70199
Non-memory tree callstacks are not needed. 2021-11-13 22:09:16 +01:00
Bartosz Taudul
b4726833e9
Cosmetics. 2021-11-13 22:09:10 +01:00
Bartosz Taudul
633cd1262c
Draw callstack tree for wait stacks. 2021-11-13 22:06:04 +01:00
Bartosz Taudul
5f9a0ab61f
Wait stacks mode selection. 2021-11-13 22:06:04 +01:00
Bartosz Taudul
4f6e9bbb65
Generic callstack tree builder.
Previously this was exclusive for memory callstacks.
2021-11-13 22:06:04 +01:00
Bartosz Taudul
c6be16dcd2
Rename PathData -> MemPathData. 2021-11-13 21:28:56 +01:00
Bartosz Taudul
a2547ccf1d
Rename CallstackFrameTree -> MemCallstackFrameTree. 2021-11-13 21:26:28 +01:00
Bartosz Taudul
98edee9b07
Change memory call stack tree icons. 2021-11-13 20:42:52 +01:00
Bartosz Taudul
667112c71f
Some old traces might have invalid image names. 2021-11-13 20:34:54 +01:00
Bartosz Taudul
0c7c3ae641
Time range limits for wait stacks. 2021-11-13 18:43:55 +01:00
Bartosz Taudul
94d4272c9c
Allow limiting wait stacks to certain threads. 2021-11-13 18:20:06 +01:00
Bartosz Taudul
265a39e7c9
Don't select out-of-context asm lines. 2021-11-13 17:35:02 +01:00
Bartosz Taudul
50627646c1
Don't highlight asm lines out of context on hover. 2021-11-13 16:36:46 +01:00
Bartosz Taudul
25316ddada
Display notification icon when context is limited. 2021-11-13 16:34:51 +01:00
Bartosz Taudul
cc425c4a2d
Separate function for checking asm function context. 2021-11-13 16:34:50 +01:00
Bartosz Taudul
9ba5180b04
Add wait stacks window. 2021-11-13 15:58:25 +01:00
Bartosz Taudul
45df37e3a9
Separate callstack table drawing functionality. 2021-11-13 15:56:57 +01:00
Bartosz Taudul
c1f6d6c9ce
Cosmetics. 2021-11-13 15:39:37 +01:00
Bartosz Taudul
14b469f219
Direct selection of find zone callstack. 2021-11-13 15:31:48 +01:00
Bartosz Taudul
151eadc69e
Direct selection of sample entry call stack index. 2021-11-13 15:15:49 +01:00
Bartosz Taudul
601f0a17df
Remove "Go to frame" button. 2021-11-13 15:13:35 +01:00
Bartosz Taudul
81c66ad126
Fix samples order on save, not load.
Sorting samples during load was a major mistake, as three different background
processing threads were concurrently accessing the samples table, and it was
being sorted in one of them!
2021-11-13 03:25:47 +01:00
Bartosz Taudul
0ab73e2aa7
Detect context switch samples during reconstruction. 2021-11-13 03:15:20 +01:00
Bartosz Taudul
484ed84252
Display context switch samples count. 2021-11-13 02:52:08 +01:00
Bartosz Taudul
d8d6423266
Context switch samples counting. 2021-11-13 02:47:39 +01:00
Bartosz Taudul
8ef212c26e
Determine if postponed callstacks are for context switches.
Samples are processed only when new context switch data has been received.
2021-11-13 02:44:54 +01:00
Bartosz Taudul
745b795d50
Detect context switch callstack samples.
Context switch callstack samples are not included in the sampling data
statistics (as these don't represent random sampling), but are rather put into
a separate dedicated data structure.

For this to work, a complete context switch data has to be available for the
callstack timestamp. There is no guarantee it will be present at the time it
is needed, so a second structure is added to allow postponing qualification of
callstacks.
2021-11-13 02:40:32 +01:00
Bartosz Taudul
5b799e0e45
Monitor when new context switch data is received. 2021-11-13 02:38:33 +01:00
Bartosz Taudul
00834ed32b
No need to pass time and callstack. 2021-11-13 02:26:11 +01:00
Bartosz Taudul
06c1bb4e59
Open callstack windows when clicking on context switch. 2021-11-13 01:34:49 +01:00
Bartosz Taudul
4b74777fcf
Display image name in callstack tooltips. 2021-11-13 01:31:28 +01:00
Bartosz Taudul
1200409a44
Display context switch wait call stack. 2021-11-13 01:21:47 +01:00
Bartosz Taudul
ce8e42f00b
Separate drawing callstack tooltip from drawing its contents. 2021-11-13 01:08:36 +01:00
Bartosz Taudul
f925da5e01
Handle fiber enter -> enter case (without leave in between). 2021-11-06 21:14:37 +01:00
Bartosz Taudul
d33de972f0
Properly show fiber context switch data. 2021-11-06 21:06:08 +01:00
Bartosz Taudul
40cd5435df
Fix context switch reconstruction condition. 2021-11-06 20:49:15 +01:00
Bartosz Taudul
69e5cf796d
Construct faux context switch data from fiber events. 2021-11-06 20:38:16 +01:00
Bartosz Taudul
efeed326bf
Context switch data may exists without CPU data. 2021-11-06 20:22:08 +01:00
Bartosz Taudul
904a444ea5
Label fiber threads across the UI. 2021-11-06 19:27:36 +01:00
Bartosz Taudul
0075050679
Allow checking if thread is a fiber. 2021-11-06 19:02:02 +01:00
Bartosz Taudul
3ede2a1345
Explicit tracking of fiber state in ThreadData.
This replaces the use of hard-to-track global state with well-defined accessor
functionality.
2021-11-06 18:55:29 +01:00
Bartosz Taudul
373a6fc19e
Add event debug routine. 2021-11-04 22:30:16 +01:00
Bartosz Taudul
4c774130ee
Allow direct switching from one fiber to another. 2021-11-04 17:51:32 +01:00
Bartosz Taudul
fceb065329
Fiber name transport. 2021-11-03 18:57:30 +01:00
Bartosz Taudul
211b202d8e
Process fiber entry and leave events. 2021-11-02 01:53:10 +01:00
Bartosz Taudul
b4e4c05088
Thread context data may be invalidated due to fibers. 2021-11-02 01:52:41 +01:00
Bartosz Taudul
d522af99b9
Threads may be mapped to fibers. 2021-11-02 01:51:54 +01:00
Bartosz Taudul
0718330016
Add fiber labels to places with thread information. 2021-11-02 01:48:28 +01:00
Bartosz Taudul
e5c44afdcb
Distinguish fiber threads with green color. 2021-11-02 01:48:07 +01:00
Bartosz Taudul
bb72bf10e9
Add fiber failures. 2021-11-02 01:47:31 +01:00
Bartosz Taudul
93b6d88c4c
Save/load fiber thread flag. 2021-11-02 01:46:29 +01:00
Bartosz Taudul
8f44f1c68b
Store fiber state is ThreadData. 2021-11-02 01:45:01 +01:00
Bartosz Taudul
8f6a911f1e
Save/load sum of values in plots. 2021-10-17 13:14:44 +02:00
Bartosz Taudul
0b190b1a69
Calculate sum of values in reconstructed memory plot. 2021-10-17 13:14:23 +02:00
Bartosz Taudul
04db76d5fd
Calculate plot values sum during data import. 2021-10-17 13:07:37 +02:00
Bartosz Taudul
facd2be33b
Display average plot value. 2021-10-17 13:05:10 +02:00
Bartosz Taudul
0bd1364c2f
Calculate plot values sum. 2021-10-17 13:04:56 +02:00
Bartosz Taudul
a1511a39bd
Delta-encode code information pointers. 2021-10-16 16:29:06 +02:00
Bartosz Taudul
dfb1ce64df
Sample data inconsistency warning. 2021-10-16 16:15:19 +02:00
Bartosz Taudul
bcaac7b53f
Add ~2 second overflow grace period.
This fixes issues when the GPU is actually permitted to report out-of-order
timestamps (e.g. when tasks are scheduled by the GPU, instead of being forced
to execute in submission order).
2021-10-11 00:29:24 +02:00
Bartosz Taudul
d3905bd4bb
Add context to zone text failures. 2021-10-10 14:14:33 +02:00
Bartosz Taudul
930ef77ea9
Add zone value failure context. 2021-10-10 14:12:13 +02:00
Bartosz Taudul
9300934fa5
Separate zone value and text failures. 2021-10-10 14:05:21 +02:00
Bartosz Taudul
07bc665d8c
Drop support for Cygwin. 2021-10-07 23:28:40 +02:00
Bartosz Taudul
b7a27d02af
Fix total time in find zone, if limit range is enabled. 2021-09-28 01:11:22 +02:00
Bartosz Taudul
9cb54982cb
Fix crash. 2021-09-27 18:13:45 +02:00
Bartosz Taudul
c2e94355f0
Add icon to samples label. 2021-09-27 02:07:02 +02:00
Bartosz Taudul
99f2d0e059
Fix vertical spacing in inline symbols list. 2021-09-27 01:54:37 +02:00
Bartosz Taudul
28ae970887
Remove trailing whitespace. 2021-09-27 01:54:15 +02:00
xavier
f37ef1affd Display the samples after the groups in the "find zone" window
to make it clear they are filtered by selected group.
2021-09-23 21:03:56 +02:00
xavier
61670e30aa Update samples statistics continuously in the "find zone" window 2021-09-23 21:03:56 +02:00
xavier
63acfe72e7 Apply group filters to the samples statistics in the "find zone" window
reduce memory by storing the thread ids next to the zones intead of
making zone lists per thread.

speed-up by reading the zones in linear order rather than bisecting
the whole list for each sample.
2021-09-23 21:03:56 +02:00
xavier
41130d2a69 Avoid useless work when there aren't any samples 2021-09-23 21:03:56 +02:00
xavier
1233b39b69 Move samples before groups in "find zone" window
and fix style
2021-09-23 21:03:56 +02:00
xavier
0089c832f7 Cache samples statistics in the "find zone" window 2021-09-23 21:03:56 +02:00
xavier
ed42c2388c Add samples statistics to the "find zone" window 2021-09-23 21:03:56 +02:00
xavier
e4ce9f0f41 Include threadid in SampleDataRange
TODO: maybe make lists per thread to avoid increasing the packed structure by 2 bytes?
2021-09-23 21:03:56 +02:00