Commit Graph

253 Commits

Author SHA1 Message Date
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