Bartosz Taudul
8fa5188176
Send delta times for context switches.
2019-10-25 19:13:11 +02:00
Bartosz Taudul
c8e5489e99
Group caches together.
2019-10-25 18:16:27 +02:00
Bartosz Taudul
29c42cc8d7
Fix assert.
2019-10-25 01:00:32 +02:00
Bartosz Taudul
17a51c898e
No need to check if vector is empty.
2019-10-25 00:54:46 +02:00
Bartosz Taudul
b5e759bc5a
Don't calculate child index twice.
2019-10-25 00:54:46 +02:00
Bartosz Taudul
70f1074490
Don't iterate over children to calculate zone self time.
2019-10-25 00:33:44 +02:00
Bartosz Taudul
d6a8a8532f
Prevent storing variable on stack.
2019-10-24 23:40:21 +02:00
Bartosz Taudul
1fe76be955
Don't reconstruct lock event time on insert.
2019-10-24 23:25:04 +02:00
Bartosz Taudul
b83d0f46d9
Improve updating last time.
...
Avoid LHS, don't write if don't need to.
2019-10-24 23:23:52 +02:00
Bartosz Taudul
721f3c8925
Callstack is already zero-initialized.
2019-10-24 23:05:39 +02:00
Bartosz Taudul
45332fd837
Don't read memory when setting values.
2019-10-24 23:03:13 +02:00
Bartosz Taudul
c9da5f1474
Use cached thread retriever.
2019-10-24 22:34:18 +02:00
Bartosz Taudul
5873561b54
Add cached thread retriever.
2019-10-24 22:33:48 +02:00
Bartosz Taudul
06bc802107
Avoid load-hit-store.
2019-10-24 22:24:00 +02:00
Bartosz Taudul
01ceedb57a
Focus out labels in connection window.
2019-10-24 00:54:19 +02:00
Bartosz Taudul
c5a6c7bf63
Display transferred data size.
2019-10-24 00:47:25 +02:00
Bartosz Taudul
1cfb5adc44
Count transferred data size.
2019-10-24 00:47:16 +02:00
Bartosz Taudul
ba61a9ed84
Transfer time deltas, not absolute times.
...
This change significantly reduces network bandwidth requirements.
Implemented for:
- CPU zones,
- GPU zones,
- locks,
- plots,
- memory events.
2019-10-24 00:06:41 +02:00
Bartosz Taudul
5c92eae3ed
Add early exit for invalid times.
2019-10-20 18:47:50 +02:00
Bartosz Taudul
d592af9c2f
Fix TRACY_NO_STATISTICS build.
2019-10-20 17:32:20 +02:00
Bartosz Taudul
5816dc2b11
Don't cache timedist data if ctx switch data is incomplete.
2019-10-20 17:03:30 +02:00
Bartosz Taudul
ccdc102d5a
Cache zone time distribution data.
2019-10-20 03:24:58 +02:00
Bartosz Taudul
4d761def61
Microoptimize comparison.
2019-10-16 20:26:39 +02:00
Bartosz Taudul
bfbd09b619
Add CPU usage graph tooltip.
2019-10-15 21:47:37 +02:00
Bartosz Taudul
7a9d4aecd3
Fix graph height calculation.
2019-10-15 21:41:06 +02:00
Bartosz Taudul
4372ad1bc3
Allow disabling CPU usage graph.
2019-10-15 21:37:16 +02:00
Bartosz Taudul
c28bab59b5
Improve look of CPU usage graph.
2019-10-15 21:20:00 +02:00
Bartosz Taudul
5aeeefefbd
Draw CPU usage graph.
2019-10-15 16:55:15 +02:00
Bartosz Taudul
3ae5c125f6
Implement counting CPU usage (ctx switch) at a given time.
2019-10-15 16:54:43 +02:00
Bartosz Taudul
3ce6b1205f
Don't iterate over 256 CPUs.
2019-10-15 16:13:53 +02:00
Bartosz Taudul
eccb0b1e4a
Track max CPU present in context switch data.
2019-10-15 16:13:53 +02:00
Bartosz Taudul
bdb8516d04
Make sure context switch end time wasn't set already.
2019-10-15 14:54:28 +02:00
Bartosz Taudul
fefa3b4693
Improve options UI.
2019-10-15 01:49:36 +02:00
Bartosz Taudul
f0c77b4ef4
Add annotation list window.
2019-10-14 20:52:18 +02:00
Bartosz Taudul
c6207ed0e9
Move extra tools to main window button bar popup.
2019-10-14 20:07:55 +02:00
Bartosz Taudul
fc7f77eb7a
Add implementation of disablable button.
2019-10-14 20:06:57 +02:00
Bartosz Taudul
6de8e6987f
Sort annotations.
2019-10-14 19:04:37 +02:00
Bartosz Taudul
5c47467c88
Fix includes.
2019-10-13 17:13:15 +02:00
Bartosz Taudul
671a8f673e
Don't interact with unfocused annotations.
2019-10-13 17:01:55 +02:00
Bartosz Taudul
e462335f83
Save/load annotations.
2019-10-13 16:29:24 +02:00
Bartosz Taudul
c2f38d0db7
Implement removal of user data files.
2019-10-13 16:29:02 +02:00
Bartosz Taudul
9d0316342d
Move Annotation struct to a proper place.
2019-10-13 16:28:40 +02:00
Bartosz Taudul
20cf1d9f83
Implement color selection for annotation region.
2019-10-13 16:14:22 +02:00
Bartosz Taudul
f9e860f559
Display annotation text on timeline.
2019-10-13 15:59:48 +02:00
Bartosz Taudul
1527e7bc10
Add annotation modification window.
2019-10-13 15:50:37 +02:00
Bartosz Taudul
5fed86dae7
Allow adding annotations to timeline.
2019-10-13 15:28:52 +02:00
Bartosz Taudul
215dc8a804
More compact GpuEvent struct (save 4 bytes).
...
Memory usage reduction of various traces:
big 9011 -> 9007
frameimages 561 -> 552
fi-big 4144 -> 4139
long 5253 -> 5125
2019-10-13 14:42:52 +02:00
Bartosz Taudul
c044df6324
Display number of GPU zones.
2019-10-13 14:21:28 +02:00
Bartosz Taudul
1ae49c14a2
GPU zone count accessor.
2019-10-13 14:13:28 +02:00
Bartosz Taudul
5e1894dd79
Count GPU zones.
2019-10-13 14:13:04 +02:00
Bartosz Taudul
d4620b4157
Fix UI.
2019-10-09 22:33:02 +02:00
Bartosz Taudul
0a358ac1f0
Time distribution may now only include running time.
2019-10-09 22:13:52 +02:00
Bartosz Taudul
6ced346e08
Different sorting modes for zone time distribution.
2019-10-09 21:42:46 +02:00
Bartosz Taudul
ed1f722c51
Display trace file name in trace info window.
2019-10-07 21:36:19 +02:00
Bartosz Taudul
4c4099877d
Track trace file name in TracyView.
2019-10-07 21:36:19 +02:00
Bartosz Taudul
c6f320d2d8
Store file name in FileRead.
2019-10-07 21:32:27 +02:00
Bartosz Taudul
1cd5ccb3c1
Display zone time distribution.
2019-10-04 21:34:00 +02:00
Bartosz Taudul
5111275770
Highlight hovered zone on the find zone zones list.
2019-10-04 13:02:26 +02:00
Bartosz Taudul
b913c17f5b
Add "no grouping" mode to find zone zones list.
2019-10-04 12:42:05 +02:00
Bartosz Taudul
f2bb933f49
Use proper background color.
2019-10-02 00:49:30 +02:00
Bartosz Taudul
3b223c64d4
Darken to background color to hide overhang.
...
This only handles the root window case. When the profiler is embedded in
other application, the window background color is not matched.
2019-10-01 23:17:36 +02:00
Bartosz Taudul
db29d309a2
Lambda capture is not needed here.
2019-10-01 22:42:43 +02:00
Bartosz Taudul
68f476834f
Make sure TracyCountBits() always returns uint64_t.
2019-10-01 22:42:29 +02:00
Bartosz Taudul
65ea33a60f
Store memory callstack data as 24-bit ints.
...
This reduces MemEvent size from 40 to 38 bytes.
Memory usage reduction:
chicken 2027 -> 2019
mem 6468 -> 6308
q3bsp-mt 5304 -> 5283
2019-10-01 22:38:17 +02:00
Bartosz Taudul
f0b957ec56
Store callstacks on 24 bits.
...
ZoneEvent is now 27 bytes.
Memory usage reduction on selected traces (sizes in MB):
big 9224 -> 9011 (97%)
chicken 2044 -> 2027 (99%)
drl-l-b 1443 -> 1383 (95%)
long 5327 -> 5253 (98%)
q3bsp-mt 5400 -> 5304 (98%)
selfprofile 1403 -> 1382 (98%)
2019-10-01 22:38:17 +02:00
Bartosz Taudul
c631e33f81
Add 24-bit int implementation.
2019-10-01 21:48:34 +02:00
Bartosz Taudul
472959b29f
Remove irrelevant comment.
2019-10-01 01:15:43 +02:00
Bartosz Taudul
717a212563
Save another 2 bytes per ZoneEvent.
...
ZoneEvent is not 28 bytes.
Memory usage reduction on selected traces (sizes in MB):
big 9527 -> 9224 (96%)
chicken 2107 -> 2044 (97%)
drl-l-b 1479 -> 1443 (97%)
long 5412 -> 5327 (98%)
q3bsp-mt 5592 -> 5400 (96%)
selfprofile 1443 -> 1403 (97%)
2019-10-01 01:05:37 +02:00
Bartosz Taudul
4964aa9547
Assert on getting index only for active strings.
2019-10-01 00:40:58 +02:00
Bartosz Taudul
acfcfb09ce
Hide context switch options, if no data is available.
2019-09-30 23:46:10 +02:00
Bartosz Taudul
0e56682964
Darkening of inactive thread regions.
2019-09-30 23:37:36 +02:00
Bartosz Taudul
6e7e8eff87
Set extreme compression level to really be extreme.
2019-09-29 21:02:01 +02:00
Bartosz Taudul
2470936050
Don't perform background tasks during trace upgrade.
2019-09-29 20:52:25 +02:00
Bartosz Taudul
d228bcb622
Pack StringIdx in 24 bits.
...
This reduces ZoneEvent size from 32 to 30 bytes.
Memory usage reduction on selected traces (sizes in MB):
big 9902 -> 9527 (96%)
chicken 2172 -> 2107 (97%)
ctx-big 311 -> 309 (99%)
drl-l-b 1570 -> 1479 (94%)
long 5496 -> 5412 (98%)
mem 6468 -> 6468 (100%)
q3bsp-mt 5784 -> 5592 (96%)
selfprofile 1486 -> 1443 (97%)
2019-09-29 20:32:42 +02:00
Bartosz Taudul
781ebeb835
Add table initializing alloc to slab allocator.
2019-09-29 20:18:16 +02:00
Bartosz Taudul
59632f0d37
One more place to check if srcloc zones are ready.
2019-09-29 20:17:47 +02:00
Bartosz Taudul
873d536845
Display number of strings.
2019-09-29 19:22:50 +02:00
Bartosz Taudul
c91ae667d1
Add string count getter.
2019-09-29 19:22:15 +02:00
Bartosz Taudul
cb6a3f3334
Highlight CPU data timeline from thread tooltip.
2019-09-29 18:55:31 +02:00
Bartosz Taudul
3b8ab5715f
Highlight CPU data timeline from CPU data window.
2019-09-29 18:53:58 +02:00
Bartosz Taudul
cafb5d6a99
Highlight threads on CPU data timeline.
2019-09-29 18:49:48 +02:00
Aleksei Skriabin
c0c2f4536a
strstr_nocase() typo fix.
2019-09-28 14:20:29 +05:00
Bartosz Taudul
c09f3c0676
Add thread color boxes to CPU data window.
2019-09-25 02:12:35 +02:00
Bartosz Taudul
6c5627d8e4
Add thread color boxes to memory allocations listings.
2019-09-24 23:58:11 +02:00
Bartosz Taudul
581fd920a1
Add thread color boxes to lock info.
2019-09-24 23:52:52 +02:00
Bartosz Taudul
12e2bcb691
Add thread color boxes to zone info windows.
2019-09-24 23:51:47 +02:00
Bartosz Taudul
ad2dd09c25
Add thread color boxes to zone tooltips.
2019-09-24 23:50:00 +02:00
Bartosz Taudul
47f81d0ba4
Add thread color box to memory plot tooltip.
2019-09-24 23:47:51 +02:00
Bartosz Taudul
9c86102bad
Add thread color box to CPU data on timeline.
2019-09-24 23:46:54 +02:00
Bartosz Taudul
a7e3324eba
Add thread color boxes to GPU context tooltips.
2019-09-24 23:45:36 +02:00
Bartosz Taudul
6ffbd00b0c
Add thread color box to crash info.
2019-09-24 23:42:25 +02:00
Bartosz Taudul
c73a74b8d5
Add thread color boxes to memory allocation info.
2019-09-24 23:41:28 +02:00
Bartosz Taudul
e9b815a3b8
Show thread color boxes in find zone menu.
2019-09-24 23:38:29 +02:00
Bartosz Taudul
06fe469598
Add thread color boxes to messages thread list.
2019-09-24 23:33:33 +02:00
Bartosz Taudul
63184f8762
Better Vulkan thread heuristics.
2019-09-24 00:55:24 +02:00
Bartosz Taudul
a5ba74ed13
Handle multiple Vulkan threads.
2019-09-23 17:27:49 +02:00
Bartosz Taudul
82cd667b30
Allow specifying network port in server.
2019-09-21 15:43:01 +02:00
Bartosz Taudul
4c736aecfa
Use fibonacci hashing to determine thread colors.
2019-09-21 14:03:42 +02:00
Bartosz Taudul
7a1fb4e0bd
Proper message when call stack trees are not available.
2019-09-21 00:57:12 +02:00
Bartosz Taudul
46f7235e32
Display proper message when there are no active allocations.
2019-09-21 00:54:30 +02:00
Bartosz Taudul
d8e0853cd8
Multithreaded frame image compression.
2019-09-20 23:03:12 +02:00
Bartosz Taudul
6f5a23a198
Add task dispatcher to server.
2019-09-20 22:58:12 +02:00
Bartosz Taudul
e1e5d6bd47
Add const version of PackFrameImage().
...
Temporary buffer needs to be handled outside of the function.
2019-09-20 22:55:55 +02:00
Bartosz Taudul
b362baed5f
Minor UI improvements.
2019-09-19 01:10:33 +02:00
Bartosz Taudul
6a0512fe16
Allow comparing frame times.
2019-09-16 22:02:47 +02:00
Bartosz Taudul
8fe9b56b6f
Calculate frame statistics.
2019-09-16 22:02:47 +02:00
Bartosz Taudul
b99675ae60
Use thread color for collapsed zones.
2019-09-16 20:34:55 +02:00
Bartosz Taudul
36b2b8f71f
Always return static thread color if dynamic colors are disabled.
2019-09-16 20:31:32 +02:00
Bartosz Taudul
5796f19a3b
Focus out exact memory plot value.
2019-09-16 20:27:16 +02:00
Bartosz Taudul
7673028dba
Fix skipping memory data.
2019-09-16 15:42:25 +02:00
Bartosz Taudul
5429f04614
Don't use source location data before it's ready.
2019-09-16 15:37:57 +02:00
Bartosz Taudul
6d00a56c61
Draw thread migrations across CPU cores.
2019-09-12 20:08:57 +02:00
Bartosz Taudul
23b6e5156b
Display thread color in thread tooltip.
2019-09-11 19:01:27 +02:00
Bartosz Taudul
2872edce5d
Use thread colors in context switch graph.
2019-09-11 18:56:54 +02:00
Bartosz Taudul
8ddafe4153
Extract color highlight functionality.
2019-09-11 18:52:25 +02:00
Bartosz Taudul
0850145811
Disable color box drag and drop.
2019-09-11 18:48:28 +02:00
Bartosz Taudul
2cec6f5482
Add thread colors to options menu.
2019-09-11 18:44:06 +02:00
Bartosz Taudul
4ea62ecb06
Extract small color box drawing.
2019-09-11 18:38:10 +02:00
Bartosz Taudul
00409b0b94
Extract thread color getter.
2019-09-11 18:34:48 +02:00
Bartosz Taudul
a5a6b11b63
Zones can now have dynamic colors.
2019-09-08 14:33:30 +02:00
Bartosz Taudul
2714152f84
Allow calculating zone depth.
2019-09-08 14:16:12 +02:00
Bartosz Taudul
cdc4575dba
Setup tid -> thread data mapping when loading trace.
2019-09-08 14:15:40 +02:00
Bartosz Taudul
ea6a0a58a7
Thread data accessor.
2019-09-08 14:07:16 +02:00
Bartosz Taudul
c9a1d3d7e5
Display zone color in zone info window.
2019-09-08 13:19:43 +02:00
Bartosz Taudul
b7522ec4c1
Allow getting zone color sans higlights, etc.
2019-09-08 13:16:00 +02:00
Bartosz Taudul
17e6a97552
Let's leave this here.
2019-09-07 17:49:54 +02:00
Bartosz Taudul
a0814a2e5c
Correctly calculate discontinuous frames time.
2019-09-07 17:39:39 +02:00
Bartosz Taudul
aac0a36a2d
Don't use source location zones before they are ready.
2019-09-07 17:23:11 +02:00
Bartosz Taudul
3449f0777e
Display zone time on frames plot.
2019-09-07 16:55:49 +02:00
Bartosz Taudul
0b1a6047f6
Add different highlight for zones selected on histogram.
2019-09-07 15:33:11 +02:00
Bartosz Taudul
57a2b62edc
Display number of threads for pids in CPU data list.
2019-09-04 01:43:56 +02:00
Bartosz Taudul
aa2530d442
Display external thread name (if applicable) on CPU data timeline.
2019-08-31 19:37:05 +02:00
Bartosz Taudul
86cb477811
Pack ZoneThreadData.
...
This reduces struct size from 10 to 8 bytes. Assumes 48-bit pointers
(4-level paging)!
Memory savings (MB):
android 2766 -> 2757 (99%)
big 10.29 G -> 9902 (96%)
chicken 2244 -> 2172 (96%)
ctx-android 228 -> 224 (98%)
drl-l-b 1635 -> 1570 (96%)
gn-vulkan 244 -> 240 (98%)
long 5656 -> 5496 (97%)
q3bsp-mt 6043 -> 5784 (95%)
selfprofile 1554 -> 1486 (95%)
2019-08-31 00:55:51 +02:00
Bartosz Taudul
3ec534cdf3
Prevent "ntdll.dll" from appearing as a thread name.
2019-08-30 23:09:07 +02:00
Bartosz Taudul
1c0c6311ec
Fix skipping data when loading traces.
2019-08-30 01:16:42 +02:00
Bartosz Taudul
217a3781e6
Fix possible wrong process name for pid 0.
2019-08-30 00:59:54 +02:00
Bartosz Taudul
19f8f9f101
Use proper type.
2019-08-30 00:56:11 +02:00
Bartosz Taudul
a8d204821e
Signed left shift is undefined.
2019-08-29 18:42:29 +02:00
Bartosz Taudul
5e8b2a0723
Display wakeup times in zone wait regions list.
2019-08-28 23:03:16 +02:00
Bartosz Taudul
6f25ad5fcb
Save per-trace options.
2019-08-28 21:35:08 +02:00
Bartosz Taudul
fc5293b1ae
Only scroll message list to bottom if capture is live.
2019-08-28 21:04:28 +02:00
Bartosz Taudul
a2f968d843
Compress thread id in MessageData.
2019-08-28 21:03:01 +02:00
Bartosz Taudul
ede26b0caf
Fix skipping zone levels.
2019-08-28 20:47:19 +02:00
Bartosz Taudul
85027c185d
Extract notification area drawing to a separate function.
2019-08-28 20:27:39 +02:00
Bartosz Taudul
a8eb99efcc
Add notification icons when a drawing a category is disabled.
2019-08-28 20:24:14 +02:00
Bartosz Taudul
5b0ccef373
Change some icons.
2019-08-28 20:17:38 +02:00
Bartosz Taudul
fd5014be6f
GetThreadString() is no longer used.
2019-08-28 20:08:16 +02:00
Bartosz Taudul
28a20e631e
Preserve frame graph position and scale.
2019-08-28 19:52:36 +02:00
Bartosz Taudul
17d4a82ca5
Preserve timeline vertical scroll position.
2019-08-28 19:49:27 +02:00
Bartosz Taudul
f37797db44
Save/load view state.
2019-08-28 19:45:22 +02:00
Bartosz Taudul
dc5444ff0f
Notify UserData that view state should be preserved.
...
This is only active when a trace is loaded from a file (and state should
be persistent for future sessions using this trace), or when state is
saved to a file (so that future sessions will use current state).
No state is preserved by default, i.e. when the trace was not saved to a
file.
2019-08-28 19:37:01 +02:00
Bartosz Taudul
949c9cb121
Move some view data to a separate structure.
2019-08-28 19:35:54 +02:00
Bartosz Taudul
38bfae13dd
Add helper function for opening files.
2019-08-28 19:28:31 +02:00
Bartosz Taudul
2a0d6ce4ad
Add notification area indicator for hidden timeline items.
2019-08-28 18:36:05 +02:00
Bartosz Taudul
ed83762a1a
Keep things simple.
2019-08-28 01:29:58 +02:00
Bartosz Taudul
ef287c8aab
Display external thread names of profiled program on CPU data timeline.
2019-08-27 23:17:53 +02:00
Bartosz Taudul
8eb7220dd7
Use the new thread name getter.
2019-08-27 23:08:14 +02:00
Bartosz Taudul
3c092b4bec
Add thread name getter combining local and external thread names.
2019-08-27 23:00:13 +02:00
Bartosz Taudul
f8e3d1ad0a
Try to fix current program's thread names.
...
External thread names can be cut-off to include only the first 15-or-so
characters. If a local thread name is known and its beginning matches
the external name, use the local name instead.
2019-08-27 22:41:03 +02:00
Bartosz Taudul
8bb13ca09e
Use captured program name in CPU data.
...
This fixes android application names, which are cut to show only last
15-or-so letters.
2019-08-27 22:35:53 +02:00
Bartosz Taudul
f76f38777e
Signed minus unsigned is unsigned...
2019-08-26 19:09:12 +02:00
Bartosz Taudul
eb78ecd0fd
Display frame number in playback window.
2019-08-26 19:01:59 +02:00
Bartosz Taudul
3e4d3efbdb
Extract frame number getter.
2019-08-26 19:01:51 +02:00
Bartosz Taudul
e5a11ad593
Allow sorting CPU data table by different columns.
2019-08-25 00:17:06 +02:00
Bartosz Taudul
4376757912
Display thread ids in options menu.
2019-08-24 23:43:36 +02:00
Bartosz Taudul
2b9ec14c92
Display threads ids as base-10 numbers.
2019-08-24 23:41:33 +02:00
Bartosz Taudul
1712431dfd
Compress external threads. Saves 4 bytes per ctx switch.
...
Dropped support for loading context switch data in previous versions of
traces.
2019-08-19 23:09:58 +02:00
Bartosz Taudul
21e7a4bb16
Extract thread compression into a separate class.
2019-08-19 22:56:58 +02:00
Bartosz Taudul
94382f54ca
Move FileVersion() to TracyFileHeader.hpp.
2019-08-19 22:56:58 +02:00
Bartosz Taudul
e60b2884f4
Mark local threads with different color.
2019-08-18 14:57:44 +02:00
Bartosz Taudul
19857473e3
Also collect information on local threads.
2019-08-18 14:56:17 +02:00
Bartosz Taudul
9a3974b8f1
Display process times in graphical form.
2019-08-18 14:51:25 +02:00
Bartosz Taudul
2eed28b19f
Highlight current process.
2019-08-18 14:46:59 +02:00
Bartosz Taudul
ae9cae781a
Display CPU migrations percentage.
2019-08-18 14:44:00 +02:00
Bartosz Taudul
691fe06bfe
Compare pids to determine if thread is local untracked.
2019-08-18 14:40:04 +02:00
Bartosz Taudul
95f4162870
Display number of tracked processes.
2019-08-18 14:30:52 +02:00
Bartosz Taudul
7a036b56b1
Add icon to CPU data button.
2019-08-18 14:30:01 +02:00
Bartosz Taudul
c5060da185
Display unknown pid as unknown.
2019-08-18 14:28:56 +02:00
Bartosz Taudul
faac08865a
Display basic information about CPU usage.
2019-08-18 12:28:38 +02:00
Bartosz Taudul
3b8518f7b6
Save/load CPU thread data.
2019-08-18 01:53:38 +02:00
Bartosz Taudul
62dbe522c5
Add accessors.
2019-08-18 01:51:02 +02:00
Bartosz Taudul
103645c2fa
Calculate cpu thread data statistics.
2019-08-18 01:50:49 +02:00
Bartosz Taudul
1498417a8d
Save/load tid to pid mapping.
2019-08-17 22:36:21 +02:00
Bartosz Taudul
20e8a5ecc8
Create tid to pid mapping.
2019-08-17 22:32:41 +02:00
Bartosz Taudul
fa573ef4cf
Display PID.
2019-08-17 22:21:02 +02:00
Bartosz Taudul
678e942e9f
Transfer PID of profiled program.
2019-08-17 22:19:04 +02:00
Bartosz Taudul
1024992493
React to enter key in "go to frame" dialog.
2019-08-17 22:01:06 +02:00
Bartosz Taudul
258cf38d64
Fix flicker.
2019-08-17 21:59:08 +02:00
Bartosz Taudul
0ea8789f39
Display CPU core in waking up thread popup.
2019-08-17 21:24:40 +02:00
Bartosz Taudul
414f903cc5
Collect thread wakeup data.
2019-08-17 17:05:29 +02:00
Bartosz Taudul
f957f64ce1
No magic numbers.
2019-08-17 16:26:59 +02:00
Bartosz Taudul
26be78530f
Use signed number to calculate frame offset.
2019-08-17 15:22:54 +02:00
Bartosz Taudul
65e62dea06
Display thread ids next to thread names in CPU data.
2019-08-17 03:06:54 +02:00
Bartosz Taudul
6c53cac15e
Fix uninitialized variable.
2019-08-16 21:20:04 +02:00
Bartosz Taudul
e975c4d7bf
Also retrieve external thread names.
2019-08-16 19:49:16 +02:00
Bartosz Taudul
134a8c5d2a
Fix positioning.
2019-08-16 19:32:25 +02:00
Bartosz Taudul
edd5338faa
Display untracked threads.
2019-08-16 19:30:46 +02:00
Bartosz Taudul
ccaf92afc4
Save/load external process names.
2019-08-16 19:24:38 +02:00
Bartosz Taudul
fe7f56b022
Implement retrieval of external process names.
2019-08-16 19:22:23 +02:00
Bartosz Taudul
56e6795c76
Add per-cpu context switch tooltips.
2019-08-16 18:39:03 +02:00
Bartosz Taudul
7e81f3250e
Add CPU tooltip.
2019-08-16 18:39:03 +02:00
Bartosz Taudul
8e71e2dba5
Draw per-CPU global context switch data.
2019-08-16 18:22:57 +02:00
Bartosz Taudul
c212661714
Allow determining whether thread is local to profiled program.
2019-08-16 17:59:25 +02:00
Bartosz Taudul
cef7e4b8d0
Save/load per-cpu context switches.
2019-08-16 16:51:18 +02:00
Bartosz Taudul
8bc4258e29
Display count of per-cpu context switch data.
2019-08-16 16:51:18 +02:00
Bartosz Taudul
a92034d59d
CPU data accessor.
2019-08-16 16:51:18 +02:00
Bartosz Taudul
69527d2f71
Collect per-cpu context switch data.
2019-08-16 16:51:18 +02:00
Bartosz Taudul
9e0fe226df
Add small font.
2019-08-16 16:02:57 +02:00
Bartosz Taudul
42c71d7e46
Fix loading old traces.
2019-08-16 00:24:29 +02:00
Bartosz Taudul
95879d2bd9
Use proper UI element to indicate selectable items.
2019-08-16 00:12:03 +02:00
Bartosz Taudul
889eddd646
Pack ContextSwitchData. Saves 3 bytes per context switch region.
2019-08-15 23:53:47 +02:00
Bartosz Taudul
e90ddf7ee5
Don't search whole data set twice.
2019-08-15 23:03:37 +02:00
Bartosz Taudul
c22c259a13
Pack time and thread in MemEvent.
...
This saves 4 bytes per logged memory allocation. Memory savings for
selected traces:
android 2945 MB -> 2766 MB
chicken 2261 MB -> 2245 MB
q3bsp-mt 6085 MB -> 6043 MB
mem 6788 MB -> 6468 MB
2019-08-15 23:02:43 +02:00
Bartosz Taudul
9618ee3581
Fix skipping locks.
2019-08-15 22:24:27 +02:00
Bartosz Taudul
e43a57f6b3
Remove irrelevant comments.
2019-08-15 21:51:47 +02:00
Bartosz Taudul
a635e54a79
Pack MessageData.
2019-08-15 21:42:24 +02:00
Bartosz Taudul
04c8830f86
Cosmetics.
2019-08-15 21:38:00 +02:00
Bartosz Taudul
45401fc54c
Use proper variable name.
2019-08-15 21:34:19 +02:00
Bartosz Taudul
8b73dece98
Preserve magic time values when loading old traces.
2019-08-15 21:30:37 +02:00
Bartosz Taudul
41beff29a9
Remove redundant GetTimeBegin().
...
Traces now start at zero time.
2019-08-15 21:04:20 +02:00
Bartosz Taudul
c9d7b96c81
Prevent int16_t -> int64_t promotion on negative numbers.
2019-08-15 20:58:16 +02:00
Bartosz Taudul
3db3952135
Hackfix for broken lock terminate times.
2019-08-15 20:45:00 +02:00
Bartosz Taudul
5e20b3f28a
Pack time and source location in LockEvent.
2019-08-15 20:39:16 +02:00
Bartosz Taudul
bf3ad57456
Pack start time and srcloc together in ZoneEvent.
...
This reduces ZoneEvent struct size by 2 bytes. Memory savings on various
captures:
10.62 GB -> 10.29 GB
2342 MB -> 2276 MB
1706 MB -> 1635 MB
6277 MB -> 6085 MB
2019-08-15 20:17:36 +02:00
Bartosz Taudul
f5775a2d6e
Display list of CPUs on which zone was running.
2019-08-15 20:17:36 +02:00
Bartosz Taudul
042e6c9e11
Set initial time of old traces to 0.
2019-08-15 20:17:36 +02:00
Bartosz Taudul
350e526ec0
Fix crash when zone exists before thread context switches appear.
2019-08-15 20:17:36 +02:00
Bartosz Taudul
b322d20c19
Store received timestamps offset to 0.
2019-08-15 20:17:36 +02:00
Bartosz Taudul
659907c972
Store srcloc identifiers using 16 bit.
...
This reduces various structure sizes by 2 bytes. Memory usage reduction
on various traces:
big 11 GB -> 10.62 GB
chicken 2436 MB -> 2342 MB
drl-light-big 1761 MB -> 1706 MB
q3bsp-mt 6469 MB -> 6277 MB
2019-08-15 20:15:48 +02:00
Bartosz Taudul
416113fdcb
Drop support for ETC1 frame images.
2019-08-15 16:29:50 +02:00
Bartosz Taudul
32c7d13159
Count size of some more structures.
2019-08-15 14:15:40 +02:00
Bartosz Taudul
aa00b1c4c4
Add Win10 wait reasons.
2019-08-15 01:48:50 +02:00
Bartosz Taudul
690a6d12d7
Properly handle incomplete context switch data.
2019-08-14 22:10:54 +02:00
Bartosz Taudul
7549c50bab
Fix time range reset condition.
2019-08-14 21:53:09 +02:00
Bartosz Taudul
26f417a841
Add option to display running time in find zone menu.
2019-08-14 21:33:43 +02:00
Bartosz Taudul
9ec0724ffb
Support dynamic recalculation of min, max and total time.
2019-08-14 21:33:42 +02:00
Bartosz Taudul
ee77ff020a
Optimize calculation of zone running time.
2019-08-14 20:47:21 +02:00
Bartosz Taudul
a194c93740
Allow checking if context switch data is available.
2019-08-14 20:26:55 +02:00
Bartosz Taudul
9a364fe5fe
Cache context switch data queries.
2019-08-14 20:16:11 +02:00
Bartosz Taudul
a5ef38812e
Display list of regions where thread was waiting.
2019-08-14 18:28:52 +02:00
Bartosz Taudul
d520f1cc48
Display zone running time in zone tooltip.
2019-08-14 18:28:52 +02:00
Bartosz Taudul
1ae540c7a1
Display zone running time in zone info window.
2019-08-14 18:28:52 +02:00
Bartosz Taudul
858c94e12e
Add interface for calculation zone running time.
2019-08-14 18:28:52 +02:00
Bartosz Taudul
0b12db5ee6
Display number of thread running state regions.
2019-08-14 17:36:19 +02:00
Bartosz Taudul
fadac0b433
Display thread running time.
2019-08-14 17:12:48 +02:00
Bartosz Taudul
3e01ca3269
Calculate how long thread was in running time.
2019-08-14 17:12:48 +02:00
Bartosz Taudul
72918cda19
Include recorded context switches in thread lifetime.
2019-08-14 17:03:33 +02:00
Bartosz Taudul
e39b1abce5
Handle linux wait states.
2019-08-14 14:02:31 +02:00
Bartosz Taudul
0bb0c10e3c
Revert "Save one byte on ContextSwitchData."
...
Counting bits is hard, let's go shopping.
2019-08-14 13:55:05 +02:00
Bartosz Taudul
3996516fce
One more SetThreadName() to change.
2019-08-14 02:27:01 +02:00
Bartosz Taudul
71a5cffc13
Add context switch tooltips.
2019-08-13 16:20:43 +02:00
Bartosz Taudul
f285e0f5cc
Save one byte on ContextSwitchData.
2019-08-13 15:16:46 +02:00
Bartosz Taudul
d77c87ae1c
Allow disabling context switch drawing.
2019-08-13 15:16:46 +02:00
Bartosz Taudul
874a2596f7
Improve context switches drawing.
2019-08-13 15:16:46 +02:00
Bartosz Taudul
7f856a1b16
Very bad context switch visualization.
2019-08-13 13:10:37 +02:00
Bartosz Taudul
9417ad994d
Save/load context switch data.
2019-08-13 13:10:37 +02:00
Bartosz Taudul
1c937ad9bb
Implement skipping frame image data.
2019-08-13 02:35:32 +02:00
Bartosz Taudul
8c494eabbf
Display number of context switch regions.
2019-08-13 02:35:32 +02:00
Bartosz Taudul
0b03fed61c
Add context switch accessor.
2019-08-13 02:35:32 +02:00
Bartosz Taudul
419f74280d
Store context switches.
2019-08-13 02:35:32 +02:00
Bartosz Taudul
8aa0be39d5
Drop support for CPU id queries.
2019-08-12 23:05:34 +02:00
Bartosz Taudul
d6f32a0839
Serialize lock processing.
...
This makes is much easier to process on the server and opens new
optimization possibilities. It also fixes theoretical problems, which
may be caused by invalid ordering of events with the same timestamp.
2019-08-12 13:51:01 +02:00
Bartosz Taudul
6398ecb344
Drop support for pre-0.4 traces.
2019-08-12 12:36:37 +02:00
Bartosz Taudul
154c902e03
Handle legacy file versions.
2019-08-12 12:36:37 +02:00
Bartosz Taudul
a9b41eb657
Rework processing bad files.
2019-08-12 12:04:27 +02:00
Bartosz Taudul
9b6328f962
Release 0.5.0.
2019-08-10 22:14:14 +02:00
Bartosz Taudul
530f293c49
Better way to handle auto scrolling.
2019-08-10 22:06:51 +02:00
Bartosz Taudul
8ae90a6cbd
Merge branch 'connection-popup'
2019-08-04 16:20:02 +02:00
Bartosz Taudul
853e9c17e3
Display client address.
2019-08-04 15:56:52 +02:00
Bartosz Taudul
07da2e506a
Fix deadlock problems.
2019-08-04 15:55:42 +02:00
Rokas Kupstys
b391e4c21a
Fix multiple build errors when compiling with MinGW.
2019-08-04 15:49:46 +03:00
Rokas Kupstys
b24ac75111
Move connection window into a popup when connected.
2019-08-04 13:58:43 +03:00
Bartosz Taudul
eed7039853
Another GPU time adjust fix.
2019-08-04 01:42:44 +02:00
Bartosz Taudul
e87b8d455e
Use Theil estimator randomized approximation.
2019-08-04 01:40:11 +02:00
Bartosz Taudul
6898fd9e42
GPU time adjust fixes.
2019-08-04 00:38:08 +02:00
Bartosz Taudul
9b7384b407
Fix multiple GPU drift entry fields.
2019-08-04 00:33:31 +02:00
Bartosz Taudul
323c37bd33
Fix GPU zone search.
2019-08-04 00:30:09 +02:00
Bartosz Taudul
a642abfde0
Implement automatic GPU clock drift calculation.
2019-08-04 00:23:23 +02:00
Bartosz Taudul
da88e32887
Display FPS counts next to frame times.
2019-08-03 15:20:31 +02:00
Bartosz Taudul
6c958f6177
Increase height of frame graph.
2019-08-03 14:55:08 +02:00
Bartosz Taudul
58003e7a6b
Draw target frame time lines.
2019-08-03 14:55:08 +02:00
Bartosz Taudul
a76622d17a
Cache last searched ThreadData.
2019-08-03 14:35:01 +02:00
Bartosz Taudul
12969ee497
Track thread context.
...
This change exploits the fact that events are processed in batches
originating from a single thread. A single message changing thread
context is enough to handle multiple messages, as opposed to inclusion
of thread identifier in each message.
2019-08-02 20:18:08 +02:00
Bartosz Taudul
9b6c405485
Bin number shouldn't be floating point.
2019-08-02 19:43:08 +02:00
Bartosz Taudul
a4e7a341c0
Proper handling of disconnect request.
2019-08-01 23:14:09 +02:00
Bartosz Taudul
344d36086f
Simplify loop.
2019-07-31 18:53:51 +02:00
Bartosz Taudul
f41834370c
Also display number of visible messages.
2019-07-31 02:16:14 +02:00
Bartosz Taudul
ccd88a9e27
Add text coloring to memory window.
2019-07-31 02:06:01 +02:00
Bartosz Taudul
68df815ef6
Display total message count.
2019-07-31 00:34:24 +02:00
Bartosz Taudul
5dff7b5d1e
AVX2 version of plot min max calculation.
...
Slightly faster (~5%) than the autovectorized serial code.
2019-07-29 20:59:22 +02:00
Bartosz Taudul
7a878cf4c7
Pause playback when playback window is closed.
2019-07-29 01:51:45 +02:00
Bartosz Taudul
461f49feb8
Fix drawing zones at extreme zoom out levels.
...
This is needed due to int64_t -> uint64_t zone end cast hack. There are
no side effects: zero time represents start of the timer, which would be
unix epoch or system bootup time.
2019-07-28 01:58:59 +02:00
Bartosz Taudul
2e8d20b6e8
Keep zone info windows headers at top.
2019-07-27 13:28:18 +02:00
Bartosz Taudul
1afcd24dc6
Use big font in zone info windows.
2019-07-27 13:25:31 +02:00
Bartosz Taudul
245c6f9f01
Use big font in lock info window.
2019-07-27 13:18:59 +02:00
Bartosz Taudul
93195b6647
Move trace version display to trace statistics section.
2019-07-27 13:14:44 +02:00
Bartosz Taudul
2654a3010c
Keep trace info header at top of the window.
2019-07-27 13:13:50 +02:00
Bartosz Taudul
e1af87744b
Use less space for call stack tree headers.
2019-07-27 13:10:53 +02:00
Bartosz Taudul
fb11d67d8e
Keep memory window header at top.
2019-07-27 13:06:23 +02:00
Bartosz Taudul
5c3095707a
Filter out invalid Windows filename characters.
...
Do so even on unix, to allow easy transfer of user config between
different machines.
2019-07-27 01:21:11 +02:00
Bartosz Taudul
a7ef99d0b0
Keep find zone, compare headers at top.
2019-07-26 23:43:41 +02:00
Bartosz Taudul
f2cdb64aae
Display trace descriptions in compare menu.
2019-07-26 23:33:49 +02:00
Bartosz Taudul
be3b458f28
Load second trace user data in compare menu.
2019-07-26 23:25:03 +02:00
Bartosz Taudul
e5d5af84fd
Allow setting custom description of the trace.
2019-07-26 23:21:28 +02:00
Bartosz Taudul
c7e32a16ec
Assert on invalid file names.
2019-07-26 23:15:12 +02:00
Bartosz Taudul
27965e8690
Add user data storage handler.
2019-07-26 23:15:12 +02:00
Bartosz Taudul
34cc7183d0
Trace-specific save path retrieval.
2019-07-26 23:15:12 +02:00
Bartosz Taudul
3ec1771f5a
Move config directory retrieval to a separate function.
2019-07-26 22:42:50 +02:00
Bartosz Taudul
c1b70c6519
Display histogram time range on histogram.
2019-07-26 22:25:21 +02:00
Bartosz Taudul
5f96c55a3e
Add background tasks notification tooltip.
2019-07-25 21:21:20 +02:00
Bartosz Taudul
9f29ddd562
Messages window should be scrollable due to thread list.
2019-07-25 20:50:30 +02:00
Bartosz Taudul
d3e8fe0133
Add messages filter clear button.
2019-07-25 20:49:44 +02:00
Bartosz Taudul
0f574b5547
Verify source file modification time against capture time.
2019-07-25 20:44:10 +02:00
Bartosz Taudul
c4b472b6e0
Ditto for call stack window.
2019-07-25 20:34:35 +02:00
Bartosz Taudul
269c3d4530
Keep statistics window headers always on top of the window.
2019-07-25 19:57:29 +02:00
Bartosz Taudul
2291b91ee0
Remove unnecessary separators.
2019-07-25 19:50:22 +02:00
Bartosz Taudul
30f76d34a3
Fix printf warnings.
2019-07-25 18:41:52 +02:00
Bartosz Taudul
37c76edcd8
Explicitly require long long abs().
2019-07-25 18:36:27 +02:00
Bartosz Taudul
1b79c35aac
Don't use char8_t.
2019-07-25 12:58:16 +02:00
Bartosz Taudul
e5a3d7aa25
Workaround scroll-to-message regression.
2019-07-24 21:40:39 +02:00
Bartosz Taudul
9ad9045078
Disable messages following when focusing on a message.
2019-07-24 02:21:51 +02:00
Bartosz Taudul
dc49f2f76a
Move DXT1 index conversion to server.
2019-07-19 21:46:58 +02:00
Bartosz Taudul
5da2076214
Add optional 2x zoom to frame images playback.
2019-07-19 00:51:52 +02:00
Bartosz Taudul
1c0c5f5282
Disable bilinear filtering for frame images.
2019-07-19 00:51:42 +02:00
Bartosz Taudul
eceff55f5a
Add message filtering.
2019-07-13 01:48:43 +02:00
Bartosz Taudul
387674a40a
Auto-scroll message list to bottom.
2019-07-13 01:25:37 +02:00
Bartosz Taudul
bcecd6e3a6
Always keep message list options at top.
2019-07-13 00:40:02 +02:00
Bartosz Taudul
c48ab4cb23
Use big font in trace information window.
2019-07-12 19:19:36 +02:00
Bartosz Taudul
7fb9bde9e9
Pass big font to TracyView.
2019-07-12 19:16:56 +02:00
Bartosz Taudul
fc28f827bc
Rearrange trace information window.
2019-07-12 19:12:04 +02:00
Bartosz Taudul
2e774f4626
Save/load application info.
2019-07-12 18:45:35 +02:00
Bartosz Taudul
8c9d46ef29
Display application info in info window.
2019-07-12 18:39:07 +02:00
Bartosz Taudul
d64ab7db5a
Store app info messages.
2019-07-12 18:34:46 +02:00
Bartosz Taudul
689f4999e3
Reorder threads by drag and drop.
2019-07-11 20:29:20 +02:00
Bartosz Taudul
29d8911c6b
Fix Vector::erase().
2019-07-11 20:29:20 +02:00
Bartosz Taudul
6b06b64caf
Smaller histogram controls.
2019-06-30 18:11:19 +02:00
Bartosz Taudul
10bcc8c770
Switch to DXT1 textures in profiler utility.
2019-06-27 19:14:51 +02:00
Bartosz Taudul
7dc7ece2bd
Add staging area for frame images.
...
Compressing frame images on a separate thread may cause frame image
arrival before frames are sent. Fix this issue by creating a staging
area in which frame images will wait for frames to arrive.
This probably breaks playback functionality, as non-existent frames may
be queried, but this problem seems to be very hard to find, so let's
ignore it for now.
2019-06-27 13:24:35 +02:00
Bartosz Taudul
bb35f9a897
Compress frame images in a separate thread.
2019-06-27 13:24:35 +02:00
Bartosz Taudul
fc106079c5
Remove CPU migration highlight for zones.
2019-06-26 21:35:09 +02:00
Bartosz Taudul
bc3c375b02
Display crash icon in notification area.
2019-06-26 21:02:04 +02:00
Bartosz Taudul
b8794f64be
Extract crash tooltip to a separate function.
2019-06-26 21:01:54 +02:00
Bartosz Taudul
79bfac9ca9
Use proper popcnt for gcc/clang (including cygwin).
2019-06-24 18:56:04 +02:00
Bartosz Taudul
a8dcd5d153
Ctrl-click on frame in frame overview to show playback window.
2019-06-23 00:11:46 +02:00
Bartosz Taudul
f125254d14
Cosmetics.
2019-06-23 00:00:16 +02:00
Bartosz Taudul
2f707bd152
Improve frame label drawing logic.
2019-06-22 23:49:30 +02:00
Bartosz Taudul
7217a99dc2
Always show at least one pixel of a frame in frame overview.
2019-06-22 22:48:32 +02:00
Bartosz Taudul
c48cd10f35
Don't divide by zero in zero-length zones.
2019-06-22 22:42:57 +02:00
Bartosz Taudul
1d4117f515
Fix typo.
2019-06-22 14:55:01 +02:00
Bartosz Taudul
ad26eaa9f1
Don't put "select/unselect all" buttons in a separate line.
2019-06-22 14:43:58 +02:00
Bartosz Taudul
0944eab707
Add background tasks icon.
2019-06-22 14:37:17 +02:00
Bartosz Taudul
e33690c5f3
Allow switching whitespace visibility in source code view.
2019-06-22 14:24:39 +02:00
Bartosz Taudul
18cef20db9
Silence signed/unsigned comparison warnings.
2019-06-22 14:15:25 +02:00
Bartosz Taudul
8f7be5a0fa
Allow only 2^32-1 frame images.
2019-06-22 14:11:45 +02:00
Bartosz Taudul
fadf8e3e0a
Can't read negative number of bytes.
...
This completely ignores error handling, which probably should be added.
The code behavior doesn't change, as the existing comparisons and
asserts already promoted the signed value to unsigned.
2019-06-22 14:08:48 +02:00
Bartosz Taudul
1c41229766
Use proper type for buffer size comparison.
2019-06-22 14:07:53 +02:00
Bartosz Taudul
70a7033a64
Use proper type for iteration.
2019-06-22 14:07:26 +02:00
Bartosz Taudul
1ea647a1dd
Use proper type for srcloc highlight decay value.
2019-06-22 14:06:25 +02:00
Bartosz Taudul
aaefd6e1d6
Simplify code.
2019-06-22 14:06:10 +02:00
Bartosz Taudul
6a82f666a7
Cosmetics.
2019-06-22 14:05:18 +02:00
Bartosz Taudul
54ae4c84ba
Silence warning about unused variable.
2019-06-22 14:04:48 +02:00
Bartosz Taudul
de953bfaa8
Use proper data type for callstack storage in GPU zones.
2019-06-22 14:04:27 +02:00
Bartosz Taudul
323f0e1ae3
Don't create variable for exception in catch block.
2019-06-22 13:41:24 +02:00
Bartosz Taudul
eb4c7ca9ea
Ignore useless warnings.
2019-06-22 13:40:00 +02:00
Bartosz Taudul
a3ce08a9f9
Display zone time as percentage of average zone time.
2019-06-22 13:22:13 +02:00
Bartosz Taudul
5fde56d96a
Remove hidden zone time without profiling tooltip.
2019-06-22 13:10:46 +02:00
Bartosz Taudul
850815534e
Insert frame mark at beginning of on-demand connection.
2019-06-21 19:39:41 +02:00
Bartosz Taudul
659ef87974
Animate highlighted messages on the timeline.
2019-06-21 14:25:51 +02:00
Bartosz Taudul
bb44e80e5a
Use smaller UI elements in selected places.
2019-06-21 14:15:46 +02:00
Bartosz Taudul
8259816de3
Improve playback interruptions on user input.
2019-06-21 13:08:41 +02:00
Bartosz Taudul
ae4f9663aa
Selecting frames stops playback.
2019-06-19 20:05:23 +02:00
Bartosz Taudul
51135c1d20
Pulse hover-info line on histograms.
2019-06-19 20:01:41 +02:00
Bartosz Taudul
d44c4b00fb
Implement outliers cutoff in compare menu.
2019-06-18 22:27:25 +02:00
Bartosz Taudul
1a32edebf2
Extract text printing functions.
2019-06-18 20:43:28 +02:00
Bartosz Taudul
99e638b3fc
Normalize values during compare by default.
2019-06-18 19:41:20 +02:00
Bartosz Taudul
53863fe0e7
Set sane initial window sizes.
2019-06-17 23:49:10 +02:00
Bartosz Taudul
38ebc2e989
Add icon to "go to frame" button.
2019-06-17 01:13:32 +02:00
Bartosz Taudul
eed849c589
Add reset button to min bin value fields.
2019-06-17 01:12:24 +02:00
Bartosz Taudul
add5c0fb87
Perform proper division.
2019-06-17 01:09:25 +02:00
Bartosz Taudul
b2bbd95430
Changing log time requires bin cache reset.
2019-06-17 01:05:46 +02:00
Bartosz Taudul
f27cead040
Add hovered frame markers on histogram.
2019-06-17 01:01:56 +02:00
Bartosz Taudul
099933e66d
Add outlier removal to frame time histogram.
2019-06-17 00:44:34 +02:00
Bartosz Taudul
efe65e2e64
Display currently hovered zone on histogram.
2019-06-16 17:14:47 +02:00
Bartosz Taudul
6a4f7ce1ca
Track currently hovered zone.
2019-06-16 17:05:56 +02:00
Bartosz Taudul
6e8b5381a5
Ctrl-click on a zone to go straight to zone statistics.
2019-06-16 17:00:25 +02:00
Bartosz Taudul
d361261993
Open playback from frame using ctrl+left click.
2019-06-16 16:49:21 +02:00
Bartosz Taudul
d683699ba9
Don't recalculate histogram bins every frame.
...
This remedies slowdown that was only visible when a histogram of a large
number of zones (~100 million) was displayed. The slowdown was caused by
std::accumulate() calls over whole set of zones.
2019-06-16 16:41:52 +02:00
Bartosz Taudul
14398dd4e8
Move bin setup closer to bin usage.
2019-06-16 16:29:18 +02:00
Bartosz Taudul
761405e2a7
Clip histogram highlight to graph area.
2019-06-16 16:23:24 +02:00
Bartosz Taudul
89f798158f
Implement outlier cutoff on histogram.
2019-06-16 01:58:44 +02:00
Bartosz Taudul
8009c6412e
Add "minimum values in bin" parameter to histogram.
2019-06-16 01:58:44 +02:00
Bartosz Taudul
4186a71ee7
Cache sorted begin and end iterators.
2019-06-16 01:28:36 +02:00
Bartosz Taudul
26f223e4cd
Don't shrink histogram bin buffers.
2019-06-16 00:25:22 +02:00
Bartosz Taudul
31a4a45b14
Ignore memory free faults if running on apple.
...
There's a case in MoltenVK initialization where overloading operator new
and operator delete works for std::string destruction, but not
construction.
2019-06-13 14:15:17 +02:00
Bartosz Taudul
516bdcec9b
Rewrite playback logic.
2019-06-13 00:12:06 +02:00
Bartosz Taudul
c43f8562ec
Rename "sync view" to "sync timeline".
2019-06-12 23:46:14 +02:00
Bartosz Taudul
bdfd2c07be
Right-click on a frame to set frame in playback.
2019-06-12 23:14:19 +02:00
Bartosz Taudul
afa967afb0
Flip frame image if need be.
2019-06-12 15:30:08 +02:00
Bartosz Taudul
37d1457b44
Frame image may need flipping.
2019-06-12 15:28:32 +02:00
Bartosz Taudul
29fd4b1fe9
Don't animate frame changes during playback.
2019-06-12 13:25:45 +02:00
Bartosz Taudul
a936f22a91
Add frame images playback window.
2019-06-12 01:48:11 +02:00
Bartosz Taudul
eb6ac5e6e1
Store frame reference in frame images.
2019-06-12 00:55:02 +02:00
Bartosz Taudul
38b76ea32d
Add frame images vector accessor.
2019-06-12 00:14:44 +02:00
Bartosz Taudul
5f8eadfb16
Release zone id stack.
2019-06-09 17:56:41 +02:00
Bartosz Taudul
a3173965d6
Same for Vis() reference.
2019-06-09 17:51:37 +02:00
Bartosz Taudul
2aa6f70765
Drawing locks may invalidate Vis() iterator.
2019-06-09 17:46:59 +02:00
Bartosz Taudul
b1f8d9fba1
Send server termination query on server disconnect.
2019-06-09 16:10:49 +02:00
Bartosz Taudul
2c780f1af4
Allow sending immediate termination query from server.
2019-06-09 16:10:49 +02:00
Bartosz Taudul
d6d7b82529
Ignore invalid frame images in on-demand mode.
2019-06-09 15:37:49 +02:00
Bartosz Taudul
50cda7720f
Handle frame image instrumentation failures.
2019-06-09 13:44:53 +02:00
Bartosz Taudul
bef1988800
Compress frame images using LZ4.
2019-06-08 12:17:18 +02:00
Bartosz Taudul
fc5a8f7e3a
Assign frame image to the correct frame (including offset).
2019-06-07 20:13:08 +02:00
Bartosz Taudul
8c912890f0
Proper case in includes.
2019-06-07 01:35:35 +02:00
Bartosz Taudul
ff5170d0e9
Silence warnings.
2019-06-07 01:03:28 +02:00
Bartosz Taudul
42a30bffe1
Frame images are now ETC1 compressed.
2019-06-07 00:31:51 +02:00
Bartosz Taudul
646e7327b8
Show loading progress of frame images.
2019-06-06 23:40:37 +02:00
Bartosz Taudul
f8a4909c96
Display number of frame images in a trace.
2019-06-06 23:21:36 +02:00
Bartosz Taudul
9cd95db4e3
Delay creation of frame image texture.
2019-06-06 23:14:49 +02:00
Bartosz Taudul
129155946b
Actually set current texture pointer.
2019-06-06 23:10:01 +02:00
Bartosz Taudul
6b2741ccdb
Save/load frame images.
2019-06-06 23:08:19 +02:00
Bartosz Taudul
6ae4afa0f4
Display frame images also on frame time graph.
2019-06-06 22:43:39 +02:00
Bartosz Taudul
08fb2b7337
Tooltip cosmetics.
2019-06-06 22:32:20 +02:00
Bartosz Taudul
c46576a68c
Flip UV.
2019-06-06 22:22:57 +02:00
Bartosz Taudul
cd2f572a2f
Use proper index.
2019-06-06 22:22:57 +02:00
Bartosz Taudul
beea31edd0
Show frame images in frame tooltips.
2019-06-06 22:22:57 +02:00
Bartosz Taudul
82d4fe7236
Add texture wrapper.
2019-06-06 22:14:51 +02:00
Bartosz Taudul
af56f41e32
Add frame image accessor.
2019-06-06 22:14:51 +02:00
Bartosz Taudul
34b84bb284
Add frame image index to frame data.
2019-06-06 21:44:48 +02:00
Bartosz Taudul
e5bb6011c5
Frame image transfer prototype.
2019-06-06 21:39:54 +02:00
Bartosz Taudul
a37348c5c7
Increase contrast.
2019-06-06 01:45:41 +02:00
Bartosz Taudul
2b917c6adf
Draw index area labels with contrast.
2019-06-06 01:40:23 +02:00
Bartosz Taudul
45039fc417
Don't format colored text where not necessary.
2019-06-03 01:36:03 +02:00
Bartosz Taudul
4f5286a860
Add unformatted colored text extension function.
2019-06-03 01:35:53 +02:00
Bartosz Taudul
ff6768986e
Move imgui extension function to an appropriate place.
2019-06-03 01:35:32 +02:00
Bartosz Taudul
c433e76c7a
Use TextUnformatted in TextCentered.
2019-06-03 01:28:45 +02:00
Bartosz Taudul
42fefde161
Protect against plot range equal zero.
2019-06-03 01:19:01 +02:00
Bartosz Taudul
79215ea73e
Implement linked selection in compare menu.
2019-06-02 15:40:19 +02:00
Bartosz Taudul
c05766e637
Display notification about worker background tasks.
2019-06-02 15:00:50 +02:00
Bartosz Taudul
5681096486
Track status of worker background tasks.
2019-06-02 15:00:38 +02:00
Bartosz Taudul
96b1df67b9
Get proper yMin, yMax values.
2019-06-02 13:58:30 +02:00
Bartosz Taudul
9bbaab8897
Draw on a correct window.
2019-06-02 13:40:35 +02:00
Bartosz Taudul
3a561b4eed
Save thread state should be atomic.
2019-06-02 13:15:55 +02:00
Bartosz Taudul
0059cb3ab0
Switch default namespace display to "short".
2019-06-02 12:57:42 +02:00
Bartosz Taudul
7aca6b72d1
Don't block worker when in save file dialog.
2019-05-28 19:57:18 +02:00
Bartosz Taudul
c93170cd42
Move saving trace dump to a separate thread.
2019-05-28 19:56:18 +02:00
Bartosz Taudul
845f3a2ddf
Use std::shared_mutex for locking worker access.
2019-05-28 19:21:53 +02:00
Bartosz Taudul
145ca30df9
There's no __popcnt64 in 32 bit winapi.
2019-05-28 18:18:54 +02:00
Bartosz Taudul
b3812146cb
Fix atomics initialization.
2019-05-27 14:09:55 +02:00
Bartosz Taudul
61d775ecc8
Calculate end point before loop.
2019-05-19 16:26:59 +02:00
Bartosz Taudul
8f85a0da2c
Don't check twice for the same thing.
2019-05-19 16:23:19 +02:00
Bartosz Taudul
007e434a05
Force inline FillPages().
2019-05-19 13:46:53 +02:00
Bartosz Taudul
9122d3516c
Force inline GetPage().
2019-05-19 13:45:02 +02:00
Bartosz Taudul
30c398cd96
Don't allocate memory for empty pages in memory map.
2019-05-19 13:15:54 +02:00
Bartosz Taudul
952e466287
Rearrange code.
2019-05-19 12:47:45 +02:00
Bartosz Taudul
b95d834891
Split contended and uncontended locks in lock list.
2019-05-12 16:26:19 +02:00
Bartosz Taudul
0da1e8551f
Track lock contention status.
2019-05-12 16:17:17 +02:00
Bartosz Taudul
a714cd4369
Typo.
2019-05-12 15:59:53 +02:00
Bartosz Taudul
63066cf6a5
Fix logic error.
2019-05-12 15:48:25 +02:00
Bartosz Taudul
e612cef6c2
Optimize drawing frames.
2019-05-11 13:47:06 +02:00
Bartosz Taudul
7cc5149355
Improve timeline message tooltips.
2019-05-10 20:36:06 +02:00
Bartosz Taudul
74575250a5
Save message color data in trace dumps.
2019-05-10 20:32:47 +02:00
Bartosz Taudul
8cbd83c752
Use message color on message lists.
2019-05-10 20:26:27 +02:00
Bartosz Taudul
4850e19ebd
Store color in message data.
2019-05-10 20:26:27 +02:00
Bartosz Taudul
797ebd3caf
Cosmetics.
2019-05-10 20:20:08 +02:00
Bartosz Taudul
efc54babe3
Transfer of colored messages.
2019-05-10 20:17:44 +02:00
Bartosz Taudul
6a09229ae7
Remove error bars and collection cost from GPU zone display.
...
There's no way to know how much this takes on a GPU.
2019-05-10 02:31:23 +02:00
Bartosz Taudul
721a818dcc
Visual transition of error bars and collection cost markers.
2019-05-10 02:27:42 +02:00
Bartosz Taudul
54c8a882c9
Allow restricting call stack frame tree to active allocations.
2019-05-09 13:37:28 +02:00
Bartosz Taudul
a18a6869bc
Allow limiting frame stats to visible frames.
2019-04-26 23:19:31 +02:00
Bartosz Taudul
fdd96fe251
Allow changing frame set from trace info window.
2019-04-26 22:49:36 +02:00
Bartosz Taudul
26aa3a23fb
Display number of visible data points on a plot.
2019-04-23 17:17:25 +02:00
Bartosz Taudul
a7886cf82c
Replace linear search with hash lookup.
2019-04-03 16:24:16 +02:00
Bartosz Taudul
78e8d4aefe
Display query backlog.
2019-04-01 19:55:54 +02:00
Bartosz Taudul
20e6813461
Store send queue size in mbps block.
2019-04-01 19:55:37 +02:00
Bartosz Taudul
9010b2c142
Put queries into queue if send buffer is full.
2019-04-01 19:47:29 +02:00
Bartosz Taudul
deeea0ee70
Track space left in send buffer.
2019-04-01 19:37:39 +02:00
Bartosz Taudul
57dff0abc9
Add server query queue.
2019-04-01 19:26:50 +02:00
Bartosz Taudul
c07c6d11b7
Define server query packet.
2019-04-01 19:21:53 +02:00
Bartosz Taudul
45750a05a1
Only smooth zoom now.
2019-04-01 18:39:09 +02:00
Bartosz Taudul
cd774b9e96
Store two entries in zone self time cache.
...
This accounts for situation when zone information window is open and a
tooltip for another zone is displayed.
2019-03-30 00:54:22 +01:00
Bartosz Taudul
48a07bf4f8
Cache zone self times.
2019-03-30 00:52:25 +01:00
Bartosz Taudul
fef417f286
Store total number of CPU and GPU zones in trace.
2019-03-27 01:46:54 +01:00
Bartosz Taudul
2e6ac050f4
Use custom vector swap.
2019-03-26 23:02:39 +01:00
Bartosz Taudul
6c5efbfdce
Implement custom vector swap.
2019-03-26 23:02:32 +01:00
Bartosz Taudul
a632d9e2a3
Add zone vector cache.
...
Zone children will be now collected in staging vectors. When the zone is
ended (and no children can be added anymore to it), a size-fitted vector
is allocated using slab allocation. The over-allocated vector is then
put into cache for use in future zones.
This is only active for vectors <= 8192 elements, or 64 KB (chosen
arbitrarily), to reduce time spent on copying memory.
Overall, this change should have the following effects:
- System memory allocation pressure reduction, due to re-usage of
vectors, which eliminates the need for constant growth.
- Reduction of memory usage, because children vectors are now fitted to
required size.
- Slight increase of zone processing time, due to memory copying?
2019-03-26 22:06:00 +01:00
Bartosz Taudul
11f4dcbf1e
Consistent variable naming.
2019-03-26 21:41:44 +01:00
Bartosz Taudul
52f76a45ed
Display separators for bin counts in compare menu.
2019-03-26 20:27:28 +01:00
Bartosz Taudul
99fca9e069
Fix loading old traces when skipping locks.
2019-03-26 20:25:29 +01:00
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