Bartosz Taudul
e5f673eaa0
Allow viewing callstack from gpu zone info window.
2018-06-22 01:58:25 +02:00
Bartosz Taudul
35dc2f796e
Process GpuZoneBeginCallstack queue event.
2018-06-22 01:56:32 +02:00
Bartosz Taudul
4992ae6b39
Take callstack field in ZoneEvent into account in save/load.
2018-06-22 01:30:08 +02:00
Bartosz Taudul
e40c5068c9
Allow viewing callstack from zone info window.
2018-06-22 01:21:51 +02:00
Bartosz Taudul
5e01a8ead9
Process callstack queue event.
2018-06-22 01:15:49 +02:00
Bartosz Taudul
205a4e4ca2
Add callstack index to ZoneEvent.
2018-06-22 01:11:03 +02:00
Bartosz Taudul
978e168cbd
Handle ZoneBeginCallstack queue event.
...
This is identical to ZoneBegin handling, but requires some additional
bookkeeping to account for the incoming callstack information.
2018-06-22 01:07:25 +02:00
Bartosz Taudul
3404d191f0
Fix non-unique child ids in memory window.
2018-06-22 00:10:00 +02:00
Bartosz Taudul
3f7ab10323
Don't show line number if it's 0.
2018-06-21 13:26:04 +02:00
Bartosz Taudul
973eab2b4a
Fix typo.
2018-06-20 23:42:00 +02:00
Bartosz Taudul
2a618c90d5
Properly save compressed thread in GPU events.
2018-06-20 23:12:49 +02:00
Bartosz Taudul
cef972fe25
Remove parenthesis from callstack location.
2018-06-20 17:07:48 +02:00
Bartosz Taudul
7912807133
Wait for transfer of pending callback frames.
2018-06-20 14:57:48 +02:00
Bartosz Taudul
60395c85e0
Wait for pending callstacks.
2018-06-20 14:54:08 +02:00
Bartosz Taudul
e95ca3930d
Make all allocation list alloc/free buttons clickable.
2018-06-20 14:50:07 +02:00
Bartosz Taudul
a9fa8f966b
Fix "zone free" indentation in allocation list.
2018-06-20 14:44:24 +02:00
Bartosz Taudul
bc565e65d1
Better callstack info window layout.
2018-06-20 14:41:00 +02:00
Bartosz Taudul
0d509ea3a6
Add missing EndColumns() call.
2018-06-20 14:37:55 +02:00
Bartosz Taudul
be0a70a5c1
Highlight actively inspected callstack.
2018-06-20 13:49:23 +02:00
Bartosz Taudul
15ff98b64a
Push detailed callstack to a separate window.
...
Only show function names (no source files or line numbers) in callstack
tooltip.
2018-06-20 13:23:08 +02:00
Bartosz Taudul
9a5329b97d
Save and load callstack frames.
2018-06-20 01:59:25 +02:00
Bartosz Taudul
e56ee377f4
Fix off-by-one.
2018-06-20 01:54:27 +02:00
Bartosz Taudul
88b1955a5a
Filename in callstack frame is not a persistent pointer.
2018-06-20 01:26:05 +02:00
Bartosz Taudul
56479b86fa
Display frame details in callstack tooltip.
2018-06-20 01:19:10 +02:00
Bartosz Taudul
4000f27e15
Stack frame accessor.
2018-06-20 01:18:59 +02:00
Bartosz Taudul
0c0afa5ac7
Process callstack frames.
2018-06-20 01:07:09 +02:00
Bartosz Taudul
203744cdd9
Callstack frame queries.
2018-06-20 00:25:26 +02:00
Bartosz Taudul
4ba95145da
Display raw callstack payload.
2018-06-19 22:19:33 +02:00
Bartosz Taudul
4eea85fdad
Callstack payload accessor.
2018-06-19 22:19:20 +02:00
Bartosz Taudul
06f34052a5
Have to track callstacks of both alloc and free.
2018-06-19 22:08:47 +02:00
Bartosz Taudul
0de279005b
Load saved callstack payload.
2018-06-19 22:05:15 +02:00
Bartosz Taudul
14b71e988b
Properly skip memory event data.
2018-06-19 22:05:15 +02:00
Bartosz Taudul
4033d74479
Callstack payload index 0 is invalid.
2018-06-19 22:05:15 +02:00
Bartosz Taudul
b6e71dd909
Load memory event callstack index.
2018-06-19 21:51:06 +02:00
Bartosz Taudul
7c1333ce2f
Save callstack payload.
2018-06-19 21:39:52 +02:00
Bartosz Taudul
2940230fcf
Save callstack index in memory events.
2018-06-19 21:39:42 +02:00
Bartosz Taudul
e03493f082
Store callstack index as uint32_t.
2018-06-19 21:39:22 +02:00
Bartosz Taudul
77db91253b
Assign callstack idx to memory event.
2018-06-19 21:34:36 +02:00
Bartosz Taudul
c28465aa7c
Store unique callstack payloads.
2018-06-19 21:16:02 +02:00
Bartosz Taudul
87467a472c
Add variable sized const array.
2018-06-19 21:16:02 +02:00
Bartosz Taudul
cbc9ede3ca
No-op callstack payload handling.
2018-06-19 19:31:16 +02:00
Bartosz Taudul
6a63d09a49
Don't check for each type, if range check is possible.
2018-06-19 19:31:16 +02:00
Bartosz Taudul
e51eef3dcd
Process memory events with callstack.
2018-06-19 18:52:45 +02:00
Bartosz Taudul
59dc55002b
Callstack ptr in server data structures.
...
Will be probably reduced to 32-bit index later on.
2018-06-19 18:52:10 +02:00
Bartosz Taudul
021dd853b9
Differentiate Vulkan/OpenGL in options menu.
2018-06-18 01:08:56 +02:00
Bartosz Taudul
6e1ab9ae7a
Display per-GPU-event threads.
2018-06-17 19:09:56 +02:00
Bartosz Taudul
bb0631585c
Store thread id of GPU events.
2018-06-17 19:07:07 +02:00
Bartosz Taudul
cfd7ac3957
Map compressed thread id 0 to real thread id 0.
2018-06-17 19:03:06 +02:00
Bartosz Taudul
d5a4c693d8
Take GPU timestamp period into account.
2018-06-17 18:49:56 +02:00
Bartosz Taudul
f33584516b
Fix yet another regression.
2018-06-17 18:37:38 +02:00
Bartosz Taudul
cc973a5091
Differentiate Vulkan and OpenGL contexts.
2018-06-17 18:33:05 +02:00
Bartosz Taudul
dcd6cac078
Save GPU timestamp period.
...
Bump file version to 0.3.2.
2018-06-17 18:27:42 +02:00
Bartosz Taudul
2be1d1d2b2
Use proper type.
2018-06-07 13:30:46 +02:00
Bartosz Taudul
6956aed769
Fix selecting last bin with log time in find zone.
2018-06-06 23:36:21 +02:00
Bartosz Taudul
b4ce0c281b
Total time is also already known in compare view.
2018-06-06 23:17:13 +02:00
Bartosz Taudul
d49be792ba
Cache bin containers in compare view.
2018-06-06 23:09:46 +02:00
Bartosz Taudul
da5d35c364
Cache bin containers in find zone.
2018-06-06 23:06:00 +02:00
Bartosz Taudul
2950f3c70c
Total time is already known.
2018-06-06 23:00:18 +02:00
Bartosz Taudul
8a4d88f2b3
tmin and tmax don't change.
2018-06-06 23:00:03 +02:00
Bartosz Taudul
be8d3f47cd
Use fast log10.
2018-06-06 01:59:31 +02:00
Bartosz Taudul
8696c81e7d
Implement fast frexpf.
2018-06-06 01:59:31 +02:00
Bartosz Taudul
60b24249d3
Use explicit value for 1/log2(10).
2018-06-06 01:52:46 +02:00
Bartosz Taudul
39c1b20184
Don't care about previous values.
2018-06-06 01:23:49 +02:00
Bartosz Taudul
1c47e22eca
Add log10f approximation.
...
Based on https://community.arm.com/tools/f/discussions/4292/cmsis-dsp-new-functionality-proposal/22621#22621
2018-06-06 01:23:29 +02:00
Bartosz Taudul
859bf01992
Support displaying self times in statistics view.
2018-06-06 00:47:16 +02:00
Bartosz Taudul
e5d35d443d
Missing initializer.
2018-06-06 00:47:11 +02:00
Bartosz Taudul
b7930f67da
Calculate total self time of zones.
2018-06-06 00:39:22 +02:00
Bartosz Taudul
785a30a68b
Implement going to next/previous frame.
2018-06-02 22:27:35 +02:00
Bartosz Taudul
1cddf8436c
ZoomToRange() already enables pause.
2018-06-02 22:09:07 +02:00
Bartosz Taudul
5a7304171d
Fix allocation times displayed in plot tooltip.
2018-05-27 20:22:58 +02:00
Bartosz Taudul
8ed59c261b
Open memory address info after clicking on mem plot item.
2018-05-27 20:17:20 +02:00
Bartosz Taudul
9898066a7a
Display additional memory event info in mem plot tooltips.
2018-05-27 20:11:33 +02:00
Bartosz Taudul
3ea5fd93ed
Simple and not so simple draw plot point functions.
2018-05-27 19:51:45 +02:00
Bartosz Taudul
0a79243332
Display thread from which message originated on msg list.
2018-05-25 21:14:15 +02:00
Bartosz Taudul
53aea660c8
Store thread id in MessageData.
2018-05-25 21:10:38 +02:00
Bartosz Taudul
bb0246730f
Don't save MessageData padding.
...
This requires file version bump to 0.3.1.
2018-05-25 21:10:38 +02:00
Bartosz Taudul
8118e41559
Use columns to display message list.
2018-05-25 21:10:38 +02:00
Bartosz Taudul
312c20b0bc
Fallback to pdqsort if parallel STL is not available.
2018-05-12 22:41:18 +02:00
Bartosz Taudul
920bfc8c82
Parallelize (big) sorts in worker.
2018-05-08 01:40:22 +02:00
Bartosz Taudul
dbc963d55c
Drop template argument from std::lock_guard.
2018-05-08 01:25:16 +02:00
Bartosz Taudul
3768ed5dd7
Don't reconstruct mem plot if there's no mem event data.
2018-05-04 16:08:16 +02:00
Bartosz Taudul
e7ffe288e6
One less FileWrite::Write() call.
2018-05-04 15:11:19 +02:00
Bartosz Taudul
e058bb34c1
CompressThread body must be available.
2018-05-03 18:43:51 +02:00
Bartosz Taudul
a46d27f312
Parallelize file reading.
...
Use spin-locks for synchronization.
IsEOF() is now buggy, but the bug chance is fairly low (1/65536) - it
can happen when the last compressed block has exactly max decompressed
block size. Don't care about it much, as it's only used to open old
archives.
2018-05-03 17:56:43 +02:00
Bartosz Taudul
3d13ea09e8
Move block decompression to a separate function.
2018-05-03 17:29:58 +02:00
Bartosz Taudul
7d32ef8c8b
Restrict mem events list size.
2018-05-02 19:40:35 +02:00
Bartosz Taudul
f2cb04ea8d
Allow going back to the previous zone info.
2018-05-02 19:25:52 +02:00
Bartosz Taudul
1cc798cea3
Construct zone info stack.
2018-05-02 19:23:46 +02:00
Bartosz Taudul
e28022f735
Don't display alloc, free threads on two lines.
2018-05-02 19:07:34 +02:00
Bartosz Taudul
f2f712b8db
Optional display of each mem event in zone info window.
2018-05-02 19:03:34 +02:00
Bartosz Taudul
dac6a65156
Infer total mem usage change from alloc and free changes.
2018-05-02 18:41:11 +02:00
Bartosz Taudul
14ca2198dd
Force inline simple Vector ops.
2018-05-02 18:27:37 +02:00
Bartosz Taudul
bbf1e9f111
Only include memory events from zone thread.
2018-05-02 18:13:13 +02:00
Bartosz Taudul
4584ef9e88
Use memory events to calculate zone memory changes.
2018-05-02 18:06:27 +02:00
Bartosz Taudul
b18841aa75
Store ordered list of memory frees.
2018-05-02 17:59:50 +02:00
Bartosz Taudul
ce1f56ea0f
Display zone memory statistics.
...
Note that this information is incorrect, as it accounts for memory
events in all threads.
2018-05-02 17:46:09 +02:00
Bartosz Taudul
fd59ac0125
Only calculate zone child data if child list is displayed.
2018-05-02 17:23:32 +02:00
Bartosz Taudul
754e79b443
Setup memory plot pointer on dump load.
2018-05-02 17:18:52 +02:00
Bartosz Taudul
1512f3584c
Show appropriate message when there's no memory data collected.
2018-05-01 17:28:02 +02:00
Bartosz Taudul
e5934b409a
Don't use Vector for memory pages storage.
...
Vector has POT data size and we know exactly how much is needed.
2018-05-01 17:26:34 +02:00
Bartosz Taudul
7266a979c3
Omit stack.
2018-05-01 02:13:49 +02:00
Bartosz Taudul
5deeb8426f
Specialized Read function writing directly to registers.
2018-05-01 02:13:49 +02:00
Bartosz Taudul
8beb1c1a39
Add thread compression cache.
...
Observation: calls to CompressThread() are likely to be repeated with
the same value. Exploit that by storing last query and its result.
2018-05-01 01:29:25 +02:00
Bartosz Taudul
ec58aa4ce1
Don't increase vector size in each iteration.
2018-04-30 13:57:12 +02:00
Bartosz Taudul
e41ce5523c
Allow explicit setting of vector size.
2018-04-30 13:56:58 +02:00
Bartosz Taudul
553e3ca38b
Optimize mem plot reconstruction loop.
2018-04-30 13:45:36 +02:00
Bartosz Taudul
76f0c8fafe
Sort source location zones on a separate thread.
2018-04-30 03:54:09 +02:00
Bartosz Taudul
63e4f6fa04
Directly store values.
2018-04-30 03:30:19 +02:00
Bartosz Taudul
8d854b1c8f
Force inline flat_hash_map find.
2018-04-30 03:09:50 +02:00
Bartosz Taudul
a2d3ad35f0
Force inline common slab allocation paths.
2018-04-30 02:47:16 +02:00
Bartosz Taudul
b598300186
Split FileRead::Skip into small and big part.
2018-04-30 02:31:03 +02:00
Bartosz Taudul
b1a440647d
Remove one level of indirection in FileWrite.
2018-04-30 02:29:05 +02:00
Bartosz Taudul
fd46651c32
Remove one level of indirection in FileRead.
2018-04-30 02:26:15 +02:00
Bartosz Taudul
4c521ce92a
Loaded traces may be unloaded.
2018-04-30 01:16:08 +02:00
Bartosz Taudul
e5cb241c19
Optimize creation of vector of frees.
2018-04-29 13:40:47 +02:00
Bartosz Taudul
3eb73b8d43
Move memory plot reconstruction to a background thread.
2018-04-29 13:40:04 +02:00
Bartosz Taudul
a8ce01eeb1
Push next no space check variant.
2018-04-29 13:39:06 +02:00
Bartosz Taudul
bc84ebc338
Read/write LockEvent data in one go.
2018-04-29 03:41:58 +02:00
Bartosz Taudul
c5133e0b4e
Walk lockmap timeline pointer.
2018-04-29 03:41:58 +02:00
Bartosz Taudul
9769cc4d7d
Read/write most of MemEvent in one go.
2018-04-29 03:41:58 +02:00
Bartosz Taudul
d5f0f0939d
No need to track min memory usage.
...
At least if client instrumentation was not broken and the data makes
sense.
2018-04-29 02:57:20 +02:00
Bartosz Taudul
7fdc6f5453
Zero as initial max value is fine too.
2018-04-29 02:56:23 +02:00
Bartosz Taudul
723f98d24b
Overflow checks are not needed.
2018-04-29 02:47:25 +02:00
Bartosz Taudul
b06f445de9
Don't use stack to write two values...
2018-04-29 02:32:20 +02:00
Bartosz Taudul
333d3a92c8
Perform memory usage calculation on doubles.
2018-04-29 02:29:06 +02:00
Bartosz Taudul
aceaed25b9
Walk plot data pointer.
2018-04-29 02:11:47 +02:00
Bartosz Taudul
868fbace5a
Don't compress thread twice, if it's the same.
2018-04-29 02:04:51 +02:00
Bartosz Taudul
fdaebc2bd8
No need to perform space check here.
2018-04-29 01:38:54 +02:00
Bartosz Taudul
dc1396012e
Add assert checking that there's space.
2018-04-29 01:38:35 +02:00
Bartosz Taudul
d64f0390da
Don't use std::sort.
2018-04-29 01:23:30 +02:00
Bartosz Taudul
925b6c2617
Display y-range of plots.
2018-04-28 16:44:36 +02:00
Bartosz Taudul
7df7bf1745
Begin memory plot with no memory usage.
2018-04-28 16:26:45 +02:00
Bartosz Taudul
a0b8ed2e50
Restore memory plot when loading data dump.
2018-04-28 16:26:45 +02:00
Bartosz Taudul
afa432a087
Non-user plots must have predefined names.
2018-04-28 16:26:45 +02:00
Bartosz Taudul
d8bfe7de2e
Create memory plot based on memory alloc/free events.
2018-04-28 15:49:12 +02:00
Bartosz Taudul
cd34ed6968
Two plot types: user and memory.
...
Only user plots are saved in a dump file.
2018-04-28 15:48:05 +02:00
Bartosz Taudul
2a427ba87a
Fix typo.
2018-04-22 02:24:34 +02:00
Bartosz Taudul
ecabf24c4e
Optional normalization of compared data.
2018-04-22 02:19:22 +02:00
Bartosz Taudul
d06890b55d
Add missing tree pop.
2018-04-22 01:28:55 +02:00
Bartosz Taudul
1fb47899b2
Fix skipping lock data with new dump version.
2018-04-22 01:26:51 +02:00
Bartosz Taudul
470bfb5c02
Don't load unneeded data.
2018-04-22 01:00:17 +02:00
Bartosz Taudul
41738469f1
Add trace compare window.
2018-04-22 00:52:33 +02:00
Bartosz Taudul
436cd2b6cf
Drop '###Profiler' from capture name.
2018-04-21 23:29:28 +02:00
Bartosz Taudul
28380f2d25
Move bad version dialogs to a separate file.
2018-04-21 23:19:48 +02:00
Bartosz Taudul
ea2be1bce9
Fix custom ImVec2 operators.
2018-04-21 23:19:13 +02:00
Bartosz Taudul
1d044b494b
Don't enforce main window buttons width.
2018-04-21 22:42:32 +02:00
Bartosz Taudul
880eb7cbdd
Don't display zone names in find zone menu zones list.
2018-04-21 22:34:19 +02:00
Bartosz Taudul
2ef9fe0743
Enable log time in find zone menu by default.
2018-04-21 22:21:15 +02:00
Bartosz Taudul
d1e185e176
Cleanup message data.
2018-04-21 20:36:33 +02:00
Bartosz Taudul
4cd9cf5dd9
Cleanup zone data.
2018-04-21 20:34:29 +02:00