Commit Graph

11056 Commits

Author SHA1 Message Date
Bartosz Taudul
b81fe9db72 Rewrite server-side lock tracking as an append-only event engine.
Capture has serialized lock events since d6f32a083 and 3e3aa80fa, so
the out-of-order reconstruction machinery has nothing left to repair.
Mark now targets the recorded Wait/Obtain event index; the old reverse
scan could walk off the start of the timeline for a thread that never
waited.
2026-09-21 18:14:11 +02:00
Bartosz Taudul
13b8e6e15c Fail the capture when a lock exceeds its 64-thread slot table.
InsertLockEvent wraps the uint8 slot index past the 64-entry
per-lock table, misattributing the 65th distinct thread to slot
0. Set the failure instead.
2026-09-21 18:14:11 +02:00
Bartosz Taudul
b14dad2c42 Lock release event must happen before the actual release.
With unlock -> notify order the thread can be preempted by other thread,
for example one that wants to lock the very same lock. This would produce
incorrect ordering of lock release and acquire events.
2026-09-21 18:14:11 +02:00
Bartosz Taudul
3ed0a42214 Store lock events with a 16-bit thread slot. 2026-09-21 18:14:09 +02:00
Bartosz Taudul
dd29819f3d Merge pull request #1472 from alandtse/fix/emscripten-deploy-fork-guard
ci(emscripten): skip SFTP deploy on forks
2026-09-15 13:04:37 +02:00
Alan Tse
2ba0e21c97 ci(emscripten): skip SFTP deploy on forks
The deploy job SFTPs the emscripten build using repo secrets
(SERVER/USERNAME/PRIVATE_KEY/REMOTE_PATH) that only exist upstream.
On a fork these are empty, so every push to a fork's master fails
with "remote_path is empty" even though the actual build succeeded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LVBiYgtsB6okBueTwp5swa
2026-09-15 02:38:43 -07:00
Bartosz Taudul
a6d16f5515 Move LockHighlight to the timeline draw header. 2026-09-14 21:02:00 +02:00
Bartosz Taudul
e58f4819ba Merge pull request #1470 from wolfpld/slomp/webgpu-capacity
Increased the max query limit of TracyWebGPU.hpp
2026-09-14 19:33:05 +02:00
Marcos Slomp
841fae2371 code review: formating consistency 2026-09-14 10:16:24 -07:00
Marcos Slomp
016ae062e9 addressing review comments 2026-09-14 08:48:23 -07:00
Marcos Slomp
8cbf2b14a2 use FastVector for the shadow buffer 2026-09-14 08:48:23 -07:00
Marcos Slomp
6be14cff4e increasing the total query limit to 64K queries 2026-09-14 08:48:23 -07:00
Marcos Slomp
a11c8ab40c refactoring (isolating) Tracy protocol bits 2026-09-14 08:48:23 -07:00
Bartosz Taudul
c71e059d90 Bump exmples/dyna CPM to 0.43.1. 2026-09-13 20:30:40 +02:00
Bartosz Taudul
3247f490f7 Update NEWS. 2026-09-13 16:53:42 +02:00
Bartosz Taudul
edc649cdec Bind Ctrl+plus / Ctrl+minus / Ctrl+0 to the user interface scale. 2026-09-13 16:53:42 +02:00
Bartosz Taudul
1381f40bd9 Represent the user interface scale as a preset table index.
Replace the userScale float with a zoomLevel index into s_zoomPresets;
the ini key changes accordingly and previously saved floats are ignored.
2026-09-13 16:21:05 +02:00
Bartosz Taudul
ee067d112b Update NEWS. 2026-09-12 22:31:34 +02:00
Bartosz Taudul
0c35226446 Add warning about large traces. 2026-09-12 22:25:01 +02:00
Bartosz Taudul
63ffadc852 Load the startup trace in a background thread.
Opening and parsing on the browser main thread froze the tab for the
whole load; the file selector path already loads in a worker thread,
so boot now uses the same thread, progress modal, and error dialogs.
2026-09-12 22:19:59 +02:00
Bartosz Taudul
af3432cfde Fetch the startup trace instead of preloading the embedded one.
The preloaded data package made every ?t= load download embed.tracy
as well. The startup glue now fetches embed.tracy only when no URL is
given, into the same /url.tracy slot, and the boot code has a single
open path.
2026-09-12 22:19:59 +02:00
Bartosz Taudul
1fb370f935 Give version and load failure exceptions meaningful messages. 2026-09-12 22:19:59 +02:00
Bartosz Taudul
27f12a4eb5 Report unloadable trace files on the command line instead of crashing.
Version and integrity checks throw from the View constructor, which
was outside the try/catch guarding the file open, so a bad argv trace
terminated the process. Catch and report it there as well.
2026-09-12 22:19:58 +02:00
Bartosz Taudul
1c50138f85 Report failed second-trace loads in compare instead of crashing.
The compare load thread caught only UnsupportedVersion, so a
corrupted or otherwise unloadable second trace escaped the thread as
std::terminate. Catch the same set as the main trace load and route
it to the existing bad-version dialog.
2026-09-12 22:19:58 +02:00
Bartosz Taudul
2191885f86 Show a generic message for unreadable or corrupted trace files.
FileReadError now also signals truncated or malformed traces, not just
mapping failures, so the mmap-specific text misled users.
2026-09-12 22:19:58 +02:00
Bartosz Taudul
8a5f2c6f8c Show error dialogs instead of aborting the page on trace load errors.
Exception catching was off by default in the web build, so the
try/catch handlers around trace loading were dead code and any
failure unwound through the page.
2026-09-12 22:19:58 +02:00
Bartosz Taudul
643778c8e6 Decompress overflow streams inline on emscripten.
Loading on the browser main thread cannot start more than the 8
pre-created workers: beyond that, thread creation waits for the main
thread to return to its event loop, which the load never does.
Decompression threads were only an optimization, so on emscripten
spawn workers for at most 4 streams and decompress the rest on the
loading thread.
2026-09-12 22:19:58 +02:00
Bartosz Taudul
b45e9ee28a Do not truncate CallstackFrameId hash.
Frame address typically will be 64 bit, but size_t is 32-bit on emscripten.
2026-09-12 22:19:55 +02:00
Bartosz Taudul
fdd01d3007 Update manual. 2026-09-12 13:21:30 +02:00
Bartosz Taudul
8107754a3c Support loading trace files from URL in web version. 2026-09-12 13:08:04 +02:00
Bartosz Taudul
4332b43c3b Serve the web development files with CORS enabled.
The server doubles as a host for trace files to be loaded by the web
version from another origin, for example when profiling over the
local network.
2026-09-12 12:46:11 +02:00
Bartosz Taudul
0d6916273b Remove the trace filename from window title in web version.
The filename in the web build is an internal temporary name, either
embed.tracy or upload.tracy, and carries no information for the user.
2026-09-12 12:45:56 +02:00
Bartosz Taudul
e8a6be173f Ensure minimum find zone window width. 2026-09-11 22:34:04 +02:00
Bartosz Taudul
1c10623c6a Sync the manual with the display icon for GPU zones. 2026-09-11 22:23:43 +02:00
Bartosz Taudul
cf31c34367 Update NEWS. 2026-09-11 22:08:49 +02:00
Bartosz Taudul
7370f3a6b6 Prefix GPU zone names in the find list with the display icon. 2026-09-11 22:08:37 +02:00
Bartosz Taudul
6217872124 Explicit commit message rules. 2026-09-11 22:08:37 +02:00
Bartosz Taudul
4f0edd1304 Use the display icon for GPU zones. 2026-09-11 22:08:35 +02:00
Bartosz Taudul
ec4e36074b Merge pull request #1469 from wolfpld/slomp/gpu-stats
GPU Zone Statistics
2026-09-11 20:42:41 +02:00
Bartosz Taudul
70fe1e8d69 Use emscripten 6.0.9. 2026-09-11 19:51:07 +02:00
Bartosz Taudul
35b4922ed4 Bump LZ4 to 1.10.0. 2026-09-11 00:47:22 +02:00
Bartosz Taudul
8cf122cf22 Bump md4c to 00788b157. 2026-09-11 00:47:22 +02:00
Bartosz Taudul
fb1b13a8a8 Bump nfd to 7bbbd9fe. 2026-09-11 00:47:22 +02:00
Bartosz Taudul
159567701c Enable OBJC language on Apple builds.
glfw 3.5.1 enables OBJC build-wide under CMake 4.x, remapping nfd's
nfd_cocoa.m to a language its scope never loaded; generate then fails on
CMAKE_OBJC_COMPILE_OBJECT. Initialize OBJC at the top level so sibling
scopes get the rules.
2026-09-11 00:47:18 +02:00
Marcos Slomp
190809c990 update docs 2026-09-10 09:59:46 -07:00
Marcos Slomp
e75106a16f removing [GPU] tag from source location listing (it does not work as I expected) 2026-09-09 22:36:02 -07:00
Marcos Slomp
9535a39fba refactoring 2026-09-09 22:36:02 -07:00
Marcos Slomp
661f4de636 addressing code duplication 2026-09-09 22:36:01 -07:00
Marcos Slomp
a71d7c2ee2 fix load-time data race on the GPU map 2026-09-09 22:36:01 -07:00
Marcos Slomp
44eabc5814 GPU Zone Statistics 2026-09-09 22:36:01 -07:00