Commit Graph

11037 Commits

Author SHA1 Message Date
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
Bartosz Taudul
b892dd0b96 Cherry-pick queue memory-ordering fixes from concurrentqueue v1.0.5. 2026-09-10 00:51:12 +02:00
Bartosz Taudul
d542359cc0 Use the system wayland-protocols package. 2026-09-10 00:51:12 +02:00
Bartosz Taudul
1ebdd2e598 Pin glad in the dyna example to v2.0.8. 2026-09-10 00:51:12 +02:00
Bartosz Taudul
44e904ba87 Pin glew in the OpenGL example to release 2.3.1. 2026-09-10 00:51:11 +02:00
Bartosz Taudul
8a0043177d Remove orphaned gl3w patch. 2026-09-10 00:51:11 +02:00
Bartosz Taudul
64fdd0159a Bump CPM to 0.43.1. 2026-09-10 00:51:11 +02:00
Bartosz Taudul
d42e2447d4 Bump xxhash to 0.8.3. 2026-09-10 00:51:11 +02:00
Bartosz Taudul
353339cb08 Bump usearch to 2.26.2. 2026-09-10 00:51:11 +02:00
Bartosz Taudul
f032eba389 Bump glfw to 3.5.1. 2026-09-10 00:51:11 +02:00
Bartosz Taudul
656980d757 Bump curl to 8.22.0. 2026-09-10 00:51:06 +02:00
Bartosz Taudul
f60889e1a7 Compute Find zone std dev from the displayed distribution.
The raw sumSq paired with a self/running mean yielded the raw variance
inflated by the squared mean gap. Accumulate the vector's own sum of
squares alongside its sum, like compare and frame statistics do.
2026-09-09 21:13:14 +02:00
Bartosz Taudul
82790f904f Save context switches of all threads.
Per-thread lists were dropped for threads without zones or samples, a rule
from when only profiled threads consumed them; the CPU data graph uses them
for any visible thread, so saved traces silently lost wake and wait data.
2026-09-09 01:53:09 +02:00
Bartosz Taudul
ed468d8625 Reject truncated trace files.
Block sizes weren't checked against the file length, so truncated files
made the decompression threads read off the mapping. Validate framing
(u32 size + payload) before the mapping and threads exist; also reject
zero-stream or empty files.
2026-09-09 01:04:55 +02:00
Bartosz Taudul
25ba41c44e Read tracepoint field offsets from tracefs format files.
The client decoded sched_switch, sched_waking and drm_vblank_event at
fixed positions behind an 8-byte common header. The kernel can extend the
header, which shifts the field positions.

The format files are generated from the live trace_entry (offsetof/ALIGN),
making them the authoritative layout.
2026-09-08 22:08:16 +02:00
Bartosz Taudul
2ba979056c Merge pull request #1467 from psmyles/sections-group-by-category
Add option to group section rows by category
2026-09-08 18:15:36 +02:00
Chandan Singh
ecf722b64f Remove stray carriage return in the manual 2026-09-08 21:44:34 +05:30
Chandan Singh
66434446b1 Add option to group section rows by category.
Sections are packed into timeline rows purely by length, so sections
from different categories share rows and the same category can move
between rows along the timeline. When categories mark different kinds of
activity (game levels, loading screens, cutscenes) this makes the row
layout hard to read.

The new "Group by category" option in the section options lays out each
category in its own set of rows, in category identifier order, with the
existing length-first packing applied within a category. Off by default,
so the current layout is unchanged unless the option is enabled. Only
shown when the trace has more than one section category.
2026-09-08 15:03:02 +05:30
Bartosz Taudul
da5c8153bc Disable capture-daemon directory lock on windows. 2026-09-06 01:48:06 +02:00
Bartosz Taudul
ad0785f6c2 Update pandoc to 3.11.
Pandoc 3.11 appends the LaTeX caption label to Markdown table
captions as a {#id} identifier; strip it in tablecaption() since the
manual renderer has no identifiers.
2026-09-06 01:25:08 +02:00