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