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
Bartosz Taudul
c9da5f1474
Use cached thread retriever.
2019-10-24 22:34:18 +02:00
Bartosz Taudul
5873561b54
Add cached thread retriever.
2019-10-24 22:33:48 +02:00
Bartosz Taudul
06bc802107
Avoid load-hit-store.
2019-10-24 22:24:00 +02: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
1cfb5adc44
Count transferred data size.
2019-10-24 00:47:16 +02:00
Bartosz Taudul
ba61a9ed84
Transfer time deltas, not absolute times.
...
This change significantly reduces network bandwidth requirements.
Implemented for:
- CPU zones,
- GPU zones,
- locks,
- plots,
- memory events.
2019-10-24 00:06:41 +02:00
Bartosz Taudul
5c92eae3ed
Add early exit for invalid times.
2019-10-20 18:47:50 +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
4d761def61
Microoptimize comparison.
2019-10-16 20:26:39 +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
3ae5c125f6
Implement counting CPU usage (ctx switch) at a given time.
2019-10-15 16:54:43 +02:00