Commit Graph

1307 Commits

Author SHA1 Message Date
Bartosz Taudul
6010770879 Update uops.info data. 2026-03-30 02:23:33 +02:00
Bartosz Taudul
6f91104542 Include git ref in profiler's --help output. 2026-03-28 12:44:12 +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
Bartosz Taudul
e1143fd985 Try to remove excess frames from reconstructed callstack. 2026-03-24 01:14:38 +01: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
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
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
80b8e8284e Allow attaching zone histogram to llm. 2026-03-11 00:42:53 +01: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
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
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
Marcos Slomp
0f170f51c6 report GUI initialization error before terminating 2026-02-28 20:00:11 -08: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
2bc3b87a2d Fix TracyLlm initialization when LLM is disabled. 2026-02-19 18:33:45 +01: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
Bartosz Taudul
2ecb45d8c0 Font data must be always available. 2026-02-17 21:48:43 +01:00
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
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
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