Skip to content

Releases: MethanePowered/Tracy

Tracy Profiler 0.10

16 Jan 20:16
37aff70
Compare
Choose a tag to compare

For a more detailed change list, see https://github.com/wolfpld/tracy/blob/v0.10/NEWS.

System power usage

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.

image

Error markers removal

Zone error markers (red regions and error bars) have been removed to be consistent with how all other profiling events are displayed.

image

Major overhaul of how timeline items are processed in GUI

See https://wolf.nereid.pl/posts/how-tracy-faster/ if you are interested in more details.

Global configuration settings dialog

You can find it in the profiler's about menu (the wrench icon in the welcome dialog).

image

Trace description or filename is now displayed on the window title bar

image

History of viewed symbols

You can go back to previously displayed symbols in the symbol view. Currently the history granularity is at the symbol level.

image

Improvements in csvexport

You can now export messages and thread identifiers of zones.

GPU tracing improvements

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.

Support for running under rr

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.

Custom program name support

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.

Tracy Profiler 0.9.1

28 Feb 17:31
897aec5
Compare
Choose a tag to compare

Source diff when comparing traces

Compare traces menu can now display source code differences between two traces.

Improvements to assembly listings

Listings are now annotated with source line information. To improve compatibility with external tools comments are now prefixed with '#' instead of ';'.

Histogram tooltip will now also show left/right counts.

Timeline handling improvements

Tracy now actively manages timeline vertical scroll offset in order to keep the thread under the mouse cursor in the same place on screen.

Jump and call target queries

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:

Native Wayland support

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.

Privilege warning

Added warning when the profiler interface is run with privilege elevation. Advice is given to instead run the client with admin rights.

See original Tracy release here.

Tracy Profiler 0.9

07 Dec 20:04
5a1f537
Compare
Choose a tag to compare

Breaking changes

  • All the header and source files used for integrating Tracy with applications were moved to the public/ directory. This will break your integration!
    • To fix this, update the source and include directories lists to point to the new location.
    • Tracy include files directly referenced by the client were moved to 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").
    • Previously, if you have included the Tracy checkout directory in your project include directories list (i.e. you could include "Tracy.hpp"), this could result in third-party library conflicts, e.g. with ImGui. Such scenarios are no longer the case.
  • Tracy macros now require to be terminated with a semicolon.
  • The undocumented ___tracy_demangle() function API has been changed. Please refer to the source code for further instructions.
  • The parameter callback and its registration macro have been extended to include user data pointer. You will need to update your code accordingly.
  • The API for TracyPlotConfig() macro has been changed. Please refer to the manual to see how you can fix this.

Plots visualization improvements

  • Each plot now has its own color, which can also be defined by the user.
  • The area below the plot is now optionally filled with a color.
  • Plots can now also be configured to be staircase instead of smooth. This new setting is appropriate for many inputs where only discrete values make sense, e.g. the memory allocation plot.

Frame time target

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.

Zone name shortening

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 function const qualifier is removed.
  • Common return types are removed.
  • All function parameters and all template arguments are removed.

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.

Path normalization

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.

Symbol view improvements

  • Assembly view is now in color.
  • Added microarchitecture data for Zen 4.
  • Implemented optional propagation of inline cost down the local call stack. This feature may be useful when trying to get a general outlook of the cost at the top-level function in the symbol. On the image below notice that in the inserted fragment, which has this option enabled, the hidden cost of ring.GetTail() is attributed to the calling line.
  • Reversed mouse button assignments for jumping to source / assembly line in symbol view. The left mouse button will now focus the target line.
  • Assembly lines tooltip will now display local call stack of inline functions (within the symbol).
  • Right-clicking the source location entry in assembly line will show the local call stack, along with source code preview of each entry and ability to navigate to any selected inline function.

Various improvements.

  • If a client with an incompatible protocol is discovered, Tracy will now try to show which versions can be used to handle the connection.
  • Messages list in zone info window can now show messages exclusive to the zone, filtering out the messages emitted from child zones.
  • Added capture of vertical synchronization timings on Linux.
  • Added context menu for timeline labels. Currently the only option is to hide the selected thread, plot, etc.
  • You can now provide custom source file contents through a profiler callback. This enables profiler access to files contained in your custom data files, etc.
  • Timeline can be now navigated with WASD keys.
  • The import-chrome utility interprets Instant (i/I) events where the name field contains the word frame as a frame event. The name is the frame set name.
  • The profiler UI will no longer unnecessarily redraw the screen if nothing was changed. This should have a profound impact on power usage.
  • Available clients now also broadcast their PID.
  • The profiler UI will now indicate that it needs attention if the window is not focused and something interesting happens. For example when a connection is established, or when a saved trace finishes loading, etc.

See original Tracy release.

Tracy v0.8.2

02 Oct 13:18
f493d4a
Compare
Choose a tag to compare
  • Added support for debuginfod debug information services. Note that since this depends on proper system configuration, vendors providing the debug information, and network retrieval, it is disabled by default. To enable, compile the profiled application with the TRACY_DEBUGINFOD define and link with libdebuginfod.
  • When Tracy server-side utilities are build with MSVC, the required libraries will be now automatically retrieved and built with vcpkg.
  • Added microarchitecture data for: Bonnell, Airmont, Goldmont, Goldmont Plus, Tremont.
  • Recognize additional CPUIDs of Zen 3, Alder Lake, Ice Lake microarchitectures.
  • Assembly line width will be now extended, if needed. Previously the line width was calculated for the initial layout and changing amount of displayed data (especially listing the read/written registers) didn't affect this, which may have made some lines partially unreadable.
  • Added ability to filter call stacks in memory tab by inactive allocations. Filtering by inactive allocations helps to pinpoint wasteful allocations in the program.
  • Plot graph will no longer display min/max values interpolated for animation, but rather true values.
  • The CPU topology tree structure was replaced by a CPU schematic showing the same thing in a more concise way.