Commit Graph

1656 Commits

Author SHA1 Message Date
Bartosz Taudul
d361261993 Open playback from frame using ctrl+left click. 2019-06-16 16:49:21 +02:00
Bartosz Taudul
d683699ba9 Don't recalculate histogram bins every frame.
This remedies slowdown that was only visible when a histogram of a large
number of zones (~100 million) was displayed. The slowdown was caused by
std::accumulate() calls over whole set of zones.
2019-06-16 16:41:52 +02:00
Bartosz Taudul
14398dd4e8 Move bin setup closer to bin usage. 2019-06-16 16:29:18 +02:00
Bartosz Taudul
761405e2a7 Clip histogram highlight to graph area. 2019-06-16 16:23:24 +02:00
Bartosz Taudul
89f798158f Implement outlier cutoff on histogram. 2019-06-16 01:58:44 +02:00
Bartosz Taudul
8009c6412e Add "minimum values in bin" parameter to histogram. 2019-06-16 01:58:44 +02:00
Bartosz Taudul
4186a71ee7 Cache sorted begin and end iterators. 2019-06-16 01:28:36 +02:00
Bartosz Taudul
26f223e4cd Don't shrink histogram bin buffers. 2019-06-16 00:25:22 +02:00
Bartosz Taudul
31a4a45b14 Ignore memory free faults if running on apple.
There's a case in MoltenVK initialization where overloading operator new
and operator delete works for std::string destruction, but not
construction.
2019-06-13 14:15:17 +02:00
Bartosz Taudul
516bdcec9b Rewrite playback logic. 2019-06-13 00:12:06 +02:00
Bartosz Taudul
c43f8562ec Rename "sync view" to "sync timeline". 2019-06-12 23:46:14 +02:00
Bartosz Taudul
bdfd2c07be Right-click on a frame to set frame in playback. 2019-06-12 23:14:19 +02:00
Bartosz Taudul
afa967afb0 Flip frame image if need be. 2019-06-12 15:30:08 +02:00
Bartosz Taudul
37d1457b44 Frame image may need flipping. 2019-06-12 15:28:32 +02:00
Bartosz Taudul
29fd4b1fe9 Don't animate frame changes during playback. 2019-06-12 13:25:45 +02:00
Bartosz Taudul
a936f22a91 Add frame images playback window. 2019-06-12 01:48:11 +02:00
Bartosz Taudul
eb6ac5e6e1 Store frame reference in frame images. 2019-06-12 00:55:02 +02:00
Bartosz Taudul
38b76ea32d Add frame images vector accessor. 2019-06-12 00:14:44 +02:00
Bartosz Taudul
5f8eadfb16 Release zone id stack. 2019-06-09 17:56:41 +02:00
Bartosz Taudul
a3173965d6 Same for Vis() reference. 2019-06-09 17:51:37 +02:00
Bartosz Taudul
2aa6f70765 Drawing locks may invalidate Vis() iterator. 2019-06-09 17:46:59 +02:00
Bartosz Taudul
b1f8d9fba1 Send server termination query on server disconnect. 2019-06-09 16:10:49 +02:00
Bartosz Taudul
2c780f1af4 Allow sending immediate termination query from server. 2019-06-09 16:10:49 +02:00
Bartosz Taudul
d6d7b82529 Ignore invalid frame images in on-demand mode. 2019-06-09 15:37:49 +02:00
Bartosz Taudul
50cda7720f Handle frame image instrumentation failures. 2019-06-09 13:44:53 +02:00
Bartosz Taudul
bef1988800 Compress frame images using LZ4. 2019-06-08 12:17:18 +02:00
Bartosz Taudul
fc5a8f7e3a Assign frame image to the correct frame (including offset). 2019-06-07 20:13:08 +02:00
Bartosz Taudul
8c912890f0 Proper case in includes. 2019-06-07 01:35:35 +02:00
Bartosz Taudul
ff5170d0e9 Silence warnings. 2019-06-07 01:03:28 +02:00
Bartosz Taudul
42a30bffe1 Frame images are now ETC1 compressed. 2019-06-07 00:31:51 +02:00
Bartosz Taudul
646e7327b8 Show loading progress of frame images. 2019-06-06 23:40:37 +02:00
Bartosz Taudul
f8a4909c96 Display number of frame images in a trace. 2019-06-06 23:21:36 +02:00
Bartosz Taudul
9cd95db4e3 Delay creation of frame image texture. 2019-06-06 23:14:49 +02:00
Bartosz Taudul
129155946b Actually set current texture pointer. 2019-06-06 23:10:01 +02:00
Bartosz Taudul
6b2741ccdb Save/load frame images. 2019-06-06 23:08:19 +02:00
Bartosz Taudul
6ae4afa0f4 Display frame images also on frame time graph. 2019-06-06 22:43:39 +02:00
Bartosz Taudul
08fb2b7337 Tooltip cosmetics. 2019-06-06 22:32:20 +02:00
Bartosz Taudul
c46576a68c Flip UV. 2019-06-06 22:22:57 +02:00
Bartosz Taudul
cd2f572a2f Use proper index. 2019-06-06 22:22:57 +02:00
Bartosz Taudul
beea31edd0 Show frame images in frame tooltips. 2019-06-06 22:22:57 +02:00
Bartosz Taudul
82d4fe7236 Add texture wrapper. 2019-06-06 22:14:51 +02:00
Bartosz Taudul
af56f41e32 Add frame image accessor. 2019-06-06 22:14:51 +02:00
Bartosz Taudul
34b84bb284 Add frame image index to frame data. 2019-06-06 21:44:48 +02:00
Bartosz Taudul
e5bb6011c5 Frame image transfer prototype. 2019-06-06 21:39:54 +02:00
Bartosz Taudul
a37348c5c7 Increase contrast. 2019-06-06 01:45:41 +02:00
Bartosz Taudul
2b917c6adf Draw index area labels with contrast. 2019-06-06 01:40:23 +02:00
Bartosz Taudul
45039fc417 Don't format colored text where not necessary. 2019-06-03 01:36:03 +02:00
Bartosz Taudul
4f5286a860 Add unformatted colored text extension function. 2019-06-03 01:35:53 +02:00
Bartosz Taudul
ff6768986e Move imgui extension function to an appropriate place. 2019-06-03 01:35:32 +02:00
Bartosz Taudul
c433e76c7a Use TextUnformatted in TextCentered. 2019-06-03 01:28:45 +02:00
Bartosz Taudul
42fefde161 Protect against plot range equal zero. 2019-06-03 01:19:01 +02:00
Bartosz Taudul
79215ea73e Implement linked selection in compare menu. 2019-06-02 15:40:19 +02:00
Bartosz Taudul
c05766e637 Display notification about worker background tasks. 2019-06-02 15:00:50 +02:00
Bartosz Taudul
5681096486 Track status of worker background tasks. 2019-06-02 15:00:38 +02:00
Bartosz Taudul
96b1df67b9 Get proper yMin, yMax values. 2019-06-02 13:58:30 +02:00
Bartosz Taudul
9bbaab8897 Draw on a correct window. 2019-06-02 13:40:35 +02:00
Bartosz Taudul
3a561b4eed Save thread state should be atomic. 2019-06-02 13:15:55 +02:00
Bartosz Taudul
0059cb3ab0 Switch default namespace display to "short". 2019-06-02 12:57:42 +02:00
Bartosz Taudul
7aca6b72d1 Don't block worker when in save file dialog. 2019-05-28 19:57:18 +02:00
Bartosz Taudul
c93170cd42 Move saving trace dump to a separate thread. 2019-05-28 19:56:18 +02:00
Bartosz Taudul
845f3a2ddf Use std::shared_mutex for locking worker access. 2019-05-28 19:21:53 +02:00
Bartosz Taudul
145ca30df9 There's no __popcnt64 in 32 bit winapi. 2019-05-28 18:18:54 +02:00
Bartosz Taudul
b3812146cb Fix atomics initialization. 2019-05-27 14:09:55 +02:00
Bartosz Taudul
61d775ecc8 Calculate end point before loop. 2019-05-19 16:26:59 +02:00
Bartosz Taudul
8f85a0da2c Don't check twice for the same thing. 2019-05-19 16:23:19 +02:00
Bartosz Taudul
007e434a05 Force inline FillPages(). 2019-05-19 13:46:53 +02:00
Bartosz Taudul
9122d3516c Force inline GetPage(). 2019-05-19 13:45:02 +02:00
Bartosz Taudul
30c398cd96 Don't allocate memory for empty pages in memory map. 2019-05-19 13:15:54 +02:00
Bartosz Taudul
952e466287 Rearrange code. 2019-05-19 12:47:45 +02:00
Bartosz Taudul
b95d834891 Split contended and uncontended locks in lock list. 2019-05-12 16:26:19 +02:00
Bartosz Taudul
0da1e8551f Track lock contention status. 2019-05-12 16:17:17 +02:00
Bartosz Taudul
a714cd4369 Typo. 2019-05-12 15:59:53 +02:00
Bartosz Taudul
63066cf6a5 Fix logic error. 2019-05-12 15:48:25 +02:00
Bartosz Taudul
e612cef6c2 Optimize drawing frames. 2019-05-11 13:47:06 +02:00
Bartosz Taudul
7cc5149355 Improve timeline message tooltips. 2019-05-10 20:36:06 +02:00
Bartosz Taudul
74575250a5 Save message color data in trace dumps. 2019-05-10 20:32:47 +02:00
Bartosz Taudul
8cbd83c752 Use message color on message lists. 2019-05-10 20:26:27 +02:00
Bartosz Taudul
4850e19ebd Store color in message data. 2019-05-10 20:26:27 +02:00
Bartosz Taudul
797ebd3caf Cosmetics. 2019-05-10 20:20:08 +02:00
Bartosz Taudul
efc54babe3 Transfer of colored messages. 2019-05-10 20:17:44 +02:00
Bartosz Taudul
6a09229ae7 Remove error bars and collection cost from GPU zone display.
There's no way to know how much this takes on a GPU.
2019-05-10 02:31:23 +02:00
Bartosz Taudul
721a818dcc Visual transition of error bars and collection cost markers. 2019-05-10 02:27:42 +02:00
Bartosz Taudul
54c8a882c9 Allow restricting call stack frame tree to active allocations. 2019-05-09 13:37:28 +02:00
Bartosz Taudul
a18a6869bc Allow limiting frame stats to visible frames. 2019-04-26 23:19:31 +02:00
Bartosz Taudul
fdd96fe251 Allow changing frame set from trace info window. 2019-04-26 22:49:36 +02:00
Bartosz Taudul
26aa3a23fb Display number of visible data points on a plot. 2019-04-23 17:17:25 +02:00
Bartosz Taudul
a7886cf82c Replace linear search with hash lookup. 2019-04-03 16:24:16 +02:00
Bartosz Taudul
78e8d4aefe Display query backlog. 2019-04-01 19:55:54 +02:00
Bartosz Taudul
20e6813461 Store send queue size in mbps block. 2019-04-01 19:55:37 +02:00
Bartosz Taudul
9010b2c142 Put queries into queue if send buffer is full. 2019-04-01 19:47:29 +02:00
Bartosz Taudul
deeea0ee70 Track space left in send buffer. 2019-04-01 19:37:39 +02:00
Bartosz Taudul
57dff0abc9 Add server query queue. 2019-04-01 19:26:50 +02:00
Bartosz Taudul
c07c6d11b7 Define server query packet. 2019-04-01 19:21:53 +02:00
Bartosz Taudul
45750a05a1 Only smooth zoom now. 2019-04-01 18:39:09 +02:00
Bartosz Taudul
cd774b9e96 Store two entries in zone self time cache.
This accounts for situation when zone information window is open and a
tooltip for another zone is displayed.
2019-03-30 00:54:22 +01:00
Bartosz Taudul
48a07bf4f8 Cache zone self times. 2019-03-30 00:52:25 +01:00
Bartosz Taudul
fef417f286 Store total number of CPU and GPU zones in trace. 2019-03-27 01:46:54 +01:00
Bartosz Taudul
2e6ac050f4 Use custom vector swap. 2019-03-26 23:02:39 +01:00
Bartosz Taudul
6c5efbfdce Implement custom vector swap. 2019-03-26 23:02:32 +01:00
Bartosz Taudul
a632d9e2a3 Add zone vector cache.
Zone children will be now collected in staging vectors. When the zone is
ended (and no children can be added anymore to it), a size-fitted vector
is allocated using slab allocation. The over-allocated vector is then
put into cache for use in future zones.

This is only active for vectors <= 8192 elements, or 64 KB (chosen
arbitrarily), to reduce time spent on copying memory.

Overall, this change should have the following effects:
- System memory allocation pressure reduction, due to re-usage of
  vectors, which eliminates the need for constant growth.
- Reduction of memory usage, because children vectors are now fitted to
  required size.
- Slight increase of zone processing time, due to memory copying?
2019-03-26 22:06:00 +01:00