Commit Graph

850 Commits

Author SHA1 Message Date
Bartosz Taudul
53510c316b Update nfd-extended to 1.2.1, retrieve via CPM. 2025-05-11 14:16:20 +02:00
Bartosz Taudul
fc9b39e26d Bump ImGui to 1.91.9b-docking. 2025-05-11 13:50:34 +02:00
Bartosz Taudul
5140a5a411 Merge pull request #1021 from siliceum/wakeup
Thread wakeup visualization
2025-05-10 13:55:51 +02:00
Tomaž Vöröš
a088ebe337 fix some buffer sizes 2025-05-10 00:27:32 +02:00
Clément Grégoire
0ce3b05d64 Fix issues with timeline highlight code when IsMouseClickReleased is called
`HandleTimelineMouse` did the following
- `m_highlight.active = true` when clicked
- update range while dragging
- `m_highlight.active = false` when not dragging

This causes issues when `IsMouseClickReleased` is called somewhere else as
- `mousePotentialClickRelease` is set to true on click
- At beginning of frame, `mouseDragging` is set to `false` as long as `mousePotentialClickRelease` is `true` and mouse delta is under the drag threshold
- This means that if the mouse didn't move enough in the duration of a frame, highlight would immediately stop, even though we were still holding the mouse button down

Instead, it now only stops highlighting once the mouse is no longer down (ie: has been "released", cursor having moved or not)
2025-05-07 15:37:56 +02:00
Simon van Bernem
132a4ba320 Revert "The config is now always saved on exit."
This reverts commit 6b03d1dd9e.
2025-04-28 17:01:29 +02:00
Simon van Bernem
6b03d1dd9e The config is now always saved on exit. 2025-04-28 15:37:04 +02:00
Simon van Bernem
7474127bbb Fixed typo 2025-04-27 21:38:23 +02:00
Simon van Bernem
a277453acb Added saving of user ui scale in the global configuration. Moved userScale into s_config. Prevented "Get started" and "Loading trace..." windows from having their position saved between restarts, because if you change scale and then restart, they might get pushed to the edge of the window, which is confusing. 2025-04-27 21:33:08 +02:00
Simon van Bernem
a150fdfc35 Adding per-monitor DPI awareness by using glfwGetWindowContentScale instead of glfwGetMonitorContentScale and ensuring that the window is also resized appropriately by using GLFW_SCALE_TO_MONITOR 2025-04-25 19:44:30 +02:00
Clément Grégoire
859aa9fbf0 Fix missing return and formating in DecodeContextSwitchReason 2025-04-25 17:43:29 +02:00
Clément Grégoire
b906430f50 Thread wake up vertical par now uses half pixel offset 2025-04-24 12:23:27 +02:00
Clément Grégoire
66bdc49c17 Only change selected thread when clicking in cpudata zone ( m_drawThreadHighlight can be set when hovering, and thus clicking, a thread lane name) 2025-04-14 01:17:08 +02:00
Clément Grégoire
a3102ef26b Fix wakeup line DPI handling and offset 2025-04-13 19:59:52 +02:00
Clément Grégoire
66c21b0b8e Rewrite thread selection, now correctly unselecting only if clicking the CPU data timeline, and can unselect from the thread timeline menu 2025-04-13 19:59:52 +02:00
Clément Grégoire
8647bbf6c0 Allow to select any thread, not just the ones from the profiled program 2025-04-13 19:59:45 +02:00
Clément Grégoire
52caa57f6f Fix switched-in thread lookup (End() can be invalid) 2025-04-13 19:59:04 +02:00
Clément Grégoire
6f776b7c6b Introduce "selected thread" instead of locking highlighted one 2025-04-09 22:42:02 +02:00
Clément Grégoire
413055f8d5 Only prompt to highlight thread if cpu usage graph is enabled 2025-04-09 17:20:18 +02:00
Clément Grégoire
2783e6e64b Add information about the context switch when hovering the thread in the cpu data timeline 2025-04-09 16:56:20 +02:00
Clément Grégoire
d4edd107dc Fix wake up draw for the first known context switch of the thread
We were never drawing the wakeup of the very first known context switch.
2025-04-09 16:52:46 +02:00
Clément Grégoire
fdff47ecdb Add culling for the thread wakeups 2025-04-09 14:40:25 +02:00
Clément Grégoire
40047c1eb6 Fix sign of time input (would lead to bad position computations due to always unsigned delta results) 2025-04-09 14:06:41 +02:00
Clément Grégoire
6486d8147d Fix formating issues 2025-04-08 13:48:50 +02:00
Clément Grégoire
df76b376a7 Thread wakeup visualization
This PR does the following things:
- Allow to lock the highlighted thread using left mouse click or lane popup menu
- Add more descriptions for wait reasons in View::DecodeContextSwitchReason
- Stores the Wakeup CPU so that we may display it in the CPU data view
- `QueueThreadWakeup` now contains cpu and adjust info (currently unused). Fits in the padding, no struct size change.
- `QueueContextSwitch` now also contains thread priorities information (windows+linux) and CState (windows), but currently unused by the profiler. Fits in the padding, no struct size change.
- Fixes Linux `EventWakeup` which tries to remove PERF_SAMPLE_CALLCHAIN on the wrong member. Set the whole `perf_event_attr` explicitely instead.
- Fixes Windows ReadyThread event being dropped if triggered before the thread switches out (this is confirmed to be normal behaviour, probably due to thread being switched out but context switch actually happening later)
- Bumps tracy file version and protocol versions
2025-04-08 11:02:27 +02:00
stalkopat
e5482580cd add clipboard button for user text in ZoneInfo 2025-03-25 18:13:59 +00:00
bbb651
ae2e6d0a7b wayland: Activate window with XDG_ACTIVATION_TOKEN. 2025-03-09 00:45:51 +02:00
Clément Grégoire
7455e5890e Let CMake discover python3 and make it required since it is effectively needed to build
This gives a better error message and helps finding the correct python executable since python3 may actually be only named python on windows for example.
2025-03-08 16:37:09 +01:00
Bartosz Taudul
48efd98df7 Unmap icon buffer memory. 2025-02-20 00:14:24 +01:00
Brad Anderson
50ff279aad Include <chrono> explicitly in TraceyView
In Visual Studio 17.13 the STL team at Microsoft cleaned up internal includes of other public STL headers (most notably <chrono>) to increase build throughput for STL users, but now you need to include them yourself rather than rely on the indirect inclusion.
2025-02-12 11:40:27 -07:00
Bartosz Taudul
367ed69501 Use XDG toplevel icon protocol to set the icon. 2025-02-12 00:21:27 +01:00
Bartosz Taudul
9b7d53a979 Add short images option to callstack / wait stacks window. 2025-02-07 17:34:19 +01:00
Bartosz Taudul
ad5615cda2 Short image names in sample entry stacks window. 2025-02-07 17:28:55 +01:00
Bartosz Taudul
b8a64190dc Add external frames checkbox to sample entry stacks window. 2025-02-07 17:16:18 +01:00
Bartosz Taudul
3b48252bb3 Move "group by function name" checkbox to a more appropriate place. 2025-02-07 17:15:52 +01:00
Bartosz Taudul
526e41b5dc Don't show image tooltip, if there's no shortening and it fits the space. 2025-02-07 02:43:32 +01:00
Bartosz Taudul
cfc67727a0 Add button to view entry stacks from the symbol view. 2025-02-07 02:39:00 +01:00
Bartosz Taudul
015a27bb4e Cosmetics. 2025-02-07 02:29:08 +01:00
Bartosz Taudul
f1128f825d Rename "sample entry call stacks" to "sample entry stacks". 2025-02-07 02:27:43 +01:00
Bartosz Taudul
c38764db3c Add appropriate tooltips for image names. 2025-02-07 02:21:52 +01:00
Bartosz Taudul
408939862b Add an option to display only the file part of image name. 2025-02-07 02:17:40 +01:00
Bartosz Taudul
7fc3366086 Add support for keeping external tails in flame graph. 2024-12-16 16:48:51 +01:00
Bartosz Taudul
99d39e6eee Separate call stack traversal from flame graph building. 2024-12-16 16:41:00 +01:00
Bartosz Taudul
9d839c52d1 Allow filtering out external frames in flame graph. 2024-12-16 16:21:31 +01:00
Bartosz Taudul
70fc28506f Expose IsFrameExternal as View's method. 2024-12-16 16:21:31 +01:00
Bartosz Taudul
1e796064bc Add external frames UI to flame graph. 2024-12-16 16:21:31 +01:00
Bartosz Taudul
bb02d0b0af Add icon to external frames checkbox. 2024-12-16 14:21:05 +01:00
Dirk Eibach
f0ee324399 Add absolute time info to Zone info view 2024-11-27 22:31:48 +01:00
Bartosz Taudul
e756fa75cf Fix UI. 2024-11-17 12:20:55 +01:00
Bartosz Taudul
e6ee311392 Merge pull request #926 from WernherVonData/percentiles-for-find-zone
Percentiles p75, p90 for FindZone view
2024-11-17 12:18:27 +01:00