Commit Graph
9682 Commits
Author SHA1 Message Date
Bartosz Taudul cea95bdede Do not show external symbols, frame by default. 2026-02-19 00:45:44 +01: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