Commit Graph

1446 Commits

Author SHA1 Message Date
Bartosz Taudul
f37797db44 Save/load view state. 2019-08-28 19:45:22 +02:00
Bartosz Taudul
dc5444ff0f Notify UserData that view state should be preserved.
This is only active when a trace is loaded from a file (and state should
be persistent for future sessions using this trace), or when state is
saved to a file (so that future sessions will use current state).

No state is preserved by default, i.e. when the trace was not saved to a
file.
2019-08-28 19:37:01 +02:00
Bartosz Taudul
949c9cb121 Move some view data to a separate structure. 2019-08-28 19:35:54 +02:00
Bartosz Taudul
2a0d6ce4ad Add notification area indicator for hidden timeline items. 2019-08-28 18:36:05 +02:00
Bartosz Taudul
ed83762a1a Keep things simple. 2019-08-28 01:29:58 +02:00
Bartosz Taudul
ef287c8aab Display external thread names of profiled program on CPU data timeline. 2019-08-27 23:17:53 +02:00
Bartosz Taudul
8eb7220dd7 Use the new thread name getter. 2019-08-27 23:08:14 +02:00
Bartosz Taudul
f8e3d1ad0a Try to fix current program's thread names.
External thread names can be cut-off to include only the first 15-or-so
characters. If a local thread name is known and its beginning matches
the external name, use the local name instead.
2019-08-27 22:41:03 +02:00
Bartosz Taudul
8bb13ca09e Use captured program name in CPU data.
This fixes android application names, which are cut to show only last
15-or-so letters.
2019-08-27 22:35:53 +02:00
Bartosz Taudul
eb78ecd0fd Display frame number in playback window. 2019-08-26 19:01:59 +02:00
Bartosz Taudul
3e4d3efbdb Extract frame number getter. 2019-08-26 19:01:51 +02:00
Bartosz Taudul
e5a11ad593 Allow sorting CPU data table by different columns. 2019-08-25 00:17:06 +02:00
Bartosz Taudul
4376757912 Display thread ids in options menu. 2019-08-24 23:43:36 +02:00
Bartosz Taudul
2b9ec14c92 Display threads ids as base-10 numbers. 2019-08-24 23:41:33 +02:00
Bartosz Taudul
1712431dfd Compress external threads. Saves 4 bytes per ctx switch.
Dropped support for loading context switch data in previous versions of
traces.
2019-08-19 23:09:58 +02:00
Bartosz Taudul
e60b2884f4 Mark local threads with different color. 2019-08-18 14:57:44 +02:00
Bartosz Taudul
9a3974b8f1 Display process times in graphical form. 2019-08-18 14:51:25 +02:00
Bartosz Taudul
2eed28b19f Highlight current process. 2019-08-18 14:46:59 +02:00
Bartosz Taudul
ae9cae781a Display CPU migrations percentage. 2019-08-18 14:44:00 +02:00
Bartosz Taudul
691fe06bfe Compare pids to determine if thread is local untracked. 2019-08-18 14:40:04 +02:00
Bartosz Taudul
95f4162870 Display number of tracked processes. 2019-08-18 14:30:52 +02:00
Bartosz Taudul
7a036b56b1 Add icon to CPU data button. 2019-08-18 14:30:01 +02:00
Bartosz Taudul
c5060da185 Display unknown pid as unknown. 2019-08-18 14:28:56 +02:00
Bartosz Taudul
faac08865a Display basic information about CPU usage. 2019-08-18 12:28:38 +02:00
Bartosz Taudul
fa573ef4cf Display PID. 2019-08-17 22:21:02 +02:00
Bartosz Taudul
1024992493 React to enter key in "go to frame" dialog. 2019-08-17 22:01:06 +02:00
Bartosz Taudul
258cf38d64 Fix flicker. 2019-08-17 21:59:08 +02:00
Bartosz Taudul
0ea8789f39 Display CPU core in waking up thread popup. 2019-08-17 21:24:40 +02:00
Bartosz Taudul
414f903cc5 Collect thread wakeup data. 2019-08-17 17:05:29 +02:00
Bartosz Taudul
f957f64ce1 No magic numbers. 2019-08-17 16:26:59 +02:00
Bartosz Taudul
65e62dea06 Display thread ids next to thread names in CPU data. 2019-08-17 03:06:54 +02:00
Bartosz Taudul
e975c4d7bf Also retrieve external thread names. 2019-08-16 19:49:16 +02:00
Bartosz Taudul
134a8c5d2a Fix positioning. 2019-08-16 19:32:25 +02:00
Bartosz Taudul
edd5338faa Display untracked threads. 2019-08-16 19:30:46 +02:00
Bartosz Taudul
fe7f56b022 Implement retrieval of external process names. 2019-08-16 19:22:23 +02:00
Bartosz Taudul
56e6795c76 Add per-cpu context switch tooltips. 2019-08-16 18:39:03 +02:00
Bartosz Taudul
7e81f3250e Add CPU tooltip. 2019-08-16 18:39:03 +02:00
Bartosz Taudul
8e71e2dba5 Draw per-CPU global context switch data. 2019-08-16 18:22:57 +02:00
Bartosz Taudul
8bc4258e29 Display count of per-cpu context switch data. 2019-08-16 16:51:18 +02:00
Bartosz Taudul
9e0fe226df Add small font. 2019-08-16 16:02:57 +02:00
Bartosz Taudul
95879d2bd9 Use proper UI element to indicate selectable items. 2019-08-16 00:12:03 +02:00
Bartosz Taudul
889eddd646 Pack ContextSwitchData. Saves 3 bytes per context switch region. 2019-08-15 23:53:47 +02:00
Bartosz Taudul
e90ddf7ee5 Don't search whole data set twice. 2019-08-15 23:03:37 +02:00
Bartosz Taudul
c22c259a13 Pack time and thread in MemEvent.
This saves 4 bytes per logged memory allocation. Memory savings for
selected traces:

android     2945 MB -> 2766 MB
chicken     2261 MB -> 2245 MB
q3bsp-mt    6085 MB -> 6043 MB
mem         6788 MB -> 6468 MB
2019-08-15 23:02:43 +02:00
Bartosz Taudul
41beff29a9 Remove redundant GetTimeBegin().
Traces now start at zero time.
2019-08-15 21:04:20 +02:00
Bartosz Taudul
5e20b3f28a Pack time and source location in LockEvent. 2019-08-15 20:39:16 +02:00
Bartosz Taudul
bf3ad57456 Pack start time and srcloc together in ZoneEvent.
This reduces ZoneEvent struct size by 2 bytes. Memory savings on various
captures:

10.62 GB -> 10.29 GB
 2342 MB ->  2276 MB
 1706 MB ->  1635 MB
 6277 MB ->  6085 MB
2019-08-15 20:17:36 +02:00
Bartosz Taudul
f5775a2d6e Display list of CPUs on which zone was running. 2019-08-15 20:17:36 +02:00
Bartosz Taudul
350e526ec0 Fix crash when zone exists before thread context switches appear. 2019-08-15 20:17:36 +02:00
Bartosz Taudul
659907c972 Store srcloc identifiers using 16 bit.
This reduces various structure sizes by 2 bytes. Memory usage reduction
on various traces:

big               11 GB -> 10.62 GB
chicken         2436 MB ->  2342 MB
drl-light-big   1761 MB ->  1706 MB
q3bsp-mt        6469 MB ->  6277 MB
2019-08-15 20:15:48 +02:00
Bartosz Taudul
416113fdcb Drop support for ETC1 frame images. 2019-08-15 16:29:50 +02:00
Bartosz Taudul
aa00b1c4c4 Add Win10 wait reasons. 2019-08-15 01:48:50 +02:00
Bartosz Taudul
690a6d12d7 Properly handle incomplete context switch data. 2019-08-14 22:10:54 +02:00
Bartosz Taudul
7549c50bab Fix time range reset condition. 2019-08-14 21:53:09 +02:00
Bartosz Taudul
26f417a841 Add option to display running time in find zone menu. 2019-08-14 21:33:43 +02:00
Bartosz Taudul
9ec0724ffb Support dynamic recalculation of min, max and total time. 2019-08-14 21:33:42 +02:00
Bartosz Taudul
ee77ff020a Optimize calculation of zone running time. 2019-08-14 20:47:21 +02:00
Bartosz Taudul
a5ef38812e Display list of regions where thread was waiting. 2019-08-14 18:28:52 +02:00
Bartosz Taudul
d520f1cc48 Display zone running time in zone tooltip. 2019-08-14 18:28:52 +02:00
Bartosz Taudul
1ae540c7a1 Display zone running time in zone info window. 2019-08-14 18:28:52 +02:00
Bartosz Taudul
858c94e12e Add interface for calculation zone running time. 2019-08-14 18:28:52 +02:00
Bartosz Taudul
0b12db5ee6 Display number of thread running state regions. 2019-08-14 17:36:19 +02:00
Bartosz Taudul
fadac0b433 Display thread running time. 2019-08-14 17:12:48 +02:00
Bartosz Taudul
72918cda19 Include recorded context switches in thread lifetime. 2019-08-14 17:03:33 +02:00
Bartosz Taudul
e39b1abce5 Handle linux wait states. 2019-08-14 14:02:31 +02:00
Bartosz Taudul
0bb0c10e3c Revert "Save one byte on ContextSwitchData."
Counting bits is hard, let's go shopping.
2019-08-14 13:55:05 +02:00
Bartosz Taudul
71a5cffc13 Add context switch tooltips. 2019-08-13 16:20:43 +02:00
Bartosz Taudul
d77c87ae1c Allow disabling context switch drawing. 2019-08-13 15:16:46 +02:00
Bartosz Taudul
874a2596f7 Improve context switches drawing. 2019-08-13 15:16:46 +02:00
Bartosz Taudul
7f856a1b16 Very bad context switch visualization. 2019-08-13 13:10:37 +02:00
Bartosz Taudul
8c494eabbf Display number of context switch regions. 2019-08-13 02:35:32 +02:00
Bartosz Taudul
8aa0be39d5 Drop support for CPU id queries. 2019-08-12 23:05:34 +02:00
Bartosz Taudul
a9b41eb657 Rework processing bad files. 2019-08-12 12:04:27 +02:00
Bartosz Taudul
530f293c49 Better way to handle auto scrolling. 2019-08-10 22:06:51 +02:00
Bartosz Taudul
853e9c17e3 Display client address. 2019-08-04 15:56:52 +02:00
Bartosz Taudul
07da2e506a Fix deadlock problems. 2019-08-04 15:55:42 +02:00
Rokas Kupstys
b24ac75111 Move connection window into a popup when connected. 2019-08-04 13:58:43 +03:00
Bartosz Taudul
eed7039853 Another GPU time adjust fix. 2019-08-04 01:42:44 +02:00
Bartosz Taudul
e87b8d455e Use Theil estimator randomized approximation. 2019-08-04 01:40:11 +02:00
Bartosz Taudul
6898fd9e42 GPU time adjust fixes. 2019-08-04 00:38:08 +02:00
Bartosz Taudul
9b7384b407 Fix multiple GPU drift entry fields. 2019-08-04 00:33:31 +02:00
Bartosz Taudul
323c37bd33 Fix GPU zone search. 2019-08-04 00:30:09 +02:00
Bartosz Taudul
a642abfde0 Implement automatic GPU clock drift calculation. 2019-08-04 00:23:23 +02:00
Bartosz Taudul
da88e32887 Display FPS counts next to frame times. 2019-08-03 15:20:31 +02:00
Bartosz Taudul
6c958f6177 Increase height of frame graph. 2019-08-03 14:55:08 +02:00
Bartosz Taudul
58003e7a6b Draw target frame time lines. 2019-08-03 14:55:08 +02:00
Bartosz Taudul
9b6c405485 Bin number shouldn't be floating point. 2019-08-02 19:43:08 +02:00
Bartosz Taudul
a4e7a341c0 Proper handling of disconnect request. 2019-08-01 23:14:09 +02:00
Bartosz Taudul
344d36086f Simplify loop. 2019-07-31 18:53:51 +02:00
Bartosz Taudul
f41834370c Also display number of visible messages. 2019-07-31 02:16:14 +02:00
Bartosz Taudul
ccd88a9e27 Add text coloring to memory window. 2019-07-31 02:06:01 +02:00
Bartosz Taudul
68df815ef6 Display total message count. 2019-07-31 00:34:24 +02:00
Bartosz Taudul
5dff7b5d1e AVX2 version of plot min max calculation.
Slightly faster (~5%) than the autovectorized serial code.
2019-07-29 20:59:22 +02:00
Bartosz Taudul
7a878cf4c7 Pause playback when playback window is closed. 2019-07-29 01:51:45 +02:00
Bartosz Taudul
461f49feb8 Fix drawing zones at extreme zoom out levels.
This is needed due to int64_t -> uint64_t zone end cast hack. There are
no side effects: zero time represents start of the timer, which would be
unix epoch or system bootup time.
2019-07-28 01:58:59 +02:00
Bartosz Taudul
2e8d20b6e8 Keep zone info windows headers at top. 2019-07-27 13:28:18 +02:00
Bartosz Taudul
1afcd24dc6 Use big font in zone info windows. 2019-07-27 13:25:31 +02:00
Bartosz Taudul
245c6f9f01 Use big font in lock info window. 2019-07-27 13:18:59 +02:00
Bartosz Taudul
93195b6647 Move trace version display to trace statistics section. 2019-07-27 13:14:44 +02:00
Bartosz Taudul
2654a3010c Keep trace info header at top of the window. 2019-07-27 13:13:50 +02:00
Bartosz Taudul
e1af87744b Use less space for call stack tree headers. 2019-07-27 13:10:53 +02:00
Bartosz Taudul
fb11d67d8e Keep memory window header at top. 2019-07-27 13:06:23 +02:00
Bartosz Taudul
a7ef99d0b0 Keep find zone, compare headers at top. 2019-07-26 23:43:41 +02:00
Bartosz Taudul
f2cdb64aae Display trace descriptions in compare menu. 2019-07-26 23:33:49 +02:00
Bartosz Taudul
be3b458f28 Load second trace user data in compare menu. 2019-07-26 23:25:03 +02:00
Bartosz Taudul
e5d5af84fd Allow setting custom description of the trace. 2019-07-26 23:21:28 +02:00
Bartosz Taudul
27965e8690 Add user data storage handler. 2019-07-26 23:15:12 +02:00
Bartosz Taudul
c1b70c6519 Display histogram time range on histogram. 2019-07-26 22:25:21 +02:00
Bartosz Taudul
5f96c55a3e Add background tasks notification tooltip. 2019-07-25 21:21:20 +02:00
Bartosz Taudul
9f29ddd562 Messages window should be scrollable due to thread list. 2019-07-25 20:50:30 +02:00
Bartosz Taudul
d3e8fe0133 Add messages filter clear button. 2019-07-25 20:49:44 +02:00
Bartosz Taudul
0f574b5547 Verify source file modification time against capture time. 2019-07-25 20:44:10 +02:00
Bartosz Taudul
c4b472b6e0 Ditto for call stack window. 2019-07-25 20:34:35 +02:00
Bartosz Taudul
269c3d4530 Keep statistics window headers always on top of the window. 2019-07-25 19:57:29 +02:00
Bartosz Taudul
2291b91ee0 Remove unnecessary separators. 2019-07-25 19:50:22 +02:00
Bartosz Taudul
30f76d34a3 Fix printf warnings. 2019-07-25 18:41:52 +02:00
Bartosz Taudul
e5a3d7aa25 Workaround scroll-to-message regression. 2019-07-24 21:40:39 +02:00
Bartosz Taudul
9ad9045078 Disable messages following when focusing on a message. 2019-07-24 02:21:51 +02:00
Bartosz Taudul
5da2076214 Add optional 2x zoom to frame images playback. 2019-07-19 00:51:52 +02:00
Bartosz Taudul
eceff55f5a Add message filtering. 2019-07-13 01:48:43 +02:00
Bartosz Taudul
387674a40a Auto-scroll message list to bottom. 2019-07-13 01:25:37 +02:00
Bartosz Taudul
bcecd6e3a6 Always keep message list options at top. 2019-07-13 00:40:02 +02:00
Bartosz Taudul
c48ab4cb23 Use big font in trace information window. 2019-07-12 19:19:36 +02:00
Bartosz Taudul
7fb9bde9e9 Pass big font to TracyView. 2019-07-12 19:16:56 +02:00
Bartosz Taudul
fc28f827bc Rearrange trace information window. 2019-07-12 19:12:04 +02:00
Bartosz Taudul
8c9d46ef29 Display application info in info window. 2019-07-12 18:39:07 +02:00
Bartosz Taudul
689f4999e3 Reorder threads by drag and drop. 2019-07-11 20:29:20 +02:00
Bartosz Taudul
6b06b64caf Smaller histogram controls. 2019-06-30 18:11:19 +02:00
Bartosz Taudul
10bcc8c770 Switch to DXT1 textures in profiler utility. 2019-06-27 19:14:51 +02:00
Bartosz Taudul
fc106079c5 Remove CPU migration highlight for zones. 2019-06-26 21:35:09 +02:00
Bartosz Taudul
bc3c375b02 Display crash icon in notification area. 2019-06-26 21:02:04 +02:00
Bartosz Taudul
b8794f64be Extract crash tooltip to a separate function. 2019-06-26 21:01:54 +02:00
Bartosz Taudul
a8dcd5d153 Ctrl-click on frame in frame overview to show playback window. 2019-06-23 00:11:46 +02:00
Bartosz Taudul
f125254d14 Cosmetics. 2019-06-23 00:00:16 +02:00
Bartosz Taudul
2f707bd152 Improve frame label drawing logic. 2019-06-22 23:49:30 +02:00
Bartosz Taudul
7217a99dc2 Always show at least one pixel of a frame in frame overview. 2019-06-22 22:48:32 +02:00
Bartosz Taudul
c48cd10f35 Don't divide by zero in zero-length zones. 2019-06-22 22:42:57 +02:00
Bartosz Taudul
1d4117f515 Fix typo. 2019-06-22 14:55:01 +02:00
Bartosz Taudul
ad26eaa9f1 Don't put "select/unselect all" buttons in a separate line. 2019-06-22 14:43:58 +02:00
Bartosz Taudul
0944eab707 Add background tasks icon. 2019-06-22 14:37:17 +02:00
Bartosz Taudul
e33690c5f3 Allow switching whitespace visibility in source code view. 2019-06-22 14:24:39 +02:00
Bartosz Taudul
18cef20db9 Silence signed/unsigned comparison warnings. 2019-06-22 14:15:25 +02:00
Bartosz Taudul
70a7033a64 Use proper type for iteration. 2019-06-22 14:07:26 +02:00
Bartosz Taudul
aaefd6e1d6 Simplify code. 2019-06-22 14:06:10 +02:00
Bartosz Taudul
54ae4c84ba Silence warning about unused variable. 2019-06-22 14:04:48 +02:00
Bartosz Taudul
323f0e1ae3 Don't create variable for exception in catch block. 2019-06-22 13:41:24 +02:00
Bartosz Taudul
eb4c7ca9ea Ignore useless warnings. 2019-06-22 13:40:00 +02:00
Bartosz Taudul
a3ce08a9f9 Display zone time as percentage of average zone time. 2019-06-22 13:22:13 +02:00
Bartosz Taudul
5fde56d96a Remove hidden zone time without profiling tooltip. 2019-06-22 13:10:46 +02:00
Bartosz Taudul
659ef87974 Animate highlighted messages on the timeline. 2019-06-21 14:25:51 +02:00