Marcos Slomp
2221138299
more informative errors
2026-06-26 10:40:48 -07:00
Bartosz Taudul
3e5310cac6
Fix sigma conversion in latex -> md script.
2026-06-25 00:14:21 +02:00
Bartosz Taudul
606cd7bdaf
Protect against zero frames to show.
2026-06-24 23:49:53 +02:00
Bartosz Taudul
d924b05ab7
Calculate square of averages with double precision.
2026-06-24 23:27:36 +02:00
Bartosz Taudul
d0c7596977
Regenerate markdown manual.
2026-06-24 23:02:25 +02:00
Bartosz Taudul
0bee59ff85
Update manual.
2026-06-24 23:01:34 +02:00
Bartosz Taudul
963a968a9e
Update NEWS.
2026-06-24 20:37:51 +02:00
Bartosz Taudul
f700597067
Display P75, P90, P99 and P99.9 for frame statistics.
2026-06-24 20:09:03 +02:00
Bartosz Taudul
a237b009ec
Use unified percentile value calculation in find zone.
2026-06-24 19:56:24 +02:00
Bartosz Taudul
5970e90233
Display coefficient of variation in frame statistics.
2026-06-24 19:32:50 +02:00
Bartosz Taudul
5fc4ae8eef
Display coefficient of variation in find zone.
2026-06-24 19:30:42 +02:00
Bartosz Taudul
a35f8a738d
Display standard deviation in frame statistics.
2026-06-24 19:21:40 +02:00
Bartosz Taudul
3714e36652
Frame count in frame statistics may be not full.
2026-06-24 18:56:08 +02:00
Bartosz Taudul
565f3e5a72
Add mode to frame statistics.
2026-06-24 18:48:38 +02:00
Bartosz Taudul
17720a0cd8
Keep FPS range and max counts in the same line.
2026-06-24 18:48:38 +02:00
Bartosz Taudul
a7b0907d6c
Move mean and median in frame statistics to match find zone.
2026-06-24 18:48:38 +02:00
Bartosz Taudul
552159ccf6
Remove tree node for historgram in frame statistics.
2026-06-24 18:48:38 +02:00
Bartosz Taudul
7e8180a2a7
Move frame statistics from trace info to its own window.
2026-06-24 18:48:38 +02:00
Bartosz Taudul
05d34e4daa
Make it possible to hide annotation.
2026-06-24 18:48:37 +02:00
Bartosz Taudul
72d45dfdad
Fix display of annotations color on annotations list.
2026-06-24 18:48:35 +02:00
Bartosz Taudul
280475ff3d
Iterate ranges array when drawing ranges on timeline.
2026-06-23 23:45:41 +02:00
Bartosz Taudul
922604fe6a
Do not include alpha in color entries in ranges array.
2026-06-23 23:45:11 +02:00
Bartosz Taudul
5b29550ded
Move ranges setup to an appropriate file.
2026-06-23 23:29:33 +02:00
Bartosz Taudul
56eb3b776f
Show ranges window after setting a range via timeline right-click popup.
...
Without this using the popup is quite unintuitive. Setting the range
apparently does not have an effect – because ranges are only shown if the
ranges window is open (or the windows appropriate for each of the ranges).
2026-06-23 23:07:27 +02:00
Bartosz Taudul
98ad778495
Iterate ranges array to handle range adjustments by mouse.
2026-06-23 23:06:02 +02:00
Bartosz Taudul
fa4c28af8a
Iterate ranges array in timeline right-click menu.
2026-06-23 23:03:26 +02:00
Bartosz Taudul
a73a733644
Popup label is now just label, do not pass it twice.
2026-06-23 22:54:09 +02:00
Bartosz Taudul
d4cceb3e0d
Use ranges array in DrawRangeEntry().
2026-06-23 22:45:45 +02:00
Bartosz Taudul
b715c0c32e
Add icon to annotation tooltip.
2026-06-23 22:41:18 +02:00
Bartosz Taudul
f71620c8c8
Use ranges array in DrawRanges().
2026-06-23 22:33:07 +02:00
Bartosz Taudul
51e467d7b9
Make ranges private in View.
2026-06-23 21:50:22 +02:00
Bartosz Taudul
eba8c1e99a
Setup ranges array.
2026-06-23 21:49:15 +02:00
Bartosz Taudul
9a785976c0
Ignore zero-length sections.
2026-06-23 02:00:11 +02:00
Bartosz Taudul
711e3a7bcf
Add separator between timeline headers and content.
2026-06-23 01:58:35 +02:00
Bartosz Taudul
d84a085b71
Collapse small sections.
2026-06-23 01:58:35 +02:00
Bartosz Taudul
ae38665b95
Draw sections.
2026-06-22 19:17:01 +02:00
Bartosz Taudul
800e415400
Calculate section rows content.
2026-06-22 19:17:00 +02:00
Bartosz Taudul
f1dfedffaf
Instrument program sections in dyna example.
2026-06-22 15:10:38 +02:00
Bartosz Taudul
67bb927d61
Store level name in World.
2026-06-22 15:10:28 +02:00
Bartosz Taudul
415197bd5d
Remove semicolon from TracySetProgramName macro.
2026-06-22 14:57:25 +02:00
Bartosz Taudul
5177e587e9
Do not include semicolons in TracySectionEnter / TracySectionLeave macros.
2026-06-22 14:56:32 +02:00
Bartosz Taudul
ee7d2b4fd8
Track memory allocations in dyna example.
2026-06-21 23:25:42 +02:00
Bartosz Taudul
1d0806c374
Add frame image capture to the dyna example.
2026-06-21 23:12:52 +02:00
Bartosz Taudul
9cc8f3752e
Mark zones in dyna example.
2026-06-21 23:05:20 +02:00
Bartosz Taudul
79e0efac96
Mark frame boundaries in dyna example.
2026-06-21 22:53:31 +02:00
Bartosz Taudul
8531e879a9
Use TracyNoop to ensure profiler library is linked with executable.
2026-06-21 22:47:34 +02:00
Bartosz Taudul
89a75d5c71
Integrate Tracy into dyna example.
2026-06-21 22:47:34 +02:00
Bartosz Taudul
e9e85ca6ee
Add Dyna.net example.
2026-06-21 22:47:34 +02:00
Bartosz Taudul
3a6a23ca98
Save and load sections data.
2026-06-21 00:56:32 +02:00
Bartosz Taudul
3157dfae3e
Merge pull request #1412 from jensenr30/fix-signed-int-comparison-warning
...
Fix warning [-Wsign-compare]
2026-06-21 00:32:51 +02:00
Ryan Jensen
978b720759
Fix warning [-Wsign-compare]
2026-06-20 17:09:26 -05:00
Bartosz Taudul
77c655eb7d
Merge pull request #1411 from alandtse/feat/mcp-sections-accessor
...
feat(mcp): expose sections accessor in eval bindings
2026-06-20 11:49:45 +02:00
Alan Tse
bee6ac566e
docs(mcp): drop dangling tracy://catalog reference
...
eval_guide.md referenced a tracy://catalog resource that was never
registered (only tracy://prompt and tracy://eval-guide exist), so an
agent following the guide would try to read a nonexistent resource.
Remove the references; the worked snippets the catalog described are
already inlined under "Common query patterns".
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_016EvfzHvUsDBSAwEzTfLTtA
2026-06-19 15:51:51 -07:00
Alan Tse
6e4041b14d
feat(mcp): expose sections accessor in eval bindings
...
Bind Worker::GetSections() as get_sections() so the TracySectionEnter /
TracySectionLeave instrumentation added to the client is reachable from
the MCP eval tool's ctx object. Returns a list of {start, end, text}
dicts with nanosecond timestamps, matching the existing list-of-dict
accessor convention. Documented in eval_guide.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_016EvfzHvUsDBSAwEzTfLTtA
2026-06-19 15:44:12 -07:00
Bartosz Taudul
1706ac57ac
Separate id field is not needed.
2026-06-19 20:37:49 +02:00
Bartosz Taudul
72d62bea25
Display count of sections.
2026-06-19 20:37:49 +02:00
Bartosz Taudul
0ae37172dc
Add sections accessor.
2026-06-19 20:37:45 +02:00
Bartosz Taudul
9502ab728d
Merge pull request #1410 from shekhirin/alexey/mcp-streamable-http
...
feat(mcp): default to streamable-http transport
2026-06-19 19:45:51 +02:00
Alexey Shekhirin
7dd4dbc8a5
update docs
2026-06-19 18:36:03 +01:00
Alexey Shekhirin
96c681cf61
feat(mcp): default to streamable-http transport
2026-06-19 16:42:14 +01:00
Bartosz Taudul
2052aa2ab8
Regenerate markdown manual.
2026-06-19 15:05:58 +02:00
Bartosz Taudul
977218ea04
Document that ___tracy_alloc_srcloc strings must not be null-terminated.
2026-06-19 15:05:05 +02:00
Bartosz Taudul
fcd5944d5e
Better default llm config.
2026-06-19 12:36:39 +02:00
Bartosz Taudul
34395f97ed
Regenerate markdown manual.
2026-06-18 21:31:03 +02:00
Bartosz Taudul
c897729b74
Use safe file names for cache.
2026-06-18 21:30:07 +02:00
Bartosz Taudul
f8208ce5ef
Add quick start guide for getting Tracy Assist running.
2026-06-18 21:21:15 +02:00
Bartosz Taudul
3516c96afd
Retrieve available context on llama.cpp if not available on start.
...
In order for context size to be available, the model has to be loaded on
the server. However, the typical flow will be to load models on demand.
2026-06-18 21:00:25 +02:00
Bartosz Taudul
3bb5027565
Add llama.cpp tokenization support.
2026-06-18 20:58:40 +02:00
Bartosz Taudul
eefc7aee4b
Detect llama.cpp router mode.
2026-06-18 20:56:07 +02:00
Bartosz Taudul
3ccda1d3c4
Add embedding model heuristic to not recognized llama API providers.
2026-06-18 20:51:53 +02:00
Bartosz Taudul
802e88585a
Merge pull request #1407 from shekhirin/tracy-consistent-thread-order
...
feat: display threads in a consistent order
2026-06-18 14:41:20 +02:00
Alexey Shekhirin
74bbe5988b
Use consistent thread order in more thread pickers
2026-06-18 09:41:45 +01:00
Alexey Shekhirin
066cb89f75
Display threads in a consistent order
2026-06-18 09:41:31 +01:00
Bartosz Taudul
8c289104d6
Regenerate markdown manual.
2026-06-18 00:39:26 +02:00
Bartosz Taudul
274e453bb6
Process section enter / leave events.
2026-06-17 22:37:31 +02:00
Bartosz Taudul
d89055908b
Update manual.
2026-06-17 22:37:31 +02:00
Bartosz Taudul
801a34ea66
Add trigger parameter.
2026-06-17 22:37:31 +02:00
Bartosz Taudul
0cdb6d365e
Initial section enter / leave instrumentation.
2026-06-17 22:37:31 +02:00
Bartosz Taudul
e3f4c72c85
Move TRACY_ATTRIBUTE_FORMAT_PRINTF to its own header.
2026-06-17 22:37:31 +02:00
Bartosz Taudul
eeab1bf1a9
Border sizes are scaled by ScaleAllSizes() since ImGui 1.92.7.
2026-06-17 22:37:30 +02:00
Bartosz Taudul
d26176baae
Merge pull request #1406 from mcourteaux/fix-charconv
...
Implement C++ feature check for charconv.
2026-06-17 11:37:38 +02:00
Martijn Courteaux
021aa6a9e6
Implement C++ feature check for charconv.
2026-06-17 09:27:00 +02:00
Bartosz Taudul
8b86ada40e
Fix checks.
2026-06-17 01:31:56 +02:00
Bartosz Taudul
616f33ff65
Consistent wait.time checks.
2026-06-17 01:31:01 +02:00
Bartosz Taudul
023cb20ba9
Only display wait reason or state if present.
2026-06-17 00:33:00 +02:00
Bartosz Taudul
073cd266ac
Use proper thread id for wait stacks.
...
ContextSwitchData::Thread() is something related to fibers. Pass and use
known thread id from external context instead.
2026-06-17 00:21:51 +02:00
Bartosz Taudul
2e252d3988
Fix indentation level.
2026-06-17 00:14:03 +02:00
Bartosz Taudul
77978b68ca
Explain wait stacks in callstack skill.
2026-06-16 23:53:41 +02:00
Bartosz Taudul
d9939362f5
Add wait stack data to the LLM attachment.
2026-06-16 23:53:40 +02:00
Bartosz Taudul
bba05bd3ad
Update manual.
2026-06-16 23:33:16 +02:00
Bartosz Taudul
83a4a13cbd
Display wait stack label and tooltip in callstack window.
2026-06-16 23:28:24 +02:00
Bartosz Taudul
9e9aabe9a1
Push CallstackViewWait to View::DrawCallstackTable().
2026-06-16 23:18:40 +02:00
Bartosz Taudul
382a887ce9
Provide default values for View::DrawCallstackTable() parameters.
2026-06-16 23:17:47 +02:00
Bartosz Taudul
fbd1c55151
Extend View::ViewCallstack() to support optional wait stack data.
2026-06-16 23:10:43 +02:00
Bartosz Taudul
398bab8041
Store wait stack data in CallstackView.
2026-06-16 23:05:59 +02:00
Bartosz Taudul
69245e751b
Cosmetics.
2026-06-16 23:05:58 +02:00
Bartosz Taudul
d571f2bd59
Fix integer trace parameter input field size.
2026-06-16 19:17:18 +02:00
Bartosz Taudul
781938317d
Bump pugixml to 1.16.
2026-06-16 18:10:38 +02:00
Bartosz Taudul
f9365abe4f
Do not use samplers in renderer.
...
Tracy requires some textures to have repeat wrapping mode set. The ImGui
implementation of samplers doesn't make it easy to achieve. Disalbe use
of samplers and rely on texture flags, as done originally.
2026-06-16 16:02:08 +02:00
Bartosz Taudul
3f91f35d59
Merge pull request #1403 from wolfpld/slomp/gl-feature-check
...
Add routine to check for GL features/extensions at run-time
2026-06-16 14:50:30 +02:00
Marcos Slomp
1de94aa856
add routine to check for GL features/extensions at run-time
2026-06-15 21:19:12 -07:00
Bartosz Taudul
ec1d5bd3d7
Merge pull request #1402 from wolfpld/slomp/webgpu-example-platform
...
Switch webgpu example to SDL3, plus patch edge-case for wgpu-native
2026-06-15 23:48:14 +02:00
Marcos Slomp
69af195c98
edge-case bug-fix (could cause wgpu-native to panic)
2026-06-15 13:14:28 -07:00
Marcos Slomp
60699c4a92
fixing win32 builds with SDL3 + WebGPU
2026-06-15 13:14:28 -07:00
Marcos Slomp
cc45cf6046
switch to SDL3 (no cmake fetch, just find_package)
2026-06-15 13:14:28 -07:00
Bartosz Taudul
62560a6429
Add 8-bit length string transfers to the protocol.
2026-06-15 20:43:55 +02:00
Bartosz Taudul
f7b4e177ff
Change misleading etc1buf variable to texbuf.
2026-06-15 19:31:06 +02:00
Bartosz Taudul
084daf0516
Force inline send string strlen helpers.
2026-06-15 19:19:13 +02:00
Bartosz Taudul
a98956f2d9
Another typo.
2026-06-15 17:17:32 +02:00
Bartosz Taudul
ac6f0f88fa
Actually describe the message severity levels.
2026-06-15 17:09:42 +02:00
Bartosz Taudul
33fccb3530
Typos.
2026-06-15 17:08:39 +02:00
Bartosz Taudul
45576f6972
Merge pull request #1400 from wolfpld/slomp/gl-example
...
adding OpenGL example (spinning triangle)
2026-06-14 21:39:54 +02:00
Marcos Slomp
17e13bc2e0
SDL2 -> SDL3
2026-06-14 12:18:06 -07:00
Marcos Slomp
ee0c73bf25
switch to SDL2 (no cmake fetch, just find_package)
2026-06-14 11:24:14 -07:00
Bartosz Taudul
343567a3f2
Regenerate markdown manual.
2026-06-14 17:31:49 +02:00
Bartosz Taudul
20b3535623
Use fancy quotes in the manual.
2026-06-14 17:31:32 +02:00
Bartosz Taudul
5298316480
Revert emscripten back to 5.0.7. There are threading problems with 6.0.0.
...
Specifically, click on the red power off button to go back to the welcome
screen, and the cleanup popup never goes away.
2026-06-14 16:24:13 +02:00
Bartosz Taudul
83719fb29b
WASM_BIGINT is enabled by default since emscripten 4.0.0.
2026-06-14 15:17:32 +02:00
Bartosz Taudul
f7d789eddb
Split emscripten link options to multiple lines.
2026-06-14 15:09:40 +02:00
Bartosz Taudul
3816b2485e
Bump used emscripten version to 6.0.0.
2026-06-14 15:06:53 +02:00
Bartosz Taudul
f8aa88d522
Explicitly disable shared libs for md4c.
...
Fixes emscripten build.
2026-06-14 15:06:36 +02:00
Bartosz Taudul
b5ae187f76
Disable separate fast model by default.
2026-06-12 22:20:47 +02:00
Marcos Slomp
3f203806e2
X11 workaround check
2026-06-12 13:00:33 -07:00
Bartosz Taudul
15c6b49de2
Mark text embeds as TEXT.
2026-06-12 21:43:51 +02:00
Bartosz Taudul
a153f3a562
Extend Embed macro to support TEXT parameter enabling CRLF to LF conversion.
2026-06-12 21:43:12 +02:00
Bartosz Taudul
c2998310cf
Add CRLF to LF conversion support to embed.
2026-06-12 21:42:45 +02:00
Bartosz Taudul
a43b74ed8f
Update NEWS.
2026-06-12 21:08:33 +02:00
Bartosz Taudul
d3047f8069
Fix memory discard + callstack.
...
Bug (High Severity): Wrong queue type in MemDiscardCallstack
In the callstack path of MemDiscardCallstack, the wrong queue type is
sent:
SendMemDiscard( QueueType::MemDiscard, thread, name );
Every other callstack variant correctly uses its callstack queue type
(MemAllocCallstack, MemFreeCallstack, etc.), but this one uses the
non-callstack type. The SendMemDiscard assertion at line 1026 confirms
MemDiscardCallstack is a valid value.
Impact: The callstack captured by SendCallstackSerial() will be orphaned.
The server processes the event via the non-callstack handler, leaving the
callstack serial data unconsumed, which desynchronizes the serial queue
and corrupts all subsequent events.
2026-06-12 20:30:59 +02:00
Bartosz Taudul
3804b2580a
Regenerate markdown manual.
2026-06-12 19:58:06 +02:00
Bartosz Taudul
329ac6c9f1
Document memory discard macro.
2026-06-12 19:57:45 +02:00
Bartosz Taudul
a091bb4ad2
Remove "secure" variant of alloc/free.
...
Random crashes are not fun. Always use the "secure" code path.
2026-06-12 19:41:17 +02:00
Bartosz Taudul
86b5f43959
Provide proper test directory.
2026-06-12 19:23:28 +02:00
Marcos Slomp
39dc688340
adding Xrandr dependency
2026-06-12 08:44:46 -07:00
Marcos Slomp
832234838b
better comments and messages
2026-06-12 07:33:06 -07:00
Marcos Slomp
daba5acfbc
more explicit compiler warning message
2026-06-12 07:31:03 -07:00
Bartosz Taudul
07bfe3465e
Merge pull request #1356 from wolfpld/slomp/tracy-webgpu
...
GPU: WebGPU back-end
2026-06-12 12:11:32 +02:00
Bartosz Taudul
0544440a34
Remove unused, extremely broken code.
2026-06-11 22:35:25 +02:00
Marcos Slomp
f287508772
addressing type conversion warning
2026-06-11 13:28:32 -07:00
Bartosz Taudul
f622b97436
Backdate init time when a producer token predates it.
...
A zone emitted from a shared object initializer runs before the
executable's constructors, so its timestamp precedes s_initTime, which
the server uses as the trace epoch (baseTime). Such a zone converts to
negative trace time and its end no longer satisfies IsEndValid(), which
excludes it from statistics reconstruction and makes it render as
never-ending.
Record the current time when a producer token is created before
s_initTime is constructed and use it as the init time, ensuring no event
timestamp precedes the trace epoch.
2026-06-11 20:05:59 +02:00
Bartosz Taudul
dfded9d55d
Recover main thread producer orphaned by cross-module init order.
...
ELF init_priority only orders constructors within a single module. All of
a shared object's initializers run before any of the executable's, so an
instrumented dependency .so emitting a zone from its static initializer
creates the main thread producer token against the zero-initialized
s_queue. The queue constructor then resets the producer list, orphaning
that producer: every zone emitted on the main thread from that point on
is enqueued into blocks no consumer ever iterates and silently lost,
while sampling (worker thread producer) keeps working.
Re-link such a producer right after the queue is constructed. In the
common case, where nothing was emitted during shared object init, this
merely constructs the main thread token eagerly.
2026-06-11 20:05:57 +02:00
Marcos Slomp
a2555fbb33
fixing Windows/Linux build
2026-06-11 07:37:58 -07:00
Bartosz Taudul
7180ea381f
Merge pull request #1401 from Lectem/fix/win32-non-desktop
...
`TRACY_WIN32_NO_DESKTOP` should use `GetVersionExW` explicitly.
2026-06-11 13:01:24 +02:00
Clément Grégoire
0c74658dd3
TRACY_WIN32_NO_DESKTOP should use GetVersionExW explicitly.
...
Since we use `RTL_OSVERSIONINFOW` we need to use W version explicitly
2026-06-11 12:06:34 +02:00
Marcos Slomp
debda1df55
scoping the GpuCtx constructor
2026-06-10 18:57:22 -07:00
Marcos Slomp
d98608b022
issue a Tracy warning message when timestamp queries are supported but not properly implemented
2026-06-10 18:52:57 -07:00
Marcos Slomp
eb88c6eba0
adding warning about TracyOpenGL usage on Apple devices
2026-06-10 18:52:09 -07:00
Marcos Slomp
e83429c926
replacing the various platform layers by RGFW
2026-06-10 18:38:48 -07:00
Bartosz Taudul
cc091a99a2
Support key modifiers on emscripten.
2026-06-10 23:39:08 +02:00
Marcos Slomp
1b207d3e2a
adding OpenGL example (spinning triangle)
2026-06-10 14:14:54 -07:00
Bartosz Taudul
f89709e99e
Prevent click-through when activating annotation.
2026-06-10 22:50:45 +02:00
Bartosz Taudul
a4c5f15312
Rewrite annotations drawing.
2026-06-10 22:42:05 +02:00
Bartosz Taudul
3455fd9f82
Fix regression making existing annotations non-editable after trace load.
2026-06-10 21:48:12 +02:00
Marcos Slomp
cfc046abcd
refactoring requirements
2026-06-10 11:09:51 -07:00
Bartosz Taudul
9ab39d8af3
Merge pull request #1398 from Lectem/fix/concurrentqueue-and-malloc-define
...
WORKAROUND_malloc/free should properly route to tracy_malloc/free
2026-06-10 17:57:32 +02:00
Clément Grégoire
bfab6d03f4
WORKAROUND_malloc/free should properly route to tracy_malloc/free
2026-06-10 17:15:33 +02:00
Marcos Slomp
0d848c3042
proper device descriptor chaining
2026-06-10 08:03:18 -07:00
Marcos Slomp
54270d3fd5
move window to top when launching from console
2026-06-10 06:24:53 -07:00
Marcos Slomp
1341f98c61
cleanup
2026-06-10 06:24:32 -07:00
Marcos Slomp
6fc279eef4
more descriptive API name
2026-06-10 06:23:57 -07:00
Bartosz Taudul
66e4f5cef7
Merge pull request #1397 from MaximeCoutantSonos/master
...
Fixed typo inconsistency in Shared lock C api
2026-06-10 14:47:56 +02:00
MaximeCoutantSonos
7637971e9e
Fixed typo inconsistency in Shared lock C api
2026-06-10 14:26:36 +02:00
Bartosz Taudul
4e3cffc4ba
Add name bank related to games.
2026-06-10 01:34:40 +02:00
Marcos Slomp
28d3a91980
more changes to allow for null context
2026-06-09 16:26:51 -07:00
Bartosz Taudul
3956616fc2
Fix repeated entries.
2026-06-10 01:14:22 +02:00
Marcos Slomp
0fbb2eaaa4
typo
2026-06-09 16:00:43 -07:00
Marcos Slomp
b27dab4584
remove "spontaneous" callback (better determinism)
2026-06-09 15:59:38 -07:00
Marcos Slomp
75bee5370f
cosmetics
2026-06-09 15:58:24 -07:00
Marcos Slomp
e7499458e9
allow scoped instrumentation to no-op with null context
2026-06-09 15:58:06 -07:00
Bartosz Taudul
d34c45fa5a
Use variable structure for random name generator.
2026-06-10 00:27:18 +02:00
Bartosz Taudul
8fe5a511c9
Expand name generator banks.
2026-06-10 00:15:55 +02:00
Bartosz Taudul
afdd2e2f81
Regenerate markdown manual.
2026-06-09 23:49:57 +02:00
Bartosz Taudul
3c1b1b2f80
Update manual.
2026-06-09 23:48:14 +02:00
Bartosz Taudul
992134f85e
Fix regression with no tooltips on disabled items.
2026-06-09 23:31:59 +02:00
Bartosz Taudul
37bc986584
Add button for re-rolling annotation name.
2026-06-09 23:27:07 +02:00
Bartosz Taudul
feb4e7c989
Generate random names for new annotations.
2026-06-09 23:24:58 +02:00
Bartosz Taudul
4a8fe6f56e
Add button to generate random trace description.
2026-06-09 23:22:21 +02:00
Bartosz Taudul
a960a25285
Add random name generator.
2026-06-09 23:22:21 +02:00
Marcos Slomp
958cb8d7f8
WGPU_PATH fix
2026-06-09 12:56:34 -07:00
Marcos Slomp
59f17794a5
fixing MemWrite casts
2026-06-09 09:06:48 -07:00
Marcos Slomp
3b2c7dbacb
fixing webgpu lib linkage based on WGPU_PATH
2026-06-09 09:06:48 -07:00
Marcos Slomp
56ed480ed2
relocating webgpu example
2026-06-09 09:06:48 -07:00
Marcos Slomp
0572c86551
Wayland woes...
2026-06-09 09:06:48 -07:00
Marcos Slomp
6499e3383b
fix Linux build
2026-06-09 09:06:48 -07:00
Marcos Slomp
8278ace0c1
build fix
2026-06-09 09:06:48 -07:00
Marcos Slomp
5981eca141
adding webgpu example/demo
2026-06-09 09:06:48 -07:00
Marcos Slomp
1b2856b885
GPU context name
2026-06-09 09:06:48 -07:00
Marcos Slomp
118f18cf4b
updating docs
2026-06-09 09:06:48 -07:00
Marcos Slomp
bfbc1d3bee
missing interface, and more debugging
2026-06-09 09:06:48 -07:00
Marcos Slomp
831779508f
minor fixes/comments
2026-06-09 09:06:48 -07:00
Marcos Slomp
286309af3f
refactoring calibration estimations
2026-06-09 09:06:47 -07:00
Marcos Slomp
3db70a2237
refactoring
2026-06-09 09:06:47 -07:00
Marcos Slomp
da952f3f38
more refactoring
2026-06-09 09:06:47 -07:00
Marcos Slomp
efba4685ef
more cleanup and refactoring
2026-06-09 09:06:47 -07:00
Marcos Slomp
598984c45d
refactoring initial calibration
2026-06-09 09:06:47 -07:00
Marcos Slomp
860011c604
calibration stability
2026-06-09 09:06:47 -07:00
Marcos Slomp
0cdcbfc75d
refactoring query resolve
2026-06-09 09:06:47 -07:00
Marcos Slomp
e5d4be95df
getting rid of spontaneous callbacks
2026-06-09 09:06:47 -07:00
Marcos Slomp
7b3863d93d
redesign...
2026-06-09 09:06:47 -07:00
Marcos Slomp
de2a18d964
initial prototype for WebGPU back-end
2026-06-09 09:06:47 -07:00
Marcos Slomp
9588912aa9
Speeding-up GitHub build-bots ( #1392 )
...
* disabling LTO when building the profiler on macos via the github workflow
* diagnosing where in the linking stage it's getting stuck
* fowrward declarations
* compilation time report
* trying clang build analyzer...
* reducing number of parallel workers
* limiting parallel workers on windows/linux as well
* re-enabling LTO on macos
* reverting forward declaration header include (emscripten is failing with them).
* reverting act changes
* removing comments
2026-06-09 11:21:09 +02:00
Bartosz Taudul
7ee4380f64
Merge pull request #1395 from MaximeCoutantSonos/master
...
Add support for Shared Locks in the C API
2026-06-08 17:34:17 +02:00
Bartosz Taudul
01e639db97
Merge pull request #1336 from bmilanich/rocm-on-demand-fix
...
TracyRocprof: fix on-demand profiling crash and missing context name
2026-06-08 17:06:45 +02:00
Basil Milanich
030e699eb5
Move rocprof on-demand repro to tests/ and convert to CMake
...
Conform to the new repo layout (master moved repros under tests/, e.g.
tests/cuda/repro/graph). Relocate examples/RocprofOnDemandRepro to
tests/rocprof/repro/on_demand and replace the hand-written Makefile with
a CMake build mirroring the CUDA repro: builds the HIP reproducer, wires
it as a ctest target, and optionally builds the check_gpu_ctx_name
verification helper against the Tracy server library.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 09:47:22 -05:00
Basil Milanich
16cdf3d645
Merge remote-tracking branch 'origin/master' into rocm-on-demand-fix
...
# Conflicts:
# public/client/TracyRocprof.cpp
2026-06-08 09:43:07 -05:00
MaximeCoutantSonos
2f143491eb
Fixed typo in grammar
2026-06-08 16:07:06 +02:00
MaximeCoutantSonos
796050ac1e
Added documentation for the shared lock C API
2026-06-08 15:52:54 +02:00
MaximeCoutantSonos
31dbfef97d
Added C shared lock to C-API
2026-06-08 15:19:00 +02:00
Bartosz Taudul
19519bbeb0
Merge pull request #1394 from bruno-dasilva/bruno/opengl-drift-correction
...
fix: add opengl drift correction for gpu zones
2026-06-07 22:50:40 +02:00
Bruno Da Silva
fc4f52e61d
add opengl drift correction option to meson.options/meson.build
2026-06-07 20:14:36 +00:00
Bruno Da Silva
e2ac8f7973
fix: add opengl drift correction for gpu zones
2026-06-07 00:23:14 +00:00
Bartosz Taudul
e5aa8eba51
Merge pull request #1387 from Lectem/wip/offline-res-for-any-toolchain
...
Offline resolution for any toolchain
2026-06-06 14:48:54 +02:00
Clément Grégoire
7437c41514
Escape provided addr2line tool path
2026-06-06 14:47:24 +02:00
Bartosz Taudul
f441a5070b
Wrap achievements column contents into child windows.
2026-06-06 13:19:56 +02:00
Bartosz Taudul
00b6abd67b
Move achievements text to markdown files.
2026-06-06 13:19:55 +02:00
Bartosz Taudul
e4e3d75eb8
Add PDF link to built-in manual viewer.
2026-06-06 10:56:25 +02:00
Bartosz Taudul
fc5318dcad
Some more markdown user manual compatibility fixes.
2026-06-06 01:53:05 +02:00
Bartosz Taudul
661c664b75
Converte LaTeX math in markdown to plain text.
2026-06-06 01:44:27 +02:00
Bartosz Taudul
6dbebca666
Reset user manual view scroll position after changing section from toc.
2026-06-06 01:28:24 +02:00
Bartosz Taudul
73d78ad517
Fix tables in markdown manual.
2026-06-06 01:25:49 +02:00
Bartosz Taudul
e5371d7987
Icons description separator must start at newline.
...
Otherwise it will clash with wrong things, like middle-of-line table header
separators.
2026-06-06 01:25:08 +02:00
Bartosz Taudul
9806f35714
Increase spacing between admonition icon and header text.
2026-06-06 00:43:09 +02:00
Bartosz Taudul
d40289d594
Add support for markdown admonitions.
2026-06-05 23:28:09 +02:00
Bartosz Taudul
86fbe529ed
Bump font awesome to 7.2.
2026-06-05 23:28:09 +02:00
Bartosz Taudul
9b169ef3f9
Merge pull request #1391 from wolfpld/slomp/cuda-examples
...
Adding CUDA examples
2026-06-05 21:55:02 +02:00
Marcos Slomp
64797dc735
adding basic CUDA graph example
2026-06-05 12:52:08 -07:00
Bartosz Taudul
76797799c0
Merge pull request #1390 from wolfpld/slomp/cuda-tests
...
Relocating existing CUDA tests
2026-06-05 21:50:11 +02:00
Marcos Slomp
19549693a0
removing Makefile
2026-06-05 12:46:10 -07:00
Marcos Slomp
10d64d69b5
better ctest integration across the board
2026-06-05 12:46:10 -07:00
Marcos Slomp
d89c956394
CUPTI DLL paths...
2026-06-05 12:46:10 -07:00
Marcos Slomp
79467b4b31
cmake version shenanigans
2026-06-05 12:46:10 -07:00
Marcos Slomp
ae275f239d
adding cmake recipe file
2026-06-05 12:46:10 -07:00
Marcos Slomp
77fb86155f
relocating CUDAGraphRepro "example" to the tests folder
2026-06-05 12:46:10 -07:00
Bartosz Taudul
e627fcce98
Merge pull request #1386 from wolfpld/slomp/test-relocation
...
Relocating Tracy test app, plus GitHub actions
2026-06-05 21:19:22 +02:00
Bartosz Taudul
e80893ac20
Reset font size when displaying markdown tooltip.
2026-06-05 19:19:37 +02:00
Bartosz Taudul
912f8c048c
Render footnotes in smaller size font.
2026-06-05 19:17:46 +02:00
Bartosz Taudul
d16f627cbc
Header sizes are 1-6, remove extra entry.
2026-06-05 19:12:04 +02:00
Clément Grégoire
7cb98245ce
Batch addr2line invocations by command-line length
...
The fixed batches of 1024 addresses could overflow the platform's command-line limit (`La ligne de commande est trop longue.` from cmd.exe on Windows, whose limit is ~8191 characters). Build each batch by appending addresses until a length budget is reached instead. A single conservative budget of 8000 stays under the smallest limit on every platform, and keeps batches in the same ballpark as before (several hundred addresses per invocation).
2026-06-05 19:10:19 +02:00
Bartosz Taudul
3974cc8026
Add support for proper rendering of markdown footnotes.
2026-06-05 19:09:49 +02:00
Clément Grégoire
55d5436fb9
Add option to reset callstack frame symbols to the unresolved state
...
The new `-R` option of tracy-update sets every callstack frame back to `[unresolved]` / `[unknown]`. Since failed lookups leave frames untouched and the image-relative offset in `symAddr` survives patching, this makes it possible to chain several resolution passes over the same capture, each with different `-p` path substitutions (e.g. one pass per symbol directory).
2026-06-05 19:03:35 +02:00
Clément Grégoire
2b11785b05
Allow offline symbol resolution with any addr2line-compatible tool
...
The addr2line backend of tracy-update now builds on every platform, including Windows, and can be pointed at any addr2line-compatible executable:
- `-a`: path to a custom symbol resolution tool (e.g. `llvm-addr2line` or a cross-compilation toolchain's `addr2line`). Works on all platforms and takes precedence over the platform default (DbgHelp on Windows, the `addr2line` found in `PATH` elsewhere). Path-like values are validated up front so a wrong path fails with an actionable message instead of a cryptic, localized shell error.
- `-A`: extra arguments passed verbatim to the tool, e.g. `--relative-address` so `llvm-addr2line`/`llvm-symbolizer` accept the image-relative offsets Tracy records for images with a non-zero preferred base (PE, Mach-O).
- `-v`: verbose output while patching symbols.
2026-06-05 19:03:35 +02:00
Bartosz Taudul
715815374d
Rebuild markdown manual.
2026-06-05 18:42:50 +02:00
Bartosz Taudul
4f64b974c6
Update manual.
2026-06-05 18:42:24 +02:00
Bartosz Taudul
7c58db4c0a
Add public sidecar icon.
2026-06-05 18:40:18 +02:00
Marcos Slomp
f9f772e507
quick (attempted) fix for the Linux workflow linkage error
2026-06-05 09:14:22 -07:00
Marcos Slomp
af2a369dff
re-documenting each action step
2026-06-05 09:08:07 -07:00
Bartosz Taudul
bebf20846f
Expose setting public sidecar in UI.
2026-06-05 17:45:58 +02:00
Bartosz Taudul
5f6bc2238a
Public user data sidecar support.
2026-06-05 17:45:58 +02:00
Bartosz Taudul
4564a626b2
UserData::Save() returns success status.
2026-06-05 17:40:22 +02:00
Bartosz Taudul
e95a757e6c
Store trace file path in UserData.
2026-06-05 17:32:46 +02:00
Marcos Slomp
2ebf18be7f
adjusting relative path
2026-06-05 08:25:59 -07:00
Bartosz Taudul
fc97af4c68
Redirect unlink to _unlink with msvc.
2026-06-05 17:23:58 +02:00
Bartosz Taudul
8eada19734
Add a separate function to retrieve sidecar path.
2026-06-05 17:21:24 +02:00
Marcos Slomp
a56b08e539
adding test application to windows and macos github workflows
2026-06-05 08:19:07 -07:00
Marcos Slomp
9c9dca8ea5
relocating tracy test app, and consolidating github test action
2026-06-05 08:17:29 -07:00
Bartosz Taudul
268cab7f89
Remove UserData::GetConfigLocation().
2026-06-05 17:03:23 +02:00
Bartosz Taudul
aeda64d36b
Move saving user data to a separate function.
2026-06-05 15:58:07 +02:00
Bartosz Taudul
f5526d01a2
Merge pull request #1385 from nitrix/bump-cmake-313
...
Bump CMake min version to 3.13
2026-06-05 00:01:22 +02:00
Bartosz Taudul
20e6835da6
Fix remaining MemWrites.
2026-06-05 00:00:04 +02:00
Bartosz Taudul
6b92ec1a23
Message queue item is already in the right format.
...
After swapping ptr and tag in TaggedUserlandAddress, the tag part aligns
exactly with the metadata field.
2026-06-04 20:08:07 +02:00
Bartosz Taudul
45e90549aa
Rewrite TaggedUserlandAddress.
...
Drop dead code. Move tag to low bits, keep ptr at high bits. Protocol bump,
as TaggedUserlandAddress is used to transmit "literal" messages.
2026-06-04 19:37:47 +02:00
Bartosz Taudul
1690ac0d9d
Force inlining of TaggedUserlandAddress.
2026-06-04 12:31:08 +02:00
Bartosz Taudul
a8fab8c977
Cosmetics.
2026-06-04 12:30:51 +02:00
Bartosz Taudul
a0b50ee68e
Tabs to spaces.
2026-06-04 12:27:03 +02:00
Bartosz Taudul
896a59d00b
Simplify.
2026-06-04 12:11:14 +02:00
Bartosz Taudul
d3db50c201
Mingw fixes.
2026-06-04 12:08:53 +02:00
Alex Belanger
21434e9877
Bump CMake min version to 3.13
2026-06-04 00:27:43 -04:00
Bartosz Taudul
185482c0d9
MemRead deduces returned type from pointer.
2026-06-04 00:49:02 +02:00
Bartosz Taudul
a27dae3e88
Enforce same type in MemWrite.
2026-06-04 00:49:02 +02:00
Bartosz Taudul
7d139a7bf1
Use proper data types for MemWrite.
2026-06-04 00:49:02 +02:00
Bartosz Taudul
02e279bd38
Unaligned memory reads must go via MemRead.
2026-06-04 00:00:08 +02:00
Bartosz Taudul
4e593d91f5
Enable color diagnostics when building library.
2026-06-03 23:48:05 +02:00
Bartosz Taudul
75e721cf0c
More subtle range limits visualization.
2026-06-03 23:38:58 +02:00
Bartosz Taudul
c4321bc83c
Merge pull request #1383 from wolfpld/slomp/cuda-version
...
bumping "down" CUDA version
2026-06-03 20:35:54 +02:00
Marcos Slomp
224ff6d0e8
bumping "down" CUDA version
2026-06-03 11:05:06 -07:00
Bartosz Taudul
cc76d0f60e
Save per-trace user options in a json sidecar.
2026-06-03 02:03:07 +02:00
Bartosz Taudul
d4d1f78263
Refactor TracyUserData.
2026-06-03 00:00:45 +02:00
Bartosz Taudul
c570288145
Store annotation pointers as shared_ptr.
2026-06-02 01:13:33 +02:00
Bartosz Taudul
98b61e0096
Rename Save* to Store* in TracyUserData.
2026-06-02 01:00:31 +02:00
Bartosz Taudul
5c75032cad
Fix typo.
2026-06-02 00:09:27 +02:00
Bartosz Taudul
1381b427db
Merge pull request #1379 from wolfpld/slomp/cuda-version-doc
...
Document and check for required CUDA version
2026-06-01 22:21:40 +02:00
Marcos Slomp
21b9f50cea
CUDA version check
2026-06-01 11:25:40 -07:00
Marcos Slomp
cbad012980
typo
2026-06-01 11:09:01 -07:00
Marcos Slomp
d4298f7794
document CUDA version
2026-06-01 11:06:59 -07:00
Bartosz Taudul
f113bbb212
Do not mix loading file data with regex validation.
2026-06-01 00:44:11 +02:00
Bartosz Taudul
0b4128f76c
Move source regex validation to a helper function.
2026-06-01 00:40:08 +02:00
Bartosz Taudul
bab8c8eb54
Remove compatibility with vastly obsolete user data file format.
2026-06-01 00:33:39 +02:00
Bartosz Taudul
cbe5347593
Cleanup.
2026-06-01 00:32:05 +02:00
Bartosz Taudul
189e8a1a89
Regenerate markdown manual.
2026-05-30 19:00:39 +02:00
Bartosz Taudul
a5316d525c
Crash marker on the timeline also should directly open crash call stack.
2026-05-30 18:58:27 +02:00
Bartosz Taudul
c3e9ff17da
Update manual.
2026-05-30 18:34:42 +02:00
Bartosz Taudul
0cf438a78e
Add arrows to bottom-up / top-down tree labels.
2026-05-30 18:13:14 +02:00
Bartosz Taudul
e37b12aacb
Add icon notification for chat suggestions.
2026-05-30 17:36:33 +02:00
Bartosz Taudul
dd53f721ac
Go directly to crash callstack from crash notification.
2026-05-30 15:59:57 +02:00
Bartosz Taudul
058d5ca7c3
Center timeline on crash if clicked on crash text in callstack window.
2026-05-30 15:58:19 +02:00
Bartosz Taudul
eef525243d
Add crash tooltip to crash callstack window.
2026-05-30 15:55:16 +02:00
Bartosz Taudul
1f2bbe918f
Move Tracy Assist subsection to a section in the user manual.
2026-05-30 15:24:10 +02:00
Bartosz Taudul
0089fab94c
Update NEWS.
2026-05-30 15:07:15 +02:00
Bartosz Taudul
0778ef85c6
Draw external frames dimmed in sample entry stacks.
2026-05-30 02:00:45 +02:00
Bartosz Taudul
5e6d872940
Symbol function address column was too narrow.
2026-05-30 01:26:43 +02:00
Bartosz Taudul
b7ed5bd9ef
Dim external entries in symbol functions lists.
2026-05-30 01:24:10 +02:00
Bartosz Taudul
de1f84d52b
Fix positioning of hotness indicators.
2026-05-29 18:16:14 +02:00
Bartosz Taudul
9f88bc6d04
Bump capstone.
2026-05-29 18:16:14 +02:00
Bartosz Taudul
bd0ba00513
Merge pull request #1377 from siliceum/fix/non-desktop-win32
...
Fix non desktop win32 build
2026-05-29 17:55:11 +02:00
Clément Grégoire
0e52e387bd
gate GetUserNameExA behind TRACY_WIN32_NO_DESKTOP
...
Same as `GetUserNameA` in `GetUserLogin`
2026-05-29 17:51:33 +02:00
Clément Grégoire
e93ddd2aa7
When using the MSVC C runtime, fileno doesn't actually exist, use _fileno instead.
...
OLDNAMES.lib may not be linked if you use /NODEFAULTLIB.
Note: This uses `_MSC_VER` as a gate and not _WIN32 as MinGW apparently uses `fileno` and not `_fileno`.
2026-05-29 17:51:30 +02:00
Bartosz Taudul
33905b2f15
Dim external frames in local call stacks.
2026-05-29 00:34:05 +02:00
Bartosz Taudul
d06755652f
Merge pull request #1374 from rmarker/flameView
...
Allow zooming and panning the flamegraph view.
2026-05-28 20:18:45 +02:00
Bartosz Taudul
dbdbd710d8
Add readme file for the user manual directory.
2026-05-28 18:39:00 +02:00
rmarker
15ee99ae41
Add animated zooming to the flame graph view.
2026-05-28 22:02:11 +09:30
rmarker
17f6be4ad4
Extract UpdateZoomAnimation.
...
This will allow for it to be used in the flame graph.
2026-05-28 22:01:03 +09:30
rmarker
30fd92de0f
Handle partial panning in flame graph view.
...
When zoomed in very far the panning resolution can be so small that it
is less than one unit. In order to continue panning, we store partial
pans so that they can accumulate across frames.
2026-05-28 21:59:33 +09:30
rmarker
0b27b9ec1a
Allow zooming in further to the flame graph.
2026-05-28 21:51:41 +09:30
rmarker
cc4b7dcea9
Add a reset view button to the flame graph.
2026-05-28 21:50:19 +09:30
rmarker
4a9e3ea095
Add a horizontal position bar to flame graph.
...
Now that the ruler just shows the delta time across the view it doesn't
indicate where the view is currently looking.
The new position bar fills this role to allow orientating oneself.
2026-05-28 21:48:14 +09:30
rmarker
55de5bc5ca
Update flame graph ruler to measure the time shown in the current view.
...
It now starts at 0 and shows the time delta across the view.
2026-05-28 21:39:03 +09:30
rmarker
2e87eecc67
Support the live capture case in the flame graph view.
...
Zooming and panning in the flame graph view shouldn't cause visual
glitches when live data is being captured.
2026-05-28 21:37:01 +09:30
Bartosz Taudul
74eea83051
Merge pull request #1375 from wolfpld/slomp/vulkan-calibration-patch
...
GPU: Vulkan: upper-bound to the calibration loop
2026-05-28 11:37:00 +02:00
Marcos Slomp
c9fa58f2bb
keep preprocessor directives idented to the margin
2026-05-27 16:12:24 -07:00
Marcos Slomp
b7fdc8c0eb
newlines
2026-05-27 15:54:03 -07:00
Bartosz Taudul
f5581d7dcb
Focus opened manual chapter in the manual tree.
2026-05-27 22:34:04 +02:00
Bartosz Taudul
b682a77f82
Focus the manual window on chapter change.
2026-05-27 22:34:04 +02:00
Bartosz Taudul
800334a953
Show nicer title page of embedded user manual.
2026-05-27 22:34:04 +02:00
Bartosz Taudul
9da66d4c6b
Add icon texture accessor.
2026-05-27 22:33:56 +02:00
Bartosz Taudul
04c1a84159
Do not display icon explainer section in the built-in manual viewer.
2026-05-27 01:52:11 +02:00
Bartosz Taudul
b736e4590e
Rebuild markdown manual.
2026-05-27 01:52:11 +02:00
Bartosz Taudul
6b28296ef3
Add icon explanations to aid in helping icons by what they show.
2026-05-27 01:52:11 +02:00
Bartosz Taudul
c11fd010d8
Rebuild markdown manual.
2026-05-27 00:10:33 +02:00
Bartosz Taudul
121e10c837
Convert latex font awesome markup to unicode codepoints matching the C defines.
2026-05-26 23:56:27 +02:00
Marcos Slomp
e57c0869df
(take care of dead code warning)
2026-05-26 14:49:32 -07:00
Marcos Slomp
4cf754f3fe
Calibrate no takes a max sample count
2026-05-26 14:39:12 -07:00
Bartosz Taudul
22d1c2d3c3
Properly convert bclogo blocks into markdown.
2026-05-26 22:34:45 +02:00
Marcos Slomp
884415264b
error check
2026-05-26 07:53:01 -07:00
Marcos Slomp
ea8cbc849f
adding an upper-bound to the calibration loop
2026-05-26 07:15:54 -07:00
Bartosz Taudul
20d7135c24
Merge pull request #1373 from siliceum/feature/unify-set-options
...
Options.cmake: unify `set_options*` and `tracy_set_options`
2026-05-26 12:58:45 +02:00
Clément Grégoire
aaf1304308
Options.cmake: unify set_options* and tracy_set_options
...
Renamed `tracy_*` versions to short version without prefix
2026-05-26 12:50:19 +02:00
rmarker
37750e27ab
Allow zooming and panning the flamegraph view.
...
It could be challenging to examine fine details within the flamegraph.
The flamegraph has been enhanced so that it allows zooming with the
mouse wheel, and then panning around with the right mouse button.
This provides a familiar experience to the timeline view.
2026-05-26 19:30:29 +09:30
Bartosz Taudul
ab62c00be5
Add limit on disassembly tool reply.
2026-05-25 00:57:19 +02:00
Bartosz Taudul
757b582ae7
Include external function status in sampling stats.
2026-05-25 00:46:46 +02:00
Bartosz Taudul
b81ef061f8
Display LLM address during connection attempt.
2026-05-24 17:02:03 +02:00
Bartosz Taudul
702b16977b
Set 5 second connection timeout on LLM API connection.
2026-05-24 17:02:02 +02:00
Bartosz Taudul
3f1e572a23
Update LLM API input hint to llama.cpp default port.
2026-05-24 17:02:02 +02:00
Bartosz Taudul
00d4e9ba21
Don't try connecting to LLM after each keystroke.
...
When typing in e.g. "127.0.0.1" the first character "1" as a valid address
that does not immediately fail the connection attempt. The result was that
any further interaction with the UI (including completing the input) was
blocked by the "please wait" screen during connection attempt.
2026-05-24 17:01:59 +02:00
Bartosz Taudul
ee37bb40f0
Merge pull request #1372 from wolfpld/slomp/nvcc-msvc-fix
...
NVCC (with MSVC/cl.exe) build fix
2026-05-24 16:29:58 +02:00
Bartosz Taudul
215199239f
Merge pull request #1370 from siliceum/feature/custom-platform-hooks
...
Add `TRACY_PLATFORM_HEADER` hook for unsupported platforms
2026-05-24 15:48:43 +02:00
Clément Grégoire
f93d17a96f
Add TRACY_PLATFORM_HEADER hook for unsupported platforms.
...
Extension point so private/unsupported platforms can plug in their own implementations of the kernel/libc primitives Tracy depends on, without patching the `#if`/`#elif` chains.
Projects supply a platform header via `-DTRACY_PLATFORM_HEADER="\"my_platform.h\""` at build time. Tracy includes it in any TU that needs the hooks. The header toggles per-category `TRACY_HAS_CUSTOM_*` macros and declares matching `tracy::Platform*` functions.
Available hooks:
- `TRACY_HAS_CUSTOM_THREAD_ID` → `PlatformGetThreadId`
- `TRACY_HAS_CUSTOM_USER_INFO` → `PlatformGetHostname`, `PlatformGetUserLogin`, `PlatformGetUserFullName`
- `TRACY_HAS_CUSTOM_SAFE_COPY` → `PlatformSafeMemcpy`
- `TRACY_HAS_CUSTOM_ALLOCATOR` → `PlatformMalloc`, `PlatformFree`, `PlatformRealloc`, `PlatformAllocatorInit`, `PlatformAllocatorThreadInit`, `PlatformAllocatorFinalize`, `PlatformAllocatorThreadFinalize`
Each hook is wired as the first arm of its respective `#if`/`#elif` chain, so existing supported platforms are unaffected.
Template files in `examples/CustomPlatform/` and a new subsection in `manual/tracy.tex` document the mechanism.
2026-05-24 15:42:42 +02:00
Clément Grégoire
84570487bf
Move CMake option wrappers into cmake/options.cmake.
...
Move `tracy_set_option` and `tracy_set_option_value` from `CMakeLists.txt` into `cmake/options.cmake`. Add `tracy_set_option_value_as_string` for options whose value is embedded as a C string literal. All three accept an optional trailing target argument; when provided, the option is also propagated as a PUBLIC compile definition on that target.
Existing `set_option`/`set_option_value` are unchanged but will be replaced later by the `tracy_*` versions.
2026-05-24 15:42:42 +02:00
Bartosz Taudul
03227f7ae1
Update identify.cpp build instructions.
2026-05-24 15:35:43 +02:00
Bartosz Taudul
05c2638467
Remove option to build profiler GUI with no statistics.
2026-05-24 15:07:53 +02:00
Clément Grégoire
fd68959223
Rename InitRpmalloc to InitAllocator.
...
The function is about to dispatch between rpmalloc and a pluggable allocator hook, so the rpmalloc-specific name no longer fits. Pure rename plus a small consequence: the SymbolWorker call site no longer needs the TRACY_USE_RPMALLOC guard, since the no-op static-inline fallback in TracyAlloc.hpp makes InitAllocator() safe to call unconditionally.
2026-05-24 15:04:31 +02:00
Bartosz Taudul
5c0263c2f0
Disable display of hw samples by default.
2026-05-24 14:57:31 +02:00
Bartosz Taudul
5fd0dc569b
Make impact option active only if hw samples are enabled.
2026-05-24 14:55:59 +02:00
Bartosz Taudul
ec1c2d4267
Display aggregation counts in bottom / up sample trees.
2026-05-24 14:23:59 +02:00
Bartosz Taudul
b7e405ebbd
Use proper wait stacks grouping variable.
2026-05-24 14:15:53 +02:00
Bartosz Taudul
e8a0676c0b
Fix regression that made propagate inlines always disabled if no child calls.
2026-05-24 13:35:48 +02:00
Bartosz Taudul
32b46a3b90
Cleanup.
2026-05-23 23:53:22 +02:00
Bartosz Taudul
cffd0007c5
Bump libs.
2026-05-23 23:41:39 +02:00
Marcos Slomp
564e0e1e71
removing scope qualifiers
2026-05-23 14:20:06 -07:00
Bartosz Taudul
6eb9bf81ad
Fix out of bounds read.
2026-05-23 13:40:18 +02:00
Bartosz Taudul
f99a02505a
Fix possible div-by-zero.
...
If as.ipMaxAsm.local is 0 and m_childCalls is false, GetHotnessColor(count, 0)
performs float(2 * count) / 0. The old code explicitly guarded against this
with the as.ipMaxAsm.local != 0 check.
2026-05-23 13:33:16 +02:00
Bartosz Taudul
f63c25fb79
Add glow to gutter markers.
2026-05-23 13:11:02 +02:00
Bartosz Taudul
a0af290db5
Rework symbol view gutter markers logic.
2026-05-23 12:26:24 +02:00
Bartosz Taudul
65db47ed0d
Implement viewing assembly attachments.
2026-05-23 01:35:11 +02:00
Bartosz Taudul
d06c4ce816
Fix broken callstack display in zone tooltips if no local functions.
2026-05-23 00:37:57 +02:00
Bartosz Taudul
c91215bd99
Add function for checking if there are local functions in a callstack.
2026-05-23 00:30:47 +02:00
Bartosz Taudul
dfac4cb8a4
Defer initial system prompt update to the first draw.
2026-05-22 19:15:47 +02:00
Bartosz Taudul
34a1bb6107
DrawSourceTooltip() doesn't work with free-floating strings.
2026-05-22 17:54:26 +02:00
Bartosz Taudul
6957f968a4
Include trace time span in llm system message.
2026-05-22 02:06:58 +02:00
Bartosz Taudul
896cdc9462
Fade-out outdated assistant replies.
...
The "outdated" concept is strictly for chain of assistant replies with
nothing in between, i.e.:
"I will check this..." <- outdated
<tool call> <- not displayed
"Now I will do that..." <- outdated
<tool call> <- not displayed
"Let me consider..." <- outdated
<reasoning> <- not displayed
"Now I have the answer..."
The first three messages are at this point considered outdated, as the
model provided a more recent message.
Note that in chain such as below there are NO outdated messages:
"How can I help..."
<user input>
"Ah, I see..."
<user input>
"You may try to..."
Similarly, if the tool calls or reasoning sections are explicitly enabled
in the chat UI, the messages are also not considered outdated.
2026-05-21 21:23:14 +02:00
Bartosz Taudul
efc33a09d9
Fix potential issue with last chat turn detection.
2026-05-21 20:51:58 +02:00
Bartosz Taudul
61875e1bd0
Add LLM tool for listing sampling statistics.
2026-05-21 20:27:54 +02:00
Bartosz Taudul
e003885946
Merge pull request #1369 from siliceum/feature/no-sys-param-for-bsd
...
Drop sys/param.h dependency for BSD detection
2026-05-21 17:57:16 +02:00
Bartosz Taudul
d40806caff
Merge pull request #1368 from siliceum/fix/timeline-depth
...
Prevent unlimited recursion leading to stack overflow
2026-05-21 17:50:58 +02:00
Clément Grégoire
e7c71c991c
Drop sys/param.h dependency for BSD detection
...
Replace `#ifdef BSD` (which requires including `<sys/param.h>` first) with explicit checks for `__FreeBSD__`, `__NetBSD__`, `__OpenBSD__` and `__DragonFly__`, matching how these BSDs are already enumerated elsewhere in the codebase (OS name strings, thread id helpers, etc.).
This also avoids leaking the `sys/param.h` requirement through public headers (`TracySysTime.hpp`, `TracyCallstack.h`), where consumers would otherwise need it to correctly see `TRACY_HAS_SYSTIME` / `TRACY_HAS_CALLSTACK`.
`libbacktrace/config.h` is left as-is — it's third-party and only included from .c files where the `BSD` macro can still be picked up locally.
Note: for `setsockopt( m_sock, IPPROTO_IPV6, IPV6_V6ONLY, (const char*)&val, sizeof( val ) );` I added `__APPLE__` too since this was the only place where it was not checked explicitely.
2026-05-21 10:18:30 +02:00
Clément Grégoire
69855a1416
Prevent unlimited recursion leading to stack overflow
...
This can happen notably when the user does not call ZoneEnd.
I used 256 arbitrarily as it seemed higher values would just make the UI freeze anyway due to perf reasons.
I added a warning in the notification area so that users can locate it.
2026-05-21 09:38:43 +02:00
Bartosz Taudul
60247b68d3
Merge pull request #1364 from siliceum/fix/zone-runtime
...
Fix and refactor zone running time
2026-05-20 19:29:29 +02:00
Bartosz Taudul
b48ef9a2ab
Merge pull request #1366 from siliceum/fix/ondemand-no-callstack-hang
...
Fix ProfilerWorker hang when TRACY_HAS_CALLSTACK is not defined
2026-05-20 18:05:42 +02:00
Clément Grégoire
e59601cf1c
Fix ProfilerWorker hang when TRACY_HAS_CALLSTACK is not defined
2026-05-20 17:51:42 +02:00
Bartosz Taudul
43472f1226
Merge pull request #1365 from siliceum/feature/fiber-tests
...
Add fiber to test app
2026-05-20 12:34:45 +02:00
Clément Grégoire
c1177a0cde
Add fiber to test app
...
This simulates fibers on different threads. Was used to discover an issue reported on discord which led to #1364
2026-05-20 12:07:05 +02:00
Clément Grégoire
91c0b1e42b
Fix and refactor zone running time
...
Many of the zones would have a negative running time due to a missing `cs->IsEndValid()` check.
This could end reporting context switches before the zone start, due to `cs->End()` returning -1.
This happened when systrace dropped event, or when using Fibers and `TracyFiberEnter` is called on the new thread once the fiber has been scheduled. (The manual actually does not really hint this is wrong, we should probably fix the manual or the server code.)
In both cases, we assume runtime to be 0 for that context switch. Since we have no actual information. Both options (counting full runtime or no runtime) are wrong, and most of the code handling `!cs->IsEndValid()` uses `Start` instead so that's what I did. This is still a net improvement over displaying negative values. If we want to change this handling, we'd need to review the other places that do `it->IsEndValid() ? it->End() : it->Start()` as well.
It also seems two different concepts were being mixed:
1. Do we have any context switch data at all ? (`it != ctx->v.end()` ie `count != 0`)
2. Do we have complete data for the last context switch (`eit != ctx->v.end()`)
This led to some places of the code not displaying or counting running time at all, notably when hovering a zone.
I think most of the time we wanted 1, as it reports correctly and assumes the last context switch is still running, which is a fair assumption if we didn't see one putting the thread to sleep.
I also fixed a case where we were overcounting runtime when range start was during a sleep.
2026-05-20 12:02:38 +02:00
Bartosz Taudul
14a1a3227e
Add guidance about function context.
2026-05-20 02:26:14 +02:00
Bartosz Taudul
8582715fa5
Add information about addresses in callstacks.
2026-05-20 02:26:14 +02:00
Bartosz Taudul
d51634ad24
Include ip and base addr in json callstack frames.
2026-05-20 02:26:14 +02:00
Bartosz Taudul
4bbfe5edbd
Add tool for getting symbol parent calls.
2026-05-20 02:26:14 +02:00
Bartosz Taudul
55c5348fad
Make GetCallstackJson public.
2026-05-20 00:41:20 +02:00
Bartosz Taudul
5b4dcd4655
Add support for parent callstacks to GetCallstackJson.
2026-05-20 00:27:24 +02:00
Bartosz Taudul
a380046e17
Switch symbol disassembly tool to use symbol address parameter.
2026-05-19 23:52:20 +02:00
Bartosz Taudul
6494285283
Include hex address ofthe symbol in disassembly json.
2026-05-19 23:41:36 +02:00
Bartosz Taudul
ec92f2fac3
Update NEWS.
2026-05-19 22:50:11 +02:00
Bartosz Taudul
07b2600c08
Do not spam wikipedia.
2026-05-19 21:58:15 +02:00
Bartosz Taudul
562a120087
Merge pull request #1362 from alandtse/feature/mcp-save-trace
...
Add save_trace MCP tool for snapshotting live or loaded captures
2026-05-19 12:21:46 +02:00
Alan Tse
33fe84532e
Add save_trace MCP tool for snapshotting live or loaded captures.
...
- save_worker binding: wraps Worker::Write under
Worker::ObtainLockForMainThread() so live instances yield their
receive thread cooperatively for the save's duration — the same
pattern View::Save uses in the GUI.
- save_trace MCP tool: defaults to async_mode=True for multi-GB
traces; reuses the existing Task/executor machinery so callers
poll via the task tool. Path resolution mirrors load_capture.
- manual/tracy.tex: add save_trace bullet to the MCP tool list.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-19 01:23:31 -07:00
Bartosz Taudul
1f1738c221
Make glow bigger.
2026-05-18 01:00:38 +02:00
Bartosz Taudul
eb411b1138
Merge pull request #1361 from rmehri01/patch-2
...
fix: header definition of start/end sampling profiling
2026-05-17 21:57:22 +02:00
Bartosz Taudul
cf5325032e
Make the symbol view hotness indicators more chonky.
...
The previous uniform glow rectangle was not appropriate anymore, so the
glow was changed to be a proper gradient.
2026-05-17 21:53:06 +02:00
Ryan Mehri
f74a452b89
fix: header definition of start/end sampling profiling
2026-05-17 15:16:45 -04:00
Bartosz Taudul
365c99e601
Restore frameData->imageName.Active() checks.
2026-05-17 18:58:29 +02:00
Bartosz Taudul
b8f68e3fae
Add local call stacks to sample statistics inlines list.
2026-05-17 18:13:52 +02:00
Bartosz Taudul
5d4ba366ba
DrawSourceTooltip reports if source was printed.
2026-05-17 17:58:22 +02:00
Bartosz Taudul
a7937d2710
Move local callstack printing to a separate function.
2026-05-17 17:56:14 +02:00
Bartosz Taudul
efd7ec262d
Set default LLM address to llama.cpp port.
2026-05-17 17:50:33 +02:00
Bartosz Taudul
f0f579172b
Force inline fast check.
2026-05-17 16:06:56 +02:00
Bartosz Taudul
4c6157d249
Remember last retrieved external check result.
2026-05-17 15:43:26 +02:00
Bartosz Taudul
6ae6fb741e
Check if image is external once, before checking subframe filenames.
...
Cache is shared between image names and source file names, because the
underlying StringIdx storage makes indices unique. Both name sets should
be completely separate, but if you have conflicts here, you have much
more pressing problems to solve.
2026-05-17 15:30:03 +02:00
Bartosz Taudul
4ab7ef301e
Split IsFrameExternalImpl into image + filename parts.
2026-05-17 15:30:03 +02:00
Bartosz Taudul
41f1172774
Change order of IsFrameExternal checks.
...
Check image first, then perform the expensive filename check.
2026-05-17 14:30:45 +02:00
Bartosz Taudul
b18d81cbbe
Explicitly state which code paths are important to consider.
2026-05-17 14:08:54 +02:00
Bartosz Taudul
03e60c902f
Clamp max percentage bar width.
2026-05-16 13:30:51 +02:00
Bartosz Taudul
0b88cbaa3c
Fix z/x keys in source view when the child panes (src/asm) are focused.
2026-05-16 13:29:26 +02:00
Bartosz Taudul
5b180fdd5f
Restore const qualifiers dropped in 744bd21 for global cache.
2026-05-14 22:59:10 +02:00
Bartosz Taudul
03f737a923
Use local external frame cache in BuildFlameGraph.
...
In terms of how much BuildFrameGraph execution time was spent in
IsFrameExternal:
1. no cache: 67%
2. global + shared_mutex: 84%
3. global + mutex: 80%
4. local: 41% (this commit)
2026-05-14 22:44:59 +02:00
Bartosz Taudul
4e0259148f
Change IsFrameExternal interface to work with external cache.
...
Locks are dominating the execution time, making the global cache non-viable.
2026-05-14 22:29:51 +02:00
Bartosz Taudul
a3cadb2fce
Protect against localtime failures.
2026-05-14 22:06:22 +02:00
Bartosz Taudul
6789e7d6f9
Cosmetics.
2026-05-14 20:36:55 +02:00
Bartosz Taudul
c3e3ea98ad
Add basic information about the profiling session to system prompt.
2026-05-14 19:51:42 +02:00
Bartosz Taudul
c11c36f9f7
Add trace filename and user data accessors to View.
2026-05-14 19:51:41 +02:00
Bartosz Taudul
150ec1534c
Store View in TracyLlm.
2026-05-14 19:51:41 +02:00
Bartosz Taudul
0dfd7fb20b
Cache IsFrameExternal() queries.
2026-05-14 19:51:41 +02:00
Bartosz Taudul
b90e44a5f1
Add raw data accessor to StringIdx.
2026-05-14 19:33:21 +02:00
Bartosz Taudul
744bd21423
Change IsFrameExternal() interface to operate on StringIdx, move to Worker.
2026-05-14 19:01:04 +02:00
Marcos Slomp
4a58c42e2d
Merge pull request #1316 from slomp/slomp/d3d12-ring
...
GPU: D3D12: remove NewFrame() API + drop unresolved queries when under pressure
2026-05-14 09:16:32 -07:00
Marcos Slomp
af9802e3f2
debugbreak only for msvc
2026-05-14 08:24:54 -07:00
Marcos Slomp
ad9c6f2f18
addressing code review
2026-05-14 08:13:59 -07:00
Bartosz Taudul
eb3df3b411
Fix blurred web page at fractional scaling.
2026-05-13 21:53:58 +02:00
Bartosz Taudul
7e9f66c987
Prefer switching to source/line within symbol in links from markdown.
2026-05-13 00:33:43 +02:00
Bartosz Taudul
f4b89278ef
Switching to a specified filename and line within already opened symbol.
2026-05-13 00:32:54 +02:00
Bartosz Taudul
e0a8499376
Add information about symbol vs source code.
2026-05-12 18:03:45 +02:00
Bartosz Taudul
6ded0d1d7b
Bump imgui to 1.92.8-docking.
2026-05-12 18:03:45 +02:00
Bartosz Taudul
77152da627
Make child sample counts consistent with child sample time formatting.
2026-05-12 02:03:16 +02:00
Bartosz Taudul
2a51d4acf1
Disable child calls controls if there are no child calls.
2026-05-12 02:02:05 +02:00
Bartosz Taudul
ea651eacce
Give guidance for looking at external function calls.
2026-05-12 01:22:09 +02:00
Bartosz Taudul
3edcf37c58
Add guidance about links in inline code.
2026-05-12 01:03:17 +02:00
Bartosz Taudul
b0f00d20c8
Proper floating point charconv is available since libstdc++ 11 (April 2021).
2026-05-12 00:30:49 +02:00
Bartosz Taudul
453f2c1871
Display child calls time as a percentage.
2026-05-12 00:25:09 +02:00
Bartosz Taudul
e40497e02e
No 'if' for BeginChild.
2026-05-12 00:16:05 +02:00
Bartosz Taudul
e124ae985d
Add child call percentage relative to total symbol time.
2026-05-12 00:11:27 +02:00
Bartosz Taudul
efa1b1ef48
Convert child call distribution list to a table, add image column.
2026-05-12 00:11:27 +02:00
Bartosz Taudul
ec6c2618ca
Add missing separator.
2026-05-11 23:23:34 +02:00
Bartosz Taudul
fe4c920794
Skip inline symbols.
2026-05-11 23:10:06 +02:00
Bartosz Taudul
afcefc7855
Add llm tool for getting disassembly + profiling data for a symbol.
2026-05-11 22:23:29 +02:00
Bartosz Taudul
22ec55f1d5
Store View reference in TracyLlmTools.
2026-05-11 22:09:27 +02:00
Bartosz Taudul
c026c98bbb
Source file name is not needed for gathering assembly data.
2026-05-11 22:01:25 +02:00
Bartosz Taudul
205983e87f
Recalculate AddrStatData in AttachRangeToLlm.
...
For consistency, always provide the OS-level sampling data, not the hardware
samples.
Always disable inline propagation, which is intended as a local area help
for a human. It does not make sense in context of an llm.
2026-05-11 21:48:00 +02:00
Bartosz Taudul
c9a9bbdab2
Move Gather{Additional,}IpStats from TracySourceView to TracyDisassembly.
2026-05-11 21:22:53 +02:00
Bartosz Taudul
ae56d79c7e
Extract disassembly line formatting to a separate function.
2026-05-11 21:11:39 +02:00
Bartosz Taudul
860724d794
Cosmetics.
2026-05-11 20:27:53 +02:00
Bartosz Taudul
40199a42b3
Properly emit empty cost separators when line addres is not in ipCountAsm.
2026-05-11 20:27:04 +02:00
Bartosz Taudul
7c6e656fda
Use existing reference to array entry.
2026-05-11 20:01:40 +02:00
Bartosz Taudul
9611069a4f
Remove guidance about user replies from assembly attachments.
2026-05-11 19:51:39 +02:00
Bartosz Taudul
825960553a
Give reasoning for always providing source file name + line number.
2026-05-11 19:51:06 +02:00
Bartosz Taudul
325fe71d30
Move AddrStatData from TracySourceView to TracyDisassembly.
2026-05-11 19:22:37 +02:00
Bartosz Taudul
beec259520
Extract symbol code disassembly into a separate source file.
...
Two bugs fixed in the process:
1. X86_REG_BPL is now properly set (previously there were duplicate
X86_REG_BP entries).
2. maxLine is now properly calculated, instead of being set to the
last line value.
2026-05-11 01:30:28 +02:00
Bartosz Taudul
1dcad83790
Include call costs in assembly attachments.
2026-05-10 14:05:31 +02:00
Bartosz Taudul
8dd606009c
Require window focus for z/x key activation in source view.
2026-05-10 13:24:20 +02:00
Bartosz Taudul
17b6656c85
Provide program optimization strategies for llm.
2026-05-10 12:44:49 +02:00
Bartosz Taudul
edb5241bee
Be more efficient with missing values in asm attachments.
2026-05-10 11:35:31 +02:00
Bartosz Taudul
5cb283073e
Store kernel symbol end address, not size.
...
The end address is now readily available in lower_bound search, instead
of needing to be calculated constantly in the lambda.
The size can be equivalently calculated from the end address, but this
only happens once, after the symbol is found.
2026-05-10 00:15:18 +02:00
Bartosz Taudul
a6c72f1cc7
Do not repeatedly read from all ring buffers to find minimum time entry.
2026-05-09 20:41:29 +02:00
Bartosz Taudul
95416a4b9c
Since active[] order doesn't matter, memmove can be replaced with a swap.
2026-05-09 17:48:57 +02:00
Bartosz Taudul
f7ab78893c
Don't query inline-symbol frames as native addresses.
...
Frames whose symbol data is shipped inline with the callstack payload
(sel=1, e.g. Lua-side stack entries) were being passed to
GetCanonicalPointer() in the AddCallstackAllocPayload() query loop,
tripping its sel==0 assertion. They have no native pointer to query
and were already registered in callstackFrameMap earlier in the same
function, so just skip them.
Regression from c704f909 , which hoisted the per-call-site dedup into
QueryCallstackFrame(). Three of the four updated call sites were
equivalent before and after, because the old guard and the new one
keyed on the same value. The fourth, this one, was not: the old guard
tested the frame as-is and matched the entry inserted a few lines above,
short-circuiting before GetCanonicalPointer() ran. The new guard keys on
PackPointer(addr), so GetCanonicalPointer() must run first to compute
addr, and the assert fires.
2026-05-09 12:13:45 +02:00
Bartosz Taudul
7de27ebffa
Force inline RingBuffer::Read().
2026-05-09 01:05:33 +02:00
Bartosz Taudul
70535435f2
Use masking instead of calculating remainder.
...
size is power-of-two (asserted).
2026-05-09 00:58:16 +02:00
Bartosz Taudul
61a6fb6780
Batch ring buffer reads.
2026-05-09 00:50:50 +02:00
Marcos Slomp
d5bce07a90
oopsie
2026-05-08 15:33:12 -07:00
Marcos Slomp
027a37409b
addressing code review comments
2026-05-08 14:30:24 -07:00
Bartosz Taudul
1bfd3beab9
Add "how to fix this crash?" preset question to call stack window.
2026-05-08 01:57:43 +02:00
Bartosz Taudul
b864ff47e5
Implement disabling LLM summary and suggestion.
2026-05-08 01:48:19 +02:00
Bartosz Taudul
4d34163ade
Allow accepting chat suggestion via Enter or Send button.
2026-05-08 01:17:31 +02:00
Bartosz Taudul
8ce05917db
Prevent stale summary after chat reset.
2026-05-08 01:07:59 +02:00
Bartosz Taudul
d59c1e7bd2
Prevent stale suggestion after chat reset.
2026-05-08 01:07:54 +02:00
Bartosz Taudul
6fb7f6d095
Add LLM chat suggestions.
2026-05-08 00:34:14 +02:00
Bartosz Taudul
db8bfc9ba9
Prevent in-flight query notification flicker.
2026-05-07 22:34:48 +02:00
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
Bartosz Taudul
b1768b98a5
Protocol was bumped to 77 after 0.13.1.
2026-05-06 01:37:54 +02:00
Bartosz Taudul
d6e77b3f40
Remove server query fast path.
...
The profiler will typically want to send bursts of queries (e.g. 3 queries
to retrieve source location strings, or multiple queries to get all the call
stack frames, etc.).
Each of these queries will be sent immediately, if available space in the
network buffer permits. Each of these sends is a separate syscall.
Remove this and instead batch all queries with the already existing network
buffer overflow handling functionality.
2026-05-06 00:42:24 +02:00
Bartosz Taudul
58eaa330af
Set TCP_NODELAY on profiler data channel.
2026-05-06 00:12:21 +02:00
Bartosz Taudul
8c2a970222
Merge pull request #1352 from wolfpld/slomp/apple-systrace
...
System tracing (callstack sampling) for Apple devices
2026-05-05 19:05:41 +02:00
Bartosz Taudul
173c58bb6e
Merge pull request #1353 from siliceum/fix/winsdk-compat
...
Fix #1243 compatibility with WinSDK < 10.0.26100
2026-05-05 18:05:51 +02:00
Marcos Slomp
6a214ed419
refactoring globals
2026-05-05 08:28:15 -07:00
Marcos Slomp
df20e8ad84
refactoring
2026-05-05 08:05:56 -07:00
Marcos Slomp
761d50e8f5
debug cleanup
2026-05-05 07:49:15 -07:00
Clément Grégoire
2997a78872
Fix #1243 compatibility with WinSDK < 10.0.26100
...
After investigating (downloading and installing) all publicly available SDKs at https://learn.microsoft.com/en-us/windows/apps/windows-sdk/downloads-archive I concluded the `TRACEHANDLE` deprecation started in `10.0.26100`.
This defines `PROCESSTRACE_HANDLE` and `CONTROLTRACE_ID` as done by the SDK when using older versions. Using `WDK_NTDDI_VERSION` (and not `NTDDI_VERSION` which may change based on `_WIN32_WINNT` or user input seems to be the most reliable way to do it. While it says "WDK" it's been part of the SDK in `shared\sdkddkver.h`. Note it doesn't work for MinGW because it updates half of its sdk files for some reason.
Tested with both 10.0.26100 and 10.0.22621.0 which is the last one I found without the new types.
Also changes CONTROLTRACE_ID to ULONG64 on mingw which is correct (type used by `TRACEHANDLE` too in mingw fe2763863a/mingw-w64-headers/include/evntrace.h (L60) )
2026-05-05 16:14:21 +02:00
Marcos Slomp
6b4ed90323
remove modern c++
2026-05-04 21:43:27 -07:00
Marcos Slomp
ace8f18adb
handle ARM64 PAC
2026-05-04 16:21:19 -07:00
Marcos Slomp
8692f2a650
updating manual
2026-05-04 16:18:00 -07:00
Marcos Slomp
ee3120010a
cleanup
2026-05-04 16:18:00 -07:00
Marcos Slomp
3d6129f8b0
dependent function ordering
2026-05-04 16:18:00 -07:00
Marcos Slomp
dbb17e50e3
relaxing atomics in hot multi-threaded path
2026-05-04 16:18:00 -07:00
Marcos Slomp
8b9c25f19c
handle case where constructor (context initializaion) may fail
2026-05-04 16:18:00 -07:00
Marcos Slomp
33b5404033
early exit when MapTimestampBuffer fails
2026-05-04 16:18:00 -07:00
Marcos Slomp
1e5926b9c0
debug cleanup
2026-05-04 16:18:00 -07:00
Marcos Slomp
b452e84e53
removing debug code
2026-05-04 16:18:00 -07:00
Marcos Slomp
bb4c6bc5a9
removing debug pragma
2026-05-04 16:18:00 -07:00
Marcos Slomp
474b3dbdfb
comments
2026-05-04 16:18:00 -07:00
Marcos Slomp
80e6087ff3
claim shared ownership of the queue to keep the queue (and device) alive
2026-05-04 16:18:00 -07:00
Marcos Slomp
c4d18c8291
refactoring Drain/Collect
2026-05-04 16:18:00 -07:00
Marcos Slomp
bf1222c4b1
re-enabling assert
2026-05-04 16:17:59 -07:00
Marcos Slomp
0ec1b29a66
debug cleanup
2026-05-04 16:17:59 -07:00
Marcos Slomp
035a2ba30d
debug cleanup
2026-05-04 16:17:59 -07:00
Marcos Slomp
2242811004
refactoring
2026-05-04 16:17:59 -07:00
Marcos Slomp
099af6dd74
simplified private API
2026-05-04 16:17:59 -07:00
Marcos Slomp
2a7e2215e0
handling special wait cases, and misc comments
2026-05-04 16:17:59 -07:00
Marcos Slomp
8fc8b42221
simplify debug ZoneValue
2026-05-04 16:17:59 -07:00
Marcos Slomp
f538ac49c6
nomenclature
2026-05-04 16:17:59 -07:00
Marcos Slomp
c35acce915
debugger check
2026-05-04 16:17:59 -07:00
Marcos Slomp
77be1c8616
minor refactoring
2026-05-04 16:17:59 -07:00
Marcos Slomp
0fdc70a75f
implementing Drain/Wait
2026-05-04 16:17:59 -07:00
Marcos Slomp
2b4e5250ed
refactoring debug macros
2026-05-04 16:17:59 -07:00
Marcos Slomp
760eeb40e8
cleanup includes
2026-05-04 16:17:59 -07:00
Marcos Slomp
303680257f
debugging
2026-05-04 16:17:59 -07:00
Marcos Slomp
952da01f33
comments about ResolveQueryData
2026-05-04 16:17:59 -07:00
Marcos Slomp
601c55bad2
track latest known GPU timestamp (to avoid "time-travel" later on in the server)
2026-05-04 16:17:59 -07:00
Marcos Slomp
ea7fb726ac
refactoring Collect
2026-05-04 16:17:59 -07:00
Marcos Slomp
4f9de46d3d
cleanup
2026-05-04 16:17:59 -07:00
Marcos Slomp
60935f2a25
refactoring
2026-05-04 16:17:59 -07:00
Marcos Slomp
7e70154e4e
cleanup
2026-05-04 16:17:59 -07:00
Marcos Slomp
d94c484adc
adopting new producer-consumer "panic" strategy
2026-05-04 16:17:59 -07:00
Marcos Slomp
0a27c61313
debugging
2026-05-04 16:17:59 -07:00
Marcos Slomp
b34966fe62
refactoring
2026-05-04 16:17:59 -07:00
Marcos Slomp
85789a8a13
minor refactoring
2026-05-04 16:17:59 -07:00
Marcos Slomp
333e4bcb05
comments and debugging
2026-05-04 16:17:58 -07:00
Marcos Slomp
b80fa52ba2
switching to a circular buffer with individual timeouts
2026-05-04 16:17:58 -07:00
Marcos Slomp
b638a3adff
opportunistically collect next window whenever possible
2026-05-04 16:17:58 -07:00
Marcos Slomp
9b2f1266ea
cosmetic changes
2026-05-04 16:17:58 -07:00
Marcos Slomp
bde92ffed2
timestamp relax (disabled)
2026-05-04 16:17:58 -07:00
Marcos Slomp
3bf371c4fb
refactoring of Collect core
2026-05-04 16:17:58 -07:00
Marcos Slomp
c39d1d6441
fudge factors...
2026-05-04 16:17:58 -07:00
Marcos Slomp
1d8022c301
comments, debugging
2026-05-04 16:17:58 -07:00
Marcos Slomp
0afe331d1e
consolidating map/unmap buffer logic
2026-05-04 16:17:58 -07:00
Marcos Slomp
19e48a843d
conditional clarity
2026-05-04 16:17:58 -07:00
Marcos Slomp
9649302da8
Distance utility
2026-05-04 16:17:58 -07:00
Marcos Slomp
f06989e17c
cleanup
2026-05-04 16:17:58 -07:00
Marcos Slomp
e1357d7a1b
reworking destructor
2026-05-04 16:17:58 -07:00
Marcos Slomp
4f62a115fa
adopting a "collect window" scheme to avoid race conditions and heavy synchronization
2026-05-04 16:17:58 -07:00
Marcos Slomp
cd1a2c7c6e
re-enabbling post-collect calibration; rephrasing comments about race condition
2026-05-04 16:17:58 -07:00
Marcos Slomp
37628ed305
explaining the race condition
2026-05-04 16:17:58 -07:00
Marcos Slomp
e5cdb8b361
persistent map, debug toggle, etc
2026-05-04 16:17:58 -07:00
Marcos Slomp
65cb45ea97
re-enable range assert
2026-05-04 16:17:58 -07:00
Marcos Slomp
4f44b954ab
reveting overflow suppresion
2026-05-04 16:17:58 -07:00
Marcos Slomp
d8aaa91379
disabling debug dump
2026-05-04 16:17:58 -07:00
Marcos Slomp
43b8a98091
timestamp aging and race debugging
2026-05-04 16:17:58 -07:00
Marcos Slomp
db9e82691c
debugging the UI freaking out
2026-05-04 16:17:58 -07:00
Marcos Slomp
e7a503c47f
misc
2026-05-04 16:17:58 -07:00
Marcos Slomp
7e0855d56b
keep track of the last known emitted gpu timestamp, and use it to emit makeshift timestamps for dropped timestamps
2026-05-04 16:17:58 -07:00
Marcos Slomp
b0b3c8a335
collect timestamps in pairs
2026-05-04 16:17:58 -07:00
Marcos Slomp
1c2c1b5c17
comments and eminders
2026-05-04 16:17:57 -07:00
Marcos Slomp
b50876e77c
eliminate NewFrame, and account for "abandoned" and "out-of-order" timestamp queries
2026-05-04 16:17:57 -07:00
Marcos Slomp
c877d0bcb4
TracySysTrace already manages the wprker thread lifetime...
2026-05-04 15:45:56 -07:00
Marcos Slomp
5a168f7ae4
initial prototype of system tracing for Apple devices
2026-05-04 15:29:24 -07:00
Bartosz Taudul
5bbafeabd7
Patch ppqsort to fix binary_semaphore release race.
2026-05-04 01:13:53 +02:00
Bartosz Taudul
04728994a5
Shorten external frames in call stack tooltips.
2026-05-04 01:05:02 +02:00
Bartosz Taudul
600227a30b
More compact assembly code form.
...
For Qwen3.6-27B tokenizer:
AStar<> (3018 byte binary): 25546 -> 21099 tokens (82.6%)
LZ4_compress_fast_continue (10.47 KB): 84140 -> 69016 tokens (82%)
2026-05-02 16:31:59 +02:00
Bartosz Taudul
6d4a080da5
More compact symbol view source attachments.
2026-05-02 16:04:29 +02:00
Bartosz Taudul
7fac1ef8c9
Update NEWS.
2026-05-02 15:44:26 +02:00
Bartosz Taudul
7e043e21e7
Enable resizing of child call distribution box.
2026-05-02 15:42:34 +02:00
Bartosz Taudul
40b328dc95
Add drawable height splitter widget.
2026-05-02 15:42:18 +02:00
Bartosz Taudul
0a64f16c2d
More compact time range limits window.
2026-05-02 12:41:12 +02:00
Bartosz Taudul
9965aff723
Use fractional max rows for visible threads display to imply scrolling.
2026-05-02 01:41:28 +02:00
Bartosz Taudul
6276f1b12a
Rebuild markdown manual.
2026-05-02 00:38:44 +02:00
Bartosz Taudul
335403d860
Always dim out external frames.
2026-05-02 00:38:34 +02:00
Bartosz Taudul
4e6f7c2152
More return stack reinforcement.
2026-05-02 00:31:53 +02:00
Bartosz Taudul
8877a2527d
Proper count of possibly visible threads in wait stacks window.
2026-05-01 22:03:39 +02:00
Bartosz Taudul
71fb624ec4
Update NEWS.
2026-05-01 21:23:14 +02:00
Bartosz Taudul
4394d79c39
Limit "visible threads" rows displayed at once.
2026-05-01 21:20:51 +02:00
Bartosz Taudul
3900890ef4
Show visible threads list in columns.
...
Options list is excluded, as that's drag-n-drop, and that's too much
complication.
2026-05-01 21:20:51 +02:00
Bartosz Taudul
a11e417e43
Provide detailed call stack analysis instructions.
2026-05-01 17:56:36 +02:00
Bartosz Taudul
78bac8dcbc
Use correct tid field name.
2026-05-01 17:56:35 +02:00
Alan Tse
9a7233ced5
Add MCP server for AI-assisted trace analysis ( #1347 )
...
* Add MCP server for AI-assisted trace analysis.
Introduce an optional Model Context Protocol (MCP) server that lets AI
assistants analyze Tracy captures and live sessions through Tracy's own
server engine. The server runs as a Python sidecar and talks to the
existing C++ analysis code through new pybind11 bindings.
- python/bindings/ServerModule.cpp: TracyServerBindings module exposing
Worker, file I/O, zones, GPU zones, frame data, plots, messages, locks,
source locations, and summary statistics (zone/GPU child stats, frame
timing, etc.).
- python/CMakeLists.txt: builds and installs TracyServerBindings alongside
TracyClientBindings.
- extra/mcp/tracy_mcp.py: FastMCP SSE singleton with dynamic port
discovery, PID-file based singleton detection, session-isolated worker
instances, synchronous and background eval, task polling, and a
shutdown tool to release the .pyd lock during development.
- extra/mcp/start_mcp.sh, .gitignore: launcher with local override hook;
ignores generated port/pid files.
- manual/tracy.md: documents building, running, and integrating the
server with an AI assistant.
* Improve Tracy MCP cold-start guidance.
Cold-start usability testing showed an LLM agent burned ~7 exploratory
calls discovering the ctx object model, time-unit conventions, and join
keys before producing useful analysis. Surface that information up front
through MCP resources and entry-point tool guidance.
- extra/mcp/eval_guide.md: new bindings-layer reference covering the
Worker object graph (zone / GPU zone / frame / thread / message /
plot / lock / memory entry points), nanosecond time units, ZoneStats
field semantics including self-time via get_child_zone_stats, the
opaque 'name (addr)[arch] <srcloc_id>' key format, and worked
examples translating common queries into ctx Python.
- extra/mcp/tracy_mcp.py: expose system.prompt.md and eval_guide.md as
MCP resources (tracy://prompt and tracy://eval-guide) so external
agents and Tracy Assist share the same guidance source. Resource
content is re-read per request — edits propagate without a server
restart.
- Point load_capture and live_connect return values plus the eval tool
description at the resources, so the agent reads them before its
first eval rather than introspecting blind.
- Expand load_capture docstring: name the path parameter explicitly,
show Windows path syntax, and direct agents to list_captures plus
TRACY_CAPTURES_DIR for capture discovery.
- Probe is_connected() briefly after Worker construction in
live_connect and surface an actionable error on silent handshake
failures (typically a Tracy client/server version mismatch or
TRACY_ON_DEMAND) instead of returning misleading success.
Reduces a fresh agent's cold-start overhead from 7 exploratory calls
to 4, where the remaining 4 are unavoidable harness/schema-fetch
overhead, not API-design friction.
* Detect Tracy protocol mismatches via UDP broadcast pre-flight.
Tracy clients announce themselves on UDP port 8086 every ~3 seconds with
a BroadcastMessage carrying the protocol version, listen port, and
program name (public/common/TracyProtocol.hpp). The Tracy GUI reads this
and refuses to attempt a TCP connection on protocol mismatch, surfacing
a precise error. live_connect previously had no equivalent check, so a
mismatch produced an opaque 2-second handshake timeout with no
diagnostic about what was wrong.
- Add a broadcast parser handling versions 0-3, with variable-length
programName (Tracy sends only the actual name + null terminator on
the wire, not the full 64-byte buffer).
- Add a non-blocking UDP listener that binds 8086 with SO_REUSEADDR
and waits up to 3.5s — enough to guarantee catching at least one
beat at the 3s broadcast cadence.
- Read our bindings' ProtocolVersion at startup by parsing
TracyProtocol.hpp, so the comparison stays in sync with the build
without new C++ wiring.
- live_connect runs the broadcast pre-flight before constructing
Worker. On a matched listen_port with a differing protocol_version,
it returns a single-line error naming the program, both versions,
and the remediation, without ever opening a TCP connection. If no
matching broadcast arrives, it falls through to the existing
handshake probe, which now reports any other broadcasts seen as a
hint (helpful when the target uses a non-default port).
* Add MCP Server section to LaTeX manual.
The markdown manual is auto-generated from the LaTeX source; add the
corresponding \subsection{MCP Server} so the two stay in sync.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
* Remove hand-written MCP section from tracy.md.
tracy.md is generated from tracy.tex via latex2md.sh. The MCP section
was previously written by hand directly in the markdown; now that the
LaTeX source has been updated, the markdown section should be
regenerated by running latex2md.sh rather than maintained manually.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 16:17:55 +02:00
Bartosz Taudul
460352d0d5
Allow opening callstack window from LLM attachment.
2026-04-30 21:42:22 +02:00
Bartosz Taudul
89bd8b2ba5
Add public View method for opening callstack window.
2026-04-30 21:41:53 +02:00
Bartosz Taudul
cf2c07d905
Mark GetSelectThread() const.
2026-04-30 21:38:33 +02:00
Bartosz Taudul
529c688ff2
Callstack thread display is not gated by LLM.
2026-04-30 18:40:54 +02:00
Bartosz Taudul
af665ef3dc
Update NEWS.
2026-04-30 18:13:11 +02:00
Bartosz Taudul
6c5e0cdf1d
Draw call stack thread name in call stack window.
2026-04-30 18:08:15 +02:00
Bartosz Taudul
80f504019f
Store callstack window callstack id together with origin thread id.
2026-04-30 17:06:59 +02:00
Bartosz Taudul
6ccad8a94d
Generic thread id naming in crash callstack attachments.
2026-04-30 12:48:58 +02:00
Bartosz Taudul
f0df6112dc
Move callstack summary in callstack window to its own line.
2026-04-30 12:46:22 +02:00
Bartosz Taudul
170b0b4edf
More compact listing format.
2026-04-30 12:19:13 +02:00
Bartosz Taudul
39cd16a92b
Move specialized LLM skills out of the system prompt.
2026-04-30 02:41:48 +02:00
Bartosz Taudul
eaf66e7af9
Cleanup.
2026-04-28 00:27:27 +02:00
Bartosz Taudul
ab75aeeac9
Add section headers to the in-program user manual.
2026-04-27 23:32:34 +02:00
Bartosz Taudul
4fe2949033
Instruct LLM how to provide user manual links.
2026-04-27 23:21:49 +02:00
Bartosz Taudul
ac20896f57
Add links to manual search results.
2026-04-27 23:15:52 +02:00
Bartosz Taudul
afddce2538
Implement going to manual link.
2026-04-27 23:05:43 +02:00
Bartosz Taudul
14aa5dafe5
Add manual section link tooltips.
2026-04-27 22:47:10 +02:00
Bartosz Taudul
4d62b3a573
Move view and worker checks to initial isSource check.
2026-04-27 22:46:35 +02:00
Bartosz Taudul
d4241d987d
Pass view, worker to user manual markdown renderer.
2026-04-27 22:23:08 +02:00
Bartosz Taudul
04d30fb487
Add manual chunk retrieval function.
2026-04-27 22:20:58 +02:00
Bartosz Taudul
d653e984b5
Really fix first-word-continuation word wrap.
...
The previous solution (75c173) didn't account for the fact that the text
to print may start with a space, in which case the text width calculation
results in 0. In effect, first word length was never greater than the
space left for printing, and the problem was still there.
Fix by walking through all initial spaces in firstWord.
If fwLen > left, then a line break is needed. In this case ignore initial
spaces in text.
2026-04-26 00:40:55 +02:00
Bartosz Taudul
afe51ec5f3
Merge pull request #1348 from Casqade/fix-multiline-messages-tooltips
...
Show tooltips for multiline messages
2026-04-25 18:54:24 +02:00
casqade
29d21fe1f7
Show tooltips for multiline messages
2026-04-25 17:27:13 +03:00
Bartosz Taudul
43643ba0b6
Update NEWS.
2026-04-25 13:08:01 +02:00
Bartosz Taudul
efb1973210
Dim out external frames in callstack tooltips.
2026-04-25 13:04:49 +02:00
Bartosz Taudul
0bd56feb2d
Only reset start time when role changes to non-assistant.
...
Fixes time reset on tool replies.
2026-04-25 12:49:44 +02:00
Bartosz Taudul
83a31730ce
Reply timing logic is only relevant for assistant replies.
2026-04-25 12:49:10 +02:00
Bartosz Taudul
5f7a36cf44
Do not assert on early TracyDebug calls.
...
TracyDebug fires from SysPower's ctor while it scans intel-rapl, which
runs as a Profiler member initializer -- before s_instance is set in
the Profiler ctor body. Under TRACY_MANUAL_LIFETIME without
TRACY_ON_DEMAND, the TracyInternalMessage path guarded this with
assert(ProfilerAvailable()), which aborted tracy-monitor whenever it
was run as root (only then is intel-rapl readable, so the log is
actually reached).
Soften the assert to an early-out, matching the TRACY_ON_DEMAND branch.
A TracyDebug issued before the profiler is up now silently skips
instead of aborting.
2026-04-24 21:27:58 +02:00
Bartosz Taudul
46bccd9a92
Refresh external image cache on symbolization misses.
...
FindExternalImageRefresh already re-parsed /proc/<pid>/maps on miss,
but only one of three external decode paths used it. Switch the
DecodeCallstackPtrFastExternal and DecodeSymbolAddressExternal paths
over so symbol-name and file/line lookups stay fresh after the target
dlopens a library.
Rate-limit the re-parse to once per wall-clock second so samples
landing on permanently unresolvable regions (JIT, vDSO, stacks) do
not trigger a full parse each time.
2026-04-24 21:16:42 +02:00
Bartosz Taudul
7448c0fbe1
Cover all target threads in tracy-monitor.
...
perf_event_open(pid>0, cpu>=0) binds to a single task, so the previous
setup only sampled the target's main thread. In monitor mode, enumerate
/proc/<pid>/task/ and open one per-task event per existing thread with
cpu=-1; inherit=1 then covers every descendant. Self-profiling behavior
is preserved byte-for-byte: the iter list becomes (currentPid, i) for
each CPU, exactly what the old code did inline.
2026-04-24 21:14:33 +02:00
Bartosz Taudul
2755166543
Flush stdout before perf preflight, so it's printed before stderr.
2026-04-24 21:10:11 +02:00
Bartosz Taudul
cbfa625fb9
Harden tracy-monitor startup and shutdown paths.
...
- Loop startup waitpid on EINTR; kill and reap the child on fatal error
or when interrupted, instead of leaking a ptrace-stopped process.
- Treat PTRACE_DETACH failure as fatal -- otherwise the child is stuck
stopped forever.
- Zero-initialize procName so the memcpy into ___tracy_magic_process_name
does not copy uninitialized stack past the NUL.
- Forward SIGINT to the child from the signal handler when in forked
mode, so Ctrl-C during a blocking waitpid unblocks cleanly.
- Preflight perf_event_open on the target before StartupProfiler so
permission failures surface with actionable guidance instead of
silently producing no samples.
- Also handle SIGHUP and SIGQUIT.
2026-04-24 21:07:41 +02:00
Bartosz Taudul
23930e998b
Display label with assistant model name and reply duration for each message.
2026-04-24 19:53:45 +02:00
Bartosz Taudul
9b708c433f
Store model and response time for assistant messages.
2026-04-24 18:15:49 +02:00
Bartosz Taudul
2c6adfb416
Regenerate markdown manual.
2026-04-23 00:28:59 +02:00
Bartosz Taudul
bde6e06cd7
Update manual.
2026-04-23 00:24:09 +02:00
Bartosz Taudul
4022494934
Update NEWS.
2026-04-22 22:07:39 +02:00
Bartosz Taudul
68ee8704d2
Merge pull request #1335 from siliceum/feature/check-macros-mismatch
...
Detecting macro definitions mismatches at link time
2026-04-21 18:12:32 +02:00
Bartosz Taudul
8d9a8494b8
Merge pull request #1344 from siliceum/fix/etw-compat
...
Fix TracyETW_compat.h structs and values based on docs
2026-04-21 18:11:01 +02:00
Clément Grégoire
c1ab158f6c
Update manual with mismatch detection info
2026-04-21 13:51:24 +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
Clément Grégoire
1711d024dd
Fix TracyETW_compat.h structs and values based on docs
...
https://learn.microsoft.com/fr-fr/windows/win32/api/evntprov/ns-evntprov-event_filter_event_id
https://learn.microsoft.com/fr-fr/windows/win32/etw/system-providers
Note: WinSDK does not use ULL in keyword constants so I removed them too.
2026-04-21 13:20:48 +02:00
Bartosz Taudul
217bdcf5a9
Merge pull request #1343 from siliceum/fix/better-tracefs-detection
...
Better tracefs detection
2026-04-21 11:55:10 +02:00
Clément Grégoire
4aac9e677d
Fix formating/whitespaces in SysTraceStart
2026-04-21 09:51:43 +02:00
Clément Grégoire
aba343e429
Pick first debugfs entry only
2026-04-21 09:51:42 +02:00
Bartosz Taudul
25f09bee2c
Merge pull request #1342 from siliceum/fix/1337-respect-max-sample-rate
...
Fix #1337 : On Linux respect max sample rate
2026-04-20 19:33:14 +02:00
Clément Grégoire
cb9ef7814e
Use ReadFile and atoi
2026-04-20 18:05:31 +02:00
Clément Grégoire
8f208d732a
Fix extra space
2026-04-20 18:04:41 +02:00
Clément Grégoire
8816dd0557
Allow finding tracefs through debugfs as a fallback for older kernels/systems that only mount debugfs
2026-04-20 15:04:33 +02:00
Clément Grégoire
0a5647b20f
Use mnt_type instead of mnt_fsname for tracefs discovery
...
This is to be consistent with what libtracefs does: 6fad6a14ba/src/tracefs-utils.c (L104)
In theory one may mount tracefs with another name, though unlikely.
2026-04-20 15:00:37 +02:00
Clément Grégoire
d48794024d
Log why SysTrace does not start on Linux
2026-04-20 14:49:57 +02:00
Clément Grégoire
95b6fdeed3
Fixes #1337 : On Linux, respect perf_event_max_sample_rate to avoid lost events
...
This may be especially useful for low performance machines. We also warn about this behaviour through TracyDebug which ends up in Messages.
2026-04-20 14:31:41 +02:00
Clément Grégoire
e550e15ce6
Turn GetSamplingPeriod into SamplingFrequencyToPeriodNs
...
This forces to (re)use frequency values as input, which may be changed by the platform code later on. This way we have a single "source of truth" for sample freq.
Also removed the Win32 `GetSamplingInterval` which was a wrapper above `GetSamplingPeriod` but its value would be divided again anyway.
2026-04-20 14:29:35 +02:00
Bartosz Taudul
4e670fcaf5
Merge pull request #1338 from imsarllc/fix_32bit_arm_issue
...
Add static cast to uint64_t for std::min
2026-04-17 18:44:09 +02:00
Erik van Zwol
70fc86536c
Add static cast to uint64_t for std::min
...
On 32-bit arm, phdr.p_vaddr is 32-bit, which causes a compilation
error because std::min expects both arguments to be of the same
type. Adding the static cast handles this case explicitly.
2026-04-17 09:45:43 -06:00
Bartosz Taudul
1c3691a57b
Add llm chat topic.
2026-04-17 01:27:38 +02:00
Basil Milanich
ebd3d9c3e6
Also defer GpuContextName for on-demand profiling
...
Without this, a late-connecting client receives the deferred
GpuNewContext but not the GpuContextName, so the GPU context appears
unnamed in the profiler.
Add check_gpu_ctx_name tool to verify context names in captured traces.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-16 09:27:47 -05:00
Basil Milanich
bc8d8f5302
Add repro case for rocprofiler on-demand crash
...
Minimal HIP program that demonstrates the assertion failure in
tracy-capture when connecting to a TRACY_ON_DEMAND + TRACY_ROCPROF
application. See examples/RocprofOnDemandRepro/README.md for details.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 16:02:36 -05:00
Basil Milanich
b049746853
Fix on-demand profiling support for rocprofiler backend
...
Two issues prevented the rocprofiler GPU backend from working with
TRACY_ON_DEMAND:
1. GpuNewContext not deferred: When a Tracy client connects late (on-demand
mode), it never receives the GPU context creation message because the
GpuNewContext queue item was not buffered via DeferItem. This caused an
assertion failure (ctx == nullptr) in the capture/profiler when
processing GPU zone events. Add the same DeferItem pattern used by the
CUDA backend.
2. Kernel symbols dropped before init: The data->init guard at the top of
tool_callback_tracing_callback() blocked kernel symbol registrations
(CODE_OBJECT_DEVICE_KERNEL_SYMBOL_REGISTER) which happen at HIP init
time, before any Tracy client connects. Move the init guard after the
code_object block so symbols are always recorded, while dispatch and
memory-copy events are still gated on initialization.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 15:56:31 -05:00
Bartosz Taudul
ebf3f02264
Merge pull request #1330 from bmilanich/cuda-graph-fallback
...
TracyCUDA: show GPU zones for CUDA Graph-launched kernels
2026-04-15 21:14:09 +02:00
Basil Milanich
0a0566abc5
Update stale MEMORY2 comment to reflect cbid tracker removal
...
The comment still described consuming/not-consuming cudaCallSiteInfo
entries, but memory CBIDs are no longer tracked so no entry exists.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 10:28:13 -05:00
Basil Milanich
58809f95ff
Use atomic flag for retirement check to avoid mutex on hot path
...
Replace the mutex-guarded empty check in OnBufferCompleted with an
std::atomic<bool> dirty flag. The mutex is now only acquired when
there is actual retirement work to do. Also update stale comment
on cudaGraphCurrentLaunch that said "let them leak".
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 10:23:42 -05:00
Basil Milanich
8f6249c12f
Restore insert_or_assign over operator[] for graphLaunchCache
...
operator[] on ConcurrentHashMap returns a reference after releasing the
read lock — the subsequent assignment happens with no lock held. This is
a latent data race if the map is ever accessed from multiple threads.
insert_or_assign performs the lookup and assignment atomically under a
single write lock, which is the correct pattern for a ConcurrentHashMap.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 10:23:42 -05:00
Basil Milanich
da878d29d1
Address PR review feedback from slomp
...
- Add `using GraphID = uint32_t` typedef and use it throughout for
graphId-typed variables (PersistentState, matchGraphActivityToAPICall,
getGraphIdFromRecord, retirement set, buffer loop).
- Move matchError from matchGraphActivityToAPICall to caller sites
(KERNEL, MEMCPY, MEMSET handlers). Keeping the error at the caller
provides more debugging context about which activity kind failed.
Remove the now-unnecessary `kind` parameter from the function.
- Replace insert_or_assign with operator[] assignment in
matchGraphActivityToAPICall. Access to graphLaunchCache is
single-threaded (CUPTI worker), so the simpler syntax is sufficient.
Remove the insert_or_assign method from ConcurrentHashMap entirely.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 10:23:42 -05:00
Basil Milanich
b22c8e86ba
Remove memory API calls from cbid tracker maps
...
cudaMalloc/cudaFree (and driver equivalents) were tracked in
cbidRuntimeTrackers/cbidDriverTrackers, creating a cudaCallSiteInfo
entry on each API call. But the MEMORY2 handler never calls
matchActivityToAPICall (and never calls EmitGpuZone) — it only needs
the address, size, and timestamp from the activity record itself. Since
no activity handler consumes these entries, they leaked indefinitely.
Remove the 6 memory API CBIDs from both tracker maps so no entry is
created. This eliminates the leak with no change in visible behavior:
the MEMORY2 handler already operates independently of cudaCallSiteInfo.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-13 10:23:42 -05:00
Basil Milanich
ec7805fd92
Retire cudaGraphCurrentLaunch entries on cudaGraphExecDestroy
...
Without retirement, the cache grows by one entry per unique exec handle
ever launched and never shrinks. While bounded by the number of distinct
execs in the application, long-running programs creating and destroying
many exec handles accumulate stale entries indefinitely.
Retirement mechanism:
- At cudaGraphExecDestroy (ENTER, while handle is still valid): call
cuptiGetGraphExecId to translate exec handle → graphId and add to a
pending-retirement set. Works for both runtime (cudaGraphExecDestroy)
and driver (cuGraphExecDestroy) APIs. No new subscription needed —
the existing cuptiEnableDomain already routes all API callbacks here.
- Deferral in OnBufferCompleted: erasure is not done immediately because
cudaGraphExecDestroy does not wait for GPU completion. CUPTI may still
have undelivered activity records for the last launch in its internal
buffers. We defer the erase until a full buffer arrives that contains
no records bearing the retired graphId, indicating all in-flight
records have been delivered.
- getGraphIdFromRecord: new helper that extracts the graphId field from
CONCURRENT_KERNEL / MEMCPY / MEMSET activity records (the three kinds
that carry a graphId) for use in the per-buffer tracking.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-13 10:23:42 -05:00
Bartosz Taudul
a64b9a2029
Proper mutex wrapper use.
...
In the JSON exception catch handler, m_jobsLock.lock() is called directly
on the mutex instead of through the jobsLock unique_lock. When the function
returns, jobsLock's destructor runs but it doesn't own the lock (it was
unlocked earlier at line 1134), and m_jobsLock is never released. This
causes a permanent deadlock the next time anything tries to acquire
m_jobsLock.
2026-04-11 17:29:44 +02:00
Bartosz Taudul
0269a196a4
Add TracyTaggedUserlandAddress.hpp to include list in meson.
2026-04-11 13:16:47 +02:00
Bartosz Taudul
010d25be06
Merge pull request #1332 from Brainzman/fix-missing-installed-include
...
Fix missing TracyTaggedUserlandAddress.hpp include due to it not being installed
2026-04-11 13:15:24 +02:00
Jonas Holzman
0de97789dd
Fix missing TracyTaggedUserlandAddress.hpp due to it not being installed
...
Currently including the Tracy.hpp header from a set of installed Tracy
headers will result in the following error:
In file included from <...>/tracy/include/tracy/tracy/Tracy.hpp:133:
In file included from <...>/tracy/include/tracy/tracy/../client/TracyLock.hpp:9:
In file included from <...>/tracy/include/tracy/tracy/../client/TracyProfiler.hpp:18:
<...>/tracy/include/tracy/tracy/../client/../common/TracyQueue.hpp:6:10: fatal error: 'TracyTaggedUserlandAddress.hpp' file not found
6 | #include "TracyTaggedUserlandAddress.hpp"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Apparently introduced in f981330 , which included the
TracyTaggedUserlandAddress.hpp header in TracyQueue.hpp without adding
it to the list of installed common header. Fixed by making the necessary
CMake change to install the header.
Ran into this issue while integrating Tracy as a dependency within
Blender[^1], where we use the latest main instead of stable for WoA
support, and use the install target to harvest the static lib and
headers for our libraries.
[^1]: https://projects.blender.org/blender/blender/pulls/156661
2026-04-11 12:27:40 +02:00
Bartosz Taudul
f71c74aaf7
Change TRACY_ENABLE default to OFF to match documentation.
...
The documentation states that Tracy is disabled by default, but the
build system defaults were ON/true. Change CMake and Meson defaults to
OFF/false. Projects that need profiling enabled must now opt in
explicitly. Add explicit TRACY_ENABLE=ON / tracy_enable=true to CI
steps and the test project to preserve existing behavior.
2026-04-10 18:49:04 +02:00
Bartosz Taudul
82560c8c0e
Fix emscripten CI job.
2026-04-10 17:06:34 +02:00
Basil Milanich
12dc23f67e
Add graphId recycle investigation test
...
Tests whether CUPTI recycles graphId values after cudaGraphExecDestroy,
which would be the only scenario where the graphLaunchCache in TracyCUDA
could serve stale entries for a non-matching exec handle.
Result (H100, CUDA 12, CUPTI): graphId is a monotonically increasing
counter that is never recycled. 22 create/instantiate/launch/destroy
cycles produced unique IDs ranging from 2 to 65 (incrementing by 3 per
cycle — one unit per node created during graph construction).
This confirms that the stale-cache concern raised in code review is not
a real risk in practice: two distinct exec handles always have distinct
graphIds.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-09 09:34:51 -05:00
Basil Milanich
c807367099
Add correlationId investigation test for CUDA Graph launches
...
Tests two questions:
1. Does relaunching the same cudaGraphExec produce a new correlationId
each time, or is it reused?
2. Do two different cudaGraphExec handles from the same cudaGraph share
a graphId?
Results on H100, CUDA 13.1:
- Each launch of the same exec handle gets a strictly unique, monotonically
increasing correlationId. CPU callback corrId == GPU activity corrId.
This is formally documented in cupti_activity.h:
"Each graph launch is assigned a unique correlation ID that is
identical to the correlation ID in the driver API activity record
that launched the graph."
- graphId identifies the exec handle (instantiation), not the graph
definition. Two cudaGraphInstantiate calls on the same graph produce
different graphIds.
These findings confirm that the cudaGraphCurrentLaunch cache in
matchGraphActivityToAPICall is always refreshed by the first activity
of each new launch before the graphId fallback path is ever used.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-09 09:28:34 -05:00
Basil Milanich
9e36e5d1ad
Fix MEMORY2 handler: don't consume cudaCallSiteInfo entry
...
Calling matchActivityToAPICall in the MEMORY2 handler was consuming
the cudaCallSiteInfo entry for the graph launch correlationId. If a
graph mixes alloc nodes with kernel/memcpy nodes, all activities share
the same correlationId — consuming it here would cause
matchGraphActivityToAPICall to fail for the kernel/memcpy records that
follow, silently dropping their GPU zones.
Since apiCall is never used by the MEMORY2 handler (only address, size,
and timestamp from the activity record are needed), remove the call
entirely and leave the entry for the kernel/memcpy to consume and cache.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-07 16:01:41 -05:00
Basil Milanich
b6222ae28b
Fix MEMORY2 handler: don't gate memory tracking on API call correlation
...
CUpti_ActivityMemory3 has no graphId field, so graph-launched alloc
nodes and pre-profiling allocations can't be correlated to an API call.
The handler only needs address, size, and timestamp from the activity
record — apiCall is never used. Remove the early return so memory
tracking works in all cases.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-07 15:33:41 -05:00
Basil Milanich
703df05529
Document known MEMORY2 limitation for graph-launched alloc nodes
...
CUpti_ActivityMemory3 has no graphId field, so matchGraphActivityToAPICall
cannot be applied. Graph-launched cudaGraphAddMemAllocNode emits multiple
MEMORY2 records sharing the launch correlationId; only the first is
tracked, subsequent ones fire a spurious matchError.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-07 15:30:27 -05:00
Basil Milanich
c8ebc6f21e
Review fixes: correct stale comments, fix fetch() missing lock, tidy helper
...
- Fix wrong comments on graph launch tracker entries: they claimed
correlation works "via CUPTI_ACTIVITY_KIND_GRAPH_TRACE", but that
approach was rejected (GRAPH_TRACE suppresses per-kernel records).
The actual mechanism is the shared correlationId across all nodes
in one graph launch.
- Fix ConcurrentHashMap::fetch() missing its read lock — a pre-existing
data race now exercised by the new graph correlation hot path.
- Cache PersistentState::Get().cudaGraphCurrentLaunch in a local ref
inside matchGraphActivityToAPICall instead of calling Get() twice.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 14:00:01 -05:00
Basil Milanich
0b6e27934d
ConcurrentHashMap: add insert_or_assign to replace erase+emplace
...
The cudaGraphCurrentLaunch cache update was acquiring the write lock
twice (once for erase, once for emplace). Wrapping
std::unordered_map::insert_or_assign under a single write lock lets
the caller do it in one operation.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 13:48:53 -05:00
Basil Milanich
d9a1cc06c1
Fix repro build: add -arch=native to use correct GPU architecture
...
NVCC 13.1 defaults to a PTX version incompatible with the installed
driver (580.105.08), causing kernels to silently fail with "provided
PTX was compiled with an unsupported toolchain". Use -arch=native so
NVCC auto-detects the target GPU (H100, sm_90) at build time.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 13:33:05 -05:00
Basil Milanich
f74dd21573
Refactor: extract matchGraphActivityToAPICall helper
...
The kernel, memcpy, and memset cases all had identical logic for
handling graph-launched activities. Extract it into a single helper
next to matchActivityToAPICall.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 13:08:39 -05:00
Basil Milanich
4ccaea9f08
Expand repro: multiple graphs, multiple kernels, interleaved launches
...
Tests:
- Two distinct graphs (different graphIds) on the same stream
- Graph A: kernel + memcpy + kernel (3 nodes)
- Graph B: scale + add + scale (3 nodes)
- 5 interleaved launches of each, stressing the graphId cache
- Expected 30 graph GPU zones total
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 11:54:08 -05:00
Basil Milanich
d36ca27041
Fix graph correlation: use shared correlationId, not GRAPH_TRACE
...
CUPTI discovery: all kernels launched by one cuGraphLaunch share the
same correlationId as the launch call itself. GRAPH_TRACE was the
wrong approach — enabling it suppresses per-kernel CONCURRENT_KERNEL
records entirely, replacing them with graph-level summaries.
New approach:
- Drop CUPTI_ACTIVITY_KIND_GRAPH_TRACE (it conflicts with CONCURRENT_KERNEL)
- Drop two-pass buffer processing (no longer needed)
- On the first kernel/memcpy/memset from a graph launch, matchActivityToAPICall
succeeds (consuming the cuGraphLaunch entry) and the result is cached in
cudaGraphCurrentLaunch[graphId]
- Subsequent operations from the same launch find the cached entry via graphId
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 11:36:14 -05:00
Basil Milanich
2e5b076175
Also track cudaGraphLaunch runtime API for graph correlation
...
The repro uses cudaGraphLaunch (runtime API) not cuGraphLaunch (driver
API). Add cudaGraphLaunch_v10000 and its _ptsz variant to
cbidRuntimeTrackers so that graphs launched via the runtime API also
get their CPU call site captured for GPU zone correlation.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 11:18:20 -05:00
Basil Milanich
7bca9dcd90
Fix CUDA Graph GPU zones with proper cuGraphLaunch correlation
...
Replace the synthetic APICallInfo hack with proper correlation via
CUPTI_ACTIVITY_KIND_GRAPH_TRACE. When cuGraphLaunch fires an API
callback, its correlationId is stored in cudaCallSiteInfo. The
GRAPH_TRACE activity record carries the same correlationId plus the
graphId, which lets us build a graphId→APICallInfo map. Kernel/memcpy/
memset activities then look up this map via their graphId field.
Key changes:
- Add cuGraphLaunch/cuGraphLaunch_ptsz to cbidDriverTrackers so the
API callback machinery captures the CPU call site
- Enable CUPTI_ACTIVITY_KIND_GRAPH_TRACE and handle it in
DoProcessDeviceEvent to populate cudaGraphCurrentLaunch[graphId]
- Add cudaGraphCurrentLaunch map to PersistentState
- Two-pass buffer processing in OnBufferCompleted so GRAPH_TRACE
records (which complete last on GPU) are processed before the
kernel/memcpy/memset records that depend on them
- Replace graphId=0 fallback in kernel/memcpy/memset with proper
cudaGraphCurrentLaunch lookup; fall through to matchError if
the graphId is not found
- Update repro to include TracyCUDA headers and properly test
GPU zone correlation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-06 11:03:58 -05:00
Bartosz Taudul
00a069d608
Perform meson build in mingw workflow.
2026-04-03 21:11:03 +02:00
Bartosz Taudul
adf3a5b998
Build test application with CMake on mingw.
2026-04-03 20:10:06 +02:00
Bartosz Taudul
09d6a674c4
No -rdynamic on Windows.
2026-04-03 20:10:06 +02:00
Bartosz Taudul
ab61777896
Fix mingw GUID definitions.
2026-04-03 20:10:05 +02:00
Bartosz Taudul
c564b163d3
Client code must target C++11.
2026-04-03 20:10:03 +02:00
Bartosz Taudul
43c0f67353
Enable mingw CI builds on push and pull request.
2026-04-03 02:11:54 +02:00
Bartosz Taudul
44b1de2d71
Target win10 with mingw.
2026-04-03 02:11:16 +02:00
Bartosz Taudul
803b10fd6b
Do not block vsync capture on mingw.
2026-04-03 02:11:13 +02:00
Bartosz Taudul
3ac364ebcb
Add mingw ETW compat header.
2026-04-03 01:56:46 +02:00
Marcos Slomp
842420439d
fix LogString wire in the DequeueSerial path ( #1328 )
2026-04-03 00:37:16 +02:00
Marcos Slomp
ee976f8146
Prevent CMake from re-generating files in the data folder every time ( #1327 )
2026-04-03 00:24:39 +02:00
Bartosz Taudul
bb1d4ad580
Revert usearch bump – broken on windows.
2026-04-02 21:05:35 +02:00
Bartosz Taudul
d5eb85e4c4
Bump deps.
2026-04-02 21:00:14 +02:00
Bartosz Taudul
08f82dc0be
Add mingw CI build setup.
2026-04-02 01:02:18 +02:00
Bartosz Taudul
0fb2f8d75d
Build client library with CMake and Meson again on Linux.
2026-04-02 00:42:16 +02:00
Bartosz Taudul
a861c6671c
Reenable LTO, disable parallel build on GitHub runners.
2026-04-01 00:38:40 +02:00
Bartosz Taudul
b18b7461e4
Disable LTO on Linux CI.
2026-03-31 23:15:15 +02:00
Bartosz Taudul
d8139f2058
Allow disabling LTO, mold linker, ccache.
2026-03-31 23:15:15 +02:00
Bartosz Taudul
af5f1c4d52
Use CMake option macros.
2026-03-31 23:15:15 +02:00
Bartosz Taudul
5877db5411
Move NO_ISA_EXTENSIONS option to config.cmake.
2026-03-31 23:15:14 +02:00
Bartosz Taudul
eb81bdc3f8
NO_STATISTICS is not an option in most of the tools.
2026-03-31 23:15:14 +02:00
Bartosz Taudul
b6b1eed1d5
Externalize option setting macros. Add one for non-booleans.
2026-03-31 23:15:14 +02:00
Bartosz Taudul
e89eadf91a
Fix copy pasta.
2026-03-31 23:15:11 +02:00
Bartosz Taudul
785eaeac86
Merge pull request #1324 from siliceum/fix/linux-comp-issue
...
Fix #1321 linux compilation issue
2026-03-31 14:02:28 +02:00
Clément Grégoire
313d5b681e
Fix #1321 linux compilation issue introduc
2026-03-31 13:43:36 +02:00
Bartosz Taudul
16f7cd3c68
Merge pull request #1321 from siliceum/refactor/tracycallstack
...
Small cosmetic changes + symsrv.dll detection
2026-03-31 12:25:12 +02:00
Bartosz Taudul
a0b3a71212
Add monitor utility.
2026-03-31 02:06:01 +02:00
Bartosz Taudul
850cfd90f7
Add callstack decode functionality for external processes.
2026-03-31 01:18:51 +02:00
Bartosz Taudul
f8c6f4a7ba
Cosmetics.
2026-03-31 01:18:51 +02:00
Bartosz Taudul
eca9609f52
Shut up about anonymous namespaces.
2026-03-31 01:18:50 +02:00
Bartosz Taudul
739123d005
Add a way to override profiled program name and PID.
2026-03-31 01:18:50 +02:00
Bartosz Taudul
53439ea5e2
Add external image cache machinery.
2026-03-31 01:18:50 +02:00
Clément Grégoire
da4b95bf59
Use CopyString(Fast) where possible in TracyCallstack
2026-03-30 22:33:43 +02:00
Clément Grégoire
79f7d99b02
Add SymSrv.dll check
...
This is often a source of missing symbols or incomprehension as to why they are not getting resolved. Having a debug log will help debugging such cases.
2026-03-30 22:33:43 +02:00
Clément Grégoire
8c5724d125
Fix formating in DbgHelpInit
2026-03-30 22:33:43 +02:00
Clément Grégoire
cf33cbd33f
Extract MakeUnresolvedCallstackEntryData
2026-03-30 22:33:42 +02:00
Bartosz Taudul
c53d94f538
Set color diagnostics in test CMakeLists.txt.
2026-03-30 21:47:45 +02:00
Bartosz Taudul
b3aaac43ca
Move ELF headers definition to a separate header file.
2026-03-30 20:56:45 +02:00
Bartosz Taudul
7974a74580
Add external_file support to libbacktrace
...
- Add external_file field to backtrace_state struct
- Add backtrace_create_state_for_file() function that marks
state for external ELF files not loaded in current process
- In backtrace_initialize, use external_file flag to:
- Pass exe=0 to elf_add for ET_DYN files (allows DWARF loading)
- Skip dl_iterate_phdr enumeration (avoids noise from current process)
This enables symbol resolution from arbitrary ELF files on disk,
with caller responsible for address translation.
2026-03-30 19:52:12 +02:00
Bartosz Taudul
2f1fc19f88
libbacktrace: use correct names in #undef of ELF macros (b9e4006)
2026-03-30 19:40:30 +02:00
Bartosz Taudul
52607f70fe
libbacktrace: add casts to avoid undefined shifts (78af4ff, 0034e33)
2026-03-30 19:38:45 +02:00
Bartosz Taudul
d79b7d4176
libbacktrace: don't get confused by overlapping address ranges (3d0be55)
2026-03-30 19:33:37 +02:00
Bartosz Taudul
6010770879
Update uops.info data.
2026-03-30 02:23:33 +02:00
Bartosz Taudul
c8a93adb01
Add merge utility to CI builds for linux, macos, and windows
2026-03-28 22:43:07 +01:00
Bartosz Taudul
1dee03e4f2
Rename workflow job names for uniqueness across workflows
2026-03-28 22:30:29 +01:00
Bartosz Taudul
0312a77390
Add GIT_REV to tools config in CI setup.
2026-03-28 21:59:10 +01:00
Bartosz Taudul
fddbb5d990
Print tracy version in all tools.
2026-03-28 21:38:47 +01:00
Bartosz Taudul
8bd49317ca
Set include list for GitRef.
2026-03-28 21:38:27 +01:00
Bartosz Taudul
1b34592d80
Move git ref CMake extractor to a separate file.
2026-03-28 19:23:15 +01:00
Bartosz Taudul
6f91104542
Include git ref in profiler's --help output.
2026-03-28 12:44:12 +01:00
Bartosz Taudul
e300d56f68
Force resort of possibly broken plots.
2026-03-27 20:16:27 +01:00
Bartosz Taudul
8351daea73
Add ability to mark the SortedVector unsorted.
2026-03-27 20:16:27 +01:00
Bartosz Taudul
b5a322d122
Fix SortedVector regression.
...
Sort unsorted part of the vector, not the already sorted part.
2026-03-27 17:49:49 +01:00
Bartosz Taudul
77a53e2b5b
No need to do strcmp here.
2026-03-24 23:47:40 +01:00
Bartosz Taudul
ef41e12ba8
Fix missing outer loop exit.
2026-03-24 22:51:02 +01:00
Basil Milanich
6c6999bf01
Add CUDA Graph GPU zone repro
...
Minimal reproducer showing that CUDA Graph-launched kernels produce
0 GPU zones in Tracy. The repro creates a simple graph (2 kernels +
1 memcpy), launches it 10 times, and expects ~30 GPU zones. Without
the fallback patch, all activity records are dropped by matchError().
Tested on NVIDIA H100, CUDA 13.1.
2026-03-24 09:37:50 -05:00
Basil Milanich
aa657d5438
Fix missing GPU zones for CUDA Graph-launched kernels
...
When kernels are launched via CUDA Graphs (cuGraphLaunch), CUPTI delivers
CONCURRENT_KERNEL, MEMCPY, and MEMSET activity records but no
corresponding API callback fires for the individual operations. This
means matchActivityToAPICall() always fails, and every GPU activity
record is silently dropped by matchError().
Fix this by falling back to a synthetic APICallInfo using the GPU
timestamps from the activity record when no API correlation exists.
This produces correct GPU zones with kernel names and timing — just
without the CPU-to-GPU launch correlation arrow.
Tested on NVIDIA H100 with CUDA 13.1: before this fix, 0 GPU zones
appeared for CUDA Graph workloads; after, all kernel and memcpy zones
are visible in the Tracy timeline.
2026-03-24 09:24:23 -05:00
Bartosz Taudul
e1143fd985
Try to remove excess frames from reconstructed callstack.
2026-03-24 01:14:38 +01:00
Bartosz Taudul
fb9912db5c
Merge pull request #1315 from slomp/slomp/d3d12-opsie
...
D3D12 opsie
2026-03-23 23:45:51 +01:00
Marcos Slomp
a59ff2dcbb
Update TracyD3D12.hpp
...
opsie
2026-03-23 15:43:36 -07:00
Bartosz Taudul
e792752104
Ignore completely non-local samples.
2026-03-22 17:04:31 +01:00
Bartosz Taudul
3c283187c3
Extract functionality for counting local frames in a callstack.
2026-03-22 17:00:15 +01:00
Bartosz Taudul
1967f2c79b
Do proper frame matching instead of relying just on callstack size.
2026-03-22 16:51:55 +01:00
Bartosz Taudul
f5df9f9c24
Remove dead code.
2026-03-21 23:36:15 +01:00
Bartosz Taudul
5040412813
Simplify search for max-local call stack root.
2026-03-21 22:35:25 +01:00
Bartosz Taudul
9326227bcd
Display reconstructed callstack in zone info window.
2026-03-21 01:48:00 +01:00
Bartosz Taudul
b52af15504
Change DrawCallstackTable interface to accept data + size pair.
2026-03-21 01:47:26 +01:00
Bartosz Taudul
e1381d1beb
Draw reconstructed callstack trace in zone tooltips.
2026-03-21 01:27:12 +01:00
Bartosz Taudul
c4f42b1bc9
Basic heuristics for reconstruction of zone callstack from sample data.
2026-03-21 01:26:40 +01:00
Bartosz Taudul
d0222ef7d9
Worker::GetZoneEnd() can be const.
2026-03-19 19:53:58 +01:00
Bartosz Taudul
87781fd75c
Merge pull request #1312 from YaLTeR/patch-1
...
Add missing cstdint include
2026-03-19 18:18:50 +01:00
Ivan Molodetskikh
16af373a7e
Add missing cstdint include
...
Fixes build on new gcc on Fedora 44.
2026-03-19 17:57:57 +03:00
Amy
e9314add15
clang visibility for TRACY_API ( #1310 )
2026-03-18 23:59:33 +01:00
Bartosz Taudul
145efd63c9
Change GetCallstackJson interface to data ptr + size.
2026-03-18 00:52:34 +01:00
Bartosz Taudul
0905e203e3
Add DrawCallstackCalls( data, size, ... ) interface.
2026-03-18 00:42:21 +01:00
Bartosz Taudul
4fbbfb410d
Merge pull request #1307 from slomp/slomp/d3d12-callstack-patch
...
Fix callstack and transient zones in D3D12
2026-03-17 21:20:08 +01:00
Marcos Slomp
36aaa19ae9
instrumenting relevant events of D3D12
2026-03-17 13:14:15 -07:00
Marcos Slomp
8b1e413db5
fix handling of D3D12 callstacks and/or transient zones
2026-03-17 13:13:24 -07:00
Bartosz Taudul
54f778c204
Display ellipsis in single-line callstack printout, when frames remain.
2026-03-17 02:29:12 +01:00
Bartosz Taudul
3876d33a15
Display callstacks in zone tooltips.
2026-03-17 01:32:24 +01:00
Bartosz Taudul
94e5ff2cfb
Add inline callstack display to zone info window.
2026-03-17 01:00:21 +01:00
Bartosz Taudul
79d165190a
Improve parent zones display.
2026-03-17 00:07:47 +01:00
Bartosz Taudul
83b7d3a267
Simplify "zone trace" into "parent zones".
2026-03-16 01:44:57 +01:00
Bartosz Taudul
a51efcc974
Proper CMake setup for TRACY_CALLSTACK.
2026-03-15 22:17:26 +01:00
Bartosz Taudul
1476afb992
Do not force enable CMake configure on open in VS Code.
2026-03-15 22:17:18 +01:00
Bartosz Taudul
80b8e8284e
Allow attaching zone histogram to llm.
2026-03-11 00:42:53 +01:00
Bartosz Taudul
8f9392cae7
Merge pull request #1304 from slomp/slomp/windows-opsie
...
Windows x64 vs ARM opsie
2026-03-09 21:35:48 +01:00
Marcos Slomp
01bd20c30a
Windows x64 vs ARM opsie
2026-03-09 13:24:08 -07:00
Bartosz Taudul
b0dd2b291d
Make a separate fast model optional.
2026-03-08 14:42:18 +01:00
Bartosz Taudul
9f432d5fa2
Cosmetics.
2026-03-08 13:20:15 +01:00
Bartosz Taudul
2f90aac0ac
Force enable thinking for chat model, force disable for fast model.
2026-03-08 13:16:14 +01:00
Bartosz Taudul
869ad0a02d
Include news, locations, videos from brave search results.
2026-03-07 22:33:32 +01:00
Bartosz Taudul
928de7ae6c
Use common functionality for gathering brave search results.
2026-03-07 22:33:32 +01: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
Bartosz Taudul
460944ef42
Cosmetics.
2026-03-06 23:53:13 +01:00
Bartosz Taudul
f1bc3ef4c7
Merge pull request #1300 from slomp/slomp/c-api-get-time
...
Adding C API for Profiler::GetTime()
2026-03-06 12:18:05 +01:00
Marcos Slomp
cc21988537
adding C API for Profiler::GetTime()
2026-03-06 01:33:01 -08:00
Bartosz Taudul
db0082de3f
Add brave search.
2026-03-06 02:07:21 +01:00
Bartosz Taudul
bbc937c309
Refactor FetchWebPage to FetchHttp with custom headers support
2026-03-05 23:59:27 +01:00
Bartosz Taudul
71c5494414
Move web search engine implementations to separate functions.
2026-03-05 20:57:44 +01:00
Bartosz Taudul
2157e0a1b6
Better handle duckduckgo error responses.
2026-03-05 20:57:44 +01:00
Bartosz Taudul
cf09a04e92
Add missing include.
2026-03-05 20:57:01 +01:00
Bartosz Taudul
aba6efd24a
Merge pull request #1296 from slomp/slomp/spsc-notify-wait
...
Add notify/wait to SPSCQueue (reduce latency of Symbol Worker)
2026-03-05 20:14:50 +01:00
Marcos Slomp
4460e64f3a
addressing code review
2026-03-05 11:10:43 -08:00
Marcos Slomp
c696cb7f63
rever tracy_SPSCQueue.h
2026-03-04 21:42:14 -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
eaa376be05
adding minimalist notify/wait interface and implementation to SPSC queue
2026-03-04 12:13:20 -08:00
Bartosz Taudul
53fa2ba67b
Fix includes.
2026-03-02 23:58:16 +01:00
Bartosz Taudul
80c849a2aa
Fix client identification in tracy-capture-daemon
...
Use '<pid>_<ip>_<port>' string as client ID instead of IP+port hash.
This allows:
- Same program restarting (new PID) to be recognized as new client
- Multiple instances of same program (different PIDs) to capture separately
2026-03-02 23:00:42 +01:00
Bartosz Taudul
add9a77396
Document tracy-capture-daemon and reorganize merge section
...
- Add subsection about tracy-capture-daemon in the capturing section
- Move merge tool documentation to follow capture daemon section
- Both tools are now documented as part of the capture workflow
2026-03-02 22:39:18 +01:00
Bartosz Taudul
e6aae0c18e
Add tracy-capture-daemon for multi-client capture
...
A discovery-and-capture daemon that listens for UDP broadcasts from
Tracy clients, automatically connects to discovered clients, and
captures each to a separate file.
Features:
- Continuous discovery until Ctrl+C
- Per-client capture threads
- Terminal display with per-client stats
- Output files named: <program>_<ip>_<port>.tracy
- Collision handling with _1, _2 suffix
- Graceful shutdown on signal
Based on the multicapture design by Grégoire Roussel, but simplified
to output separate files instead of merging (use tracy-merge for that).
Co-authored-by: Grégoire Roussel <gregoire.roussel@wandercraft.eu >
2026-03-02 22:32:45 +01:00
Bartosz Taudul
03f01b9c49
Include fixes.
2026-03-02 21:34:35 +01:00
Bartosz Taudul
2341dee04a
Refactor capture utilities into CaptureOutput
...
Extract common output functions from capture.cpp into a proper library:
- InitTerminalDetection()/IsTerminal() - terminal detection
- AnsiPrintf() - printf with ANSI escape codes
- WaitForConnection() - blocks until connected, returns error code
- PrintCaptureProgress() - prints throughput/memory/time stats
- PrintWorkerFailure() - prints failure details with callstack
Functions are declared in CaptureOutput.hpp and implemented in
CaptureOutput.cpp. Both tracy-capture and future tools can share
this code.
Co-authored-by: Grégoire Roussel <gregoire.roussel@wandercraft.eu >
2026-03-02 21:28:22 +01:00
Bartosz Taudul
f5545f864d
Document tracy-merge utility in the manual
2026-03-02 20:36:22 +01:00
Bartosz Taudul
2e82525fb4
Fix plot handling in tracy-merge
...
- Always export plots (remove -p/--export-plots option)
- Add plot name disambiguation: prefix with process name
- Include PID in name when same process/plot appears in multiple traces
2026-03-02 20:35:23 +01:00
Bartosz Taudul
0dc6be27f3
Add tracy-merge tool for combining trace files
...
Merges multiple .tracy files into a single combined trace using the
Import API. Each trace's threads are remapped using compound TIDs
encoding (pid << 32) | tid to prevent collisions.
Thread names are prefixed with process name. If the same process/thread
name combination appears in multiple traces, PID is included to
disambiguate (e.g., myapp[12345]/MainThread).
Co-authored-by: Grégoire Roussel <gregoire.roussel@wandercraft.eu >
2026-03-02 20:35:20 +01:00
Bartosz Taudul
49590756a0
Extract broadcast message parsing into TracyBroadcast
...
Move broadcast message parsing logic from profiler/src/main.cpp into
server/TracyBroadcast.cpp/hpp. This reduces code duplication and enables
reuse by other tools (e.g., multi-capture).
ParseBroadcastMessage() handles all broadcast protocol versions (0-3) and
returns std::optional<BroadcastMessage>. ClientUniqueID() generates a unique
identifier from IP address and port.
Co-authored-by: Grégoire Roussel <gregoire.roussel@wandercraft.eu >
2026-03-02 19:45:48 +01:00
Bartosz Taudul
9442517f30
Remove trailing whitespace.
2026-03-02 19:40:41 +01: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
42b0512517
fix copy-pasta...
2026-02-28 20:02:21 -08:00
Marcos Slomp
83707a9c2f
updated support list
2026-02-28 20:02:17 -08:00
Marcos Slomp
0f170f51c6
report GUI initialization error before terminating
2026-02-28 20:00:11 -08:00
Marcos Slomp
960911f263
update manual with remarks about Windows on ARM
2026-02-28 20:00:11 -08:00
Marcos Slomp
e41ae15f27
using ARM64 intrinsics on Windows on ARM
2026-02-28 20:00:11 -08:00
Bartosz Taudul
aa30c611a8
Merge pull request #1286 from slomp/slomp/touchpad-zoom-fix
...
Have Touchpad gestures either scroll or zoom the timeline, but not both together
2026-02-28 22:55:25 +01:00
Marcos Slomp
20932eae88
formatting
2026-02-27 19:30:35 -08:00
Marcos Slomp
54c63c11d4
ensure touchpad gestures either scroll or zoom the timeline, but not both simultaneously
2026-02-27 19:30:35 -08:00
Bartosz Taudul
d6620568e5
Make tool reply size limit configurable in LLM settings
...
Add option to configure the maximum tool reply size in the advanced
settings of the LLM assistant. The limit can be enabled/disabled via
a checkbox, with the value stored in bytes. The context-based limit
is now displayed alongside the configured limit for transparency.
2026-02-26 22:40:51 +01:00
Bartosz Taudul
ad659b8f8e
Update manual.
2026-02-26 22:33:50 +01:00
Bartosz Taudul
8420a1d7d6
Let's try automatic upload of release artifacts.
2026-02-20 00:27:41 +01:00
Bartosz Taudul
730dce67e6
Split build.yml into windows.yml and macos.yml.
2026-02-20 00:10:57 +01:00
Bartosz Taudul
a9070da72e
Cache CPM on CI.
2026-02-19 23:07:00 +01:00
Bartosz Taudul
0abf0083be
Enable workflow dispatch for CI jobs.
2026-02-19 23:06:33 +01:00
Bartosz Taudul
2bc3b87a2d
Fix TracyLlm initialization when LLM is disabled.
2026-02-19 18:33:45 +01:00
Bartosz Taudul
95661c24df
Revert "Bump usearch to 2.24.0."
...
This reverts commit 6de054002d .
2026-02-19 18:03:51 +01:00
Bartosz Taudul
27a4091975
Merge pull request #1284 from slomp/slomp/syminit-path-win32
...
Ensure executable path is inspected when looking for PDB files
2026-02-19 12:27:42 +01:00
Marcos Slomp
853144214b
buffer checks and typo
2026-02-18 16:13:26 -08:00
Bartosz Taudul
574e0d17ec
Reorder symbol statistics checkboxes and disable kernel when external is off.
...
External symbols checkbox now appears before kernel symbols, and kernel
is disabled when external is not selected since kernel symbols are a
subset of external symbols.
2026-02-19 00:51:04 +01:00
Bartosz Taudul
cea95bdede
Do not show external symbols, frame by default.
2026-02-19 00:45:44 +01:00
Marcos Slomp
12da626fd1
ensure executable path is inspected when looking for pdb files
2026-02-17 14:27:07 -08:00
Bartosz Taudul
6de054002d
Bump usearch to 2.24.0.
2026-02-17 22:06:06 +01:00
Bartosz Taudul
9079baf0b3
Bump capstone to 6.0.0-Alpha7.
2026-02-17 22:01:39 +01:00
Bartosz Taudul
a754bbe3a4
Bump imgui to 1.92.6-docking.
2026-02-17 21:49:11 +01:00
Bartosz Taudul
2ecb45d8c0
Font data must be always available.
2026-02-17 21:48:43 +01:00
Bartosz Taudul
ebd9df6ab9
Merge pull request #1283 from navvyswethgraphics/support_windows_arm64_msvc
...
Add native Windows ARM64 (MSVC) support across profiler, server, and ToyPathTracer sample
2026-02-17 17:38:19 +01:00
Naveen Regulla
99b502f9a4
simplify and clarify leading zeros calculation
2026-02-17 17:13:36 +05:30
Naveen Regulla
9879a31fc5
Add Windows on ARM64 with MSVC support for Tracy Profiler
...
Introduce Windows ARM64(native) support across ToyPathTracer,
profiler, and server code paths when building with MSVC(_M_ARM64).
Key changes:
- MathSimd.h/Maths.h:
- Fix NEON movemask constants for MSVC/ARM64 by loading from a uint32_t[]
via vld1q_u32() and using vdupq_n_u32() for highbit.
- enkiTS/TaskScheduler.cpp:
- Provide Pause() implementation on _M_ARM64 using __yield().
- profiler/winmain.cpp:
- AVX feature checks to x86/x64 only and skip on ARM64.
- server/TracyPopcnt.hpp:
- Implement TracyCountBits using ARM NEON intrinsics.
- Implement TracyLzcnt using _BitScanReverse64().
2026-02-17 16:42:50 +05:30
Bartosz Taudul
75320a3353
Fix race condition when regenerating LLM reply.
...
The chat regenerate/trash button handling had a monolithic lock that
blocked the worker thread during token counting. The token counting
is performed by calling TracyLlmApi::Tokenize(), which issues a
blocking HTTP POST request to the LLM API - on the UI thread.
To avoid blocking both the worker and freezing the UI during HTTP
calls, the lock was split into m_jobsLock and m_chatLock. However,
this introduced a race condition.
For the assistant role (regenerate message action), the code:
1. Stops the current job and queues a new one (under m_jobsLock)
2. Releases the lock
3. Performs token counting via HTTP calls (no lock held)
4. Re-acquires m_jobsLock and stops m_currentJob again
Between steps 2 and 4, the worker thread can complete the old job
and pick up the newly queued job. The stop at step 4 then incorrectly
stops the new regenerate job instead of the old one.
Under the original monolithic lock, the worker couldn't access
m_currentJob until after step 4, so the stop always applied to the
correct job. After the split, the second stop became harmful for
the assistant case.
The fix makes the second stop conditional on user role only (thrash
action), since that's the case where no new job is queued and we
genuinely need to stop any running generation before the user edits
their message.
2026-02-17 00:04:53 +01:00
Bartosz Taudul
c1556a0a73
Merge pull request #1281 from slomp/slomp/fix-zoom-hang
...
Fix UI hangs due to mouse-wheel zooming
2026-02-12 18:55:35 +01:00
Bartosz Taudul
02a229b12f
Merge pull request #1282 from DaniPopes/dani/fix-wasm-paste
...
fix: handle paste events in wasm backend
2026-02-12 13:24:38 +01:00
DaniPopes
7d27fe6ff9
fix: handle paste events in wasm backend
...
Listen for browser paste events and directly inject clipboard text via
AddInputCharactersUTF8. Also suppress character input when Ctrl/Meta is
held to prevent 'v' from being typed on Cmd+V.
2026-02-11 23:42:45 -05:00
Marcos Slomp
f61fa7b0e4
ensure that t0 <= t1 to prevent time-point crossover (leading to UI hangs)
2026-02-11 14:45:38 -08:00
Bartosz Taudul
0d3b5b8a04
Merge pull request #1280 from DaniPopes/dani/apple-thread-name-no-truncate
...
Don't truncate thread names to 15 chars on Apple platforms
2026-02-11 22:39:06 +01:00
Bartosz Taudul
2d9bed27f2
Merge pull request #1279 from DaniPopes/dani/fix-macos-zoom-scale
...
fix: UI zoom scale not applying on macOS
2026-02-11 22:34:56 +01:00
DaniPopes
d47344187d
fix: don't truncate thread names to 15 chars on Apple platforms
2026-02-11 16:25:42 -05:00
DaniPopes
12a964d3be
fix: UI zoom scale not applying on macOS
...
On macOS with Retina displays, dpiScale is 2.0 but gets overridden to
userScale alone under __APPLE__. The early-return check compared
prevScale against the pre-override value (dpiScale * userScale), which
for 50% zoom evaluates to 2.0 * 0.5 = 1.0, matching the previous
prevScale of 1.0 and causing an early return before the scale change
could take effect. Moving the __APPLE__ override before the early-return
check ensures the comparison uses the actual effective scale.
2026-02-10 16:33:02 -05:00
Bartosz Taudul
ea8eca6a45
Merge pull request #1273 from siliceum/WSL-and-vm-support
...
Better support for WSL2/VMs
2026-02-09 11:45:55 +01:00
Clément Grégoire
b890719fdd
Remove stray newline in TracySysTrace.cpp
2026-02-09 11:44:16 +01:00
Clément Grégoire
e9073800d5
Remove extraneous newline in meson.build
2026-02-09 11:41:11 +01:00
Clément Grégoire
d089c3e1b0
CMake: Enforce TRACY_TIMER_FALLBACK when TRACY_DISALLOW_HW_TIMER is set.
2026-02-09 11:40:07 +01:00
Clément Grégoire
b778b67676
Fix trailing whitespace
2026-02-09 11:37:07 +01:00
Clément Grégoire
2b2fafbcfc
Start cleaning TRACY_HW_TIMER checks.
...
Ideally I think we might want to have TRACY_HW_TIMER mean only TSC/CNTVCT, and define TRACY_TIMER_FALLBACK for platforms that don't have them or have a special case such as iOS.
But for now, keep the same behaviour.
2026-02-09 11:30:24 +01:00
Bartosz Taudul
21086a25d6
Merge pull request #1275 from The-Briel-Deal/message_l_regress
...
Fix regression in TracyCMessageL*() functions
2026-02-08 23:04:54 +01:00
Gabriel Ford
08969fde4b
Fix regression in TracyCMessageL*() functions
...
Fixes: https://github.com/wolfpld/tracy/issues/1274
2026-02-08 16:42:13 -05:00
Clément Grégoire
b27561c21e
Add TRACY_DISALLOW_HW_TIMER for VMs / WSL2
2026-02-08 17:10:24 +01:00
Clément Grégoire
79cb60025d
Monotonic clock fallback for systrace
2026-02-08 17:07:00 +01:00
Bartosz Taudul
04f24cb222
Merge pull request #1272 from DaniPopes/wasm-clipboard
...
Implement clipboard support for WASM backend
2026-02-07 12:58:09 +01:00
DaniPopes
a23e910d5f
Implement clipboard support for WASM backend
...
The Emscripten backend was missing Platform_SetClipboardTextFn/GetClipboardTextFn,
so ImGui::SetClipboardText was a no-op in the browser.
Hook navigator.clipboard.writeText for writes and keep a local copy for reads.
2026-02-07 03:36:25 +01:00
Bartosz Taudul
c93c9bce6f
Improve how tool calls are presented to user.
...
1. Tool replies are now integrated with tool calls.
2. Tool calls now have textual descriptions.
2026-02-06 18:37:01 +01:00
Bartosz Taudul
0b02b097a9
Pass current and end chat iterators to TracyLlmChat::Turn().
2026-02-06 17:33:59 +01:00
Bartosz Taudul
9d78cca5ff
Redo LLM locks.
2026-02-06 02:28:14 +01:00
Bartosz Taudul
a31ab53d26
Check if the response contains finish_reason before getting its value.
2026-02-05 18:31:05 +01:00
Bartosz Taudul
66cc77bd5f
Don't access ghost zones before they are ready.
2026-02-05 00:42:42 +01:00
Bartosz Taudul
5a41f422fe
Merge pull request #1269 from DaniPopes/thread-sort
...
Sort threads by ID after name
2026-02-04 14:08:26 +01:00
DaniPopes
5c5af7c1e5
Sort threads by ID after name
...
The "sort" button for threads uses an unstable sort, so threads with
the same name will shuffle around without ever stabilizing.
Use `id` to sort after comparing the name.
2026-02-04 06:51:43 +01:00
Bartosz Taudul
ca5ef812a3
Apple is also busted.
2026-02-01 20:39:53 +01:00
Bartosz Taudul
a9ea7ec1c9
Workaround libc++ issues.
2026-02-01 18:57:49 +01:00
Bartosz Taudul
8f0c83dbf9
Fix View ptr assignment.
2026-02-01 18:55:53 +01:00
Bartosz Taudul
2b201e6f59
RetrieveThread() uses a cache that cannot be shared between threads.
...
Note: IsThreadFiber() uses the same functionality, but is only called from
the main thread.
2026-02-01 18:01:39 +01:00
Bartosz Taudul
c86549a3bb
View is accessed concurrently.
2026-02-01 17:29:34 +01:00
Bartosz Taudul
aba3ae2869
View's m_wasActive is used concurrently.
2026-02-01 16:55:46 +01:00
Bartosz Taudul
d1e831f69d
Proper way of setting sanitizer parameters.
2026-02-01 16:44:15 +01:00
Bartosz Taudul
1d2b6cca24
Pack source code attachments.
...
Example source file, glm-4.7-flash:
5519 -> 4699 tokens (85%)
2026-02-01 16:37:42 +01:00
Bartosz Taudul
d71a38632c
Nice formatting for host info.
2026-02-01 14:53:22 +01:00
Bartosz Taudul
d4d9339d95
Provide name of the profiled program to LLM.
2026-02-01 14:53:22 +01:00
Bartosz Taudul
0ad8767903
Explicitly mark non-inline frames as non-inline in LLM attachment.
2026-02-01 14:53:19 +01:00
Bartosz Taudul
1c383d8589
Merge pull request #1268 from siliceum/reenable-tracy-debug-as-log
...
Reenable TracyDebug LogString except under TRACY_DELAYED_INIT and not TRACY_MANUAL_LIFETIME
2026-02-01 14:53:02 +01:00
Clément Grégoire
55ce01c69e
Reenable TracyDebug LogString except under TRACY_DELAYED_INIT and not TRACY_MANUAL_LIFETIME
2026-02-01 14:50:37 +01:00
Bartosz Taudul
e1fa883fbb
Merge pull request #1267 from siliceum/fix/test-suppport-manual-lifetime
...
Tests should work under TRACY_MANUAL_LIFETIME.
2026-02-01 14:46:13 +01:00
Clément Grégoire
be78dc4bfb
Tests should work under TRACY_MANUAL_LIFETIME.
...
This calls tracy::StartupProfiler(); before any other tracy call (in static init) if TRACY_MANUAL_LIFETIME is set
2026-02-01 14:45:00 +01:00
Bartosz Taudul
bc122d5c3d
Do not call Glue() in PrintTextExt().
2026-02-01 02:35:26 +01:00
Bartosz Taudul
b60ab86fa5
Extend link support to code sections, separators, etc.
2026-02-01 02:14:42 +01:00
Bartosz Taudul
32fae40c4e
Extract link hover functionality to a separate function.
2026-02-01 02:05:08 +01:00
Bartosz Taudul
324ecdcb99
Change source code separator in LLM attachments.
2026-02-01 01:48:55 +01:00
Bartosz Taudul
c886c8fa00
Remove remains of vision in tool replies.
2026-01-31 19:21:24 +01:00
Bartosz Taudul
925732914a
Draw source code preview in source file link tooltip.
2026-01-31 19:17:44 +01:00
Bartosz Taudul
d1ae380cc2
Make View::DrawSourceTooltip() public.
2026-01-31 19:17:07 +01:00
Bartosz Taudul
9d33668c9d
Proper check for source file validity.
2026-01-31 18:54:43 +01:00
Bartosz Taudul
903b6b198f
Retrieve source file string index and line number only once.
2026-01-31 18:42:07 +01:00
Bartosz Taudul
30ea4ed341
Print a nice tooltip for source links.
2026-01-31 18:35:37 +01:00
Bartosz Taudul
5b7a6bf447
Add instructions for providing source file links.
2026-01-31 18:03:31 +01:00
Bartosz Taudul
4fe8d16a20
Add support for source file links in markdown renderer.
2026-01-31 18:03:11 +01:00
Bartosz Taudul
7cc7e484b9
Make source search results more compact.
2026-01-30 22:55:55 +01:00
Bartosz Taudul
cfcc8af5c3
Remove indentation from tool replies.
2026-01-30 22:37:50 +01:00
Bartosz Taudul
3ce2905582
Default value does not need to be repeated.
2026-01-30 22:36:16 +01:00
Bartosz Taudul
67b75ac7fb
Restore attachment indentation when viewing contents in UI.
2026-01-30 22:31:25 +01:00
Bartosz Taudul
99b70f7a6e
Remove indentation from LLM attachments.
...
This has quite large effect on number of tokens. Example assembly attachment:
glm-4.7-flash: 7452 -> 5799 (77%)
gpt-oss-20b: 6896 -> 5245 (76%)
2026-01-30 22:27:55 +01:00
Bartosz Taudul
de002ed071
Update NEWS.
2026-01-30 21:49:17 +01:00
Bartosz Taudul
50eae09cda
Source location may be missing a line number.
...
The valid check here is for the source file index being set (active).
The line number might be zero.
This fixes the "black" unknown source location in assembly listing.
2026-01-30 21:44:24 +01:00
Bartosz Taudul
b9a4bf4f7b
Use the intended weighting order in ManageContext().
2026-01-30 20:58:56 +01:00
Bartosz Taudul
d6e62b3c1f
Spell out (long!) source file names in assembly attachments only once.
2026-01-30 01:38:20 +01:00
Bartosz Taudul
e017f504c6
Split source_file parameter context into context and context_back.
2026-01-30 01:07:15 +01:00
Bartosz Taudul
81e8b1a4d8
Update NEWS.
2026-01-29 23:05:40 +01: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
7ef92c3547
Add crash reason and thread information to LLM attachment, if appropriate.
2026-01-29 22:09:01 +01:00
Bartosz Taudul
73572e6d7f
Display notification that crash callstack is crash callstack.
2026-01-29 21:50:47 +01:00
Bartosz Taudul
ebc2c9e28a
Use ranges.
2026-01-29 21:48:17 +01:00
Bartosz Taudul
ea9dbe5643
Prefer removal of older tool responses.
2026-01-28 21:34:19 +01:00
Bartosz Taudul
237058420f
Make the forget message explain what happened.
2026-01-28 21:25:23 +01:00
Bartosz Taudul
b0704ba35f
Adjust minimum available context logic.
...
Increase the context quota from 70% to 80%, as the previous value was too
conservative with large contexts.
Add a minimum bound of 4K to make small context workable.
2026-01-28 21:15:59 +01:00
Bartosz Taudul
9b98bce193
Reword no network access response.
2026-01-28 21:15:00 +01:00
Bartosz Taudul
41dd81ef7e
Tighter packing of source file contents.
2026-01-28 20:59:33 +01:00
Bartosz Taudul
55f4f5f704
Change LLM API timeout from 5 to 20 minutes.
2026-01-28 18:47:14 +01:00
Bartosz Taudul
a371325346
Bump dependencies.
2026-01-26 20:48:15 +01:00
Bartosz Taudul
d1148377ae
Insert hint in a valid way.
2026-01-26 11:56:43 +01:00
Bartosz Taudul
cf001a38df
Adjust max size calculation.
2026-01-25 21:05:36 +01:00
Bartosz Taudul
841af4795c
System prompt update.
2026-01-25 21:01:09 +01:00
Bartosz Taudul
daef2f4c6b
Remove span tag duplication in retrieved web pages.
2026-01-25 20:12:34 +01:00
Bartosz Taudul
0a58d88be2
Go back to regex paths in source search.
2026-01-25 16:29:53 +01:00
Bartosz Taudul
27ecaed76e
Use regex in source search.
2026-01-25 16:12:45 +01:00
Bartosz Taudul
beb4cd4ea6
Perform query transformation only once.
2026-01-25 16:12:25 +01:00
Bartosz Taudul
d4a56c9a37
Tweak system prompt.
2026-01-25 15:47:08 +01:00
Bartosz Taudul
a4324d595d
Add optional file globbing to SourceSearch.
2026-01-25 02:41:00 +01:00
Bartosz Taudul
63c6e48562
Optional string parameter macro.
2026-01-25 02:14:45 +01:00
Bartosz Taudul
1f4b2dd45f
Try to show some search results, if no space for full data.
2026-01-25 02:07:25 +01:00
Bartosz Taudul
7a2aaa6e8e
Refine system prompt.
2026-01-25 01:14:16 +01:00
Bartosz Taudul
b2dcd55d95
Better handling of error responses.
2026-01-25 00:35:18 +01:00
Bartosz Taudul
9c096a31f0
Fix copy paste error.
2026-01-24 19:57:33 +01:00
Bartosz Taudul
cdec805cc9
Underline links.
2026-01-24 14:23:15 +01:00
Bartosz Taudul
7c54c824ab
Add support for markdown strikethrough.
2026-01-24 14:16:16 +01:00
Bartosz Taudul
a7ed5e1fb3
Support rendering markdown task lists.
2026-01-24 13:50:39 +01:00
Bartosz Taudul
73694c7a24
Cleanup enums.
2026-01-24 01:50:11 +01:00
Bartosz Taudul
bc6cf23f08
No line breaks in Lua locations.
2026-01-24 01:25:35 +01:00
Bartosz Taudul
b624ada00a
Cosmetics.
2026-01-24 01:16:28 +01:00
Bartosz Taudul
5e078ed0dd
Fix Lua integration with test.
2026-01-24 01:10:56 +01:00
Bartosz Taudul
26b1782b89
Remove TracyDebug() logging.
...
TracyDebug() is in the profiler init path, and logging the message causes
the profiler to be initialized (the second time), which deadlocks in
GetProfilerData().
2026-01-24 00:49:25 +01:00
Bartosz Taudul
cfb5f5595a
Rewrite system prompt.
2026-01-23 23:22:59 +01:00
Bartosz Taudul
b8cb7a1883
Merge pull request #1262 from kubkon/capture-queue-backlog
...
capture: Display current query backlog
2026-01-23 17:00:47 +01:00
Jakub Konka
e5646b1f6a
capture: Display current query backlog
2026-01-23 15:26:07 +01:00
Bartosz Taudul
07147111b2
Merge pull request #1258 from liungkejin/patch-1
...
fix a nullptr crash on android devices
2026-01-18 12:28:53 +01:00
Kejin
d6597b0bdd
Check if pw_gecos is non-empty on Android
...
Ensure pw_gecos is not empty before returning.
2026-01-18 14:01:19 +08:00
Bartosz Taudul
805d4bf6fd
Better table sizing flags?
2026-01-17 01:55:26 +01:00
Bartosz Taudul
faade0f871
Merge pull request #1259 from davidkern/macos-scaling
...
fix: 2x scaling on macos with ImGui 1.92
2026-01-16 02:42:45 +01:00
David Kern
0a438193ba
fix: 2x scaling on macos with ImGui 1.92
2026-01-15 17:01:40 -08:00
Bartosz Taudul
ba677b725b
Merge pull request #1230 from slomp/slomp/etw-refactor-2
...
Toggling EnableFlags after the "NT Kernel Logger" session has started
2026-01-15 23:00:51 +01:00
Bartosz Taudul
00ce663136
Allow attaching symbol source code to LLM, with execution costs.
2026-01-15 22:14:10 +01:00
Bartosz Taudul
2bc09a42cb
Use contains().
2026-01-15 21:56:19 +01:00
Bartosz Taudul
a34d7fb01a
Add icons to models.
2026-01-15 21:40:47 +01:00
Bartosz Taudul
c4207dec75
Allow attaching source code to LLM in simple view.
2026-01-15 21:38:12 +01:00
Bartosz Taudul
ef77600bae
Description is optional.
2026-01-15 20:55:13 +01:00
Marcos Slomp
839b38d2ec
removing implicit/default argument value
2026-01-15 11:29:49 -08:00
Marcos Slomp
44696c47c6
formatting
2026-01-15 11:27:49 -08:00
Marcos Slomp
dacb3dbae6
support for toggling EnableFlags after the singleton kernel session has started
2026-01-15 11:20:06 -08:00
Bartosz Taudul
eeacbac8bc
Workaround issues with LM Studio.
...
LM Studio will prefix the assistant's content with '\n\n'. While this is
not a problem when proper text follows (the markdown parser will ignore
this), the empty check does fail.
2026-01-15 17:59:00 +01:00
Kejin
1cad2903a1
fix a nullptr crash on android devices
2026-01-15 21:54:24 +08:00
Bartosz Taudul
fc63779b18
Reduce nested divs in retrieved webpages.
2026-01-15 02:37:47 +01:00
Bartosz Taudul
3817db0dc2
Fix newline removal in retrieved webpages.
2026-01-15 02:33:45 +01:00
Bartosz Taudul
fa8a57af86
Include search excerpt in wikipedia search results.
...
This directly references the search keywords in articles that may seem
unrelated based on their title or description alone.
2026-01-15 02:25:03 +01:00
Bartosz Taudul
01d1850b0f
Return 10 results in wikipedia search.
2026-01-15 02:22:08 +01:00
Bartosz Taudul
c153f598b6
Request prompt caching.
2026-01-14 18:48:28 +01:00
Bartosz Taudul
23e752a03b
Rework LLM summary error display in callstack window.
2026-01-14 02:50:09 +01:00
Bartosz Taudul
828d32521d
Return proper error response from TracyLlmApi::SendMessage().
2026-01-14 02:49:38 +01:00
Bartosz Taudul
227c7133c3
Add animated waiting dots in place of ellipsis in call stack window.
2026-01-14 02:25:00 +01:00
Bartosz Taudul
b19d9622b3
Add small version of DrawWaitingDots().
...
The normal one is fit for lines with full size buttons, entry fields, etc.
2026-01-14 02:24:02 +01:00
Bartosz Taudul
5b568d7bce
Add in-line waiting dots drawer.
2026-01-14 02:17:56 +01:00
Bartosz Taudul
a991b4fd50
Cosmetics.
2026-01-14 02:14:25 +01:00
Bartosz Taudul
24ea5118e0
Rename DrawWaitingDots() to DrawWaitingDotsCentered().
2026-01-14 02:12:00 +01:00
Bartosz Taudul
38b73254e9
Add emoji font.
2026-01-14 01:51:32 +01:00
Bartosz Taudul
3547009d1c
Don't lock user manual window size.
2026-01-14 01:23:39 +01:00
Bartosz Taudul
ce74512b92
Update manual.
2026-01-14 00:58:07 +01:00
Bartosz Taudul
bc33767aab
Update NEWS.
2026-01-14 00:21:37 +01:00
Bartosz Taudul
040b4d0e33
Merge pull request #1256 from siliceum/test/add-lua-test
...
Add lua to test/test.cpp
2026-01-13 15:21:35 +01:00
Bartosz Taudul
43c0fe9b61
Merge pull request #1255 from siliceum/fix/lua-callstack-depth
...
Don't try to send callstacks of depth 0 (would trigger assert in `tracy::Callstack`)
2026-01-13 15:19:11 +01:00
Bartosz Taudul
1fa1a4f5e7
Merge pull request #1254 from siliceum/fix/constexpr-string
...
Use string_view as constexpr std::string requires recent compilers
2026-01-13 15:18:12 +01:00
Clément Grégoire
9acc186ceb
Don't try to send callstacks of depth 0 (would trigger assert in tracy::Callstack)
2026-01-13 11:28:38 +01:00
Clément Grégoire
9b135b53b4
Add lua to test/test.cpp
2026-01-13 11:25:44 +01:00
Clément Grégoire
5b79a9a825
Use string_view as constexpr std::string requires recent compilers
...
This was not building with visual studio Version 17.14.13 (August 2025)
2026-01-13 10:57:18 +01:00
Bartosz Taudul
76e0ab135b
Keep window redrawing while waiting for message reply.
2026-01-11 22:32:25 +01:00
Bartosz Taudul
ed8fc7690f
Implement automatic callstack annotation.
2026-01-11 20:54:10 +01:00
Bartosz Taudul
0b9dcc0fbe
Add callstack annotations option.
2026-01-11 20:50:37 +01:00
Bartosz Taudul
b53e10b25e
Fake a progress indicator.
2026-01-11 20:42:13 +01:00
Bartosz Taudul
3008cb8ad7
Add LLM summaries for callstacks.
2026-01-11 20:07:09 +01:00
Bartosz Taudul
1918667bbd
Use proper types for RangeSlim init.
2026-01-11 19:37:38 +01:00
Bartosz Taudul
6f06a25669
Change messages icon to a single-way conversation.
2026-01-11 19:11:20 +01:00
Bartosz Taudul
3ae9db27de
Change chat icon to a two-way conversation.
2026-01-11 19:10:58 +01:00
Bartosz Taudul
2ef21b93c5
More compact call stack window controls.
2026-01-11 19:06:01 +01:00
Bartosz Taudul
2bf0a3c7f9
Implement fast message queries.
2026-01-11 18:56:19 +01:00
Bartosz Taudul
9b5cbf835d
Implement separate-channel non-streamed chat completion requests.
2026-01-11 18:54:11 +01:00
Bartosz Taudul
761cb1041b
Add fast model selection to the UI.
2026-01-11 17:58:22 +01:00
Bartosz Taudul
caba47a66b
Don't copy the string to print if no replacements are needed.
2026-01-11 16:52:35 +01:00
Bartosz Taudul
bf61589f3d
Separate wrapped text printer from text fixup.
2026-01-11 16:20:06 +01:00
Bartosz Taudul
b26fefd325
Smaller header font sizes.
2026-01-10 15:22:29 +01:00
Bartosz Taudul
a04b0e515a
Undo newline when the word position is already at the start of the line.
2026-01-10 15:10:49 +01:00
Bartosz Taudul
ec2ac9f227
Fix table rendering.
2026-01-10 01:14:03 +01:00
Bartosz Taudul
7268cd8c32
Include external jump destination names in LLM attachment.
2026-01-10 00:32:40 +01:00
Bartosz Taudul
c0acafea63
Assume paths containing hidden files are external.
...
A typical use case would be $(HOME)/.cache/cpm/somelib/file.h.
Special care is needed to avoid filtering out dot-dot path elements: /../
While these have been normalized for some time now on the client-side, old
traces might still contain the dot-dot elements.
2026-01-09 03:05:04 +01:00
Bartosz Taudul
aeadeace0f
Check for both versions of Program Files in external paths.
2026-01-09 01:06:32 +01:00
Bartosz Taudul
d4c88dc7c4
Allow filtering out external functions in sampling statistics view.
2026-01-09 01:05:17 +01:00
Bartosz Taudul
560f8f935d
Add ability to attach entry call stacks to LLM.
2026-01-08 22:35:03 +01:00
Bartosz Taudul
723bdc71dc
Make GetCallstackJson available via View.
2026-01-08 22:34:45 +01:00
Bartosz Taudul
d9200351ef
Allow case-insensitive code search.
2026-01-08 21:29:26 +01:00
Bartosz Taudul
d1a4746076
Add ParamOptBool().
2026-01-08 21:19:08 +01:00
Bartosz Taudul
517366bec9
Use templates for GetParam() implementation.
2026-01-08 21:18:47 +01:00
Bartosz Taudul
c1ffbe8e0d
Check if mouse is over the window before acting on mouse click.
2026-01-08 20:50:26 +01:00
Bartosz Taudul
825ab7f411
Implement search in code.
2026-01-08 20:48:19 +01:00
Bartosz Taudul
e4ff8d34be
Move IsFrameExternal from View to TracyUtility.hpp.
2026-01-08 20:28:16 +01:00
Bartosz Taudul
a5e5e8a435
Workaround emscripten scroll issues.
...
Obviously not the correct fix, but whatever.
2026-01-07 23:29:35 +01:00
Bartosz Taudul
1413bb4b4d
Merge pull request #1250 from YaLTeR/fix-scrolling
...
Fix scrolling speed for touchpads and high-res wheels on Wayland
2026-01-07 23:16:19 +01:00
Bartosz Taudul
e37d58c60c
Better printing of tool calls.
2026-01-07 17:47:52 +01:00
Bartosz Taudul
2903fcabe4
Change default source_file context to 50 lines.
2026-01-07 17:03:42 +01:00
Bartosz Taudul
26c5999a6e
Add callstack inspection workflow.
2026-01-07 17:02:24 +01:00
Bartosz Taudul
9774fdd017
System prompt reword.
2026-01-07 17:02:12 +01:00
Bartosz Taudul
14f0ed1cba
Add hard limit on context usage.
...
Big MoE models + big context size = slow prompt processing. Limit tool
reply size to a reasonable amount.
2026-01-07 16:31:48 +01:00
Bartosz Taudul
f00694fae0
Add optional context parameter to source_file calls.
2026-01-07 16:24:34 +01:00
Bartosz Taudul
3c82b63046
Allow optional parameters with a default value.
2026-01-07 16:24:10 +01:00
Bartosz Taudul
82d47db47d
Give LLM profiling instructions.
2026-01-07 16:13:00 +01:00
Ivan Molodetskikh
203f6cc508
timeline: Use fractional vertical scroll amount in calculation
...
Before this commit, vertical scroll was always discrete. At least on
Wayland, this caused extremely fast scrolling on touchpads (that send
lots of small axis events) and on mice with high-resolution wheels (that
also send lots of small axis events). After this commit, all of this
scrolling works correctly, at a speed matching regular wheels.
2026-01-05 19:46:37 +03:00
Ivan Molodetskikh
218265ad37
wayland: Adjust scroll scaling
...
Regular mice send a value of 15 for one wheel tick, not 8.
This currently doesn't change anything about vertical scrolling since
it's handled discretely, but that will change in the next commit.
2026-01-05 19:44:42 +03:00
Bartosz Taudul
189a4fc203
Glue together adjacent user messages.
...
In most cases this is not needed. However, some models, like Gemma3 or
Devstral require that user and assistant messages alternate.
The only case where this can happen in Tracy is when an attachment is added:
[
{
"role": "user",
"content": "<attachment>\n..."
},
{
"role": "user",
"content": "Tell me something about..."
}
]
It is trivial to glue these messages together. This is only done when sending
the data in the REST request, as the chat rendering logic expects these to be
separate and it would be too much work unnecessary work to do it "proper".
2026-01-05 13:45:50 +01:00
Bartosz Taudul
711771bc27
Replace narrow no-break space with no-break space in markdown text.
...
Nemotron 3 Nano outputs these spaces in the text. The currently used font
(or is it ImGui?) is not able to render this, and draws replacement character
instead.
2026-01-05 13:35:51 +01:00
Bartosz Taudul
1851743c9d
Include offset data in assembly attachments.
2026-01-04 23:16:17 +01:00
Bartosz Taudul
405778acf3
Add button for attaching complete assembly to LLM.
2026-01-04 23:10:44 +01:00
Bartosz Taudul
4d7670bac5
Extract LLM assembly range attaching to a separate function.
2026-01-04 23:04:16 +01:00
Bartosz Taudul
51cee7f07d
Inject sampled execution cost into assembly attachments.
2026-01-04 22:53:59 +01:00
Bartosz Taudul
14bdad425f
No need for nesting source information.
2026-01-04 22:18:15 +01:00
Bartosz Taudul
29f304554d
Explicitly say the frame and subframe numbers for each frame.
2026-01-04 21:56:19 +01:00
Bartosz Taudul
b79f3232b6
Properly update system prompt on first message.
2026-01-04 15:29:05 +01:00
Bartosz Taudul
3f84749b05
Implement system prompt updates without clearing chat.
2026-01-04 15:28:49 +01:00
Bartosz Taudul
d146714185
Merge pull request #1249 from siliceum/fix/lua-message
...
Fix `TracyLua.hpp` compilation
2026-01-04 01:28:11 +01:00
Clément Grégoire
e5d251a0be
Fix TracyLua.hpp build
2026-01-03 22:19:49 +01:00
Bartosz Taudul
9d5b380ea9
Implement markdown tables.
2026-01-03 21:22:38 +01:00
Bartosz Taudul
6f5fb3044a
Add separation between multiple assistant responses.
2026-01-02 12:40:22 +01:00
Bartosz Taudul
b6f03ef75d
Change assistant render order to reasoning -> content -> tool calls.
...
Previously reasoning and tool calls were rendered first, followed by
content. The tool call response was then rendered in the second reasoning
section. This made the tool call and response disjoint and, with the
current reasoning hiding logic, not visible at the same time.
2026-01-02 12:25:25 +01:00
Bartosz Taudul
b7a51d265c
Update system prompt.
2026-01-02 03:05:01 +01:00
Bartosz Taudul
6323f1642d
Refresh system prompt immediately before sending first message.
2026-01-01 17:36:46 +01:00
Bartosz Taudul
58dbde7b2f
Move system prompt update to a separate function.
2026-01-01 17:33:23 +01:00
Bartosz Taudul
c2431d5c17
Bump copyright year.
2026-01-01 02:12:05 +01:00
Bartosz Taudul
63a8b4cfb4
Use proper UTF ellipsis.
2025-12-31 18:28:57 +01:00
Bartosz Taudul
34faaeb314
Display short snippet of thinking process.
2025-12-31 18:22:13 +01:00
Bartosz Taudul
523d2fb8bf
Hide LLM thinking regions by default.
2025-12-31 17:47:12 +01:00
Bartosz Taudul
c01d5d5dd2
Don't create assistant entries with empty content.
2025-12-31 17:38:25 +01:00
Bartosz Taudul
09aa695048
Tool response labels now have unique ids in them.
2025-12-31 17:10:04 +01:00
Bartosz Taudul
3d9b228177
Allow disabling rendering of thinking regions.
2025-12-31 17:08:35 +01:00
Bartosz Taudul
96961f696b
Unify internet icon with the welcome window.
2025-12-31 16:51:05 +01:00
Bartosz Taudul
52179c4428
Hide LLM temperature setting in advanced options.
2025-12-31 15:58:58 +01:00
Bartosz Taudul
8520c79749
Set proper width of LLM input text fields.
2025-12-31 15:57:30 +01:00
Bartosz Taudul
50e6497390
Enable horizontal scroll bars in markdown code segments.
2025-12-31 15:35:59 +01:00
Bartosz Taudul
b17002a9c0
Update markdown manual.
2025-12-31 15:28:05 +01:00
Bartosz Taudul
d9e977ed42
Fix spacing when think scope is not the first item in reply.
2025-12-31 15:26:37 +01:00
Bartosz Taudul
217906b63b
Drop Ollama.
2025-12-31 15:20:28 +01:00
Bartosz Taudul
b4ff3b1c83
Do not pass AltGr to ImGui.
...
AltGr (right alt) is used to enter characters, at least with the Polish
keymap. ImGui uses alt to switch between some of the controls. Keep the
interaction on the (left) Alt key, and leave AltGr to do composition.
2025-12-31 14:00:01 +01:00
Bartosz Taudul
ad09ae8790
Use variables to inject data into system prompt.
2025-12-31 13:54:44 +01:00
Bartosz Taudul
5bc2e4b95c
Implement full user name retrieval on win32.
2025-12-30 15:17:08 +01:00
Bartosz Taudul
9016911a04
Fix clash with winapi define crap.
2025-12-30 14:49:23 +01:00
Bartosz Taudul
4661233904
Add missing include for UNLEN definition.
2025-12-30 14:48:17 +01:00
Bartosz Taudul
f6ba6cbd4e
Fix typo.
2025-12-30 14:48:11 +01:00
Bartosz Taudul
20b9d002dc
Check for empty full name.
2025-12-30 14:23:37 +01:00
Bartosz Taudul
94c1614416
Store full user name in trace info.
2025-12-30 14:19:40 +01:00
Bartosz Taudul
e1b426efe6
Pass full user name to LLM.
2025-12-30 14:17:10 +01:00
Bartosz Taudul
299b641173
Implement getting full user name.
2025-12-30 14:16:53 +01:00
Bartosz Taudul
6933780aed
Provide current user name to the LLM.
2025-12-30 13:52:33 +01:00
Bartosz Taudul
da85325686
Move user name retrieval to a common API.
2025-12-30 13:41:19 +01:00
Bartosz Taudul
6a26472278
Reformulate current time statement.
2025-12-30 13:26:23 +01:00
Bartosz Taudul
47806d00c8
Don't mention tool use.
2025-12-30 13:22:31 +01:00
Bartosz Taudul
fc35fa6a1d
Give instructions to use multiple tools.
2025-12-30 01:50:31 +01:00
Bartosz Taudul
e889fa17f3
Bump usearch to 2.22.0.
2025-12-29 20:46:48 +01:00
Bartosz Taudul
c996c67390
Take the thinking and tool use context into account in LLM chat rendering.
2025-12-29 20:43:28 +01:00
Bartosz Taudul
ac5dabbb94
Drop user debug role.
2025-12-29 20:43:28 +01:00
Bartosz Taudul
cd9585d713
Less verbose system prompt.
2025-12-29 20:43:28 +01:00
Bartosz Taudul
237e90fe64
Adapt context management to tool role usage.
2025-12-29 20:43:27 +01:00
Bartosz Taudul
7a43036e6e
Process tool calls table and respond with tool role.
2025-12-29 20:43:27 +01:00
Bartosz Taudul
26cf9591e7
Remove tool and thinking instructions from the system prompt.
2025-12-29 20:43:27 +01:00
Bartosz Taudul
167779392c
Include reasoning in context removal calculation.
...
The calculations here are so-so at best. The only reliable source of context
usage are the server responses.
2025-12-29 20:43:27 +01:00
Bartosz Taudul
fe567e5b42
Add support for streaming reasoning and tool call responses.
2025-12-29 20:43:27 +01:00
Bartosz Taudul
edffd4af81
Check for content being available when deleting user message.
2025-12-29 20:43:27 +01:00
Bartosz Taudul
f4f3c63755
Move time information to system prompt.
...
This also changes the context of the information a bit. Previously it was
the current time, now it is the time when the conversation started.
2025-12-29 20:43:27 +01:00
Bartosz Taudul
0a983cb24c
Check for "content" in error and attachment messages.
2025-12-29 20:43:27 +01:00
Bartosz Taudul
dedc50e848
Support adding messages completely defined by json.
2025-12-29 20:43:26 +01:00
Bartosz Taudul
c9443db053
Provide LLM tools using a standard API.
2025-12-29 20:43:26 +01:00
Bartosz Taudul
e7288604ea
Including ranges is not necessary.
2025-12-29 20:43:26 +01:00
Bartosz Taudul
79ee17d2f6
Inject current time into each user message.
...
This is not removed later on, mainly to enable caching of previous replies
(changing any earlier message would require processing everything that's
later), but also to give the LLM a sense of passing time.
2025-12-29 20:43:26 +01:00
Bartosz Taudul
9183aef645
Do not display system prompt injected into user messages.
2025-12-29 20:43:26 +01:00
Bartosz Taudul
0246cec0a7
System reminder is no longer in use.
2025-12-29 20:43:26 +01:00
Bartosz Taudul
d385328a16
Remove prefill of assistant messages.
...
Does not work with models implementing reasoning in a standarized way.
2025-12-29 20:43:26 +01:00
Bartosz Taudul
1708a88445
Remove AssistantDebug LLM role.
2025-12-29 20:43:25 +01:00
Bartosz Taudul
e2a86c1756
Merge pull request #1246 from slomp/slomp/logstring-fix
...
fix for TRACY_FIBERS
2025-12-29 20:37:59 +01:00
Marcos Slomp
12fa5aeb5e
fix for TRACY_FIBERS
2025-12-29 11:23:08 -08:00
Bartosz Taudul
6f9504c50a
Redo message filtering UI.
2025-12-28 16:56:09 +01:00
Bartosz Taudul
2a9ab49d13
Use constexpr for tables.
2025-12-28 16:26:19 +01:00
Bartosz Taudul
f649943e93
Fix text formatting.
2025-12-28 16:03:44 +01:00
Bartosz Taudul
f43b86e3b3
Merge pull request #1180 from siliceum/feature/logging
...
Support source/severity for messages
2025-12-28 15:17:03 +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
2df7c53c26
Keep tracy::Profiler::Message in the stack frames that need to be ignored
...
This may still appear in saved traces.
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
88c926d723
TracyMessage* Macros now use tracy::Profiler::LogString
2025-12-28 15:01:00 +01:00
Clément Grégoire
1a4cdef4b6
Add TracyLog to the test example
2025-12-28 15:01:00 +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
13261b9bdc
ETWErrorAction now uses message source and severity
2025-12-28 14:50:41 +01:00
Clément Grégoire
b2a7bb64ff
Add tooltip for message source filters
2025-12-28 14:50:41 +01:00
Clément Grégoire
3e99b0e7c2
Add severity name tooltip
2025-12-28 14:50:41 +01:00
Clément Grégoire
a0016be7ff
Allow filtering Messages by source and severity
2025-12-28 14:50:41 +01:00
Clément Grégoire
35a05aea62
Optimize message filtering a bit
...
Instead of decompressing and checking visibility of the thread all the time, cache the previous result.
2025-12-28 14:50:41 +01:00
Clément Grégoire
615db1a78c
Refactor message filtering
...
This now uses a single path for all cases (filter/threads changed, new message).
Note this no longer discriminates against `m_messageFilter.IsActive()` to skip the message filter. `ImGui::PassFilter already` early outs, and if performance is a concern we might as well start by caching the result of `VisibleMsgThread` which always does a hashmap lookup.
2025-12-28 14:50:41 +01:00
Clément Grégoire
1e61dc88de
Add source and severity to the server's MessageData + bump minor version for serialization
...
Note this does not change `sizeof(MessageData)` as there were 5 bytes left due to alignment. (now 3)
2025-12-28 14:50:38 +01:00
Clément Grégoire
f650b69591
tracy_force_inline for message metadata conversion
2025-12-28 14:44:40 +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
Clément Grégoire
9c57b229ea
Introduce tracy::TaggedUserlandAddress to pack metadata with pointers
2025-12-28 14:42:40 +01:00
Bartosz Taudul
a602127edd
Merge pull request #1242 from wvbbreu/cupti-driverapi-memtrace
...
Add CUDA Driver API memory operations to Tracy CUPTI profiling
2025-12-25 13:16:37 +01:00
Wiebe van Breukelen
66b23bb19a
Add CUDA Driver API memory operations to Tracy CUPTI profiling
...
Extended Tracy's CUPTI callback registration to track CUDA Driver API
memory operations that were previously missing.
Registration of these events allow users to trace applications that directly
call the Driver API.
2025-12-24 12:05:51 +01:00
Bartosz Taudul
1ad248892d
Fix time range limits button id overlap.
2025-12-23 14:03:54 +01:00
Bartosz Taudul
b63f605ec1
Merge pull request #1239 from slomp/slomp/macos-arm64-tsc
...
Apple Silicon / macOS: use ARM64 CNTVCT_EL0 instruction in GetTime()
2025-12-23 12:31:15 +01:00
Marcos Slomp
2d3fa2141e
removing parentheses from define
2025-12-22 12:22:26 -08:00
Marcos Slomp
f55bd056a9
switch to using ARM64's CNTVCT_EL0 instruction instead of std::chrono::high_resolution_clock on macOS
2025-12-22 11:43:51 -08:00
Bartosz Taudul
6cd7751479
Merge pull request #1236 from siliceum/fix/frame-image-race-condition
...
Fix frame image race condition + refactor
2025-12-18 16:36:41 +01:00
Bartosz Taudul
9ced780715
Merge pull request #1235 from alexandergunnarson/master
...
A few minor Windows-specific fixes
2025-12-18 16:34:18 +01:00
Clément Grégoire
0eb9f4acb6
Fix frame image race condition + refactor
...
- In the connection state, retrieve the FrameImage while owning the data lock.
- Use actual image data pointer as caching key instead of the address of ImageCache which may change during executation (unstable).
- Fixes scale Messages image tooltip scale.
- Free the connection image
2025-12-18 15:44:58 +01:00
Alex Gunnarson
921d426488
Add conditional compilation option for MSVC
2025-12-17 15:26:58 -07:00
Alex Gunnarson
90bc94f237
Use builtins before MSVC intrinsics
2025-12-17 15:24:04 -07:00
Alex Gunnarson
dffa18378b
Update IMAGEHLP_LINE to IMAGEHLP_LINE64
...
OfflineSymbolResolverDbgHelper.cpp uses IMAGEHLP_LINE but
SymGetLineFromAddr64 expects IMAGEHLP_LINE64. On 64-bit Windows these are typedef'd to the same thing, but on 32-bit they're different.
2025-12-17 15:19:00 -07:00
Bartosz Taudul
8b2019830a
Merge pull request #1234 from siliceum/fix/etw-vsync
...
VSyncDPC events do not have the Keyword::DxgKrnlPresent bit set, so using it as MatchAllKeyword excluded it
2025-12-17 18:07:42 +01:00
Bartosz Taudul
2c19b82d72
Merge pull request #1233 from slomp/slomp/etw-happiness
...
Ensure all ETW StackWalk requests are satisfied
2025-12-17 18:07:26 +01:00
Clément Grégoire
d59e6cdfad
VSyncDPC events do not have the Keyword::DxgKrnlPresent bit set, so using it as MatchAllKeyword excluded it
2025-12-17 17:45:52 +01:00
Marcos Slomp
4a6c75d8f8
ensure all stackwalk requests are satisfied
2025-12-17 08:03:34 -08:00
Bartosz Taudul
3ac8242d72
Merge pull request #1227 from WangFengtu1996/master
...
fixbug build cuda demo error
2025-12-17 16:43:27 +01:00
Fengtu Wang
4745db1553
Fix include statement for Tracy.hpp
2025-12-17 09:47:19 +08:00
Bartosz Taudul
3258599899
Merge pull request #1229 from slomp/slomp/etw-error-check-patch
...
ETW initialization: more explicit error check
2025-12-17 00:26:00 +01:00
Marcos Slomp
db745611c4
more explicit error check
2025-12-16 13:38:42 -08:00
Bartosz Taudul
1977beafe6
Merge pull request #1228 from siliceum/fix/test-memory-free
...
Fix unknown allocation message in debug due to alloc name litteral not pointing to the same location
2025-12-16 20:19:19 +01:00
Clément Grégoire
16558f2915
Fix unknown allocation message in debug due to alloc name litteral not pointing to the same location
2025-12-16 19:49:08 +01:00
Bartosz Taudul
7976e6ab0b
Merge pull request #1213 from slomp/slomp/etw-refactor
...
Refactoring ETW kernel session
2025-12-16 18:59:56 +01:00
Marcos Slomp
2403438bd9
error flow control for VSync tracing
2025-12-16 09:11:11 -08:00
Marcos Slomp
bb3b5b6a4f
reuse StopSession
2025-12-16 09:10:19 -08:00
Fengtu Wang
d2ffc9b9c6
fixbug build cuda demo error
...
1. fix bug build error can not find head file `#include <tracy/Tracy.hpp>`
2. when not enable TRACY_ENABLE macro, build error can not find `tracy::CUDACtx` type
2025-12-16 18:32:10 +08:00
Marcos Slomp
a0092a793a
abandoning the private kernel session for now
2025-12-15 16:21:42 -08:00
Marcos Slomp
c0ac36918a
adding interfaces for singleton kernel logger session, and regular user sessions
2025-12-15 16:20:57 -08:00
Marcos Slomp
22d2b7407f
emit ETW errors in english
2025-12-15 16:19:45 -08:00
Bartosz Taudul
0e3b3c57fc
Merge pull request #1223 from siliceum/fix/fix-example-alloc-tracking
...
Test: Fix unknown allocation message in debug due to arena name litteral not pointing to the same location
2025-12-12 16:55:31 +01:00
Clément Grégoire
9c66d27777
Test: Fix unknown allocation message in debug due to arena name litteral not pointing to the same location
2025-12-12 16:40:14 +01:00
Bartosz Taudul
a7c6b7f02a
Merge pull request #1221 from martymichal/wip/martymichal/fix-atomic-thread-init
...
public/client: Correctly initialize atomic thread reference
2025-12-12 12:21:34 +01:00
Bartosz Taudul
f1efafe825
Do not show external frames in DrawCallstackCalls().
2025-12-12 01:23:36 +01:00
Bartosz Taudul
4fe1e00696
IsFrameExternal() can be const.
2025-12-12 01:23:19 +01:00
Bartosz Taudul
49ab593247
Change DrawCallstackCalls() limit logic.
2025-12-12 01:16:14 +01:00
Bartosz Taudul
05cceee0df
Release 0.13.1.
2025-12-11 23:46:02 +01:00
Marcos Slomp
cc7790af04
add check to determine if provider has already been enabled by other sessions
2025-12-10 13:50:28 -08:00
Marcos Slomp
aaa695611b
code formatting
2025-12-10 13:42:43 -08:00
Marcos Slomp
1be738ba10
expanding Tracy macros
2025-12-08 11:30:03 -08:00
Marcos Slomp
86a6b9b671
add admin check (and don't log it if it fails).
2025-12-08 08:40:26 -08: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
Marcos Slomp
04c32562a0
adressing review comments
2025-12-07 15:51:07 -08:00
Bartosz Taudul
16bac5f807
Merge pull request #1220 from Lgt2x/imgui-x11
...
Link imgui against X11 libs
2025-12-06 01:23:47 +01:00
Louis Gombert
92ca07bb31
Link imgui against X11 libs
...
Imgui-docking >=v1.92.3 GLFW back-end requires linking against x11 libraries. This solves link failures when building tracy with the LEGACY option turned on.
2025-12-05 23:49:16 +01:00
Marcos Slomp
d363ddde2a
missing events
2025-12-05 12:46:27 -08:00
Marcos Slomp
7b5de9e2b9
relocating ETW events (structs), and adding checks and comments
2025-12-05 12:03:57 -08:00
Marcos Slomp
16724b39c5
handle ProcessTrace pending (draining/flushing) condition
2025-12-05 09:49:11 -08:00
Bartosz Taudul
10500ed1f0
Merge pull request #1218 from mtreglia-gpsw/libcurl-fixed-version
...
Required lib-curl version to 8.17.0 in vendor.cmake pkg-config
2025-12-05 11:14:24 +01:00
Marco Treglia
951fc1b071
required pkg-config lib-curl v7.87.0 in the profiler
...
Resolving compiling issue when building with previous version of lib-curl.
If locally is present an older version of lib-curl the profiler build fails with:
```
29 | curl_easy_setopt( curl, CURLOPT_CA_CACHE_TIMEOUT, 604800L );
| ^~~~~~~~~~~~~~~~~~~~~~~~
| CURLOPT_DNS_CACHE_TIMEOUT
include/curl/curl.h:3109:68: note: expanded from macro 'curl_easy_setopt'
3109 | #define curl_easy_setopt(handle,opt,param) curl_easy_setopt(handle,opt,param)
| ^
include/curl/curl.h:1398:11: note: 'CURLOPT_DNS_CACHE_TIMEOUT' declared here
1398 | CURLOPT(CURLOPT_DNS_CACHE_TIMEOUT, CURLOPTTYPE_LONG, 92),
| ^
tracy/profiler/src/profiler/TracyLlmApi.cpp:144:46: error: use of undeclared identifier 'CURL_WRITEFUNC_ERROR'; did you mean 'CURLE_WRITE_ERROR'?
144 | if( !v.callback( json ) ) return CURL_WRITEFUNC_ERROR;
| ^~~~~~~~~~~~~~~~~~~~
| CURLE_WRITE_ERROR
include/curl/curl.h:524:3: note: 'CURLE_WRITE_ERROR' declared here
524 | CURLE_WRITE_ERROR, /* 23 */
| ^
2 errors generated.
```
Both CURLOPT_CA_CACHE_TIMEOUT and CURL_WRITEFUNC_ERROR were added in
https://curl.se/ch/7.87.0.html
Now checking the version will avoid such issues:
-- Checking for module 'libcurl>=7.87.0'
-- Package dependency requirement 'libcurl >= 7.87.0' could not be satisfied.
Package 'libcurl' has version '7.84.0', required version is '>= 7.87.0'
-- CPM: Adding package libcurl@ (curl-8_17_0 to ...)
2025-12-05 10:51:29 +01:00
Marcos Slomp
9bb2be27cf
details
2025-12-03 14:55:08 -08:00
Marcos Slomp
f0b8658346
splitting event consumer
2025-12-03 14:55:08 -08:00
Marcos Slomp
f6f9ec49d8
comments about the choice of default arguments
2025-12-03 14:55:08 -08:00
Marcos Slomp
bca011966d
code formatting
2025-12-03 14:55:08 -08:00
Marcos Slomp
e5ca27966e
ASCII
2025-12-03 14:55:08 -08:00
Marcos Slomp
d1f63dbca8
notify that events have been lost
2025-12-03 14:55:08 -08:00
Marcos Slomp
95658d532e
isolating error actions
2025-12-03 14:55:08 -08:00
Marcos Slomp
f6965c62a9
reminder
2025-12-03 14:55:07 -08:00
Marcos Slomp
0270177a85
typo
2025-12-03 14:55:07 -08:00
Marcos Slomp
16e2f9f3bb
Using ASCII version of the ETW API
2025-12-03 14:55:07 -08:00
Marcos Slomp
0adb0dbc57
refactoring ETW kernel session
2025-12-03 14:55:07 -08: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
Bartosz Taudul
52bfac4243
Merge pull request #1214 from tmcdonell/feat/ignore-memory-faults
...
feat: Add build option to ignore memory free faults
2025-12-02 17:32:06 +01: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
29e8bbbbb2
Add user manual viewer.
2025-12-01 00:29:42 +01:00
Bartosz Taudul
6489874327
Extract links from manual section titles.
2025-11-30 22:05:20 +01:00
Bartosz Taudul
8c8cb8899f
Store manual chunk level.
2025-11-30 21:54:19 +01:00
Bartosz Taudul
eec5444d84
Fix invalid chapter names for unnumbered manual sections.
2025-11-30 02:39:16 +01:00
Bartosz Taudul
154712bc81
Keep user manual chunks in a separate object.
...
This makes the user manual available outside of the LLM context.
The code is also more readable, as splitting the manual into sections and
splitting section content into chunks fit for embeddings is now separated.
A bug has been fixed, where the above splits were mixed up for the last
manual section, producing invalid data.
The unembedded manual contents are no longer held in the memory. The only
use case for this was to calculate the manual contents hash. The hash is
now precalculated and cached.
2025-11-29 20:16:00 +01:00
Bartosz Taudul
b74cac005d
Retrieve manual chunk only once.
2025-11-29 19:56:07 +01:00
Bartosz Taudul
9aa78b224c
Bump imgui to 1.92.5-docking.
2025-11-29 17:40:43 +01:00
Bartosz Taudul
3ddb7f6fd3
Merge pull request #1209 from ruifig/truncated_mean
...
Added the --truncated_mean parameter to csvexport
2025-11-26 21:03:08 +01:00
Rui Figueira
f6a6947987
Added the --truncated_mean paramter to csvexport
2025-11-26 16:11:35 +00:00
Bartosz Taudul
2acf93ac68
Merge pull request #1208 from foxtran/fix/Apple-15
...
Fix build for AppleClang 15
2025-11-26 15:14:21 +01:00
Igor S. Gerasimov
ade4182214
Tracy can not be compiled for too old target
2025-11-26 14:14:08 +01:00
Igor S. Gerasimov
de3cca3b97
Construct full type: std::vector<tracy::TracyLlmTools::ManualChunk>::emplace_back<std::string> is not available
2025-11-26 13:34:17 +01:00
Igor S. Gerasimov
e612c2674d
Use std::string instead of std::format: Apple Clang 15 does not support it
2025-11-26 13:32:02 +01:00
Bartosz Taudul
be23d9354a
Handle Lost_Event in Vsync callback on Windows.
2025-11-22 15:39:52 +01:00
Bartosz Taudul
a11c3d4236
Merge pull request #1199 from deralmas/fix-error-suppression-for-real
...
Fix error suppression macro
2025-11-15 22:27:41 +01:00
Dery Almas
e1110d6c58
Fix error suppression macro
...
My previous fix triggered another issue: apparently at least GCC expects
the `_Pragma` operator to be placed in its own statement (after a
semicolon). The current macro simply dumped the expression and the
_Pragma together, triggering an error. Putting a semicolon after `Expr`
fixes the issue (actually double-checked after a `git clean -fdx`),
although slightly changing the API (the semicolon after the wrapped
macros is now optional).
2025-11-15 21:38:08 +01:00
Bartosz Taudul
36d3f1e0ab
Merge pull request #1198 from deralmas/fix-error-suppression
...
Fix shadow error suppression on GCC
2025-11-15 20:25:36 +01:00
Dery Almas
458d9ee89e
Fix shadow error suppression on GCC
...
It looks like the actual macro defined by GCC is `__GNUC__`.
From my testing, `__GNU__` does not seem to be defined neither on my
musl machine nor a Fedora Linux VM. I have no idea if it's a typo or set
by specific libraries, but testing for `__GNUC__` actually suppresses
shadowing errors on my end.
2025-11-15 20:07:11 +01:00
Bartosz Taudul
f79033efd0
Bump curl to 8.17.0.
2025-11-14 17:07:32 +01:00
Bartosz Taudul
a257ccc3d0
Bump usearch to 2.21.3.
2025-11-14 17:05:56 +01:00
Bartosz Taudul
a1ab2fe91e
Bump ppqsort to 1.0.6.
2025-11-14 17:00:29 +01:00
Bartosz Taudul
879ddf881c
Bump imgui to 1.92.4-docking.
2025-11-14 16:59:14 +01:00
Bartosz Taudul
226fa7eee5
Bump freetype to 2.14.1.
2025-11-14 16:53:41 +01:00
Bartosz Taudul
75e3073b2a
Bump capstone to 6.0.0-Alpha5.
2025-11-14 16:51:58 +01:00
Bartosz Taudul
5f4cccaa00
Use proper API to read /proc/mounts.
2025-11-13 19:40:28 +01:00
Bartosz Taudul
d70c7fb4c3
Merge pull request #1197 from nagisa/fix-debuginfod-signature
...
fix: GetDebugInfoDescriptor signature
2025-11-13 18:31:01 +01:00
Simonas Kazlauskas
10b5f0d878
fix: GetDebugInfoDescriptor signature
2025-11-13 19:19:52 +02:00
Bartosz Taudul
89f68babd2
Android user name may be longer than _POSIX_LOGIN_NAME_MAX.
2025-11-13 12:28:57 +01:00
Bartosz Taudul
0a64c7217f
Merge pull request #1194 from ZeWaka/zewaka/fix-cpuid-parsing
...
fix CPUID parsing in TraceInfo
2025-11-13 12:24:52 +01:00
ZeWaka
e38ab2260d
fix CPUID parsing in TraceInfo
...
the extended model was 4 bytes too low, as well as the extended family
the extended family was also not properly masked and the reserved space bled into it
fixes #1193
2025-11-13 01:15:45 -08:00
Bartosz Taudul
e6b9ea4609
Release 0.13.0.
2025-11-11 16:31:54 +01:00
Bartosz Taudul
0cc8e29eb1
Fix copy pasta.
2025-11-06 12:29:25 +01:00
Bartosz Taudul
9a27779d56
TRACY_CALLSTACK is not boolean.
2025-11-03 16:31:16 +01:00
Bartosz Taudul
d413e2bb51
Merge pull request #1186 from KovalevDima/denerate-pc-for-tracy
...
Generate pkgconf file for tracy downstream users
2025-11-02 18:43:00 +01:00
KovalevDima
da5547691a
Generate pkgconf file for tracy
2025-11-02 20:08:03 +03:00
Bartosz Taudul
d7e1923a68
Fix nullptr deref.
2025-10-27 22:03:58 +01:00
Bartosz Taudul
b762dc2a82
Retrieve tracefs mount path.
2025-10-25 21:06:37 +02:00
Bartosz Taudul
3eda01d55f
Merge pull request #1181 from mmcgill/1150-defer-gpu-ctx-events-in-c-serial-api
...
Defer GPU context events in serial C API
2025-10-25 16:42:59 +02: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
6e3acecf54
Proper rounding for window size with fractional scaling.
...
Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com >
2025-10-24 22:09:38 +02:00
Bartosz Taudul
7b8d868bbd
Merge pull request #1120 from siliceum/refactor/unify-module-caches
...
Unify module caches
2025-10-24 15:44:50 +02:00
Clément Grégoire
8ccc76c66b
Use CopyStringFast in FormatImageName
2025-10-24 13:10:23 +02:00
Clément Grégoire
fe516e3596
IsKernelAddress helper
2025-10-24 13:10:23 +02:00
Clément Grégoire
2bdefc2aa3
Move drivers and modules caching to their own functions
2025-10-24 13:10:23 +02:00
Clément Grégoire
903cde50d9
Replace windows caches with ImageCache
...
- Introduce both s_imageCache and s_krnlCache on all platforms, even if unused (will be reused later to unify platforms handling)
- This means that what userland images that used to be unsorted are now sorted
2025-10-24 13:10:23 +02:00
Clément Grégoire
e1e9fb680d
Rename TRACY_USE_IMAGE_CACHE to TRACY_HAS_DL_ITERATE_PHDR_TO_REFRESH_IMAGE_CACHE
...
Windows is already using a cache, and the only platforms that won't have one for now are those without dl_iterate_phdr.
2025-10-24 13:10:23 +02:00
Clément Grégoire
3b5b32d307
Replace hardcoded string duplication by CopyStringFast
...
This can be CopyStringFast since we allocated the cache on the same thread.
2025-10-24 13:10:22 +02:00
Clément Grégoire
32f94a05cb
Support adding new entries and keeping the image cache sorted
...
Image cache will remain potentially unsorted until first access or `Sort` is called explicitely.
2025-10-24 12:54:35 +02:00
Clément Grégoire
0b814a2532
Split ImageCache to seperate platform specific so that it can be used on other platforms
2025-10-24 12:50:27 +02:00
Clément Grégoire
aa68c31780
Add path to ImageEntry in prevision of replacing KernelDriver use + add DestroyImageEntry for ImageEntry cleanup
2025-10-24 12:50:26 +02:00
Bartosz Taudul
32cc0e5121
Take scale into account when creating window.
2025-10-23 19:30:26 +02:00
Bartosz Taudul
7428defab6
Don't attach wayland surface before acking configure.
2025-10-21 22:55:19 +02: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
22dc5b1ca7
Merge pull request #1176 from redthing1/pr/fix/macos-dock-icon
...
fix window icon/dock integration with objc on macos
2025-10-17 11:30:32 +02:00
redthing1
2625468615
remove (void) unused markers
2025-10-16 20:22:17 -07:00
redthing1
9580ad46c3
fix window icon/dock integration with objc on macos
2025-10-16 14:00:18 -07:00
Clément Grégoire
385f72f9dc
Rename ImageCache::Contains to ContainsImage
...
The name was a bit misleading as it could be mistaken to mean "The cache contains the address" and not as "has an image with this start address". ie: that it could be mistaken to do GetImageForAddress( startAddress ) != nullptr.
2025-10-11 14:13:33 +02:00
Clément Grégoire
12026dae5b
Make ImageEntry m_startAddress/m_endAddress uint64_t as it will later be used in server, and thus not pointing to current process memory
2025-10-11 14:10:18 +02:00
Clément Grégoire
9665f7ac42
Move ImageEntry to header in prevision of sharing it with other CPP files in the future
2025-10-11 13:52:03 +02:00
Bartosz Taudul
027bc04279
Merge pull request #1168 from siliceum/fix/unintialized-pending-counts
...
Fix uninitialized Worker::m_pending* loaded traces.
2025-10-08 12:50:49 +02:00
Clément Grégoire
255f465a8f
Fix uninitialized Worker::m_pending* loaded traces.
...
This was causing issues in the Infos -> Trace Statistics window as `GetCallstackFrameCount` uses `m_pendingCallstackFrames`. Just in case, init those all those variables where declared instead of constructor.
2025-10-08 07:47:51 +02:00
Bartosz Taudul
b6191ceddb
Merge pull request #1160 from Voultapher/suppress-variable-shadowing-warnings
...
Suppress variable shadowing warnings
2025-10-07 19:23:41 +02:00
Lukas Bergdoll
5002c045e2
Make variable shadowing warning suppression optional
2025-10-03 11:57:18 +02:00
Bartosz Taudul
863bcc4635
Merge pull request #1161 from siliceum/doc/gpu-zone-and-ondemand
...
Document a classic mistake with Tracy's C GPU Zones API and `TRACY_ON_DEMAND`
2025-09-30 17:36:09 +02:00
Clément Grégoire
f5b3711163
Document a classic mistake with Tracy's C GPU Zones API and TRACY_ON_DEMAND
2025-09-30 15:08:42 +02:00
Lukas Bergdoll
abd7c4f317
Suppress variable shadowing warnings
...
This disables the warnings for MSVC, GCC and Clang in the ZoneScopedXX
macros.
The warnings produced are both a false positive since they didn't find a
bug *and* they don't happen in user written code, so the user couldn't
even do much about it. The previous workaround of using ZoneNamedXXX is
a poor solution since the Zone(Text|Name|etc.) macros all rely on the
`___tracy_scoped_zone` name.
2025-09-29 18:58:22 +02:00
Bartosz Taudul
0a5aa506b6
Update markdown manual.
2025-09-16 22:34:16 +02:00
Bartosz Taudul
a52a2db95d
Merge pull request #1148 from siliceum/bugfix/cropper-display-issues
...
Fix#1147: Cropper now displays properly when docking windows
2025-09-11 18:44:36 +02:00
Bartosz Taudul
f998e3e2a9
Merge pull request #1151 from dpelle/make-ZoneNameF-less-error-prone
...
Make ZoneNameF() less error-prone by checking format against args
2025-09-11 12:30:03 +02:00
Bartosz Taudul
5cf408fc10
Cosmetics.
2025-09-11 00:57:22 +02:00
Bartosz Taudul
dcc46d2a72
Merge pull request #1149 from anderswk-ioi/master
...
Fix crash due to freeing elements of m_serialDequeue twice.
2025-09-11 00:56:50 +02:00
Dominique Pelle
5f36f3d2ec
Make ZoneNameF() less error-prone by checking format against args
...
`ZoneNameF(fmt, ...)` was error-prone: if the format is inconsistent
with arguments, the code compiled fine without errors or warnings.
Use gcc/clang `__attribute__((format(printf, fmt_idx, arg_idx)))`
function attribute, so that `ZoneNameF(fmt, ...)` can now check
at compilation time the consistency between the format and the
arguments.
See https://gcc.gnu.org/onlinedocs/gcc-3.1/gcc/Function-Attributes.html
2025-09-10 20:26:57 +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
Clément Grégoire
4be2e88292
Rework the way the cropper computes its sizes and position
...
- No long assumes timelines are on the left of the window
- Derive circle size from cropper width
2025-09-09 16:15:36 +02:00
Clément Grégoire
d61e4aee6c
Fix cropper line position and draw order
...
No longer using the `ForegroundDrawList` by simply moving draw after zones.
2025-09-09 16:13:04 +02:00
Clément Grégoire
2396733f89
Fix timeline cropper triggered on hover of other windows
2025-09-09 14:29:50 +02:00
Bartosz Taudul
6e214cab0a
Merge pull request #1146 from whouishere/fix-non-glibc-stat64
...
Fix usage of stat64 on non-glibc Linux
2025-09-05 16:50:15 +02:00
whouishere
a755cfab78
Fix usage of stat64 on non-glibc Linux
2025-09-05 10:22:02 -03:00
Bartosz Taudul
981717f3ef
Workaround libwayland regression.
...
ddd348da7e
2025-08-25 17:08:21 +02:00
Bartosz Taudul
67ba5b7727
Fix possible crash.
2025-08-23 21:22:32 +02:00
Bartosz Taudul
69836f3166
Merge pull request #1108 from siliceum/feature/thread-cropping
...
Allow to limit zone depth
2025-08-22 18:12:14 +02:00
Bartosz Taudul
47d0654bc9
Merge pull request #1140 from mcourteaux/config-ghostzones
...
Configuration of defaults.
2025-08-22 18:07:32 +02:00
Martijn Courteaux
62e062ee82
Fix highlight on the asteriks label.
2025-08-22 16:08:23 +02:00
Martijn Courteaux
fbcd3c1ae2
Make markers subtle, and only clear when you hover the save-defaults button.
2025-08-22 13:05:21 +02:00
Clément Grégoire
a0ab47efad
Fix lambda indent
2025-08-22 10:54:44 +02:00
Martijn Courteaux
ae523c9bbf
Explain that you can also reset the values by deleting the config file.
2025-08-21 21:15:36 +02:00
Martijn Courteaux
278251f483
I always forget the manual.
2025-08-21 18:03:06 +02:00
Martijn Courteaux
039ea797fc
Improve wording.
2025-08-21 17:58:00 +02:00
Martijn Courteaux
8e72e2bb78
Default markers * to indicate which options are saved in the defaults.
2025-08-20 16:26:21 +02:00
Martijn Courteaux
ba178ce3d3
Add more Timeline options to the defaults.
2025-08-20 15:46:24 +02:00
Martijn Courteaux
577e7a3074
feat(config): Button to save ViewData options to the defaults in TracyConfig.
2025-08-20 15:32:04 +02:00
Martijn Courteaux
ebc31f25e3
feat(config): Add default value for ghostZones.
2025-08-20 14:46:03 +02:00
Bartosz Taudul
88a6378fff
Merge pull request #1137 from mjopenglsdl/fix-on-demand
...
Add connection check when TRACY_ON_DEMAND for EnterFiber and LeaveFiber
2025-08-15 17:21:38 +02:00
Minjie
c545b34f68
Add connection check when TRACY_ON_DEMAND for EnterFiber and LeaveFiber
2025-08-15 22:36:45 +08:00
Bartosz Taudul
650541f280
Merge pull request #1136 from moritz-h/python-docs
...
Update Python docs
2025-08-14 19:39:01 +02:00
Moritz Heinemann
18e75668a9
Update markdown manual.
2025-08-14 19:36:04 +02:00
Moritz Heinemann
a8e60df334
Update Python docs
2025-08-14 19:28:38 +02:00
Bartosz Taudul
8bea64a55c
Merge pull request #1134 from moritz-h/python-package
...
Refactor Python bindings build
2025-08-13 16:24:46 +02:00
Clément Grégoire
ba5a4b7ad1
Limit cropper display zone to window and only take margin into account when active, to avoid flickering when hovering
2025-08-12 18:07:24 +02:00
Clément Grégoire
11e3295275
Implement margin for text only. Unify text drawing for zone (als fixing missing clamp for the missing frame case)
2025-08-12 18:07:22 +02:00
Moritz Heinemann
0b57a37ebb
Refactor python build system
2025-08-12 18:03:28 +02:00
Bartosz Taudul
0721561c54
Merge pull request #1124 from AnyOldName3/config-specific-lib-dir
...
Use config-specific lib directory so files don't overwrite each other
2025-08-06 17:30:03 +02:00
Bartosz Taudul
680f12463d
Merge pull request #1130 from PewPewCrit/libbacktrace-macosSequoia-fix
...
Support for new DWARF sections used in macOS Sequoia
2025-08-04 13:25:01 +02:00
PewPewCrit
11c9e3fa35
libbacktrace: recognize new Mach-O DWARF sections
...
Reference: libbacktrace@d48f84034ce3e53e501d10593710d025cb1121db
2025-08-04 14:17:18 +03:00
Bartosz Taudul
c168b308c7
Merge pull request #1129 from alariq/docs-fix-1128
...
manual upate: OpenCL macro name fix
2025-08-04 11:25:07 +02:00
sebi
5ee82874c6
manual: OpenCL macro name fix
2025-08-04 10:17:30 +03:00
AnyOldName3
0da827ba34
Don't use separate directory for Release library
2025-08-03 14:46:13 +01:00
Bartosz Taudul
8e388d6d4e
Merge pull request #1126 from slomp/slomp/sampling-toggle
...
Option to manually control sampling profiling
2025-08-02 16:12:34 +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
1393278afd
Merge pull request #1125 from slomp/slomp/external-names-win32
...
Speeding up ExternalName queries (on Windows)
2025-08-01 22:40:14 +02:00
Marcos Slomp
b4b5f46d7b
speeding up ExternalName queries
2025-08-01 12:53:56 -07:00
Bartosz Taudul
3bff910a27
Merge pull request #1121 from siliceum/feature/faster-module-caching-windows
...
Add faster module caching fallback by using GetModuleHandleExA
2025-08-01 20:44:19 +02:00
Bartosz Taudul
93f88c20e3
Merge pull request #1116 from siliceum/bugfix/clipboard-button
...
Fix clipboard button and add code preview in Zone Info
2025-08-01 20:30:38 +02:00
AnyOldName3
e4fcc1fdea
Use config-specific lib dir so files don't overwrite each other
2025-08-01 00:23:47 +01:00
Gabriel Bon
1f6531f46d
Add faster module caching fallback by using GetModuleHandleExA
2025-07-31 15:06:15 +02:00
Bartosz Taudul
be7b116a65
Merge pull request #1118 from siliceum/refactor/libbacktrace-integration
...
Refactor libbacktrace usage with TRACY_USE_LIBBACKTRACE
2025-07-31 12:28:38 +02:00
Clément Grégoire
8c06fec09e
Refactor libbacktrace usage with TRACY_USE_LIBBACKTRACE
2025-07-31 10:41:37 +02:00
Clément Grégoire
effb5fbed5
Allow to chhange clipboard button font + center-align based on previous font
2025-07-31 00:20:56 +02:00
Bartosz Taudul
23be6a0789
Split too long line.
2025-07-30 23:40:01 +02:00
Bartosz Taudul
9bb5f8ec64
Merge pull request #1117 from siliceum/bugfix/displaysamplesevenwithoutzones
...
If we have samples in view and they are displayed, timeline should be displayed even without zones
2025-07-30 23:35:54 +02:00
Bartosz Taudul
0a9f3acb53
Merge pull request #1113 from siliceum/refine-clang-format
...
Refine .clang-format
2025-07-30 20:39:50 +02:00
Clément Grégoire
3751dc88c3
If we have samples in view and they are displayed, timeline should be displayed even without zones
2025-07-30 17:17:40 +02:00
Antoine Mura
301298d6f7
Fix clipboard button and add code preview in Zone Info
2025-07-30 16:07:56 +02:00
Bartosz Taudul
bd3660ed9f
Merge pull request #1115 from akoylasar/master
...
Add p99 and p99.9 stats
2025-07-30 13:08:16 +02:00
Fouad Valadbeigi
9e754e61bc
Add p99 and p99.9 stats
2025-07-30 02:27:20 +02:00
Clément Grégoire
a4d73cf0b3
Refine .clang-format
2025-07-27 21:18:57 +02:00
Bartosz Taudul
9d3c02686f
Merge pull request #1096 from siliceum/feature/condition-variable-main-thread
...
Add lock struct with condition variable to main thread
2025-07-27 12:16:48 +02:00
Clément Grégoire
5bf53c1eb7
Fix formatting issues
2025-07-27 11:11:21 +02:00
Antoine Mura
80126ed1e0
Add lock struct with condition variable to main thread
2025-07-27 11:05:45 +02:00
Clément Grégoire
d1bb306dae
Fix last cropper handle click
2025-07-23 15:33:44 +02:00
Clément Grégoire
c6e1bd40cd
Auto-hide cropper when not actively limiting zones in view or mouse isn't hovering it
2025-07-23 15:33:20 +02:00
Bartosz Taudul
6f3a023df8
Update markdown manual.
2025-07-23 00:57:26 +02:00
Clément Grégoire
6f0f26ebcc
View::DrawThread now properly accounts for the additional margin caused by cropper
2025-07-22 22:07:53 +02:00
Clément Grégoire
9c3629ab28
Revert margin modifications
2025-07-22 22:02:47 +02:00
Clément Grégoire
479b714b4b
Add zone depth limit documentation
2025-07-22 20:51:06 +02:00
Bartosz Taudul
840a74172e
Update manual.
2025-07-22 20:40:58 +02:00
Bartosz Taudul
3c1c444a15
Unbreak loading traces from previous versions.
2025-07-22 20:18:55 +02:00
Clément Grégoire
ed569b20c2
Update colors to be more discrete
2025-07-22 20:04:40 +02:00
Clément Grégoire
ed6a6d1e92
Fix cropper positions and sizes. Display hint when cropped. Allow depth to be lower than limit.
2025-07-22 20:02:08 +02:00
Antoine Mura
f32d4e4b44
Adjust aligment
2025-07-22 16:37:53 +02: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
Antoine Mura
d18f08fb9e
Add Thread Timeline Cropping
2025-07-22 09:22:38 +02:00
Eric Eaton
1639598d62
Update documentation
...
This provides some instructions and tips for the manual. Also:
* Made the calibration feature a CMake option
* Cleaned up some minor code issues
* Fixed an issue with the calibration
* Incremented patch number
2025-07-21 15:30:42 -07:00
Bartosz Taudul
dd4db35b05
Merge pull request #1106 from nyorain/master
...
Allow to access wrapped Lockable/SharedLockable object
2025-07-20 18:44:33 +02:00
nyorain
02295cbfeb
Allow to access wrapped Lockable object
2025-07-20 18:26:22 +02:00
Bartosz Taudul
8512a1c925
Merge pull request #1099 from pkraif/master
...
Add GDK platform support
2025-07-19 14:07:50 +02:00
Bartosz Taudul
1949fd765c
Merge pull request #1104 from siliceum/bugfix/embed-dependency
...
Fix embed dependency
2025-07-18 20:07:42 +02:00
Clément Grégoire
3f5d07ebd7
Fix embed dependency
...
add_custom_command DEPENDS can only see the output of other commands or targets names, not the targets installation through ExternalProject_Add.
Add the `embed` target (created by `ExternalProject_Add`) as a dependency for commands using the utility
2025-07-18 15:23:18 +02:00
Patrik Kraif
a642b84add
Add missing TracyWinFamily header include
2025-07-18 10:10:02 +02:00
Bartosz Taudul
2f17e33851
Prevent duplicate callstack frame queries.
...
Callstack frames will now have nullptr as the value in the callstackFrameMap
map, as a way to signal that a query for given key is already pending.
Duplicate queries should no longer happen.
@slomp provided alternative implementation, which produced the following
results:
Queries made: 195,778
Duplicate queries skipped: 9,518,910
Co-authored-by: Marcos Slomp <slomp@adobe.com >
2025-07-18 01:16:46 +02:00
Bartosz Taudul
c704f909be
Move duplication check into QueryCallstackFrame() to make things clear.
2025-07-18 01:15:16 +02:00
Bartosz Taudul
c4a6cf3456
Use contains() to check if map contains element.
2025-07-18 00:45:26 +02:00
Bartosz Taudul
f578d14553
Extract callstack frame query to a separate function.
2025-07-18 00:33:09 +02:00
Bartosz Taudul
38ff7a6697
Make sure count is right.
2025-07-18 00:24:23 +02:00
Bartosz Taudul
320eb67581
Assume callstackFrameMap can store null ptrs.
2025-07-18 00:23:43 +02:00
Bartosz Taudul
ea661d0765
Cosmetics.
2025-07-18 00:19:09 +02:00
Eric Eaton
9caa91f06f
Move the annotations data to the GPU context
2025-07-16 16:02:54 -07:00
Patrik Kraif
dacd0fc63f
Fix header guard to match the new file name
2025-07-16 12:55:22 +02:00
Patrik Kraif
4a3713cca8
Add support for GDK
2025-07-16 12:51:16 +02:00
Bartosz Taudul
382b41bcce
Add example llama-swap configuration to the manual.
2025-07-15 14:32:49 +02:00
Bartosz Taudul
d9a1655f9a
Add information about CPU dies to topology section in the manual.
2025-07-15 14:04:21 +02:00
Eric Eaton
21a34c5a38
Fix windows build error
2025-07-14 12:58:47 -07:00
Bartosz Taudul
825e60e1d5
Workaround json parsing problems.
...
The true issue is probably related to bad threading, but it needs to be
properly found.
2025-07-13 19:09:43 +02:00
Bartosz Taudul
24b43e9e0a
Update manual.
2025-07-13 19:09:37 +02:00
Bartosz Taudul
0772f1f952
Add predefined queries for callstacks.
2025-07-13 19:09:17 +02:00
Bartosz Taudul
b44822899e
Add wrapper for sending LLM queries to TracyView.
2025-07-13 18:52:20 +02:00
Bartosz Taudul
39c121ce20
Make AddMessage and QueueSendMessage public in TracyLlm.
2025-07-13 18:52:03 +02:00
Bartosz Taudul
64b61fee03
Extract function for getting callstack data as json.
2025-07-13 18:40:42 +02:00
Bartosz Taudul
adefaff0cc
RasterizerDensity is obsolete now.
2025-07-13 12:49:23 +02:00
Bartosz Taudul
c7c20730cf
Fix Worker name conflict.
2025-07-13 01:27:56 +02:00
Bartosz Taudul
3d00f3eda1
Disable LLM on emscripten.
2025-07-13 01:00:08 +02:00
Bartosz Taudul
d1e3d1abb5
Proper support for markdown header font sizes (including style changes).
2025-07-13 00:25:14 +02:00
Bartosz Taudul
9ee6af33a4
Format achievements intro message with markdown.
2025-07-12 23:54:49 +02:00
Bartosz Taudul
70d6d7e756
Fully externalize markdown printer.
2025-07-12 23:42:21 +02:00
Bartosz Taudul
75cfc67972
Add robot icon to default assist view.
2025-07-12 23:28:12 +02:00
Bartosz Taudul
3d183e2da1
Markdown renderer is not strictly an LLM functionality.
2025-07-12 23:26:55 +02:00
Bartosz Taudul
b12253e706
Update CPU data window column labels in the manual.
2025-07-12 20:28:08 +02:00
Bartosz Taudul
00bc533d4d
Improve code block style.
2025-07-12 20:08:26 +02:00
Bartosz Taudul
f098102898
Parse source code blocks in markdown.
2025-07-12 20:04:58 +02:00
Bartosz Taudul
5833f0d734
Add SourceContents::Parse() with length argument.
2025-07-12 20:01:27 +02:00
Bartosz Taudul
d4094f45cc
Replace all deprecated ImGui functionality.
2025-07-12 19:50:37 +02:00
Bartosz Taudul
78c284cd8f
Remove font glyph ranges.
2025-07-12 18:42:08 +02:00
Bartosz Taudul
fdeb33c566
Bump usearch, curl.
2025-07-12 18:27:43 +02:00
Bartosz Taudul
89f246dc07
Bump emscripten SDK to 4.0.10.
2025-07-12 18:20:28 +02:00
Bartosz Taudul
b58388316a
Fix emscripten build.
2025-07-12 18:19:56 +02:00
Bartosz Taudul
e77240a47d
Workaround broken md4c CMake configuration.
2025-07-12 18:09:31 +02:00
Bartosz Taudul
4a25079996
Disable demo window in release build.
...
Workarounds ImGui issue 8796.
2025-07-12 17:43:53 +02:00
Bartosz Taudul
bd0591c4d5
Bump ImGui to 1.92.1-docking.
2025-07-12 17:08:13 +02:00
Bartosz Taudul
1dd4c2d670
Update ImGui to 1.92.0-docking.
2025-07-12 14:36:47 +02:00
Bartosz Taudul
d2d50d2cea
Fix flame graph limit range button position.
2025-07-12 14:31:15 +02:00
Bartosz Taudul
d2db62ebc3
Change how icons are converted in markdown manual.
2025-07-12 14:25:29 +02:00
Bartosz Taudul
249673660e
Remove mouse button images from markdown manual.
2025-07-12 13:41:05 +02:00
Bartosz Taudul
f6f2fa0a0a
Fix font awesome icons in markdown manual.
2025-07-12 13:34:22 +02:00
Bartosz Taudul
1e1d9d9a84
Fix \menu, this time properly.
2025-07-12 12:35:37 +02:00
Bartosz Taudul
6058e6ede0
Hackfix section names in markdown manual.
2025-07-12 12:23:48 +02:00
Bartosz Taudul
31815fd45d
Remove junk from links in markdown manual.
2025-07-12 11:58:19 +02:00
Bartosz Taudul
ee2ef5c455
Increase number of user manual search results.
2025-07-12 11:50:32 +02:00
Bartosz Taudul
0da4c7e320
Explicit search parameters.
2025-07-12 11:50:32 +02:00
Bartosz Taudul
87c1200c80
Add shell script for latex to markdown conversion.
2025-07-12 11:50:32 +02:00
Bartosz Taudul
c08364779a
Update markdown manual.
2025-07-12 11:50:32 +02:00
Bartosz Taudul
55cf0139fd
Don't crash on assert when a tool call is missing a parameter.
2025-07-12 11:50:31 +02:00
Bartosz Taudul
818d238f50
Update system prompt to use English names for UI elements.
2025-07-12 11:50:31 +02:00
Bartosz Taudul
d5b36ea7d0
Do not block UI thread when waiting for tokenization.
...
Erasing chat contens or regenerating assistant reply can still block.
2025-07-12 11:50:31 +02:00
Bartosz Taudul
c9cca586cc
Add tokenization job.
2025-07-12 11:50:31 +02:00
Bartosz Taudul
37da8f923b
Better handling of responding and stop states.
2025-07-12 11:50:31 +02:00
Bartosz Taudul
50d68f6bae
Make current job visible.
2025-07-12 11:50:31 +02:00
Bartosz Taudul
a3b06851d8
The queue should be fifo.
2025-07-12 11:50:31 +02:00
Bartosz Taudul
7809e39cac
Wrap adding LLM tasks in helper functions.
2025-07-12 11:50:31 +02:00
Bartosz Taudul
c518de7837
Handle empty think section, repeated think close tags.
2025-07-12 11:50:30 +02:00
Bartosz Taudul
d0c4e9bc3a
Handle multiple tool calls by erroring out.
2025-07-12 11:50:30 +02:00
Bartosz Taudul
22281d04ab
Update system prompt.
2025-07-12 11:50:30 +02:00
Bartosz Taudul
7ffd8310e6
Improve code tokenization estimation.
2025-07-12 11:50:30 +02:00
Bartosz Taudul
6c05079e7b
Disable LLM settings when the model is responding.
2025-07-12 11:50:30 +02:00
Bartosz Taudul
4e8fb7870b
Decrease context usage when removing chat content.
2025-07-12 11:50:30 +02:00
Bartosz Taudul
b54c4f7aa9
Get exact token counts when adding or removing messages.
2025-07-12 11:50:30 +02:00
Bartosz Taudul
b36b6a0aa2
Implement llama-swap tokenization request.
2025-07-12 11:50:30 +02:00
Bartosz Taudul
4969be344e
Use exact tokens count when available in server response.
...
Note that this is not really exacy, as it includes system prompt reminder
and possibly other input data that is dynamically injected.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
047fa3b98f
Remove readability.js support.
...
The current method of web retrieval works well enough.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
154c055fcb
Update manual.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
2e77045ff7
Rearrange LLM provider presets.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
567cd562e4
Fix rendering complex markdown headers.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
b84f1407d4
Ask for donations.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
dee495cefc
Add embedding prefixes required by the nomic-embed-text model.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
c893954da7
Add missing switch case break.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
7252c6b41e
Add spacing before markdown headers.
2025-07-12 11:50:29 +02:00
Bartosz Taudul
0b9ea6f650
Refine system prompt.
2025-07-12 11:50:28 +02:00
Bartosz Taudul
fcfbd9810a
Add md extension to system prompt files, to get coloring in editor.
2025-07-12 11:50:28 +02:00
Bartosz Taudul
55dc632b10
Handle HTTP errors.
2025-07-12 11:50:28 +02:00
Bartosz Taudul
20182e88cd
Sort models list.
2025-07-12 11:50:28 +02:00
Bartosz Taudul
2f1cb512e6
Implement copying chat responses to the clipboard.
2025-07-12 11:50:28 +02:00
Bartosz Taudul
abef0d76b1
Update manual.
2025-07-12 11:50:28 +02:00
Bartosz Taudul
f9be40ae7c
Update wording.
2025-07-12 11:50:28 +02:00
Bartosz Taudul
4f01a43920
Reload InputText buffer.
...
https://github.com/ocornut/imgui/issues/8709#issuecomment-2993482040
2025-07-12 11:50:28 +02:00
Bartosz Taudul
7a0a0a9749
Add option to regenerate LLM reply.
2025-07-12 11:50:27 +02:00
Bartosz Taudul
998ec7941f
Clearly indicate that stop operation is in progress.
2025-07-12 11:50:27 +02:00
Bartosz Taudul
7ab657a0d5
Refine system prompt.
2025-07-12 11:50:27 +02:00
Bartosz Taudul
fc840c1d47
Implement attaching assembly loops to LLM chat.
2025-07-12 11:50:27 +02:00
Bartosz Taudul
39d624b969
Reinit connection on error.
2025-07-12 11:50:27 +02:00
Bartosz Taudul
21ddd99d55
Properly handle error output.
2025-07-12 11:50:27 +02:00
Bartosz Taudul
b51ed462f7
Handle response failure.
2025-07-12 11:50:27 +02:00
Bartosz Taudul
ca02df8ad5
Ignore spaces after <think> and <tool> tags.
2025-07-12 11:50:27 +02:00
Bartosz Taudul
91cfc2e5b8
Move jump range calculation to a separate function.
2025-07-12 11:50:26 +02:00
Bartosz Taudul
76fd44ea8a
Add function for attaching data to LLM chat.
2025-07-12 11:50:26 +02:00
Bartosz Taudul
9b0bb7cfda
Refine system prompt.
2025-07-12 11:50:26 +02:00
Bartosz Taudul
dabfa36913
Display attachment type.
2025-07-12 11:50:26 +02:00
Bartosz Taudul
5d653551b9
Add icon for each single attachment / error.
2025-07-12 11:50:26 +02:00
Bartosz Taudul
96a13f2a45
Move markdown logic to a separate file.
2025-07-12 11:50:26 +02:00
Bartosz Taudul
6419a01849
Refine wording.
2025-07-12 11:50:26 +02:00
Bartosz Taudul
1aa27c81ac
Remove call stack text from system prompt.
2025-07-12 11:50:26 +02:00
Bartosz Taudul
f3c066cc69
More explicit local / network tool split.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
b4692740aa
Add source_file tool.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
b2122e7d41
Move SplitLines to TracyUtility.cpp.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
0b8f7344e6
Don't create intermediate string.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
712fd3b58a
Update system prompt.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
5d7695cbce
Allow attaching call stacks for the AI chat.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
a09f1b2d15
Implement attachments in chat.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
1e508f0b44
Implement removing chat messages.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
8b2de04cd9
Chat message removal UI.
2025-07-12 11:50:25 +02:00
Bartosz Taudul
764348be79
Trim section title and newlines from manual sections.
2025-07-12 11:50:24 +02:00
Bartosz Taudul
80a10a9095
Better context delivery for manual sections.
2025-07-12 11:50:24 +02:00
Bartosz Taudul
ed1f64d001
Disable send button when there's no input.
2025-07-12 11:50:24 +02:00
Bartosz Taudul
1183364812
Add warning.
2025-07-12 11:50:24 +02:00
Bartosz Taudul
d67d37de8e
Request verbose user manual search queries.
2025-07-12 11:50:24 +02:00
Bartosz Taudul
25c85ad853
No images (at least for now).
2025-07-12 11:50:24 +02:00
Bartosz Taudul
1f87cd3b17
Update tool use examples.
2025-07-12 11:50:24 +02:00
Bartosz Taudul
ebc25665bd
Update markdown manual.
2025-07-12 11:50:24 +02:00
Bartosz Taudul
7ce42a7df8
Bump usearch to 2.17.11.
2025-07-12 11:50:23 +02:00
Bartosz Taudul
67d1c8b8b8
Small batch size.
2025-07-12 11:50:23 +02:00
Bartosz Taudul
7e0476a641
Fail when embeddings were not calculated.
2025-07-12 11:50:23 +02:00
Bartosz Taudul
2578a0c04a
URL encode already handles spaces.
2025-07-12 11:50:23 +02:00
Bartosz Taudul
9c831471a3
Refine system prompt.
2025-07-12 11:50:23 +02:00
Bartosz Taudul
017e050f09
Reword user manual query description.
2025-07-12 11:50:23 +02:00
Bartosz Taudul
845933040d
Perform tool calls with json.
2025-07-12 11:50:23 +02:00
Bartosz Taudul
1b24f60ac1
Group lines with no empty line separator between them together.
2025-07-12 11:50:23 +02:00
Bartosz Taudul
3ecac21db9
Filter out manual lines with no usable content.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
c9d70b7f67
Remove ollama-specific image support.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
c443f4fc64
Relax newline requirements around <think> and <tool> tags.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
67419ee931
Don't force newline in injected <think> tag.
...
Fixes qwen3 models.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
555966e1b1
Handle no embeddings response.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
3504f485dd
Add support for google search API.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
43d94a3cc3
Crash fix.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
6255b4c67c
Move current time back to system prompt.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
f04dcc7c42
Don't display model quantization when it's not known.
2025-07-12 11:50:22 +02:00
Bartosz Taudul
14cc545efd
Get context size with llama-swap.
2025-07-12 11:50:21 +02:00
Bartosz Taudul
e2ba66cf04
Detect llama-swap, match embedding models by name.
2025-07-12 11:50:21 +02:00
Bartosz Taudul
c35a75f86c
Fix crash when embedding model is no longer available after provider switch.
2025-07-12 11:50:21 +02:00
Bartosz Taudul
b9595add71
Do not repeatedly probe for LLM provider type.
2025-07-12 11:50:21 +02:00
Bartosz Taudul
a84e63d573
Remove cortex from list of predefined LLM servers.
2025-07-12 11:50:21 +02:00
Bartosz Taudul
08fd4aa182
Automatically load embeddings when already calculated.
2025-07-12 11:50:21 +02:00
Bartosz Taudul
e8b6cdb72b
Rework embeddings handling.
...
Send embedding requests in batches. This shaves off ~4% of run time.
Save ready-to-use database instead of intermediate data that need to be
processed.
2025-07-12 11:50:21 +02:00
Bartosz Taudul
8259cd6aff
Don't waste time calculating embeddings that will be ignored.
2025-07-12 11:50:21 +02:00
Bartosz Taudul
c641787ed1
Bump usearch to 2.17.9.
2025-07-12 11:50:20 +02:00
Bartosz Taudul
0db765a684
Indent list items text.
2025-07-12 11:50:20 +02:00
Bartosz Taudul
75c1735695
Fix word wrap when the first continued word requires line break.
2025-07-12 11:50:20 +02:00
Bartosz Taudul
ddc3d8884f
Fix font ranges.
2025-07-12 11:50:20 +02:00
Bartosz Taudul
9e593ce61c
Support hand pointer mouse cursor on Wayland.
2025-07-12 11:50:20 +02:00
Bartosz Taudul
5778c5ef9f
Fix code block clashes.
2025-07-12 11:50:20 +02:00
Bartosz Taudul
fde94e10d4
Implement printing markdown.
2025-07-12 11:50:20 +02:00
Bartosz Taudul
5a6b51c245
Track hover status in PrintTextWrapped.
2025-07-12 11:50:20 +02:00
Bartosz Taudul
64ec3f6e3f
Add spacing after an expanded think section.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
b521064875
Add spacing between chat turns.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
de9c90673e
Do not copy strings.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
295b597835
Load all characters from fonts.
...
It's not that much more. The majority of the font texture is font awesome.
The size of the font texture (2K x 4K) stays the same with this change.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
5ccd05d2a5
Rework chat rendering.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
33e55c32f7
Remove current time from system prompt.
...
It makes little sense to provide it, when it's already in the system
reminder.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
735ef3b9b8
Use LLM tools through a pointer.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
2ffae6c626
Don't repeat text.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
ceb635d297
Rearrange order of predefined API providers.
2025-07-12 11:50:19 +02:00
Bartosz Taudul
cffc7abff7
Unify API urls.
2025-07-12 11:50:18 +02:00
Bartosz Taudul
31cd82f78d
When managing context don't stop after first removal if quota is not met.
2025-07-12 11:50:18 +02:00
Bartosz Taudul
30c2f45c2c
Disable tool calls in debug replies.
2025-07-12 11:50:18 +02:00
Bartosz Taudul
e0820587a5
Add md4c.
2025-07-12 11:50:18 +02:00
Bartosz Taudul
9c648232a8
Disable LLM integration on emscripten.
2025-07-12 11:50:18 +02:00
Bartosz Taudul
ec205fa854
Move embed utility to a separate project.
...
This has to be separate to build a host executable during cross-compilation
(e.g. on emscripten builds).
2025-07-12 11:50:18 +02:00
Bartosz Taudul
111f68052f
No LLM libs on emscripten.
2025-07-12 11:50:18 +02:00
Bartosz Taudul
84d829454c
Require translating tool output to user's language.
2025-07-12 11:50:18 +02:00
Bartosz Taudul
3d3fb0591d
Add LLM debug mode.
2025-07-12 11:50:17 +02:00
Bartosz Taudul
e693a1923e
Delta content may be null.
...
Compatibility with llama-server.
2025-07-12 11:50:17 +02:00
Bartosz Taudul
7cae20d572
Implement key repeat in BackendWayland.
2025-07-12 11:50:17 +02:00
Bartosz Taudul
8c697479c2
Cache calculated embeddings.
2025-07-12 11:50:17 +02:00
Bartosz Taudul
27a17eb4ff
Calculate manual chunks in TracyLlmTools constructor.
2025-07-12 11:50:17 +02:00
Bartosz Taudul
f6f602da32
Add cache dir support.
2025-07-12 11:50:17 +02:00
Bartosz Taudul
5f9491264b
Rename Tracy AI to Tracy Assist.
2025-07-12 11:50:17 +02:00
Bartosz Taudul
90334f8db2
Remove <think> usage from reminder, as it's now forced.
2025-07-12 11:50:17 +02:00
Bartosz Taudul
0fff110338
Improve system reminder mechanism.
...
Previously the reminder was prepended to each user message and each one did
persist in the chat history. This change injects the system reminder into
the assistant output, without storing it in the history.
The change also adds an initial <think> tag to each of the assistant replies
to force the thinking process.
2025-07-12 11:50:16 +02:00
Bartosz Taudul
fc095be081
Limit user manual search results to fit in context.
2025-07-12 11:50:16 +02:00
Bartosz Taudul
72ed1e2691
Remove non-existing function.
2025-07-12 11:50:16 +02:00
Bartosz Taudul
e6bbfbdcf0
Fix locks.
2025-07-12 11:50:16 +02:00
Bartosz Taudul
de4ea095e6
Fix typo.
2025-07-12 11:50:16 +02:00
Bartosz Taudul
b00d4e36a8
Fix glfw backend.
2025-07-12 11:50:16 +02:00
Bartosz Taudul
e9db22b175
Make the user manual queries verbose.
2025-07-12 11:50:16 +02:00
Bartosz Taudul
cadfa3f9fb
Change user manual embeddings chunking strategy.
...
The source is now the markdown text, not latex. Each embedding is now
a single paragraph from the manual. The search now returns whole sections
from the manual matching the query.
2025-07-12 11:50:16 +02:00
Bartosz Taudul
2e598ee548
Add tracy manual converted to markdown.
...
The following command was used:
pandoc --wrap=none --reference-location=block --number-sections -s tracy.tex -o tracy.md
This should be a part of the build process, but that would require pandoc,
which is not something users may have installed.
2025-07-12 11:50:15 +02:00
Bartosz Taudul
35775c0ad9
Another place where line may not have contents.
2025-07-12 11:50:15 +02:00
Bartosz Taudul
c758ca9b87
Store chunk data as pointer + length.
2025-07-12 11:50:15 +02:00
Bartosz Taudul
a20c06b041
Line content may be null.
2025-07-12 11:50:15 +02:00
Bartosz Taudul
59eb0fc2b5
Detect embedding failure early on.
2025-07-12 11:50:15 +02:00
Bartosz Taudul
b4689fe88f
Check for HTTP return codes in FetchWebPage().
2025-07-12 11:50:15 +02:00
Bartosz Taudul
70ede04ede
Allow setting user agent for tools.
2025-07-12 11:50:15 +02:00
Bartosz Taudul
d5b3de6b3a
Fix aliasing of button names in options.
2025-07-12 11:50:15 +02:00
Bartosz Taudul
fb0d4f0d82
Make config accessible to all code without extern hacks.
2025-07-12 11:50:15 +02:00
Bartosz Taudul
736a2d3ba2
Indicate forgotten tool outputs in the chat window.
2025-07-12 11:50:14 +02:00
Bartosz Taudul
168ae92b8b
Forget old tool replies when available context size runs out.
2025-07-12 11:50:14 +02:00
Bartosz Taudul
7a729e20f3
Do not copy messages to be sent.
...
Sending the message blocks user input, so chat contents will not change.
2025-07-12 11:50:14 +02:00
Bartosz Taudul
cfc78192da
Use common functionality to add messages to chat.
2025-07-12 11:50:14 +02:00
Bartosz Taudul
c035e68770
Don't fail on invalid UTF-8.
2025-07-12 11:50:14 +02:00
Bartosz Taudul
f76c2ab427
Remove empty html tags.
2025-07-12 11:50:14 +02:00
Bartosz Taudul
f3be60e191
Refine tool use.
2025-07-12 11:50:14 +02:00
Bartosz Taudul
9738591d96
GetCurrentTime() can be const.
2025-07-12 11:50:14 +02:00
Bartosz Taudul
f3aceef051
More html cleanup.
2025-07-12 11:50:13 +02:00
Bartosz Taudul
f2ec04be3c
Color-code context size meter.
2025-07-12 11:50:13 +02:00
Bartosz Taudul
d52e0e9a19
Cleanup html.
2025-07-12 11:50:13 +02:00
Bartosz Taudul
bbf551e7d3
Ignore tidy errors.
2025-07-12 11:50:13 +02:00
Bartosz Taudul
d1c67a93c6
Make readability.js optional.
2025-07-12 11:50:13 +02:00
Bartosz Taudul
aa6d6c586e
Another approach at getting web pages.
2025-07-12 11:50:13 +02:00
Bartosz Taudul
cead66cc3d
Disable printing tidy warnings and errors.
2025-07-12 11:50:13 +02:00
Bartosz Taudul
d9f7772e9a
Move parsing HTML to a separate function.
2025-07-12 11:50:13 +02:00
Bartosz Taudul
0a4c1c9a77
Make webpage caching optional.
2025-07-12 11:50:12 +02:00
Bartosz Taudul
b659d79ac1
Add progress bar to user manual embeddings processing.
2025-07-12 11:50:12 +02:00
Bartosz Taudul
1c9ef33e8c
Add system prompt reinforcement.
2025-07-12 11:50:12 +02:00
Bartosz Taudul
a00d8c3fd5
Remove obsolete tools.json.
2025-07-12 11:50:12 +02:00
Bartosz Taudul
bddd705861
Do system prompt tag injection properly.
2025-07-12 11:50:12 +02:00
Bartosz Taudul
9d825e794b
Refine system prompt.
2025-07-12 11:50:12 +02:00
Bartosz Taudul
bf9e4f6254
Update system prompt.
2025-07-12 11:50:12 +02:00
Bartosz Taudul
c5422e0264
Add user_manual tool.
2025-07-12 11:50:12 +02:00
Bartosz Taudul
0520d12b24
Reserve memory for embeddings.
2025-07-12 11:50:11 +02:00
Bartosz Taudul
96e03b079e
Embeddings calls may need to be done on a separate connection.
...
The completion reply may be unfinished when the embeddings call is executed.
2025-07-12 11:50:11 +02:00
Bartosz Taudul
75e9e589b8
Make SetupCurl() work with any curl context.
2025-07-12 11:50:11 +02:00
Bartosz Taudul
f1d1e00659
Model may be unloaded after completion (by embeddings call).
2025-07-12 11:50:11 +02:00
Bartosz Taudul
da54eec537
Disable another stupid check.
2025-07-12 11:50:11 +02:00
Bartosz Taudul
338e029621
Fill in manual vector database.
2025-07-12 11:50:11 +02:00
Bartosz Taudul
e54f4d6a15
Add vector database.
2025-07-12 11:50:11 +02:00
Bartosz Taudul
e3db1eb7ee
Probe embeddings vector length.
2025-07-12 11:50:11 +02:00
Bartosz Taudul
746f28e3c9
Add UI for building manual embeddings.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
b4fe4c460c
Calculation of manual embeddings.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
89d65b52d9
Add API for getting embeddings vector.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
932af50d3e
Set headers for GET.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
4301573d95
Embed manual contents.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
85086c461b
Separate selection of LLM and embeddings model.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
ffe0047f8c
Detect embeddings-capable models.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
95d2aa9a22
Set content type in POST request.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
931bc97787
Trimming tool response now properly handles UTF-8.
...
This is important to have, as otherwise json parser will fail.
2025-07-12 11:50:10 +02:00
Bartosz Taudul
a1b67e4299
Retrieve the model context size for use in UI and tools.
2025-07-12 11:50:09 +02:00
Bartosz Taudul
b33110e53e
Retrieve context size for LM Studio models.
2025-07-12 11:50:09 +02:00
Bartosz Taudul
1d4bdfc8c3
Handle stop streaming requests in a more valid way.
2025-07-12 11:50:09 +02:00
Bartosz Taudul
fba21c1854
Filter out LM Studio embedding models.
2025-07-12 11:50:09 +02:00
Bartosz Taudul
fc9d787cf9
Move curl context setup to a separate function.
2025-07-12 11:50:09 +02:00
Bartosz Taudul
602a675bf4
Remove ugly advice about downloading LLM models.
2025-07-12 11:50:09 +02:00
Bartosz Taudul
3a27bcb8a9
Add system prompt tag.
...
This helps shut up gemma3 in LM Studio. Ollama doesn't need this.
2025-07-12 11:50:09 +02:00
Bartosz Taudul
aea3ad4730
Fix chat completions stop flow.
2025-07-12 11:50:09 +02:00
Bartosz Taudul
5f8c38a268
Include tool output in context size calculation.
2025-07-12 11:50:08 +02:00
Bartosz Taudul
782dc7de8d
Direct the LLM to inform the user about enabling network access.
2025-07-12 11:50:08 +02:00
Bartosz Taudul
16eaf114a6
Don't duplicate network check code.
2025-07-12 11:50:08 +02:00
Bartosz Taudul
203e5e2b13
Add preset endpoint addresses for various LLM providers.
2025-07-12 11:50:08 +02:00
Bartosz Taudul
b398a4641a
Switch from Ollama API to OpenAI API commonly used by all LLM providers.
2025-07-12 11:50:08 +02:00
Bartosz Taudul
b05bbc7f53
Enable CURLOPT_NOSIGNAL.
2025-07-12 11:50:08 +02:00
Bartosz Taudul
580423225e
Get nlohmann json via CPM.
2025-07-12 11:50:08 +02:00
Bartosz Taudul
eae3c7ef80
Remove LLM config from global settings (leave just LLM checkbox).
2025-07-12 11:50:08 +02:00
Bartosz Taudul
a4418bf50b
Move libcurl init to TracyLlm.cpp.
2025-07-12 11:50:07 +02:00
Bartosz Taudul
0f78084f8f
Add dictionary support.
2025-07-12 11:50:07 +02:00
Bartosz Taudul
6d8d461f2b
Extract calculation of max tool output size.
2025-07-12 11:50:07 +02:00
Bartosz Taudul
98e9383c89
Print language specifier in code blocks.
2025-07-12 11:50:07 +02:00
Bartosz Taudul
ea956f4cb2
Bullet points in markdown are '*' or '-'.
2025-07-12 11:50:07 +02:00
Bartosz Taudul
c0e89f992d
Extend big font characters range.
2025-07-12 11:50:07 +02:00
Bartosz Taudul
43463abdfe
Add bold, italic and bold+italic font.
2025-07-12 11:50:07 +02:00
Bartosz Taudul
2f9436577e
Use global font structure.
2025-07-12 11:50:07 +02:00
Bartosz Taudul
183847821e
Ignore annoying clang-tidy rules.
2025-07-12 11:50:06 +02:00
Bartosz Taudul
654243eeea
Use embed utility to provide fonts. Replace Droid Sans with Roboto.
2025-07-12 11:50:06 +02:00
Bartosz Taudul
78a80b64fa
Remove explicit spacing hacks.
...
The new text wrapped functionality works in a way that already does this.
2025-07-12 11:50:06 +02:00
Bartosz Taudul
64c0d645ee
Render inline code fragments with fixed width font.
2025-07-12 11:50:06 +02:00
Bartosz Taudul
d5f732e768
Add ImGui::SameLine() capable wrapped text printing function.
...
Adapted from imgui_markdown.
2025-07-12 11:50:06 +02:00
Bartosz Taudul
bc7f365793
Use proper curl library name.
2025-07-12 11:50:06 +02:00
Bartosz Taudul
e4a9c9be3c
Fix bad code in ollama-hpp.
2025-07-12 11:50:06 +02:00
Bartosz Taudul
bc126833e2
Fix operator std::string in ollama-hpp.
2025-07-12 11:50:06 +02:00
Bartosz Taudul
928ad3dd72
Add libcurl include dir to TracyLibcurl interface.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
9bce0bda02
Disable libpsl when building curl.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
ebe50c9981
Move implementation of all LLM tools to a separate file.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
4af390719c
Forward declare ImFont.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
a68cd2543d
Handle ollama with no models available.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
915e4ab77e
Less strict tool use requirements.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
101c7c40f7
Provide current time and date in the system prompt.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
f68253a085
Allow disabling network access for the LLM.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
b574e28b79
Refine system prompt.
2025-07-12 11:50:05 +02:00
Bartosz Taudul
aa925a81f7
Fix multiple think tags in one reply.
2025-07-12 11:50:04 +02:00
Bartosz Taudul
518587779f
Add an option to enable sanitizers.
2025-07-12 11:50:04 +02:00
Bartosz Taudul
9755f165f1
Prefer wikipedia as source of information.
2025-07-12 11:50:04 +02:00
Bartosz Taudul
92288bc710
Implement web search.
2025-07-12 11:50:04 +02:00
Bartosz Taudul
1e5f5215d4
Spoof user agent seen in the wild.
...
The state of modern web sadly discourages being honest.
2025-07-12 11:50:04 +02:00
Bartosz Taudul
c0ffd99c91
Allow setting custom temperature value.
2025-07-12 11:50:04 +02:00
Bartosz Taudul
229e810697
Don't set keep_alive value.
...
The default is 5 minutes anyway.
2025-07-12 11:50:04 +02:00
Bartosz Taudul
f4e340b573
Add note about context size estimation.
2025-07-12 11:50:04 +02:00
Bartosz Taudul
d0acd37b54
Calculate system prompt context size estimate.
2025-07-12 11:50:03 +02:00
Bartosz Taudul
290198704b
Rewrite the tools description to json.
2025-07-12 11:50:03 +02:00
Bartosz Taudul
522395d37e
Add a send message button.
2025-07-12 11:50:03 +02:00
Bartosz Taudul
72de3ecaa7
Add web cache.
2025-07-12 11:50:03 +02:00
Bartosz Taudul
82b976b1ee
Adjust user messages color.
2025-07-12 11:50:03 +02:00
Bartosz Taudul
97048cf692
Improve wikipedia search by providing a summary of the page.
2025-07-12 11:50:03 +02:00
Bartosz Taudul
a6c77d73a4
Enable wikipedia in other languages.
2025-07-12 11:50:03 +02:00
Bartosz Taudul
5bbe81a029
Don't retrieve the full image, thumbnail is enough.
...
Too much context pollution for too little gain.
2025-07-12 11:50:03 +02:00
Bartosz Taudul
1f9639dfe3
Reword tool knowledge rules.
2025-07-12 11:50:02 +02:00
Bartosz Taudul
14fc45a1e2
Specify user agent.
2025-07-12 11:50:02 +02:00
Bartosz Taudul
a7cc678960
Display appropriate icon when tool reply contains an image.
2025-07-12 11:50:02 +02:00
Bartosz Taudul
46c000fd66
Fix scrolling.
2025-07-12 11:50:02 +02:00
Bartosz Taudul
41f9b75372
Add Latin Extended A/B to fixed width font.
2025-07-12 11:50:02 +02:00
Bartosz Taudul
a35e996f4f
Release lock when handling tool calls.
2025-07-12 11:50:02 +02:00
Bartosz Taudul
0ba0590dbc
Don't use the "tool" role.
2025-07-12 11:50:02 +02:00
Bartosz Taudul
68b73811c4
Retrieve images from wikipedia.
2025-07-12 11:50:02 +02:00
Bartosz Taudul
13eca84926
Use the user language.
2025-07-12 11:50:01 +02:00
Bartosz Taudul
80f678c28a
Replace spaces in wikipedia page queries with underscores.
2025-07-12 11:50:01 +02:00
Bartosz Taudul
e293f87a8a
Adapt the wikipedia page cut-off to the available context size.
2025-07-12 11:50:01 +02:00
Bartosz Taudul
31afd9dbca
Url encode wikipedia search queries.
2025-07-12 11:50:01 +02:00
Bartosz Taudul
4f49635c42
Further system prompt refinement.
2025-07-12 11:50:01 +02:00
Bartosz Taudul
b2f3e6b681
The models like to group separate wikipedia query terms.
...
Some search examples:
1. Tracy Profiler
2. "Tracy Profiler" "C++"
3. "Tracy Profiler"
2025-07-12 11:50:01 +02:00
Bartosz Taudul
40fed7dd6f
Update system prompt with new rules.
2025-07-12 11:50:01 +02:00
Bartosz Taudul
8a6a6d8132
Merge wikipedia query terms with '+' in code, not in LLM.
2025-07-12 11:50:01 +02:00
Bartosz Taudul
116881ae81
Remove stray \r characters from the LLM responses.
2025-07-12 11:50:01 +02:00
Bartosz Taudul
50886ac16e
Wikipedia search + article retrieval.
2025-07-12 11:50:00 +02:00
Bartosz Taudul
b0a36cb8e8
Use correct parameter for setting context size.
2025-07-12 11:50:00 +02:00
Bartosz Taudul
a8dd0ca232
Add Latin Extended A/B to font.
2025-07-12 11:50:00 +02:00
Bartosz Taudul
b54e36df29
Display context usage.
2025-07-12 11:50:00 +02:00
Bartosz Taudul
e60e30ddf1
Don't persist tree node open state between chats.
2025-07-12 11:50:00 +02:00
Bartosz Taudul
b163d97e65
Fix setting context size.
2025-07-12 11:50:00 +02:00
Bartosz Taudul
f65302984e
Remove html2md, remove access to web for LLM.
2025-07-12 11:50:00 +02:00
Bartosz Taudul
8b100ff11d
Use custom tool handling.
...
The ollama tool_calls do not preserve the context of why the tool was
called. The feature as it is right now doesn't seem to be designed for
the LLM to make queries, but rather to act as an agent that is supposed
to call some functions that will directly provide their output to the
user.
Instead, let's encode the tool calling protocol in the system prompt.
2025-07-12 11:50:00 +02:00
Bartosz Taudul
0d3e183540
Display tool responses in chat.
2025-07-12 11:49:59 +02:00
Bartosz Taudul
05f7019f30
Chat will have system prompt.
2025-07-12 11:49:59 +02:00
Bartosz Taudul
2e61fbac78
Expand system prompt.
2025-07-12 11:49:59 +02:00
Bartosz Taudul
4ad9e05814
Convert html to markdown.
2025-07-12 11:49:59 +02:00
Bartosz Taudul
f5ea5ffce1
Display tool call arguments.
2025-07-12 11:49:59 +02:00
Bartosz Taudul
dc8c106454
Implement fetching web pages.
2025-07-12 11:49:59 +02:00
Bartosz Taudul
3a60926f65
Link with libcurl.
2025-07-12 11:49:59 +02:00
Bartosz Taudul
9202ce277d
Respond to tool calls.
2025-07-12 11:49:59 +02:00
Bartosz Taudul
b4763c7500
Pass messages to SendMessage() as const ref, not rvalue.
2025-07-12 11:49:58 +02:00
Bartosz Taudul
78257553c7
Allow disabling tools use.
2025-07-12 11:49:58 +02:00
Bartosz Taudul
4c46cc4deb
Push available tools list to ollama.
2025-07-12 11:49:58 +02:00
Bartosz Taudul
7eedbe130e
Prepare ollama request in an explicit way.
2025-07-12 11:49:58 +02:00
Bartosz Taudul
3414773f18
Keep system prompt unembedded.
2025-07-12 11:49:58 +02:00
Bartosz Taudul
c8dbe33a3c
Move LLM system prompt to an external file.
2025-07-12 11:49:58 +02:00
Bartosz Taudul
cc0aa73527
Add embed utilities.
2025-07-12 11:49:58 +02:00
Bartosz Taudul
8006ae9e30
Build embed tool.
2025-07-12 11:49:58 +02:00
Bartosz Taudul
8fd1530c8f
Rework context size handling.
...
The user now specifies max context size to be used for all models.
2025-07-12 11:49:57 +02:00
Bartosz Taudul
74b6e481bb
Add spacing between chat messages.
2025-07-12 11:49:57 +02:00
Bartosz Taudul
10decca063
Fix chat input focus.
2025-07-12 11:49:57 +02:00
Bartosz Taudul
b901544fb4
Draw ellipsis when waiting for ollama reply (loading model, parsing prompt, etc.)
2025-07-12 11:49:57 +02:00
Bartosz Taudul
1590d3196b
Don't wait for streaming to end when exiting.
2025-07-12 11:49:57 +02:00
Bartosz Taudul
dedc9259c1
Add basic system prompt.
2025-07-12 11:49:57 +02:00
Bartosz Taudul
e8578668d4
Add support for basic markdown features.
2025-07-12 11:49:57 +02:00
Bartosz Taudul
2bf627061e
Add support for printing code blocks.
2025-07-12 11:49:57 +02:00
Bartosz Taudul
b982515774
Use string references instead of copies.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
60230c2d7e
Split chat responses into lines for easier parsing.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
cfd3260ea0
Count chat lines.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
3a60a67c95
Explicitly check for assistant role.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
2ad2fa0b4a
Get role string only once.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
1ebe85d24f
Always show scroll bar in chat window.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
ef230b08f3
Don't display the "thinking" unless asked for.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
b90e0fa467
Adjust colors.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
18a220d4db
Support displaying ollama error messages.
2025-07-12 11:49:56 +02:00
Bartosz Taudul
22d139bff7
Allow changing context size.
2025-07-12 11:49:55 +02:00
Bartosz Taudul
c36386ac81
Scroll to bottom when chat is updating.
2025-07-12 11:49:55 +02:00
Bartosz Taudul
8edbdc8081
Add icons to help differentiate user from bot answers.
2025-07-12 11:49:55 +02:00
Bartosz Taudul
d499458c69
Working chat.
2025-07-12 11:49:55 +02:00
Bartosz Taudul
a25b189692
Put a date on the Weizenbaum quote.
2025-07-12 11:49:55 +02:00
Bartosz Taudul
dc325dae89
Focus chat entry field when LLM UI is opened.
2025-07-12 11:49:55 +02:00
Bartosz Taudul
58125770b1
Use ollama::messages instead of vector of strings to hold chat messages.
...
The implementation is similar, but this way is needed for the ollama-hpp
API.
2025-07-12 11:49:55 +02:00
Bartosz Taudul
c1998bd9f3
Basic chat input and rendering.
2025-07-12 11:49:55 +02:00
Bartosz Taudul
2ea7a183f1
Add chat UI elements.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
4250fa51c2
Add model selection to LLM UI.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
571189c9da
Use the intended icon for setting default ollama url.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
42010dc457
Handle no connection / busy cases in LLM UI.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
ab76bafdf7
Use three dots to indicate background tasks instead of one pulsing dot.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
3a4786d2be
httplib may throw on invalid protocol.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
4c7338ec1e
Load LLM models in a thread.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
fd291f225e
Properly set state when reseting ollama URL to default.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
6ce5c345a5
Don't fail when there are no models downloaded.
2025-07-12 11:49:54 +02:00
Bartosz Taudul
d50f05c00b
Rework loading LLM models.
2025-07-12 11:49:53 +02:00
Bartosz Taudul
e4e23eabb6
Hook up LLM window.
2025-07-12 11:49:53 +02:00
Bartosz Taudul
e8c2d498d3
Remove redundant m_valid variable.
2025-07-12 11:49:53 +02:00
Bartosz Taudul
02b2882261
Display context size in model selection dropdown.
2025-07-12 11:49:53 +02:00
Bartosz Taudul
cf892505e1
Setup model, get context size.
2025-07-12 11:49:53 +02:00
Bartosz Taudul
0f31d6ac1a
List LLM models in global settings.
2025-07-12 11:49:53 +02:00
Bartosz Taudul
08c877c4ef
Add interface for listing LLM models.
2025-07-12 11:49:53 +02:00
Bartosz Taudul
cb212567ed
Store selected LLM model.
2025-07-12 11:49:53 +02:00
Bartosz Taudul
d72898087f
Allow creating TracyLlm when LLM is disabled.
2025-07-12 11:49:52 +02:00
Bartosz Taudul
6b0589f5eb
Add configuration UI for LLM.
2025-07-12 11:49:52 +02:00
Bartosz Taudul
85a82fbb70
Implement checking for connection validity and API version in TracyLlm.
2025-07-12 11:49:52 +02:00
Bartosz Taudul
584ad9ffde
Add LLM configuration.
2025-07-12 11:49:52 +02:00
Bartosz Taudul
a3e3f9a98f
Add basic integration with ollama-hpp.
2025-07-12 11:49:49 +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
0c77bfcbed
Use tracy data structures
2025-07-11 17:18:17 -07:00
Eric Eaton
114f6ef096
Supply the correct thread ID for annotations
2025-07-11 17:18:17 -07:00
Eric Eaton
3324b46dca
Make rocprof optional
2025-07-11 17:18:16 -07:00
Eric Eaton
d4a35c5ab1
Change rocprof context name
2025-07-11 17:18:07 -07:00
Eric Eaton
3fce5c1280
Use a map to record counter values
...
This removes the limitation of 10 counters.
2025-07-11 17:17:05 -07:00
Eric Eaton
6a5e4d8a60
Use assert intead of a condition
2025-07-11 17:17:05 -07:00
Eric Eaton
1494fe5671
Apply code style
2025-07-11 17:17:05 -07:00
Eric Eaton
7fc5b6c977
Increase protocol version
2025-07-11 17:17:03 -07:00
Eric Eaton
9413436ba1
Search backward for the correct zone
...
Needed to make tracing more intense applications work.
2025-07-11 17:16:00 -07:00
Eric Eaton
d1f9df8058
Get counter names from environment variable
...
Allows user to customize the collected information with environment
variable TRACY_ROCPROF_COUNTERS.
2025-07-11 17:16:00 -07:00
Eric Eaton
e9e0404930
Add support for multiple counters
2025-07-11 17:16:00 -07:00
Eric Eaton
a754db16f8
Show counter name in GUI
2025-07-11 17:16:00 -07:00
Eric Eaton
2e49bdf4cb
Add counter value collection
2025-07-11 17:16:00 -07:00
Eric Eaton
86de39704f
Add calibration thread
...
Synchronizes the GPU timeline periodically. This is needed to counter
network time updates that cause drift in the GPU and CPU timeline.
Signed-off-by: Eric Eaton <erieaton@amd.com >
2025-07-11 17:16:00 -07:00
Eric Eaton
495321fc10
Record dispatch enqueue times
2025-07-11 17:16:00 -07:00
Eric Eaton
98047ffbe2
Delay initialization
...
Delay initialization until tracy is started. Removed some debug prints.
2025-07-11 17:16:00 -07:00
Eric Eaton
1517756d54
Add buffer copy tracing
2025-07-11 17:16:00 -07:00
Eric Eaton
00648836a2
Add rocprof dispatch tracing
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
Bartosz Taudul
33713086b4
Disable stupid function size warnings.
2025-07-11 23:18:37 +02:00
Bartosz Taudul
91c17abcc7
Merge pull request #1092 from wannacu/master
...
Fix profiler compilation for older wayland version
2025-07-07 11:53:11 +02:00
wannacu
034b18a933
Fix profiler compilation for older wayland version
2025-07-07 11:54:14 +08:00
Bartosz Taudul
abbc35793e
Merge pull request #1091 from siliceum/bugfix/ignorebuildfiles
...
Update gitignore with ToyPathTracer windows output
2025-07-04 15:47:25 +02:00
Bartosz Taudul
6578a11a1c
Merge pull request #1090 from siliceum/bugfix/test-on-windows
...
Bugfix/test on windows
2025-07-04 15:47:02 +02:00
Clément Grégoire
9971280082
Update gitignore with ToyPathTracer windows output
2025-07-04 14:56:32 +02:00
Clément Grégoire
a3be5cca2c
Set tracy-test exe as startup project
2025-07-04 14:54:13 +02:00
Clément Grégoire
84f3bd10e8
Make test app compile on windows SIGUSR1 does not exist on windows
2025-07-04 12:56:09 +02:00
Bartosz Taudul
1d4b9c77ce
Merge pull request #1088 from jcl1234/master
...
Fix FiberEnter start time always being processed as 0
2025-07-02 13:55:27 +02:00
jcl1234
791904a37f
Fix FiberEnter start time always being processed as 0
2025-07-01 22:38:10 -05:00
Bartosz Taudul
7388a47658
Fix LockMark source location name.
2025-06-28 00:04:07 +02:00
Bartosz Taudul
7f6efe3bd4
Merge pull request #1065 from maxime-modulopi/vulkan-collect-host
...
Add support for host query reset when collecting Vulkan traces
2025-06-26 14:51:51 +02:00
Maxime Duriez
656ff1ba16
Added TracyVkCollectHost to manual
2025-06-26 12:54:10 +02:00
Bartosz Taudul
c556831ddc
Release 0.12.2.
2025-06-25 23:55:40 +02:00
Bartosz Taudul
8a8e16a559
Merge pull request #1083 from siliceum/bugfix/clear-button-find-zone
...
Fix Clear button behavior in Find Zone
2025-06-23 14:30:49 +02:00
Bartosz Taudul
be89f228ee
Merge pull request #1081 from boguscoder/boguscoder-lua
...
Make TracyLua buildable with TRACY_NO_CALLSTACK
2025-06-21 00:12:12 +02:00
Oleg Bogdanov
4f9107fac5
Make TracyLua buildable with TRACY_NO_CALLSTACK
...
See discussion https://github.com/wolfpld/tracy/issues/1080
2025-06-20 12:45:54 -07:00
Antoine Mura
17ab46c539
Fix Clear Button in Find Zone
2025-06-20 11:05:02 +02:00
Bartosz Taudul
8caf4f0d60
Merge pull request #1078 from mcourteaux/master
...
Fix MinGW build.
2025-06-19 21:07:12 +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
Bartosz Taudul
581e9cb28e
Merge pull request #1076 from boguscoder/regex_fix
...
relax regex match in symbolication substitution
2025-06-19 11:34:06 +02:00
Oleg Bogdanov
84cbf46cc5
relax regex match in symbolication substitution
...
See discussion https://github.com/wolfpld/tracy/issues/1075
2025-06-18 18:50:05 -07:00
Bartosz Taudul
250daeabe7
Merge pull request #1074 from boguscoder/master
...
Fixing typo in log statement of symbolication
2025-06-18 23:16:48 +02:00
Oleg Bogdanov
1fa69045a3
Fixing typo in log statement of symbolication
2025-06-18 14:10:15 -07:00
Bartosz Taudul
1a872faae6
Update can't be built without NO_STATISTICS.
2025-06-18 20:00:34 +02:00
Bartosz Taudul
f1119d88b9
Merge pull request #1072 from neobrain/profiler_include_dirs
...
Add include directories for pkg-config dependencies in the profiler build
2025-06-17 18:40:40 +02:00
Tony Wasserka
22e580d4c0
Add include directories for pkg-config dependencies in the profiler build
2025-06-17 17:39:57 +02:00
Bartosz Taudul
764624d3d1
Merge pull request #1070 from rmarker/flameLimit
...
Add limit range for flame graph.
2025-06-15 17:03:04 +02:00
rmarker
e1b325741e
Add limit range for flame graph.
...
Allow restricting the flame graph to a specific time range.
Similar to the existing range limits for other tools, such as for
statistics.
2025-06-15 17:41:27 +09:30
Bartosz Taudul
b69813f077
Fix CMake stupidity with Ninja vs Unix Makefiles generators.
2025-06-14 12:07:43 +02:00
Bartosz Taudul
d181e80c29
Fix builds out of git repository.
2025-06-14 11:56:17 +02:00
Maxime Duriez
6abd2505bd
Added support for host query reset when collecting Vulkan traces
2025-06-07 21:06:39 +02:00
Bartosz Taudul
650c98ece7
Relase 0.12.1.
2025-06-07 16:59:25 +02:00
Bartosz Taudul
310c9389b2
Update license list.
2025-06-07 16:45:25 +02:00
Bartosz Taudul
e660821d75
Remove Windows hacks for including license in the manual.
2025-06-07 16:32:06 +02:00
Bartosz Taudul
fae74430c5
Document flame graph.
2025-06-07 16:31:13 +02:00
Bartosz Taudul
3100c39a68
Remove ObjC header from Meson build.
...
Meson decides to be special again:
"ERROR: No specified compiler can handle file public/tracy/TracyMetal.hmm"
2025-06-07 13:45:17 +02:00
Bartosz Taudul
0dd5c8b507
Add TracyCUDA.hpp and TracyMetal.hmm to meson include list.
2025-06-07 13:35:57 +02:00
Bartosz Taudul
a0b2a1d4bc
Add TracyCUDA.hpp to CMake include list.
2025-06-07 13:35:44 +02:00
Bartosz Taudul
09558a0347
Set proper tracy include dir in CMake config.
2025-06-07 13:33:00 +02:00
Bartosz Taudul
b57f08f166
Merge pull request #1064 from eigenraven/raven/install-metal-header
...
Add TracyMetal.hmm to the installed headers list in CMake
2025-06-06 14:33:32 +02:00
Raven Szewczyk
7f56f1d182
Add TracyMetal.hmm to the installed headers list in CMake
2025-06-06 13:17:32 +01:00
Bartosz Taudul
7e833e7ddc
Merge pull request #1061 from c-cube/simon/check-in-import-fuchsia
...
add a sanity check to fuchsia importer
2025-06-02 17:45:58 +02:00
Simon Cruanes
bbf225b788
add a sanity check to fuchsia importer
2025-06-02 10:41:25 -04:00
Bartosz Taudul
18242189e1
Merge pull request #1060 from evan-barentin/eb-fix-git-ref-call-outside-source
...
Fix profiler compilation when build directory is outside the source directory
2025-06-02 16:03:24 +02:00
Evan Barentin
9becb3221d
Fix: precise source directory to git log call
2025-06-02 13:37:51 +02:00
Bartosz Taudul
2875926cdb
Disable debug functionality in ppqsort.
...
Apple's stdlib doesn't implement syncstream.
2025-06-01 19:51:36 +02:00
Bartosz Taudul
79c5bdcf62
Merge pull request #1055 from produktivkraft/osx_vscroll
...
fix vertical scroll bar lost on macos
2025-05-31 18:39:17 +02:00
Allen Guo
b8267a1660
fix vertical scroll bar lost on macos
2025-05-31 23:40:56 +08:00
Bartosz Taudul
87924acdd9
Release 0.12.0.
2025-05-30 20:27:13 +02:00
Bartosz Taudul
902d32f54f
Update manual.
2025-05-30 19:03:17 +02:00
Bartosz Taudul
74302ad184
Update NEWS.
2025-05-30 18:35:17 +02:00
Bartosz Taudul
0574decec0
Shorten image names by default.
2025-05-30 18:20:40 +02:00
Bartosz Taudul
f14ff2b994
Support old compilers.
2025-05-24 13:16:13 +02:00
Bartosz Taudul
2dfedbe833
Merge pull request #1052 from siliceum/remove-python-dependency
...
Fix #996 Remove any need for python during build
2025-05-24 13:13:53 +02:00
Clément Grégoire
eba268ad9d
Fix #996 Remove any need for python during build
...
We are now using only CMake to generate `GitRef.hpp`. This should make it easier to build on Windows.
We use git's pretty formatting instead of rev-parse to output the full file in a single command, then CMake's `copy_if_different` to avoid unnecessary rebuilds.
Trick is to use %n for newlines and %x22 for quotes. See https://git-scm.com/docs/pretty-formats
We also output "unknown" and a warning when git is not available.
2025-05-24 01:16:08 +02:00
Bartosz Taudul
8b3a421153
Merge pull request #1051 from FRaNk090/feature/cuda
...
Add CUDA Backend Support to Tracy profiler
2025-05-23 23:29:55 +02:00
Fan Chen
0eb3a82673
Move CUDA after Custom as existing traces may use the Custom identifier
2025-05-23 15:22:36 -04:00
Fan Chen
1cb85b037d
Refine tracy cuda documentation
2025-05-23 12:59:21 -04:00
Fan Chen
d0b7c7c048
ADD CUDA to GpuContextNames
2025-05-22 19:28:17 -04:00
Fan Chen
feda21b047
Refine tracy cuda documentation
2025-05-22 19:26:57 -04:00
Fan Chen
467f39b222
Add TracyCUDAStartProfiling and TracyCUDAStopProfiling macros
2025-05-22 15:38:40 -04:00
Bartosz Taudul
71fc3bc747
Merge pull request #1040 from blegat/TimeToStringExact
...
Time to string exact
2025-05-19 12:57:45 +02:00
Benoît Legat
45f9ece0b1
Apply review comment
2025-05-18 09:30:38 +02:00
Fan Chen
7712e53b1c
Add Documentation in manual
2025-05-17 14:55:46 -04:00
Fan Chen
8075a2c88f
Add necessary Tracy macros
2025-05-17 14:55:02 -04:00
Fan Chen
67552743ba
Add necessary Tracy macros
2025-05-17 13:35:23 -04:00
Fan Chen
0ef8bdd44d
Fix wrapping everything inside #if TRACY_ENABLE / #else blocks
2025-05-17 13:23:39 -04:00
Fan Chen
f48ba426c2
Remove TODO: Replace it with CUDA type
2025-05-17 13:12:08 -04:00
Fan Chen
f0ae6ffe61
enclose everything inside #if TRACY_ENABLE / #else blocks
2025-05-17 13:09:48 -04:00
Fan Chen
ac6f2e56e6
add CUDA to list of supported GPU compute APIs
2025-05-17 13:06:16 -04:00
Fan Chen
abaaa8c1b1
Bump up protocol version
2025-05-17 12:59:27 -04:00
Fan Chen
62dd2c887e
Replace GPU context type with CUDA
2025-05-17 12:57:53 -04:00
Fan Chen
8643d0f1cc
Add CUDA queue type
2025-05-17 12:56:19 -04:00
Fan Chen
b52fa7d8ef
Add tracy cuda header file including necessary Tracy Macros
2025-05-17 12:54:52 -04:00
Bartosz Taudul
c530219e46
Merge pull request #1047 from siliceum/nocrash-on-max-source-loc
...
Fix crash when reaching the source location limit
2025-05-12 17:03:39 +02:00
Clément Grégoire
c100b32b48
Fix crash when reaching the source location limit
...
Instead of crashing when reaching the maximum number of source locations, display an empty source location ( with "???" everywhere).
Keeping the assert for discoverability of the limit in debug, but ensure profiler won't crash later on (or in release).
2025-05-12 13:49:31 +02:00
Bartosz Taudul
a8d6707368
Merge pull request #1045 from siliceum/fix-delay-loading
...
Fix delay loading by not exporting variables
2025-05-12 13:21:17 +02:00
Clément Grégoire
10c6e3dee1
Fix delay loading by not exporting variables
...
[`/DELAYLOAD`](https://learn.microsoft.com/en-us/cpp/build/reference/delayload-delay-load-import?view=msvc-170 ) only works with exported functions, not variables (as it patches thunks after the first load).
So instead of using exporting a pointer for `___tracy_RtlWalkFrameChain`, make it a function that will call said pointer. This only adds a `mov`+`jmp` instructions in optimized builds to the call, which is negligible compared to the actual cost of RtlWalkFrameChain. This also does not affect the reported callstack since it will use a `jmp` without touching the stack, so `___tracy_RtlWalkFrameChain` won't appear in the capture stacktrace.
2025-05-12 11:56:38 +02:00
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
Bartosz Taudul
3ff5e9b128
Merge pull request #1041 from tvoeroes/fix-some-too-small-buffers
...
fix some string buffer sizes
2025-05-10 00:31:08 +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
Benoît Legat
98c7768fd0
Add _int64_abs function
2025-05-06 17:49:01 +02:00
Benoît Legat
4f424dfea0
Fix TimeToStringExact with mininmal int64 input
2025-05-06 17:34:36 +02:00
Clément Grégoire
2c2d126967
Remove added spaces
2025-05-05 15:52:54 +02:00
Clément Grégoire
58401a93ab
Fix file read when skipping context switches data
2025-05-05 15:29:30 +02:00
Bartosz Taudul
a03c7580b9
Merge pull request #1038 from simonvanbernem/save-ui-scale
...
Added saving of user ui scale via global configuration.
2025-04-28 17:02:54 +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
Bartosz Taudul
cc0c53496d
Merge pull request #1037 from simonvanbernem/per-monitor-dpi
...
Adding per-monitor DPI awareness
2025-04-25 21:37:55 +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
Bartosz Taudul
753305a797
Merge pull request #1031 from shtanko-sv/csvexport-values
...
Add exporting user values into CSV
2025-04-17 12:46:18 +02:00
Sergey Shtanko
0039895398
Add exporting user values into CSV
2025-04-17 11:11:02 +01:00
Bartosz Taudul
1fc7c9f160
Merge pull request #1024 from siliceum/update-batch-addr2line
...
tracy-update: Batch addr2line calls per 1024 addresses and escape paths
2025-04-14 17:04:02 +02:00
Clément Grégoire
f02c6fe4d5
Batch addr2line calls per 1024 addresses and escape paths
...
addr2line starts failing when given too many addresses to resolve.
Batching per 1024 addresses allows not only to see progress but also fixes resolution for images with high number of addresses to resolve.
Escaping is also required when image paths have spaces for example.
2025-04-14 15:39:26 +02:00
Bartosz Taudul
0d1d28415c
Merge pull request #1022 from siliceum/TracyLine-Evaluate-to-a-constant
...
Change TracyLine to be evaluate as a constant even with Edit-and-Cont…
2025-04-14 15:00:52 +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
83869c6f76
Replace sched_wakeup by sched_waking
...
`sched_wakeup` notifies about the kernel saying it will be waking up the thread, not the reason for the actual wakeup. This only allows to measure the scheduling latency, not the full wake up latency.
Instead, use `sched_waking` which is triggered on the ring of the CPU and thread responsible for the wakeup. `target_cpu` contains the cpu on which the thread will be woken up.
2025-04-13 19:59:03 +02:00
Bartosz Taudul
54d6dd9662
Merge pull request #1023 from slomp/master
...
More context about the MSVC "Edit and Continue" issue
2025-04-12 16:50:20 +02:00
Marcos Slomp
195d79fc67
More context about the MSVC "Edit and Continue" issue
2025-04-12 07:38:19 -07:00
Gabriel Bon
f41c4672cb
Change TracyLine to be evaluate as a constant even with Edit-and-Continue
2025-04-10 09:26:47 +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
296a3bb590
Add a comment about where to find KWAIT_REASON
2025-04-09 17:15:31 +02:00
Clément Grégoire
31859042bd
Remove ContextSwitchData SetStartCpu and SetEndReasonState
2025-04-09 17:02:51 +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
b6ec625ab4
Remove assert that would trigger on dropped CSwitch events
2025-04-09 14:45:03 +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
b0375776b5
Address documentation comments
2025-04-08 16:57:02 +02:00
Clément Grégoire
d78085fa80
Documentation attempt for thread migration and wakeup
2025-04-08 16:31:17 +02:00
Clément Grégoire
4e282371bf
Version 0.11.3 instead of 0.12.0
2025-04-08 13:51:32 +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
Bartosz Taudul
e656d49f53
Merge pull request #1020 from GabTux/master
...
Bump PPQSort version to 1.0.5.
2025-04-08 00:24:38 +02:00
Gabriel Hevr
85a9d5e284
Bump PPQSort version to 1.0.5.
2025-04-07 21:27:57 +02:00
Bartosz Taudul
3f9c4736f3
Merge pull request #1018 from tealsnow/master
...
Update link to zig bindings to an up-to-date and maintained version
2025-04-02 18:50:42 +02:00
Ketan Reynolds
49d8a2c082
Update link to zig bindings to an up-to-date and maintained version
...
The original link was out of date and unmaintained
I've changed it to an up-to-date and maintained one
2025-04-02 18:32:15 +02:00
Timur Popov
46a5cc4fa5
Stop filling queues with systrace data on exit
2025-03-29 01:12:28 +02:00
Bartosz Taudul
2d9169e3d1
Merge pull request #1015 from mcourteaux/fix-lockmark
...
Adjust LockMark() macro to allow member access expressions, like LockMark(object.mutex);
2025-03-28 16:21:09 +01:00
Martijn Courteaux
bb474a12c7
Adjust LockMark() macro to allow member access expressions, like LockMark(object.mutex);
2025-03-28 16:08:53 +01:00
Bartosz Taudul
684400b45c
Merge pull request #1012 from stalkopat/clipboard-user-text
...
Add clipboard button for user text in ZoneInfo
2025-03-25 22:31:31 +01:00
stalkopat
e5482580cd
add clipboard button for user text in ZoneInfo
2025-03-25 18:13:59 +00:00
Bartosz Taudul
9074461ffb
Merge pull request #1005 from jrng/gpu-zero-callstack
...
Handle callstack of zero in Vulkan and Direct3D 11
2025-03-10 22:23:21 +01:00
Julius Range-Lüdemann
eb47afe1f0
Handle callstack of zero in Vulkan and Direct3D 11
...
With TRACY_CALLSTACK set to 0 when not defined, these gpu functions get
called with depth=0. In other places this was alread fixed.
2025-03-10 21:38:59 +01:00
Bartosz Taudul
873c6ecac8
Merge pull request #1004 from bbb651/xdg-activation
...
wayland: Activate window with `XDG_ACTIVATION_TOKEN`.
2025-03-09 12:23:47 +01:00
bbb651
ae2e6d0a7b
wayland: Activate window with XDG_ACTIVATION_TOKEN.
2025-03-09 00:45:51 +02:00
Bartosz Taudul
1530884256
Merge pull request #1003 from Lectem/cmake-require-python
...
Let CMake discover python3 and make it required
2025-03-08 17:31:35 +01: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
2183962ef7
Merge pull request #995 from anthofoxo/lua-hook
...
Provide Lua hook function for automatic Lua instrumentation.
2025-03-01 11:43:06 +01:00
AnthoFoxo
bc7ec5b89b
Improve wording in tracy.tex for automatic lua instrumentation
2025-02-28 23:52:23 -05:00
AnthoFoxo
9b3c46dd5e
Document automatic Lua instrumentation in tracy.tex
2025-02-28 08:41:42 -05:00
AnthoFoxo
54dcbc87ad
implement lua hook function
2025-02-26 21:09:31 -05:00
FrK5E
b8c2e25c3d
Fix a build of OpelCLVectorAdd example on linux ( #989 )
...
* Add a <cmath> as to fix unknown symbol sqrt whist building on linux (gcc). Remove <algorithm> as a consequence of clangd suggestion.
* adjust according to the review comment
2025-02-26 15:37:49 +01:00
Bartosz Taudul
b04dfcd43d
Use ccache if available.
2025-02-21 23:27:15 +01:00
Bartosz Taudul
48efd98df7
Unmap icon buffer memory.
2025-02-20 00:14:24 +01:00
Bartosz Taudul
c5dc5f4455
Bump zstd to 1.5.7, use CPM to download.
2025-02-19 23:47:37 +01:00
Bartosz Taudul
8ad05c66ae
Merge pull request #987 from mtreglia-gpsw/meson/fixes
...
Change meson install settings to correctly copy directory hierarchy
2025-02-19 13:34:05 +01:00
Bartosz Taudul
6566d6a8d8
Merge pull request #988 from mtreglia-gpsw/tools/install
...
Add install target for binaries in capture and csvexport
2025-02-19 13:34:00 +01:00
Marco Treglia
ad61037925
Add install target for binaries in capture and csvexport
2025-02-19 09:41:32 +01:00
Marco Treglia
2d53818e55
Changed mesong.build
2025-02-19 09:36:55 +01:00
Marco Treglia
d966ecf9f7
add TracyKCore in meson.build
2025-02-19 09:36:50 +01:00
Bartosz Taudul
d71fc39577
Merge pull request #986 from Xnuman/master
...
Change cmake export settings to correctly copy directory hierarchy
2025-02-19 00:46:12 +01:00
Xnum
40d12b6a53
Changed CMakeLists.txt
2025-02-18 23:38:25 +01:00
Bartosz Taudul
4a5a21cdb0
Merge pull request #982 from brad-anderson/patch-1
...
Include <chrono> explicitly in TraceyView
2025-02-12 20:05:58 +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
8b3638e8e2
Merge pull request #981 from slomp/patch-1
...
quick-fix for TracyD3D11.hpp
2025-02-10 18:45:58 +01:00
Marcos Slomp
5c069f9d8d
quick-fix for TracyD3D11.hpp
...
Apparently, waiting for an enclosing query does not guarantee that the inner queries also become readily available... Need to wait for them too.
2025-02-10 09:13:33 -08: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
3ac95e6902
Bump imgui to 1.91.8.
2025-02-03 19:54:39 +01:00
Bartosz Taudul
0c228533f2
Merge pull request #978 from phsilva/master
...
Fix python bindings build
2025-01-29 01:42:46 +01:00
Paulo Henrique Silva
55d7df3782
Fix python bindings build
2025-01-28 15:23:52 -08:00
Bartosz Taudul
16405715a6
Bump PPQSort to 1.0.4.
2025-01-27 18:59:22 +01:00
Bartosz Taudul
5479a42ef9
Merge pull request #975 from dezhiAmd/csvExportGpuZone
...
Export gpu zones to csv file
2025-01-23 20:05:58 +01:00
Liao
4662be3aac
make it easier to see the diff
...
Signed-off-by: Liao <dezhliao@amd.com >
2025-01-23 10:18:12 -08:00
Liao
e19a823c37
remove spaces due to autoformatting
...
Signed-off-by: Liao <dezhliao@amd.com >
2025-01-20 12:14:36 -08:00
Liao
2020ef6c6e
Add a flag -g to export gpu zones to csv file
...
Signed-off-by: Liao <dezhliao@amd.com >
2025-01-20 11:48:56 -08:00
Bartosz Taudul
f583d1c855
Merge pull request #973 from 0-wiz-0/master
...
Use correct header on NetBSD.
2025-01-20 14:13:17 +01:00
Thomas Klausner
7272f9cac1
Use correct header on NetBSD.
2025-01-20 14:10:34 +01:00
Bartosz Taudul
da60684b9f
Merge pull request #967 from foxtran/feature/lto
...
Add cross-project LTO
2025-01-14 11:24:13 +01:00
Igor S. Gerasimov
be3aa5ac21
Add info about TRACY_LTO
2025-01-11 19:56:02 +01:00
Igor S. Gerasimov
b87a935c58
Allow global setting of CMAKE_INTERPROCEDURAL_OPTIMIZATION
2025-01-11 19:35:39 +01:00
Igor S. Gerasimov
9d03627a17
Add info about LTO usage for Fortran; C++ projects can be linked as before
2025-01-11 19:07:31 +01:00
Igor S. Gerasimov
7c48baf132
Add Link-Time optimization option
2025-01-11 16:33:01 +01:00
Igor S. Gerasimov
2608c6bbc9
Use whitespaces only
2025-01-11 16:15:33 +01:00
Bartosz Taudul
e49c25f2f5
Update NEWS.
2025-01-09 13:48:46 +01:00
Bartosz Taudul
b68f63c6d5
Add Fortran to list of provided integrations.
2025-01-09 13:21:05 +01:00
Bartosz Taudul
27689bcf43
Merge pull request #962 from foxtran/feature/fortran-support
...
Add initial native Fortran support
2025-01-09 13:18:57 +01:00
Bartosz Taudul
277555af2a
Merge pull request #961 from foxtran/fix/c-int
...
Use `int32_t` type instead of `int`
2025-01-09 13:16:19 +01:00
Igor S. Gerasimov
802bdbbecc
Fix type(c_ptr) in bind(C)
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
a42ea071a0
Add support of Cray compilers
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
fd33d1c839
Add support of Oracle Sun 12.6
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
21c8d7615d
Add colors
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
092e91d058
Add documentation
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
f01973a78c
Reset srcloc variables
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
4273d34ca4
tracy_source_location_data must be public
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
fb9686fb28
Prettify code
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
9b14656c8a
Add null char
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
38e7024277
Add plot formats
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
7730ac595f
Add fibers support
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
82460b0316
Use simpler typename of context
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
caabfc6379
Implement plots
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
49cc094869
Implement tracy_appinfo
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
fbc40e8b9e
Implement frame related things
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
4d5cd252a4
Add messages
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
59116feb55
Implement memory operations
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
4fd6d5317b
Implement tracy_connected
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
07cd1d8ee1
Implement zone_set_properties
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
ead67c06d9
Add zone begin/end
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
1d627c86be
Implement tracy_alloc_srcloc
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
66a50a8c76
Add TRACY_MANUAL_LIFETIME routines
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
3488e08aa7
Add Tracy structures except lockable
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
d16986dfa7
Add tracy_set_thread_name
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
a30fff8b4c
CMake support of Fortran bindings
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
e981a5ba6f
Add initial module file
2025-01-05 23:21:12 +01:00
Igor S. Gerasimov
3e88544d1f
Update int type in Python API
2025-01-02 21:44:06 +01:00
Igor S. Gerasimov
7093eb0b08
Update int for ___tracy_after_try_lock_lockable_ctx
2025-01-02 14:33:09 +01:00
Igor S. Gerasimov
7e128f3bce
Update int for ___tracy_emit_plot_config
2025-01-02 14:32:04 +01:00
Igor S. Gerasimov
6e220fee91
Update int for ___tracy_emit_frame_image
2025-01-02 14:25:06 +01:00
Igor S. Gerasimov
94403bde4b
Update int for ___tracy_before_lock_lockable_ctx
2025-01-02 14:23:06 +01:00
Igor S. Gerasimov
cd8e2a5d8a
Update int for ___tracy_connected
2025-01-02 14:20:37 +01:00
Igor S. Gerasimov
a8f844b970
Use int32_t type for depth in client
2025-01-02 14:19:12 +01:00
Igor S. Gerasimov
78bca3f0e1
Use int32_t for callstack (depth)
2025-01-02 14:04:06 +01:00
Igor S. Gerasimov
4929ac6487
Use int32_t for secure flag
2025-01-02 13:45:47 +01:00
Igor S. Gerasimov
39d382b033
Use int32_t for active flag
2025-01-02 13:42:22 +01:00
Igor S. Gerasimov
8baa50b2f5
Update int for ___tracy_profiler_started
2025-01-02 13:28:39 +01:00
Igor S. Gerasimov
7f516e2fed
Update int type in structures
2025-01-02 13:21:44 +01:00
Bartosz Taudul
8b0b2343e1
Merge pull request #957 from foxtran/feature/merge-calls-callstack
...
Simplify API by decreasing a number of entry points
2025-01-02 12:08:39 +01:00
Igor S. Gerasimov
b9c7cd1738
Fix code formatting
2025-01-02 11:49:51 +01:00
Igor S. Gerasimov
31eeb843c7
Small reformat
2025-01-02 11:26:56 +01:00
Igor S. Gerasimov
d30a2d6854
Simplify ZoneBegin functions
2025-01-02 11:26:56 +01:00
Bartosz Taudul
38636648d3
Merge pull request #960 from JasonnnW3000/master
...
Update LICENSE, fix copyright license year
2025-01-01 12:55:33 +01:00
JasonnnW3000
23bfabc6c2
Update LICENSE, fix license year
...
Signed-off-by: JasonnnW3000 <sufssl04@gmail.com >
2025-01-01 05:50:07 -05:00
Bartosz Taudul
57f1a63b3f
Merge pull request #956 from foxtran/fix/incompatible-MANUAL_LIFETIME
...
Generate human-readable errors when TRACY_MANUAL_LIFETIME is set and TRACT_DELAYED_INIT is not
2024-12-27 12:32:51 +01:00
Igor S. Gerasimov
3f700c93a6
Do not unset TRACY_CALLSTACK
2024-12-27 11:47:02 +01:00
Igor S. Gerasimov
a2fce55aee
Rename has_stacktrace -> has_callstack
2024-12-27 11:43:00 +01:00
Igor S. Gerasimov
9aba23bbb0
Remove TRACY_HAS_STACKCALL from TracyC.h
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
96ba28e761
Use constexpr instead of macro in memory manager in C API
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
39137d809e
Accept zero-depth callstack
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
117ab107c1
Simplify macroses for stack collections
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
4591dfa208
Simplify tracy::Profiler defines
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
e9eecbb2c6
Replace #ifdef TRACT_HAS_CALLSTACK with constexpr call
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
cf912bbb19
Merge ScopedZone initializers
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
1c63239a78
Always collect callstack
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
e9664a1c87
Introduce has_stacktrace function
2024-12-27 11:29:41 +01:00
Igor S. Gerasimov
caf0047367
Catch disabled TRACY_DELAYED_INIT when TRACY_MANUAL_LIFETIME is enabled
2024-12-27 08:58:00 +01:00
Igor S. Gerasimov
5051db201e
Show error message if TRACY_MANUAL_LIFETIME is enabled without enabled TRACY_DELAYED_INIT
2024-12-27 08:51:50 +01:00
Bartosz Taudul
6452690e57
Merge pull request #948 from avilleret/avilleret/csvexport_plot
...
add very simple plot export
2024-12-23 13:41:02 +01:00
Antoine Villeret
aa28504c60
add very simple plot export
2024-12-23 13:12:51 +01:00
Bartosz Taudul
96e1cb17c6
Merge pull request #944 from foxtran/patch-2
...
Enable -fexperimental-library only for C++ frontend of AppleClang
2024-12-20 12:36:39 +01:00
foxtran
07d38d608e
Enable -fexperimental-library only for C++
2024-12-20 11:55:18 +01:00
foxtran
01a7f62650
Enable -fexperimental-library only for AppleClang
2024-12-20 11:39:49 +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
Bartosz Taudul
87c54f92cf
Merge pull request #941 from UnixY2K/patch-1
...
[Meson][Windows] detect MSVC usage
2024-12-12 21:00:04 +01:00
Jonathan Guzmán
b48ab72cf0
detect MSVC usage
...
previous check tested for compiler ID, fixed the detection to an specific MSVC macro and the current C++ version so it does not override an user specified version
2024-12-12 12:37:53 -06:00
Bartosz Taudul
45c4dc5124
Bump imgui to 1.91.6-docking.
2024-12-11 17:08:21 +01:00
Bartosz Taudul
f703cc33cf
Merge pull request #939 from eibach/feature_hexvalue
...
Display zone values also in hex
2024-12-10 11:41:22 +01:00
Dirk Eibach
8f25eaf54e
Display zone values also in hex
2024-12-10 11:07:48 +01:00
Bartosz Taudul
c214804aa1
Merge pull request #935 from JCash/missing-namespace
...
Added missing tracy:: to some macros
2024-12-01 17:02:15 +01:00
JCash
c5797e4e36
Added missing tracy::
2024-12-01 16:19:27 +01:00
Bartosz Taudul
a9e8f9a5f8
Merge pull request #931 from eibach/feature_abstime
...
Add absolute time info to Zone info view
2024-11-27 22:59:27 +01:00
Dirk Eibach
f0ee324399
Add absolute time info to Zone info view
2024-11-27 22:31:48 +01:00
Bartosz Taudul
759b4c3bfe
Merge pull request #927 from sacereda/systrace-leak
...
Leak, returned value from GetThreadDescription not freed
2024-11-19 14:50:56 +01:00
Sergio Acereda
b9ee0d3b4c
Leak, returned value from GetThreadDescription not freed
2024-11-19 14:24:50 +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
wernhervondata
b9b808ca12
fixup! percentiles p75, p90 for FindZone view
2024-11-17 10:26:24 +01:00
wernhervondata
cc0f158c16
percentiles p75, p90 for FindZone view
2024-11-16 15:11:46 +01:00
Bartosz Taudul
5120ad8311
Merge pull request #925 from TroutZhang/patch-1
...
Fix crash on Android due to wrong TLS model
2024-11-16 11:58:05 +01:00
Trout Zhang
339a92a7b2
Fix crash on Android due to wrong TLS model
2024-11-15 18:22:35 +02:00
imkunet
0cac843ad7
Add scroll modifier options
2024-11-14 18:10:14 +01:00
Bartosz Taudul
3c0db7e3c3
Merge pull request #924 from fknorr/sys-power-fscanf-warning
...
Silence GCC fscanf warning in TracySysPower.cpp
2024-11-13 11:30:25 +01:00
Fabian Knorr
7ef690bd5a
Silence GCC fscanf warning in TracySysPower.cpp
...
fscanf is [[warn_unused_result]], which triggers -Wunused-result. In
this instance it is correct for maxRange to remain unchanged if reading
from sysfs should fail for some reason.
2024-11-13 10:15:05 +01:00
Bartosz Taudul
16ef91c238
Bump imgui to 1.91.5-docking.
2024-11-07 22:33:39 +01:00
Bartosz Taudul
ee06542f1f
Restrict mold linker to Linux.
2024-10-30 17:11:51 +01:00
Bartosz Taudul
caa61de540
Do not build fat macos capstone library.
2024-10-30 17:10:40 +01:00
Bartosz Taudul
55ea2a20e7
Set minimum size for folded flame graph items.
2024-10-27 19:59:48 +01:00
Bartosz Taudul
2097e3c836
Normalize flame graph sample frame names, to mach callstack list behavior.
2024-10-27 19:53:32 +01:00
Bartosz Taudul
84718101fe
Use proper name for inline frames in flame graph.
2024-10-27 19:44:40 +01:00
Bartosz Taudul
ecf3b30baf
Add minimum width for flame graph items to be drawn.
2024-10-27 12:53:52 +01:00
Bartosz Taudul
ceeea7712d
Use precalculated start times.
2024-10-27 12:00:34 +01:00
Bartosz Taudul
9d2f874b02
Calculate flame graph begin times.
2024-10-27 11:58:23 +01:00
Bartosz Taudul
92241fc0a4
Fix typo.
2024-10-27 11:30:50 +01:00
Bartosz Taudul
869d75f53e
Extract flame graph level drawing to a separate function.
2024-10-27 11:27:44 +01:00
Bartosz Taudul
a916050724
Add memory discard to C API.
2024-10-21 18:31:49 +02:00
Bartosz Taudul
872367f068
Process memory pool discard events.
2024-10-21 18:22:22 +02:00
Bartosz Taudul
cacd71c401
Add arena allocator test.
2024-10-21 18:22:22 +02:00
Bartosz Taudul
f4df9013bb
Add memory discard message.
...
This can be used to erase all allocations made within the named memory
pool. The usual use case would be for arena allocators, which allocate
by advancing a pointer and never have to free the memory. There is no
tracking of individual allocations and everything is freed frequently,
by reseting the pointer, for example once per frame.
Since this is used in special-purpose allocators, there is no support
for discarding the memory of the default memory pool.
2024-10-21 18:22:22 +02:00
Bartosz Taudul
3dc68bcb76
Update ImGui to 1.91.4-docking.
2024-10-18 22:58:04 +02:00
Bartosz Taudul
d0a7ee1692
Center elevated privileges warning message.
2024-10-16 00:32:11 +02:00
Bartosz Taudul
60f461d94d
Add debug build note to about window.
2024-10-16 00:28:24 +02:00
Bartosz Taudul
f7e26acfb9
Additional kernel frame check.
2024-10-16 00:22:06 +02:00
Bartosz Taudul
9baf5f403c
Make the check explicit.
2024-10-16 00:21:01 +02:00
Bartosz Taudul
44bb5d474b
Simplify condition.
2024-10-16 00:21:01 +02:00
Bartosz Taudul
c2b4e81493
Display omitted external frame counts.
2024-10-15 02:22:52 +02:00
Bartosz Taudul
27d7939cc1
Improve "no annotations" view.
2024-10-15 02:04:45 +02:00
Bartosz Taudul
1ab0b5abd2
Improve "no wait stacks" view.
2024-10-15 01:51:58 +02:00
Bartosz Taudul
8a7f540d7c
Fill emptiness in find zone window awaiting for query.
2024-10-15 01:29:08 +02:00
Bartosz Taudul
697ea8b3b3
Mark debug builds.
2024-10-14 23:39:54 +02:00
Bartosz Taudul
1bd56a93f0
Don't mix thread order and thread data vectors.
2024-10-13 00:04:10 +02:00
Bartosz Taudul
1bd84419c0
Extend plots to the end of the trace.
2024-10-09 23:55:50 +02:00
Bartosz Taudul
90c072b66c
Update manual.
2024-10-06 15:38:28 +02:00
Bartosz Taudul
096eec1b84
Improve build process documentation.
2024-10-06 15:24:25 +02:00
Bartosz Taudul
9839e4aea7
More unwanted architectures.
2024-10-05 13:04:21 +02:00
Bartosz Taudul
1499da51b8
Add label for local call stack context menu.
2024-10-04 23:49:06 +02:00
Bartosz Taudul
3e41052853
Add context menu to left-click on item in symbol statistics list.
...
The context menu contains two items:
1. "View symbol", which shows the symbol code / disassembly. This was
previously available by right-clicking on the source file name.
2. "Sample entry call stacks", which brings up the list window that
was previously available with left-click on the entry line.
This change intends to make the symbol view easier to discover.
2024-10-04 23:38:02 +02:00
Bartosz Taudul
384646b03b
Disable wrapping of message lines in zone info window.
...
This unifies the behavior with message list in messages window.
2024-10-04 22:47:25 +02:00
Bartosz Taudul
471ed0ef65
Calculate proper message list size when children messages are excluded.
2024-10-04 22:41:17 +02:00
Bartosz Taudul
8d418760c0
Statistics view also can have no entries to display.
2024-10-04 22:34:40 +02:00
Bartosz Taudul
9ab2f35c08
Fix going to a phantom line when there's no source file available.
2024-10-04 18:01:51 +02:00
Bartosz Taudul
a8c6c5f50e
Disable not needed arch support in capstone.
2024-10-04 17:31:28 +02:00
Bartosz Taudul
5454b3202d
Bump capstone to 6.0.0-Alpha1.
2024-10-04 17:19:18 +02:00
Bartosz Taudul
fd5ee53251
Update ImGui to 1.91.3-docking.
2024-10-04 17:04:47 +02:00
Bartosz Taudul
b46d8db565
Workaround CPM issues with patching non-cached checkouts.
2024-10-04 00:36:29 +02:00
Bartosz Taudul
4497201928
Merge pull request #899 from Jan200101/PR/header-merge
...
Install header files into one folder
2024-10-02 22:55:31 +02:00
Bartosz Taudul
e0c3efee6c
Merge pull request #898 from Jan200101/PR/arch-cmake-target
...
Export cmake config into library directory
2024-10-02 22:55:03 +02:00
Jan200101
f45dc88bf8
Install header files into one folder
...
all headers from one project are best kept in one place
2024-10-02 22:51:01 +02:00
Jan200101
4490f9cb41
Export cmake config into library directory
...
because the target contains architecture dependent information (for example library path) its best to store it in an architecture dependent path
2024-10-02 22:50:06 +02:00
Bartosz Taudul
13d9ed7e87
Merge pull request #889 from jkriegshauser/fix-long-string-crash
...
Safe copy to fix issue #888
2024-10-02 22:28:24 +02:00
Joshua Kriegshauser
66edfaec42
More PR feedback
2024-10-02 12:50:12 -07:00
Joshua Kriegshauser
e1554a13e0
PR feedback
2024-10-02 11:21:34 -07:00
Joshua Kriegshauser
9dfb1e98b9
Line and braces tweaks
2024-10-02 11:21:34 -07:00
Joshua Kriegshauser
97a6a3dde7
always override unhandled exception filter
2024-10-02 11:21:34 -07:00
Joshua Kriegshauser
cc860fe56a
Reduce template code
2024-10-02 11:21:34 -07:00
Joshua Kriegshauser
201dcb6a8a
Tweaks
2024-10-02 11:21:34 -07:00
Joshua Kriegshauser
5213c53bb0
Use SetUnhandledExceptionFilter instead of vectored exceptions
2024-10-02 11:21:34 -07:00
Joshua Kriegshauser
9378718231
Safe copy
2024-10-02 11:21:34 -07:00
Bartosz Taudul
fe6b79082f
Merge pull request #897 from Devaniti/master
...
Added Custom GPU Context Type
2024-10-02 19:50:20 +02:00
Dmytro Bulatov
34879d6dd3
Bumped protocol version
2024-10-03 02:48:50 +09:00
Dmytro Bulatov
defb91abc1
Added Custom GPU Context Type
2024-10-03 01:55:29 +09:00
Bartosz Taudul
e6eb9899bb
Merge pull request #896 from mcourteaux/master
...
Correct misleading comment.
2024-09-30 17:07:46 +02:00
Martijn Courteaux
28a229c594
Correct misleading comment.
2024-09-30 16:26:31 +02:00
Bartosz Taudul
9f4d7fa5ad
Draw kernel functions red in flame graph.
2024-09-29 00:31:01 +02:00
Bartosz Taudul
346d8a45c6
Cache flame graph.
2024-09-29 00:26:00 +02:00
Bartosz Taudul
02d60a3dde
Frames already have the correct symbol address.
2024-09-28 23:58:40 +02:00
Bartosz Taudul
d0b6869e9e
Sym must be valid.
2024-09-28 23:35:39 +02:00
Bartosz Taudul
20c4822c98
Parallelize building flame graph.
2024-09-28 17:34:16 +02:00
Bartosz Taudul
da1e92956f
Enable running time calculation for instrumented zones in flame graph.
2024-09-28 16:29:21 +02:00
Bartosz Taudul
21721dd814
Add zone running time UI to flame graph window.
2024-09-28 16:17:42 +02:00
Bartosz Taudul
98a064efa9
Allow inspection of symbol from flame graph.
2024-09-28 15:30:50 +02:00
Bartosz Taudul
5caeffa19a
Proper way to detect mouse click.
2024-09-28 15:30:41 +02:00
Bartosz Taudul
e8a9d228c5
Darken inline items in flame graph.
2024-09-28 15:10:04 +02:00
Bartosz Taudul
2ac51fb597
Yet another color darkening function.
2024-09-28 15:10:04 +02:00
Bartosz Taudul
7465b4ffaf
Add tooltip for sampled items in flame graph.
2024-09-28 15:10:04 +02:00
Bartosz Taudul
8819ea745d
Another stray DPI setting in emscripten.
2024-09-28 14:04:17 +02:00
Bartosz Taudul
2435a76caa
Don't set dpiScale if not doing anything with it.
2024-09-28 14:01:18 +02:00
Bartosz Taudul
9f682c6015
Do not perform DPI setup when DPI might be not yet known.
...
Reloading fonts is a fairly lenghty operation (~30-50 ms), so avoid doing
it twice in a row.
2024-09-28 13:55:24 +02:00
Bartosz Taudul
44ae59f363
Enforce DPI scale setup on first render frame.
...
Not all backends know their DPI before window is available.
2024-09-28 13:54:39 +02:00
Bartosz Taudul
04b921e200
Cosmetics.
2024-09-28 13:54:10 +02:00
Bartosz Taudul
290e546f47
Build everything with profiling flags.
2024-09-28 13:38:21 +02:00
Bartosz Taudul
0e6ba23800
Fix columns size in source view files list.
2024-09-28 02:27:45 +02:00
Bartosz Taudul
429de331d6
Show message in find zone window when no zones were collected.
2024-09-28 02:05:30 +02:00
Bartosz Taudul
796f09ef23
Better "no memory data" view in memory window.
2024-09-28 02:00:56 +02:00
Bartosz Taudul
219da446f4
Improve "no messages" view.
2024-09-28 01:56:40 +02:00
Bartosz Taudul
7cb82b9894
Better "load second trace" view in compare window.
2024-09-28 01:53:37 +02:00
Bartosz Taudul
293c76625c
Add centered button function.
2024-09-28 01:53:26 +02:00
Bartosz Taudul
05d00388ed
Better "please wait" view in compare window.
2024-09-28 01:45:08 +02:00
Bartosz Taudul
39ee307409
Improve "please wait" view in find zone window.
2024-09-28 01:42:33 +02:00
Bartosz Taudul
d734aaa357
Improve "no data" screens in statistics window.
2024-09-28 01:39:49 +02:00
Bartosz Taudul
a34b058701
Improve alignment of background tasks circle animation.
2024-09-28 01:30:18 +02:00
Bartosz Taudul
52e0cf38b7
Display message when there's no data for flame graph.
2024-09-28 01:24:59 +02:00
Bartosz Taudul
dfcc5ae37e
Draw time measure in flame graph.
2024-09-28 01:14:46 +02:00
Bartosz Taudul
8740ea710a
Symbol might be unavailable.
2024-09-28 01:09:49 +02:00
Bartosz Taudul
6721db8600
Proper way of enabling libdebuginfod.
2024-09-27 19:59:40 +02:00
Bartosz Taudul
157bf05c50
Setup mailmap.
2024-09-27 16:56:55 +02:00
Bartosz Taudul
2de14f4e38
Patching CPM checkouts is broken without a cache.
...
https://github.com/cpm-cmake/CPM.cmake/issues/577
2024-09-27 16:12:42 +02:00
Bartosz Taudul
616e7c2eec
Retrieve ImGui with CPM.
...
ImGui OpenGL loader is patched, and not regenerated, because the gl3w
script requires network connectivity to download the header files from
Khronos at build time.
2024-09-27 15:55:22 +02:00
Bartosz Taudul
1769c2f457
Add imgui opengl loader diff, for reference.
...
The repo url is https://github.com/dearimgui/gl3w_stripped .
2024-09-27 15:54:14 +02:00
Bartosz Taudul
0e47224578
Universally use add_compile_options().
2024-09-27 14:10:30 +02:00
Bartosz Taudul
be53a82e78
Another try at fixing macos build.
2024-09-26 16:22:47 +02:00
Bartosz Taudul
bc60621d61
Use svg favicon.
2024-09-26 16:21:16 +02:00
Bartosz Taudul
8f8871454c
Fix macos build, hopefully.
2024-09-26 16:02:47 +02:00
Bartosz Taudul
1c1faeff2d
Replace parallel STL with PPQSort.
...
PPQSort is supposedly quite fast: https://github.com/GabTux/PPQSort
More importantly, it does not depend on TBB fuckery, so there's no longer
a need to link with an external library that people may or may not have.
The NO_PARALLEL_STL option is out, as it was provided solely to deal with
TBB being not available. Sequential sorting is still used on emscripten.
2024-09-26 14:41:59 +02:00
Bartosz Taudul
d400183483
Replace stray std::sort() with pdqsort_branchless().
2024-09-26 14:36:56 +02:00
Bartosz Taudul
717605065a
Mark comparators const.
2024-09-26 14:04:20 +02:00
Bartosz Taudul
5b1f3f67c3
Do not include library dependencies in the default target.
...
We are only interested in outputting the executable program.
2024-09-26 13:04:47 +02:00
Bartosz Taudul
721cf57b28
Remove obsolete library build files.
2024-09-26 12:15:56 +02:00
Bartosz Taudul
9c5c082d83
Provide zstd compressed files.
2024-09-26 00:25:13 +02:00
Bartosz Taudul
684c34dc21
Handle focus in/out on emscripten to fix mouse button stickiness.
2024-09-25 00:36:55 +02:00
Bartosz Taudul
bbbe6ce894
Update NEWS.
2024-09-24 20:12:19 +02:00
Bartosz Taudul
fbd359099b
Document top inline option.
2024-09-24 19:57:21 +02:00
Bartosz Taudul
315864e434
Mark self function in inlines list if top inline is enabled.
2024-09-24 19:47:41 +02:00
Bartosz Taudul
b676406878
Assert on parent name being null.
2024-09-24 19:44:36 +02:00
Bartosz Taudul
aca0f3cad7
Workaround failing assert.
...
The aggregate inlines code branch can fail when the top inlines option
is enabled, on an assert. This was present in the code before, it's just
that enabling top inlines is equivalent to expanding all the collapsed
symbols, which is not something practical to do.
Workaround by adding a condition instead of the assert. Finding a repro
case would be better to figure out what's exactly happening there, but
we are where we are.
2024-09-24 19:42:35 +02:00
Bartosz Taudul
2d6bcff3a6
Add option to display top cost inlines in symbol statistics list.
2024-09-24 19:42:35 +02:00
Bartosz Taudul
ae2a7c60b8
Calculate inline symbols list earlier.
2024-09-24 19:42:34 +02:00
Bartosz Taudul
9b9a883d07
Fix crash introduced in 605cdcb5.
2024-09-24 17:15:43 +02:00
Bartosz Taudul
f6882e2a5d
Use a proper way to enable compiler diagnostics with color.
2024-09-23 23:11:08 +02:00
Bartosz Taudul
7792b95443
Workaround MSVC mutex fubar.
2024-09-23 23:10:11 +02:00
Bartosz Taudul
19960c0287
Fix invalid memory read when pointers are not 64-bit.
...
Fixes invalid read on emscripten.
2024-09-22 13:36:15 +02:00
Bartosz Taudul
07a561176c
Remove AnalyzeTemporaryDtors clang-tidy setting.
...
https://github.com/llvm/llvm-project/issues/62020
2024-09-22 13:11:39 +02:00
Bartosz Taudul
82a0476ad5
Revert "Copying compile_commands.json is no longer needed, apparently."
...
This reverts commit de2a9fd18f .
2024-09-22 13:08:10 +02:00
Bartosz Taudul
86270dac6d
Set unique ID for frame list invisible buttons.
2024-09-22 13:00:30 +02:00
Bartosz Taudul
8b9da2efba
Add support for setting mouse cursor on emscripten.
2024-09-20 23:30:21 +02:00
Bartosz Taudul
207605f93b
Ignore git unsafe directory.
2024-09-20 22:39:05 +02:00
Bartosz Taudul
650e1b9739
Pass github.sha as git rev.
2024-09-20 22:09:30 +02:00
Bartosz Taudul
c3cf13fc64
Allow passing custom git revision to CMake.
2024-09-20 22:08:03 +02:00
Bartosz Taudul
87285cfcaa
Add support for using other rev than HEAD in git-ref.py.
2024-09-20 22:04:25 +02:00
Bartosz Taudul
821f2f907b
Tracy compiles its own freetype.
2024-09-20 21:46:32 +02:00
Bartosz Taudul
a68ef3c27b
Emscripten deployment steps.
2024-09-20 21:40:10 +02:00
Bartosz Taudul
aa451b48bb
Add emscripten build job.
2024-09-20 21:28:32 +02:00
Bartosz Taudul
39497ab77b
Disable scroll-by-page.
2024-09-20 19:50:30 +02:00
Bartosz Taudul
a47a51453c
Update ImGui to 10fe2b67.
2024-09-20 19:48:55 +02:00
Bartosz Taudul
fc303d9594
Don't sort flame graph by default.
2024-09-20 01:29:47 +02:00
Bartosz Taudul
0b5b674e1f
Fix indentation.
2024-09-20 01:02:48 +02:00
Bartosz Taudul
e793f927fc
Add feels-good scaling factor to wheel scroll values.
2024-09-19 21:02:58 +02:00
Bartosz Taudul
4795011b12
Remove debug printf.
2024-09-19 20:58:05 +02:00
Bartosz Taudul
f971faab58
Fix horizontal wheel scroll direction.
2024-09-19 20:53:44 +02:00
Bartosz Taudul
07995f0222
Run two render worker threads on emscripten.
2024-09-19 20:44:42 +02:00
Bartosz Taudul
25899fef73
Disable ImGui debug tools in non-debug builds.
2024-09-19 20:13:37 +02:00
Bartosz Taudul
de2a9fd18f
Copying compile_commands.json is no longer needed, apparently.
2024-09-19 20:13:20 +02:00
Bartosz Taudul
1109e3ce2d
Add html5.h emscripten backend.
2024-09-19 19:56:52 +02:00
Bartosz Taudul
0b72fd8a97
Update ImGui to 1.91.2 + docking.
2024-09-19 18:04:44 +02:00
Bartosz Taudul
00f7beee43
No connections allowed on emscripten.
2024-09-18 19:30:54 +02:00
Bartosz Taudul
20905406da
Don't use obsolete ImGui functionality.
2024-09-18 19:13:26 +02:00
Bartosz Taudul
6ff9869120
Bump ImGui to 1.90.8 + docking.
2024-09-18 19:13:26 +02:00
Bartosz Taudul
0f0f2c6b9b
Compile everything on emscripten with the same set of flags.
2024-09-18 19:13:26 +02:00
Bartosz Taudul
3bb6f1bb68
Adjust link flags for emscripten.
...
Increase the thread pool to account for background jobs. Increase stack
size, as it was overflowing. Move the pthread flag out of config.cmake.
2024-09-18 19:13:26 +02:00
Bartosz Taudul
3bea3b7725
Disable resolv service on emscripten.
2024-09-18 19:13:25 +02:00
Bartosz Taudul
758080e579
Merge pull request #886 from mcourteaux/master
...
Fix inheriting color bug.
2024-09-14 18:35:56 +02:00
Martijn Courteaux
0f6002822c
Fix inheriting color bug.
2024-09-14 14:10:55 +02:00
Bartosz Taudul
44d1502474
Always keep cursor shape initialized.
2024-09-14 01:15:02 +02:00
Bartosz Taudul
5a67246426
Silence warnings.
2024-09-14 01:10:14 +02:00
Bartosz Taudul
0d17d5eaaa
Remove dead code.
2024-09-14 01:04:03 +02:00
Bartosz Taudul
f387929653
No capture is needed.
2024-09-14 01:03:22 +02:00
Bartosz Taudul
d8f4c8bc7e
Don't perform arithmetic on enum values.
2024-09-14 01:00:19 +02:00
Bartosz Taudul
8a6e525ea9
Get up-to-date wayland-protocols directly from freedesktop.
2024-09-13 22:30:19 +02:00
Bartosz Taudul
b359936c04
Zones can inherit custom colors from parents.
...
Co-authored-by: Martijn Courteaux <courteauxmartijn@gmail.com >
2024-09-13 22:14:22 +02:00
Bartosz Taudul
8724400884
Merge pull request #882 from slomp/slomp/metal-patch
...
Patching Apple/Metal back-end Debug issues
2024-09-13 12:15:47 +02:00
Marcos Slomp
7bb59b6784
fixing debugging & scoping issues
2024-09-12 17:24:00 -07:00
Bartosz Taudul
26bf9b60cd
Don't redirect output to debug console in VS Code.
2024-09-12 23:16:15 +02:00
Bartosz Taudul
55da9d1084
Merge pull request #879 from mcourteaux/master
...
Fix ThreadData-sorting bug.
2024-09-12 18:17:10 +02:00
Bartosz Taudul
d71754298c
Merge pull request #880 from Simple-Robotics/topic/profiler-install-target
...
[profiler] Add install target
2024-09-11 19:35:09 +02:00
Justin Carpentier
8fc0dcfd48
[profiler] Add install target
2024-09-11 19:11:35 +02:00
Martijn Courteaux
46ec677702
Fix thread-sorting bug.
2024-09-11 10:44:34 +02:00
Bartosz Taudul
b687831394
Add protocol version for 0.11.1.
2024-09-10 20:47:32 +02:00
Bartosz Taudul
5632021003
Add missing GPU context name for Metal.
2024-09-10 19:13:35 +02:00
Bartosz Taudul
1478e74963
Update GPU APIs list in README.
2024-09-10 19:09:25 +02:00
Bartosz Taudul
9a3a6ba3ef
Bump protocol due to Metal adding an enum entry.
2024-09-10 19:08:43 +02:00
Bartosz Taudul
e8ff26e173
Merge pull request #793 from slomp/slomp/metal
...
Metal (Apple) GPU back-end for Tracy
2024-09-10 19:08:04 +02:00
Marcos Slomp
c168ff6c3c
updating documentation
2024-09-09 17:26:33 -07:00
Marcos Slomp
bd061d1d1b
removing unsupported macro interfaces
2024-09-09 17:20:19 -07:00
Marcos Slomp
19f376a6c9
fixixng interface macros
2024-09-09 17:08:15 -07:00
Bartosz Taudul
49f0ca5339
Add missing function ptr prototypes.
2024-09-09 21:49:05 +02:00
Bartosz Taudul
d46eebf794
Trim address entry field.
...
Sometimes a stray whitespace may be inserted in the address field, for
example when copying and pasting from somewhere else.
2024-09-09 20:41:28 +02:00
Bartosz Taudul
5795bc5766
Include git reference in user agent.
2024-09-09 20:27:12 +02:00
Bartosz Taudul
323778e96f
Probe for Wine in HttpRequest.
2024-09-09 20:25:09 +02:00
Bartosz Taudul
48763ef836
Thread selection in flame graph.
2024-09-09 01:31:49 +02:00
Bartosz Taudul
504b9d215e
Sampling mode flame graph.
2024-09-08 23:07:15 +02:00
Bartosz Taudul
ce39032bc5
Update NEWS.
2024-09-08 21:19:47 +02:00
Bartosz Taudul
88f0f6680b
Implement Wayland clipboard paste.
2024-09-08 21:16:21 +02:00
Bartosz Taudul
25ff997548
Implement clipboard copy on Wayland.
2024-09-08 21:16:20 +02:00
Bartosz Taudul
59092bef72
Create data device for a seat.
2024-09-08 19:20:16 +02:00
Bartosz Taudul
bec8973265
Bind data device manager.
2024-09-08 18:29:02 +02:00
Bartosz Taudul
d4f6537b95
Cosmetics.
2024-09-08 18:28:56 +02:00
Bartosz Taudul
f1bfbb9821
Allow easy retrieval of git ref from the about dialog.
2024-09-08 17:47:46 +02:00
Bartosz Taudul
45b9aff761
Display counts of selectable items, if some are unselected.
2024-09-08 17:44:42 +02:00
Bartosz Taudul
8b8ff9363d
Cache last source location entry.
...
227 ms -> 138 ms
2024-09-08 17:01:50 +02:00
Bartosz Taudul
0c0e4f554f
Do a linear search instead of using a map.
...
513 ms -> 227 ms for a trace with 66 unique source locations and 179 million
zones.
2024-09-08 16:10:39 +02:00
Bartosz Taudul
d67598f0fe
Hide advanced options in trace save dialog.
...
The default settings are good enough.
2024-09-08 15:54:42 +02:00
Bartosz Taudul
0d8b2b6252
Adapt frame graph tooltip to look more like zone tooltip.
2024-09-08 15:41:44 +02:00
Bartosz Taudul
97cf0bd11f
Bump freetype to 2.13.3.
2024-09-08 15:33:36 +02:00
Bartosz Taudul
c783a48bae
Always include CMake binary dir in include path.
2024-09-08 14:52:57 +02:00
Bartosz Taudul
1950040461
Print git ref in the about dialog.
2024-09-08 14:23:05 +02:00
Bartosz Taudul
5934f5da9a
Generate git revision to a header file.
2024-09-08 14:18:52 +02:00
Bartosz Taudul
959f0de7e5
Open find zone from flame graph.
2024-09-08 13:48:22 +02:00
Bartosz Taudul
6080b8742a
Fix memory leak.
2024-09-08 13:39:40 +02:00
Bartosz Taudul
4afc0960fb
Add flame graph tooltip.
2024-09-08 13:20:37 +02:00
Bartosz Taudul
d8849af800
Drawing the flame graph.
2024-09-08 13:11:24 +02:00
Bartosz Taudul
e4ec798762
Basic flame graph window layout.
2024-09-08 12:33:11 +02:00
Bartosz Taudul
5b75954c5b
Flame graph builder.
2024-09-08 12:33:11 +02:00
Bartosz Taudul
692fcc225f
Add flame graph window.
2024-09-08 12:33:09 +02:00
Bartosz Taudul
11777e8136
Check if core_id and die_id exist.
2024-09-07 23:53:57 +02:00
Bartosz Taudul
ea4de3be36
Detect and report if running under Wine.
2024-09-07 22:09:00 +02:00
Bartosz Taudul
64f2008cc1
Disable transparency on collapsed windows title bars.
2024-09-07 18:03:38 +02:00
Bartosz Taudul
e393ade59d
Shorten menu bar button names.
2024-09-07 18:00:59 +02:00
Marcos Slomp
0ffa0be4fd
addressing code review comments
2024-09-03 11:15:39 -07:00
Bartosz Taudul
8e3d250654
Check for errors from GetLogicalProcessorInformationEx().
2024-08-31 11:36:59 +02:00
Marcos Slomp
fe51f02a25
cleanup and comments
2024-08-26 08:15:47 -07:00
Marcos Slomp
aa85824455
comments about the decisions and behavior of the Metal back-end
2024-08-26 08:15:47 -07:00
Marcos Slomp
799360dfb8
Collect pending timestamps during shutdown
2024-08-26 08:15:47 -07:00
Marcos Slomp
ea65b145c6
adding wiretap for debugging purposes
2024-08-26 08:15:47 -07:00
Marcos Slomp
06b23cc293
more cleanup
2024-08-26 08:15:47 -07:00
Marcos Slomp
5ec7565852
cleanup
2024-08-26 08:15:47 -07:00
Marcos Slomp
638fa1f06c
blarg3
2024-08-26 08:15:47 -07:00
Marcos Slomp
cef49c2269
blarg again...
2024-08-26 08:15:47 -07:00
Marcos Slomp
5f09d454be
blargh
2024-08-26 08:15:47 -07:00
Marcos Slomp
91ca0f2f89
improved panic macro (supports print args)
2024-08-26 08:15:47 -07:00
Marcos Slomp
04cf494d9c
bugfixes
2024-08-26 08:15:47 -07:00
Marcos Slomp
b11e66594d
debugging
2024-08-26 08:15:47 -07:00
Marcos Slomp
ad2c2efacd
fixing collect wrap-around
2024-08-26 08:15:47 -07:00
Marcos Slomp
a9538799da
more debugging
2024-08-26 08:15:47 -07:00
Marcos Slomp
c374440379
adding blit pass and render pass interfaces
2024-08-26 08:15:47 -07:00
Marcos Slomp
c6cc424991
collecting/resolving timestamps in pairs
2024-08-26 08:15:47 -07:00
Marcos Slomp
6d04913b4a
stale comments
2024-08-26 08:15:47 -07:00
Marcos Slomp
3d69c485be
fixing timestamp mapping range
2024-08-26 08:15:47 -07:00
Marcos Slomp
94407dbd1f
giving up on calibration, for now
2024-08-26 08:15:47 -07:00
Marcos Slomp
fd1e60e2fd
fixing cpu timestamp baseline
2024-08-26 08:15:47 -07:00
Marcos Slomp
4b695cc3dd
debugging timestamps...
2024-08-26 08:15:47 -07:00
Marcos Slomp
47180dbf7f
basing metal zone scopes on MTLComputePassDescriptor
2024-08-26 08:15:47 -07:00
Marcos Slomp
1dfc926eb8
Metal back-end WIP
2024-08-26 08:15:47 -07:00
Bartosz Taudul
e26c34346b
libbacktrace: support FDPIC (1dd5c40)
2024-08-24 18:15:52 +02:00
Bartosz Taudul
0d0e56dca3
libbacktrace: avoid infinite recursion (febbb9b)
2024-08-24 18:02:05 +02:00
Bartosz Taudul
12c8592325
libbacktrace: fix UBSAN issues (5aa9254)
2024-08-24 18:01:10 +02:00
Bartosz Taudul
ef21f5867e
libbacktrace: correctly gather Mach-O symbol table (3fda5a8)
2024-08-24 17:57:43 +02:00
Bartosz Taudul
ba79deddf6
libbacktrace: it's OK if zstd decompressor sees no backward bits (4ead348)
2024-08-24 17:55:41 +02:00
Bartosz Taudul
8f3b312b7c
Get CPU die information on windows.
2024-08-24 17:47:00 +02:00
Bartosz Taudul
f7b810a3d1
Mark hyperthread jumps.
2024-08-24 16:52:04 +02:00
Bartosz Taudul
be92ae787c
Add tooltips for thread jumps.
2024-08-24 16:50:02 +02:00
Bartosz Taudul
50bb383667
Display CPU topology data in zone wait regions list.
2024-08-24 16:47:55 +02:00
Bartosz Taudul
844bc1e416
Display die jumps in wait regions list.
2024-08-24 16:37:04 +02:00
Bartosz Taudul
46e979e185
Display die information on CPU data graph.
2024-08-24 16:36:29 +02:00
Bartosz Taudul
2716311f51
Store die number in CpuThreadTopology.
2024-08-24 16:36:04 +02:00
Bartosz Taudul
357b557684
Add die to CPU topology data structures.
...
Drawing dies on the topology chart is a minimal effort for the time being.
An improved version will be added later on.
2024-08-22 20:26:11 +02:00
Bartosz Taudul
e947aeb72d
Read CPU die information on Linux.
2024-08-22 20:26:09 +02:00