Bartosz Taudul
5675044443
Display image name, if source file is unknown.
2020-03-27 21:54:40 +01:00
Bartosz Taudul
d065d28244
Allow assembly view in all calls to SetTextEditorFile.
2020-03-27 21:46:57 +01:00
Bartosz Taudul
78ea40d70c
Check for asm/source availability in SetTextEditorFile.
2020-03-27 21:46:57 +01:00
Bartosz Taudul
efbf13fcd4
Don't store inlined symbols locations.
2020-03-27 21:16:23 +01:00
Bartosz Taudul
45b8622bc9
Search for base address when if symbol address is inlined.
2020-03-27 21:04:23 +01:00
Bartosz Taudul
31a1517d2f
Display disassembly of inlined symbols.
2020-03-27 17:59:41 +01:00
Bartosz Taudul
720ed0460b
Differentiate between symbol and base address.
2020-03-27 17:59:16 +01:00
Bartosz Taudul
992f4c8c2d
Implement search for symbol base from address.
2020-03-27 17:39:42 +01:00
Bartosz Taudul
4c381e13e9
Store list of symbol locations.
2020-03-27 17:34:51 +01:00
Bartosz Taudul
52a853b26f
Don't show invalid contents warning for disassembly.
2020-03-27 17:14:46 +01:00
Bartosz Taudul
a466362938
Use proper function to send terminate query.
2020-03-27 02:02:36 +01:00
Bartosz Taudul
51bae7855d
Display number of in-flight queries.
2020-03-27 02:00:26 +01:00
Bartosz Taudul
089681267f
Allow viewing assembly without corresponding source code.
2020-03-27 01:47:06 +01:00
Bartosz Taudul
10ca8b5440
Assembly display is not dependant on sample data.
2020-03-27 01:24:50 +01:00
Bartosz Taudul
2a54f2df5d
Reverse the fileselector compile option.
2020-03-26 23:11:26 +01:00
Bartosz Taudul
d495431f24
Reverse the root window compile option.
2020-03-26 23:08:29 +01:00
Bartosz Taudul
58bb5d40c5
Remove support for non-extended font builds.
2020-03-26 23:04:44 +01:00
Bartosz Taudul
c098a03d8f
Implement listing all symbols.
2020-03-26 22:39:16 +01:00
Bartosz Taudul
e58b9e870e
Use explicit data structure to store symbol list data.
2020-03-26 22:39:16 +01:00
Bartosz Taudul
7018caadb9
Add UI for control of displaying all symbols.
2020-03-26 22:39:16 +01:00
Bartosz Taudul
696c351e6a
Allow listing symbols, even if no sampling data has been gathered.
2020-03-26 22:39:16 +01:00
Bartosz Taudul
e6b0bfc90d
Display "no entries" message in statistics menu, if appropriate.
2020-03-26 22:39:16 +01:00
Bartosz Taudul
ef96ecd9b8
Use shorter descriptions.
2020-03-26 22:09:56 +01:00
Bartosz Taudul
2db117a7ac
Disassemble symbols even if source file has not changed.
2020-03-26 02:23:43 +01:00
Bartosz Taudul
3de4283bd2
Display code size in source file view window.
2020-03-26 02:23:09 +01:00
Bartosz Taudul
6a96b5f1dc
Use better wording.
2020-03-26 02:18:24 +01:00
Bartosz Taudul
4f417854e5
Display disassembly.
2020-03-26 00:18:38 +01:00
Bartosz Taudul
b091c0d4a8
Hide unknown symbols by default in sample statistics.
2020-03-25 23:44:48 +01:00
Bartosz Taudul
7ac03be43b
Fix braino.
2020-03-25 22:50:13 +01:00
Bartosz Taudul
3e134cdce5
Disassemble symbol code fragments.
2020-03-25 22:37:34 +01:00
Bartosz Taudul
79db7f4457
Add symbol code accessor.
2020-03-25 22:15:22 +01:00
Bartosz Taudul
53d0b91f26
CPU architecture accessor.
2020-03-25 22:12:18 +01:00
Bartosz Taudul
39da6c7c19
Store CPU architecture.
2020-03-25 21:48:24 +01:00
Bartosz Taudul
033433b883
Save/load symbol code.
2020-03-25 20:52:59 +01:00
Bartosz Taudul
ce449ac0e2
Notify server that parameter was handled.
2020-03-25 20:37:26 +01:00
Bartosz Taudul
ea507289c6
Add missing query space extensions.
2020-03-25 20:33:50 +01:00
Bartosz Taudul
cda285ceb7
Display notification when queries are backlogged.
2020-03-25 20:25:33 +01:00
Bartosz Taudul
582e46005e
Display symbols code size.
2020-03-25 20:08:39 +01:00
Bartosz Taudul
f114ec3f80
Add code transfer from client to server.
2020-03-25 20:04:55 +01:00
Bartosz Taudul
3e0e120222
Add extra parameter to server queries.
2020-03-25 20:04:01 +01:00
Bartosz Taudul
383918bca4
Display symbol size in sampled statistics window.
2020-03-25 18:45:05 +01:00
Bartosz Taudul
bf52883331
Store symbol length in trace dumps.
2020-03-25 18:37:08 +01:00
Bartosz Taudul
c515a53986
Wrapper for reading nine elements at once.
2020-03-25 18:35:48 +01:00
Bartosz Taudul
c999a74d34
Symbol length transfer.
2020-03-25 18:32:36 +01:00
Bartosz Taudul
2417f63bf2
Build instruction pointers map when loading trace.
2020-03-25 01:56:13 +01:00
Bartosz Taudul
eae664bd1b
Display instruction pointer counts in source view.
2020-03-25 01:09:02 +01:00
Bartosz Taudul
c603eaa1b6
Add symbol instruction pointers map accessor.
2020-03-25 01:08:29 +01:00
Bartosz Taudul
4c92a2619f
Pass symbol address to source view.
2020-03-25 00:07:31 +01:00
Bartosz Taudul
1999352004
Remove junk.
2020-03-25 00:00:15 +01:00
Bartosz Taudul
4068ab30e8
Build sampled instruction pointers map for symbols.
2020-03-24 23:54:30 +01:00
Bartosz Taudul
a7cedddcef
Use clipper to render source view.
2020-03-24 18:10:56 +01:00
Bartosz Taudul
96a330e034
Improve ghost zones source location logic.
2020-03-23 01:59:57 +01:00
Bartosz Taudul
9672dba765
Replace source file viewer with one that actually works.
...
This is much simpler, custom implementation of a text file viewer. It is
able to perform these two tasks as intended:
- center source view on the selected line,
- highlight that line.
2020-03-22 20:53:59 +01:00
Bartosz Taudul
13b5ac92d8
Add notification about display of empty labels.
2020-03-22 18:55:45 +01:00
Bartosz Taudul
4ae13ff3dd
Build ghost frame data during live capture.
2020-03-21 18:26:42 +01:00
Bartosz Taudul
d2a53b79d7
Don't check if vector is empty, if we're sure it's not.
2020-03-21 17:59:09 +01:00
Bartosz Taudul
8aeba9dc79
Wait for ghost zones to be ready.
2020-03-21 17:57:43 +01:00
Bartosz Taudul
159cf8c477
Add non-empty version of push_next() to Vector.
2020-03-21 17:56:24 +01:00
Bartosz Taudul
d262ca53ea
Add missing zeros to exact time printout.
2020-03-21 16:13:41 +01:00
Bartosz Taudul
c32d9c74b1
Properly display unknown sampled frames in ghost zones.
2020-03-21 15:43:20 +01:00
Bartosz Taudul
8a81d2210c
Non-consecutive stack samples are no longer present.
2020-03-21 15:28:34 +01:00
Bartosz Taudul
df7f087b08
Implement ghost zone skipping.
2020-03-19 00:56:56 +01:00
Bartosz Taudul
a2bf5ac199
Display ghost zones by default, if no instrumented zones.
2020-03-19 00:42:20 +01:00
Bartosz Taudul
e11bf1d62d
Display frame address in tooltip.
2020-03-19 00:35:19 +01:00
Bartosz Taudul
6444051382
Frames may be missing.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
92e2597192
Fix ghost children times.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
1f4dbd1b2e
Parallelize background jobs.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
a48e804e96
Don't reconstruct mem alloc plot in no-statistics builds.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
ac84e77333
Ghost zones display prototype.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
4e4ee2ff2c
Add number of call stack samples to thread tooltip.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
77d30adee9
Add per-thread ghost zones switch.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
6daa429b69
Add hidden ghost zones indicator.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
4384b812f1
Smaller nested checkboxes.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
335866be88
Add UI to control ghost zones drawing.
...
Disabled for now, will be needed in future.
2020-03-19 00:35:18 +01:00
Bartosz Taudul
adb45ed5df
Allow checking if ghost zones are ready.
2020-03-17 00:16:39 +01:00
Bartosz Taudul
2f674833b2
Add ghost zones display to view options.
2020-03-16 23:05:07 +01:00
Bartosz Taudul
eb5f7a27e7
Match ghost zones by symbol address.
2020-03-16 23:05:07 +01:00
Bartosz Taudul
b89874850f
Pack frame identifiers in ghost zones.
2020-03-16 23:05:07 +01:00
Bartosz Taudul
ead597bacc
Display count of ghost zones.
2020-03-16 23:05:07 +01:00
Bartosz Taudul
452341059b
Build ghost zones tree.
2020-03-16 23:05:06 +01:00
Bartosz Taudul
693db74380
Add CallstackFrameId comparator.
2020-03-16 23:05:06 +01:00
Bartosz Taudul
377ed48416
Don't over-reserve map.
2020-03-16 23:05:06 +01:00
Bartosz Taudul
aeb3bc410b
Pack FrameImage struct.
2020-03-16 23:05:06 +01:00
Bartosz Taudul
c06ea4a3e8
Fix layout.
2020-03-16 23:04:50 +01:00
Bartosz Taudul
b8cc3f59d6
Count number of input and compressed frame image bytes.
2020-03-14 14:35:57 +01:00
Bartosz Taudul
0776dddc35
Display image compression ratio in bits per pixel.
2020-03-14 13:10:15 +01:00
Bartosz Taudul
20a7bf2b23
There are no parents for mid-stack frames.
2020-03-14 02:06:39 +01:00
Bartosz Taudul
1bb7d05ba0
Display time percentage in statistics menu.
2020-03-14 01:47:18 +01:00
Bartosz Taudul
5046664b8b
Use "self time" consistently in the UI.
2020-03-14 01:38:46 +01:00
Bartosz Taudul
4631d884d6
Cleanup samples vector.
2020-03-10 21:46:24 +01:00
Bartosz Taudul
09d54cf9d9
Display custom lock names.
2020-03-08 13:59:31 +01:00
Bartosz Taudul
e7240cb77d
Custom lock name transfer.
2020-03-08 13:47:38 +01:00
Bartosz Taudul
9668234903
Allow requesting reconnect on trace discard.
2020-03-06 22:11:17 +01:00
Bartosz Taudul
d25614d50f
Allow address/port retrieval from View.
2020-03-06 22:11:00 +01:00
Bartosz Taudul
50123298a7
Unify texture compression implementations.
2020-03-02 02:08:14 +01:00
Bartosz Taudul
aa0bf47ec3
Extract texture compression functionality.
2020-03-02 02:00:35 +01:00
Bartosz Taudul
0df309b45c
Forward declare LockType.
2020-03-02 01:58:48 +01:00
Bartosz Taudul
abd44069ae
Fix off-by-one.
2020-03-01 14:04:10 +01:00
Bartosz Taudul
c36ed4b8b8
Boring warning fixes.
2020-03-01 01:48:20 +01:00
Bartosz Taudul
8f9ba5d54a
Rearrange UI.
2020-03-01 01:32:31 +01:00
Bartosz Taudul
5887c9d12c
Remove unused variable.
2020-03-01 01:28:56 +01:00
Bartosz Taudul
e93b574c5d
Fill-in missing image name.
2020-03-01 01:27:21 +01:00
Bartosz Taudul
83316f1299
Fix pointer fixup.
2020-02-29 23:40:21 +01:00
Bartosz Taudul
d1ff99d6e3
Callstack frame map must not be touched by statistics.
2020-02-29 19:49:33 +01:00
Bartosz Taudul
8d5755521e
Fix no statistics build.
2020-02-29 19:31:51 +01:00
Bartosz Taudul
de3a48f958
Better symbol information.
2020-02-29 19:28:42 +01:00
Bartosz Taudul
07756476b0
Allow viewing global entry stats of a callstack.
2020-02-29 18:59:01 +01:00
Bartosz Taudul
39361f71a1
Allow GetSymbolStats() to fail gracefully.
2020-02-29 18:59:01 +01:00
Bartosz Taudul
9b53792f20
Add call stack sample parents window.
2020-02-29 18:59:01 +01:00
Bartosz Taudul
2589b45af0
Add accessors for new data.
2020-02-29 18:39:45 +01:00
Bartosz Taudul
bc14ca86f3
Count proper number of parent stacks.
2020-02-29 17:58:17 +01:00
Bartosz Taudul
c18584fdbc
Iterator may be invalidated.
2020-02-29 17:08:02 +01:00
Bartosz Taudul
4843a1d458
Collect parent call stacks for symbols.
2020-02-29 16:41:22 +01:00
Bartosz Taudul
90f5ae536c
Display count of parent call stacks and frames.
2020-02-29 16:32:33 +01:00
Bartosz Taudul
6cc4de8d28
Construct parent call stacks for sampled stack traces.
2020-02-29 16:24:15 +01:00
Bartosz Taudul
935eb4cc61
Use xxh3 for VarArray hashing.
2020-02-29 15:31:05 +01:00
Bartosz Taudul
bdc86f5338
Process postponed samples when new frame data is available.
2020-02-29 14:12:04 +01:00
Bartosz Taudul
0d112e20a5
Don't perform unnecessary hashmap search.
2020-02-29 13:58:11 +01:00
Bartosz Taudul
3412d2232f
Postpone processing incomplete sampled callstacks.
2020-02-29 13:45:50 +01:00
Bartosz Taudul
7947087694
Print frame image compression ration.
2020-02-29 00:49:42 +01:00
Bartosz Taudul
49a0072bab
Use correct wording.
2020-02-27 23:11:45 +01:00
Bartosz Taudul
5f48f8a3aa
Allow hiding symbols with unknown location.
2020-02-27 19:45:41 +01:00
Bartosz Taudul
fea3444625
Use percent print wrapper in more places.
2020-02-27 17:20:34 +01:00
Bartosz Taudul
4fa049188b
Add total time percentage for entries in sampling statistics.
2020-02-27 17:05:56 +01:00
Bartosz Taudul
e438e1c53d
Add another percent print helper.
2020-02-27 17:05:48 +01:00
Bartosz Taudul
c5e8739435
Live update of sample statistics data.
2020-02-27 16:48:50 +01:00
Bartosz Taudul
8aa70211c0
Display inline functions.
2020-02-27 15:28:58 +01:00
Bartosz Taudul
bc18862dc6
Allow displaying instruction location.
2020-02-27 15:10:50 +01:00
Bartosz Taudul
7dd929a39e
Preserve symbol call location.
2020-02-27 15:07:29 +01:00
Bartosz Taudul
2e5ce52086
Implement reading 7 elements.
2020-02-27 15:07:29 +01:00
Bartosz Taudul
17e7add105
By default show self times in statistics menu.
2020-02-27 14:20:19 +01:00
Bartosz Taudul
be5793987e
Don't send symbol name.
2020-02-27 12:49:48 +01:00
Bartosz Taudul
9d718eb1e8
Preserve inlined symbol names.
2020-02-27 12:39:05 +01:00
Bartosz Taudul
374ddbe2a6
Replace tabs with radio buttons.
2020-02-27 12:24:28 +01:00
Bartosz Taudul
8173f24515
Add filter to sampling statistics.
2020-02-27 02:31:30 +01:00
Bartosz Taudul
27466fc56b
Add callstack sampling statistics.
2020-02-27 02:08:20 +01:00
Bartosz Taudul
852e37c8dd
Calculate callstack sample data on trace load.
2020-02-27 01:22:36 +01:00
Bartosz Taudul
8288f7c6b7
No need to pack ZoneThreadData.
2020-02-27 01:00:41 +01:00
Bartosz Taudul
c99537c402
Provide default value for sourceLocationZonesReady.
2020-02-27 00:26:58 +01:00
Bartosz Taudul
75312c7bb6
Display count of symbols.
2020-02-26 23:02:39 +01:00
Bartosz Taudul
a35795f793
Use more appropriate name.
2020-02-26 23:02:34 +01:00
Bartosz Taudul
4511a4de8c
Save/load symbol information.
2020-02-26 22:53:18 +01:00
Bartosz Taudul
847069a59d
Expose symbol source location data.
2020-02-26 22:46:02 +01:00
Bartosz Taudul
26cee8acf0
Perform symbol information queries.
2020-02-26 22:35:15 +01:00
Bartosz Taudul
02c99fca67
Enable display of symbol address in callstack window.
2020-02-26 19:16:27 +01:00
Bartosz Taudul
8f36ee2c89
Display module name in callstack window.
2020-02-26 01:04:51 +01:00
Bartosz Taudul
eb7e8162ff
Handle module names on server side.
2020-02-26 00:55:43 +01:00
Bartosz Taudul
d6c0720f8a
Save/load sampling period.
2020-02-25 23:46:16 +01:00
Bartosz Taudul
af58649113
Store symbol addresses.
2020-02-25 23:42:59 +01:00
Bartosz Taudul
ca894be51d
Store sampling period on server.
2020-02-25 23:13:28 +01:00
Bartosz Taudul
4695f60937
Fix display of kernel addresses.
2020-02-24 23:04:53 +01:00
Bartosz Taudul
9e1c24f93e
Add icon to filter entry boxes.
2020-02-24 01:33:12 +01:00
Bartosz Taudul
2e3b13ced5
Optional frame image display in messages list.
2020-02-24 01:29:57 +01:00
Bartosz Taudul
d63a15a570
Don't init unused memory on vector realloc.
...
Warning, this change may break things in unexpected ways!
2020-02-23 20:20:19 +01:00
Bartosz Taudul
d150e688f5
Simpler vector init.
2020-02-23 19:47:09 +01:00
Bartosz Taudul
00d91cb9ab
Optimize slab allocation.
2020-02-23 19:43:00 +01:00
Bartosz Taudul
085e1fd43f
Deduplicate code.
2020-02-23 19:16:33 +01:00
Bartosz Taudul
37d9a20b4a
Use caret right to indicate inlined frames, instead of "--".
2020-02-23 16:08:00 +01:00
Bartosz Taudul
7f5e23f2ac
Handle one more case of duplicate samples.
2020-02-23 15:57:36 +01:00
Bartosz Taudul
625d380f7a
Return value is not used.
2020-02-23 15:53:23 +01:00
Bartosz Taudul
759fd15c03
Don't load vector size twice.
2020-02-23 15:35:08 +01:00
Bartosz Taudul
31d2bc1740
Fix typo.
2020-02-23 11:49:01 +01:00
Bartosz Taudul
358de714c8
Don't use "???" external thread name.
2020-02-23 11:39:51 +01:00
Bartosz Taudul
2ec3813cb3
Collapse multiple callstack samples.
2020-02-23 00:24:04 +01:00
Bartosz Taudul
5e2390604d
Use proper check for "draw stack samples" option visibility.
2020-02-22 23:20:59 +01:00
Bartosz Taudul
90277953c7
Replace duplicate samples.
2020-02-22 21:36:27 +01:00
Bartosz Taudul
6532f622cb
Mute color of unknown call frames.
2020-02-22 21:17:36 +01:00
Bartosz Taudul
4273939cf5
Local threads must have at least one zone captured.
2020-02-22 18:52:38 +01:00
Bartosz Taudul
d4f9810006
Draw callstack sample data.
2020-02-22 18:52:38 +01:00
Bartosz Taudul
b425374cb7
Add callstack samples drawing option.
2020-02-22 18:52:38 +01:00
Bartosz Taudul
597911e5a8
Save/load callstack samples.
2020-02-22 18:52:38 +01:00
Bartosz Taudul
ca39c9877e
Display number of callstack samples.
2020-02-22 18:52:37 +01:00
Bartosz Taudul
437771ea85
Process callstack sample data.
2020-02-22 18:52:37 +01:00
Bartosz Taudul
ba0715b295
Replace remaining manual children checks with HasChildren().
2020-02-21 00:36:45 +01:00
Bartosz Taudul
ecc9369da2
Return zone extra during allocation.
2020-02-20 23:39:40 +01:00
Bartosz Taudul
4bf0af321f
Wrapper for allocation and retrieval of zone extra.
2020-02-20 23:37:55 +01:00
Bartosz Taudul
217c16de20
Display exact start and end time for CPU data.
2020-02-20 23:21:54 +01:00
Bartosz Taudul
c5dbd749e7
Combine ContextSwitchCpu writes.
2020-02-20 02:09:09 +01:00
Bartosz Taudul
54573fb970
Combine ContextSwitchData writes.
2020-02-20 02:05:23 +01:00
Bartosz Taudul
d96fcc95c2
Update list of tracy callstack frames.
2020-02-20 00:31:38 +01:00
Bartosz Taudul
b138db9c4d
Display mode in find zone menu.
2020-02-19 23:33:39 +01:00
Bartosz Taudul
b26f642c6e
Change "average" to "mean".
2020-02-19 23:29:18 +01:00
Bartosz Taudul
d4f99e4459
Perform cheaper check first.
2020-02-19 22:43:37 +01:00
Bartosz Taudul
25f6c5f884
Disable charconv on gcc/clang.
...
Because there's no way to check whether libstdc++ and libc++ finally
decided to implement the standard fully.
2020-02-13 19:22:08 +01:00
Bartosz Taudul
3140dbb34a
Size is never zero at start.
2020-02-13 18:41:32 +01:00
Bartosz Taudul
c870b10387
Offset in just-read block is always zero.
2020-02-13 18:39:46 +01:00
Bartosz Taudul
26584b00c3
Issue just one read call per zone.
...
Separate reads are issued only for first and last of children.
2020-02-13 18:11:54 +01:00
Bartosz Taudul
ebf2c3ad5b
No need to check if file has ended.
2020-02-13 15:41:20 +01:00
Bartosz Taudul
4d892cbae9
Preload next block size.
2020-02-13 15:37:37 +01:00
Bartosz Taudul
232379c72c
Optimize reading CPU data.
2020-02-13 01:14:12 +01:00
Bartosz Taudul
c03b8b72da
Optimize reading context switches.
2020-02-13 01:12:01 +01:00
Bartosz Taudul
3bb0f33dcc
Optimize reading plot data.
2020-02-13 01:04:40 +01:00
Bartosz Taudul
c0a2e9b3f7
Ditto during capture.
2020-02-13 00:54:54 +01:00
Bartosz Taudul
cc0f1f514c
Store memory event time and thread data together.
2020-02-13 00:52:29 +01:00
Bartosz Taudul
f9b19631c0
Read memory data in one go.
2020-02-13 00:37:54 +01:00
Bartosz Taudul
51e04673c6
8-element reader wrapper.
2020-02-13 00:35:20 +01:00
Bartosz Taudul
8e825d91e0
Keep refTime in a register.
2020-02-12 20:59:36 +01:00
Bartosz Taudul
39d24d0d4a
Set start and srcloc in one go.
2020-02-12 20:46:56 +01:00
Bartosz Taudul
5c6bfcbeee
Add combined start + srcloc setter for ZoneEvent.
2020-02-12 20:46:56 +01:00
Bartosz Taudul
354115ef9b
Reduce granularity of zone reading progress updates.
2020-02-12 20:03:14 +01:00
Bartosz Taudul
1492536bdb
Handle FileReadError.
2020-02-12 19:53:37 +01:00
Bartosz Taudul
eb79507501
Read files using mmap.
2020-02-12 19:43:05 +01:00
Bartosz Taudul
3b345aab37
FileRead::IsEOF() is no longer used.
2020-02-12 19:27:15 +01:00
Bartosz Taudul
cc805b7b74
Add mmap() wrapper.
2020-02-12 19:24:30 +01:00
Bartosz Taudul
fa1747bdb2
Faster total zone count calculation during loading.
2020-02-12 19:15:46 +01:00
Bartosz Taudul
e88df069bd
Load zone child number along with zone data.
2020-02-12 02:14:21 +01:00
Bartosz Taudul
925909aa3a
Wrapper for reading 6 elements at once.
2020-02-12 02:13:50 +01:00
Bartosz Taudul
1655bf284f
More Int24/Int48 optimizations.
2020-02-12 02:00:26 +01:00
Bartosz Taudul
f562ff780c
Don't care about atomic increments of counters.
2020-02-12 00:53:03 +01:00
Bartosz Taudul
88f3e554da
Read all CPU zone variables at once.
2020-02-12 00:36:59 +01:00
Bartosz Taudul
5227bc3549
Read all GPU zone variables at once.
2020-02-12 00:34:09 +01:00
Bartosz Taudul
6cab3dcd3a
Helper for reading 5 variables.
2020-02-12 00:32:00 +01:00
Bartosz Taudul
00ab76fa19
Discard scratch buffer tricks for better performance.
2020-02-12 00:29:45 +01:00
Bartosz Taudul
e0ec98d766
Keep ztime in register.
2020-02-11 23:20:38 +01:00
Bartosz Taudul
86644ecda0
Store intermediate results in registers, not in memory.
2020-02-11 02:35:50 +01:00
Bartosz Taudul
caace1ce11
Directly access memory, omitting shift.
...
As always, clang generated the right code here anyways...
2020-02-11 02:24:40 +01:00
Bartosz Taudul
5a995d804b
Draw zig-zag as a single stroke.
2020-02-10 23:34:33 +01:00
Bartosz Taudul
06cd57fe6e
Delay rounding h/2.
2020-02-10 23:24:58 +01:00
Bartosz Taudul
d80e7cc025
Remove unnecessary round() calls.
2020-02-10 23:20:35 +01:00
Bartosz Taudul
eff040dca6
Optimize drawing zig-zags.
2020-02-10 22:53:59 +01:00
Bartosz Taudul
ad3aa73085
Change order of background tasks.
...
Now tasks are performed in the following order:
- Context switch based CPU usage graph.
- Memory allocations plot.
- Zone statistics.
This prioritizes appearance of the most notable things first.
2020-02-10 22:31:10 +01:00
Bartosz Taudul
6f4a10be04
Optimize Int48 reconstruction.
2020-02-10 01:38:45 +01:00
Bartosz Taudul
76afef9117
Direct checks for context switch end validity.
2020-02-10 01:26:31 +01:00
Bartosz Taudul
ae0392a0e5
Don't needlessly convert doubles to integers.
2020-02-10 01:05:42 +01:00
Bartosz Taudul
d0c2a26ced
Fix continuous frames tooltips.
...
At high zoom-out levels frame tooltip will be always displayed now for
continuous frame sets. This greatly helps with scrubbing to an
appropriate location, basing of frame images.
2020-02-10 00:41:18 +01:00
Bartosz Taudul
ffdd5290bf
Clip wait regions display.
2020-02-10 00:12:34 +01:00
Bartosz Taudul
53e5eb749d
Compress frame images using zstd.
...
Memory usage and trace load times:
!comp 587 MB, 439 ms -> 541 MB, 523 ms (92%, 119%)
android-vk 197 MB, 136 ms -> 188 MB, 178 ms (95%, 130%)
big2 4463 MB, 2.93 s -> 4198 MB, 3.65 s (94%, 124%)
fi 483 MB, 346 ms -> 416 MB, 409 ms (86%, 118%)
fi-big 3307 MB, 3.15 s -> 2985 MB, 3.53 s (90%, 112%)
large 19.74 GB, 10.05 s -> 19.28 GB, 11.16 s (97%, 110%)
2020-02-09 21:22:12 +01:00
Bartosz Taudul
ec5c7cf8a7
Reading zstd compressed traces.
2020-02-08 16:14:43 +01:00
Bartosz Taudul
145514687c
Add zstd compression to FileWrite.
2020-02-08 16:14:43 +01:00
Bartosz Taudul
dd650e08ec
Display saved trace size.
2020-02-08 13:07:02 +01:00
Bartosz Taudul
6f554d7f00
Gather file compression statistics.
2020-02-08 12:57:35 +01:00
Bartosz Taudul
068e752aa7
No charconv for MSVC < 16.4.
...
https://docs.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=vs-2019#note_charconv
2020-02-06 00:37:27 +01:00
Bartosz Taudul
db408df395
Explain combined values in trace info window.
2020-02-05 23:49:10 +01:00
Bartosz Taudul
7425cd7112
Also display non-user plot data count.
2020-02-05 23:41:53 +01:00
Bartosz Taudul
1bad607e6c
Replace "2x" with "2×".
2020-02-05 23:37:03 +01:00
Bartosz Taudul
8624bb95ba
Fix double separator in options, if no GPU zones are available.
2020-02-05 23:32:59 +01:00
Bartosz Taudul
9556878b23
Display appropriate notification when there's no message data.
2020-02-05 23:30:52 +01:00
Bartosz Taudul
9fc9f71666
Properly initialize callstack frame tree.
2020-02-05 23:16:18 +01:00
Bartosz Taudul
0bb6162a01
Allow sorting memory data listings.
2020-02-05 17:08:41 +01:00
Bartosz Taudul
9aecd43f24
Display exact time in find zone range limit information.
2020-02-03 19:34:51 +01:00
Bartosz Taudul
eca27b9d12
Display exact time, where appropriate.
2020-02-02 15:13:20 +01:00
Bartosz Taudul
e9be4934c4
Display plot item time.
2020-02-02 15:13:20 +01:00
Bartosz Taudul
b1342a10b0
Exact time printing functionality.
2020-02-02 15:13:20 +01:00
Bartosz Taudul
b418c55e89
Verify tiny int printing input.
2020-02-02 14:31:59 +01:00
Bartosz Taudul
182efc0b04
Limit timeline view to <-5,5> days range.
2020-02-02 14:11:42 +01:00
Bartosz Taudul
8627a31912
Maximum time range is 1.6 days.
2020-02-02 14:11:42 +01:00
Bartosz Taudul
ea4b64909f
Fix 32-bit short_ptr.
2020-02-02 02:36:28 +01:00
Bartosz Taudul
b55fa19f72
Fix division by zero.
2020-02-01 18:01:24 +01:00
Bartosz Taudul
555203c46a
Don't display unknown frames if there's no callstack frames.
2020-02-01 17:49:27 +01:00
Bartosz Taudul
024182b6a0
Fit trace description entry field to window width.
2020-02-01 17:36:51 +01:00
Bartosz Taudul
d680fa6cd6
Clip memory allocation lists.
2020-01-31 19:18:20 +01:00
Bartosz Taudul
a84eec1aef
Clip found zones list.
2020-01-31 19:07:20 +01:00
Bartosz Taudul
f86fbe7fd5
Allow no-nonsense access to internal short_ptr pointer.
2020-01-31 19:06:21 +01:00
Bartosz Taudul
5f91b48e0c
Clip child zone list submissions.
2020-01-31 18:58:31 +01:00
Bartosz Taudul
4a6bc284af
Optimize "string (percentage)" printing.
2020-01-31 18:26:28 +01:00
Bartosz Taudul
ec8c661b38
Remove unneeded sprintfs.
2020-01-31 18:26:28 +01:00
Bartosz Taudul
87989a5f09
Again with this non-conformance stupidity!
2020-01-31 18:09:25 +01:00
Bartosz Taudul
289637384d
Perform less work if printing integers.
2020-01-31 02:32:12 +01:00
Bartosz Taudul
1475635382
Use std::to_chars() in RealToString().
2020-01-31 02:02:47 +01:00
Bartosz Taudul
f017b27ae2
RealToString() is always called with separator set to true.
2020-01-31 01:43:24 +01:00
Bartosz Taudul
3050f19e0b
Leverage std::to_chars.
2020-01-31 01:30:33 +01:00
Bartosz Taudul
36fb1f96e2
Custom float-printing function.
2020-01-31 01:19:08 +01:00
Bartosz Taudul
9a5104dacf
Extract and pass a value, which will be changing.
2020-01-30 01:57:49 +01:00
Bartosz Taudul
c04824890d
Add border to frame range highlight.
2020-01-29 02:17:13 +01:00
Bartosz Taudul
a218ca4412
Use correct format specifier.
2020-01-28 22:01:39 +01:00
Bartosz Taudul
7b0483dc16
Fix typo.
2020-01-28 22:00:07 +01:00
Bartosz Taudul
6946c1b205
Reorder initialization list.
2020-01-28 22:00:07 +01:00
Bartosz Taudul
6e0c238f71
Remove unneeded lambda capture.
2020-01-28 21:55:32 +01:00
Bartosz Taudul
022528bb47
Use Martin Ankerl's robin hood unordered map.
...
ska::flat_hash_map has bugs and its development is dead.
2020-01-28 21:49:36 +01:00
Bartosz Taudul
c1ba647f5b
Fix compilation errors.
2020-01-26 17:48:19 +01:00
Bartosz Taudul
1915a9e5f6
Display extra zone data count.
2020-01-26 17:28:37 +01:00
Bartosz Taudul
3e45e4abd9
Store zone children counts as uint32, not uint64.
...
This, along with the previous change has the following effect on trace
file sizes:
old/0.tracy (0.6.2) {6512 KB} -> new/0.tracy (0.6.3) {6518 KB} 100.10% size change
old/android.tracy (0.6.2) {488901 KB} -> new/android.tracy (0.6.3) {489710 KB} 100.17% size change
old/android-vk.tracy (0.6.2) {78049 KB} -> new/android-vk.tracy (0.6.3) {76570 KB} 98.10% size change
old/asset-new.tracy (0.6.2) {74224 KB} -> new/asset-new.tracy (0.6.3) {74181 KB} 99.94% size change
old/asset-new-id.tracy (0.6.2) {79900 KB} -> new/asset-new-id.tracy (0.6.3) {79875 KB} 99.97% size change
old/asset-old.tracy (0.6.2) {76245 KB} -> new/asset-old.tracy (0.6.3) {76420 KB} 100.23% size change
old/big.tracy (0.6.2) {922594 KB} -> new/big.tracy (0.6.3) {860068 KB} 93.22% size change
old/big2.tracy (0.6.2) {2028646 KB} -> new/big2.tracy (0.6.3) {1990121 KB} 98.10% size change
old/callstack.tracy (0.6.2) {14343 KB} -> new/callstack.tracy (0.6.3) {17707 KB} 123.45% size change
old/callstack-bsd.tracy (0.6.2) {14551 KB} -> new/callstack-bsd.tracy (0.6.3) {12652 KB} 86.94% size change
old/callstack-linux.tracy (0.6.2) {6953 KB} -> new/callstack-linux.tracy (0.6.3) {7012 KB} 100.86% size change
old/callstack-lua.tracy (0.6.2) {20439 KB} -> new/callstack-lua.tracy (0.6.3) {25889 KB} 126.66% size change
old/chicken.tracy (0.6.2) {311549 KB} -> new/chicken.tracy (0.6.3) {293828 KB} 94.31% size change
old/color.tracy (0.6.2) {865 KB} -> new/color.tracy (0.6.3) {866 KB} 100.13% size change
old/crash.tracy (0.6.2) {130 KB} -> new/crash.tracy (0.6.3) {130 KB} 99.85% size change
old/crash2.tracy (0.6.2) {1403 KB} -> new/crash2.tracy (0.6.3) {1327 KB} 94.56% size change
old/ctx.tracy (0.6.2) {3207 KB} -> new/ctx.tracy (0.6.3) {3203 KB} 99.89% size change
old/ctx-android.tracy (0.6.2) {88240 KB} -> new/ctx-android.tracy (0.6.3) {86209 KB} 97.70% size change
old/ctx-big.tracy (0.6.2) {88702 KB} -> new/ctx-big.tracy (0.6.3) {87038 KB} 98.12% size change
old/darkrl.tracy (0.6.2) {15458 KB} -> new/darkrl.tracy (0.6.3) {14560 KB} 94.19% size change
old/darkrl2.tracy (0.6.2) {7824 KB} -> new/darkrl2.tracy (0.6.3) {7435 KB} 95.02% size change
old/darkrl-light-big.tracy (0.6.2) {259652 KB} -> new/darkrl-light-big.tracy (0.6.3) {234625 KB} 90.36% size change
old/darkrl-old.tracy (0.6.2) {66299 KB} -> new/darkrl-old.tracy (0.6.3) {61883 KB} 93.34% size change
old/dxtc-bad.tracy (0.6.2) {7078 KB} -> new/dxtc-bad.tracy (0.6.3) {7048 KB} 99.57% size change
old/frameimages.tracy (0.6.2) {206425 KB} -> new/frameimages.tracy (0.6.3) {203537 KB} 98.60% size change
old/frameimages-big.tracy (0.6.2) {1177638 KB} -> new/frameimages-big.tracy (0.6.3) {1150496 KB} 97.70% size change
old/gn-opengl.tracy (0.6.2) {28587 KB} -> new/gn-opengl.tracy (0.6.3) {27355 KB} 95.69% size change
old/gn-vulkan.tracy (0.6.2) {28553 KB} -> new/gn-vulkan.tracy (0.6.3) {27050 KB} 94.74% size change
old/long.tracy (0.6.2) {1152078 KB} -> new/long.tracy (0.6.3) {1124731 KB} 97.63% size change
old/mem.tracy (0.6.2) {1187810 KB} -> new/mem.tracy (0.6.3) {1187668 KB} 99.99% size change
old/messages-callstack.tracy (0.6.2) {8743 KB} -> new/messages-callstack.tracy (0.6.3) {8608 KB} 98.46% size change
old/multi.tracy (0.6.2) {7735 KB} -> new/multi.tracy (0.6.3) {7304 KB} 94.43% size change
old/new.tracy (0.6.2) {1101 KB} -> new/new.tracy (0.6.3) {1076 KB} 97.79% size change
old/q3bsp-mt.tracy (0.6.2) {912230 KB} -> new/q3bsp-mt.tracy (0.6.3) {849329 KB} 93.10% size change
old/q3bsp-st.tracy (0.6.2) {227162 KB} -> new/q3bsp-st.tracy (0.6.3) {221594 KB} 97.55% size change
old/raytracer.tracy (0.6.2) {1105411 KB} -> new/raytracer.tracy (0.6.3) {977307 KB} 88.41% size change
old/selfprofile.tracy (0.6.2) {196894 KB} -> new/selfprofile.tracy (0.6.3) {184351 KB} 93.63% size change
old/tbrowser.tracy (0.6.2) {8776 KB} -> new/tbrowser.tracy (0.6.3) {7997 KB} 91.13% size change
old/test.tracy (0.6.2) {40498 KB} -> new/test.tracy (0.6.3) {39751 KB} 98.15% size change
old/topology.tracy (0.6.2) {3733 KB} -> new/topology.tracy (0.6.3) {3739 KB} 100.16% size change
old/topology-android.tracy (0.6.2) {5292 KB} -> new/topology-android.tracy (0.6.3) {5177 KB} 97.82% size change
old/tracy-dynamic.tracy (0.6.2) {672684 KB} -> new/tracy-dynamic.tracy (0.6.3) {608221 KB} 90.42% size change
old/tracy-static.tracy (0.6.2) {2310589 KB} -> new/tracy-static.tracy (0.6.3) {2136791 KB} 92.48% size change
old/virtualfile_hc.tracy (0.6.2) {72169 KB} -> new/virtualfile_hc.tracy (0.6.3) {72142 KB} 99.96% size change
old/vk-mt.tracy (0.6.2) {10815 KB} -> new/vk-mt.tracy (0.6.3) {10714 KB} 99.07% size change
old/zfile_hc.tracy (0.6.2) {39065 KB} -> new/zfile_hc.tracy (0.6.3) {39063 KB} 100.00% size change
2020-01-26 17:16:46 +01:00
Bartosz Taudul
f2a226407f
Store extra zone data separately.
...
Extra zone data consists of:
- custom zone name,
- zone text,
- zone callstack index.
If neither of these data values is stored in zone, 5 bytes are saved. If
any one of them is required, extra 4 bytes are added, for an index into
extra data array.
Memory savings:
android 2371 MB -> 2324 MB
big 7593 MB -> 6747 MB
chicken 1687 MB -> 1501 MB
drl-l-b 1119 MB -> 1013 MB
long 4289 MB -> 4190 MB
q3bsp-mt 4399 MB -> 3918 MB
q3bsp-st 1067 MB -> 1027 MB
raytracer 6057 MB -> 5342 MB
selfprofile 1177 MB -> 1079 MB
tracy-dynamic 4489 MB -> 4013 MB
tracy-static 16.2 GB -> 14.3 GB
2020-01-26 16:19:07 +01:00
Bartosz Taudul
3aa427fdd6
Remove queue delay adjustment due to zone text.
2020-01-26 15:09:12 +01:00
Bartosz Taudul
2377911313
Package/core tooltip cosmetics.
2020-01-24 21:32:36 +01:00
Bartosz Taudul
c43bd2bfe2
Add dedicated function to check if zone has children.
2020-01-24 02:17:38 +01:00
Bartosz Taudul
ad3f37aec6
No need for two same check.
2020-01-24 02:16:29 +01:00
Bartosz Taudul
443771ecff
Only display zone "statistics" button if data is available.
2020-01-23 19:49:23 +01:00
Bartosz Taudul
1c1e5d5ee7
Don't check for invalid zones in source location data.
2020-01-23 19:10:56 +01:00
Bartosz Taudul
e31b529b4a
Count zones at zone end, not zone begin.
...
This makes sure only finished, non-zero-timespan zones are counted in
the statistics.
2020-01-23 19:10:56 +01:00
Bartosz Taudul
23601904cd
Replace one more end validity check.
2020-01-23 18:50:13 +01:00
Bartosz Taudul
54a767bf81
Use just sign bit to check end value validity.
2020-01-22 22:25:04 +01:00
Bartosz Taudul
9420234a98
Force inline flat_hash_map wrappers.
2020-01-22 22:06:35 +01:00
Bartosz Taudul
3010c7ce63
Don't use proxy for a pointer.
2020-01-22 01:54:25 +01:00
Bartosz Taudul
ea424a4c8d
Use custom vector.
2020-01-20 23:58:36 +01:00
Bartosz Taudul
e5ae1ea2cc
Only perform search, if necessary.
2020-01-20 23:53:04 +01:00
Bartosz Taudul
6de489a34f
Use flat_hash_map for groups.
2020-01-20 23:43:10 +01:00
Bartosz Taudul
6358b4588d
Preserve groups order.
2020-01-20 23:40:07 +01:00
Bartosz Taudul
6b3165d3cc
Perform map lookup in one place.
2020-01-20 23:34:48 +01:00
Bartosz Taudul
38e7d12b0b
Use parallel sort in find zone menu.
2020-01-20 23:21:43 +01:00
Bartosz Taudul
7d78923967
Move parallel sort header mumbo jumbo to a separate file.
2020-01-20 23:21:43 +01:00
Bartosz Taudul
46dc85c10c
Fix parent identifier extension to 64 bits.
...
Source location identifiers are signed 16 bits. Extending this value to
64 bits without first casting it to unsigned 16 bit caused bit extension
of the sign bit, making the value clash with "unselected" group
identifier.
2020-01-19 15:25:45 +01:00
Bartosz Taudul
91f86ce5b5
Tid to pid mapping may be already known.
2020-01-14 02:06:36 +01:00
Bartosz Taudul
3a460d3183
Use _mm_pause() instead of std::this_thread::yield() if possible.
2019-12-31 14:59:54 +01:00
Bartosz Taudul
8b56386ccd
Keep atomics on separate cache lines.
2019-12-31 14:46:01 +01:00
Bartosz Taudul
ed5f534bbb
Use proper data type size.
2019-12-28 18:28:37 +01:00
Bartosz Taudul
24727175d7
Implement copying user data location to clipboard.
2019-12-28 18:17:06 +01:00
Bartosz Taudul
9e76ddb9fd
User data directory location getter.
2019-12-28 18:16:45 +01:00
Bartosz Taudul
36942a5ddb
Resetting groups should also unselect group.
2019-12-28 18:03:30 +01:00
Bartosz Taudul
0ff6d6364b
Don't operate on empty vector.
2019-12-28 18:03:13 +01:00
Bartosz Taudul
17afcbce4f
Highlight zone from zone list on histogram.
2019-12-28 17:50:54 +01:00
Bartosz Taudul
46ed2fb802
Enhance time distribution zone search.
...
When the find zone menu is opened from the zone time distribution list,
time range limit will be enabled, preventing display of zones outside of
the selected zone range. This allows much easier finding of child zones
within the selected zone scope.
Limiting zone search to a specified thread(s) might also be helpful
here, but it can be worked around by looking only at zones in a single
thread group.
2019-12-28 17:28:39 +01:00
Bartosz Taudul
e083b2773a
Add icon to zone time range display.
2019-12-28 17:24:11 +01:00
Bartosz Taudul
870c9c734f
Draw range limit highlight.
2019-12-28 17:23:09 +01:00
Bartosz Taudul
46f3390365
Allow limiting zone time range in find zone menu.
2019-12-28 17:18:07 +01:00
Bartosz Taudul
33e7d175d4
Add zone time range limit controls.
2019-12-28 15:57:07 +01:00
Bartosz Taudul
6c6b78bcbd
Fix find zone selection time.
2019-12-28 15:48:45 +01:00
Bartosz Taudul
115c66324d
Add inclusive time display to time distribution.
2019-12-25 15:07:52 +01:00
Bartosz Taudul
1032eb95d2
Set sane default window size for CPU data.
2019-12-19 17:45:55 +01:00
Bartosz Taudul
f7f0ec0cec
Fix memcpy from nullptr.
2019-12-19 17:30:37 +01:00
Bartosz Taudul
ef9bcb6696
Don't send query if no connection to client.
...
Fixes chrome import.
2019-12-19 17:23:46 +01:00
Bartosz Taudul
e8db86d092
Implement ZoneText() string merging.
2019-12-18 13:33:01 +01:00
Bartosz Taudul
14e096d052
Set (some of) the required variables.
2019-12-16 20:42:24 +01:00
Bartosz Taudul
0137404449
Invalid source location should be 0, not UINT16_MAX (?).
2019-12-16 19:11:23 +01:00
Bartosz Taudul
ced47f227c
Add "import data" constructor to Worker.
2019-12-16 18:55:02 +01:00
Bartosz Taudul
95af214abe
Prevent 0 ns timeline view range.
2019-12-16 18:40:38 +01:00
Bartosz Taudul
0507460a16
Add markers for package and core thread migrations.
2019-11-29 23:09:30 +01:00
Bartosz Taudul
9cf7629e9b
Display CPU package, core tooltip for zone CPU list.
2019-11-29 23:09:11 +01:00
Bartosz Taudul
7ac47ab6bb
Display package, core info on CPU data timeline.
2019-11-29 22:57:18 +01:00
Bartosz Taudul
db3e802643
Build reverse CPU topology map.
2019-11-29 22:46:57 +01:00
Bartosz Taudul
712403e9fd
Transfer, display, save CPU topology data.
2019-11-29 22:41:41 +01:00
Bartosz Taudul
5b83ae4381
Release 0.6.1.
2019-11-28 23:24:15 +01:00
Bartosz Taudul
ade01e98ad
Add time-relative switch to message list in zone info window.
2019-11-27 01:42:44 +01:00
Bartosz Taudul
3e47fd6bcd
Display thread color boxes in messages list.
2019-11-27 01:38:47 +01:00
Bartosz Taudul
cc87cebee3
Display trace parameters only when the connection is active.
2019-11-26 00:57:06 +01:00
Bartosz Taudul
4551553eb4
Implement setting client parameters from server.
2019-11-25 23:59:48 +01:00
Bartosz Taudul
c5c9dfb0c9
Native callstacks are now optional in allocated callstack messages.
2019-11-25 22:54:10 +01:00
Bartosz Taudul
ace780ea74
Add CPU data thread highlight.
2019-11-24 01:40:32 +01:00
Bartosz Taudul
07e69a88c2
Fix CPU thread highlight for Vulkan zones.
2019-11-24 01:28:23 +01:00
Bartosz Taudul
2379d422cf
GPU zones highlight whole CPU thread timeline.
2019-11-24 01:21:49 +01:00
Bartosz Taudul
7f689dadbe
Use backspace icon for buttons erasing text entry.
2019-11-24 01:06:04 +01:00
Bartosz Taudul
1cc5dea616
Ignore BSD tracy-specific callstack frames.
2019-11-21 21:51:58 +01:00
Bartosz Taudul
fb6a92380d
Drop support for pre-v0.5 traces.
2019-11-21 21:48:35 +01:00
Bartosz Taudul
31b6ff4bae
Release 0.6.0.
2019-11-17 19:56:42 +01:00
Bartosz Taudul
c62732804a
Round CPU data font height.
2019-11-17 14:30:10 +01:00
Bartosz Taudul
1e29d12819
More saturation in dynamic colors.
2019-11-16 23:03:46 +01:00
Bartosz Taudul
8ca67e49e4
Scale frame images in tooltips according to DPI scaling.
2019-11-16 22:58:51 +01:00
Bartosz Taudul
2d22372de3
Scale playback contents according to DPI scale.
2019-11-16 22:54:52 +01:00
Bartosz Taudul
37a658d933
Add srcloc color box to zone tooltips.
2019-11-16 22:38:43 +01:00
Bartosz Taudul
f670d82796
Show migrations when thread is hovered in CPU data window.
2019-11-16 16:51:56 +01:00
Bartosz Taudul
41f9dc0aa1
Cosmetics.
2019-11-16 16:37:08 +01:00
Bartosz Taudul
d9f71643ac
Lock event time is known, don't reconstruct it.
2019-11-15 22:50:08 +01:00
Bartosz Taudul
a46731996d
Thread list size is known from iteration.
2019-11-15 22:44:44 +01:00
Bartosz Taudul
db930f7f93
Reserve space for thread map, list.
2019-11-15 22:44:36 +01:00
Bartosz Taudul
18fd928a9d
Don't display callstack message column if there are no callstacks.
2019-11-15 20:34:19 +01:00
Bartosz Taudul
d7d6a0fa9d
More consistent srcloc/thread colors in zone info windows.
2019-11-15 20:13:13 +01:00
Bartosz Taudul
49e3bc8b21
Don't draw unneeded separator.
2019-11-15 20:04:59 +01:00
Bartosz Taudul
5f0cab6b63
Display call stack calls in memory allocation window.
2019-11-15 20:02:21 +01:00
Bartosz Taudul
973fd941d5
Extract call stack calls drawing functionality.
2019-11-15 19:59:13 +01:00
Bartosz Taudul
a518564006
No extended font in no-extended-font path.
2019-11-15 19:58:50 +01:00
Bartosz Taudul
12037b88ff
Display messages callstack in messages list.
2019-11-15 01:22:26 +01:00
Bartosz Taudul
49945c7198
Process message callstacks.
2019-11-15 01:22:26 +01:00
Bartosz Taudul
9cf46e6ae6
Fix lock time announce/terminate in older traces.
2019-11-13 02:04:35 +01:00
Bartosz Taudul
f7ff0781b6
Properly set background done state in no-statistics builds.
2019-11-11 00:20:33 +01:00
Bartosz Taudul
b946c1d39e
Only enable magic fitted vectors in no-statistics builds.
...
Source location zones pointer fixup is just too slow to be feasible.
Note: no-statistics builds of the graphical profiler don't perform fixup
of view-related pointers (e.g. zone info window zone pointer). This
won't cause crashes, because the pointers are still valid, but the
displayed data will be incorrect and potentially changing in time, as
the pointer can be reused for completely other zone.
Memory usage of ToyPathTracer data, in various scenarios:
Capture + statistics: 7121 MB
Load + statistics: 6057 MB
Capture - statistics: 4876 MB
Load - statistics: 4521 MB
2019-11-11 00:20:33 +01:00
Bartosz Taudul
e1e3bbbe3e
Fixup source location zones pointers.
2019-11-11 00:20:33 +01:00
Bartosz Taudul
ae33aa4869
Fitted zone vectors are now magic vectors.
...
The pointed-to zones in the original children vector can't be freed, so
they are put into a zone pool for re-use by future zones.
2019-11-11 00:20:33 +01:00
Bartosz Taudul
4f962d2fcc
Add ZoneEvent re-use pool.
2019-11-11 00:20:33 +01:00
Bartosz Taudul
fd7ad586af
Make display of zone time in frames toggleable.
...
And disable it by default, as it can be heavy on resources.
2019-11-10 23:27:37 +01:00
Bartosz Taudul
fa53c2e683
Don't care about memory usage tracking data races.
2019-11-10 19:21:24 +01:00
Bartosz Taudul
9504d6c68f
Don't try to delete empty Vectors.
2019-11-10 17:54:50 +01:00
Bartosz Taudul
f2801491bf
Don't copy back pointer.
2019-11-10 17:48:54 +01:00
Bartosz Taudul
44f1d3dc1c
Use proper memory ordering.
2019-11-10 17:30:38 +01:00
Bartosz Taudul
d4a1168491
Messages are inserted for current thread context.
2019-11-10 17:23:04 +01:00
Bartosz Taudul
003bed573c
Use ThreadData cache in zone validation.
2019-11-10 17:20:55 +01:00
Bartosz Taudul
b1c88cd1f2
Cache ThreadData pointer for current thread context.
2019-11-10 17:17:07 +01:00
Bartosz Taudul
ded49edf4c
Fix magic vectors in single-threaded Vulkan tooltip.
2019-11-10 16:50:19 +01:00
Bartosz Taudul
672093cf0e
Adapt WriteTimeline() to magic vectors.
2019-11-10 16:34:38 +01:00
Bartosz Taudul
4eb8acc973
Magic vectors in automatic GPU drift detection.
2019-11-10 02:27:46 +01:00
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
9b52152e77
Adapt GetZoneEnd() for magic vectors.
2019-11-10 01:43:28 +01:00
Bartosz Taudul
7c277234e7
Load GPU zones into magic vectors.
2019-11-10 01:36:13 +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
f8edd3a37b
Zone statistics reconstructions has to use magic vectors.
2019-11-10 00:00:40 +01:00
Bartosz Taudul
065ba4ce5a
Load zones into magic vectors.
2019-11-10 00:00:40 +01:00
Bartosz Taudul
8ab2cf09b7
Handle magic vectors during dispatch.
2019-11-10 00:00:40 +01:00
Bartosz Taudul
60c2b53d47
Add magic field to Vector.
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
85e7125fee
Add Vector iterator adapters.
2019-11-10 00:00:40 +01:00
Bartosz Taudul
40e9c8807d
Remove unused lambda capture.
2019-11-10 00:00:15 +01:00
Bartosz Taudul
3a317c81c6
Fix logic error.
2019-11-09 23:57:08 +01:00
Bartosz Taudul
b3698ebb0f
Merge read calls.
2019-11-09 00:48:20 +01:00
Bartosz Taudul
3e65532eaa
Add Read3(), Read4() helpers.
2019-11-09 00:27:49 +01:00
Bartosz Taudul
2131eed4e7
Support multiple types in Read2().
2019-11-09 00:25:12 +01:00
Bartosz Taudul
e80a19234e
Don't store and read compressed thread.
2019-11-09 00:23:09 +01:00
Bartosz Taudul
467d675262
Zone reads can be merged.
2019-11-09 00:08:26 +01:00
Bartosz Taudul
23c59a6fc9
Use query cache.
2019-11-08 23:59:20 +01:00
Bartosz Taudul
ec895372b7
Thread is not needed in ReadTimeline().
2019-11-08 23:56:11 +01:00
Bartosz Taudul
6ec734c264
Split ReadTimelineUpdateStatistics().
2019-11-08 23:53:43 +01:00
Bartosz Taudul
c20da5ea70
Move unimportant fields to back of FileRead class.
2019-11-08 23:31:17 +01:00
Bartosz Taudul
31e2bc1141
Free Vector's memory during move assignment.
2019-11-08 22:52:23 +01:00
Bartosz Taudul
a1488a74a1
Perform Vector's swap() as a bitwise move.
2019-11-08 22:50:22 +01:00
Bartosz Taudul
b6213cfbc5
Define Vector's max capacity in one place.
2019-11-08 22:48:44 +01:00
Bartosz Taudul
5df7444cbb
Replace djb hash with xxh3.
2019-11-07 23:52:52 +01:00
Bartosz Taudul
17ee1aed5f
Add xxhash.
...
https://github.com/Cyan4973/xxHash/tree/master
e2f4695899e831171ecd2e780078474712ea61d3
2019-11-07 23:52:12 +01:00
Bartosz Taudul
4a9138fc51
Reduce FrameEvent size by 4 bytes.
...
While it would be nice to store frame times on 48 bytes, it is not
currently possible, as older traces have full 64 bit frame time stamps,
which are only then offset to first frame start time.
2019-11-07 23:05:13 +01:00
Bartosz Taudul
675cbc51cc
Store memory free indices as 32 bit.
...
More than 4 billion memory events seems unlikely.
Memory savings in "mem" trace: 5747 MB -> 5427 MB.
2019-11-07 22:36:51 +01:00
Bartosz Taudul
bb2d44ae08
All time deltas must be processed.
2019-11-07 16:14:23 +01:00
Bartosz Taudul
ea2c329510
Input data *must not* be changed.
...
Not even for a short moment.
2019-11-07 01:29:11 +01:00
Bartosz Taudul
4a4fe82a1b
No need to inject string terminator.
...
Comparison in m_data.stringMap already takes string size into account,
as an charutil::StringKey optimization.
2019-11-07 01:28:29 +01:00
Bartosz Taudul
dfad9695d2
Compress frame image data right as it arrives.
...
This removes the need to store temporary uncompressed image buffers,
which involves constant memory allocation and freeing. Instead, just one
permanent buffer is used, and only because the input data cannot change
during processing.
2019-11-06 23:29:59 +01:00
Bartosz Taudul
46d33f45bf
Frame image packer doesn't care about width and height.
2019-11-06 22:53:01 +01:00
Bartosz Taudul
10a3516099
Delete uncompressed frame image data.
2019-11-06 22:38:19 +01:00
Bartosz Taudul
d741fb0af9
Plot can be empty if it was only configured.
2019-11-06 12:08:20 +01:00
Bartosz Taudul
df0e28a61f
Remove more unneeded includes.
2019-11-06 01:37:58 +01:00
Bartosz Taudul
f53637891a
Remove LZ4 include from TracyWorker.hpp.
2019-11-06 01:25:38 +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
661c4a417b
Process and store plot value formatting.
2019-11-05 18:02:08 +01:00
Bartosz Taudul
a7a739eea9
Use precalculated context switch usage data.
2019-11-05 01:41:27 +01:00
Bartosz Taudul
51090e5fb9
Implement ctx switch usage reconstruction.
2019-11-05 01:28:44 +01:00
Bartosz Taudul
8128b3894a
Add vector debug macro.
...
Natvis is lacking in functionality, so this has to do.
2019-11-05 01:28:44 +01:00
Bartosz Taudul
946e328198
Fix 32-bit short_ptr.
2019-11-05 01:28:44 +01:00
Bartosz Taudul
6a500ccdb3
Don't display CPU usage until data is ready.
2019-11-05 01:28:44 +01:00
Bartosz Taudul
50b96c757e
Context switch usage reconstruction skeleton.
2019-11-05 01:28:44 +01:00
Bartosz Taudul
a62c4135ad
Add context switch usage struct.
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
5620597fb4
Use short ptr in VarArray.
2019-11-03 16:29:45 +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
29dcc5c8bc
Don't zero-initialize Int48.
2019-11-03 14:33:13 +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
4bc1588a5e
Clear proper vector.
2019-11-02 16:57:18 +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
0df29d1e0b
Use short ptr for source location payload data.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
04c92f8d19
Use short ptr for callstack payload storage.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
b0e52f20f8
Use short ptr for FrameImage storage.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
72efbe28ed
Use short ptr for message data.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
52062f96d0
Use short ptr for GPU context map.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
308c280e40
Use short ptr for GPU context query data.
2019-11-02 16:54:12 +01:00
Bartosz Taudul
1e4022e05b
Use proper comparison.
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
181d16459c
Use short ptr for Vector data.
2019-11-02 16:17:45 +01:00
Bartosz Taudul
ea23d2b91a
Use short ptr for frame images.
2019-11-02 15:43:32 +01:00
Bartosz Taudul
2a28c6cc72
Use short ptr for callstack frame data.
2019-11-02 15:43:32 +01:00
Bartosz Taudul
654f54d877
Add short pointer class, storing 6 bytes.
2019-11-02 15:43:32 +01:00
Bartosz Taudul
45ff14d678
Fix saving source location payload data.
2019-11-02 14:28:59 +01:00
Bartosz Taudul
16bc862904
Save sizes of children vectors to prevent reallocation.
2019-11-02 12:38:32 +01:00
Bartosz Taudul
c99dc5c431
Disable SetGpuStart() assert for compat with old traces.
...
Currently the unknown GPU start is indicated by a -1 value, but it was
maximum int value previously. While the assert check is valid for newly
created traces, it will fire off if an older trace is loaded.
Temporarily disabling the check (effectively until only 0.6 traces are
supported) fixes the problem, as the max int value (0x7f...) has its
high bits removed and the low bytes will be sign extended during number
reconstruction, making it -1, as intended.
2019-11-02 02:41:51 +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
39988ad636
Check for shutdown in background processing thread.
2019-10-31 21:41:21 +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
456deefdbc
Keep child idx on stack.
2019-10-30 23:55:21 +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
7ce8c772ad
Disallow negative GPU times.
...
Shouldn't happen, but GPU timestamps are a shitshow, so better be safe
than sorry.
2019-10-30 22:37:07 +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
789b95f259
Force inline small functions.
2019-10-29 01:32:09 +01:00
Bartosz Taudul
8c8f15c420
Force inline Slab::AllocInit().
2019-10-29 01:19:40 +01:00
Bartosz Taudul
6f0dc2885f
Fix connection abort.
2019-10-28 23:32:51 +01:00
Bartosz Taudul
8050622b0f
Read and decompress network data on a separate thread.
2019-10-28 23:22:50 +01:00
Bartosz Taudul
e0356ae01e
Cosmetics.
2019-10-28 22:53:06 +01:00
Bartosz Taudul
99b7e8ad92
Close socket when shutting down.
2019-10-28 22:52:52 +01:00
Bartosz Taudul
788ca2e5df
Spawn no-op network thread.
2019-10-28 22:45:10 +01:00
Bartosz Taudul
7f07f5beb4
Free child time stack.
2019-10-26 23:32:16 +02:00
Bartosz Taudul
01985f50ef
Cache source location zones counter search.
2019-10-26 16:33:40 +02:00
Bartosz Taudul
1d0084aa28
Add cache for last accessed source location zones.
2019-10-25 21:29:55 +02:00
Bartosz Taudul
b5419944aa
Only write to memory if value has changed.
2019-10-25 21:28:55 +02:00
Bartosz Taudul
779063a18b
Cache last shrinked source location.
2019-10-25 21:07:28 +02:00
Bartosz Taudul
294793367f
Cache last CheckSourceLocation query.
...
Just knowing that the query was performed is enough here -- this
function adds a new source location entry, if there already isn't one.
2019-10-25 21:01:33 +02:00
Bartosz Taudul
0f2503d334
Send time deltas in GPU time events.
2019-10-25 19:52:01 +02:00
Bartosz Taudul
1ce25d3aef
Init cache in-place.
2019-10-25 19:19:35 +02:00
Bartosz Taudul
8fa5188176
Send delta times for context switches.
2019-10-25 19:13:11 +02:00
Bartosz Taudul
c8e5489e99
Group caches together.
2019-10-25 18:16:27 +02:00
Bartosz Taudul
29c42cc8d7
Fix assert.
2019-10-25 01:00:32 +02:00
Bartosz Taudul
17a51c898e
No need to check if vector is empty.
2019-10-25 00:54:46 +02:00
Bartosz Taudul
b5e759bc5a
Don't calculate child index twice.
2019-10-25 00:54:46 +02:00
Bartosz Taudul
70f1074490
Don't iterate over children to calculate zone self time.
2019-10-25 00:33:44 +02:00
Bartosz Taudul
d6a8a8532f
Prevent storing variable on stack.
2019-10-24 23:40:21 +02:00
Bartosz Taudul
1fe76be955
Don't reconstruct lock event time on insert.
2019-10-24 23:25:04 +02:00
Bartosz Taudul
b83d0f46d9
Improve updating last time.
...
Avoid LHS, don't write if don't need to.
2019-10-24 23:23:52 +02:00
Bartosz Taudul
721f3c8925
Callstack is already zero-initialized.
2019-10-24 23:05:39 +02:00
Bartosz Taudul
45332fd837
Don't read memory when setting values.
2019-10-24 23:03:13 +02:00