Commit Graph

3553 Commits

Author SHA1 Message Date
Bartosz Taudul
fe675b91be Ditto for frame counts. 2019-03-26 20:19:56 +01:00
Bartosz Taudul
021368fb59 Display bin counts with separators. 2019-03-26 20:18:20 +01:00
Bartosz Taudul
df3e8597c4 Focusing timeline on crash from trace info window. 2019-03-24 23:55:38 +01:00
Bartosz Taudul
7792963e31 Interaction with crash label in options menu. 2019-03-24 23:52:36 +01:00
Bartosz Taudul
2f397c892b Middle click on crash label to center view on it. 2019-03-24 23:50:33 +01:00
Bartosz Taudul
1c495f077b Allow changing display order of threads. 2019-03-24 13:54:36 +01:00
Bartosz Taudul
f7eca24e18 Use ordered thread vector in message list. 2019-03-24 13:41:14 +01:00
Bartosz Taudul
a633c50991 Use ordered threads vector in options. 2019-03-24 13:41:02 +01:00
Bartosz Taudul
e957590350 Mirror thread data in a reorderable vector. 2019-03-24 13:37:43 +01:00
Bartosz Taudul
6ad820a76a Display tooltip for plot point over limits. 2019-03-23 02:24:45 +01:00
Bartosz Taudul
532bf19efa Don't draw many illegible plot points. 2019-03-22 20:11:24 +01:00
Bartosz Taudul
e6baee2bf9 Reduce number of max plot probes per column. 2019-03-22 20:11:10 +01:00
Bartosz Taudul
3ccb831efb Fix calculation of frame histogram data. 2019-03-21 21:30:08 +01:00
Bartosz Taudul
e79fa04a8b Don't fail when timer accuracy is low. 2019-03-21 21:24:07 +01:00
Bartosz Taudul
fa556d2d65 Use common access-and-insert pattern for VisData. 2019-03-19 22:12:24 +01:00
Bartosz Taudul
fddba168c6 Track next time to search for. 2019-03-18 19:39:37 +01:00
Bartosz Taudul
f530dfb0e9 Apply the same optimization for GPU zones. 2019-03-18 18:48:27 +01:00
Bartosz Taudul
94a1957338 Optimize zone skipping. 2019-03-18 18:42:58 +01:00
Bartosz Taudul
02db5f52d1 Pass nspx to zone drawing functions. 2019-03-18 18:40:03 +01:00
Bartosz Taudul
2931c83442 Lookup further at the beginning of the collapsed zones area. 2019-03-18 18:32:45 +01:00
Bartosz Taudul
e19f2f26e1 Optimize drawing collapsed CPU zones. 2019-03-18 18:24:27 +01:00
Bartosz Taudul
b5fce70f25 Fix rapid advancing to next frames. 2019-03-17 20:51:54 +01:00
Bartosz Taudul
e034eabeb8 Animate plot ranges. 2019-03-17 17:21:30 +01:00
Bartosz Taudul
b6ccb9d686 Allocation times may be displayed relative to zone start. 2019-03-17 16:53:09 +01:00
Bartosz Taudul
d2cca5dc3f Allow custom time offset in memory allocation list. 2019-03-17 16:47:44 +01:00
Bartosz Taudul
f0aadfe066 Don't push the same zone on zone info stack multiple times. 2019-03-17 16:43:20 +01:00
Bartosz Taudul
06421cf5ca Always auto-resize memory allocation info window. 2019-03-17 16:39:27 +01:00
Bartosz Taudul
4914ef6b14 Display zone messages in zone info window. 2019-03-17 16:33:18 +01:00
Bartosz Taudul
016f7ac4b6 Allow retrieval of zone's thread data. 2019-03-17 16:17:47 +01:00
Bartosz Taudul
b4bfdb7872 Dim information about no memory events. 2019-03-17 02:56:26 +01:00
Bartosz Taudul
17718b4d25 Fix asserts. 2019-03-16 20:36:06 +01:00
Bartosz Taudul
28dfa21fda Move conditional out of loop. 2019-03-16 14:46:21 +01:00
Bartosz Taudul
7e6a8135df Remove double indirection in GetNextLockEvent(). 2019-03-16 14:18:43 +01:00
Bartosz Taudul
6db1a9ccd4 Use lock thread ranges in lock tooltips. 2019-03-16 02:50:51 +01:00
Bartosz Taudul
833151b868 Don't search for lock events outside of thread range. 2019-03-16 02:50:51 +01:00
Bartosz Taudul
200621f952 Use lock ranges for early exclusion test. 2019-03-16 02:50:51 +01:00
Bartosz Taudul
67f14be6aa Update lock ranges when loading trace. 2019-03-16 02:50:51 +01:00
Bartosz Taudul
8ced8a457c Update thread time range on lock event insert. 2019-03-16 02:50:51 +01:00
Bartosz Taudul
dc981550a1 Load lock event time to a variable. 2019-03-16 02:50:51 +01:00
Bartosz Taudul
4d66317bc3 Add per-thread time ranges to lock maps. 2019-03-16 02:50:51 +01:00
Bartosz Taudul
71e20e7e7f Store lock map as flat_hash_map with pointer values. 2019-03-16 02:50:51 +01:00
Bartosz Taudul
5fbc14c487 Fix skipping plots in version >= 0.4.5. 2019-03-15 15:27:37 +01:00
Bartosz Taudul
b43d962194 Set labels for input text fields. 2019-03-15 02:35:27 +01:00
Bartosz Taudul
6a36bb2fc2 Add hints to input text fields. 2019-03-15 01:31:06 +01:00
Bartosz Taudul
a10ec49a60 Don't use obsolete function. 2019-03-15 01:00:43 +01:00
Bartosz Taudul
5177629130 Add standard deviation explanation tooltips. 2019-03-14 01:34:50 +01:00
Bartosz Taudul
18e7b9df11 Add standard deviations to compare menu. 2019-03-14 01:32:50 +01:00
Bartosz Taudul
a0299cc63a Optimize calculation of standard deviation. 2019-03-14 01:23:37 +01:00
Bartosz Taudul
f57cac9042 Initialize SourceLocationZones in-place. 2019-03-14 01:15:19 +01:00
Bartosz Taudul
d3fdd6b1d1 Display standard deviation. 2019-03-14 01:14:06 +01:00
Bartosz Taudul
d64f07f853 Don't search for thread for empty timelines. 2019-03-14 01:10:57 +01:00
Bartosz Taudul
b7fe29f750 Offload timeline statistics update to a background thread. 2019-03-13 01:46:05 +01:00
Bartosz Taudul
9563c8316d Optimize lock drawing.
Don't iterate over locks that are present in only one thread, if only
contended lock events are to be displayed. Such locks cannot be
contended.
2019-03-09 14:20:34 +01:00
Bartosz Taudul
cbfd524b6c Set sane messages window column widths. 2019-03-09 00:37:58 +01:00
Bartosz Taudul
815d7fdcb4 Set sane callstack window column widths. 2019-03-09 00:34:04 +01:00
Bartosz Taudul
5445ffb149 Set sane statistics window column widths. 2019-03-09 00:30:53 +01:00
Bartosz Taudul
0748655797 Allow opening source file view from statistics menu. 2019-03-09 00:15:23 +01:00
Bartosz Taudul
761a08b055 Dim location in statistics menu. 2019-03-09 00:08:57 +01:00
Bartosz Taudul
9fd8a20d7c Use small checkbox in appropriate places. 2019-03-08 18:39:41 +01:00
Bartosz Taudul
e004dc85a9 Display waiting dots in "waiting for connection" window. 2019-03-07 17:00:40 +01:00
Bartosz Taudul
f69f9d4660 Disable window transparency. 2019-03-07 01:18:24 +01:00
Bartosz Taudul
535d7b2da1 Add waiting dots to statistics menu. 2019-03-07 00:59:43 +01:00
Bartosz Taudul
aa054f1f46 Add waiting dots to compare traces menu. 2019-03-07 00:59:02 +01:00
Bartosz Taudul
6e4bc7d9c5 Add waiting dots to memory data in zone info window. 2019-03-07 00:57:32 +01:00
Bartosz Taudul
d547700e50 Update time in a common location. 2019-03-07 00:57:25 +01:00
Bartosz Taudul
d0d7131e35 Properly restore threadMap.
This fixes thread ids returned by CompressThread in loaded traces. The
bug was manifesting by not displaying memory events in zone info window.
2019-03-07 00:49:25 +01:00
Bartosz Taudul
07bcca9dc0 Don't pre-fill threadExpand, if not needed. 2019-03-07 00:49:06 +01:00
Bartosz Taudul
f2f19241e6 Display waiting dots in find zone menu during precompute. 2019-03-06 18:25:39 +01:00
Bartosz Taudul
d5914d2e7b Extract drawing waiting dots. 2019-03-06 18:16:21 +01:00
Bartosz Taudul
cee625b375 Animate frame selection expansion. 2019-03-06 01:45:39 +01:00
Bartosz Taudul
4b1c0ff0c5 Fix frame selection when zoom anim is active. 2019-03-06 01:45:26 +01:00
Bartosz Taudul
00de21f7e7 Smooth zooming on mouse scroll. 2019-03-06 01:15:38 +01:00
Bartosz Taudul
bc87762012 Merge native callstack with the allocated one. 2019-03-05 19:44:08 +01:00
Bartosz Taudul
ebf09bebae Only one callstack may be in-flight at any time.
Save for the allocated callstack, but this will be solved in another
way. There's no need to keep pending callstacks in a map.
2019-03-05 19:44:08 +01:00
Bartosz Taudul
3e81e44d75 Separate processing for allocated callstacks.
Only native callstack is used for the moment.
2019-03-05 02:42:50 +01:00
Bartosz Taudul
e13286936c Mark templated functions inline. 2019-03-03 22:09:20 +01:00
Bartosz Taudul
f6913eecf0 Don't display custom stack frames as pointers. 2019-03-03 18:20:55 +01:00
Bartosz Taudul
dc74297439 Add missing const qualifiers. 2019-03-03 18:05:03 +01:00
Bartosz Taudul
bef31ba073 Separate message for zone begin with alloc src loc and callstack. 2019-03-03 18:05:03 +01:00
Bartosz Taudul
66b8a13e77 Store callstack alloc payloads. 2019-03-03 18:05:03 +01:00
Bartosz Taudul
9fc022346b Replace frame pointers with callstack frame ids. 2019-03-03 18:05:03 +01:00
Bartosz Taudul
664847211c Pack/unpack frame pointer to callstack frame id. 2019-03-03 18:05:03 +01:00
Bartosz Taudul
1feedb17ac Add callstack frame identifier and the required plumbing. 2019-03-03 18:05:03 +01:00
Bartosz Taudul
cf8d17c2ec Move VarArray hash calculation to a separate function. 2019-03-03 18:05:03 +01:00
Bartosz Taudul
fc63b6b07d Display trace version in trace info window. 2019-03-01 01:47:36 +01:00
Bartosz Taudul
6065d25335 Extend list of tracy callstack frames. 2019-03-01 01:41:10 +01:00
Bartosz Taudul
e284248995 Fix display of last message. 2019-03-01 01:30:56 +01:00
Bartosz Taudul
8fd09fe8f0 Get proper width. 2019-03-01 01:20:20 +01:00
Bartosz Taudul
42c94f7142 Handle discontinuous frame end mismatch failure. 2019-02-28 19:32:42 +01:00
Bartosz Taudul
d80dc82b96 Don't display invalid thread in failure dialog. 2019-02-28 19:31:45 +01:00
Bartosz Taudul
b4daad684c Display frame numbers in zone trace. 2019-02-27 21:12:56 +01:00
Bartosz Taudul
8d784f7fae Display inline frames in all call stacks. 2019-02-27 20:55:58 +01:00
Bartosz Taudul
422ed1f452 Special mode for callstack grouping in find zone menu. 2019-02-27 20:37:38 +01:00
Bartosz Taudul
851ae9077b Make small callstack button tooltip optional. 2019-02-27 19:59:49 +01:00
Bartosz Taudul
e20e7caab0 Increase size of frame left/right buttons. 2019-02-27 19:58:44 +01:00
Bartosz Taudul
e9aeb0c522 Darken timeline outside of capture area. 2019-02-24 18:35:03 +01:00
Bartosz Taudul
fb96d60256 Adjust last time in mem alloc/free and sys time messages. 2019-02-24 18:26:23 +01:00
Bartosz Taudul
9f621bf67f Improve lock label tooltips. 2019-02-24 17:44:44 +01:00
Bartosz Taudul
c78aedae62 Zoom-to-range for lock labels. 2019-02-24 17:30:58 +01:00
Bartosz Taudul
021d369b80 Fix calculation of thread lock extent. 2019-02-24 17:30:18 +01:00
Bartosz Taudul
271d7ccaa3 Bring plot tooltip up-to-par. 2019-02-24 17:01:46 +01:00
Bartosz Taudul
bf2ecbae36 Middle-click on thread label to zoom to thread extent. 2019-02-24 17:01:46 +01:00
Bartosz Taudul
62162d4cdb Display count of messages and locks in thread tooltip. 2019-02-24 17:01:46 +01:00
Bartosz Taudul
6dceec4ea8 Improve thread tooltip.
- In addition to the first event time, also display last one and the
  time period.
- Include messages and locks in thread events discovery.
2019-02-24 17:01:46 +01:00
Bartosz Taudul
a0b5ac33cc Always show label of a crashed thread. 2019-02-23 01:34:45 +01:00
Bartosz Taudul
af3eb93e4a Hide tracks that don't have anything to display. 2019-02-23 01:28:12 +01:00
Bartosz Taudul
7ab326c4fe Don't clip area above track. 2019-02-23 00:59:09 +01:00
Bartosz Taudul
53992b9b6b Don't hide hex thread id in tooltip. 2019-02-23 00:34:01 +01:00
Bartosz Taudul
29fcddca0b Display frame count in frame type selection dropdown. 2019-02-22 21:07:33 +01:00
Bartosz Taudul
ae53c8e6f0 Don't display threads with no messages. 2019-02-22 21:07:33 +01:00
Bartosz Taudul
48b5b25a6a Display count of messages in threads. 2019-02-22 21:07:33 +01:00
Bartosz Taudul
d0c1b9bf67 Proper formatting of plot values. 2019-02-21 23:07:32 +01:00
Bartosz Taudul
e190faa7e1 Save/load CPU usage plot. 2019-02-21 22:56:59 +01:00
Bartosz Taudul
e9baa80bf3 Process CPU usage reports. 2019-02-21 22:56:59 +01:00
Bartosz Taudul
f1dd4ef3d9 Animate thread position and height. 2019-02-21 21:18:41 +01:00
Bartosz Taudul
e945902f40 Merge visibility and show full options into one struct. 2019-02-21 20:24:08 +01:00
Bartosz Taudul
bc713463d8 Improve zooming animation. 2019-02-21 20:00:29 +01:00
Bartosz Taudul
3a562ae6c9 Fix display of unresolved call stack frames. 2019-02-19 16:37:34 +01:00
Bartosz Taudul
081b1069f6 Properly count number of locks in options menu. 2019-02-17 17:19:17 +01:00
Bartosz Taudul
9dd1d6a744 Don't display locks with no lock events. 2019-02-17 17:13:20 +01:00
Bartosz Taudul
a2819baa35 Split locks as single and multithreaded in options menu. 2019-02-17 17:06:39 +01:00
Bartosz Taudul
5cc738593f Fix drawing lock highlight. 2019-02-17 16:57:52 +01:00
Bartosz Taudul
92a7e02e73 Highlight locks hovered in the options menu. 2019-02-17 16:53:33 +01:00
Bartosz Taudul
bec27f7d60 Handle highlighting lock in fast-exit code path. 2019-02-17 16:49:18 +01:00
Bartosz Taudul
1e32821097 Move drawing lock header to a separate function. 2019-02-17 16:49:03 +01:00
Bartosz Taudul
ea4f4ebb3a Highlight selected/hovered lock. 2019-02-17 16:20:56 +01:00
Bartosz Taudul
4422fce55c Don't decompress GpuZone threads while saving trace.
Saving the threads compressed in GPU zones and memory event has the
following result on trace dump sizes:

043/aa.tracy (0.4.3) {10055 KB} -> 044/aa.tracy (0.4.4) {9975 KB}  99.20% size change
043/android.tracy (0.4.3) {542739 KB} -> 044/android.tracy (0.4.4) {519248 KB}  95.67% size change
043/asset-new.tracy (0.4.3) {78403 KB} -> 044/asset-new.tracy (0.4.4) {75899 KB}  96.81% size change
043/asset-new-id.tracy (0.4.3) {84341 KB} -> 044/asset-new-id.tracy (0.4.4) {81771 KB}  96.95% size change
043/asset-old.tracy (0.4.3) {80688 KB} -> 044/asset-old.tracy (0.4.4) {78410 KB}  97.18% size change
043/big.tracy (0.4.3) {939577 KB} -> 044/big.tracy (0.4.4) {938427 KB}  99.88% size change
043/callstack.tracy (0.4.3) {14557 KB} -> 044/callstack.tracy (0.4.4) {14465 KB}  99.37% size change
043/callstack-linux.tracy (0.4.3) {6949 KB} -> 044/callstack-linux.tracy (0.4.4) {6942 KB}  99.90% size change
043/crash.tracy (0.4.3) {131 KB} -> 044/crash.tracy (0.4.4) {127 KB}  97.10% size change
043/crash2.tracy (0.4.3) {1422 KB} -> 044/crash2.tracy (0.4.4) {1412 KB}  99.29% size change
043/darkrl.tracy (0.4.3) {15767 KB} -> 044/darkrl.tracy (0.4.4) {15663 KB}  99.34% size change
043/darkrl2.tracy (0.4.3) {7947 KB} -> 044/darkrl2.tracy (0.4.4) {7886 KB}  99.23% size change
043/darkrl-old.tracy (0.4.3) {67448 KB} -> 044/darkrl-old.tracy (0.4.4) {67004 KB}  99.34% size change
043/deadlock.tracy (0.4.3) {5984 KB} -> 044/deadlock.tracy (0.4.4) {5986 KB}  100.03% size change
043/gn-opengl.tracy (0.4.3) {29005 KB} -> 044/gn-opengl.tracy (0.4.4) {28885 KB}  99.59% size change
043/gn-vulkan.tracy (0.4.3) {29352 KB} -> 044/gn-vulkan.tracy (0.4.4) {29257 KB}  99.68% size change
043/long.tracy (0.4.3) {1182800 KB} -> 044/long.tracy (0.4.4) {1176584 KB}  99.47% size change
043/mem.tracy (0.4.3) {1369067 KB} -> 044/mem.tracy (0.4.4) {1262406 KB}  92.21% size change
043/multi.tracy (0.4.3) {8004 KB} -> 044/multi.tracy (0.4.4) {7944 KB}  99.24% size change
043/new.tracy (0.4.3) {1108 KB} -> 044/new.tracy (0.4.4) {1099 KB}  99.18% size change
043/q3bsp-mt.tracy (0.4.3) {949855 KB} -> 044/q3bsp-mt.tracy (0.4.4) {937574 KB}  98.71% size change
043/q3bsp-st.tracy (0.4.3) {240347 KB} -> 044/q3bsp-st.tracy (0.4.4) {230092 KB}  95.73% size change
043/selfprofile.tracy (0.4.3) {197708 KB} -> 044/selfprofile.tracy (0.4.4) {197659 KB}  99.98% size change
043/tbrowser.tracy (0.4.3) {9503 KB} -> 044/tbrowser.tracy (0.4.4) {9503 KB}  100.00% size change
043/test.tracy (0.4.3) {40700 KB} -> 044/test.tracy (0.4.4) {40699 KB}  100.00% size change
043/virtualfile_hc.tracy (0.4.3) {72424 KB} -> 044/virtualfile_hc.tracy (0.4.4) {72304 KB}  99.83% size change
043/zfile_hc.tracy (0.4.3) {39419 KB} -> 044/zfile_hc.tracy (0.4.4) {39328 KB}  99.77% size change
2019-02-17 00:29:01 +01:00
Bartosz Taudul
760e9105d0 Don't decompress memory thread data while saving trace. 2019-02-17 00:27:41 +01:00
Bartosz Taudul
9ee494c0f4 Store thread compression layout in trace dump. 2019-02-16 22:48:29 +01:00
Bartosz Taudul
d030674b83 Simplify loading memory events. 2019-02-16 22:32:14 +01:00
Bartosz Taudul
569a9fb9be Change order of file version checks during loading memory events. 2019-02-16 22:26:50 +01:00
Bartosz Taudul
88b7961421 Allocate memory for all zones at the current level at once. 2019-02-16 20:53:07 +01:00
Bartosz Taudul
470600fbc2 Don't thrash memory bandwith during file load. 2019-02-16 20:42:50 +01:00
Bartosz Taudul
c127f51767 Load time offsets to scratch buffers. 2019-02-15 02:46:25 +01:00
Bartosz Taudul
8fd685c877 Properly track memory usage in slab allocator. 2019-02-15 02:28:31 +01:00
Bartosz Taudul
23d12d2633 Allocate new block, if we're at the end of current one. 2019-02-15 02:04:37 +01:00
Bartosz Taudul
7b023e533d Use big allocation mode for Vector's reserve_exact. 2019-02-15 01:59:33 +01:00
Bartosz Taudul
930190f2cb Support big allocations in slab allocator. 2019-02-15 01:59:33 +01:00
Bartosz Taudul
1cefd4d8ac Don't use reserve_exact for temporary things. 2019-02-15 01:43:30 +01:00
Bartosz Taudul
127be8e995 GpuEvent doesn't need init. 2019-02-15 01:31:58 +01:00
Bartosz Taudul
e8d15e8295 Mirror zone child grouping for GPU zones. 2019-02-14 01:38:34 +01:00
Bartosz Taudul
e24ac42755 Add self time to GPU zone info window. 2019-02-14 01:31:06 +01:00
Bartosz Taudul
0fad23dbae Add GPU zone self time in tooltip. 2019-02-14 01:28:27 +01:00
Bartosz Taudul
f06609eb61 GPU child zones time getter. 2019-02-14 01:28:12 +01:00
Bartosz Taudul
92c1420c30 Improve handling of post-load background jobs.
Background tasks (source location zones sorting, reconstruction of
memory plot) are now started only after trace loading is finished.
Multithreaded sorting was previously impacting trace load times.

Only one thread is used to perform both jobs, one after another.
2019-02-14 01:17:37 +01:00
Bartosz Taudul
080873003b Simplify support for 0.2 traces. 2019-02-14 01:13:11 +01:00
Bartosz Taudul
bd1c1d044b Force inline read/write time offset functions. 2019-02-14 00:17:50 +01:00
Bartosz Taudul
631f81e9dc Use Vector to store children data instead of std::vector. 2019-02-13 02:32:25 +01:00
Bartosz Taudul
40d0c72982 Use memcpy and memset instead of per-element copy and zero. 2019-02-13 02:23:56 +01:00
Bartosz Taudul
d854998856 Support non-trivially-copyable items in Vector. 2019-02-13 02:20:31 +01:00
Bartosz Taudul
08642d034b Preserve string length in string map. 2019-02-12 22:11:15 +01:00
Bartosz Taudul
17e1894034 Add specialized string key for hash map. 2019-02-12 22:11:15 +01:00
Bartosz Taudul
ec37f59c14 Replace manual comparison with memcmp. 2019-02-12 22:11:15 +01:00
Bartosz Taudul
d32c070a9e Two more places where connection can silently drop. 2019-02-12 11:07:12 +01:00
Bartosz Taudul
7f11260bf0 Handle dropped connection during handshake. 2019-02-12 01:41:09 +01:00
Bartosz Taudul
147b31f014 Implement grouping children zones. 2019-02-10 17:21:01 +01:00
Bartosz Taudul
76186f3221 Allow zone name retrieval from source location. 2019-02-10 16:45:19 +01:00
Bartosz Taudul
740486a0ce Add children locations grouping button. 2019-02-10 16:14:13 +01:00
Bartosz Taudul
b7bd3696b7 Do not draw time subdividers on a nanosecond scale. 2019-02-10 16:04:04 +01:00
Bartosz Taudul
c7e64bb8a8 Replace select() with poll(). 2019-02-10 15:45:23 +01:00
Bartosz Taudul
d18c3432a4 Fix call stack window. 2019-02-10 13:38:14 +01:00
Bartosz Taudul
2d50664180 Use multiply instead of divide. 2019-02-10 13:01:16 +01:00
Bartosz Taudul
f1940aab2e Use help marker helper function. 2019-02-10 03:02:54 +01:00
Bartosz Taudul
96e38501b6 Use unformatted text drawing where possible. 2019-02-10 02:50:34 +01:00
Bartosz Taudul
3a8abdf9c1 Integer time specialization is not needed anymore. 2019-02-10 01:14:34 +01:00
Bartosz Taudul
2ad0258925 Don't print trailing zeros in fractions (e.g. 2.5 instead of 2.50). 2019-02-10 01:12:22 +01:00
Bartosz Taudul
af16872693 Don't display fractional part if it's 0. 2019-02-10 01:03:35 +01:00
Bartosz Taudul
e4f4fee6d4 Optimize printing days. 2019-02-10 01:02:57 +01:00
Bartosz Taudul
ee66b1354d IntTable10 is not needed. 2019-02-10 00:51:13 +01:00
Bartosz Taudul
d940e315bd Optimize TimeToString(). 2019-02-08 22:11:06 +01:00
Bartosz Taudul
3c4394489c Workaround GCC bug #67274.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67274
2019-02-08 11:54:29 +01:00
Bartosz Taudul
053932249c Style fixes. 2019-02-08 02:29:24 +01:00
Dedmen Miller (Dedmenmiller)
8fb6c0dfcb Merged in dedmenmiller/tracy/findZoneSorting (pull request #31)
Add sorting for findZone zonelist
2019-02-08 00:53:48 +00:00
Dedmen Miller
ab0dc0da11 Use memcpy 2019-02-07 16:10:28 +01:00
Dedmen Miller
59ae188a7f Cleanup 2019-02-07 14:51:34 +01:00
Dedmen Miller
7361d696c5 Return proper buf 2019-02-07 14:38:42 +01:00
Dedmen Miller
bfa5386bbe Cleanup 2019-02-07 14:36:33 +01:00
Dedmen Miller
e4ef491fdf Cleaner TimeToString 2019-02-07 13:14:52 +01:00
Dedmen Miller
92c872dfc0 Added sorting for findZone zonelist 2019-02-07 12:25:05 +01:00
Bartosz Taudul
0e6350d95e Grouping by function names is a more sane default. 2019-02-06 23:09:38 +01:00
Bartosz Taudul
b945f83169 Don't separate inclusive/exclusive counts.
There is no way for one frame to have both. Coloring is preserved and is
now determined by presence of children.
2019-02-06 22:36:21 +01:00
Bartosz Taudul
1953a1a1d5 Notify user about pitfalls of function name grouping. 2019-02-06 22:02:59 +01:00
Bartosz Taudul
70ea9e7712 Implement grouping call stack tree by function names. 2019-02-06 21:56:49 +01:00
Bartosz Taudul
044b7e1522 Add function name grouping controls. 2019-02-06 21:45:26 +01:00
Bartosz Taudul
7aa24864bf Make it easier to add new matches against tracy own stack frames. 2019-02-06 21:07:41 +01:00
Bartosz Taudul
104415ced8 Display base frame, not inline frame, if inlines are not shown. 2019-02-06 14:17:18 +01:00
Bartosz Taudul
c2e9c00a38 Add top-down call stack memory tree. 2019-02-06 13:53:14 +01:00
Bartosz Taudul
c689a494da Move call stack paths calculation to a separate function. 2019-02-06 13:46:50 +01:00
Bartosz Taudul
dbf8115771 Same for linux. 2019-02-04 02:33:03 +01:00
Bartosz Taudul
4dc05195ca Skip internal call stack capture inline frames for MSVC. 2019-02-04 02:27:13 +01:00
Bartosz Taudul
e801943b90 Array index is changing here. 2019-01-31 18:37:59 +01:00
Bartosz Taudul
b0d319890b Allow sorting find zone groups by mean time per call. 2019-01-30 01:54:18 +01:00
Bartosz Taudul
c5fd347401 Initialize variable. 2019-01-29 23:18:36 +01:00
Bartosz Taudul
89ddfd0006 Remove dead code. 2019-01-29 23:18:36 +01:00
Bartosz Taudul
852fe03cbc More references. 2019-01-29 22:10:14 +01:00
Bartosz Taudul
5e3390894d Use preincrementation for iterators. 2019-01-29 22:01:47 +01:00
Bartosz Taudul
d6c616848c Use reference instead of repeated deep dereferences. 2019-01-29 21:59:52 +01:00
Bartosz Taudul
1b3f10148d Fix logic snafu. 2019-01-29 21:46:14 +01:00
Bartosz Taudul
d86e36cc62 Fix progress of loading CPU zones. 2019-01-26 22:18:07 +01:00
Bartosz Taudul
39680ad315 Boost lock loading time. 2019-01-24 22:44:09 +01:00
Bartosz Taudul
66a5e06803 Allow disconnecting from a client. 2019-01-24 19:00:34 +01:00
Bartosz Taudul
922993cbbb Add placeholder worker disconnect command. 2019-01-24 18:51:55 +01:00
Dedmen Miller (Dedmenmiller)
e83e63caa4 Fix other lines 2019-01-24 15:02:36 +00:00
Dedmen Miller (Dedmenmiller)
72966a24a3 Fixed offset in histogram with non-log time 2019-01-24 14:16:23 +00:00
Bartosz Taudul
c67d91c6ac Display numerical thread id in thread tooltip. 2019-01-23 18:15:19 +01:00
Bartosz Taudul
71f1a0b31e Display self time percentage in find zone menu. 2019-01-23 18:11:47 +01:00
Bartosz Taudul
56b530e99c Fix tooltip active area. 2019-01-23 18:04:31 +01:00
Bartosz Taudul
7f015b1b24 Implement self time in find zone menu. 2019-01-23 14:25:45 +01:00
Bartosz Taudul
92766430d9 Add "self time" checkbox to find zone menu. 2019-01-23 14:25:28 +01:00
Bartosz Taudul
42af2d14cc Calculate self min and max times of source location zones. 2019-01-23 14:24:22 +01:00
Bartosz Taudul
118fab1561 Fast version of zone child time getter.
This one can only be used when all child zones are properly ended.
2019-01-23 13:59:14 +01:00
Bartosz Taudul
3d2cc2d54d Display zone self time. 2019-01-23 13:44:11 +01:00
Bartosz Taudul
06292f1a3f Add zone child time getter. 2019-01-23 13:39:44 +01:00
Bartosz Taudul
ef17699887 Fix order of inline and base subframes. 2019-01-21 17:12:01 +01:00
Bartosz Taudul
ddad475c19 Make it possible to store multiple frames at single frame address. 2019-01-20 19:11:48 +01:00
Bartosz Taudul
b9dc9f043c Make nohash operator() const. 2019-01-20 18:41:26 +01:00
Bartosz Taudul
d4e9baa0d9 Display time savings also as time percentage. 2019-01-20 03:16:32 +01:00
Rokas K. (rku)
31bbdfe2f2 Merged in rokups/tracy/mingw-support (pull request #26)
MingW support
2019-01-20 00:44:44 +00:00
Bartosz Taudul
f6edbccfc8 Fix triangle rendering. 2019-01-19 14:22:45 +01:00
Rokas Kupstys
8157e3a0b3 Fix builds with MingW. 2019-01-19 13:53:10 +02:00
Bartosz Taudul
92f3a4bba0 Add ZoneText and ZoneName to the C API. 2019-01-16 02:10:21 +01:00
Bartosz Taudul
49e270d8a6 Detect zone end without begin failure. 2019-01-16 00:45:48 +01:00
Bartosz Taudul
708fdfea49 Track memory alloc+free matching failures. 2019-01-15 18:56:26 +01:00
Bartosz Taudul
ecf9a299de Check for proper number of failure reasons. 2019-01-15 18:56:17 +01:00
Bartosz Taudul
76ab70a948 Simplify failure detection code. 2019-01-15 18:55:47 +01:00
Bartosz Taudul
3e3ee0ec2f There may be no source location associated with failure. 2019-01-15 18:54:41 +01:00
Bartosz Taudul
9944a73444 Store failure reason strings in Worker. 2019-01-15 18:42:15 +01:00
Bartosz Taudul
57decf5875 Display failure information. 2019-01-14 23:42:58 +01:00
Bartosz Taudul
ac6e7439e2 TODO: track memory allocation tracking failures. 2019-01-14 23:26:32 +01:00
Bartosz Taudul
c3246ca3b5 Gracefully store failure states. 2019-01-14 23:22:31 +01:00
Bartosz Taudul
4dc339c933 Close connection when zone validation fails. 2019-01-14 23:12:11 +01:00
Bartosz Taudul
c3b67e4482 Perform zone stack validation. 2019-01-14 23:08:34 +01:00
Bartosz Taudul
dcc6bee607 Process zone validation messages. 2019-01-14 22:56:10 +01:00
Bartosz Taudul
a5736a9c1b Change crash visuals in options menu. 2019-01-14 18:48:16 +01:00
Bartosz Taudul
da8b01357d Proper skipping of locks in 0.4.1+ (fixes compare menu). 2019-01-08 17:19:04 +01:00
Bartosz Taudul
cb50cf9de6 Last time is stored in worker. 2019-01-08 15:44:29 +01:00
Bartosz Taudul
9c6d037859 Another unneeded capture. 2019-01-06 21:15:49 +01:00
Bartosz Taudul
096022a718 Proper string printing. 2019-01-06 21:15:26 +01:00
Bartosz Taudul
d1beb12dc3 Remove unused variable. 2019-01-06 21:14:02 +01:00
Bartosz Taudul
13a0ddfe03 No need to perform capture here. 2019-01-06 21:11:36 +01:00
Bartosz Taudul
fbe8eb3585 Fix initialization of atomics. 2019-01-06 21:09:56 +01:00
Bartosz Taudul
6a1c552c61 Reduce zone loading time. 2019-01-06 20:49:37 +01:00
Bartosz Taudul
dabdf1360f Display trace loading time. 2019-01-06 19:20:17 +01:00
Bartosz Taudul
77c9a8c407 Add support for notification text in View. 2019-01-06 19:14:24 +01:00
Bartosz Taudul
980c54e349 Track trace loading time. 2019-01-06 19:09:50 +01:00
Bartosz Taudul
5ac26ce084 Init common Worker variables in header. 2019-01-06 19:04:50 +01:00
Bartosz Taudul
a313ed4720 Track separate time offset for GPU times.
This is second version of 0.4.2 dump file format. Previous 0.4.2 format
cannot be read anymore.

041/aa.tracy (0.4.1) {18987 KB} -> 042/aa.tracy (0.4.2) {10051 KB}  52.94% size change
041/android.tracy (0.4.1) {696753 KB} -> 042/android.tracy (0.4.2) {542738 KB}  77.90% size change
041/asset-new.tracy (0.4.1) {97163 KB} -> 042/asset-new.tracy (0.4.2) {78402 KB}  80.69% size change
041/asset-new-id.tracy (0.4.1) {105683 KB} -> 042/asset-new-id.tracy (0.4.2) {84341 KB}  79.81% size change
041/asset-old.tracy (0.4.1) {100205 KB} -> 042/asset-old.tracy (0.4.2) {80688 KB}  80.52% size change
041/big.tracy (0.4.1) {2246014 KB} -> 042/big.tracy (0.4.2) {939578 KB}  41.83% size change
041/crash.tracy (0.4.1) {143 KB} -> 042/crash.tracy (0.4.2) {131 KB}  91.37% size change
041/crash2.tracy (0.4.1) {3411 KB} -> 042/crash2.tracy (0.4.2) {1420 KB}  41.63% size change
041/darkrl.tracy (0.4.1) {31818 KB} -> 042/darkrl.tracy (0.4.2) {15762 KB}  49.54% size change
041/darkrl2.tracy (0.4.1) {18778 KB} -> 042/darkrl2.tracy (0.4.2) {7945 KB}  42.31% size change
041/darkrl-old.tracy (0.4.1) {151346 KB} -> 042/darkrl-old.tracy (0.4.2) {67449 KB}  44.57% size change
041/deadlock.tracy (0.4.1) {53 KB} -> 042/deadlock.tracy (0.4.2) {52 KB}  98.55% size change
041/gn-opengl.tracy (0.4.1) {45860 KB} -> 042/gn-opengl.tracy (0.4.2) {29005 KB}  63.25% size change
041/gn-vulkan.tracy (0.4.1) {45618 KB} -> 042/gn-vulkan.tracy (0.4.2) {29352 KB}  64.34% size change
041/long.tracy (0.4.1) {1583550 KB} -> 042/long.tracy (0.4.2) {1182800 KB}  74.69% size change
041/mem.tracy (0.4.1) {1243058 KB} -> 042/mem.tracy (0.4.2) {1369067 KB}  110.14% size change
041/multi.tracy (0.4.1) {14519 KB} -> 042/multi.tracy (0.4.2) {8000 KB}  55.10% size change
041/new.tracy (0.4.1) {1439 KB} -> 042/new.tracy (0.4.2) {1105 KB}  76.75% size change
041/q3bsp-mt.tracy (0.4.1) {1414323 KB} -> 042/q3bsp-mt.tracy (0.4.2) {949855 KB}  67.16% size change
041/q3bsp-st.tracy (0.4.1) {301334 KB} -> 042/q3bsp-st.tracy (0.4.2) {240347 KB}  79.76% size change
041/selfprofile.tracy (0.4.1) {399648 KB} -> 042/selfprofile.tracy (0.4.2) {197704 KB}  49.47% size change
041/tbrowser.tracy (0.4.1) {13052 KB} -> 042/tbrowser.tracy (0.4.2) {9503 KB}  72.81% size change
041/test.tracy (0.4.1) {60309 KB} -> 042/test.tracy (0.4.2) {40700 KB}  67.49% size change
041/virtualfile_hc.tracy (0.4.1) {108967 KB} -> 042/virtualfile_hc.tracy (0.4.2) {72424 KB}  66.46% size change
041/zfile_hc.tracy (0.4.1) {58814 KB} -> 042/zfile_hc.tracy (0.4.2) {39418 KB}  67.02% size change
2019-01-03 21:52:43 +01:00
Bartosz Taudul
f8ef5b726a Store time deltas, instead of absolute time in trace dumps.
This change greatly reduces the size of saved dumps, but increase the
cost of processing during loading. One notable outlier in the dataset
below is mem.tracy, which increased in size, even if changes in the
memory dump saving scheme decrease size of the other traces.

041/aa.tracy (0.4.1) {18987 KB} -> 042/aa.tracy (0.4.2) {10140 KB}  53.40% size change
041/android.tracy (0.4.1) {696753 KB} -> 042/android.tracy (0.4.2) {542738 KB}  77.90% size change
041/asset-new.tracy (0.4.1) {97163 KB} -> 042/asset-new.tracy (0.4.2) {78402 KB}  80.69% size change
041/asset-new-id.tracy (0.4.1) {105683 KB} -> 042/asset-new-id.tracy (0.4.2) {84341 KB}  79.81% size change
041/asset-old.tracy (0.4.1) {100205 KB} -> 042/asset-old.tracy (0.4.2) {80688 KB}  80.52% size change
041/big.tracy (0.4.1) {2246014 KB} -> 042/big.tracy (0.4.2) {943083 KB}  41.99% size change
041/crash.tracy (0.4.1) {143 KB} -> 042/crash.tracy (0.4.2) {131 KB}  91.39% size change
041/crash2.tracy (0.4.1) {3411 KB} -> 042/crash2.tracy (0.4.2) {1425 KB}  41.80% size change
041/darkrl.tracy (0.4.1) {31818 KB} -> 042/darkrl.tracy (0.4.2) {15897 KB}  49.96% size change
041/darkrl2.tracy (0.4.1) {18778 KB} -> 042/darkrl2.tracy (0.4.2) {8002 KB}  42.62% size change
041/darkrl-old.tracy (0.4.1) {151346 KB} -> 042/darkrl-old.tracy (0.4.2) {67945 KB}  44.89% size change
041/deadlock.tracy (0.4.1) {53 KB} -> 042/deadlock.tracy (0.4.2) {52 KB}  98.55% size change
041/gn-opengl.tracy (0.4.1) {45860 KB} -> 042/gn-opengl.tracy (0.4.2) {30983 KB}  67.56% size change
041/gn-vulkan.tracy (0.4.1) {45618 KB} -> 042/gn-vulkan.tracy (0.4.2) {31349 KB}  68.72% size change
041/long.tracy (0.4.1) {1583550 KB} -> 042/long.tracy (0.4.2) {1225316 KB}  77.38% size change
041/mem.tracy (0.4.1) {1243058 KB} -> 042/mem.tracy (0.4.2) {1369291 KB}  110.15% size change
041/multi.tracy (0.4.1) {14519 KB} -> 042/multi.tracy (0.4.2) {8110 KB}  55.86% size change
041/new.tracy (0.4.1) {1439 KB} -> 042/new.tracy (0.4.2) {1108 KB}  77.01% size change
041/q3bsp-mt.tracy (0.4.1) {1414323 KB} -> 042/q3bsp-mt.tracy (0.4.2) {949855 KB}  67.16% size change
041/q3bsp-st.tracy (0.4.1) {301334 KB} -> 042/q3bsp-st.tracy (0.4.2) {240347 KB}  79.76% size change
041/selfprofile.tracy (0.4.1) {399648 KB} -> 042/selfprofile.tracy (0.4.2) {197713 KB}  49.47% size change
041/tbrowser.tracy (0.4.1) {13052 KB} -> 042/tbrowser.tracy (0.4.2) {9503 KB}  72.81% size change
041/test.tracy (0.4.1) {60309 KB} -> 042/test.tracy (0.4.2) {40700 KB}  67.49% size change
041/virtualfile_hc.tracy (0.4.1) {108967 KB} -> 042/virtualfile_hc.tracy (0.4.2) {72839 KB}  66.85% size change
041/zfile_hc.tracy (0.4.1) {58814 KB} -> 042/zfile_hc.tracy (0.4.2) {39608 KB}  67.35% size change
2018-12-30 23:42:17 +01:00
Bartosz Taudul
ea396354d0 ^F opens find zone menu and focuses on the input box. 2018-12-22 17:39:22 +01:00
Bartosz Taudul
2d143ce516 Add support for handling keyboard shortcuts. 2018-12-22 17:36:20 +01:00
Bartosz Taudul
4bb4a568ca Move initialization of View values to header. 2018-12-22 17:22:26 +01:00
Bartosz Taudul
cd8d86edf3 Allow hiding "[unknown frames]" entries. 2018-12-21 21:10:29 +01:00
Bartosz Taudul
8c5670489c Freeing nullptr is valid. 2018-12-20 17:03:09 +01:00
Bartosz Taudul
407fb61a30 Display maximum number of waiting threads for a lock. 2018-12-19 18:34:53 +01:00
Bartosz Taudul
0f2b61cf24 Display wait and hold times of locks. 2018-12-19 18:28:48 +01:00
Bartosz Taudul
df1a125fc0 Mirror find zone menu changes in compare menu. 2018-12-18 16:56:19 +01:00
Bartosz Taudul
a220f38fbd Add support for matching source locations ignoring case. 2018-12-18 16:52:29 +01:00
Bartosz Taudul
acddcbd9bf Add case-ignoring string matcher. 2018-12-18 16:52:05 +01:00
Bartosz Taudul
24235406a0 Enter key in find zone menu acts the same as pressing "find". 2018-12-18 16:40:23 +01:00
Bartosz Taudul
7fc03736f2 Add "ignore case" toggle to find zone menu. 2018-12-18 16:38:55 +01:00
Bartosz Taudul
a740074da6 Color tweaks. 2018-12-18 16:30:13 +01:00
Bartosz Taudul
b60d5b892a Unify coloring of highlighted buttons. 2018-12-18 16:30:13 +01:00
Bartosz Taudul
c2485fbcb0 Add visual notification of an active toggle. 2018-12-18 16:30:13 +01:00
Bartosz Taudul
9e18db01c9 Menu bar buttons are now toggles. 2018-12-18 16:30:13 +01:00
Bartosz Taudul
79eb6a5836 Right click on lock in options to open info window. 2018-12-16 21:14:15 +01:00
Bartosz Taudul
9a7689c65d Display lock announce, terminate and life time. 2018-12-16 21:09:37 +01:00
Bartosz Taudul
7376ec65b0 Store lock announce and terminate time in trace dump. 2018-12-16 21:09:37 +01:00
Bartosz Taudul
9360df89b1 Store announce and terminate time of locks. 2018-12-16 21:07:26 +01:00
Bartosz Taudul
f42d52923a No-op processing of lock terminate events. 2018-12-16 20:46:33 +01:00
Bartosz Taudul
91171a6674 Draw zig-zag pattern over collapsed locks. 2018-12-16 20:20:27 +01:00
Bartosz Taudul
abad5574f3 Middle click on lock event to zoom to it. 2018-12-16 20:04:45 +01:00
Bartosz Taudul
8f6f54e412 Clicking on a lock event also opens lock info window. 2018-12-16 20:01:40 +01:00
Bartosz Taudul
444d5e20f0 Add basic lock info window. 2018-12-16 19:58:11 +01:00
Bartosz Taudul
ff8c9ab6dc Properly terminate source file data. 2018-12-16 19:48:34 +01:00
Bartosz Taudul
1235a5aa0a Allow discarding active trace. 2018-11-25 19:31:26 +01:00
Bartosz Taudul
fec0017bb6 Add third state (stopped) to the pause/resume button. 2018-11-25 19:15:16 +01:00
Bartosz Taudul
63f0dd72a5 Allow cancelling pending connection. 2018-10-23 19:49:57 +02:00
Bartosz Taudul
54baec9e7e Fix drawing last collapsed non-contiguous frame. 2018-10-21 17:46:24 +02:00
Bartosz Taudul
556b3e8efe Add "go to frame" functionality. 2018-10-21 17:36:27 +02:00
Bartosz Taudul
793e955480 Fix crash when loading a trace with unresolved strings.
Unresolved strings ("???") are not saved, but the internal string
pointers are saved. Resolving such string pointers caused a crash.
2018-10-21 16:38:20 +02:00
Bartosz Taudul
9342ba0e71 Don't track last frames in offline mode. 2018-10-21 16:03:21 +02:00
Bartosz Taudul
5280d6586b Switching active frame set by clicking on a frame. 2018-10-21 15:46:02 +02:00
Bartosz Taudul
5f92b08b0d Bump version to 0.4.0. 2018-10-09 19:29:06 +02:00
Bartosz Taudul
05c9325018 Highlight zones selected in the find zone menu. 2018-10-09 15:54:28 +02:00
Bartosz Taudul
4ca4c85976 Fix an edge case in zone drawing.
If the last zone on a track was not ended, and in the view's past
(beyond the left edge of the view) it was still included in calculation
of track height.
2018-10-06 12:58:38 +02:00
Bartosz Taudul
75ab9147d0 Reduce amount of information in "menu" bar.
Zone count, queue delay and timer resolution were moved to the trace
information window.

Time span and View span are now displayed as icons.
2018-10-05 23:02:23 +02:00
Bartosz Taudul
9e94dcd320 Fix zoom-to-allocation not working on selected allocations. 2018-10-05 21:13:31 +02:00
Bartosz Taudul
1a8b184d10 Mute inactive frame sets. 2018-10-05 21:10:37 +02:00
Bartosz Taudul
286a6cfe0a Move check out of loop. 2018-10-05 21:03:04 +02:00
Bartosz Taudul
0d8b79f6c9 Don't miss frame separators. 2018-10-05 20:59:00 +02:00
Bartosz Taudul
81cf024498 Highlight message marker even if it's collapsed. 2018-10-05 20:40:10 +02:00
Bartosz Taudul
b7d2a690d9 Zoom to allocation range when middle clicking on address. 2018-09-28 11:43:45 +02:00
Bartosz Taudul
4960e691d4 Added ability to zoom to allocation range in allocation window. 2018-09-28 11:40:22 +02:00
Bartosz Taudul
428b7da1cc The underlying vector might be reallocated. 2018-09-27 23:19:20 +02:00
Bartosz Taudul
6cfd53b274 Add allocations list window. 2018-09-27 23:19:20 +02:00
Bartosz Taudul
01e0bbb5f9 Build list of allocations in a given call stack tree entry. 2018-09-27 23:19:20 +02:00
Bartosz Taudul
9301986bae Collect callstacks for each entry in call stack tree. 2018-09-27 22:56:44 +02:00
Bartosz Taudul
44fae53583 Display lock source location in tooltip. 2018-09-18 16:29:02 +02:00
Bartosz Taudul
06eec51ed9 Display locks source locations in options locks list. 2018-09-18 16:14:32 +02:00
Bartosz Taudul
5ddfda9170 Initialize capacity in vector, as it's checked by asserts. 2018-09-10 11:28:12 +02:00
Bartosz Taudul
9211ce42da Non-on-demand client is only able to handle one connection. 2018-09-09 19:42:06 +02:00
Bartosz Taudul
984a711666 Send protocol version to verify handshake. 2018-09-09 19:28:53 +02:00
Bartosz Taudul
270072b09e Require shibboleth match at start of connection. 2018-09-09 18:26:53 +02:00
Bartosz Taudul
806c8de463 Only one outgoing server connection is supported. 2018-09-09 17:47:20 +02:00
Bartosz Taudul
4471329661 Display time savings in the compare traces menu. 2018-09-08 20:23:49 +02:00
Bartosz Taudul
19f3c5f5ff Ignore frames with 0 time. 2018-09-08 19:04:38 +02:00
Bartosz Taudul
2c43e1337f Fast log10 is no longer needed. 2018-09-08 19:01:51 +02:00
Bartosz Taudul
2f9d0aa9eb Use improved algorithm in compare trace histogram. 2018-09-03 21:26:50 +02:00
Bartosz Taudul
384a42cc47 Display average and median times in compare traces. 2018-09-03 20:45:51 +02:00
Bartosz Taudul
29d649216e In compare traces put both total times in the same line. 2018-09-03 20:39:34 +02:00
Bartosz Taudul
9fb26b3622 If there's no group selected, dim group selection legend. 2018-09-03 20:36:40 +02:00
Bartosz Taudul
fc40c7bbf6 Calculate compare traces average, median. 2018-09-03 20:34:07 +02:00
Bartosz Taudul
b485aad2a3 Cosmetics. 2018-09-03 20:34:00 +02:00
Bartosz Taudul
e8b4f71f4a Properly initialize sortedNum in find zone. 2018-09-03 20:21:28 +02:00
Bartosz Taudul
a02121d78a Allow disabling average, median markers on frame set histogram. 2018-09-02 13:37:36 +02:00
Bartosz Taudul
0b0fa919d3 Find zone groups are now by default sorted by count. 2018-09-02 13:34:00 +02:00
Bartosz Taudul
fb013c0df5 Properly reset state when switching matched source locations. 2018-09-02 13:25:17 +02:00
Bartosz Taudul
08729c2b42 Allow disabling average and median time markers. 2018-09-02 13:06:09 +02:00
Bartosz Taudul
1bff8a7997 Draw group average and median times on histogram. 2018-09-02 13:00:21 +02:00
Bartosz Taudul
c3c48117d4 Display group average and median times. 2018-09-02 13:00:21 +02:00
Bartosz Taudul
2d3ce1bf25 Calculate group average and median times. 2018-09-02 13:00:21 +02:00
Bartosz Taudul
5733b420a1 Use the same algorithm for selection group binning. 2018-09-02 03:46:16 +02:00
Bartosz Taudul
c1630936d4 Use the improved method in find zone histogram. 2018-09-02 02:58:15 +02:00
Bartosz Taudul
854210a7e3 Fix find zone histogram selection start/end. 2018-09-02 02:09:29 +02:00
Bartosz Taudul
8152e213f8 Collapse separate find zone histogram paths into one. 2018-09-02 01:31:09 +02:00
Bartosz Taudul
f43b875b83 Display average and median zone time in find zone histogram. 2018-09-02 00:28:57 +02:00
Bartosz Taudul
f66ed00d71 Calculate sorted zone times for find zone histogram. 2018-09-02 00:19:15 +02:00
Bartosz Taudul
e81218ddaf Radically improve frame set histogram performance.
This change exploits the fact that frame set data is sorted, and the
histogram bins can be calculated as distances in the frame-time vectors.
2018-09-01 14:50:38 +02:00
Bartosz Taudul
1bef4b45b7 Display continuous/discontinuous info about frame sets. 2018-09-01 14:04:23 +02:00
Bartosz Taudul
213b33a4fa No need to check for zero value in a sorted set. 2018-09-01 13:55:25 +02:00
Bartosz Taudul
0c086e3a30 In-place merge new frames instead of re-sorting the whole set. 2018-09-01 13:34:02 +02:00
Bartosz Taudul
9f4d6692dc Proper way to get full frame count. 2018-09-01 12:38:12 +02:00
Bartosz Taudul
faea036c16 Ignore last, probably unfinished frame. 2018-09-01 02:07:52 +02:00
Bartosz Taudul
c8a0bfd9be Merge average and median lines, if they overlap. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
8211eb1371 Display FPS ranges. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
0825c40938 Display average and median frame times. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
8df82278a5 Display frame set time as a percentage of profile time. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
98b5363ebc Add frame set histogram. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
9b8a0a8364 Display total frame set time. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
27a2d8595d Time is int64_t. 2018-09-01 01:48:00 +02:00
Bartosz Taudul
cb47ac6165 Actually mark the data as used. 2018-09-01 01:01:41 +02:00
Bartosz Taudul
907da3265d Fix string handling. 2018-08-31 20:08:04 +02:00
Bartosz Taudul
9da3364c77 Display non-rounded FPS in a tooltip. 2018-08-31 18:58:39 +02:00
Bartosz Taudul
230ee71368 Do not recalculate frame stats, if frame data didn't change. 2018-08-31 18:51:00 +02:00
Bartosz Taudul
4ee8e7c372 Also display frames per second for average and median frame times. 2018-08-31 18:43:25 +02:00
Bartosz Taudul
0d6d296e94 Display average and median frame times. 2018-08-31 15:32:30 +02:00
Bartosz Taudul
d977fa004d Enable keyboard navigation. 2018-08-30 02:08:08 +02:00
Bartosz Taudul
0f5ee69668 Add missing include. 2018-08-29 23:25:42 +02:00
Bartosz Taudul
204cc019ea Add file storage helpers. 2018-08-29 23:22:44 +02:00
Bartosz Taudul
81655816f0 Display captured program name and capture time. 2018-08-29 01:02:29 +02:00
Bartosz Taudul
8f1acf2571 Store explicit program name and capture time. 2018-08-29 01:02:29 +02:00
Bartosz Taudul
bc6a553a3a Fetch thread names in memory events. 2018-08-28 01:48:19 +02:00
Bartosz Taudul
a5b99b54c8 Allow specifying FileWrite compression level.
Note that extreme compression level is not exposed in the update
utility.

% time update.exe long.tracy out.tracy
long.tracy (0.3.201) -> out.tracy (0.3.204)
update.exe long.tracy   0,00s user 0,00s system 0% cpu 13,464 total
% time update.exe --hc long.tracy outhc.tracy
long.tracy (0.3.201) -> outhc.tracy (0.3.204)
update.exe --hc long.trac  0,00s user 0,00s system 0% cpu 3:46,23 total
% ls -l long.tracy out*
-rw-r--r-- 1 wolf Brak 1621546031 07-30 22:51 long.tracy
-rw-r--r-- 1 wolf Brak 1621579467 08-26 16:44 out.tracy
-rw-r--r-- 1 wolf Brak 1397610127 08-26 16:48 outhc.tracy
2018-08-26 16:49:27 +02:00
Bartosz Taudul
b3b12f76f3 Add LZ4HC support to FileWrite. 2018-08-26 16:25:43 +02:00
Bartosz Taudul
d835d4da2a Remove display of found allocations count. 2018-08-25 15:07:23 +02:00
Bartosz Taudul
256d905ed5 Hide memory address search in "allocations" section. 2018-08-25 15:05:22 +02:00
Bartosz Taudul
6ad184447a Call stack window may now display frame addresses. 2018-08-21 17:55:59 +02:00
Bartosz Taudul
def6c674b2 Add crash notification to thread tooltip. 2018-08-20 14:37:14 +02:00
Bartosz Taudul
ebcdebaa69 Display crash marker on timeline. 2018-08-20 03:00:45 +02:00
Bartosz Taudul
5fa4cf6e5d Display crash information on visible threads lists. 2018-08-20 02:41:11 +02:00
Bartosz Taudul
b1227cf9fd Display crashed thread in red color. 2018-08-20 02:36:58 +02:00
Bartosz Taudul
99b7a39c52 Save/load crash information. 2018-08-20 02:27:24 +02:00
Bartosz Taudul
619fba41ab Display crash information in info window. 2018-08-20 02:23:55 +02:00
Bartosz Taudul
2a696418cd Cosmetics. 2018-08-20 02:23:55 +02:00
Bartosz Taudul
3b526b074e Send crash report. 2018-08-20 02:23:55 +02:00
Bartosz Taudul
366ea35593 Allow crash event reporting.
When crash happens there's no longer anything to profile -- don't wait
for unfinished zones to finish before sending client terminate
confirmation.
2018-08-20 01:03:16 +02:00
Bartosz Taudul
e0a4b9c56a Save/load host info. 2018-08-19 18:28:48 +02:00
Bartosz Taudul
71bfd15d9e Display host info. 2018-08-19 18:24:43 +02:00
Bartosz Taudul
203d9b4b85 Store host info. 2018-08-19 18:21:56 +02:00
Bartosz Taudul
6224daf9c9 Greatly simplify call stack tree calculation.
Instead of caching paths, compute accumulated cost of each path and only
then create the tree, going through each path just once.
2018-08-19 16:34:26 +02:00
Bartosz Taudul
e1821e439a Add icons to error pop-ups. 2018-08-19 02:59:12 +02:00
Bartosz Taudul
cb51fdec20 Fix multiple file name retrievals in a row. 2018-08-18 20:38:14 +02:00
Bartosz Taudul
42636cfe89 Allow viewing source files from within find zone menu. 2018-08-18 20:35:25 +02:00
Bartosz Taudul
2445cc72bc Add icons to memory menu. 2018-08-18 20:10:14 +02:00
Bartosz Taudul
235da1eded Use focused text for source locations count. 2018-08-18 20:01:57 +02:00
Bartosz Taudul
4060a59b4f Call stack tree nodes that have no siblings are expanded by default. 2018-08-18 20:00:24 +02:00
Bartosz Taudul
a4df805746 Allow filtering messages by thread. 2018-08-18 19:57:36 +02:00
Bartosz Taudul
59293b1850 Enable support for restrict time in call stack tree. 2018-08-18 19:44:29 +02:00
Bartosz Taudul
1410ba6f01 Increase readability. 2018-08-18 19:34:17 +02:00
Bartosz Taudul
79c437ba7f Let's not search in a map. 2018-08-18 19:29:04 +02:00
Bartosz Taudul
bd96c2ce51 Cache call stack tree paths. 2018-08-18 19:13:46 +02:00
Bartosz Taudul
7f0fb851b4 Force inline GetFrameTreeItem(). 2018-08-18 18:46:16 +02:00
Bartosz Taudul
7ef6944246 Remove compare menu visual aids if extended font is not available. 2018-08-18 16:32:26 +02:00
Bartosz Taudul
410616f7f8 Allow viewing source from zone trace. 2018-08-18 14:26:10 +02:00
Bartosz Taudul
fb876344e3 No need for indentVal outside of scope. 2018-08-18 14:14:33 +02:00
Bartosz Taudul
b9e83871a8 Add visual aids to compare menu. 2018-08-18 14:02:20 +02:00
Bartosz Taudul
2852784f55 Separate global and level indices for call stack tree. 2018-08-18 02:23:55 +02:00
Bartosz Taudul
0757930521 Only display "go to parent" if there is a parent. 2018-08-18 02:12:34 +02:00
Bartosz Taudul
69dd0b72c1 Just accept const char ptr in ImGuiColorTextEdit. 2018-08-18 01:16:15 +02:00
Bartosz Taudul
2c7d457755 Highlight source buttons, if source file is displayed. 2018-08-18 00:28:36 +02:00
Bartosz Taudul
e8da52324d Add memory icon to memory usage plot name. 2018-08-18 00:24:23 +02:00
Bartosz Taudul
07952f0a1f Add icons to options menu. 2018-08-18 00:21:01 +02:00
Bartosz Taudul
8db30a9016 Add icon to statistics menu. 2018-08-18 00:09:23 +02:00
Bartosz Taudul
816c91922e Add icons to memory menu. 2018-08-17 23:58:52 +02:00
Bartosz Taudul
441a5e257c Add wifi icon to "waiting for connection" window. 2018-08-17 23:56:06 +02:00
Bartosz Taudul
b613a60c88 Add icons to compare menu. 2018-08-17 23:54:40 +02:00
Bartosz Taudul
4c228fe862 Add icons to find zone menu. 2018-08-17 23:52:03 +02:00
Bartosz Taudul
350fb6a5b0 Add icons to zone info window buttons. 2018-08-17 23:47:01 +02:00
Bartosz Taudul
cdee1d4ce4 Remove obsolete frame rounding setting. 2018-08-17 23:27:14 +02:00
Bartosz Taudul
0aebf614db Add icons to pause/resume button. 2018-08-17 23:24:25 +02:00
Bartosz Taudul
940dda8fc1 Use helper header for icons. 2018-08-17 23:22:13 +02:00
Bartosz Taudul
e1e0e6e140 Centered text helper. 2018-08-17 23:07:58 +02:00
Bartosz Taudul
4c393a2b8d Allow opening source files from withing call stack tree. 2018-08-17 22:51:26 +02:00
Bartosz Taudul
4e23ce9a24 Shared index for all call stack tree nodes. 2018-08-17 22:31:55 +02:00
Bartosz Taudul
07d2aaa1ad Play a little animation when source file cannot be opened. 2018-08-17 22:23:16 +02:00
Bartosz Taudul
841f18885e Add simple animation controller. 2018-08-17 22:23:04 +02:00
Bartosz Taudul
12f2080387 Right click on call stack file name to view source. 2018-08-17 22:06:59 +02:00
Bartosz Taudul
5752156695 Use "call stack" instead of "callstack". 2018-08-17 22:00:35 +02:00
Bartosz Taudul
0de3e088d9 Use icons in main profiler window buttons. 2018-08-17 19:03:35 +02:00
Bartosz Taudul
92284b65e7 Use save file icon. 2018-08-17 18:36:06 +02:00
Bartosz Taudul
9b1af05472 Use power off icon. 2018-08-17 18:33:56 +02:00
Bartosz Taudul
5125c2487b Use exclamation icon instead of ascii representation. 2018-08-17 17:57:13 +02:00
Bartosz Taudul
2b3490e6f7 Handle window title setter callback in View. 2018-08-17 17:24:18 +02:00
Bartosz Taudul
b7ac41ab1b Make the warning signs stand out more. 2018-08-17 17:08:16 +02:00
Bartosz Taudul
b76707ffa1 Render main profiler view in whole window. 2018-08-17 17:00:56 +02:00
Bartosz Taudul
df7db3bd2b Notify profiler about root window size. 2018-08-17 16:54:56 +02:00
Bartosz Taudul
9416f5bb49 Add close button to loaded traces (not the window close one). 2018-08-17 16:34:58 +02:00
Bartosz Taudul
facae0b9e1 Draw text editor with potential source code. 2018-08-17 15:33:12 +02:00
Bartosz Taudul
d45efbe640 Don't reload source file, if it's already there. 2018-08-17 15:24:52 +02:00
Bartosz Taudul
5dc3d73ad6 Set cursor on proper line. 2018-08-17 15:21:37 +02:00
Bartosz Taudul
5cd61c4b07 Text editor needs fixed-width font. 2018-08-17 15:18:09 +02:00
Bartosz Taudul
5bd35eb34e Open file preview in text editor. 2018-08-17 14:54:28 +02:00
Bartosz Taudul
9dbc56beb6 Initialize text editor. 2018-08-17 14:44:41 +02:00
Bartosz Taudul
6bf7b85260 Add file existence check. 2018-08-17 13:35:33 +02:00
Bartosz Taudul
27b2851291 Declare Vector moves as noexcept. 2018-08-17 13:10:27 +02:00
Bartosz Taudul
8cbb518f28 Display average allocation sizes. 2018-08-14 18:48:29 +02:00
Bartosz Taudul
df14cf5330 Implement callstack tree of memory allocations. 2018-08-14 18:37:06 +02:00
Bartosz Taudul
c2c0f887aa Display srcloc, callstack counts. 2018-08-14 16:41:27 +02:00
Bartosz Taudul
a15a287a6b Don't over-allocate vectors, when exact needed size is known.
This reduces memory usage when loading saved traces. Memory usage
reduction observed on a selected number of traces:

5625.76 MB -> 5330.29 MB
3292.94 MB -> 2978.66 MB
632.77 MB  -> 479.58 MB
681.32 MB  -> 506.27 MB
11.9 GB    -> 11.22 GB
854.21 MB  -> 806.17 MB
10.57 GB   -> 7175.31 MB
67.38 MB   -> 66.63 MB
2026.12 MB -> 1744.2 MB
86.55 MB   -> 85.57 MB
343.64 MB  -> 244.81 MB
201.93 MB  -> 162.25 MB
2018-08-09 19:41:15 +02:00
Bartosz Taudul
a14a6fa8fb Don't shadow variables. 2018-08-09 19:41:15 +02:00
Bartosz Taudul
dbf4de0694 Allow exact size allocations in Vector. 2018-08-09 19:41:15 +02:00
Bartosz Taudul
68dd90cb94 Also display exact memory allocation size. 2018-08-09 02:27:55 +02:00
Bartosz Taudul
92c1685528 Fix shortening of negative memory values. 2018-08-09 02:25:47 +02:00
Bartosz Taudul
96ecf47ecf Add profiler FPS and memory usage to info window. 2018-08-08 20:53:01 +02:00
Bartosz Taudul
4a9cbafc7e Proper formatting of memory sizes. 2018-08-08 20:38:58 +02:00
Bartosz Taudul
7d465aab1d Add memory size formatting. 2018-08-08 20:38:58 +02:00
Bartosz Taudul
29c6498890 Add minimal trace info window. 2018-08-08 19:25:13 +02:00
Bartosz Taudul
a51da71fa4 Add lock, plot counts to worker. 2018-08-08 19:21:53 +02:00
Bartosz Taudul
237bb06dd6 Move frame set selection button to the right. 2018-08-08 18:40:31 +02:00
Bartosz Taudul
3e622cda6b Decapitalize "zone" in "Find Zone". 2018-08-08 18:40:20 +02:00
Bartosz Taudul
2a08687afe Left click on message marker displays it on the msg list. 2018-08-05 16:57:21 +02:00
Bartosz Taudul
1d6f388a81 Middle-click on message marker to center on it. 2018-08-05 16:47:49 +02:00
Bartosz Taudul
1d0203ac17 Abstracted away one-frame-decay values. 2018-08-05 16:45:34 +02:00
Bartosz Taudul
44e027ad11 Highlight message markers on timeline. 2018-08-05 16:37:51 +02:00
Bartosz Taudul
eb7064f13d Display frame set tooltip. 2018-08-05 13:33:18 +02:00
Bartosz Taudul
44fecc4390 Improve rendering of small discontinuous frames. 2018-08-05 13:29:44 +02:00
Bartosz Taudul
d36b0aff45 Fix progress of loading GPU zones. 2018-08-05 13:07:58 +02:00
Bartosz Taudul
d590fa7ce2 Display that frames are discontinuous in options. 2018-08-05 02:30:41 +02:00
Bartosz Taudul
cb9f243987 Fix navigation in discontinuous frames. 2018-08-05 02:27:59 +02:00
Bartosz Taudul
947f829797 Fix drawing discontinuous frames. 2018-08-05 02:23:26 +02:00
Bartosz Taudul
9d051cf5ee Add support for discontinuous frames. 2018-08-05 02:15:54 +02:00
Bartosz Taudul
cbb45160af Disable zoom anim on user interaction. 2018-08-05 01:23:00 +02:00
Bartosz Taudul
1b44b31eff Prevent range-zoom when range has zero length. 2018-08-05 01:20:26 +02:00
Bartosz Taudul
2acea5da3c Also draw zig-zag on too-small zones. 2018-08-04 23:32:53 +02:00
Bartosz Taudul
3869c1dbca Count frames from 1, not 0. 2018-08-04 23:21:58 +02:00
Bartosz Taudul
6b8a3b25ba Fix drawing of last frame. 2018-08-04 23:19:35 +02:00
Bartosz Taudul
9cd6932b13 Draw zig-zag in place of invisible (too small) frames. 2018-08-04 23:11:47 +02:00
Bartosz Taudul
f385e5520b Draw frame separators only if the frame set is selected. 2018-08-04 21:51:46 +02:00
Bartosz Taudul
1282aa9739 Darken frame set counter, if it is disabled. 2018-08-04 21:48:40 +02:00
Bartosz Taudul
37f42a52fb Proper frame names on frames graph. 2018-08-04 21:46:26 +02:00
Bartosz Taudul
acabdf3c2a Implement switching between frame sets. 2018-08-04 21:43:29 +02:00
Bartosz Taudul
88d9307d7a Allow disabling frame sets. 2018-08-04 21:26:01 +02:00
Bartosz Taudul
1ea1cd57b3 Use proper frame names. 2018-08-04 21:19:24 +02:00
Bartosz Taudul
aad3e941e5 Draw multiple frame sets. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
83eac36949 Add FrameData vector accessor. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
9b4348b497 Handle frame name queries. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
4424a7d7e8 Last time should never be zero. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
5e9b2e36be Make getting start of time less cryptic. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
23dfc2e3fc Multiple frame sets support. 2018-08-04 21:10:45 +02:00
Bartosz Taudul
0b4c2724ce Add strings to map directly in StringDiscovery. 2018-08-04 17:10:45 +02:00
Bartosz Taudul
ada9f78678 Use StringDiscovery for plots. 2018-08-04 16:33:03 +02:00
Bartosz Taudul
d2c866377e Extract unique string discovery from worker.
This class is responsible for handling data sets that should be grouped
together, but which may come with different name pointers.

It is a generalization of the plot merging functionality.
2018-08-04 16:25:11 +02:00
Bartosz Taudul
e174e2c12a Remove obsolete comment.
Nothing happens with the source data, as the strings are uniquely stored
in the StoreString() function.
2018-08-04 15:46:10 +02:00
Bartosz Taudul
6ef2d2d9a3 Track progress of loading plots. 2018-08-04 15:17:37 +02:00
Bartosz Taudul
8de214b4d5 Display number of events for items in options menu. 2018-08-04 15:09:52 +02:00
Bartosz Taudul
ea588072f2 Stop connection window from jumping around. 2018-08-04 14:50:31 +02:00
Bartosz Taudul
672925ac04 Add separators to frame numbers. 2018-07-29 21:56:30 +02:00
Bartosz Taudul
0d76ccfb71 Add days to time-to-string converter. 2018-07-29 21:14:56 +02:00
Bartosz Taudul
d04126eabe Make time-to-string more readable. 2018-07-29 21:09:11 +02:00
Bartosz Taudul
2eddbeb164 Use ctrl key to zoom-out using selection range. 2018-07-29 20:53:29 +02:00
Bartosz Taudul
1cf168c95e Fix impossible zoom animation. 2018-07-29 20:53:29 +02:00
Bartosz Taudul
310203101f Stop zoom-range-selection when zooming to range.
This also disables zoom range selection when middle click is used to
zoom view to a selected zone.
2018-07-29 20:53:29 +02:00
Bartosz Taudul
b4f4fcfde9 Add zoom-to-middle-mouse-button-selection-range. 2018-07-29 20:15:49 +02:00
Bartosz Taudul
18896044c4 Display explicit names of loaded things. 2018-07-29 16:56:46 +02:00
Bartosz Taudul
9f13475b52 Track trace version in worker. 2018-07-29 15:33:48 +02:00
Bartosz Taudul
13509c14f1 Save size of 'active' and 'frees' memory data structures. 2018-07-29 15:29:56 +02:00
Bartosz Taudul
00d07e39f7 Save threadExpand size to allow vector preallocation. 2018-07-29 15:19:44 +02:00
Bartosz Taudul
bff6eb4c34 Save source location zones counts.
This allows preallocation of zones-in-source-location vectors.
2018-07-29 14:58:01 +02:00
Bartosz Taudul
12b90d1630 Move tracy version to a separate header. 2018-07-29 14:20:44 +02:00
Bartosz Taudul
ccc5c37af5 Always count source location zones. 2018-07-29 14:16:13 +02:00
Bartosz Taudul
4456c8a454 Reserve space for string data. 2018-07-29 14:13:29 +02:00
Bartosz Taudul
766bf45a2b Fix initialization of atomics. 2018-07-28 20:13:06 +02:00
Bartosz Taudul
8ddf32bc6b Highlight zones with the same srcloc on hover. 2018-07-28 19:53:11 +02:00
Bartosz Taudul
648070e6a1 Include each loaded zone in sub progress. 2018-07-28 19:22:28 +02:00
Bartosz Taudul
4741dab833 Track sub progress. 2018-07-28 19:05:01 +02:00
Bartosz Taudul
a14238c199 Add sub progress display. 2018-07-28 18:56:52 +02:00
Bartosz Taudul
6a3a9c0bc5 Load second trace on a separate thread. 2018-07-28 18:47:33 +02:00
Bartosz Taudul
a46425f4e9 Adjust load stages. 2018-07-28 18:26:00 +02:00
Bartosz Taudul
0bf0ceed3d Track trace loading progress. 2018-07-28 17:59:17 +02:00
Bartosz Taudul
a54ff1f56d Use 'μ' instead of 'u' to indicate micro. 2018-07-28 01:06:36 +02:00
Bartosz Taudul
149812c071 Always keep main profiler window on bottom. 2018-07-26 23:38:45 +02:00
Bartosz Taudul
d84d0b7754 Don't try to read empty timelines. 2018-07-22 21:15:28 +02:00
Bartosz Taudul
25116a8059 Don't try to compress invalid thread. 2018-07-22 21:13:42 +02:00
Bartosz Taudul
010cf66e43 Call Vector destructors. 2018-07-22 21:01:45 +02:00
Bartosz Taudul
29159069ab Properly initialize child index. 2018-07-22 20:14:55 +02:00
Bartosz Taudul
7d7877517e Also remove child vectors from GPU events. 2018-07-22 19:47:01 +02:00
Bartosz Taudul
3a934b2ba3 Store children vectors in a separate data collection.
This reduces per-zone memory cost by 9 bytes if there are no children
and increases it by 4 bytes, if there are children. This is universally
a better solution, as the following data shows:

+++ /home/wolf/desktop/tracy-old/android.tracy +++
Vectors: 2794480
Size 0: 2373070 (84.92%)
Size 1: 70237 (2.51%)
Size 2+: 351173 (12.57%)
+++ /home/wolf/desktop/tracy-old/asset-new.tracy +++
Vectors: 1799227
Size 0: 1482691 (82.41%)
Size 1: 93272 (5.18%)
Size 2+: 223264 (12.41%)
+++ /home/wolf/desktop/tracy-old/asset-new-id.tracy +++
Vectors: 1977996
Size 0: 1640817 (82.95%)
Size 1: 97198 (4.91%)
Size 2+: 239981 (12.13%)
+++ /home/wolf/desktop/tracy-old/asset-old.tracy +++
Vectors: 1782395
Size 0: 1471437 (82.55%)
Size 1: 88813 (4.98%)
Size 2+: 222145 (12.46%)
+++ /home/wolf/desktop/tracy-old/big.tracy +++
Vectors: 180794047
Size 0: 172696094 (95.52%)
Size 1: 2799772 (1.55%)
Size 2+: 5298181 (2.93%)
+++ /home/wolf/desktop/tracy-old/darkrl.tracy +++
Vectors: 12014129
Size 0: 11611324 (96.65%)
Size 1: 134980 (1.12%)
Size 2+: 267825 (2.23%)
+++ /home/wolf/desktop/tracy-old/mem.tracy +++
Vectors: 383097
Size 0: 321932 (84.03%)
Size 1: 854 (0.22%)
Size 2+: 60311 (15.74%)
+++ /home/wolf/desktop/tracy-old/new.tracy +++
Vectors: 77536
Size 0: 63035 (81.30%)
Size 1: 8886 (11.46%)
Size 2+: 5615 (7.24%)
+++ /home/wolf/desktop/tracy-old/selfprofile.tracy +++
Vectors: 22940871
Size 0: 22704868 (98.97%)
Size 1: 73000 (0.32%)
Size 2+: 163003 (0.71%)
+++ /home/wolf/desktop/tracy-old/tbrowser.tracy +++
Vectors: 962682
Size 0: 695380 (72.23%)
Size 1: 43007 (4.47%)
Size 2+: 224295 (23.30%)
+++ /home/wolf/desktop/tracy-old/virtualfile_hc.tracy +++
Vectors: 529170
Size 0: 449386 (84.92%)
Size 1: 15694 (2.97%)
Size 2+: 64090 (12.11%)
+++ /home/wolf/desktop/tracy-old/zfile_hc.tracy +++
Vectors: 264849
Size 0: 220589 (83.29%)
Size 1: 9386 (3.54%)
Size 2+: 34874 (13.17%)
2018-07-22 16:05:50 +02:00
Bartosz Taudul
eb1475ebd4 Add single-value Vector constructor. 2018-07-22 16:01:58 +02:00
Bartosz Taudul
be40ee9dbc Fix crash when there's no callstack. 2018-07-22 00:13:23 +02:00
Bartosz Taudul
59c188a18d Invalid callstack is 0, not UINT64_MAX. 2018-07-22 00:13:11 +02:00
Bartosz Taudul
fbfc0e151d Replace combo lists with radio buttons. 2018-07-22 00:04:41 +02:00
Bartosz Taudul
d1cef20c0b Allow sorting groups by time. 2018-07-21 23:58:50 +02:00
Bartosz Taudul
59e0f3d490 Use precalculated zone group time. 2018-07-21 23:54:35 +02:00
Bartosz Taudul
cacbac8915 Calculate and display group times. 2018-07-21 23:53:11 +02:00
Bartosz Taudul
d03356c1f5 Rename "threads" to "groups" in find zone data structs. 2018-07-21 23:41:50 +02:00
Bartosz Taudul
36c207fb51 Fix some unused variables. 2018-07-21 21:35:35 +02:00
Bartosz Taudul
9291a88020 Zones can be now also grouped by call stack. 2018-07-21 20:26:13 +02:00
Bartosz Taudul
3c6baf53da Memory alloc range hover also works on allocation lists. 2018-07-19 15:55:15 +02:00
Bartosz Taudul
389e0facd3 Draw memory allocation range on mouse hover on mem event. 2018-07-19 15:43:45 +02:00
Bartosz Taudul
108ba20af8 Fix closing memory allocation info window. 2018-07-18 00:25:02 +02:00
Bartosz Taudul
e8726c72b1 Display memory allocation range on memory plot. 2018-07-18 00:21:16 +02:00
Bartosz Taudul
9ab09d9867 Only show "same zone" if zones are valid. 2018-07-17 23:32:29 +02:00
Bartosz Taudul
84d0f1a3ea Indicate inspected memory address on alloc list. 2018-07-17 23:17:46 +02:00
Bartosz Taudul
cf3bf4378b No need to return MemEvent ptr from DrawAddress(). 2018-07-17 23:13:56 +02:00
Bartosz Taudul
18a460e782 Clicking on mem address in alloc list displays info window. 2018-07-17 23:08:10 +02:00
Bartosz Taudul
0889334462 Add memory allocation info window. 2018-07-17 23:03:03 +02:00
Bartosz Taudul
6485a090ed Separate small callstack button setup. 2018-07-17 22:53:38 +02:00
Bartosz Taudul
fc310ce15a Fix check. 2018-07-17 18:29:07 +02:00
Rokas Kupstys
8a8faa3d6c Added __has_include(<execution>) back. 2018-07-17 19:25:26 +03:00
Rokas Kupstys
5c75fe292f Fix msvc builds when required c++ standard version is set to lower than c++17.
Also use latest available c++ standard which allows using older VS versions that only support c++14.
2018-07-17 18:29:48 +03:00
Rokas Kupstys
ab8d2c553a Merged in rokups/tracy/fix-unix-build (pull request #15)
Fix build errors with some compilers due to using std::max(float, double).
2018-07-17 14:21:20 +00:00
Rokas Kupstys
064385fc62 Define ImVec2 math operators only when IMGUI_DEFINE_MATH_OPERATORS is undefined. 2018-07-17 16:37:45 +03:00
Rokas Kupstys
abfa90012f Fix build errors with some compilers due to using std::max(float, double). 2018-07-17 16:36:41 +03:00
Bartosz Taudul
807d2a02bc Display collapsed zones counts with separators. 2018-07-16 01:24:43 +02:00
Bartosz Taudul
acf3bc7d43 Show only contended locks by default. 2018-07-15 20:29:35 +02:00
Bartosz Taudul
c6ea032de3 GPU source location may not yet be available. 2018-07-15 19:00:40 +02:00
Bartosz Taudul
21da3bca63 Don't create lz4buf on stack. 2018-07-14 16:02:33 +02:00
Bartosz Taudul
561d2dc360 Use the fastest mutex available.
The selection is based on the following test results:

MSVC:
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 11.641 ns/iter
     2 thread contention: 141.559 ns/iter
     3 thread contention: 242.733 ns/iter
     4 thread contention: 409.807 ns/iter
     5 thread contention: 561.544 ns/iter
     6 thread contention: 785.845 ns/iter
=> std::mutex
     No contention: 19.190 ns/iter
     2 thread contention: 39.305 ns/iter
     3 thread contention: 58.999 ns/iter
     4 thread contention: 59.532 ns/iter
     5 thread contention: 103.539 ns/iter
     6 thread contention: 110.314 ns/iter
=> std::shared_timed_mutex
     No contention: 45.487 ns/iter
     2 thread contention: 96.351 ns/iter
     3 thread contention: 142.871 ns/iter
     4 thread contention: 184.999 ns/iter
     5 thread contention: 336.608 ns/iter
     6 thread contention: 542.551 ns/iter
=> std::shared_mutex
     No contention: 10.861 ns/iter
     2 thread contention: 17.495 ns/iter
     3 thread contention: 31.126 ns/iter
     4 thread contention: 40.468 ns/iter
     5 thread contention: 15.677 ns/iter
     6 thread contention: 64.505 ns/iter

Cygwin (clang):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 11.536 ns/iter
     2 thread contention: 121.082 ns/iter
     3 thread contention: 396.430 ns/iter
     4 thread contention: 672.555 ns/iter
     5 thread contention: 1327.761 ns/iter
     6 thread contention: 14151.955 ns/iter
=> std::mutex
     No contention: 62.583 ns/iter
     2 thread contention: 3990.464 ns/iter
     3 thread contention: 7161.189 ns/iter
     4 thread contention: 9870.820 ns/iter
     5 thread contention: 12355.178 ns/iter
     6 thread contention: 14694.903 ns/iter
=> std::shared_timed_mutex
     No contention: 91.687 ns/iter
     2 thread contention: 1115.037 ns/iter
     3 thread contention: 4183.792 ns/iter
     4 thread contention: 15283.491 ns/iter
     5 thread contention: 27812.477 ns/iter
     6 thread contention: 35028.140 ns/iter
=> std::shared_mutex
     No contention: 91.764 ns/iter
     2 thread contention: 1051.826 ns/iter
     3 thread contention: 5574.720 ns/iter
     4 thread contention: 15721.416 ns/iter
     5 thread contention: 27721.487 ns/iter
     6 thread contention: 35420.404 ns/iter

Linux (x64):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 13.487 ns/iter
     2 thread contention: 210.317 ns/iter
     3 thread contention: 430.855 ns/iter
     4 thread contention: 510.533 ns/iter
     5 thread contention: 1003.609 ns/iter
     6 thread contention: 1787.683 ns/iter
=> std::mutex
     No contention: 12.403 ns/iter
     2 thread contention: 157.122 ns/iter
     3 thread contention: 186.791 ns/iter
     4 thread contention: 265.073 ns/iter
     5 thread contention: 283.778 ns/iter
     6 thread contention: 270.687 ns/iter
=> std::shared_timed_mutex
     No contention: 21.509 ns/iter
     2 thread contention: 150.179 ns/iter
     3 thread contention: 256.574 ns/iter
     4 thread contention: 415.351 ns/iter
     5 thread contention: 611.532 ns/iter
     6 thread contention: 944.695 ns/iter
=> std::shared_mutex
     No contention: 20.805 ns/iter
     2 thread contention: 157.034 ns/iter
     3 thread contention: 244.025 ns/iter
     4 thread contention: 406.269 ns/iter
     5 thread contention: 387.985 ns/iter
     6 thread contention: 468.550 ns/iter

Linux (arm64):
=== Lock test, 6 threads ===
=> NonRecursiveBenaphore
     No contention: 20.891 ns/iter
     2 thread contention: 211.037 ns/iter
     3 thread contention: 409.962 ns/iter
     4 thread contention: 657.441 ns/iter
     5 thread contention: 828.405 ns/iter
     6 thread contention: 1131.827 ns/iter
=> std::mutex
     No contention: 50.884 ns/iter
     2 thread contention: 103.620 ns/iter
     3 thread contention: 332.429 ns/iter
     4 thread contention: 620.802 ns/iter
     5 thread contention: 783.943 ns/iter
     6 thread contention: 834.002 ns/iter
=> std::shared_timed_mutex
     No contention: 64.948 ns/iter
     2 thread contention: 173.191 ns/iter
     3 thread contention: 490.352 ns/iter
     4 thread contention: 660.668 ns/iter
     5 thread contention: 1014.546 ns/iter
     6 thread contention: 1451.553 ns/iter
=> std::shared_mutex
     No contention: 64.521 ns/iter
     2 thread contention: 195.222 ns/iter
     3 thread contention: 490.819 ns/iter
     4 thread contention: 654.786 ns/iter
     5 thread contention: 955.759 ns/iter
     6 thread contention: 1282.544 ns/iter
2018-07-14 00:39:01 +02:00
Bartosz Taudul
a26ab263dd Select/unselect all plot visibility. 2018-07-14 00:10:38 +02:00
Bartosz Taudul
f4f7e58e88 Add select/unselect all threads visibility option. 2018-07-14 00:08:37 +02:00
Arvid Gerstmann
0b1c2ebc8f Define M_PI_2 if not already done 2018-07-13 23:41:12 +02:00
Bartosz Taudul
96042891f7 Reintroduce explicit template type for std::lock_guard.
Requested in issue #4 for support of older MSVC versions.
2018-07-13 12:30:29 +02:00
Bartosz Taudul
90a874f311 Require MSVC 15.7 for <execution> support. 2018-07-13 12:26:02 +02:00
Bartosz Taudul
c8b5b9447d Ignore dangling memory frees in on-demand mode. 2018-07-12 01:35:32 +02:00
Bartosz Taudul
e5064dec1e Store on-demand connection state. 2018-07-12 01:21:04 +02:00
Bartosz Taudul
d1ddaa8d59 Store frame offset in trace dumps. 2018-07-10 22:56:41 +02:00
Bartosz Taudul
fe449f366f Use frame offset for frame count and missed frames display. 2018-07-10 22:51:24 +02:00
Bartosz Taudul
a78981e040 Store on-demand frame offset. 2018-07-10 22:42:00 +02:00
Bartosz Taudul
6a9caabc63 Send on-demand initial payload message. 2018-07-10 22:37:39 +02:00
Bartosz Taudul
c056f3be41 Send keep alive messages to determine if client disconnected. 2018-07-10 21:39:17 +02:00
Bartosz Taudul
a5381337f6 Don't use obsolete function. 2018-07-10 20:49:29 +02:00
Bartosz Taudul
045f792e84 Keep one profiler window size for all captures. 2018-07-10 20:47:09 +02:00
Bartosz Taudul
c7952e4d4f Move "without profiling" to tooltip in zone info window. 2018-06-29 19:02:44 +02:00
Bartosz Taudul
4ae317109d Improve compare menu histogram tooltip. 2018-06-29 18:57:49 +02:00
Bartosz Taudul
b190a15ef6 Display numerical thread id in memory plot tooltip. 2018-06-29 18:54:19 +02:00
Bartosz Taudul
9329c761f6 Improve plot tooltips. 2018-06-29 18:52:28 +02:00
Bartosz Taudul
bcd2fc027d Improve lock tooltips. 2018-06-29 18:49:47 +02:00
Bartosz Taudul
a918d9a401 Improve compressed zones tooltips. 2018-06-29 18:47:33 +02:00
Bartosz Taudul
c8361205da Improve timeline tooltips. 2018-06-29 18:46:05 +02:00
Bartosz Taudul
8228f4131b Improve frame header tooltip. 2018-06-29 18:44:07 +02:00
Bartosz Taudul
c92d8cf7a3 Improve frame list tooltips. 2018-06-29 18:43:23 +02:00
Bartosz Taudul
201a40fb04 Improve readability of callstack tooltips. 2018-06-29 18:41:06 +02:00
Bartosz Taudul
400ee1c752 Improve readability of zone tooltips. 2018-06-29 18:39:20 +02:00
Bartosz Taudul
fbe0ad437e Remove "without profiling" entry from zone tooltip. 2018-06-29 18:36:58 +02:00
Bartosz Taudul
d01c14c2f3 Improve readability of compare menu. 2018-06-29 18:35:40 +02:00
Bartosz Taudul
91dd8f5d52 Improve readability of find zone menu. 2018-06-29 18:33:01 +02:00
Bartosz Taudul
8f4b09edc3 Improve zone info windows readability. 2018-06-29 18:27:34 +02:00
Bartosz Taudul
275a79e1c9 Display custom zone name in find zone results list. 2018-06-29 16:20:24 +02:00
Bartosz Taudul
ab18869ce6 Display custom zone name in zone tooltip. 2018-06-29 16:15:59 +02:00
Bartosz Taudul
09c38f17e6 Display custom zone name in zone info window. 2018-06-29 16:14:31 +02:00
Bartosz Taudul
cb100e261c Return custom zone names. 2018-06-29 16:12:40 +02:00
Bartosz Taudul
053284b1c7 Process custom free-form zone names. 2018-06-29 16:12:17 +02:00
Bartosz Taudul
865e8d8506 Extract zone name getting functionality. 2018-06-29 15:14:20 +02:00
Bartosz Taudul
2866cafda5 Adapt histogram height to font size. 2018-06-29 00:44:05 +02:00
Bartosz Taudul
f82e8aa98f Adapt plot height to font size. 2018-06-29 00:38:56 +02:00
Bartosz Taudul
cc196ff0a8 Adapt frames view to font size. 2018-06-29 00:35:44 +02:00
Bartosz Taudul
41e8648701 Adjust GPU zones to set time drift. 2018-06-28 01:12:25 +02:00
Bartosz Taudul
bab798c13c GPU context time drift storage. 2018-06-28 01:08:08 +02:00
Bartosz Taudul
0b9559c05b Retrieval of GPU context from GPU zone. 2018-06-28 01:07:21 +02:00
Bartosz Taudul
4a467b6d03 Remove GPU resync leftovers. 2018-06-28 00:48:23 +02:00
Bartosz Taudul
c3238a496d No need to check for frame function name match.
Firstly, the match is not necessarily possible (e.g. on Linux the source
location function names and callstack frame names are two completely
different things).

Secondly, the first current zone callstack frame (which is matched to
some callstack frame of previous zone) is the frame in which a zone was
captured, and it will already be present in the zone trace. The
callstack frame omission should be therefore unconditional.
2018-06-24 17:38:32 +02:00
Bartosz Taudul
d7a85983a5 Make callstack hash less shitty. 2018-06-24 17:30:54 +02:00
Bartosz Taudul
ab2945b988 Slab allocator is not thread safe. 2018-06-24 17:10:46 +02:00
Bartosz Taudul
77e139e900 Insert true call stack frames into zone trace. 2018-06-24 16:57:57 +02:00
Bartosz Taudul
b0aa13f4af Callstack getters are const. 2018-06-24 16:15:49 +02:00
Bartosz Taudul
fa62603c77 Move zone trace loop handler to a separate function. 2018-06-24 15:54:36 +02:00
Bartosz Taudul
858628918b Force inline AddCallstackPayload. 2018-06-24 15:28:09 +02:00
Bartosz Taudul
d78126e60f Improve callstack payload hashing speed. 2018-06-24 15:25:53 +02:00
Bartosz Taudul
17194cb591 Allow copying callstack frames name/file to clipboard. 2018-06-22 20:44:57 +02:00
Bartosz Taudul
b8f7a4daac Mention purple line indicating middle of timeline. 2018-06-22 20:34:08 +02:00
Bartosz Taudul
9c2aab733d Allow centering timeline on memory alloc/free time. 2018-06-22 20:32:38 +02:00
Bartosz Taudul
5f5fe7c6aa Add tip about centering timeline on message. 2018-06-22 20:23:56 +02:00
Bartosz Taudul
39eccd5b08 Extract "center view at time" function. 2018-06-22 20:21:02 +02:00
Bartosz Taudul
11cf650be6 Fix GPU queries ordering.
With multithreaded Vulkan rendering it is possible that GPU time queries
will be sent in a different order than the originating CPU queries were
made. This commit changes the in-order queue to a map of queries,
waiting to be resolved.
2018-06-22 16:37:54 +02:00
Bartosz Taudul
af0c64c888 Remove GPU resync support.
The whole concept is not really reliable. And it forces CPU to GPU sync,
which is bad.
2018-06-22 16:34:51 +02:00
Bartosz Taudul
cd5ca3e754 Don't use hash table to store 256 pointers. 2018-06-22 15:14:44 +02:00
Bartosz Taudul
55ddb64352 GPU context counter is now 8 bit. 2018-06-22 15:10:23 +02:00
Bartosz Taudul
d13fc2413f Highlight callstack button in zone info windows. 2018-06-22 02:24:36 +02:00
Bartosz Taudul
3a885bb8fd Support callstack collection for OpenGL GPU zones. 2018-06-22 02:13:35 +02:00
Bartosz Taudul
e5f673eaa0 Allow viewing callstack from gpu zone info window. 2018-06-22 01:58:25 +02:00
Bartosz Taudul
35dc2f796e Process GpuZoneBeginCallstack queue event. 2018-06-22 01:56:32 +02:00
Bartosz Taudul
4992ae6b39 Take callstack field in ZoneEvent into account in save/load. 2018-06-22 01:30:08 +02:00
Bartosz Taudul
e40c5068c9 Allow viewing callstack from zone info window. 2018-06-22 01:21:51 +02:00
Bartosz Taudul
5e01a8ead9 Process callstack queue event. 2018-06-22 01:15:49 +02:00
Bartosz Taudul
205a4e4ca2 Add callstack index to ZoneEvent. 2018-06-22 01:11:03 +02:00
Bartosz Taudul
978e168cbd Handle ZoneBeginCallstack queue event.
This is identical to ZoneBegin handling, but requires some additional
bookkeeping to account for the incoming callstack information.
2018-06-22 01:07:25 +02:00
Bartosz Taudul
3404d191f0 Fix non-unique child ids in memory window. 2018-06-22 00:10:00 +02:00
Bartosz Taudul
3f7ab10323 Don't show line number if it's 0. 2018-06-21 13:26:04 +02:00
Bartosz Taudul
973eab2b4a Fix typo. 2018-06-20 23:42:00 +02:00
Bartosz Taudul
2a618c90d5 Properly save compressed thread in GPU events. 2018-06-20 23:12:49 +02:00
Bartosz Taudul
cef972fe25 Remove parenthesis from callstack location. 2018-06-20 17:07:48 +02:00
Bartosz Taudul
7912807133 Wait for transfer of pending callback frames. 2018-06-20 14:57:48 +02:00
Bartosz Taudul
60395c85e0 Wait for pending callstacks. 2018-06-20 14:54:08 +02:00
Bartosz Taudul
e95ca3930d Make all allocation list alloc/free buttons clickable. 2018-06-20 14:50:07 +02:00
Bartosz Taudul
a9fa8f966b Fix "zone free" indentation in allocation list. 2018-06-20 14:44:24 +02:00
Bartosz Taudul
bc565e65d1 Better callstack info window layout. 2018-06-20 14:41:00 +02:00
Bartosz Taudul
0d509ea3a6 Add missing EndColumns() call. 2018-06-20 14:37:55 +02:00
Bartosz Taudul
be0a70a5c1 Highlight actively inspected callstack. 2018-06-20 13:49:23 +02:00
Bartosz Taudul
15ff98b64a Push detailed callstack to a separate window.
Only show function names (no source files or line numbers) in callstack
tooltip.
2018-06-20 13:23:08 +02:00
Bartosz Taudul
9a5329b97d Save and load callstack frames. 2018-06-20 01:59:25 +02:00
Bartosz Taudul
e56ee377f4 Fix off-by-one. 2018-06-20 01:54:27 +02:00
Bartosz Taudul
88b1955a5a Filename in callstack frame is not a persistent pointer. 2018-06-20 01:26:05 +02:00
Bartosz Taudul
56479b86fa Display frame details in callstack tooltip. 2018-06-20 01:19:10 +02:00
Bartosz Taudul
4000f27e15 Stack frame accessor. 2018-06-20 01:18:59 +02:00
Bartosz Taudul
0c0afa5ac7 Process callstack frames. 2018-06-20 01:07:09 +02:00
Bartosz Taudul
203744cdd9 Callstack frame queries. 2018-06-20 00:25:26 +02:00
Bartosz Taudul
4ba95145da Display raw callstack payload. 2018-06-19 22:19:33 +02:00
Bartosz Taudul
4eea85fdad Callstack payload accessor. 2018-06-19 22:19:20 +02:00
Bartosz Taudul
06f34052a5 Have to track callstacks of both alloc and free. 2018-06-19 22:08:47 +02:00
Bartosz Taudul
0de279005b Load saved callstack payload. 2018-06-19 22:05:15 +02:00
Bartosz Taudul
14b71e988b Properly skip memory event data. 2018-06-19 22:05:15 +02:00
Bartosz Taudul
4033d74479 Callstack payload index 0 is invalid. 2018-06-19 22:05:15 +02:00
Bartosz Taudul
b6e71dd909 Load memory event callstack index. 2018-06-19 21:51:06 +02:00
Bartosz Taudul
7c1333ce2f Save callstack payload. 2018-06-19 21:39:52 +02:00
Bartosz Taudul
2940230fcf Save callstack index in memory events. 2018-06-19 21:39:42 +02:00
Bartosz Taudul
e03493f082 Store callstack index as uint32_t. 2018-06-19 21:39:22 +02:00
Bartosz Taudul
77db91253b Assign callstack idx to memory event. 2018-06-19 21:34:36 +02:00
Bartosz Taudul
c28465aa7c Store unique callstack payloads. 2018-06-19 21:16:02 +02:00
Bartosz Taudul
87467a472c Add variable sized const array. 2018-06-19 21:16:02 +02:00
Bartosz Taudul
cbc9ede3ca No-op callstack payload handling. 2018-06-19 19:31:16 +02:00
Bartosz Taudul
6a63d09a49 Don't check for each type, if range check is possible. 2018-06-19 19:31:16 +02:00
Bartosz Taudul
e51eef3dcd Process memory events with callstack. 2018-06-19 18:52:45 +02:00
Bartosz Taudul
59dc55002b Callstack ptr in server data structures.
Will be probably reduced to 32-bit index later on.
2018-06-19 18:52:10 +02:00
Bartosz Taudul
021dd853b9 Differentiate Vulkan/OpenGL in options menu. 2018-06-18 01:08:56 +02:00
Bartosz Taudul
6e1ab9ae7a Display per-GPU-event threads. 2018-06-17 19:09:56 +02:00
Bartosz Taudul
bb0631585c Store thread id of GPU events. 2018-06-17 19:07:07 +02:00
Bartosz Taudul
cfd7ac3957 Map compressed thread id 0 to real thread id 0. 2018-06-17 19:03:06 +02:00
Bartosz Taudul
d5a4c693d8 Take GPU timestamp period into account. 2018-06-17 18:49:56 +02:00
Bartosz Taudul
f33584516b Fix yet another regression. 2018-06-17 18:37:38 +02:00
Bartosz Taudul
cc973a5091 Differentiate Vulkan and OpenGL contexts. 2018-06-17 18:33:05 +02:00
Bartosz Taudul
dcd6cac078 Save GPU timestamp period.
Bump file version to 0.3.2.
2018-06-17 18:27:42 +02:00
Bartosz Taudul
2be1d1d2b2 Use proper type. 2018-06-07 13:30:46 +02:00
Bartosz Taudul
6956aed769 Fix selecting last bin with log time in find zone. 2018-06-06 23:36:21 +02:00
Bartosz Taudul
b4ce0c281b Total time is also already known in compare view. 2018-06-06 23:17:13 +02:00
Bartosz Taudul
d49be792ba Cache bin containers in compare view. 2018-06-06 23:09:46 +02:00
Bartosz Taudul
da5d35c364 Cache bin containers in find zone. 2018-06-06 23:06:00 +02:00
Bartosz Taudul
2950f3c70c Total time is already known. 2018-06-06 23:00:18 +02:00
Bartosz Taudul
8a4d88f2b3 tmin and tmax don't change. 2018-06-06 23:00:03 +02:00
Bartosz Taudul
be8d3f47cd Use fast log10. 2018-06-06 01:59:31 +02:00
Bartosz Taudul
8696c81e7d Implement fast frexpf. 2018-06-06 01:59:31 +02:00
Bartosz Taudul
60b24249d3 Use explicit value for 1/log2(10). 2018-06-06 01:52:46 +02:00
Bartosz Taudul
39c1b20184 Don't care about previous values. 2018-06-06 01:23:49 +02:00
Bartosz Taudul
1c47e22eca Add log10f approximation.
Based on https://community.arm.com/tools/f/discussions/4292/cmsis-dsp-new-functionality-proposal/22621#22621
2018-06-06 01:23:29 +02:00
Bartosz Taudul
859bf01992 Support displaying self times in statistics view. 2018-06-06 00:47:16 +02:00
Bartosz Taudul
e5d35d443d Missing initializer. 2018-06-06 00:47:11 +02:00
Bartosz Taudul
b7930f67da Calculate total self time of zones. 2018-06-06 00:39:22 +02:00
Bartosz Taudul
785a30a68b Implement going to next/previous frame. 2018-06-02 22:27:35 +02:00
Bartosz Taudul
1cddf8436c ZoomToRange() already enables pause. 2018-06-02 22:09:07 +02:00
Bartosz Taudul
5a7304171d Fix allocation times displayed in plot tooltip. 2018-05-27 20:22:58 +02:00
Bartosz Taudul
8ed59c261b Open memory address info after clicking on mem plot item. 2018-05-27 20:17:20 +02:00
Bartosz Taudul
9898066a7a Display additional memory event info in mem plot tooltips. 2018-05-27 20:11:33 +02:00
Bartosz Taudul
3ea5fd93ed Simple and not so simple draw plot point functions. 2018-05-27 19:51:45 +02:00
Bartosz Taudul
0a79243332 Display thread from which message originated on msg list. 2018-05-25 21:14:15 +02:00
Bartosz Taudul
53aea660c8 Store thread id in MessageData. 2018-05-25 21:10:38 +02:00
Bartosz Taudul
bb0246730f Don't save MessageData padding.
This requires file version bump to 0.3.1.
2018-05-25 21:10:38 +02:00
Bartosz Taudul
8118e41559 Use columns to display message list. 2018-05-25 21:10:38 +02:00
Bartosz Taudul
312c20b0bc Fallback to pdqsort if parallel STL is not available. 2018-05-12 22:41:18 +02:00
Bartosz Taudul
920bfc8c82 Parallelize (big) sorts in worker. 2018-05-08 01:40:22 +02:00
Bartosz Taudul
dbc963d55c Drop template argument from std::lock_guard. 2018-05-08 01:25:16 +02:00
Bartosz Taudul
3768ed5dd7 Don't reconstruct mem plot if there's no mem event data. 2018-05-04 16:08:16 +02:00
Bartosz Taudul
e7ffe288e6 One less FileWrite::Write() call. 2018-05-04 15:11:19 +02:00
Bartosz Taudul
e058bb34c1 CompressThread body must be available. 2018-05-03 18:43:51 +02:00
Bartosz Taudul
a46d27f312 Parallelize file reading.
Use spin-locks for synchronization.

IsEOF() is now buggy, but the bug chance is fairly low (1/65536) - it
can happen when the last compressed block has exactly max decompressed
block size. Don't care about it much, as it's only used to open old
archives.
2018-05-03 17:56:43 +02:00
Bartosz Taudul
3d13ea09e8 Move block decompression to a separate function. 2018-05-03 17:29:58 +02:00
Bartosz Taudul
7d32ef8c8b Restrict mem events list size. 2018-05-02 19:40:35 +02:00
Bartosz Taudul
f2cb04ea8d Allow going back to the previous zone info. 2018-05-02 19:25:52 +02:00
Bartosz Taudul
1cc798cea3 Construct zone info stack. 2018-05-02 19:23:46 +02:00
Bartosz Taudul
e28022f735 Don't display alloc, free threads on two lines. 2018-05-02 19:07:34 +02:00
Bartosz Taudul
f2f712b8db Optional display of each mem event in zone info window. 2018-05-02 19:03:34 +02:00
Bartosz Taudul
dac6a65156 Infer total mem usage change from alloc and free changes. 2018-05-02 18:41:11 +02:00
Bartosz Taudul
14ca2198dd Force inline simple Vector ops. 2018-05-02 18:27:37 +02:00
Bartosz Taudul
bbf1e9f111 Only include memory events from zone thread. 2018-05-02 18:13:13 +02:00
Bartosz Taudul
4584ef9e88 Use memory events to calculate zone memory changes. 2018-05-02 18:06:27 +02:00
Bartosz Taudul
b18841aa75 Store ordered list of memory frees. 2018-05-02 17:59:50 +02:00
Bartosz Taudul
ce1f56ea0f Display zone memory statistics.
Note that this information is incorrect, as it accounts for memory
events in all threads.
2018-05-02 17:46:09 +02:00
Bartosz Taudul
fd59ac0125 Only calculate zone child data if child list is displayed. 2018-05-02 17:23:32 +02:00
Bartosz Taudul
754e79b443 Setup memory plot pointer on dump load. 2018-05-02 17:18:52 +02:00
Bartosz Taudul
1512f3584c Show appropriate message when there's no memory data collected. 2018-05-01 17:28:02 +02:00
Bartosz Taudul
e5934b409a Don't use Vector for memory pages storage.
Vector has POT data size and we know exactly how much is needed.
2018-05-01 17:26:34 +02:00
Bartosz Taudul
7266a979c3 Omit stack. 2018-05-01 02:13:49 +02:00
Bartosz Taudul
5deeb8426f Specialized Read function writing directly to registers. 2018-05-01 02:13:49 +02:00
Bartosz Taudul
8beb1c1a39 Add thread compression cache.
Observation: calls to CompressThread() are likely to be repeated with
the same value. Exploit that by storing last query and its result.
2018-05-01 01:29:25 +02:00
Bartosz Taudul
ec58aa4ce1 Don't increase vector size in each iteration. 2018-04-30 13:57:12 +02:00
Bartosz Taudul
e41ce5523c Allow explicit setting of vector size. 2018-04-30 13:56:58 +02:00
Bartosz Taudul
553e3ca38b Optimize mem plot reconstruction loop. 2018-04-30 13:45:36 +02:00
Bartosz Taudul
76f0c8fafe Sort source location zones on a separate thread. 2018-04-30 03:54:09 +02:00
Bartosz Taudul
63e4f6fa04 Directly store values. 2018-04-30 03:30:19 +02:00
Bartosz Taudul
8d854b1c8f Force inline flat_hash_map find. 2018-04-30 03:09:50 +02:00
Bartosz Taudul
a2d3ad35f0 Force inline common slab allocation paths. 2018-04-30 02:47:16 +02:00
Bartosz Taudul
b598300186 Split FileRead::Skip into small and big part. 2018-04-30 02:31:03 +02:00
Bartosz Taudul
b1a440647d Remove one level of indirection in FileWrite. 2018-04-30 02:29:05 +02:00
Bartosz Taudul
fd46651c32 Remove one level of indirection in FileRead. 2018-04-30 02:26:15 +02:00
Bartosz Taudul
4c521ce92a Loaded traces may be unloaded. 2018-04-30 01:16:08 +02:00
Bartosz Taudul
e5cb241c19 Optimize creation of vector of frees. 2018-04-29 13:40:47 +02:00
Bartosz Taudul
3eb73b8d43 Move memory plot reconstruction to a background thread. 2018-04-29 13:40:04 +02:00
Bartosz Taudul
a8ce01eeb1 Push next no space check variant. 2018-04-29 13:39:06 +02:00
Bartosz Taudul
bc84ebc338 Read/write LockEvent data in one go. 2018-04-29 03:41:58 +02:00
Bartosz Taudul
c5133e0b4e Walk lockmap timeline pointer. 2018-04-29 03:41:58 +02:00
Bartosz Taudul
9769cc4d7d Read/write most of MemEvent in one go. 2018-04-29 03:41:58 +02:00
Bartosz Taudul
d5f0f0939d No need to track min memory usage.
At least if client instrumentation was not broken and the data makes
sense.
2018-04-29 02:57:20 +02:00
Bartosz Taudul
7fdc6f5453 Zero as initial max value is fine too. 2018-04-29 02:56:23 +02:00
Bartosz Taudul
723f98d24b Overflow checks are not needed. 2018-04-29 02:47:25 +02:00
Bartosz Taudul
b06f445de9 Don't use stack to write two values... 2018-04-29 02:32:20 +02:00
Bartosz Taudul
333d3a92c8 Perform memory usage calculation on doubles. 2018-04-29 02:29:06 +02:00
Bartosz Taudul
aceaed25b9 Walk plot data pointer. 2018-04-29 02:11:47 +02:00
Bartosz Taudul
868fbace5a Don't compress thread twice, if it's the same. 2018-04-29 02:04:51 +02:00
Bartosz Taudul
fdaebc2bd8 No need to perform space check here. 2018-04-29 01:38:54 +02:00
Bartosz Taudul
dc1396012e Add assert checking that there's space. 2018-04-29 01:38:35 +02:00
Bartosz Taudul
d64f0390da Don't use std::sort. 2018-04-29 01:23:30 +02:00
Bartosz Taudul
925b6c2617 Display y-range of plots. 2018-04-28 16:44:36 +02:00
Bartosz Taudul
7df7bf1745 Begin memory plot with no memory usage. 2018-04-28 16:26:45 +02:00
Bartosz Taudul
a0b8ed2e50 Restore memory plot when loading data dump. 2018-04-28 16:26:45 +02:00
Bartosz Taudul
afa432a087 Non-user plots must have predefined names. 2018-04-28 16:26:45 +02:00
Bartosz Taudul
d8bfe7de2e Create memory plot based on memory alloc/free events. 2018-04-28 15:49:12 +02:00
Bartosz Taudul
cd34ed6968 Two plot types: user and memory.
Only user plots are saved in a dump file.
2018-04-28 15:48:05 +02:00
Bartosz Taudul
2a427ba87a Fix typo. 2018-04-22 02:24:34 +02:00
Bartosz Taudul
ecabf24c4e Optional normalization of compared data. 2018-04-22 02:19:22 +02:00
Bartosz Taudul
d06890b55d Add missing tree pop. 2018-04-22 01:28:55 +02:00
Bartosz Taudul
1fb47899b2 Fix skipping lock data with new dump version. 2018-04-22 01:26:51 +02:00
Bartosz Taudul
470bfb5c02 Don't load unneeded data. 2018-04-22 01:00:17 +02:00
Bartosz Taudul
41738469f1 Add trace compare window. 2018-04-22 00:52:33 +02:00
Bartosz Taudul
436cd2b6cf Drop '###Profiler' from capture name. 2018-04-21 23:29:28 +02:00
Bartosz Taudul
28380f2d25 Move bad version dialogs to a separate file. 2018-04-21 23:19:48 +02:00
Bartosz Taudul
ea2be1bce9 Fix custom ImVec2 operators. 2018-04-21 23:19:13 +02:00
Bartosz Taudul
1d044b494b Don't enforce main window buttons width. 2018-04-21 22:42:32 +02:00
Bartosz Taudul
880eb7cbdd Don't display zone names in find zone menu zones list. 2018-04-21 22:34:19 +02:00
Bartosz Taudul
2ef9fe0743 Enable log time in find zone menu by default. 2018-04-21 22:21:15 +02:00
Bartosz Taudul
d1e185e176 Cleanup message data. 2018-04-21 20:36:33 +02:00
Bartosz Taudul
4cd9cf5dd9 Cleanup zone data. 2018-04-21 20:34:29 +02:00
Bartosz Taudul
0de5bcacaf Free plot data. 2018-04-21 20:12:16 +02:00
Bartosz Taudul
dda25cf66a Cosmetics. 2018-04-21 20:11:59 +02:00
Bartosz Taudul
adf8a126c6 More space for text on main window buttons. 2018-04-21 19:30:49 +02:00
Bartosz Taudul
a4e1bb05f3 Use proper format strings. 2018-04-21 19:26:55 +02:00
Bartosz Taudul
ade97b7ab6 Add hours to time-to-string conversion. 2018-04-21 17:01:10 +02:00
Bartosz Taudul
ad91b9b002 Expand maximum view span from 1 minute to 1 hour. 2018-04-21 16:53:17 +02:00
Bartosz Taudul
cb298893e7 Fix skipping lock data. 2018-04-21 16:02:36 +02:00
Bartosz Taudul
121cced681 Don't save unneeded lock data.
Store only the minimal lock information required and calculate lock
counts, wait lists, etc. at load time.
2018-04-21 15:42:08 +02:00
Bartosz Taudul
764792d8db Try to not crash when opening invalid files.
Tracy will now perform a number of checks when trying to read a dump
file:
1. The file must have at least 4 bytes of data.
2. There should be a 4 byte header to indicate the file was saved by
   tracy. This is a breaking change in file format.
3. Old header-less files are still supported, but there's a new check
   for data validity. The first 4 bytes of file (as an uint32) must be
   less or equal to max LZ4 data packet size. This requires the first
   two bytes to be 00 00 or 00 01, which should catch most invalid
   files.
2018-04-21 14:53:40 +02:00
Bartosz Taudul
a63f214964 Use static assert where static assert is due. 2018-04-21 14:47:15 +02:00
Bartosz Taudul
36efe96e9d Throw exception when trying to open unsupported dump version. 2018-04-21 14:18:42 +02:00
Bartosz Taudul
3793a37b2b Use small buttons in statistics window. 2018-04-21 14:17:42 +02:00
Bartosz Taudul
d9fd1ce74a Add dump file header. 2018-04-21 13:45:48 +02:00
Bartosz Taudul
6c2d7628ee Don't draw off-screen gpu zones. 2018-04-20 23:28:19 +02:00
Bartosz Taudul
a2779eccaf Don't draw off-screen zones. 2018-04-20 23:19:04 +02:00
Bartosz Taudul
9fc14d2faf Don't draw off-screen plots. 2018-04-20 23:00:26 +02:00
Bartosz Taudul
cd7a1cffe8 Don't draw off-screen locks. 2018-04-20 22:53:31 +02:00
Bartosz Taudul
723fad84a7 Don't draw off-screen zone timeline labels. 2018-04-20 22:45:29 +02:00
Bartosz Taudul
84fd351fba Allow partial load of data from dump. 2018-04-20 16:03:09 +02:00
Bartosz Taudul
cc65e52663 Allow skipping data when reading file. 2018-04-20 14:27:20 +02:00
Bartosz Taudul
6120b3e922 Change -1 comparisons to "0" comparisons. 2018-04-14 16:50:04 +02:00
Bartosz Taudul
d0d5528e99 Disable histogram highlight using right mouse button. 2018-04-14 15:21:22 +02:00
Bartosz Taudul
3df7c70f99 Optimize mem alloc processing. 2018-04-10 16:06:01 +02:00
Bartosz Taudul
be50fb26b5 Remove useless assert. 2018-04-10 14:37:17 +02:00
Bartosz Taudul
fd41b4927a Allow selecting/unselecting all locks for display. 2018-04-09 16:15:40 +02:00
Bartosz Taudul
4e1dbb3973 Fix lock announce processing. 2018-04-09 14:28:40 +02:00
Bartosz Taudul
d4bfbc2797 Allow displaying global statistics of a zone. 2018-04-05 19:31:04 +02:00
Bartosz Taudul
093787b3e8 Move find zone setup to a dedicated function. 2018-04-05 19:30:32 +02:00
Bartosz Taudul
0f95d7fd21 Use lookup table to get memory decay color. 2018-04-05 12:14:26 +02:00
Bartosz Taudul
bb299a5074 Desaturate older allocations on memory map. 2018-04-03 20:38:50 +02:00
Bartosz Taudul
189a4a2e32 Page chunk mask is not needed anymore. 2018-04-03 19:41:11 +02:00
Bartosz Taudul
1182a3fcb8 Stop processing allocations if already at time end. 2018-04-03 19:40:06 +02:00
Bartosz Taudul
b78dc70b70 No need to split address into page and chunk. 2018-04-03 19:39:19 +02:00
Bartosz Taudul
22bd2923eb Keep mem.low in a register. 2018-04-03 19:35:43 +02:00
Bartosz Taudul
a3dd90529c Rearrange memory reads. 2018-04-03 19:35:28 +02:00
Bartosz Taudul
197e513727 Add a separate time restriction code path. 2018-04-03 19:34:48 +02:00
Bartosz Taudul
f0573d68bd Store memory pages in a contiguous memory area. 2018-04-03 19:17:32 +02:00
Bartosz Taudul
5ce3e44c77 Calculate chunks in one place in code. 2018-04-03 18:27:50 +02:00
Bartosz Taudul
bf99bff87d Store MemEvents directly in the vector. 2018-04-03 14:17:51 +02:00
Bartosz Taudul
bc27c99a1e Move page init to a non-inlined function. 2018-04-03 13:30:56 +02:00
Bartosz Taudul
6d40502068 Execute direct write to memory, if only one byte. 2018-04-03 13:23:53 +02:00
Bartosz Taudul
81c84025a2 Fix calculation of lines. 2018-04-02 20:11:55 +02:00
Bartosz Taudul
1bb1cf9e6c Display memory map information. 2018-04-02 20:00:05 +02:00
Bartosz Taudul
78ebf37039 Use proper values for page map calculation. 2018-04-02 19:57:46 +02:00
Bartosz Taudul
a2a6386491 Allow time restricting memory map. 2018-04-02 18:57:24 +02:00
Bartosz Taudul
1c441824fd Display memory map. 2018-04-02 18:51:32 +02:00
Bartosz Taudul
78cd86dd69 Memory pages bitmap calculation. 2018-04-02 18:51:32 +02:00
Bartosz Taudul
bf249de266 Display memory usage by active allocations. 2018-04-02 16:30:03 +02:00
Bartosz Taudul
670744f852 Move alloc cutoff to middle of timeline. 2018-04-02 16:21:24 +02:00
Bartosz Taudul
7b194d2349 Don't use std::sort. 2018-04-02 16:09:44 +02:00
Bartosz Taudul
e80891e36d Allow restricting displayed allocs by time. 2018-04-02 16:07:33 +02:00
Bartosz Taudul
c1aaec32d6 Sort active allocations by appearance time. 2018-04-02 15:45:11 +02:00
Bartosz Taudul
38edf308fa Display memory span. 2018-04-02 14:58:40 +02:00
Bartosz Taudul
821b08fbe4 Thread compression state is not preserved. 2018-04-02 14:52:36 +02:00
Bartosz Taudul
aa8980aacc Put memory allocations list into a child area. 2018-04-02 14:44:45 +02:00
Bartosz Taudul
8cc446b578 Highlight zones with opened zone info window. 2018-04-02 14:38:08 +02:00
Bartosz Taudul
50eb5c4b84 Highlight same zone alloc+free. 2018-04-02 14:36:07 +02:00
Bartosz Taudul
f7ce3e795f Display zone if which allocation was freed. 2018-04-02 14:29:56 +02:00
Bartosz Taudul
e1682c7675 Draw active allocations list. 2018-04-02 02:39:12 +02:00
Bartosz Taudul
c4a36398f6 Move memory allocations table drawing to a separate function. 2018-04-02 02:39:12 +02:00
Bartosz Taudul
1fa943d109 Save/load memory data. 2018-04-02 02:05:39 +02:00
Bartosz Taudul
68acc30bdd Add support for determining FileRead EOF. 2018-04-02 02:05:39 +02:00
Bartosz Taudul
5824b47a66 Display memory usage. 2018-04-02 00:02:45 +02:00
Bartosz Taudul
52f59c90bf Track memory usage. 2018-04-02 00:00:49 +02:00
Bartosz Taudul
e3509b6eee Display total number of allocations. 2018-04-01 23:57:18 +02:00
Bartosz Taudul
8efc0a0a71 Display proper hex value. 2018-04-01 22:00:57 +02:00
Bartosz Taudul
3f7abd478e Display zone in which memory allocation took place. 2018-04-01 21:50:35 +02:00
Bartosz Taudul
912cfdbc5e Search for zone present in given thread at given time. 2018-04-01 21:47:08 +02:00
Bartosz Taudul
20824a200c Implement search for memory address. 2018-04-01 21:24:30 +02:00
Bartosz Taudul
c686b86464 Add rudimentary memory information window. 2018-04-01 20:34:58 +02:00
Bartosz Taudul
2d00d95743 Missing initializer. 2018-04-01 20:34:58 +02:00
Bartosz Taudul
cd3bba8063 Memory data accessor. 2018-04-01 20:34:58 +02:00
Bartosz Taudul
a574f98f0c Memory events are now serialized. 2018-04-01 20:13:01 +02:00
Bartosz Taudul
16a98c8c17 Move benaphore to common directory. 2018-04-01 18:59:55 +02:00
Bartosz Taudul
b12375815c Broken memory events processing. 2018-04-01 02:03:34 +02:00
Bartosz Taudul
991fc6bd95 Memory allocations tracker. 2018-03-31 21:56:05 +02:00
Bartosz Taudul
c7a5e25c87 Display parent times. 2018-03-28 19:35:33 +02:00
Bartosz Taudul
9d798789a9 Fix broken behavior on duplicate names in zone info window. 2018-03-28 01:57:53 +02:00
Bartosz Taudul
d6bf19a762 Standard zone list behavior in zone trace. 2018-03-28 01:53:59 +02:00
Bartosz Taudul
bf52b3bc98 Add zone trace. 2018-03-28 01:47:28 +02:00
Bartosz Taudul
4d0396fa06 No auto-expand of child zones. 2018-03-28 01:47:20 +02:00
Bartosz Taudul
aebbefde2a Rename exclusive time to self time. 2018-03-28 01:47:08 +02:00
Bartosz Taudul
f6d4728494 Move child zones into an expandable tree. 2018-03-28 01:34:12 +02:00
Bartosz Taudul
871633cbaf Adapt button size to font size. 2018-03-25 00:10:31 +01:00
Bartosz Taudul
3567089278 Provide default size for main profiler window.
This prevents a crash when loading saved trace with plot.
2018-03-24 22:07:41 +01:00
Bartosz Taudul
1219b72577 Check if match table has content. 2018-03-24 17:32:27 +01:00
Bartosz Taudul
d559da932f Highlight source location displayed in find zone window. 2018-03-24 17:29:25 +01:00
Bartosz Taudul
ae274d8e37 Different ways of sorting of statistics data. 2018-03-24 17:28:10 +01:00
Bartosz Taudul
b65824d116 Show source location details when one is selected. 2018-03-24 15:20:39 +01:00
Bartosz Taudul
3012817da4 Source location statistics. 2018-03-24 15:16:43 +01:00
Bartosz Taudul
27c66c3765 Remove unused variable. 2018-03-24 15:04:44 +01:00
Bartosz Taudul
aa9d9575e0 Allow raw access to source location zones data. 2018-03-24 14:48:52 +01:00
Bartosz Taudul
cb4c1dac24 Don't show pause/resume button if data is static. 2018-03-24 14:45:01 +01:00
Bartosz Taudul
d8ac7dee83 Expose worker data state (static/dynamic). 2018-03-24 14:43:57 +01:00
Bartosz Taudul
225423bd21 Cosmetics. 2018-03-24 14:42:48 +01:00
Bartosz Taudul
3a49e9a4be Statistics window shell. 2018-03-24 14:40:48 +01:00
Bartosz Taudul
a9e1a9bddb Calculate total time spent in source location.
This simple solution doesn't handle recursion at all.
2018-03-24 14:24:30 +01:00
Bartosz Taudul
40a14292b3 Matched source locations and histogram default to open. 2018-03-24 02:45:24 +01:00
Bartosz Taudul
fea0234a60 Change zone end "-1" comparisons to "0" comparisons. 2018-03-24 02:00:20 +01:00
Bartosz Taudul
6a4e58b545 Force inline compress/decompress thread id. 2018-03-24 01:31:58 +01:00
Bartosz Taudul
c0577fd5b2 Unordered map is no longer used. 2018-03-23 21:18:52 +01:00
Bartosz Taudul
f4b88b9c05 Use flat hash map for reverse plot lookup. 2018-03-23 21:18:00 +01:00
Bartosz Taudul
6cb2fec48e Use flat hash map for string map. 2018-03-23 21:12:29 +01:00
Bartosz Taudul
69b49f527d Inline GetZoneEndDirect(). 2018-03-23 02:06:44 +01:00
Bartosz Taudul
910ce8b8ef Display number of matched source locations. 2018-03-20 20:18:23 +01:00
Bartosz Taudul
6e6addfa81 Use pdqsort. 2018-03-20 19:19:07 +01:00
Bartosz Taudul
ae55360a6d Don't sort zones if statistics are disabled. 2018-03-20 19:12:42 +01:00
Bartosz Taudul
4837ce31ff Allow sorting zone groups by count. 2018-03-20 17:19:48 +01:00
Bartosz Taudul
64f3c55ba5 Display zone group time. 2018-03-20 16:56:11 +01:00
Bartosz Taudul
e6d5f3f5fc Store common variables in registers to prevent aliasing. 2018-03-20 16:49:29 +01:00
Bartosz Taudul
d8f7903a97 Use flat hash map for ptr mapping during data load. 2018-03-20 15:44:13 +01:00
Bartosz Taudul
720e5a0468 First check if valid, then search in map. 2018-03-20 15:41:06 +01:00
Bartosz Taudul
fe6c753f12 Store lock thread map in flat hash map. 2018-03-20 15:40:25 +01:00
Bartosz Taudul
765a1ececf Move nohash<> from TracyWorker to flat hash map. 2018-03-20 15:40:11 +01:00
Bartosz Taudul
37808ec4c7 Fix the horribly inefficient Visible() and ShowFull() methods. 2018-03-20 15:33:38 +01:00
Bartosz Taudul
ceeae3c2cf Restore ordering of source location zones after load. 2018-03-20 14:56:42 +01:00
Bartosz Taudul
ad37f0857b Highlight selected zone group on histogram. 2018-03-20 14:37:58 +01:00
Bartosz Taudul
64e05e4726 Put found zones list into a subchild. 2018-03-20 12:56:26 +01:00
Bartosz Taudul
ce3f0bd596 Add separator to zone tooltips. 2018-03-19 16:14:01 +01:00
Bartosz Taudul
d5e0858982 Display thread in GPU zone tooltip. 2018-03-19 16:13:12 +01:00
Bartosz Taudul
4d34ccc30c Unify zone info window thread retrieval. 2018-03-19 16:11:44 +01:00
Bartosz Taudul
0f6ec65b65 GPU zone thread getter. 2018-03-19 16:11:37 +01:00
Bartosz Taudul
5a32cd7984 Show zone thread in zone info popup. 2018-03-19 16:08:50 +01:00
Bartosz Taudul
0d831e452b Add ability to group zones by user text. 2018-03-19 16:01:36 +01:00
Bartosz Taudul
05eb4b7ebc Don't use memcpy to terminate string. 2018-03-19 15:41:28 +01:00
Bartosz Taudul
1fbe1621e7 Display zone exclusive time as progress bar. 2018-03-19 02:30:40 +01:00
Bartosz Taudul
3b34ebf544 Unify GPU info window child selection with the rest of lists. 2018-03-19 02:25:24 +01:00
Bartosz Taudul
efe3eda845 Display thread in zone info windows. 2018-03-19 02:22:08 +01:00
Bartosz Taudul
2eece7c1f3 Reorder instructions. 2018-03-18 23:46:34 +01:00
Bartosz Taudul
ce2bf7c207 Use Vector instead of std::vector for thread zone list. 2018-03-18 21:15:31 +01:00
Bartosz Taudul
8dabe47602 Stop processing new zones on invalid time span.
When processing will resume in the next frame, the zone will hopefully
have a proper end time.
2018-03-18 21:06:26 +01:00
Bartosz Taudul
8b3e53bfad Don't ignore first thread. 2018-03-18 20:53:31 +01:00
Bartosz Taudul
d0519499f4 Store thread id next to zone ptr in source location zone list. 2018-03-18 20:45:49 +01:00
Bartosz Taudul
777d672e05 Thread id compression/decompression. 2018-03-18 20:45:22 +01:00
Bartosz Taudul
40c6f01a41 Perform search after condition was verified, not before. 2018-03-18 20:25:00 +01:00
Bartosz Taudul
3ac98beb5a Use precalculated min/max time spans. 2018-03-18 20:20:24 +01:00
Bartosz Taudul
0f1f7c6813 Calculate min/max time spans for source locations. 2018-03-18 20:15:45 +01:00
Bartosz Taudul
43c3fe25ba Put source location zone data into a struct. 2018-03-18 20:08:57 +01:00
Bartosz Taudul
f5b0f34827 Using std::vector instead of Vector is no longer possible. 2018-03-18 19:56:53 +01:00
Bartosz Taudul
77fa8f54a6 Restore per-thread zone list functionality. 2018-03-18 16:41:58 +01:00
Bartosz Taudul
d08c10c5b6 Add functionality for getting zone thread. 2018-03-18 16:38:42 +01:00
Bartosz Taudul
616269e849 Display zone counts in matched source locations. 2018-03-18 16:11:08 +01:00
Bartosz Taudul
af3559afed Only display results for a single source location match. 2018-03-18 16:07:07 +01:00
Bartosz Taudul
7a4e7cbf86 Reduce data collection if TRACY_NO_STATISTICS is defined.
Statistical data collection is only useful if it's meant to be used.
Otherwise it only incurs CPU and memory cost.
2018-03-18 12:55:54 +01:00
Bartosz Taudul
4baea4a74f Don't hash source location zones keys. 2018-03-18 03:25:14 +01:00
Bartosz Taudul
67774698af Only use direct zone end time for find zone data.
This prevents temporary timing artifacts from affecting histogram graph.
Previously the graph would flicker, because some shorter than usual
timing data was reported and the graph tried to compensate for a single
frame when such data was present.
2018-03-18 02:53:41 +01:00
Bartosz Taudul
e6b3f373c5 Add direct zone end getter. 2018-03-18 02:53:00 +01:00
Bartosz Taudul
746df21ad9 Live updates of find zone data.
TODO: found zones list. Currently only histogram view is available.
2018-03-18 02:43:17 +01:00
Bartosz Taudul
c807b3f7ef Getter for source location zones. 2018-03-18 02:35:39 +01:00
Bartosz Taudul
9830fa297e Store per-source-location zone lists. 2018-03-18 02:05:33 +01:00
Bartosz Taudul
c5c81a73bc Skip initialization of StringIdx.
That memory will be loaded from file.
2018-03-17 14:43:02 +01:00
Bartosz Taudul
a4d46219df File read buffer doesn't need to be preserved. 2018-03-17 14:22:36 +01:00
Bartosz Taudul
41d8ca0814 Split read/write functions into small and big variants. 2018-03-17 13:57:32 +01:00
Bartosz Taudul
79418d0c57 Move locks, zones, etc in options menu out of view. 2018-03-15 23:33:05 +01:00
Bartosz Taudul
81ff554c7d Don't call ReadTimeline() when there's nothing to read. 2018-03-15 22:54:10 +01:00
Bartosz Taudul
9dfa9c95cb Read and write whole ZoneEvent/GpuEvent data at once. 2018-03-15 21:59:16 +01:00
Bartosz Taudul
e5796af196 More efficient vector filling. 2018-03-15 21:42:00 +01:00
Bartosz Taudul
c510c9705b No need to check for reserved space. 2018-03-15 21:32:06 +01:00
Bartosz Taudul
b7ba64a223 Microoptimize ReadTimeline(). 2018-03-15 21:27:36 +01:00
Bartosz Szreder
124170b804 Fix compile warnings. 2018-03-14 00:30:57 +01:00
Bartosz Taudul
a14ff62e64 Decrease minimum spacing between tick labels on linear histogram. 2018-03-05 20:33:04 +01:00
Bartosz Taudul
f361d7484d Put selection information next to each other. 2018-03-05 20:30:21 +01:00
Bartosz Taudul
f39d4c415d Count time spent in histogram selection. 2018-03-05 20:23:58 +01:00
Bartosz Taudul
e9e3e46ea2 Display time instead of counts in cumulate time mode. 2018-03-05 20:19:05 +01:00
Bartosz Taudul
f733758652 Time accumulation histogram mode. 2018-03-05 20:15:18 +01:00
Bartosz Taudul
4005f22ecf Clear selection only on right mouse click. Add tooltip. 2018-03-05 20:05:20 +01:00
Bartosz Taudul
3e931432cf Don't calculate logarithms more than once. 2018-03-05 13:20:24 +01:00
Bartosz Taudul
68f652c40f Put total time and max counts on the same line. 2018-03-04 23:25:33 +01:00
Bartosz Taudul
3a8c976285 Clear histogram range selection by right mouse click. 2018-03-04 23:20:35 +01:00
Bartosz Taudul
f510d8d2e7 Update item counts in thread list. 2018-03-04 23:17:36 +01:00
Bartosz Taudul
3dd14c9e01 Filter found zones according to selection. 2018-03-04 23:07:38 +01:00
Bartosz Taudul
f42d8cee38 Selection of time range on histogram. 2018-03-04 22:52:36 +01:00
Bartosz Taudul
dee7fd27be Move mouse highlight data to a separate struct. 2018-03-04 22:21:35 +01:00
Bartosz Taudul
f7829a7eae Store matches in a map. 2018-03-04 22:11:50 +01:00
Bartosz Taudul
754279d6f1 Allow narrowing down search results by source location. 2018-03-04 21:17:38 +01:00
Bartosz Taudul
2c508c1f79 Display list of matched source locations in search window. 2018-03-04 21:10:10 +01:00
Bartosz Taudul
5c1aec723d Fix thread name clashes in ImGui. 2018-03-04 18:52:32 +01:00
Bartosz Taudul
fa46445537 Add label to separate found zones from rest of find dialog. 2018-03-04 18:44:33 +01:00
Bartosz Taudul
a34bb97d78 Unify zone children and find zone list behavior. 2018-03-04 18:42:18 +01:00
Bartosz Taudul
f44e9bbd7b Make zone info child list "selectable". 2018-03-04 18:40:32 +01:00
Bartosz Taudul
a7e7f59f96 Zoom-to-zone on middle click on found item. 2018-03-04 18:35:40 +01:00
Bartosz Taudul
5cb917e868 No nonsense union. 2018-03-04 17:52:51 +01:00
Bartosz Taudul
5afdccfc46 Properly initialize data.
Unused bitbield bits and inactive string index/reference had thrash
values in release builds, which prevented de-duplication of source
location payloads.
2018-03-04 17:47:26 +01:00
Bartosz Taudul
e9395cd988 Reconstruct source location payload map on data load. 2018-03-04 17:22:34 +01:00
Bartosz Taudul
a374114358 Use proper encoding of source location. 2018-03-04 17:17:37 +01:00
Bartosz Taudul
9170cfd943 First entry in sourceLocationExpand is special. 2018-03-04 16:57:57 +01:00
Bartosz Taudul
80da271a2c Don't match source location on a per-zone basis. 2018-03-04 16:53:13 +01:00
Bartosz Taudul
b48602f5d1 Implement search for matching source locations. 2018-03-04 16:52:45 +01:00
Bartosz Taudul
f8c5f28372 Use Vector for source location expand storage. 2018-03-04 16:32:51 +01:00
Bartosz Taudul
f99c6eec78 Simplify code. 2018-03-04 16:23:28 +01:00
Bartosz Taudul
b09bae07c4 Change default find parameters to unlimited. 2018-03-04 16:07:10 +01:00
Bartosz Taudul
87cfd98b69 No need for fractional time part on graph ticks. 2018-02-28 15:38:32 +01:00
Bartosz Taudul
2891ecc526 Logarithmic scale histogram ticks. 2018-02-28 15:20:52 +01:00
Bartosz Szreder
0fb35b42f8 Merged in bartosz_szreder/tracy (pull request #3)
Split data handling code from the view.
2018-02-23 14:12:01 +00:00
Bartosz Szreder
3b9639a9de Tweak included header files in View and Worker. 2018-02-23 15:08:20 +01:00
Bartosz Taudul
6406df6f45 Display total time. 2018-02-22 12:44:55 +01:00
Bartosz Taudul
ffb28a3d0d More concise time range display. 2018-02-22 12:38:43 +01:00
Bartosz Szreder
bae1c02ad0 Worker thread will take care of itself. 2018-02-21 16:41:37 +01:00
Bartosz Szreder
9e3f18a62a Split data handling code from the view. 2018-02-21 16:41:37 +01:00
Bartosz Taudul
fbaf59c9a6 Ignore zero-time zones in search. 2018-02-21 15:25:28 +01:00
Bartosz Taudul
785ab2927b Calculate proper label offsets. 2018-02-21 15:18:30 +01:00
Bartosz Taudul
d9988c8a06 Histogram time labels prototype. 2018-02-20 16:01:33 +01:00
Bartosz Taudul
118d4b497f Time Stamp Counter to time conversion function. 2018-02-20 12:40:12 +01:00
Bartosz Taudul
6a65ceb71a Display maximum number of counts in bins. 2018-02-16 16:19:31 +01:00
Bartosz Taudul
4611bc355f Optional log time scale in histogram. 2018-02-16 15:34:22 +01:00
Bartosz Taudul
6e8bb9e490 Display bin times. 2018-02-16 14:42:16 +01:00
Bartosz Taudul
f6cc360c69 Basic histogram introspection. 2018-02-16 14:31:57 +01:00
Bartosz Taudul
fbe1af80b5 Cosmetics. 2018-02-16 14:31:53 +01:00
Bartosz Taudul
9678cc8afc Support logarithmic scaling of values on search histogram. 2018-02-16 13:28:40 +01:00
Bartosz Taudul
508b699252 Fix crash. 2018-02-16 13:09:24 +01:00
Bartosz Taudul
5bc145f719 Search results histogram. 2018-02-15 17:25:16 +01:00
Bartosz Taudul
ea4863d4bd Fix help strings. 2018-02-15 16:32:36 +01:00
Bartosz Taudul
e20bb2fe66 Add separators to zone count. 2018-02-15 16:31:47 +01:00
Bartosz Taudul
cc38988045 Cleanup. 2018-02-15 16:24:01 +01:00
Bartosz Taudul
d1d54db7b6 Display number of found zones. 2018-02-15 16:17:16 +01:00
Bartosz Szreder
d5fe006e2d Add missing include charutil::hash() 2018-02-12 19:07:55 +01:00
Kamil Klimek
cb08990eff "Find Zone" feature
- Simple text search with some limiting options
 - Grouping by threads
 - Easy access to "Zone Info" from search results
2018-01-18 12:35:30 +01:00
Bartosz Taudul
961a907e09 Remove obsolete window flag. 2018-01-13 13:56:02 +01:00
Bartosz Taudul
5915683587 Shared lockable tooltips. 2017-12-17 19:40:45 +01:00
Bartosz Taudul
d0d3bb1141 Store shared lock bits only for shared locks. 2017-12-17 18:44:31 +01:00
Bartosz Taudul
b3b8088881 Separate processing of Lockable and SharedLockable. 2017-12-17 18:00:15 +01:00
Bartosz Taudul
6f1a99e270 Combine wait lists. 2017-12-10 23:33:39 +01:00
Bartosz Taudul
340506406e Shared lock state machine. 2017-12-10 23:30:13 +01:00
Bartosz Taudul
b07718ab9e Track list of shared locks. 2017-12-10 22:42:39 +01:00
Bartosz Taudul
4d9ae83abd Fix assert. 2017-12-10 22:42:25 +01:00
Bartosz Taudul
398eecbb94 Store LockEvent type as an enum class. 2017-12-10 22:37:56 +01:00
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