Commit Graph

4228 Commits

Author SHA1 Message Date
Bartosz Taudul
bcf2bf1c5c Shared lock events (still using old functionality). 2017-12-10 22:04:49 +01:00
Bartosz Taudul
782231b048 Shared lockable skeleton. 2017-12-10 21:49:45 +01:00
Bartosz Taudul
bc27bbde37 Display mutex type. 2017-12-10 21:49:23 +01:00
Bartosz Taudul
3567d7edd8 Reintroduce lock announce events. 2017-12-10 21:40:48 +01:00
Bartosz Taudul
ea604d484d Don't show mutex as blocked, if there are no locks held. 2017-12-10 21:40:48 +01:00
Bartosz Taudul
0f2d41413f Include plots, msgs, gpu zones, locks in last time calculation. 2017-12-09 20:10:32 +01:00
Bartosz Taudul
6942f84a99 Last time is now cached, not calculated. 2017-12-09 20:05:34 +01:00
Bartosz Taudul
86006e8416 Simplify GetNextLockEvent(). 2017-12-09 19:28:12 +01:00
Bartosz Taudul
b67989ab54 No need for nextState variable. 2017-12-09 19:24:35 +01:00
Bartosz Taudul
981bbfe42d Reorder LockEvent fields. 2017-12-09 19:13:59 +01:00
Bartosz Taudul
cf5ee65604 Vectorize loop. 2017-12-09 00:15:10 +01:00
Bartosz Taudul
d0dfa62f43 Force inline internal pdqsort functions. 2017-12-08 23:25:48 +01:00
Bartosz Taudul
86c5dcced9 __cplusplus check won't work on MSVC. 2017-12-08 23:14:55 +01:00
Bartosz Taudul
0da09bc62b Use pdqsort. 2017-12-08 23:14:55 +01:00
Bartosz Taudul
2c4eaf162d Add pdqsort.
https://github.com/orlp/pdqsort.git
979c0a05f3e78977dc1f5218d13234d7ee89d1e7
2017-12-08 23:02:48 +01:00
Bartosz Taudul
48678b3bd7 Drop bitfield usage. 2017-12-05 22:34:48 +01:00
Bartosz Taudul
5407676f1f Microoptimize thread bit operations. 2017-12-05 22:22:07 +01:00
Bartosz Taudul
52df06d478 Calculate and use thread bit. 2017-12-05 22:09:53 +01:00
Bartosz Taudul
b578554223 Reserve lockmap timeline. 2017-12-05 21:55:00 +01:00
Bartosz Taudul
081087b9ce Drop an indirection level in plots. 2017-12-05 21:24:09 +01:00
Bartosz Taudul
702f235c1b Reserve-and-use functionality in Vector. 2017-12-05 21:23:51 +01:00
Bartosz Taudul
c58f1b09d1 Allow RW access to Vector's data. 2017-12-05 21:23:39 +01:00
Bartosz Taudul
a33e70567b Add GUI for GPU context hiding. 2017-11-30 15:34:52 +01:00
Bartosz Taudul
5246098c79 GPU context hiding plumbing. 2017-11-30 15:31:31 +01:00
Bartosz Taudul
dd8694350e Add zoom-to-range animation. 2017-11-27 22:41:30 +01:00
Bartosz Taudul
ba80b0c16a Use one common function for zooming to range. 2017-11-27 22:12:26 +01:00
Bartosz Taudul
eeca0676df Even simpler lock state combining. 2017-11-26 21:37:57 +01:00
Bartosz Taudul
50795cdf43 Declare buffer at function start. 2017-11-26 17:27:51 +01:00
Bartosz Taudul
b82434d7c3 No need for lambda in sort. 2017-11-26 17:13:24 +01:00
Bartosz Taudul
91758423cd Optimize lock state combining.
There are four possible lock states:
1. Nothing
2. HasLock
3. HasBlockingLock
4. WaitLock

The previous switch was implementing the following state transition:

s\n| 1 | 2 | 3 | 4
---+---+---+---+---
 1 | 1 | 2 | 3 | 4
---+---+---+---+---
 2 | 2 | 2 | 3 | 4
---+---+---+---+---
 3 | 3 | 3 | 3 | 4
---+---+---+---+---
 4 | 4 | 4 | 4 | 4

As can be seen, the switch effectively searches for the highest state
possible. This change implements it as such.
2017-11-26 16:42:50 +01:00
Bartosz Taudul
c044884dd9 Fix signed/unsigned mismatch. 2017-11-26 02:36:38 +01:00
Bartosz Taudul
6bbed5db82 Increase plot min/max value legibility. 2017-11-26 02:32:00 +01:00
Bartosz Taudul
4b548156b1 Proper display of negative time. 2017-11-26 02:24:13 +01:00
Bartosz Taudul
b2b3e7d739 Draw timescale. 2017-11-26 02:18:17 +01:00
Bartosz Taudul
e495cb959e Fix StringRef initialization. 2017-11-26 01:43:08 +01:00
Bartosz Taudul
d40488ccf1 Add more numeric separators. 2017-11-25 15:48:41 +01:00
Bartosz Taudul
cd26a6f8ff Improve text legibility by drawing text shadow. 2017-11-25 15:45:16 +01:00
Bartosz Taudul
2f9a3f7046 Colors are always in RGB order. 2017-11-25 15:33:10 +01:00
Bartosz Taudul
4d99560f7c Add some more numeric separators. 2017-11-25 13:50:41 +01:00
Bartosz Taudul
2e88f30e15 Display number of lock events in tooltip. 2017-11-25 13:48:03 +01:00
Bartosz Taudul
a515bf8878 Perform GPU to CPU resynchronization on each collect event. 2017-11-25 13:33:57 +01:00
Bartosz Taudul
0100266234 Use consistent names. 2017-11-25 13:14:16 +01:00
Bartosz Taudul
f2a19c4593 Use flat_hash_map for source location payload map. 2017-11-24 01:10:12 +01:00
Bartosz Taudul
7a13892754 Split srcloc check and creation. 2017-11-24 01:05:42 +01:00
Bartosz Taudul
184039d500 One check in CheckSourceLocation. 2017-11-24 00:53:04 +01:00
Bartosz Taudul
ccb39ad4bd Just one early exit check in CheckString/CheckThreadString. 2017-11-24 00:45:55 +01:00
Bartosz Taudul
79dec4eafe Display compression ratio and uncompressed data throughput. 2017-11-23 01:23:40 +01:00
Bartosz Taudul
7f74d35955 Workaround MSVC inlining bugs.
The previous code was not inlineable.
2017-11-22 01:54:50 +01:00
Bartosz Taudul
5d7fd5805a Don't hash pointers and such. 2017-11-22 00:23:43 +01:00
Bartosz Taudul
48624f29f7 Optimize searches. 2017-11-21 02:28:46 +01:00
Bartosz Taudul
a7e85c5b76 No need to populate string map when loading dump. 2017-11-21 02:16:58 +01:00
Bartosz Taudul
d5ea8a86a4 Remove GPU context indirection. 2017-11-21 02:10:41 +01:00
Bartosz Taudul
63c070228c Remove indirection in plot storage. 2017-11-21 02:06:17 +01:00
Bartosz Taudul
dca6cf0aa5 Use push_back_non_empty where appropriate. 2017-11-20 02:14:18 +01:00
Bartosz Taudul
7bf6bbbb94 Use back_and_pop in GPU zone processing. 2017-11-20 02:04:45 +01:00
Bartosz Taudul
43ed934204 Force inline file read and write functions. 2017-11-19 22:02:04 +01:00
Bartosz Taudul
59c7cf2bcd Force inline functions that have single path of execution. 2017-11-19 20:01:39 +01:00
Bartosz Taudul
47c23c9066 Force inline NewZone. 2017-11-19 19:39:25 +01:00
Bartosz Taudul
19db1a3f1f Optimize UpdateLockCount. 2017-11-19 19:35:16 +01:00
Bartosz Taudul
c1a79c0622 Force inline checker functions. 2017-11-19 19:23:07 +01:00
Bartosz Taudul
94bd563753 Back-and-pop operation on Vector. 2017-11-19 19:17:54 +01:00
Bartosz Taudul
a4e909a740 Fix braino. 2017-11-19 19:13:43 +01:00
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
Bartosz Taudul
40d7a26b37 Allow hiding plots. 2017-10-13 15:41:20 +02:00
Bartosz Taudul
4ed905ca88 Plot can't be empty. 2017-10-13 15:36:16 +02:00
Bartosz Taudul
591fbdf75a Store min, max values in plot. 2017-10-13 15:32:59 +02:00
Bartosz Taudul
5deb1c51dd Can't modify both variables. 2017-10-13 15:31:38 +02:00
Bartosz Taudul
d1c43ef917 Draw vertical line on mouse position in zone view. 2017-10-13 15:26:18 +02:00
Bartosz Taudul
b217e6ab30 Add lousy plot values tooltip. 2017-10-13 15:15:57 +02:00
Bartosz Taudul
f32114cb35 Draw plot points in a separate function. 2017-10-13 15:09:01 +02:00
Bartosz Taudul
d05827135d Draw plots. 2017-10-13 14:54:32 +02:00
Bartosz Taudul
ee60fc6885 Allow disabling zone/lock drawing. 2017-10-13 13:32:23 +02:00
Bartosz Taudul
fe0366c792 Receive plot data. 2017-10-13 03:36:59 +02:00
Bartosz Taudul
d9feeb3486 Disable scroll bar on profiler window. 2017-10-12 23:44:35 +02:00
Bartosz Taudul
97360c0c4c Always save dumps with .tracy extension. 2017-10-12 22:38:11 +02:00
Bartosz Taudul
1b4a9379cc Vertical scrolling of zone area. 2017-10-12 22:27:17 +02:00
Bartosz Taudul
737671adbf Remove lock announce message.
This removes problem with static initialization order of mutices vs
tracy.

Lock source location is now transferred in lock wait message.
2017-10-12 20:14:17 +02:00
Bartosz Taudul
8634c48c9f Check for thread existence when adding a lock. 2017-10-12 19:52:18 +02:00
Bartosz Taudul
3df0abd164 Only check thread string when adding a new thread. 2017-10-12 19:52:06 +02:00
Bartosz Taudul
6fc0bc881c Allow hiding threads. 2017-10-12 19:47:56 +02:00
Bartosz Taudul
c1090a3116 Fix zone depth calculation. 2017-10-12 19:14:03 +02:00
Bartosz Taudul
cc8b357f09 Avoid excessive stack operations for cpu query. 2017-10-10 23:21:30 +02:00
Bartosz Taudul
75457c1465 Remove +x flag from files. 2017-10-10 21:56:15 +02:00
Bartosz Taudul
a6c5993401 Fix locks with more than two threads. 2017-10-08 23:03:38 +02:00
Bartosz Taudul
45cb4b144f Add bit counter. 2017-10-08 21:02:09 +02:00
Bartosz Taudul
fbe7e59319 Allow zooming to zones without end. 2017-10-08 11:38:03 +02:00
Bartosz Taudul
42595014a1 Fix issue with missing lock display.
This was caused by a logic error concerning a lock state when thread t1
was waiting for a lock, thread t2 released the lock and thread t1 didn't
yet acquire a lock. High zoom level was needed.

(Threads are performing Wait, Obtain, Release operations on locks.)

t1     W      |O R
t2 WO        R|
--------------+----> t
              ↑
           Problem

In the region marked by the problem line the lock count was 0, which
didn't trigger the appropriate code branch.
2017-10-06 18:58:54 +02:00
Bartosz Taudul
34030bf3d4 Prevent crash when no locks to display. 2017-10-06 18:52:52 +02:00
Bartosz Taudul
02edbf54ff Return signed value from GetLastTime(). 2017-10-06 18:32:25 +02:00
Bartosz Taudul
9bc80941c7 Draw timer uncertainties on locks. 2017-10-06 18:25:30 +02:00
Bartosz Taudul
6488ba6e0f Display lock event location (if available). 2017-10-06 18:12:13 +02:00
Bartosz Taudul
71e16d069e Store lock mark locations. 2017-10-06 18:04:17 +02:00
Bartosz Taudul
cbf5ddece1 Don't wait for lock to be announced before processing events. 2017-10-06 17:09:15 +02:00
Bartosz Taudul
695b0426bf Lock mark processing skeleton. 2017-10-06 17:05:31 +02:00
Bartosz Taudul
21c1533d8b Highlight threads contending for a lock. 2017-10-06 02:19:25 +02:00
Bartosz Taudul
21bebc1695 Display lock subzone time. 2017-10-05 23:57:27 +02:00
Bartosz Taudul
b965a1c936 Show which threads are blocking/blocked. 2017-10-05 23:47:51 +02:00
Bartosz Taudul
182f6533f3 Fix detection of blocking lock before viewport start. 2017-10-05 23:40:08 +02:00
Bartosz Taudul
e572c655c1 Add tooltips for locks. 2017-10-05 23:35:21 +02:00
Bartosz Taudul
efb7f0a31c Show blocking locks.
A blocking lock is when a thread has lock, but other thread is waiting
for that lock.
2017-10-05 23:25:25 +02:00
Bartosz Taudul
9689d8014f Proper lock visualization. 2017-10-05 23:18:24 +02:00
Bartosz Taudul
78067eb35e Calculate lock wait counts. 2017-10-05 14:02:08 +02:00
Bartosz Taudul
2582f04977 Remove code leftovers. 2017-10-05 12:52:57 +02:00
Bartosz Taudul
4accd9ae8f There can be many locks with the same name, print id. 2017-10-05 02:46:35 +02:00
Bartosz Taudul
956bcb9b17 Save lock source location. 2017-10-04 21:38:25 +02:00
Bartosz Taudul
d93c4bc271 Very crude drawing of lock events. 2017-10-04 21:27:06 +02:00
Bartosz Taudul
486f0999a7 Save/load lock events. 2017-10-04 20:10:54 +02:00
Bartosz Taudul
87ae5eccde No need for id in LockMap. 2017-10-04 20:10:54 +02:00
Bartosz Taudul
a99fc01707 Store which threads access any given lock. 2017-10-04 19:57:06 +02:00
Bartosz Taudul
4c8e9f7d5d Track number of held locks. 2017-10-04 19:42:44 +02:00
Bartosz Taudul
39bb9a3ad1 Insert lock events into timeline. 2017-10-04 19:24:24 +02:00
Bartosz Taudul
9904ebb4b6 Lock time correction. 2017-10-04 19:24:06 +02:00
Bartosz Taudul
54735bacea Lock events dispatch. 2017-10-04 18:51:50 +02:00
Bartosz Taudul
110e5971d1 Store pending lock events, if lock was not yet announced. 2017-10-04 18:32:53 +02:00
Bartosz Taudul
c2bccf7126 Move towards proper data structures. 2017-10-04 18:32:53 +02:00
Bartosz Taudul
4fad4be816 Pack event structures. 2017-10-04 18:12:11 +02:00
Bartosz Taudul
8c90eab044 Let's not worry about lock memory reuse. 2017-10-04 16:51:51 +02:00
Bartosz Taudul
0011573fa9 Send lock events. 2017-10-04 16:45:46 +02:00
Bartosz Taudul
78f8425dc7 Announce lock creation. 2017-10-04 16:16:40 +02:00
Bartosz Taudul
ff21b74e7a Add missing locks. 2017-10-04 16:07:20 +02:00
Bartosz Taudul
2f14704143 Save and load capture name. 2017-10-03 23:29:48 +02:00
Bartosz Taudul
b2252de9c8 Send and display program execution date. 2017-10-03 23:26:41 +02:00
Bartosz Taudul
7526ac83b5 Display program name in profiler window title. 2017-10-03 23:18:07 +02:00
Bartosz Taudul
d1edd30ca6 Zone ids are unnecessary. 2017-10-03 16:41:32 +02:00
Bartosz Taudul
3fcf39ec58 More dead code removal. 2017-10-03 16:26:58 +02:00
Bartosz Taudul
e61e2718cb Remove dead timeline reconstruction code.
Queue items from a single producer are always FIFO. There's no need to
account for an impossible use case.
2017-10-03 15:53:49 +02:00
Bartosz Taudul
f74a313d12 Fix thread spacing. 2017-10-01 20:37:35 +02:00
Bartosz Taudul
621b6a8c49 Don't clip text vertically. 2017-10-01 20:16:02 +02:00
Bartosz Taudul
65e89e6e80 Fix collapsed zones height. 2017-10-01 20:00:53 +02:00
Bartosz Taudul
4227d34599 Indicate zones with thread migration across CPU cores. 2017-10-01 19:58:53 +02:00
Bartosz Taudul
dc72010bd5 Increase separation of zones. 2017-10-01 19:47:22 +02:00
Bartosz Taudul
35562ed6e2 Make zone highlight color a derivative of zone color. 2017-10-01 19:38:45 +02:00
Bartosz Taudul
79073383b4 No transparency in zone colors. 2017-10-01 19:32:20 +02:00
Bartosz Taudul
7365461ef4 Add function to get zone color. 2017-10-01 19:31:22 +02:00
Bartosz Taudul
3dc4fc4796 Display CPU id in zone tooltips. 2017-10-01 19:21:25 +02:00
Bartosz Taudul
91fd171b60 Store CPU id in zones. 2017-10-01 19:17:29 +02:00
Bartosz Taudul
777e499f76 Missing includes. 2017-10-01 02:23:30 +02:00
Bartosz Taudul
7e0eac78e1 Fast read path. 2017-10-01 01:59:07 +02:00
Bartosz Taudul
8f862b3271 Reserve memory for loaded data. 2017-10-01 01:54:40 +02:00
Bartosz Taudul
a96f58c3de Implement resize() in tracy::Vector. 2017-10-01 01:51:29 +02:00
Bartosz Taudul
a8b41faaf4 Compress saved traces using LZ4. 2017-09-30 19:25:24 +02:00
Bartosz Taudul
616f501a97 Set nullptrs where necessary. 2017-09-30 19:21:51 +02:00
Bartosz Taudul
ddf2453cca Buffer reads. 2017-09-30 18:43:57 +02:00
Bartosz Taudul
1c29367a54 Buffer writes. 2017-09-30 18:43:56 +02:00
Bartosz Taudul
fc8cd12088 Do not copy string map (DOH!). 2017-09-30 17:09:00 +02:00
Bartosz Taudul
f387a16e61 Count read zones. 2017-09-30 16:59:03 +02:00
Bartosz Taudul
06949e2f99 Reading saved trace. 2017-09-30 16:58:02 +02:00
Bartosz Taudul
f9ee2b853c Writing traces. 2017-09-30 16:20:08 +02:00
Bartosz Taudul
2021b7460a Add file wrappers. 2017-09-30 16:19:50 +02:00
Bartosz Taudul
e2cd3106ae Add direct data accessor to tracy::Vector. 2017-09-30 16:18:06 +02:00
Bartosz Taudul
e4c5e5c097 Save trace file selector. 2017-09-30 14:56:23 +02:00
Bartosz Taudul
0de755124d Small cleanup. 2017-09-30 14:56:23 +02:00
Bartosz Taudul
d7bd8885fe Make zone highlight more visible. 2017-09-30 13:45:02 +02:00
Bartosz Taudul
077585ba4d Allow switching to zone parent. 2017-09-30 13:41:03 +02:00
Bartosz Taudul
e6a32c1af5 Add zoom-to-frame. 2017-09-29 23:08:10 +02:00
Bartosz Taudul
dd0c283a3b More condensed child zone time graph. 2017-09-29 22:59:11 +02:00
Bartosz Taudul
9864ef70c9 Show child zone info popups. 2017-09-29 22:57:22 +02:00
Bartosz Taudul
852e163b72 Use correct variable. 2017-09-29 22:56:12 +02:00
Bartosz Taudul
3ac65a7524 Separate tooltip showing function. 2017-09-29 22:55:24 +02:00
Bartosz Taudul
5dc5500065 Display child zone times graphically. 2017-09-29 22:50:25 +02:00
Bartosz Taudul
366da56d99 Add interaction with displayed child nodes. 2017-09-29 22:40:49 +02:00
Bartosz Taudul
2c0d4d2817 Display child zone times. 2017-09-29 22:40:45 +02:00
Bartosz Taudul
1cd86cb30f Display exclusive zone time. 2017-09-29 22:13:22 +02:00
Bartosz Taudul
d4d28e841a Display basic timing info. 2017-09-29 22:06:31 +02:00
Bartosz Taudul
fb80ac9488 Allow zooming to zone from zone info window. 2017-09-29 22:01:30 +02:00
Bartosz Taudul
b386e51edc Highlight selected zone. 2017-09-29 21:57:00 +02:00
Bartosz Taudul
c5f6ca9656 Add basic zone info window. 2017-09-29 21:49:14 +02:00
Bartosz Taudul
a8c219dd88 Display number of collapsed zones. 2017-09-29 19:13:53 +02:00
Bartosz Taudul
23c71116e3 Draw timer resolution uncertainty. 2017-09-29 18:55:21 +02:00
Bartosz Taudul
7a992517e1 Print queue delay and timer resolution. 2017-09-29 18:46:08 +02:00
Bartosz Taudul
3f9143d491 Double the TimeToString buffer pool. 2017-09-29 18:44:42 +02:00
Bartosz Taudul
28912ca2e6 Display delay caused by zone name and zone text events. 2017-09-29 18:40:55 +02:00
Bartosz Taudul
efda50acb1 Send timer resolution to server. 2017-09-29 18:32:07 +02:00
Bartosz Taudul
b9aa10913a Rename internal enum to avoid #define conflicts. 2017-09-28 21:20:33 +02:00
Bartosz Taudul
599a9be37c Try to conserve as much memory as possible. 2017-09-28 21:08:36 +02:00
Bartosz Taudul
8ecb5de062 Store pointers to ThreadData.
This prevents moves of Vector<>.
2017-09-28 21:05:51 +02:00
Bartosz Taudul
556e085f2c memcpy source can't be null. 2017-09-28 20:47:57 +02:00
Bartosz Taudul
608cb912a1 Enable custom vector. 2017-09-28 20:20:10 +02:00
Bartosz Taudul
2161c23eee Display custom zone names. 2017-09-28 19:31:27 +02:00
Bartosz Taudul
8c1c395cec Allow sending custom zone names. 2017-09-28 19:28:24 +02:00
Bartosz Taudul
91e6210e34 Store zone text data in a separate structure. 2017-09-28 19:06:39 +02:00
Bartosz Taudul
7f865f3517 Use common function to send server query. 2017-09-27 02:44:16 +02:00
Bartosz Taudul
e683a59360 Use color to display custom zone text. 2017-09-27 02:40:24 +02:00
Bartosz Taudul
c2926f2a0d Store custom strings as const char*, not std::string.
It would seem that std::string is not moved, but copied, thus
invalidating the pointer.
2017-09-27 02:36:14 +02:00
Bartosz Taudul
537542f682 Add character utilities. 2017-09-27 02:35:59 +02:00
Bartosz Taudul
d65d957272 Display zone text. 2017-09-27 02:21:51 +02:00
Bartosz Taudul
d1bbb731fc Zone text (custom string) transfer. 2017-09-27 02:18:17 +02:00
Bartosz Taudul
ffa5930a23 Don't draw frame separator lines, if too close together. 2017-09-26 22:17:10 +02:00
Bartosz Taudul
1fa778891c Allow zooming to collapsed zones. 2017-09-26 22:08:58 +02:00
Bartosz Taudul
6cf1ebec04 Pause zone view after zooming to zone. 2017-09-26 22:08:31 +02:00
Bartosz Taudul
8ad7ba1dd0 Middle click to zoom to zone. 2017-09-26 21:49:50 +02:00
Bartosz Taudul
e90a86e06e Store zone color in source location struct. 2017-09-26 18:54:48 +02:00
Bartosz Taudul
7424077d70 Store source location in a single object.
Source file, function name and line number are now stored in a const
static container object. This has the following benefits:
- Slightly lighter profiling workload (3 instructions less).
- Profiling queue event size is significantly reduced, by 12 bytes. This
  has an effect on all queue event types.
- Source location grouping has now no cost, as it's performed at the
  compilation stage. This allows simplification of server code.
The downside is that the full source location resolution is now
performed in two steps, as the server has to query both source location
container and strings contained within. This has almost no real impact
on profiler operation.
2017-09-26 02:39:08 +02:00
Bartosz Taudul
9cb12a05b3 Silence warning. 2017-09-26 02:38:07 +02:00
Bartosz Taudul
11a790a18f Offload TSC -> time conversion to server. 2017-09-26 00:13:24 +02:00
Bartosz Taudul
27e1952cc5 Display total zone count. 2017-09-25 23:38:49 +02:00
Bartosz Taudul
d797099076 Don't merge zones of different color. 2017-09-25 23:17:33 +02:00
Bartosz Taudul
fb970170e0 Increase zone zoom in/out speed. 2017-09-25 23:15:00 +02:00
Bartosz Taudul
84052c622f Implement tracy::Vector::erase(). 2017-09-25 23:11:56 +02:00
Bartosz Taudul
f39c2d5e70 Fix tracy::Vector::insert(). 2017-09-25 23:01:22 +02:00
Bartosz Taudul
b33b9fd4ed Do not draw test window. 2017-09-25 22:54:54 +02:00
Bartosz Taudul
519cb8dff3 Allow adding custom colors to zones. 2017-09-25 22:46:14 +02:00
Bartosz Taudul
93fc85a639 Try to always display zone text. 2017-09-25 22:05:13 +02:00
Bartosz Taudul
0d24a2739d Missed one valid case. 2017-09-25 01:52:42 +02:00
Bartosz Taudul
71b6e81500 Don't reverse item order. 2017-09-25 01:37:03 +02:00
Bartosz Taudul
3aeea69eba No dragons here. 2017-09-25 01:31:54 +02:00
Bartosz Taudul
192493a2c3 Store proper children in edge-case code. 2017-09-25 01:20:22 +02:00
Bartosz Taudul
d427e937d3 Zone can begin right after another one.
This happens when the timer has not enough precision.
2017-09-24 23:52:08 +02:00
Bartosz Taudul
61b7496cef Display number of collapsed small zones. 2017-09-24 16:56:57 +02:00
Bartosz Taudul
a835e0f121 Display execution time minus profiling delay. 2017-09-24 16:45:22 +02:00
Bartosz Taudul
29d5b8d4e9 Support formatting of negative time. 2017-09-24 16:45:08 +02:00
Bartosz Taudul
36ffaec1df Display profiling delay on zone chart. 2017-09-24 16:40:16 +02:00
Bartosz Taudul
86b1e4fd64 Group small zones together. 2017-09-24 16:25:07 +02:00
Bartosz Taudul
7683da5f74 Send initial configuration as a single message. 2017-09-24 16:10:28 +02:00
Bartosz Taudul
9a46cbeb84 Clamp rect coordinates to prevent bad rendering. 2017-09-24 03:44:52 +02:00
Bartosz Taudul
d98e08b37a Implement zone update code. 2017-09-24 03:39:30 +02:00
Bartosz Taudul
6419cd5062 Parent vector retrieval. 2017-09-24 03:39:29 +02:00
Bartosz Taudul
1005fa0c91 Implement rest of zone insertion code. 2017-09-24 03:29:48 +02:00
Bartosz Taudul
060cd90c81 Draw nested zones. 2017-09-24 00:12:26 +02:00
Bartosz Taudul
c9a982360f Move drawing of a single zone line to a separate function. 2017-09-24 00:07:06 +02:00
Bartosz Taudul
73df330dd5 Recursive, incomplete zone insertion into timeline. 2017-09-23 23:59:56 +02:00
Bartosz Taudul
a68b0921b1 Add parent pointer to Event. 2017-09-23 15:41:26 +02:00
Bartosz Taudul
cdab2297ef Non-recursive version of GetZoneEnd. 2017-09-23 15:41:10 +02:00
Bartosz Taudul
3d6e85db4a Take children into account when determining zone end. 2017-09-23 15:39:39 +02:00
Bartosz Taudul
3f765002c1 Proper drawing of zones without valid end time. 2017-09-23 14:51:30 +02:00
Bartosz Taudul
84cb8ab9cc Properly track events if there are no frame marks. 2017-09-23 14:45:38 +02:00
Bartosz Taudul
7ffa987857 Fix last time retrieval. 2017-09-23 14:43:05 +02:00
Bartosz Taudul
a41db80ff2 Separate thread names from zones in zone view. 2017-09-23 01:29:27 +02:00
Bartosz Taudul
1116ef33c5 No emplace_back in custom vector. 2017-09-23 01:11:06 +02:00
Bartosz Taudul
b62dc57a92 Disallow vector copying, allow moves. 2017-09-23 01:10:48 +02:00
Bartosz Taudul
34aecee1f9 Zone span selection in frame view. 2017-09-23 00:46:15 +02:00
Bartosz Taudul
c0fe0e3e79 Proper initialization order. 2017-09-22 22:25:18 +02:00
Bartosz Taudul
5ba0fa8617 Text string is not a format string. 2017-09-22 22:23:06 +02:00
Bartosz Taudul
081e9eed7d Explicitly specify type. 2017-09-22 22:16:18 +02:00
Bartosz Taudul
7d5ed99f0f Use proper type in printf. 2017-09-22 22:16:18 +02:00
Bartosz Taudul
4c1027c16e Be conformant with standard. 2017-09-22 22:16:18 +02:00
Bartosz Taudul
21fd14397d Accumulate drag offset if time delta is less than 1 ns. 2017-09-22 21:39:14 +02:00
Bartosz Taudul
7b3a0057ca Fix double precision issues. 2017-09-22 21:35:06 +02:00
Bartosz Taudul
8d67d59ff3 Remove unused enum. 2017-09-22 21:15:57 +02:00
Bartosz Taudul
3ea18dcbfd Always display threads in their original appearance order. 2017-09-22 02:02:43 +02:00
Bartosz Taudul
3141d17988 Temporary display of thread name. 2017-09-22 01:59:44 +02:00
Bartosz Taudul
2610004fa5 Store thread id in thread data. 2017-09-22 01:59:44 +02:00
Bartosz Taudul
6525e1b3c1 Thread name queries. 2017-09-22 01:59:44 +02:00
Bartosz Taudul
70ad3407c0 Rework client handling of server requests. 2017-09-22 01:54:04 +02:00
Bartosz Taudul
3032745cce Thread names boilerplate. 2017-09-22 01:30:57 +02:00
Bartosz Taudul
d610b9d1a2 Fix typo. 2017-09-22 01:30:43 +02:00
Bartosz Taudul
55fdc47418 Each thread has its own timeline. 2017-09-22 01:15:58 +02:00
Bartosz Taudul
8a30e1c937 Properly clip function names in zones. 2017-09-21 22:12:19 +02:00
Bartosz Taudul
e3f85d6d74 Display zone source location data. 2017-09-21 22:01:18 +02:00
Bartosz Taudul
5065743bf0 Store zone source location. 2017-09-21 21:57:40 +02:00
Bartosz Taudul
7446e27e60 Display per-frame program execution time. 2017-09-21 02:30:05 +02:00
Bartosz Taudul
a5000924a5 Zone display skeleton. 2017-09-21 02:16:01 +02:00
Bartosz Taudul
9da7e58ec5 String getter. 2017-09-21 02:10:20 +02:00
Bartosz Taudul
0b2a98d6b2 Mark frame drawing code segment. 2017-09-21 01:49:01 +02:00
Bartosz Taudul
155c9de767 Fix crash. 2017-09-21 01:41:52 +02:00
Bartosz Taudul
2f645c589d Zoom in/out in zone view. 2017-09-21 01:39:07 +02:00
Bartosz Taudul
a353a7601d Add frame info tooltip. 2017-09-21 01:18:24 +02:00
Bartosz Taudul
b725be87c7 Scrolling zone view. 2017-09-21 01:13:23 +02:00
Bartosz Taudul
c3df475de7 Draw frames in zone view. 2017-09-21 00:57:26 +02:00
Bartosz Taudul
43dc12ca39 Select 3 frames, not 2. 2017-09-20 22:41:05 +02:00
Bartosz Taudul
ee273934e3 Const variables. 2017-09-20 22:35:10 +02:00
Bartosz Taudul
ef317fa2be Add frame time accessors. 2017-09-20 22:34:56 +02:00
Bartosz Taudul
edb7fac230 Display zone view span. 2017-09-20 21:28:03 +02:00
Bartosz Taudul
7bc730ab73 Use pool of buffers in TimeToString(). 2017-09-20 21:25:00 +02:00
Bartosz Taudul
1fef4f9202 Add a representation of displayed zone area to frame view. 2017-09-20 21:21:29 +02:00
Bartosz Taudul
efc7958ae0 Calculate zone area to display. 2017-09-20 21:21:21 +02:00
Bartosz Taudul
c9aaa03b28 Frames will never be empty anymore. 2017-09-20 20:39:08 +02:00
Bartosz Taudul
fc01be2138 Don't show profiler window before connection is established. 2017-09-20 20:38:12 +02:00
Bartosz Taudul
e2ec143893 Don't access frame data if nothing there. 2017-09-20 18:42:44 +02:00
Bartosz Taudul
792843d34e Use invisible button to fake frames widget.
This handles both positioning and prevents window from being moved by
mouse.
2017-09-20 02:19:39 +02:00
Bartosz Taudul
de9fbf4c2c Check if window is not under another window. 2017-09-20 00:53:39 +02:00
Bartosz Taudul
c402bd43b3 Add slight rounding to UI items. 2017-09-20 00:46:30 +02:00
Bartosz Taudul
1cb19a56eb Zoom in and out at mouse position. 2017-09-20 00:08:15 +02:00
Bartosz Taudul
9b93fea0f5 Calc frame width and grouping in separate functions. 2017-09-20 00:05:45 +02:00
Bartosz Taudul
ab16b66265 Analytic calculation of frame hovered by mouse. 2017-09-19 21:10:31 +02:00
Bartosz Taudul
623c32a7a0 Add one more frame zoom level. 2017-09-19 21:10:11 +02:00
Bartosz Taudul
a2fa7dd0ed Frame list can be now scrolled using right mouse button. 2017-09-19 01:24:31 +02:00
Bartosz Taudul
0fe0f1d095 Fix on-screen frames calculation. 2017-09-19 01:24:14 +02:00
Bartosz Taudul
3ee4a72076 Fit frames to frames rect. 2017-09-19 00:36:28 +02:00
Bartosz Taudul
2ba44bc0bc Allow pausing frame updates. 2017-09-19 00:26:40 +02:00
Bartosz Taudul
f9b9735392 Display global frame information. 2017-09-18 22:59:39 +02:00
Bartosz Taudul
df3cd193e5 Improve time to string conversion.
- Make sure comparison doesn't overflow.
- Time is not base-2 (doh!).
- Use doubles instead of floats for better precision.
- Support displaying minutes.
2017-09-18 22:56:17 +02:00
Bartosz Taudul
73f1a39928 Display frame information. 2017-09-18 22:12:39 +02:00
Bartosz Taudul
9a38302d4a Conversion of nanoseconds to string. 2017-09-18 22:11:38 +02:00
Bartosz Taudul
05c8c1fa40 Allow further zoom-out. 2017-09-18 21:32:26 +02:00
Bartosz Taudul
da36ddd1c6 Refactor drawing frames. 2017-09-18 21:26:22 +02:00
Bartosz Taudul
de66ec5332 Adjust frame colors. 2017-09-18 19:03:29 +02:00
Bartosz Taudul
2f7fa20e34 Draw frame graph. 2017-09-18 02:37:25 +02:00
Bartosz Taudul
b259dc94f8 Retrieval of last recorded event's time. 2017-09-18 02:22:59 +02:00
Bartosz Taudul
3eb17e9969 Add ImVec2 operator-. 2017-09-18 02:16:35 +02:00
Bartosz Taudul
11e9327e02 Show whether server is recording data. 2017-09-18 00:31:38 +02:00
Bartosz Taudul
76aad0d2a4 Track server connection status. 2017-09-18 00:31:09 +02:00
Bartosz Taudul
35032413ef Define ImVec2 operator+. 2017-09-18 00:18:36 +02:00
Bartosz Taudul
d7914439e9 Use stream compression.
Previously each data packet was compressed independently. After this
change all new packets reference the previously sent data, which
achieves better compression.
2017-09-17 13:10:58 +02:00
Bartosz Taudul
4c2bd7d9df Fine tune connection window. 2017-09-17 01:41:18 +02:00
Bartosz Taudul
447f042c9a Track server memory usage. 2017-09-17 01:22:46 +02:00
Bartosz Taudul
ab033188d8 Add more methods to tracy::Vector. 2017-09-17 01:05:47 +02:00
Bartosz Taudul
2789cc346f Proper throughput calculation. 2017-09-16 01:47:04 +02:00
Bartosz Taudul
1dd723e3ed Display remote FPS and frame time. 2017-09-16 00:57:50 +02:00
Bartosz Taudul
3d0ddb960a Process frame marks. 2017-09-16 00:40:51 +02:00
Bartosz Taudul
03ece0ac48 Send frame markers. 2017-09-16 00:30:27 +02:00
Bartosz Taudul
f8c4364e78 Move bytes initialization before goto. 2017-09-15 22:45:03 +02:00
Bartosz Taudul
01f63c8d7c Can't declare variable after goto. 2017-09-15 21:09:19 +02:00
Bartosz Taudul
19f67504b1 Throughput data is not related to event data. 2017-09-15 20:31:59 +02:00
Bartosz Taudul
2947fb6563 Initialize allocated memory. 2017-09-15 20:24:15 +02:00
Bartosz Taudul
b4faa0a9b9 Use small vector. 2017-09-15 20:17:39 +02:00
Bartosz Taudul
6b589e9479 Add small vector implementation.
Not used at the moment.
2017-09-15 20:17:02 +02:00
Bartosz Taudul
1c56347f1d Use slab allocator to store event data. 2017-09-15 19:56:55 +02:00
Bartosz Taudul
de0b50aef9 Add shortcut for allocation of a type. 2017-09-15 19:54:43 +02:00
Bartosz Taudul
47f6c8d06b Add slab allocator. 2017-09-15 19:41:09 +02:00
Bartosz Taudul
7bd3ce319f Add proper locking. 2017-09-15 02:33:49 +02:00
Bartosz Taudul
74f692c254 Display throughput plot. 2017-09-15 02:30:22 +02:00
Bartosz Taudul
d7c09605d6 Collect throughput statistics. 2017-09-15 02:29:48 +02:00
Bartosz Taudul
0220907a14 Timeline construction sketches. 2017-09-14 21:28:40 +02:00
Bartosz Taudul
c0dd0ef5bc Dispatch new zone, update zone events. 2017-09-14 21:05:01 +02:00
Bartosz Taudul
e3edd7e336 Explicit zone index. 2017-09-14 21:04:35 +02:00
Bartosz Taudul
e8989d955c Handle incoming strings. 2017-09-14 19:44:49 +02:00
Bartosz Taudul
bbbf52eafd String adding functionality. 2017-09-14 19:43:40 +02:00
Bartosz Taudul
cd9218e952 Check string availability. 2017-09-14 02:16:51 +02:00
Bartosz Taudul
b9c76f3452 Make View socket available to every method in class. 2017-09-14 02:15:04 +02:00
Bartosz Taudul
a159b70d40 Reconstruct event data. 2017-09-14 02:00:13 +02:00
Bartosz Taudul
3e1b736b34 Use better variable name. 2017-09-14 01:06:40 +02:00
Bartosz Taudul
10b88754d8 Allow direct access to data size table index. 2017-09-14 01:05:08 +02:00
Bartosz Taudul
89dd244693 Read QueueItems from network. 2017-09-13 23:40:28 +02:00
Bartosz Taudul
52d24d0d4c s_instance ptr may be accessed by thread. 2017-09-13 23:36:40 +02:00
Bartosz Taudul
f0d76af15c Use proper function to read data from socket. 2017-09-13 02:08:35 +02:00
Bartosz Taudul
407a256e68 Make sure data is actually received. 2017-09-13 02:00:22 +02:00
Bartosz Taudul
afde32549d Basic receive loop. 2017-09-13 01:54:22 +02:00
Bartosz Taudul
953e9c6206 View server skeleton. 2017-09-13 01:33:50 +02:00