Commit Graph

10869 Commits

Author SHA1 Message Date
Bartosz Taudul
2a7542ccd8 Mangle the GetToken accessor based on config.
The macro fast paths only reference GetProfiler from -O0 code, direct
calls, and ON_DEMAND builds: the single GetProfiler() call on the macro
path sits behind the constexpr-dead callstack guard and is folded away
at -O1+, so Release builds carried no config fingerprint and mismatched
clients linked silently.

GetToken is the hot-path binding of every queueing macro and is
referenced at all optimization levels; mangle it the same way so
mismatches fail at link time in Release builds too.
2026-08-17 22:21:57 +02:00
Bartosz Taudul
328f50211f Link TracyImGui library with libdl.
ImGui OpenGL loader uses dlopen / dlsym / dlclose to load the OpenGL
implementation.

Linking with libdl is not needed with glibc >= 2.34 (released in 2021):

NEWS for version 2.34
=====================

Major new features:

* In order to support smoother in-place-upgrades and to simplify
  the implementation of the runtime all functionality formerly
  implemented in the libraries libpthread, libdl, libutil, libanl has
  been integrated into libc.  New applications do not need to link with
  -lpthread, -ldl, -lutil, -lanl anymore.

(...)

Older glibc versions and also possibly other libc implementations still
need the libdl link.
2026-08-17 22:13:59 +02:00
Bartosz Taudul
f5c53af367 Fix plot color R/B channel swap. 2026-08-17 00:17:19 +02:00
Bartosz Taudul
b751c1c8d0 Fix csvexport --sep and --filter options. 2026-08-16 23:41:09 +02:00
Bartosz Taudul
b6cfdd2d2e Update embed.tracy to 0.14.
Previous was 0.10, which was too old after bumping minver to 0.11.
2026-08-16 15:26:10 +02:00
Bartosz Taudul
453d649c1a Add TRACY_ASSERT for custom assert implementations. 2026-08-16 13:32:44 +02:00
Bartosz Taudul
254f0ad210 Drop support for pre 0.11 traces. 2026-08-16 00:27:30 +02:00
Bartosz Taudul
3f9714059a Add protocol history for 0.14. 2026-08-16 00:04:13 +02:00
Bartosz Taudul
8fdfd08af0 Refactor GPU context id handling.
The gpu backends each used a bare 255 as the sentinel for a
not-yet-initialized context id. Define InvalidGpuContextId (-1) in
TracyQueue.hpp and replace the scattered 255s and their asserts
with it.

Id exhaustion is handled by an error message and an assert in the
new NextGpuContextId() getter. Non-assert builds continue execution,
at which point they are no longer valid. Handling this code path
is out of scope here. Various attempts at handling the exhaustion
problem have been otherwise purged from the API implementations.
2026-08-15 21:46:29 +02:00
Bartosz Taudul
54ecee1f74 Fix memory events not being attributed to fibers.
Alloc and free events stored the OS thread, so the memory view's
Zone alloc/Zone free columns resolved the zone on the OS thread's
timeline instead of the currently-running fiber. Attribute them to
the active fiber the same way zone and message events are
(follow ThreadData::fiber).
2026-08-15 15:15:54 +02:00
Bartosz Taudul
b10d466a38 Regenerate markdown manual. 2026-08-15 13:41:23 +02:00
Bartosz Taudul
86fc7f02cb Document the need to reflect order of allocations in reported events. 2026-08-15 13:21:11 +02:00
Bartosz Taudul
16805b47ef Update TRACY_IGNORE_MEMORY_FAULTS description in CMake/Meson options. 2026-08-15 13:08:44 +02:00
Bartosz Taudul
756411d802 Allow disabling wait stacks capture. 2026-08-14 01:28:22 +02:00
Bartosz Taudul
d579ed3cce Fix VSync on 32-bit win32 targets.
The struct sizes are kernel sizes. A 64-bit kernel is required for
tracing anyway.
2026-08-13 18:34:58 +02:00
Bartosz Taudul
edc09a4e97 Fix 16-bit string length desync on offset recovery
The decoder recovered offset-encoded 16-bit string lengths into a
uint16_t, so sz += ProtocolOffset8Bit truncated lengths in [65536,
65791] back into [0, 255] in release builds, desynchronizing the
stream. Read the wire value into uint16_t sz16 and recover into a
uint32_t sz, relying on automatic promotion for the addition.

Align the client asserts with the encoder's actual capacity
(ProtocolOffset8Bit + uint16 max).
2026-08-13 18:18:58 +02:00
Bartosz Taudul
821d43c6b5 Send string for SectionSetup during on-demand deferred messages replay. 2026-08-13 18:15:20 +02:00
Bartosz Taudul
16329e0a0c Silence MSVC warning C4366.
warning C4366: The result of the unary '&' operator may be unaligned
2026-08-10 18:16:39 +02:00
Bartosz Taudul
099df3de3d Release 0.14.0. v0.14.0 2026-08-09 21:06:31 +02:00
Bartosz Taudul
a7926283a8 Wait for capture workers to disconnect before saving. 2026-08-09 18:32:17 +02:00
Bartosz Taudul
6ce8ad7aff CI: centralize cmake --parallel flag for linux workflow
Define CMAKE_PARALLEL once per environment (--parallel 2 on GitHub CI,
unlimited locally) and use it across every cmake build, so all builds
are OOM-protected, not just the profiler GUI.
2026-08-09 12:46:43 +02:00
Bartosz Taudul
37a7c2c197 Add permissions and concurrency groups to all workflows
Set contents: read permissions on every workflow and add per-workflow
concurrency groups keyed on the git ref to deduplicate concurrent runs.
Release workflow keeps cancel-in-progress: false so a release build is
never canceled; job-level contents: write on attach-to-release is
preserved. Concurrency groups use hardcoded prefixes so reusable
workflows called from release.yml do not inherit the caller workflow
name and collide.
2026-08-09 12:46:40 +02:00
Bartosz Taudul
a8f9faf496 Fix parallel flags for profiler GUI build in linux workflow.
GitHub runners: limit to 2 jobs
Non-gimped environments: use all you got.
2026-08-09 12:11:19 +02:00
Bartosz Taudul
f57986e17d Add parallel flag to library build in linux workflow. 2026-08-09 12:11:04 +02:00
Bartosz Taudul
5f647e7eaf Build dyna example multithreaded in linux workflow. 2026-08-09 12:02:20 +02:00
Bartosz Taudul
e06fc5211b No meson/ninja needed in windows workflow. 2026-08-09 11:56:48 +02:00
Bartosz Taudul
01a9e6d3af No version for meson. 2026-08-08 02:15:18 +02:00
Bartosz Taudul
c228c662bb Install TracyVersion.hpp in CMake and meson
Ship the version header alongside the rest of public/common so installed
users can query the Tracy version at compile time; it is the single
source of truth CMake already parses via cmake/version.cmake.
2026-08-08 02:09:08 +02:00
Bartosz Taudul
30d14caab6 Install TracyFormat.h in CMake and meson
TracyFormat.h is transitively included by installed public headers
(TracyC.h, TracyProfiler.hpp, TracyScoped.hpp) but was missing from
the common_includes install list in both build systems, breaking
installed users. Add it to the list in CMakeLists.txt and meson.build.
2026-08-08 02:09:08 +02:00
Bartosz Taudul
5d2c353335 Fix TRACY_NO_CODE_TRANSFER source code transfer. 2026-08-07 20:44:51 +02:00
Bartosz Taudul
92f0e0e951 Make linux-cli workflow compatible with act runner. 2026-08-07 00:28:10 +02:00
Bartosz Taudul
7dafaca602 Stage linux-cli artifact in a relative path for container job 2026-08-07 00:25:13 +02:00
Bartosz Taudul
18eaa221d3 Regenerate markdown manual. 2026-08-06 22:37:24 +02:00
Bartosz Taudul
6bca1141fe Update manual. 2026-08-06 22:37:02 +02:00
Bartosz Taudul
a5d155250b Update NEWS. 2026-08-06 22:37:02 +02:00
Bartosz Taudul
63c94bae7d Strip release binaries on Linux and macOS. 2026-08-06 22:36:59 +02:00
Bartosz Taudul
8163734842 Ship Linux CLI tools in a versioned release zip
Build the CLI tools in a dedicated ubuntu:24.04 workflow and pack them
with the AppImage into a single linux-<version>.zip, matching the
Windows/macOS release shape.
2026-08-06 22:22:09 +02:00
Bartosz Taudul
c119f1c8de Package tracy-capture-daemon in release binaries. 2026-08-06 21:22:02 +02:00
Bartosz Taudul
dcc86d343b Link to cropped guadec video. 2026-08-06 21:21:26 +02:00
Bartosz Taudul
507c77ba41 Move continuation words wider than the leftover whole to the next line.
ImGui's CalcWordWrapPosition() only cuts a word mid-word when it fits on
no line, i.e. when it is wider than the full line width. PrintTextWrapped
passes the leftover width for a glued continuation segment's first line,
so a continuation word wider than the leftover (but fitting on the next
full-width line) was being cut mid-word. Detect that case and move the
whole word to the next line instead.
2026-08-05 01:37:05 +02:00
Bartosz Taudul
eacb64a714 Hack around lack of flag to always enable scrollbar in a table.
https://github.com/ocornut/imgui/issues/9499#issuecomment-5182563922
2026-08-04 19:43:55 +02:00
Bartosz Taudul
bdb0f3c3d7 Replace vertical / horizontal AddLine calls with AddLineV / AddLineH. 2026-08-04 19:00:59 +02:00
Bartosz Taudul
757c2fff30 Grammar. 2026-08-03 22:23:19 +02:00
Bartosz Taudul
a6d96d4201 Ignore all-newline message chunks at the beginning of LLM content.
DeepSeek 4 Flash likes to send "\n\n" as content between the reasoning
and tool call sections.
2026-08-03 22:23:03 +02:00
Bartosz Taudul
1c2a8b4c40 Filter out thinking, tool calls, attachments from the summary and suggestion. 2026-08-03 22:23:03 +02:00
Bartosz Taudul
6dd09e3ed8 Make the tool reply limit easier to understand. 2026-08-03 20:09:24 +02:00
Bartosz Taudul
96dcd7a38b Source tooltip may render more than one active line. 2026-08-03 18:26:49 +02:00
Bartosz Taudul
0290f0ba54 Give instructions for providing source file ranges. 2026-08-03 18:26:49 +02:00
Bartosz Taudul
1866cf25b9 Support extracting lines range. 2026-08-03 18:26:49 +02:00
Bartosz Taudul
d91769b72e Check if there's a parent directory to go to on .. in NormalizePath. 2026-08-03 18:26:49 +02:00