Bartosz Taudul
7a4c6b3d68
Split heavy used functions into check and add parts.
2017-11-19 17:58:56 +01:00
Bartosz Taudul
89448b473e
Don't check for nullptr, if already know there isn't one.
2017-11-19 17:28:12 +01:00
Bartosz Taudul
1e6707c609
Add no-nullptr-check push_back to Vector.
2017-11-19 17:27:51 +01:00
Bartosz Taudul
8c30f75b4d
Prevent inlining of vector reallocation function.
2017-11-19 17:15:24 +01:00
Bartosz Taudul
ff35f2960a
Remove a level of indirection.
2017-11-19 16:27:23 +01:00
Bartosz Taudul
08b8c6ec1b
Optimize slab initializing allocation.
2017-11-19 13:53:39 +01:00
Bartosz Taudul
ca5d35e6cd
Slab offset can be 32 bit.
...
This reduces memory system pressure.
2017-11-19 13:38:55 +01:00
Bartosz Taudul
0fe4232015
Optimize string wrappers initialization.
2017-11-19 13:36:03 +01:00
Bartosz Taudul
0770ed8ee6
Optimize ptr walking.
2017-11-19 13:22:08 +01:00
Bartosz Taudul
b3e0d2660d
Properly use zone stack when inserting new zones.
...
CPU zones stack was also moved to thread data struct.
2017-11-19 01:16:21 +01:00
Bartosz Taudul
17fdd2bcbf
Zone tooltip cosmetics.
2017-11-18 13:47:05 +01:00
Bartosz Taudul
ac68cde9f3
Render zero nanosecond zones.
2017-11-18 13:40:49 +01:00
Bartosz Taudul
68f8bb906e
New context events are not serialized.
2017-11-18 01:49:44 +01:00
Bartosz Taudul
f73e8aaa59
Display thread zone counts.
2017-11-18 01:14:55 +01:00
Bartosz Taudul
429b44ca54
Add separators to GPU zone counts.
2017-11-18 01:14:50 +01:00
Bartosz Taudul
123de74fca
Thread thread zone count.
2017-11-18 01:14:16 +01:00
Bartosz Taudul
cc3d18d51d
Count GPU zones.
2017-11-18 01:07:28 +01:00
Bartosz Taudul
cd275fee9d
Thread information window.
2017-11-18 01:03:40 +01:00
Bartosz Taudul
b6079f8c9a
Display number of top-level zones.
2017-11-18 01:03:32 +01:00
Bartosz Taudul
4ba40016ce
Display GPU context appearance info.
2017-11-18 00:56:05 +01:00
Bartosz Taudul
82edca301f
Tooltip cosmetics.
2017-11-18 00:51:04 +01:00
Bartosz Taudul
18252feeeb
Display GPU context information tooltip.
2017-11-18 00:34:16 +01:00
Bartosz Taudul
1a4889116e
Store GPU accuracy bits info.
2017-11-18 00:34:16 +01:00
Bartosz Taudul
515443605d
memset on non-POD data is UB.
2017-11-16 02:19:52 +01:00
Bartosz Taudul
e579374504
Remove unused variable.
2017-11-16 00:35:04 +01:00
Bartosz Taudul
c4ca6f8205
Proper initialization order.
2017-11-16 00:33:10 +01:00
Bartosz Taudul
abd0676cea
Use flat_hash_map.
2017-11-15 23:15:59 +01:00
Bartosz Taudul
0d7ba57fa4
Move flat_hash_map to tracy namespace.
2017-11-15 23:04:07 +01:00
Bartosz Taudul
3bc483bd9e
Add flat_hash_map.
...
https://github.com/skarupke/flat_hash_map.git
2ceada9f7fb5c6d808e33546882fc63662e10e79
2017-11-15 23:02:35 +01:00
Bartosz Taudul
3f5603ad96
Use global lock for processing of incoming events.
2017-11-15 22:33:11 +01:00
Bartosz Taudul
a3ba188af5
Manual initialization of GpuEvents.
2017-11-15 22:21:02 +01:00
Bartosz Taudul
54c5cfce66
No funny links to licenses.
2017-11-15 22:18:45 +01:00
Bartosz Taudul
afa9eec5dd
Manual ZoneEvent vector initialization.
2017-11-15 22:13:23 +01:00
Bartosz Taudul
13d8d9255e
Use benaphore instead of mutex.
2017-11-15 21:49:41 +01:00
Bartosz Taudul
6cc2ea8d0e
Don't need recursive version.
2017-11-15 21:44:55 +01:00
Bartosz Taudul
100b814069
Wrap benaphore in tracy namespace, etc.
2017-11-15 21:42:55 +01:00
Bartosz Taudul
f85facf2af
Add Preshing's benaphore implementation.
...
https://github.com/preshing/cpp11-on-multicore.git
41ac9c73dfa32e2fbc0af6668358092fafdfcae4
2017-11-15 21:40:46 +01:00
Bartosz Taudul
3a60a28a71
Don't allocate unneeded memory.
2017-11-15 21:26:58 +01:00
Bartosz Taudul
1445341068
Don't try to draw GPU zones with no timing data.
2017-11-15 10:56:28 +01:00
Bartosz Taudul
334224dd36
Support transfer of zone name in source location payload.
2017-11-15 10:56:28 +01:00
Bartosz Taudul
7187e1e5f5
Some strings are always indices.
...
This saves 4 bytes.
2017-11-15 10:56:27 +01:00
Bartosz Taudul
7da59a55cc
Don't search for string in map, if it's known there's nothing there.
2017-11-15 10:56:27 +01:00
Bartosz Taudul
8b2af369ad
Store zone text in StringRef. Use name from source location.
2017-11-15 10:56:27 +01:00
Bartosz Taudul
c43eb29ce0
Don't send source location pointer in query reply.
...
Since reply order is the same as the query order, the server already
knows what source location it receives. This observation allows placing
zone name into the source location struct.
2017-11-14 23:06:45 +01:00
Bartosz Taudul
5c872b2137
Simplify GPU context handling.
2017-11-14 00:48:26 +01:00
Bartosz Taudul
d56f44a220
Remove zone block split on color change.
...
While this makes the collapsed block color variation nonexistent, it
also enables proper optimization of rendering.
2017-11-12 01:53:03 +01:00
Bartosz Taudul
3ef0d1333f
Sticky display of GPU related CPU time.
2017-11-12 01:32:21 +01:00
Bartosz Taudul
cff8f9ebd7
GPU zone highlight.
2017-11-12 01:28:07 +01:00
Bartosz Taudul
e40f029b19
GPU info window.
2017-11-12 01:25:44 +01:00
Bartosz Taudul
dcc2b3fb09
Save/load GPU events.
2017-11-12 01:12:28 +01:00
Bartosz Taudul
7db21f23b5
Fix GPU zones triangle color.
2017-11-12 01:05:55 +01:00
Bartosz Taudul
d61e03f879
Show when GPU commands were issued.
2017-11-11 23:13:54 +01:00
Bartosz Taudul
af81d999e9
Draw GPU zones.
2017-11-11 22:56:05 +01:00
Bartosz Taudul
84100bd459
Store proper source location.
2017-11-11 22:48:54 +01:00
Bartosz Taudul
7ebaa46f75
GPU time transfer.
2017-11-11 22:08:47 +01:00
Bartosz Taudul
a0729d3500
Implement single element erase() in TracyVector.
2017-11-11 22:07:23 +01:00
Bartosz Taudul
7e3ddfff1f
Store proper cpu time.
2017-11-11 22:07:08 +01:00
Bartosz Taudul
6fcdb924e8
CPU-side GPU event transfer.
2017-11-11 21:09:48 +01:00
Bartosz Taudul
b208df8829
Add pop_back() to TracyVector.
2017-11-11 20:51:03 +01:00
Bartosz Taudul
3c00ce0958
GPU context registration.
2017-11-11 19:44:09 +01:00
Bartosz Taudul
ce35009c63
Move structs out of TracyView.
2017-11-11 19:21:25 +01:00
Bartosz Taudul
8868cad7b1
Fix typo.
2017-11-11 19:01:31 +01:00
Bartosz Taudul
81735aea2f
Support for setting zone names in lua.
2017-11-11 17:56:41 +01:00
Bartosz Taudul
59ec40c045
Preemptive transfer of source location payload.
2017-11-11 15:59:30 +01:00
Bartosz Taudul
7f3b8f4647
Preemptive message text delivery.
2017-11-11 15:41:21 +01:00
Bartosz Taudul
76e11174dc
Preemptive sending of custom strings.
2017-11-11 15:22:55 +01:00
Bartosz Taudul
35391d08f1
TracyCountBits should be static inline.
2017-11-11 02:46:41 +01:00
Bartosz Taudul
88d4580631
Proper initialization order.
2017-11-11 02:44:51 +01:00
Bartosz Taudul
f1ac7e9d49
Remove unused variable.
2017-11-11 02:42:17 +01:00
Bartosz Taudul
ca4483ecf5
Prevent source location payload duplication.
2017-11-11 02:31:51 +01:00
Bartosz Taudul
24084cbcd2
Standard way of string reference storage in SourceLocation.
...
StringRef::isptr was changed to isidx, as initialization of empty
SourceLocation zeroes the struct.
2017-11-11 02:02:47 +01:00
Bartosz Taudul
947cd04e5e
General solution for string pointer/index problem.
2017-11-11 01:39:34 +01:00
Bartosz Taudul
96ce90c6ed
Common storage for plot names.
2017-11-10 19:41:37 +01:00
Bartosz Taudul
5ec3ccd595
Store m_strings in common string storage.
2017-11-10 19:30:17 +01:00
Bartosz Taudul
b28fdc94ce
Use common string storage for thread names.
2017-11-10 19:24:12 +01:00
Bartosz Taudul
1baf7faf8f
Construct temporary in-place string.
2017-11-10 19:15:00 +01:00
Bartosz Taudul
51459d724c
Don't use std::string to pass strings.
2017-11-10 18:39:43 +01:00
Bartosz Taudul
d9bdd56208
String pointer translation map is now named pointerMap.
2017-11-10 18:24:20 +01:00
Bartosz Taudul
8e78e38334
String map is not needed when reading timeline.
2017-11-10 18:22:41 +01:00
Bartosz Taudul
2887753b5d
Separate custom string processing from string storage.
2017-11-10 17:45:19 +01:00
Bartosz Taudul
f6af913fd3
Remove ability to disable LZ4 compression.
2017-11-10 17:34:11 +01:00
Bartosz Taudul
44ee282b6e
Store custom strings in an addressable vector.
2017-11-10 17:13:30 +01:00
Bartosz Taudul
0aef1b6d4d
Proper tooltip for one condensed lock block.
2017-11-07 22:14:54 +01:00
Bartosz Taudul
4821a58720
Fix frame line flicker on big zoom.
2017-11-07 22:11:27 +01:00
Bartosz Taudul
8727910289
Snap lines to pixel grid.
2017-11-07 22:02:27 +01:00
Bartosz Taudul
2ca28b779a
Display proper tooltip when only 1 zone is too small to display.
2017-11-07 21:51:21 +01:00
Bartosz Taudul
bb59eafda4
Remove zone block rounding.
2017-11-07 21:48:24 +01:00
Bartosz Taudul
d34a01eb96
Remove lock block rounding.
2017-11-07 21:46:17 +01:00
Bartosz Taudul
e869b6ead9
Proper drawing of lock inaccuracy indicators.
2017-11-07 01:51:30 +01:00
Bartosz Taudul
5d2f2beb53
Increase zoom speed.
2017-11-06 01:04:49 +01:00
Bartosz Taudul
58ef34ce42
Save/load source location payloads.
2017-11-05 21:36:22 +01:00
Bartosz Taudul
c6a7bcb086
Store source location payloads.
...
No saving yet. No detection of duplicate entries.
2017-11-05 21:24:50 +01:00
Bartosz Taudul
8178b61973
Wrap access to source location function and file.
2017-11-05 21:03:08 +01:00
Bartosz Taudul
3d2450fc10
Store source locations in a proper data structure.
2017-11-05 20:54:49 +01:00
Bartosz Taudul
bc77aa8d26
Source location payload transfer. No storage yet.
2017-11-05 16:46:00 +01:00
Bartosz Taudul
1323596ab2
Use switch instead of if ladder.
2017-11-05 16:14:51 +01:00
Bartosz Taudul
0fb5f012ce
Lua profiling framework. No source location transfer yet.
2017-11-05 15:06:28 +01:00
Bartosz Taudul
9524b6447e
Pack LockEvent data, saving one byte.
2017-10-29 16:49:22 +01:00
Bartosz Taudul
34123de977
Reduce custom vector size 16 -> 13 bytes.
2017-10-28 23:12:11 +02:00
Bartosz Taudul
1a117b330f
Prevent lock event overdraw.
...
If two lock events would overdraw (and they were), it was very easy for
a non-blocking zone to completely hide a blocking one.
2017-10-28 22:44:41 +02:00
Bartosz Taudul
0edbe38334
Improve locks visibility.
2017-10-28 22:34:52 +02:00
Bartosz Taudul
2988dda68f
Fix for missing unended zones.
2017-10-28 22:20:39 +02:00
Bartosz Taudul
39ac41bc19
Store source location on 32 bits, not 64.
2017-10-28 22:14:01 +02:00
Bartosz Taudul
fb6c91b552
Simplify switch.
2017-10-28 22:11:24 +02:00
Bartosz Taudul
db16aecf64
Try to display only frame time, if no space for full text.
2017-10-28 21:55:01 +02:00
Bartosz Taudul
2a6ccf8ee9
Fix some warnings.
2017-10-28 21:50:06 +02:00
Bartosz Taudul
5ebbf83eb3
Time variables should be signed.
2017-10-28 21:36:47 +02:00
Bartosz Taudul
adeb9b74f9
Make while condition explicit.
2017-10-28 21:35:38 +02:00
Bartosz Taudul
6aea2a0348
Enforce minimum size for zones and locks.
2017-10-28 16:14:52 +02:00
Bartosz Taudul
b6244d1180
Reorder checks.
2017-10-28 15:48:05 +02:00
Bartosz Taudul
f89713b7c6
Proper tooltip for condensed lock events.
2017-10-28 15:33:34 +02:00
Bartosz Taudul
32fc88de7b
Disable rounding on proper rectangle.
2017-10-28 15:30:20 +02:00
Bartosz Taudul
6832a4ae57
Better lock merging.
2017-10-28 15:29:25 +02:00
Bartosz Taudul
958e472751
Better lock combining.
2017-10-28 15:24:25 +02:00
Bartosz Taudul
3e0b1f0ad5
Lock drawing optimization.
2017-10-28 15:15:07 +02:00
Bartosz Taudul
fcc76412fe
Move common variables out of loop.
2017-10-28 14:25:35 +02:00
Bartosz Taudul
591da109a8
Outer loop check is no longer needed.
2017-10-28 14:15:18 +02:00
Bartosz Taudul
25e9ae4b68
Simplify code.
2017-10-28 14:14:26 +02:00
Bartosz Taudul
d1789f1e3a
Stay in fast loop until there's something to draw.
2017-10-28 14:08:10 +02:00
Bartosz Taudul
257f9818ed
Fast iteration until state != Nothing.
2017-10-28 13:56:35 +02:00
Bartosz Taudul
433a80c2df
Move lock state progression to a separate function.
2017-10-28 13:44:46 +02:00
Bartosz Taudul
09c9502061
Condense code.
2017-10-28 13:19:32 +02:00
Bartosz Taudul
a2a314678b
Helper function for determining if other threads are waiting.
2017-10-28 12:48:05 +02:00
Bartosz Taudul
71504c4e53
Document lock state colors.
2017-10-28 12:40:25 +02:00
Bartosz Taudul
e5865cb23e
Optimize drawing messages.
2017-10-28 12:37:34 +02:00
Bartosz Taudul
3163563a27
Fix crash on unended lock highlight.
2017-10-26 02:06:30 +02:00
Bartosz Taudul
db48cd6c1f
Display threads that have acquired a lock.
2017-10-26 00:42:16 +02:00
Bartosz Taudul
f3bac060a6
Same thing for contended locks.
2017-10-25 23:45:53 +02:00
Bartosz Taudul
016048a761
Properly detect and show recursive lock release.
2017-10-25 23:39:56 +02:00
Bartosz Taudul
f013dfe706
Properly label recursive lock wait sections.
2017-10-25 23:37:10 +02:00
Bartosz Taudul
01b2e64985
Properly show recursive lock wait sections.
2017-10-25 23:36:08 +02:00
Bartosz Taudul
e16f784617
Proper handling of recursive mutices.
2017-10-25 23:30:51 +02:00
Bartosz Taudul
742e4e2893
Use proper type.
2017-10-25 22:56:02 +02:00
Bartosz Taudul
011253ac47
Display lock and wait counts.
2017-10-25 22:35:12 +02:00
Bartosz Taudul
339c177ee8
Sort lock map.
...
It is displayed in UI, so order is important.
2017-10-24 22:30:43 +02:00
Bartosz Taudul
8f814b2537
Optimize drawing zone frames.
2017-10-22 17:48:01 +02:00
Bartosz Taudul
73d23320ee
Move string helper functions out of tracy::View.
2017-10-22 17:47:40 +02:00
Bartosz Taudul
262dfa53e9
Display lock number on lock list in options.
2017-10-22 17:30:02 +02:00
Bartosz Taudul
1967ce871a
Fix getting parent of not ended zone.
2017-10-22 17:09:33 +02:00
Bartosz Taudul
cc8683a399
Store TextData pointer as an index in array.
...
This further reduces ZoneEvent size by 4 bytes.
2017-10-22 16:40:15 +02:00
Bartosz Taudul
2e6350877d
Remove parent pointer from ZoneEvent.
2017-10-22 16:15:27 +02:00
Bartosz Taudul
b72d4b05de
Remove dead code.
2017-10-22 15:40:56 +02:00
Bartosz Taudul
7345ca5aa6
Rename Event to ZoneEvent.
2017-10-22 15:37:24 +02:00
Bartosz Taudul
97b3cccb1a
64MB slab size.
2017-10-22 15:36:22 +02:00
Bartosz Taudul
eff6015aad
Fix combo list.
2017-10-22 15:27:07 +02:00
Bartosz Taudul
5b20f0008f
Optional namespace shortening.
2017-10-22 13:56:05 +02:00
Bartosz Taudul
caec31731f
Add ability to hide uncontended locks.
2017-10-22 13:32:27 +02:00
Bartosz Taudul
92a38a43d5
Add ability to hide individual locks.
2017-10-22 13:26:11 +02:00
Bartosz Taudul
ba5312f429
Ability to completely hide plots.
2017-10-22 13:17:34 +02:00
Bartosz Taudul
133db4c68e
Ability to completely hide threads.
2017-10-22 13:13:26 +02:00
Bartosz Taudul
bd8d423d16
Use small temporary buffer instead of growing one.
2017-10-21 14:27:38 +02:00
Bartosz Taudul
31dec96d0c
Don't calculate min-max range of a large point quantity.
2017-10-21 14:27:38 +02:00
Bartosz Taudul
5f7dad1889
Don't do unnecessary hover checks.
2017-10-21 14:27:38 +02:00
Bartosz Taudul
c28b3a420f
Delay insertion of postponed plot items.
...
This further reduces number of memmoves that need to be performed on a
vector, which results in net increased throughput.
2017-10-21 13:32:51 +02:00
Bartosz Taudul
75e3dd175a
One function for adding threads.
2017-10-21 13:14:20 +02:00
Bartosz Taudul
fa985940f7
Check thread name when adding messages.
2017-10-21 13:05:37 +02:00
Bartosz Taudul
807d3c42be
Use slab allocator for server allocations.
2017-10-21 13:01:57 +02:00
Bartosz Taudul
07cb693cbb
Separate slab init/noinit allocation functions.
2017-10-21 12:54:12 +02:00
Bartosz Taudul
ad338a7cfd
Fix message literals.
2017-10-21 12:39:26 +02:00
Bartosz Taudul
b7800be627
Perform bulk insertion of plot points.
2017-10-19 23:26:21 +02:00
Bartosz Taudul
cc1715ae98
Implement Vector::insert( it, begin, end ).
2017-10-19 23:26:02 +02:00
Bartosz Taudul
82476a310c
Implement Vector::clear().
2017-10-19 23:25:49 +02:00
Bartosz Taudul
cf94b1d2e8
Add missing locks.
2017-10-19 23:10:47 +02:00
Bartosz Taudul
476597f5ed
Adaptive display compression range.
2017-10-19 21:05:59 +02:00
Bartosz Taudul
44cc0827d4
Store pointers to PlotItems.
2017-10-19 21:04:11 +02:00
Bartosz Taudul
7329eb6e99
Display plot points count with separators.
2017-10-19 20:34:48 +02:00
Bartosz Taudul
026a27aa05
Implement front() in custom vector.
2017-10-19 20:34:07 +02:00
Bartosz Taudul
6e4343c043
Use custom vector to store plot items.
2017-10-19 20:14:31 +02:00
Bartosz Taudul
0519df4dfc
Reduce accuracy to decrease memory load.
2017-10-19 19:56:13 +02:00
Bartosz Taudul
5278bb29e6
Don't sort all values in a compressed range.
2017-10-19 19:43:27 +02:00
Bartosz Taudul
fd22fed773
Manually manage temporary plot buffer.
2017-10-19 19:09:40 +02:00
Bartosz Taudul
6e5ccf8391
Store values, not pointers to PlotItems.
2017-10-19 18:28:11 +02:00
Bartosz Taudul
8958780b18
Time must be signed.
2017-10-18 23:36:50 +02:00
Bartosz Taudul
c5eef172f1
Adapt "recording" circle size to font size.
2017-10-18 23:25:35 +02:00
Bartosz Taudul
4f3a64be9d
Optimize drawing plots.
2017-10-18 22:29:59 +02:00
Bartosz Taudul
58ef271356
Add separator to zone count.
2017-10-18 20:35:01 +02:00
Bartosz Taudul
ac71622c0c
Add separators to printed values.
2017-10-18 20:33:49 +02:00
Bartosz Taudul
cdde2ea2a3
Cut off trailing zeros when printing floating point values.
2017-10-18 20:18:33 +02:00
Bartosz Taudul
7c47edc64f
Terminate connection handshake.
2017-10-18 18:48:51 +02:00
Bartosz Taudul
6d48404934
4KB is too small for some messages. Use 64KB buffer.
...
OpenGL extensions list bites in the ass again.
2017-10-17 01:21:00 +02:00
Bartosz Taudul
c0e5dd0369
Visual differentiation of tracy init from other frames.
2017-10-17 01:17:55 +02:00
Bartosz Taudul
1e3476cf36
Transfer profiler initialization time.
2017-10-17 01:10:38 +02:00
Bartosz Taudul
acc1d9d834
Measurement of time period by LMB dragging.
2017-10-15 16:42:56 +02:00
Bartosz Taudul
84abfadc72
Horizontal zone view dragging with RMB.
2017-10-15 16:20:45 +02:00
Bartosz Taudul
5b9fcddfb3
String literal message transfer.
2017-10-15 13:06:49 +02:00
Bartosz Taudul
eb95d65622
Fix types in std::max.
2017-10-14 18:48:44 +02:00
Bartosz Taudul
ad95813ba0
Message highlighting.
2017-10-14 15:47:06 +02:00
Bartosz Taudul
bf8f369e33
Increase plot point active hover area.
2017-10-14 15:29:04 +02:00
Bartosz Taudul
503ef8bcbc
Save message data.
2017-10-14 15:26:02 +02:00
Bartosz Taudul
bd7f8111a6
Lock id size changed in data dump.
2017-10-14 15:21:15 +02:00
Bartosz Taudul
30fd899a90
Display messages in threads.
2017-10-14 15:03:28 +02:00
Bartosz Taudul
317b23c7c3
Assign messages to threads.
2017-10-14 14:46:03 +02:00
Bartosz Taudul
3ba349565a
Message list window.
2017-10-14 14:36:30 +02:00
Bartosz Taudul
fa8030009f
Store messages.
2017-10-14 14:28:04 +02:00
Bartosz Taudul
1aaab3c5e4
Use 32 bits to store lock id.
...
This makes queue item size 32 bytes. Queue operations can now be faster,
because multiplication by 33 is replaced by shift by 5.
2017-10-13 20:05:38 +02:00
Bartosz Taudul
ec789d60e8
Store source location color in 24 bits.
2017-10-13 19:59:18 +02:00
Bartosz Taudul
ed55fbfacb
Save/load plot data.
2017-10-13 16:04:20 +02:00
Bartosz Taudul
348661c9df
Display number of plot points per second.
2017-10-13 15:55:09 +02:00
Bartosz Taudul
e3abc8b52a
Fix min, max value setting.
2017-10-13 15:46:00 +02:00
Bartosz Taudul
4066b9ae30
Add plot information tooltip.
2017-10-13 15:44:24 +02:00