Frame profiler
For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.10/NEWS.
Under Linux, Tracy will now report how much power the system is using. The specifics of what is measured depends on what the hardware is capable of reporting.
Zone error markers (red regions and error bars) have been removed to be consistent with how all other profiling events are displayed.
See https://wolf.nereid.pl/posts/how-tracy-faster/ if you are interested in more details.
You can find it in the profiler's about menu (the wrench icon in the welcome dialog).
You can go back to previously displayed symbols in the symbol view. Currently the history granularity is at the symbol level.
You can now export messages and thread identifiers of zones.
Vulkan contexts can now use the VK_EXT_host_query_reset
extension and Vulkan symbols can be dynamically loaded. The D3D11 and D3D12 instrumentation has been rewritten.
If you need to run a profiled application under the rr debugger, you can now use the TRACY_PATCHABLE_NOPSLEDS
to make the instrumentation more efficient.
You can now use the TracySetProgramName()
macro to set a custom program name to be sent by the client. You may find this useful if you need to run the same executable in different roles, e.g. one executable would identify itself as a game server, the other as a game client, and so on.
For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.9.1/NEWS.
Compare traces menu can now display source code differences between two traces.
Listings are now annotated with source line information. To improve compatibility with external tools comments are now prefixed with '#' instead of ';'.
Tracy now actively manages timeline vertical scroll offset in order to keep the thread under the mouse cursor in the same place on screen.
See the following video:
Tracy will now query jump and call target addresses. This enables discovery of target function names, even if such function has no samples and is not present in any call stack.
Instead of call 0x7ff61a5380c0
you will now more often see the following:
Tracy on Linux now targets and requires Wayland by default. Other platforms still use GLFW.
Pass LEGACY=1
parameter to make, if you want to instead rely on the GLFW library, like before.
Please don't ask about window decorations on Gnome. Current behavior is the intended behavior. Gnome does not want windows to have decorations, and Tracy respects this choice. If you find this problematic, use a desktop environment that actually listens to its users.
Added warning when the profiler interface is run with privilege elevation. Advice is given to instead run the client with admin rights.
For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.9/NEWS.
public/
directory. This will break your integration!
tracy/
subdirectory, to facilitate setups which previously had Tracy checkout parent directory in the include paths list (i.e. when you included "tracy/Tracy.hpp"
)."Tracy.hpp"
), this could result in third-party library conflicts, e.g. with ImGui. Such scenarios are no longer the case.___tracy_demangle()
function API has been changed. Please refer to the source code for further instructions.TracyPlotConfig()
macro has been changed. Please refer to the manual to see how you can fix this.The range of frame bar colors in the frames overview on top of the screen can be now controlled with the "Target FPS" entry box in the options menu.
Previously zone name shortening supported only namespace removal, in a way that didn't consider function parameters or template arguments. The new shortening rules first perform normalization of the function name:
The next steps consist of repeated removal of namespaces, starting with the most outermost one. While the old process was all or nothing, the new implementation by default will dynamically adjust to the space available, trying to show the most context possible.
Previously shortening was only applied to the zone names displayed on the timeline. Currently this process will also apply to all other places in the UI where function names are displayed.
Symbol file paths are now normalized on libbacktrace systems. For example, instead of /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/std_mutex.h
Tracy will now report such file as /usr/include/c++/12.2.0/bits/std_mutex.h
.
ring.GetTail()
is attributed to the calling line.i
/I
) events where the name
field contains the word frame
as a frame event. The name
is the frame set name.TRACY_DEBUGINFOD
define and link with libdebuginfod.For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.7.8/NEWS.
Time spent in child function calls can be now optionally displayed in the symbol view window. Due to how programs are structured, time will be attributed to the next instruction (where the call will return).
Jump targets (typically out of screen) can be now also seen in tooltips.
Register access color codes are explained in tooltips.
When saving a trace you will be now able to select compression parameters. Previously this was only available through the update
utility.
For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.7.7/NEWS.
Each sampled assembly line has a number of entry call stacks (unique execution paths leading to the instruction) assigned to it. This was previously accessible through the "sample entry call stacks" window, and it is now more exposed in a tooltip, along with a reminder which should increase discoverability of the aforementioned window.
Note: Entry call stacks were previously named "parent call stacks".
Source code contents will now have preview tooltips in various places in the UI. Keep in mind it's possible that the displayed source code might not be up-to-date. Please consult the user manual for the usual caveats.
For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.7.6/NEWS.
Timestamp of the profiled program is now stored in the capture.
Custom GPU context names can be now set through the Tracy*ContextName()
macros.
Source file discovery and caching is now also performed on the client side, giving you insight into sources on remote hosts, without the need to manually copy them.
Most notably this fixes crashes due to memory corruption on macOS. Various other improvements were also made.
For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.7.5/NEWS.
Tables displayed by Tracy can now have their columns reordered, hidden, or sorted both in ascending and in descending order (within reason). The column configuration is preserved between profiler sessions.
The chrome tracing importer will now properly set the trace name, which will be displayed on the profiler's title bar. Thread names, if present in the original capture, will also be converted.
Robustness of the profiler was increased by fixing some issues which previously flew under the radar, for example: