Bartosz Taudul
1d7ab70199
Non-memory tree callstacks are not needed.
2021-11-13 22:09:16 +01:00
Bartosz Taudul
b4726833e9
Cosmetics.
2021-11-13 22:09:10 +01:00
Bartosz Taudul
633cd1262c
Draw callstack tree for wait stacks.
2021-11-13 22:06:04 +01:00
Bartosz Taudul
5f9a0ab61f
Wait stacks mode selection.
2021-11-13 22:06:04 +01:00
Bartosz Taudul
4f6e9bbb65
Generic callstack tree builder.
...
Previously this was exclusive for memory callstacks.
2021-11-13 22:06:04 +01:00
Bartosz Taudul
c6be16dcd2
Rename PathData -> MemPathData.
2021-11-13 21:28:56 +01:00
Bartosz Taudul
a2547ccf1d
Rename CallstackFrameTree -> MemCallstackFrameTree.
2021-11-13 21:26:28 +01:00
Bartosz Taudul
98edee9b07
Change memory call stack tree icons.
2021-11-13 20:42:52 +01:00
Bartosz Taudul
667112c71f
Some old traces might have invalid image names.
2021-11-13 20:34:54 +01:00
Bartosz Taudul
0c7c3ae641
Time range limits for wait stacks.
2021-11-13 18:43:55 +01:00
Bartosz Taudul
94d4272c9c
Allow limiting wait stacks to certain threads.
2021-11-13 18:20:06 +01:00
Bartosz Taudul
265a39e7c9
Don't select out-of-context asm lines.
2021-11-13 17:35:02 +01:00
Bartosz Taudul
50627646c1
Don't highlight asm lines out of context on hover.
2021-11-13 16:36:46 +01:00
Bartosz Taudul
25316ddada
Display notification icon when context is limited.
2021-11-13 16:34:51 +01:00
Bartosz Taudul
cc425c4a2d
Separate function for checking asm function context.
2021-11-13 16:34:50 +01:00
Bartosz Taudul
9ba5180b04
Add wait stacks window.
2021-11-13 15:58:25 +01:00
Bartosz Taudul
45df37e3a9
Separate callstack table drawing functionality.
2021-11-13 15:56:57 +01:00
Bartosz Taudul
c1f6d6c9ce
Cosmetics.
2021-11-13 15:39:37 +01:00
Bartosz Taudul
14b469f219
Direct selection of find zone callstack.
2021-11-13 15:31:48 +01:00
Bartosz Taudul
151eadc69e
Direct selection of sample entry call stack index.
2021-11-13 15:15:49 +01:00
Bartosz Taudul
601f0a17df
Remove "Go to frame" button.
2021-11-13 15:13:35 +01:00
Bartosz Taudul
81c66ad126
Fix samples order on save, not load.
...
Sorting samples during load was a major mistake, as three different background
processing threads were concurrently accessing the samples table, and it was
being sorted in one of them!
2021-11-13 03:25:47 +01:00
Bartosz Taudul
0ab73e2aa7
Detect context switch samples during reconstruction.
2021-11-13 03:15:20 +01:00
Bartosz Taudul
484ed84252
Display context switch samples count.
2021-11-13 02:52:08 +01:00
Bartosz Taudul
d8d6423266
Context switch samples counting.
2021-11-13 02:47:39 +01:00
Bartosz Taudul
8ef212c26e
Determine if postponed callstacks are for context switches.
...
Samples are processed only when new context switch data has been received.
2021-11-13 02:44:54 +01:00
Bartosz Taudul
745b795d50
Detect context switch callstack samples.
...
Context switch callstack samples are not included in the sampling data
statistics (as these don't represent random sampling), but are rather put into
a separate dedicated data structure.
For this to work, a complete context switch data has to be available for the
callstack timestamp. There is no guarantee it will be present at the time it
is needed, so a second structure is added to allow postponing qualification of
callstacks.
2021-11-13 02:40:32 +01:00
Bartosz Taudul
5b799e0e45
Monitor when new context switch data is received.
2021-11-13 02:38:33 +01:00
Bartosz Taudul
00834ed32b
No need to pass time and callstack.
2021-11-13 02:26:11 +01:00
Bartosz Taudul
06c1bb4e59
Open callstack windows when clicking on context switch.
2021-11-13 01:34:49 +01:00
Bartosz Taudul
4b74777fcf
Display image name in callstack tooltips.
2021-11-13 01:31:28 +01:00
Bartosz Taudul
1200409a44
Display context switch wait call stack.
2021-11-13 01:21:47 +01:00
Bartosz Taudul
ce8e42f00b
Separate drawing callstack tooltip from drawing its contents.
2021-11-13 01:08:36 +01:00
Bartosz Taudul
f925da5e01
Handle fiber enter -> enter case (without leave in between).
2021-11-06 21:14:37 +01:00
Bartosz Taudul
d33de972f0
Properly show fiber context switch data.
2021-11-06 21:06:08 +01:00
Bartosz Taudul
40cd5435df
Fix context switch reconstruction condition.
2021-11-06 20:49:15 +01:00
Bartosz Taudul
69e5cf796d
Construct faux context switch data from fiber events.
2021-11-06 20:38:16 +01:00
Bartosz Taudul
efeed326bf
Context switch data may exists without CPU data.
2021-11-06 20:22:08 +01:00
Bartosz Taudul
904a444ea5
Label fiber threads across the UI.
2021-11-06 19:27:36 +01:00
Bartosz Taudul
0075050679
Allow checking if thread is a fiber.
2021-11-06 19:02:02 +01:00
Bartosz Taudul
3ede2a1345
Explicit tracking of fiber state in ThreadData.
...
This replaces the use of hard-to-track global state with well-defined accessor
functionality.
2021-11-06 18:55:29 +01:00
Bartosz Taudul
373a6fc19e
Add event debug routine.
2021-11-04 22:30:16 +01:00
Bartosz Taudul
4c774130ee
Allow direct switching from one fiber to another.
2021-11-04 17:51:32 +01:00
Bartosz Taudul
fceb065329
Fiber name transport.
2021-11-03 18:57:30 +01:00
Bartosz Taudul
211b202d8e
Process fiber entry and leave events.
2021-11-02 01:53:10 +01:00
Bartosz Taudul
b4e4c05088
Thread context data may be invalidated due to fibers.
2021-11-02 01:52:41 +01:00
Bartosz Taudul
d522af99b9
Threads may be mapped to fibers.
2021-11-02 01:51:54 +01:00
Bartosz Taudul
0718330016
Add fiber labels to places with thread information.
2021-11-02 01:48:28 +01:00
Bartosz Taudul
e5c44afdcb
Distinguish fiber threads with green color.
2021-11-02 01:48:07 +01:00
Bartosz Taudul
bb72bf10e9
Add fiber failures.
2021-11-02 01:47:31 +01:00
Bartosz Taudul
93b6d88c4c
Save/load fiber thread flag.
2021-11-02 01:46:29 +01:00
Bartosz Taudul
8f44f1c68b
Store fiber state is ThreadData.
2021-11-02 01:45:01 +01:00
Bartosz Taudul
8f6a911f1e
Save/load sum of values in plots.
2021-10-17 13:14:44 +02:00
Bartosz Taudul
0b190b1a69
Calculate sum of values in reconstructed memory plot.
2021-10-17 13:14:23 +02:00
Bartosz Taudul
04db76d5fd
Calculate plot values sum during data import.
2021-10-17 13:07:37 +02:00
Bartosz Taudul
facd2be33b
Display average plot value.
2021-10-17 13:05:10 +02:00
Bartosz Taudul
0bd1364c2f
Calculate plot values sum.
2021-10-17 13:04:56 +02:00
Bartosz Taudul
a1511a39bd
Delta-encode code information pointers.
2021-10-16 16:29:06 +02:00
Bartosz Taudul
dfb1ce64df
Sample data inconsistency warning.
2021-10-16 16:15:19 +02:00
Bartosz Taudul
bcaac7b53f
Add ~2 second overflow grace period.
...
This fixes issues when the GPU is actually permitted to report out-of-order
timestamps (e.g. when tasks are scheduled by the GPU, instead of being forced
to execute in submission order).
2021-10-11 00:29:24 +02:00
Bartosz Taudul
d3905bd4bb
Add context to zone text failures.
2021-10-10 14:14:33 +02:00
Bartosz Taudul
930ef77ea9
Add zone value failure context.
2021-10-10 14:12:13 +02:00
Bartosz Taudul
9300934fa5
Separate zone value and text failures.
2021-10-10 14:05:21 +02:00
Bartosz Taudul
07bc665d8c
Drop support for Cygwin.
2021-10-07 23:28:40 +02:00
Bartosz Taudul
b7a27d02af
Fix total time in find zone, if limit range is enabled.
2021-09-28 01:11:22 +02:00
Bartosz Taudul
9cb54982cb
Fix crash.
2021-09-27 18:13:45 +02:00
Bartosz Taudul
c2e94355f0
Add icon to samples label.
2021-09-27 02:07:02 +02:00
Bartosz Taudul
99f2d0e059
Fix vertical spacing in inline symbols list.
2021-09-27 01:54:37 +02:00
Bartosz Taudul
28ae970887
Remove trailing whitespace.
2021-09-27 01:54:15 +02:00
xavier
f37ef1affd
Display the samples after the groups in the "find zone" window
...
to make it clear they are filtered by selected group.
2021-09-23 21:03:56 +02:00
xavier
61670e30aa
Update samples statistics continuously in the "find zone" window
2021-09-23 21:03:56 +02:00
xavier
63acfe72e7
Apply group filters to the samples statistics in the "find zone" window
...
reduce memory by storing the thread ids next to the zones intead of
making zone lists per thread.
speed-up by reading the zones in linear order rather than bisecting
the whole list for each sample.
2021-09-23 21:03:56 +02:00
xavier
41130d2a69
Avoid useless work when there aren't any samples
2021-09-23 21:03:56 +02:00
xavier
1233b39b69
Move samples before groups in "find zone" window
...
and fix style
2021-09-23 21:03:56 +02:00
xavier
0089c832f7
Cache samples statistics in the "find zone" window
2021-09-23 21:03:56 +02:00
xavier
ed42c2388c
Add samples statistics to the "find zone" window
2021-09-23 21:03:56 +02:00
xavier
e4ce9f0f41
Include threadid in SampleDataRange
...
TODO: maybe make lists per thread to avoid increasing the packed structure by 2 bytes?
2021-09-23 21:03:56 +02:00
xavier
6b901a7156
Extract DrawSamplesStatistics()
2021-09-23 21:03:56 +02:00
Bartosz Taudul
4c220bdc14
Always display statistics mode selection.
...
Even if only one option is available.
2021-09-23 18:32:59 +02:00
Bartosz Taudul
f74818ece5
Make accumulation combo consistent.
2021-09-23 18:28:19 +02:00
Bartosz Taudul
bcfc4a4fa7
Fix message thread assignment in import-chrome.
2021-09-23 18:08:03 +02:00
Bartosz Taudul
dfb4020a92
Add missing include for intptr_t.
2021-08-22 13:38:28 +02:00
Bartosz Taudul
673dfd0f02
Update ImGui GLFW and OpenGL 3.x backends.
...
The new embedded ImGui OpenGL loader has been extended with a couple of
functions and definitions needed by TracyTexture.cpp.
2021-08-22 13:30:46 +02:00
Bartosz Taudul
30445b656f
Update ImGui to 1.84.1 + docking.
2021-08-21 00:52:30 +02:00
Bartosz Taudul
c82bf3915b
Extend thread expansion grace period to half a second.
...
Previously a framerate-dependent 10 frame count was used.
2021-08-19 00:24:11 +02:00
Bartosz Taudul
7304558bdf
Cycle through assembly blocks when right-clicking source line.
2021-07-26 01:21:58 +02:00
Bartosz Taudul
55a966f9c6
Fix assert.
2021-07-26 01:18:17 +02:00
Bartosz Taudul
06ae39d9cc
Fix debug build.
2021-07-18 16:34:24 +02:00
Bartosz Taudul
8b489c95ff
Rename slow branches/cache to branch/cache impact.
2021-07-18 16:15:32 +02:00
Bartosz Taudul
0e603a0997
Render relative hw samples values.
2021-07-18 16:15:32 +02:00
Bartosz Taudul
d0fad4fd39
Rename relative hw samples to "impact".
2021-07-18 16:15:31 +02:00
Bartosz Taudul
83b159b43b
Count hw stats, if relative mode is set.
2021-07-18 15:00:22 +02:00
Bartosz Taudul
fbf2c87a20
Include hw stats in AddrStatData.
2021-07-18 15:00:22 +02:00
Bartosz Taudul
e30608afbf
Store and pass AddrStat data in one data structure.
2021-07-18 15:00:22 +02:00
Bartosz Taudul
9c7a122d94
Implement counting relative hw samples data.
...
This exploits the fact that AddrStat has two data fields (local and ext) to
store branch and cache information.
2021-07-18 15:00:22 +02:00
Bartosz Taudul
8c78af4d00
Drop limitView from GatherIpHwStats interface.
2021-07-18 15:00:21 +02:00
Bartosz Taudul
a5e655d1ee
Add relative hw samples checkbox.
2021-07-18 15:00:21 +02:00
Bartosz Taudul
b4c1313a2e
Make hw stats cost a parameter.
2021-07-18 02:03:29 +02:00
Bartosz Taudul
50f7deb1a3
Merge pull request #243 from benvanik/patch-4
...
Indenting empty GPU zone tree nodes when grouped to keep zones aligned.
2021-07-17 20:48:43 +02:00
Ben Vanik
ba185b18f9
Indenting empty grouped CPU/GPU zone tree nodes to keep things aligned.
2021-07-17 11:46:29 -07:00
Ben Vanik
e3165c333b
Fixing unbalanced tree pop in grouped GPU zones.
2021-07-17 09:25:44 -07:00
Bartosz Taudul
edae542a48
Allow selecting image name for filtering from a list.
2021-07-11 19:43:51 +02:00
Bartosz Taudul
b6db644ac6
Add hasher and comparator for StringIdx.
2021-07-11 19:43:40 +02:00
Terence Rokop
68ec7abdf4
Move responsibility for spacing of combo box
...
Thereby fix a spurious horizontal separator bar.
2021-06-26 11:51:57 -07:00
Terence Rokop
d6fd252ce4
Add more spacing to pre-existing options
2021-06-26 10:41:24 -07:00
Terence Rokop
e105d2d96c
Aesthetic fixes to accumulation mode combo box
...
Shorter text fields and more spacing.
2021-06-26 10:41:23 -07:00
Terence Rokop
1dd117533e
Avoid non-reentrant option in sampling/symbol view
2021-06-26 10:41:23 -07:00
Terence Rokop
f000dce73f
Replace "enum class" switches with explicit casts
2021-06-26 08:30:15 -07:00
Terence Rokop
b392671a7a
Make time accumulation mode use combo box
2021-06-25 21:27:45 -07:00
Bartosz Taudul
9a22b8e83c
Cosmetics.
2021-06-23 20:43:46 +02:00
Bartosz Taudul
913463635a
Cosmetics.
2021-06-23 20:37:14 +02:00
Terence Rokop
9366e58d12
Introduce "Non-reentrant time" radio button
...
Add to the statistics view an option for "Non-reentrant
time", which displays the count of and time spent in zone
events which were the only appearances (at that time) of
their zones on their threads' stacks.
Besides the GUI changes, this involves:
- Introducing a tri-state accumulation mode to replace the
boolean "self time": now there's "Self time only",
"Child time", and "Non-reentrant time".
- Removing the separate "selfTotal" from SrcLocZonesSlim,
making "total" represent whichever of the now three options
is active, which in turn requires keeping track of the
accumulation mode in StatisticsCache and invalidating that
cache when the accumulation mode changes.
2021-06-20 17:56:15 -07:00
Terence Rokop
66053e37f7
Add non-reentrant stats to SourceLocationZones
...
Extend SourceLocationZones with fields to track the count
and time of non-reentrant zone events -- that is, zone
events which were the only appearances (at the time) of
those zones on their threads' stacks.
2021-06-20 17:56:15 -07:00
Terence Rokop
c90e39e06e
Keep track of zone appearances on thread stacks
...
Start keeping track, using the previously-introduced
SrcLocCountMap, of the number of appearances of each zone
on each thread's stack at a given time.
2021-06-20 17:56:15 -07:00
Terence Rokop
1f0b4656f4
Introduce SrcLocCountMap
...
Add to ThreadData a map from source location to a counter,
which will be used to keep track of the number of
appearances of zones with the corresponding source locations
on each thread's stack.
2021-06-20 17:56:14 -07:00
Terence Rokop
0a8ec09566
Introduce View::IsZoneReentry()
...
These two methods can search a timeline to determine whether
a given ZoneEvent is the only appearance of the given zone
on the current thread stack, or a re-entry.
2021-06-20 17:53:38 -07:00
Bartosz Taudul
0e0692b7f7
Don't display hw samples as time in selected lines summary.
2021-06-20 16:01:19 +02:00
Bartosz Taudul
e9aca02880
Make hw sample cost in source files relative to whole symbol.
2021-06-20 15:55:21 +02:00
Bartosz Taudul
846bde1a11
Narrow down search range.
2021-06-20 14:37:56 +02:00
Bartosz Taudul
15b42039bd
Add very early exit test.
2021-06-20 14:34:47 +02:00
Bartosz Taudul
d4b92e0fbe
Add early exit conditions.
2021-06-20 14:33:08 +02:00
Bartosz Taudul
a10d71b766
Switch loop order for better cache locality on the slow path.
2021-06-20 14:30:55 +02:00
Bartosz Taudul
a9a16b4d94
Narrow down search region.
2021-06-20 14:24:42 +02:00
Bartosz Taudul
22352dd29b
Select optimized path before entering loop.
2021-06-20 14:22:14 +02:00
Bartosz Taudul
5d86002f82
Calculate all CPU usage values in one go.
2021-06-20 14:19:18 +02:00
Bartosz Taudul
5efc03cdf9
Move cycles up in cost combo selector.
2021-06-20 12:50:13 +02:00
Bartosz Taudul
7e17c8643c
Don't show hw events as time.
2021-06-20 01:08:18 +02:00
Bartosz Taudul
bc4016e97c
Don't depend on callstack frames to match hw samples to source.
2021-06-20 01:01:29 +02:00
Bartosz Taudul
2f3ee594f0
Use square root to make slow branches and cache less spiky.
2021-06-20 00:50:14 +02:00
Bartosz Taudul
3305ea2775
Keep raw hw sample data visually separate.
2021-06-20 00:46:29 +02:00
Bartosz Taudul
07fe0a5447
Use enum for cost selection.
2021-06-20 00:45:39 +02:00
Bartosz Taudul
3cc69b221e
Select Zstd compression when Zstd level is changed.
2021-06-20 00:25:30 +02:00
Bartosz Taudul
80e1b0c2cf
Don't display hw samples as time in files list.
2021-06-20 00:14:19 +02:00
Bartosz Taudul
52708268fe
Store 64-bit integers in AddrStat.
2021-06-20 00:08:25 +02:00
Bartosz Taudul
4e6a1bae22
Don't display time for hw samples.
2021-06-20 00:04:08 +02:00
Bartosz Taudul
326a2a70d8
Add indirect hw statistics.
2021-06-20 00:01:37 +02:00
Bartosz Taudul
ad2b6e932b
Don't scroll cost combo list.
2021-06-20 00:01:21 +02:00
Bartosz Taudul
a5991036dc
Add more hw stats as cost.
2021-06-19 23:43:46 +02:00
Bartosz Taudul
c7b3d42852
Calculating cost in cycles and retirements.
2021-06-19 23:39:33 +02:00
Bartosz Taudul
90149641df
Reset cost selection when no samples.
2021-06-19 23:17:24 +02:00
Bartosz Taudul
8d52d2acfd
Disable inline context if no inline symbols available.
2021-06-19 21:40:30 +02:00
Bartosz Taudul
2e3241ba54
Restrict hardware samples to inline function context.
2021-06-19 20:50:06 +02:00
Bartosz Taudul
6cc844abee
Display inline symbol address.
2021-06-19 20:20:52 +02:00
Bartosz Taudul
748c22df8e
Darken assembly instructions which aren't in current context.
2021-06-19 20:11:53 +02:00
Bartosz Taudul
53111f9dd9
Save/load code symbol map.
2021-06-19 19:58:16 +02:00
Bartosz Taudul
8045ceee5d
Display function assigned to assembly line.
2021-06-19 19:52:33 +02:00
Bartosz Taudul
ec3ee09f09
Add inline symbols map accessors.
2021-06-19 19:13:34 +02:00
Bartosz Taudul
654331a8c8
Create code address -> symbol map.
2021-06-19 19:07:57 +02:00
Bartosz Taudul
cc0ca341bb
Add cost criteria selection UI.
2021-06-19 18:16:11 +02:00
Bartosz Taudul
7ad9cafefb
Add child call samples hints to the UI.
2021-06-19 17:41:29 +02:00
Bartosz Taudul
6e8d57bc98
Update context switches look.
2021-06-19 16:50:25 +02:00
Bartosz Taudul
c17a913cf5
Update zones look.
2021-06-19 16:43:56 +02:00
Bartosz Taudul
b91cd9148d
Add 2-segment line drawing wrapper.
2021-06-19 16:22:50 +02:00
Bartosz Taudul
188320db48
Simplify zone color data retrieval.
2021-06-19 16:20:35 +02:00
Bartosz Taudul
5e582ef057
Omit line number from source locations, if not known.
2021-06-19 12:47:55 +02:00
Bartosz Taudul
91f1845d92
Add LocationToString() helper.
2021-06-19 12:33:23 +02:00
Bartosz Taudul
c69cf5bd3f
Cosmetics.
2021-06-19 12:33:16 +02:00
Bartosz Taudul
8e5a53a191
Merge remote-tracking branch 'origin/master' into hw
2021-06-19 12:19:10 +02:00
Andrey Voroshilov
d4d77006ac
Fix a crash in Worker c-tor when converting certain JSON files
2021-06-19 01:12:41 -07:00
Bartosz Taudul
e1b68232dc
Better describe kernel ghost zones.
2021-06-19 01:40:05 +02:00
Bartosz Taudul
a96410547b
Display thread kernel time.
2021-06-17 01:56:16 +02:00
Bartosz Taudul
d49da69972
Count kernel samples.
2021-06-17 01:47:19 +02:00
Bartosz Taudul
d2ebe341f2
Allow filtering out kernel symbols from statistics view.
2021-06-16 01:43:09 +02:00
Bartosz Taudul
f145ca5897
Fix assert.
2021-06-16 01:39:43 +02:00
Bartosz Taudul
48fe6550a6
Kernel code is unreachable from user space.
2021-06-15 21:40:08 +02:00
Bartosz Taudul
5b642cad01
Implement combining sample callstacks.
...
This is required, because Windows will send two callstacks with the same
timestamp, one for kernel-space, second for user-space.
2021-06-15 02:25:12 +02:00
Bartosz Taudul
db1dc311b0
Add Int48 clearing function.
2021-06-15 02:04:32 +02:00
Bartosz Taudul
0fdd5ab01b
Extract callstack sample processing implementation.
2021-06-15 01:59:49 +02:00
Bartosz Taudul
891e1ac280
Read combine samples flag on server.
2021-06-15 01:33:43 +02:00
Bartosz Taudul
06dcdd342f
Combine flags in welcome message.
2021-06-15 01:26:50 +02:00
Bartosz Taudul
004681b02b
Merge remote-tracking branch 'origin/master' into hw
2021-06-14 23:54:34 +02:00
Bartosz Taudul
39e317f36d
Fix display of messages with newlines.
2021-06-14 23:51:41 +02:00
Bartosz Taudul
2d2a5c92fd
Increase symbol retrieval size limit to 128 KB.
2021-06-13 01:16:29 +02:00
Bartosz Taudul
f773e18375
Different color for kernel frames in callstacks.
2021-06-12 16:16:56 +02:00
Bartosz Taudul
0c13889589
Distinguish kernel symbols on statistics list.
2021-06-12 16:09:44 +02:00
Bartosz Taudul
be07ccc1d3
Kernel symbols don't have parents.
2021-06-12 16:09:43 +02:00
Bartosz Taudul
3968945e6a
Display kernel ghost zones with a different color.
2021-06-12 15:35:44 +02:00
Bartosz Taudul
ff54c29913
Save/load GPU timer overflow information.
2021-06-09 21:12:50 +02:00
Bartosz Taudul
9e28f441c8
Cosmetics.
2021-06-09 21:12:42 +02:00
Bartosz Taudul
27e61b8204
Remove not needed check.
2021-06-09 21:08:48 +02:00
Bartosz Taudul
7aa575fd2e
Display GPU timer overflow notification.
2021-06-09 21:08:48 +02:00
Bartosz Taudul
de2ca9b22a
Change check for showing GPU timestamp accuracy.
2021-06-09 21:08:48 +02:00
Bartosz Taudul
b7b9912b10
Handle GPU timer overflows with heuristics.
2021-06-09 21:08:47 +02:00
Bartosz Taudul
90b51568e9
Add common lzcnt implementation.
...
Not really tested, so fingers crossed.
2021-06-09 20:29:43 +02:00
Bartosz Taudul
9c2ea8a71f
Specify minimum length of subframe skip in one place.
2021-06-09 02:13:00 +02:00
Bartosz Taudul
85da04bcc4
Add hw samples line part to source view.
2021-06-09 00:19:17 +02:00
Bartosz Taudul
def9570eda
Extract rendering hw samples line part.
2021-06-09 00:19:17 +02:00
Bartosz Taudul
18cace42ca
Display hw samples tooltip for source lines.
2021-06-08 23:46:30 +02:00
Bartosz Taudul
82bfee5127
Move helper functions to top of the file.
2021-06-08 23:46:29 +02:00
Bartosz Taudul
2eb50bcf42
Hardware sample data was already queried.
2021-06-08 23:46:29 +02:00
Bartosz Taudul
66318bdb3b
Display target FPS also as time available.
2021-06-08 22:56:06 +02:00
Bartosz Taudul
b68c23fc64
Update x86 CPU models list.
2021-06-04 18:59:41 +02:00
Bartosz Taudul
4316d48bea
Add a note about CPUID list.
2021-06-04 18:48:01 +02:00
Bartosz Taudul
7c378cd0a9
Add Rocket Lake uarch data.
2021-06-04 18:40:37 +02:00
Bartosz Taudul
cc831e8192
Description is not supposed to be formatted.
2021-06-04 15:29:08 +02:00
Bartosz Taudul
0b05587b05
Don't need to format const string.
2021-06-04 15:27:23 +02:00
Bartosz Taudul
cb849ee14c
Capitalize Tracy name.
2021-06-04 15:17:20 +02:00
Bartosz Taudul
3c076ddb6f
Opening unsupported trace gives option to download update.
2021-06-04 15:17:20 +02:00
Bartosz Taudul
39cf98f98c
Move OpenWebpage() to a separate source file.
2021-06-04 15:17:14 +02:00
Bartosz Taudul
86510c48e0
Use proper type.
2021-06-04 15:16:44 +02:00
Bartosz Taudul
3c31fb56a8
Allow range-limiting hardware samples.
2021-06-04 13:58:00 +02:00
Bartosz Taudul
a1acea0c50
Support hw sample times on server.
2021-06-04 13:38:45 +02:00
Bartosz Taudul
b7c5939bb8
Merge remote-tracking branch 'origin/master' into hw
2021-06-02 01:12:28 +02:00
Bartosz Taudul
94ec6a0d9d
Move TracyYield.hpp to common.
2021-05-31 02:19:35 +02:00
Bartosz Taudul
f8ccd8c40d
Move TracyStackFrames to common.
2021-05-23 23:51:56 +02:00
Bartosz Taudul
a6011cd1ad
Ignore intrinsic wrappers in callstack frames.
...
With gcc/clang the wrapper functions for intrinsics are annoyingly inserted at
top level of stack traces, making it hard to see the call site. Filter out all
known instrinsic headers.
2021-05-23 23:22:45 +02:00
Bartosz Taudul
c13611cf0c
Make unreliable hw stats darker.
2021-05-23 21:32:48 +02:00
Bartosz Taudul
19c41b94c0
Add glow to hotness indicators on lines.
2021-05-23 13:52:38 +02:00
Bartosz Taudul
a6f85bd061
Color hardware samples stats.
2021-05-23 13:13:38 +02:00
Bartosz Taudul
48ab346835
Add goodness color table accessor.
2021-05-23 12:49:40 +02:00
Bartosz Taudul
1b589855e8
Adjust hotness color scaling.
2021-05-23 12:29:48 +02:00
Bartosz Taudul
815cf7d00a
Display hardware counter statistics in asm line columns.
2021-05-23 02:39:31 +02:00
Bartosz Taudul
77c33327f4
Merge remote-tracking branch 'origin/master' into hw
2021-05-23 01:01:21 +02:00
Bartosz Taudul
5f7225ce32
Merge pull request #224 from keur/external_trace_use_file_and_line
...
Use file:line when comparing traces
2021-05-22 12:36:05 +02:00
Kevin Kuehler
871d41be1f
Implement FindMatchingZone(..)
...
Sets m_compare to the matched index. It supports multiple flags. It can
be run by comparing function name, source file, line number, and any
combination thereof. When searching for a match, we do 3 runs, quitting
out if any of them succeed.
1. Look for zone with same function same, source file, line number.
2. Look for zone with same function same, source file.
3. Look for zone with same function same.
2021-05-22 01:33:06 -07:00
Bartosz Taudul
306055ebfa
Cosmetics.
2021-05-22 00:46:11 +02:00
Kevin Kuehler
5ab84d0c3f
Use file:line when comparing traces
...
When comparing traces, where multiple classes share the same zone
names, the behavior prior to this patch was to auto-select the first
matching zone name in the other trace. Instead, find the most correct
zone by using filename and line number.
2021-05-21 15:25:26 -07:00
Bartosz Taudul
ea5a9ee83b
Merge remote-tracking branch 'origin/master' into hw
2021-05-20 20:56:16 +02:00
Bartosz Taudul
87cff004a4
Show hw samples tooltip when there are no samples.
2021-05-20 20:10:27 +02:00
Bartosz Taudul
3ba82ba4d6
Separate IPC, cache and branch data in tooltip.
2021-05-20 19:56:23 +02:00
Bartosz Taudul
c6f071a66a
Save and load hardware sample data.
2021-05-20 19:37:51 +02:00
xavier
28e5aae17e
build with gcc 11
2021-05-20 17:30:54 +02:00
Bartosz Taudul
df50eb890f
Fix printing percentage.
2021-05-20 02:53:49 +02:00
Bartosz Taudul
5a7e9cdbdd
0% miss rates are fine too.
2021-05-20 02:31:00 +02:00
Bartosz Taudul
9b4716c49e
Display cache and branch miss rates.
2021-05-20 02:26:02 +02:00
Bartosz Taudul
227a8d1aee
Process additional hardware sample data.
2021-05-20 02:19:11 +02:00
Bartosz Taudul
24b5e16718
Display hw sampling stats in tooltip.
2021-05-20 01:37:59 +02:00
Bartosz Taudul
3a0e12043d
Differentiate hw samples from code addresses.
2021-05-19 23:29:27 +02:00
Bartosz Taudul
28cc72a69c
Display hardware samples count.
2021-05-19 23:05:58 +02:00
Bartosz Taudul
3228e20c2e
Add hardware samples accessors.
2021-05-19 23:05:50 +02:00
Bartosz Taudul
373a2b66c6
Collect hardware sample data.
2021-05-19 23:05:33 +02:00
Bartosz Taudul
64ed3d057d
Add no-op dispatch of HW samples.
2021-05-19 21:09:55 +02:00
Bartosz Taudul
efc1777051
Implement range limit for child samples.
2021-05-19 20:26:50 +02:00
Bartosz Taudul
5ec1313af1
Drop legacy code for reading long unsupported traces.
2021-05-18 02:24:56 +02:00
Giulio Eulisse
aace8ac317
Update TracyView.cpp
2021-05-17 12:09:14 +02:00
Giulio Eulisse
2cdc3abba2
Update TracyImGui.hpp
2021-05-17 12:07:35 +02:00
Giulio Eulisse
4ab706d538
Update TracyMouse.cpp
2021-05-17 12:07:06 +02:00
Giulio Eulisse
bcb250aaab
Update TracySourceView.cpp
2021-05-17 12:06:37 +02:00
Giulio Eulisse
63e2c16e74
Do not use relative include path for ImGUI.h
...
#pragma once gets confused by `../../imgui/imgui.h` and `imgui.h` on macOS with XCode 12.5.
2021-05-17 12:05:14 +02:00
Bartosz Taudul
8219a0e4ca
Fix shift.
2021-05-15 18:39:01 +02:00
Bartosz Taudul
c91c7a7fd5
Use zstd dict for packing/unpacking frame images.
...
This only affects run-time memory usage and needs an offline calculation of
the dictionary. Results vary depending on similarity of image blocks.
agora 34.96 MB -> 28.21 MB
agora2 40.75 MB -> 34.14 MB
android-vk 36.21 MB -> 18.44 MB
astar3 44.72 MB -> 43.38 MB
clipper1 134.36 MB -> 52.16 MB
fi 50.82 MB -> 40.79 MB
fi-big 537.74 MB -> 469.54 MB
test 23.26 MB -> 1.87 MB
2021-05-15 18:06:44 +02:00
Bartosz Taudul
d555256546
Don't use separate texture compression context.
...
Previously it was needed, as saving could be made at the same time the UI was
active. Currently saving blocks UI access to data structures, as it possibly
may need to sort unsorted vectors.
2021-05-15 18:04:14 +02:00
Bartosz Taudul
925a23a053
Add texture packer with zstd dict support.
2021-05-15 18:04:14 +02:00
Bartosz Taudul
a53f5702b1
Calculate frame images dictionary.
2021-05-15 18:03:50 +02:00
Bartosz Taudul
56958a018c
Only show dict building checkbox if there are frame images.
2021-05-15 15:52:54 +02:00
Bartosz Taudul
3d75bf653a
Add interface for frame images dict building.
2021-05-15 15:50:20 +02:00
Bartosz Taudul
92ae003308
Improve trace saving experience.
...
This adds additional dialog, which allows selection of compression mode. Also,
when a trace cannot be saved, a failure popup will be displayed.
2021-05-15 14:25:45 +02:00
Bartosz Taudul
ab830962c8
Fix notifications disappearing after a long UI lock.
2021-05-15 14:21:45 +02:00
Bartosz Taudul
7f1f929662
Decode PID and TID when generating imported thread names.
2021-05-15 13:08:51 +02:00
Bartosz Taudul
8ea02a4794
Cosmetics.
2021-05-15 13:03:42 +02:00
Bartosz Taudul
4f76fb2cda
Store location in SourceLocation during chrome import.
2021-05-11 01:37:59 +02:00
Bartosz Taudul
db734e3e0a
Parse custom location tags.
2021-05-11 01:37:59 +02:00
Bartosz Taudul
8d21202aaa
Remove floating point computation within hot loops.
2021-05-02 16:36:35 +02:00
Bartosz Taudul
7708184f73
Merge pull request #204 from nosferalatu/Direct3D11
...
Direct3D11
2021-05-02 02:46:24 +02:00
Bartosz Taudul
ab627f9da2
Build zig-zag path in a preallocated buffer.
2021-05-02 02:40:36 +02:00
David Farrell
dcf33b51cf
Updated comment to say that both OpenGL _and_ Direct3D11
...
don't need per-zone thread id.
2021-05-01 16:31:06 -07:00
David Farrell
e9fd767884
Added missing comma in GpuContextNames
2021-05-01 15:03:02 -07:00
Rahul Gupta
a950e444b5
Updated as suggested by wolf in the PR
2021-05-01 14:55:45 -07:00
Bartosz Taudul
4a8bfb4fac
Add ctrl/shift modifiers to mouse wheel zoom speed.
2021-05-01 18:20:19 +02:00
Bartosz Taudul
0e6a25fdd8
Directly compare time, with data piggybacked in low bits.
2021-05-01 15:04:56 +02:00
Bartosz Taudul
a688d24665
Replace two memory reads with just one.
2021-05-01 14:32:02 +02:00
Bartosz Taudul
088dd06197
Use DrawLine() in TracyView.cpp.
2021-05-01 13:59:43 +02:00
Bartosz Taudul
837272afba
Properly align context switch darken boxes.
2021-05-01 13:39:19 +02:00
Bartosz Taudul
a1aefe33a0
Use DrawLine() in TracySourceView.cpp.
2021-05-01 12:55:56 +02:00
Bartosz Taudul
c27c81db4c
Use DrawLine() in DrawCpuData().
2021-05-01 02:59:43 +02:00
Bartosz Taudul
fe22d5a6f6
Add fast line drawing function.
...
This skips unnecessary construction of ImVec2 vector.
Note: unlike AddLine(), this function doesn't add 0.5 to x and y coordinates.
The user is expected to do it on his own, which if done in just one place will
be performance beneficial.
2021-05-01 02:57:35 +02:00
Bartosz Taudul
b9ce9540be
Remove namespace indent in TracyImGui.hpp.
2021-05-01 02:26:46 +02:00
Bartosz Taudul
57d87af8a2
Add tooltips for register read/write markers.
2021-05-01 00:22:11 +02:00
Bartosz Taudul
de5f258b03
Display complementary assembly address tooltips.
2021-04-29 20:33:10 +02:00
Bartosz Taudul
854439cdb1
Display jump target in asm instruction tooltip.
2021-04-29 20:27:32 +02:00
Bartosz Taudul
ac9b97319a
Extract jump name retrieval.
2021-04-29 20:08:18 +02:00
Bartosz Taudul
7cfaaf6310
Exactly known latency shouldn't vary.
2021-04-29 18:24:37 +02:00
David Farrell
be963f184c
Change ev.ptr nullptr early-out to happen only when there is not a previous allocation for address 0. Custom memory pools (like custom allocators for Vulkan memory pools) can allocate at address 0, so the previous code would cause the Tracy server to alloc(0), free(0) (but early out), then on the next alloc(0) it would have a MemAllocTwiceFailure (because it skipped the free).
2021-04-21 11:53:55 -07:00
Bartosz Taudul
0bbda5ea11
Pressing Z will temporarily switch child calls.
2021-04-20 18:19:00 +02:00
Bartosz Taudul
e189f596ac
Add no-statistics guards.
2021-04-18 22:59:10 +02:00
Bartosz Taudul
d234f4dbe4
Generate child sample data during capture.
2021-04-18 22:44:37 +02:00
Bartosz Taudul
fb872fa088
Add child samples to source view percentages.
2021-04-18 22:23:55 +02:00
Bartosz Taudul
cba72859e9
No parents if only child samples.
2021-04-18 22:00:49 +02:00
Bartosz Taudul
141a4bc0fe
Fix scroll bar display of child-only samples.
2021-04-18 22:00:49 +02:00
Bartosz Taudul
c7da9b1092
Fix rendering of lines with no local samples.
2021-04-18 22:00:49 +02:00
Bartosz Taudul
66ef71cf7b
Gather child IP stats for addresses without samples.
2021-04-18 22:00:49 +02:00
Bartosz Taudul
ef93c69ee9
Make child calls more discoverable.
2021-04-18 22:00:48 +02:00
Bartosz Taudul
2009f63e32
Group time/samples data by local and child.
2021-04-18 20:43:23 +02:00
Bartosz Taudul
a5afa2cb4e
Use correct address for child sample information.
2021-04-18 20:43:23 +02:00
Bartosz Taudul
4970c48c51
Don't shadow variables.
2021-04-18 20:43:23 +02:00
Bartosz Taudul
c859d655ad
Include child calls in asm view percentages.
2021-04-18 20:43:22 +02:00
Bartosz Taudul
50a1faa880
Don't print zero sample counts in tooltips.
2021-04-18 20:16:05 +02:00
Bartosz Taudul
5f97c484f1
Include child samples in symbol view file list.
2021-04-18 19:42:24 +02:00
Bartosz Taudul
046881e32f
Add AddrStat::operator+=( AddrStat ).
2021-04-18 19:40:43 +02:00
Bartosz Taudul
22a8c53e8b
Account for case with no local samples (external only).
2021-04-18 19:21:53 +02:00
Bartosz Taudul
b217e00dd9
Hackfix support for UTF-8 in source files.
2021-04-18 19:14:12 +02:00
Bartosz Taudul
526d0cd22a
Display child time and samples in symbol stats.
2021-04-18 19:10:39 +02:00
Bartosz Taudul
c5eb398319
Gather external IP stats (no range limit case).
2021-04-18 19:04:29 +02:00
Bartosz Taudul
8db9bcf7f8
Disable child calls checkbox while processing data.
2021-04-18 18:27:39 +02:00
Bartosz Taudul
0d8ee47231
Store instruction pointer stats as AddrStat.
2021-04-18 16:16:47 +02:00
Bartosz Taudul
3845c392fa
Cosmetics.
2021-04-18 15:52:42 +02:00
Bartosz Taudul
55efa64b3f
Do not copy instruction pointer maps.
2021-04-18 15:51:50 +02:00
Bartosz Taudul
32e3c0ebb1
Display child sample counts in info window.
2021-04-18 15:06:54 +02:00
Bartosz Taudul
34b80ac52f
Add child samples count getters.
2021-04-18 15:03:42 +02:00
Bartosz Taudul
2f6adf3641
Add child calls UI.
2021-04-18 15:00:19 +02:00
Bartosz Taudul
ffe8aebfbd
Extend address stats to include child samples.
2021-04-18 15:00:19 +02:00
Bartosz Taudul
df462f109d
Reconstruct child sample data.
2021-04-18 15:00:19 +02:00
Bartosz Taudul
4dc6222ba1
Add child samples data structure.
2021-04-18 14:42:35 +02:00
Bartosz Taudul
fa8c99fd74
Fix missing limit range checkbox in source view.
...
This could happen if range was limited in such a way, that no sample was
within the region.
2021-04-18 14:42:35 +02:00
Bartosz Taudul
aee39d3fcd
Disable collapsing of connection window.
2021-04-18 14:42:31 +02:00
Bartosz Taudul
d71d76414b
Allow setting NO_PARALLEL_SORT externally.
2021-04-15 19:55:50 +02:00
Bartosz Taudul
07996c16cf
Fix gcc 8.3 with LTO.
...
In member function ‘UpdateSampleStatisticsImpl’:
warning: argument 1 value ‘18446744073709551598’ exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
auto cfdata = (CallstackFrame*)alloca( ( fxsz-1 ) * sizeof( CallstackFrame ) );
^
2021-04-09 01:15:18 +02:00
Bartosz Taudul
2477f33a6d
Update robin-hood-hashing to 3.11.1.
2021-04-08 01:07:56 +02:00
Bartosz Taudul
592644ae43
Don't issue warning if only disconnect is in send queue.
2021-04-01 20:16:47 +02:00
Bartosz Taudul
9b7f759347
Allow checking if disconnect was requested.
2021-04-01 20:16:29 +02:00
Bartosz Taudul
450013bc27
Update to current uops.info xml file.
...
This updates ZEN3 and adds Tiger Lake.
2021-04-01 18:46:00 +02:00
Bartosz Taudul
da29ec975b
Release 0.7.7.
2021-04-01 18:15:07 +02:00
Bartosz Taudul
8ddf26fff2
Simplify code.
2021-03-27 15:24:42 +01:00
Bartosz Taudul
4c4fc7197c
Add source preview to entry call stacks window.
2021-03-27 14:15:18 +01:00
Bartosz Taudul
9bbffcb67f
Add source tooltip in memory frame trees.
2021-03-27 14:09:40 +01:00
Bartosz Taudul
5ebffe388a
Check for file name pointer validity.
2021-03-27 14:09:35 +01:00
Bartosz Taudul
ff6ecef5f3
Add source preview to statistics window.
2021-03-27 14:02:52 +01:00
Bartosz Taudul
62ac5544b6
Trim empty lines at top and bottom of source preview.
2021-03-27 13:55:22 +01:00
Bartosz Taudul
a15ba0c7fb
Show source preview tooltip in find zones.
2021-03-27 13:47:20 +01:00
Bartosz Taudul
895a63b41a
Add source preview to call stack window.
2021-03-27 13:43:12 +01:00
Bartosz Taudul
e2be45c0ba
Show preview of lock source locations in options window.
2021-03-27 13:43:12 +01:00
Bartosz Taudul
8f0c5e867e
Source tooltip implementation.
2021-03-27 13:43:11 +01:00
Bartosz Taudul
0b6e55ee87
Store fixed-width font in View.
2021-03-27 13:43:11 +01:00
Bartosz Taudul
d56f7dab09
Remove unneeded forward declarations.
2021-03-27 13:05:59 +01:00
Bartosz Taudul
1cb6c17991
Move syntax color tables to a common header.
2021-03-27 13:03:19 +01:00
Bartosz Taudul
ff5435ff67
Cosmetics.
2021-03-27 13:03:19 +01:00
Bartosz Taudul
0b5a923e91
Display preview of source code for assembly instructions.
2021-03-26 02:42:15 +01:00
Bartosz Taudul
bd4335bace
Move source file parsing logic to a separate file.
2021-03-26 02:42:14 +01:00
Bartosz Taudul
174bb4d2f1
Extract source code tokenizer to a separate file.
2021-03-26 01:53:49 +01:00
Bartosz Taudul
b80899863b
Consistently use "entry call stacks".
2021-03-26 00:40:54 +01:00
Bartosz Taudul
2fe1fb974a
Display number of entry call stacks in a tooltip.
2021-03-26 00:27:23 +01:00
Bartosz Taudul
514acf1bac
Don't copy stats.
2021-03-26 00:21:19 +01:00
Bartosz Taudul
29133431bc
Calculate symbol address for parents earlier.
...
While currently this makes no sense, it will be also used in common code
path.
2021-03-26 00:17:46 +01:00
Bartosz Taudul
ec16182887
Only pack pointer if needed.
2021-03-26 00:14:12 +01:00
Stone Tickle
1918c0ffe6
fix TRACY_NO_FILESELECTOR macro
2021-03-17 08:51:24 +09:00
Bartosz Taudul
8dd92f32af
Handle memory double allocation failure.
2021-03-09 22:19:42 +01:00
Bartosz Taudul
6d5710901c
Fix ZoneColor channel order.
2021-03-09 02:14:57 +01:00
Bartosz Taudul
b51e3fbbc8
Remove unneeded variable.
2021-02-07 21:08:52 +01:00
Bartosz Taudul
9b5cc3352a
Fast search for zone tid in GetZoneThreadData().
2021-02-07 20:27:33 +01:00
Bartosz Taudul
c6c9fec383
Faster search for tid of zone in GetZoneParent().
2021-02-07 20:27:33 +01:00
Bartosz Taudul
35267abc8e
Remove obsolete GetZoneDepth() method.
2021-02-07 19:58:23 +01:00
Bartosz Taudul
02451fecd7
Remove not needed methods from SortedVector.
2021-02-07 19:36:45 +01:00
Bartosz Taudul
18e893752b
Use SortedVector for source location zones.
2021-02-07 19:35:53 +01:00
Bartosz Taudul
0100d0beb4
SortedVector has to provide reserve().
2021-02-07 19:35:23 +01:00
Bartosz Taudul
c220177828
Do postponed work only when needed.
2021-02-07 18:29:29 +01:00
Bartosz Taudul
9bb1d13afa
Revert to non-shared mutex for data lock.
...
The main change here is that the UI will be unresponsive when a trace is being
saved when there's no capture being performed. Note that the UI was always
frozen during saving if the capture was live, due to how starvation is
prevented by the locks.
2021-02-07 18:11:36 +01:00
Bartosz Taudul
417d526581
Use SortedVector for plot data.
2021-02-07 15:52:08 +01:00
Bartosz Taudul
90c873421c
Implement main sorting functionality in SortedVector.
2021-02-07 15:50:27 +01:00
Bartosz Taudul
e2db68e5f0
Comment out unneeded (for now) methods in SortedVector.
2021-02-07 15:49:16 +01:00
Bartosz Taudul
dcd76fc369
Add pass-through sorted vector wrapper.
2021-02-07 14:43:05 +01:00