Commit Graph

1592 Commits

Author SHA1 Message Date
Bartosz Taudul
1b6c79fa7b More magic vector fixes. 2019-11-10 02:10:21 +01:00
Bartosz Taudul
226a7b7cfb Magic vectors in GPU children list. 2019-11-10 02:03:31 +01:00
Bartosz Taudul
c65d524725 Magic vectors in GPU zone info window. 2019-11-10 01:59:20 +01:00
Bartosz Taudul
d32e3cb867 Adapt GPU zone utility functions to magic vectors. 2019-11-10 01:56:28 +01:00
Bartosz Taudul
4ed4e1005c Magic vectors in GPU drawing setup. 2019-11-10 01:35:57 +01:00
Bartosz Taudul
675e6a8d1a Support magic vectors for GPU zones. 2019-11-10 01:30:10 +01:00
Bartosz Taudul
06ad948abc Adapt zone children to magic vectors. 2019-11-10 01:23:44 +01:00
Bartosz Taudul
50efa8f672 Adapt time distribution calculation to magic vectors. 2019-11-10 01:08:15 +01:00
Bartosz Taudul
0c1f3ac16d Adapt zone getters to magic vectors. 2019-11-10 00:57:44 +01:00
Bartosz Taudul
8ab2cf09b7 Handle magic vectors during dispatch. 2019-11-10 00:00:40 +01:00
Bartosz Taudul
7be19193d9 Use adapters during zone level iteration. 2019-11-10 00:00:40 +01:00
Bartosz Taudul
d741fb0af9 Plot can be empty if it was only configured. 2019-11-06 12:08:20 +01:00
Bartosz Taudul
5d3392428e Remove unneeded includes. 2019-11-06 01:21:22 +01:00
Bartosz Taudul
cfce429fca Format plot values according to requested formatting. 2019-11-05 18:08:42 +01:00
Bartosz Taudul
6a500ccdb3 Don't display CPU usage until data is ready. 2019-11-05 01:28:44 +01:00
Bartosz Taudul
09d6f3f917 Check if CPU graph is not obscured. 2019-11-04 01:15:49 +01:00
Bartosz Taudul
9bc6a3e0ee Add zone color boxes to parent groups in find zone menu. 2019-11-03 22:52:24 +01:00
Bartosz Taudul
209c1fdc72 Small radio buttons in find zone menu. 2019-11-03 22:32:34 +01:00
Bartosz Taudul
9b5ec8451f Remove dead assignment. 2019-11-03 16:57:31 +01:00
Bartosz Taudul
dfc35c1bf1 Fix crashes when callstack frames are not yet available. 2019-11-03 16:44:26 +01:00
Bartosz Taudul
d9c3238462 Save 2 bytes per PlotItem.
Memory savings:

android     2614 MB -> 2487 MB (95%)
chicken     1932 MB -> 1852 MB (95%)
mem         6067 MB -> 5747 MB (94%)
q3bsp-mt    5059 MB -> 5017 MB (99%)
q3bsp-st    1211 MB -> 1171 MB (96%)
2019-11-03 16:29:45 +01:00
Bartosz Taudul
acce6867f1 Selecting a zone in time distribution list opens zone statistics. 2019-11-03 03:08:23 +01:00
Bartosz Taudul
13a7444f03 Add zone color boxes to time distribution table. 2019-11-02 23:14:49 +01:00
Bartosz Taudul
c294e62f5e Add zone color boxes to child zone list. 2019-11-02 23:11:37 +01:00
Bartosz Taudul
1a6f04f6ce Add zone color boxes to zone trace. 2019-11-02 23:05:11 +01:00
Bartosz Taudul
3a304ad054 Add zone color boxes to statistics menu. 2019-11-02 23:00:42 +01:00
Bartosz Taudul
04cb7732b8 Add zone color boxes to compare menu. 2019-11-02 22:58:50 +01:00
Bartosz Taudul
4dde1ca070 Add zone color boxes to find zone menu. 2019-11-02 22:48:00 +01:00
Bartosz Taudul
b7cd28ef72 Add source location color retriever. 2019-11-02 22:45:11 +01:00
Bartosz Taudul
ce82bb816b Use short ptr for find zone grouping data.
Overall, the short ptr changes have the following effect on memory
usage:

big         9007 MB -> 8670 MB (96%)
chicken     2007 MB -> 1932 MB (96%)
drl-l-b     1383 MB -> 1304 MB (94%)
q3bsp-mt    5252 MB -> 5059 MB (96%)
long        5152 MB -> 4799 MB (93%)
fi-big      4141 MB -> 4000 MB (96%)
2019-11-02 16:54:12 +01:00
Bartosz Taudul
03656b2320 Remove unused variable. 2019-11-02 16:54:12 +01:00
Bartosz Taudul
a40bbacb17 Use short ptr for CPU zone data. 2019-11-02 16:54:12 +01:00
Bartosz Taudul
cb20bf01f9 Use short ptr for GPU zone data. 2019-11-02 16:54:11 +01:00
Bartosz Taudul
c7664b0a98 Use short ptr in LockEventPtr. 2019-11-02 16:17:45 +01:00
Bartosz Taudul
0552d75400 Allow filtering entries in statistics menu. 2019-11-01 20:49:02 +01:00
Bartosz Taudul
f88ec0c141 Convert namespaces combo box to radio buttons. 2019-11-01 20:23:22 +01:00
Bartosz Taudul
13b656fe61 Make srcloc dynamic color depend on function name. 2019-11-01 20:17:25 +01:00
Bartosz Taudul
d38257ea90 Add zone coloring mode based on source location. 2019-11-01 02:07:55 +01:00
Bartosz Taudul
978071f2ba Allow grouping zones by parent. 2019-10-31 15:00:22 +01:00
Bartosz Taudul
c0df3dd965 Implement getting zone parent when thread id is known. 2019-10-31 14:59:52 +01:00
Bartosz Taudul
25b610a36f Pack child into GPU start/end in GpuEvent (saves 4 bytes).
long    5152 MB -> 5061 MB
2019-10-30 23:50:37 +01:00
Bartosz Taudul
7319293081 Use proper scale for next time of collapsed items. 2019-10-30 23:17:46 +01:00
Bartosz Taudul
e8286600d1 Use -1 as invalid GPU start time. 2019-10-30 23:12:43 +01:00
Bartosz Taudul
0ac432dd25 Better GPU time check. 2019-10-30 22:35:58 +01:00
Bartosz Taudul
ae4794ab4c Save 2 bytes in ContextSwitchData and ContextSwitchCpu. 2019-10-30 22:25:46 +01:00
Bartosz Taudul
99d198d0bf Pack csAlloc in MemEvent (saves 3 bytes).
Memory usage change on selected traces:

android     2699 MB -> 2613 MB
chicken     2019 MB -> 2007 MB
mem         6308 MB -> 6068 MB
q3bsp-mt    5283 MB -> 5252 MB
q3bsp-st    1241 MB -> 1211 MB
2019-10-30 22:01:13 +01:00
Bartosz Taudul
01ceedb57a Focus out labels in connection window. 2019-10-24 00:54:19 +02:00
Bartosz Taudul
c5a6c7bf63 Display transferred data size. 2019-10-24 00:47:25 +02:00
Bartosz Taudul
d592af9c2f Fix TRACY_NO_STATISTICS build. 2019-10-20 17:32:20 +02:00
Bartosz Taudul
5816dc2b11 Don't cache timedist data if ctx switch data is incomplete. 2019-10-20 17:03:30 +02:00
Bartosz Taudul
ccdc102d5a Cache zone time distribution data. 2019-10-20 03:24:58 +02:00
Bartosz Taudul
bfbd09b619 Add CPU usage graph tooltip. 2019-10-15 21:47:37 +02:00
Bartosz Taudul
7a9d4aecd3 Fix graph height calculation. 2019-10-15 21:41:06 +02:00
Bartosz Taudul
4372ad1bc3 Allow disabling CPU usage graph. 2019-10-15 21:37:16 +02:00
Bartosz Taudul
c28bab59b5 Improve look of CPU usage graph. 2019-10-15 21:20:00 +02:00
Bartosz Taudul
5aeeefefbd Draw CPU usage graph. 2019-10-15 16:55:15 +02:00
Bartosz Taudul
3ce6b1205f Don't iterate over 256 CPUs. 2019-10-15 16:13:53 +02:00
Bartosz Taudul
fefa3b4693 Improve options UI. 2019-10-15 01:49:36 +02:00
Bartosz Taudul
f0c77b4ef4 Add annotation list window. 2019-10-14 20:52:18 +02:00
Bartosz Taudul
c6207ed0e9 Move extra tools to main window button bar popup. 2019-10-14 20:07:55 +02:00
Bartosz Taudul
6de8e6987f Sort annotations. 2019-10-14 19:04:37 +02:00
Bartosz Taudul
671a8f673e Don't interact with unfocused annotations. 2019-10-13 17:01:55 +02:00
Bartosz Taudul
e462335f83 Save/load annotations. 2019-10-13 16:29:24 +02:00
Bartosz Taudul
20cf1d9f83 Implement color selection for annotation region. 2019-10-13 16:14:22 +02:00
Bartosz Taudul
f9e860f559 Display annotation text on timeline. 2019-10-13 15:59:48 +02:00
Bartosz Taudul
1527e7bc10 Add annotation modification window. 2019-10-13 15:50:37 +02:00
Bartosz Taudul
5fed86dae7 Allow adding annotations to timeline. 2019-10-13 15:28:52 +02:00
Bartosz Taudul
215dc8a804 More compact GpuEvent struct (save 4 bytes).
Memory usage reduction of various traces:

big         9011 -> 9007
frameimages 561  -> 552
fi-big      4144 -> 4139
long        5253 -> 5125
2019-10-13 14:42:52 +02:00
Bartosz Taudul
c044df6324 Display number of GPU zones. 2019-10-13 14:21:28 +02:00
Bartosz Taudul
d4620b4157 Fix UI. 2019-10-09 22:33:02 +02:00
Bartosz Taudul
0a358ac1f0 Time distribution may now only include running time. 2019-10-09 22:13:52 +02:00
Bartosz Taudul
6ced346e08 Different sorting modes for zone time distribution. 2019-10-09 21:42:46 +02:00
Bartosz Taudul
ed1f722c51 Display trace file name in trace info window. 2019-10-07 21:36:19 +02:00
Bartosz Taudul
4c4099877d Track trace file name in TracyView. 2019-10-07 21:36:19 +02:00
Bartosz Taudul
1cd5ccb3c1 Display zone time distribution. 2019-10-04 21:34:00 +02:00
Bartosz Taudul
5111275770 Highlight hovered zone on the find zone zones list. 2019-10-04 13:02:26 +02:00
Bartosz Taudul
b913c17f5b Add "no grouping" mode to find zone zones list. 2019-10-04 12:42:05 +02:00
Bartosz Taudul
f2bb933f49 Use proper background color. 2019-10-02 00:49:30 +02:00
Bartosz Taudul
3b223c64d4 Darken to background color to hide overhang.
This only handles the root window case. When the profiler is embedded in
other application, the window background color is not matched.
2019-10-01 23:17:36 +02:00
Bartosz Taudul
db29d309a2 Lambda capture is not needed here. 2019-10-01 22:42:43 +02:00
Bartosz Taudul
65ea33a60f Store memory callstack data as 24-bit ints.
This reduces MemEvent size from 40 to 38 bytes.

Memory usage reduction:

chicken     2027 -> 2019
mem         6468 -> 6308
q3bsp-mt    5304 -> 5283
2019-10-01 22:38:17 +02:00
Bartosz Taudul
f0b957ec56 Store callstacks on 24 bits.
ZoneEvent is now 27 bytes.

Memory usage reduction on selected traces (sizes in MB):

big             9224 -> 9011  (97%)
chicken         2044 -> 2027  (99%)
drl-l-b         1443 -> 1383  (95%)
long            5327 -> 5253  (98%)
q3bsp-mt        5400 -> 5304  (98%)
selfprofile     1403 -> 1382  (98%)
2019-10-01 22:38:17 +02:00
Bartosz Taudul
717a212563 Save another 2 bytes per ZoneEvent.
ZoneEvent is not 28 bytes.

Memory usage reduction on selected traces (sizes in MB):

big             9527 -> 9224  (96%)
chicken         2107 -> 2044  (97%)
drl-l-b         1479 -> 1443  (97%)
long            5412 -> 5327  (98%)
q3bsp-mt        5592 -> 5400  (96%)
selfprofile     1443 -> 1403  (97%)
2019-10-01 01:05:37 +02:00
Bartosz Taudul
acfcfb09ce Hide context switch options, if no data is available. 2019-09-30 23:46:10 +02:00
Bartosz Taudul
0e56682964 Darkening of inactive thread regions. 2019-09-30 23:37:36 +02:00
Bartosz Taudul
d228bcb622 Pack StringIdx in 24 bits.
This reduces ZoneEvent size from 32 to 30 bytes.

Memory usage reduction on selected traces (sizes in MB):

big             9902 -> 9527  (96%)
chicken         2172 -> 2107  (97%)
ctx-big          311 ->  309  (99%)
drl-l-b         1570 -> 1479  (94%)
long            5496 -> 5412  (98%)
mem             6468 -> 6468  (100%)
q3bsp-mt        5784 -> 5592  (96%)
selfprofile     1486 -> 1443  (97%)
2019-09-29 20:32:42 +02:00
Bartosz Taudul
59632f0d37 One more place to check if srcloc zones are ready. 2019-09-29 20:17:47 +02:00
Bartosz Taudul
873d536845 Display number of strings. 2019-09-29 19:22:50 +02:00
Bartosz Taudul
cb6a3f3334 Highlight CPU data timeline from thread tooltip. 2019-09-29 18:55:31 +02:00
Bartosz Taudul
3b8ab5715f Highlight CPU data timeline from CPU data window. 2019-09-29 18:53:58 +02:00
Bartosz Taudul
cafb5d6a99 Highlight threads on CPU data timeline. 2019-09-29 18:49:48 +02:00
Bartosz Taudul
c09f3c0676 Add thread color boxes to CPU data window. 2019-09-25 02:12:35 +02:00
Bartosz Taudul
6c5627d8e4 Add thread color boxes to memory allocations listings. 2019-09-24 23:58:11 +02:00
Bartosz Taudul
581fd920a1 Add thread color boxes to lock info. 2019-09-24 23:52:52 +02:00
Bartosz Taudul
12e2bcb691 Add thread color boxes to zone info windows. 2019-09-24 23:51:47 +02:00
Bartosz Taudul
ad2dd09c25 Add thread color boxes to zone tooltips. 2019-09-24 23:50:00 +02:00
Bartosz Taudul
47f81d0ba4 Add thread color box to memory plot tooltip. 2019-09-24 23:47:51 +02:00
Bartosz Taudul
9c86102bad Add thread color box to CPU data on timeline. 2019-09-24 23:46:54 +02:00
Bartosz Taudul
a7e3324eba Add thread color boxes to GPU context tooltips. 2019-09-24 23:45:36 +02:00
Bartosz Taudul
6ffbd00b0c Add thread color box to crash info. 2019-09-24 23:42:25 +02:00
Bartosz Taudul
c73a74b8d5 Add thread color boxes to memory allocation info. 2019-09-24 23:41:28 +02:00
Bartosz Taudul
e9b815a3b8 Show thread color boxes in find zone menu. 2019-09-24 23:38:29 +02:00
Bartosz Taudul
06fe469598 Add thread color boxes to messages thread list. 2019-09-24 23:33:33 +02:00
Bartosz Taudul
63184f8762 Better Vulkan thread heuristics. 2019-09-24 00:55:24 +02:00
Bartosz Taudul
a5ba74ed13 Handle multiple Vulkan threads. 2019-09-23 17:27:49 +02:00
Bartosz Taudul
82cd667b30 Allow specifying network port in server. 2019-09-21 15:43:01 +02:00
Bartosz Taudul
4c736aecfa Use fibonacci hashing to determine thread colors. 2019-09-21 14:03:42 +02:00
Bartosz Taudul
7a1fb4e0bd Proper message when call stack trees are not available. 2019-09-21 00:57:12 +02:00
Bartosz Taudul
46f7235e32 Display proper message when there are no active allocations. 2019-09-21 00:54:30 +02:00
Bartosz Taudul
b362baed5f Minor UI improvements. 2019-09-19 01:10:33 +02:00
Bartosz Taudul
6a0512fe16 Allow comparing frame times. 2019-09-16 22:02:47 +02:00
Bartosz Taudul
b99675ae60 Use thread color for collapsed zones. 2019-09-16 20:34:55 +02:00
Bartosz Taudul
36b2b8f71f Always return static thread color if dynamic colors are disabled. 2019-09-16 20:31:32 +02:00
Bartosz Taudul
5796f19a3b Focus out exact memory plot value. 2019-09-16 20:27:16 +02:00
Bartosz Taudul
5429f04614 Don't use source location data before it's ready. 2019-09-16 15:37:57 +02:00
Bartosz Taudul
6d00a56c61 Draw thread migrations across CPU cores. 2019-09-12 20:08:57 +02:00
Bartosz Taudul
23b6e5156b Display thread color in thread tooltip. 2019-09-11 19:01:27 +02:00
Bartosz Taudul
2872edce5d Use thread colors in context switch graph. 2019-09-11 18:56:54 +02:00
Bartosz Taudul
8ddafe4153 Extract color highlight functionality. 2019-09-11 18:52:25 +02:00
Bartosz Taudul
0850145811 Disable color box drag and drop. 2019-09-11 18:48:28 +02:00
Bartosz Taudul
2cec6f5482 Add thread colors to options menu. 2019-09-11 18:44:06 +02:00
Bartosz Taudul
4ea62ecb06 Extract small color box drawing. 2019-09-11 18:38:10 +02:00
Bartosz Taudul
00409b0b94 Extract thread color getter. 2019-09-11 18:34:48 +02:00
Bartosz Taudul
a5a6b11b63 Zones can now have dynamic colors. 2019-09-08 14:33:30 +02:00
Bartosz Taudul
2714152f84 Allow calculating zone depth. 2019-09-08 14:16:12 +02:00
Bartosz Taudul
c9a1d3d7e5 Display zone color in zone info window. 2019-09-08 13:19:43 +02:00
Bartosz Taudul
b7522ec4c1 Allow getting zone color sans higlights, etc. 2019-09-08 13:16:00 +02:00
Bartosz Taudul
17e6a97552 Let's leave this here. 2019-09-07 17:49:54 +02:00
Bartosz Taudul
a0814a2e5c Correctly calculate discontinuous frames time. 2019-09-07 17:39:39 +02:00
Bartosz Taudul
aac0a36a2d Don't use source location zones before they are ready. 2019-09-07 17:23:11 +02:00
Bartosz Taudul
3449f0777e Display zone time on frames plot. 2019-09-07 16:55:49 +02:00
Bartosz Taudul
0b1a6047f6 Add different highlight for zones selected on histogram. 2019-09-07 15:33:11 +02:00
Bartosz Taudul
57a2b62edc Display number of threads for pids in CPU data list. 2019-09-04 01:43:56 +02:00
Bartosz Taudul
aa2530d442 Display external thread name (if applicable) on CPU data timeline. 2019-08-31 19:37:05 +02:00
Bartosz Taudul
86cb477811 Pack ZoneThreadData.
This reduces struct size from 10 to 8 bytes. Assumes 48-bit pointers
(4-level paging)!

Memory savings (MB):

android     2766    ->  2757    (99%)
big         10.29 G ->  9902    (96%)
chicken     2244    ->  2172    (96%)
ctx-android 228     ->  224     (98%)
drl-l-b     1635    ->  1570    (96%)
gn-vulkan   244     ->  240     (98%)
long        5656    ->  5496    (97%)
q3bsp-mt    6043    ->  5784    (95%)
selfprofile 1554    ->  1486    (95%)
2019-08-31 00:55:51 +02:00
Bartosz Taudul
217a3781e6 Fix possible wrong process name for pid 0. 2019-08-30 00:59:54 +02:00
Bartosz Taudul
5e8b2a0723 Display wakeup times in zone wait regions list. 2019-08-28 23:03:16 +02:00
Bartosz Taudul
6f25ad5fcb Save per-trace options. 2019-08-28 21:35:08 +02:00
Bartosz Taudul
fc5293b1ae Only scroll message list to bottom if capture is live. 2019-08-28 21:04:28 +02:00
Bartosz Taudul
a2f968d843 Compress thread id in MessageData. 2019-08-28 21:03:01 +02:00
Bartosz Taudul
ede26b0caf Fix skipping zone levels. 2019-08-28 20:47:19 +02:00
Bartosz Taudul
85027c185d Extract notification area drawing to a separate function. 2019-08-28 20:27:39 +02:00
Bartosz Taudul
a8eb99efcc Add notification icons when a drawing a category is disabled. 2019-08-28 20:24:14 +02:00
Bartosz Taudul
5b0ccef373 Change some icons. 2019-08-28 20:17:38 +02:00
Bartosz Taudul
28a20e631e Preserve frame graph position and scale. 2019-08-28 19:52:36 +02:00
Bartosz Taudul
17d4a82ca5 Preserve timeline vertical scroll position. 2019-08-28 19:49:27 +02:00
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