Commit Graph

154 Commits

Author SHA1 Message Date
Bartosz Taudul
305382453d Add callstack sample events with 32 and 16 bit timestamps. 2026-05-07 02:16:53 +02:00
Bartosz Taudul
ccaef5ba0b ZoneBegin / ZoneBeginCallstack with 32 and 16 bit time data. 2026-05-07 02:16:53 +02:00
Bartosz Taudul
4d094c108d Add zone end messages with 32 and 16 byte time deltas.
Change in test application:
    compressed data: 130 Mpbps -> 105 Mbps
    uncompressed: 830 Mbps -> 740 Mbps
2026-05-06 19:09:19 +02:00
Clément Grégoire
ca076b4a60 Add TracyMangle.hpp file to centralize config name mangling
Also rename MANGLED_NAME_BASED_ON_DEFINES => MANGLED_NAME_BASED_ON_CONFIG
2026-04-21 13:28:48 +02:00
Clément Grégoire
a4f245550b Macro incompatibility experiment
We redirect GetProfiler() (most likely used by any project consuming tracy, since it's used by `tracy::ScopedZone`) to its implementation which now has a different function name based on the macros that can impact ABI (and enabled/disabled).
That way, when linking with mismatched defines you'd get an error such as

> main.obj : error LNK2019: unresolved external symbol "int __cdecl GetProfiler_CFG_E0_OD0_DI0_ML0_F0_DHT0_TF0(void)" (?GetProfiler_CFG_E0_OD0_DI0_ML0_F0_DHT0_TF0@@YAHXZ) referenced in function "int __cdecl GetProfiler(void)" (?GetProfiler@@YAHXZ)

Or

>[build] /usr/bin/ld: CMakeFiles/app.dir/main.cpp.o: in function `GetProfiler()':
[build] /..../TracyProfiler.hpp:143: undefined reference to `GetProfiler_CFG_E1_OD0_DI0_ML0_F0_DHT0_TF0()'

Reason for going with acronym+0/1 instead of just acronym when enabled is for us to be able to tell users easily which define is wrong by just looking at the error if needed.

The only thing we don't really detect is user not having TRACY_ENABLE but tracy having been built with it. This is because macros become noops in that case, with no reference to `GetProfiler`.
There may be a way to do it by introducing a local variable into each TU, but I don't really like that idea.
We could also add pragma detect mismatch for a more user-friendly error on windows (https://learn.microsoft.com/en-us/cpp/preprocessor/detect-mismatch?view=msvc-170).
2026-04-21 13:28:48 +02:00
Marcos Slomp
842420439d fix LogString wire in the DequeueSerial path (#1328) 2026-04-03 00:37:16 +02:00
Bartosz Taudul
739123d005 Add a way to override profiled program name and PID. 2026-03-31 01:18:50 +02:00
Marcos Slomp
01bd20c30a Windows x64 vs ARM opsie 2026-03-09 13:24:08 -07:00
Bartosz Taudul
feb07e476a Merge pull request #1289 from slomp/slomp/windows-on-arm
Support for Windows on ARM
2026-03-06 23:55:02 +01:00
Marcos Slomp
cc21988537 adding C API for Profiler::GetTime() 2026-03-06 01:33:01 -08:00
Marcos Slomp
4460e64f3a addressing code review 2026-03-05 11:10:43 -08:00
Marcos Slomp
332bbf2310 don't modify tracy_SPSCQueue.h 2026-03-04 17:35:05 -08:00
Marcos Slomp
ab2c32e52f use SPSC queue notify/wait in the symbol queue to reduce the response latency of the symbol worker 2026-03-04 12:14:19 -08:00
Marcos Slomp
93036b6877 code review: implement in header, but don't bring windows.h along for the ride 2026-03-01 08:14:10 -08:00
Marcos Slomp
e41ae15f27 using ARM64 intrinsics on Windows on ARM 2026-02-28 20:00:11 -08:00
Bartosz Taudul
b7c54253ff Include TracyCrashHandler in a list of frames to cut on crash on Linux. 2026-01-29 22:44:23 +01:00
Bartosz Taudul
eb18dafb22 Check for a substring match in CutCallstack. 2026-01-29 22:44:13 +01:00
Bartosz Taudul
3ddb96b9af Change CutCallstack/SendCallstack interface to accept an array. 2026-01-29 22:41:21 +01:00
Bartosz Taudul
0c6b551afa Make TracyCrashHandler visible externally. 2026-01-29 22:39:24 +01:00
Bartosz Taudul
5a1ff2496c Rename CrashHandler to TracyCrashHandler. 2026-01-29 22:19:50 +01:00
Bartosz Taudul
73694c7a24 Cleanup enums. 2026-01-24 01:50:11 +01:00
Bartosz Taudul
9016911a04 Fix clash with winapi define crap. 2025-12-30 14:49:23 +01:00
Bartosz Taudul
94c1614416 Store full user name in trace info. 2025-12-30 14:19:40 +01:00
Bartosz Taudul
da85325686 Move user name retrieval to a common API. 2025-12-30 13:41:19 +01:00
Clément Grégoire
5ef64841cc Remove MessageMetadata type and replace by uint8_t everywhere 2025-12-28 15:04:18 +01:00
Clément Grégoire
4cceab5ad8 Remove Profiler::Messsage since it's not part of the public API
This also replaces `___tracy_emit_message*` by `___tracy_emit_logString`.
The `TracyCMessage*` defines no long include the `;`, which may be a breaking change even though we did already require semi-colon since 0.9.0. See #493 and #592
2025-12-28 15:04:05 +01:00
Clément Grégoire
f17bd3f444 TracyDebug now uses TracyInternalMessage by default unless TRACY_VERBOSE or TRACY_NO_INTERNAL_MESSAGE is defined 2025-12-28 15:00:59 +01:00
Clément Grégoire
f981330f66 Replace all messages text addr by TaggedUserlandAddress and send metadata over the network
There are two changes to the protocol:

- `QueueMessageLiteral*` were changed and what used to be addresses are now addresses+metadata
- Other messages now send `QueueMessage*Metadata` with added metadata.

This will later be used to store and transmit message sources, level, etc.
2025-12-28 14:44:40 +01:00
Ondřej Míchal
d79b6d040e public/client: Correctly initialize atomic thread reference
Atomic variables need to be initialize with direct-initialization
instead of copy-initialization lest the compilation fails complaining
about missing constructor for the atomic type.
2025-12-08 15:06:26 +02:00
Bartosz Taudul
886a0abec9 Merge pull request #1215 from slomp/slomp/worker-thread-race
Fixed race condition around `s_sysTraceThread`
2025-12-03 22:43:42 +01:00
Marcos Slomp
7fa30d08b5 clarification 2025-12-03 12:41:44 -08:00
Marcos Slomp
874d65b036 code formatting 2025-12-03 10:15:19 -08:00
Marcos Slomp
c44beaac28 fixed race condition around s_sysTraceThread 2025-12-02 16:19:20 -08:00
Trevor L. McDonell
d1b0406801 Add option to ignore memory free faults
This replaces the IsApple flag, which was previously only used for this purpose.
2025-12-02 16:16:50 +01:00
Bartosz Taudul
89f68babd2 Android user name may be longer than _POSIX_LOGIN_NAME_MAX. 2025-11-13 12:28:57 +01:00
Matt McGill
491445343f Defer GPU context events in serial C API
Without this, the profiler crashes due to an assert
violation when connecting to a client built with
TRACY_ON_DEMAND that uses these C API calls.
2025-10-24 18:52:36 -04:00
Bartosz Taudul
30267de474 Make sure symbols thread has time to enter into disconnected condition. 2025-10-21 20:42:44 +02:00
Bartosz Taudul
5cf408fc10 Cosmetics. 2025-09-11 00:57:22 +02:00
Anders Wang Kristensen
355a11f47f Missing initialization of dequeueStatus 2025-09-10 14:43:28 +02:00
Anders Wang Kristensen
f21f8d6ad2 Fix crash due to freeing elements of m_serialDequeue twice.
In Profiler::DequeueSerial if AppendData fails part way through m_serialDequeue then the elements could be freed again in Profiler::ClearSerial, which leads to memory corruption in rpmalloc.
2025-09-10 12:56:47 +02:00
Marcos Slomp
5864350912 removed duplicated extern "C" 2025-08-02 06:48:00 -07:00
Marcos Slomp
9b84b527a6 adding manual control over sampling profiling 2025-08-01 15:24:30 -07:00
Bartosz Taudul
c03fdaec1e Merge pull request #1097 from erieaton-amd/rocprofv3-2
Collect dispatches and counter values with Rocprofv3
2025-07-22 13:33:15 +02:00
Patrik Kraif
4a3713cca8 Add support for GDK 2025-07-16 12:51:16 +02:00
Bartosz Taudul
8fa40e87d1 Merge pull request #1016 from 6yry6e/systrace-hang-fix
Fix: Hang on shutdown with enabled system tracing
2025-07-12 11:49:05 +02:00
Eric Eaton
a754db16f8 Show counter name in GUI 2025-07-11 17:16:00 -07:00
Bartosz Taudul
880c600506 Remove queue delay calibration.
This value is not used for anything, it was just a number displayed in
the UI without much meaning to anyone.

Operations on the queue during early init may not work correctly, stopping
some programs from running past the calibration loop.
2025-07-11 23:23:31 +02:00
Martijn Courteaux
8b1576170d Disable Windows __try1 __except1 mechanic to be cross compilable from Linux. 2025-06-19 17:11:28 +02:00
mncat77
1d6fda26ea Fix MinGW build 2025-06-19 17:11:28 +02:00
Timur Popov
46a5cc4fa5 Stop filling queues with systrace data on exit 2025-03-29 01:12:28 +02:00