mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-26 07:54:36 +00:00
Frame profiler
gamedevgamedev-librarygamedevelopmentlibraryperformanceperformance-analysisprofilerprofilingprofiling-library
f428a5b52b
There are various changes involved into making this work: 1. Zone size (zsz) is no longer clamped to the timeline viewport area. This clamping has to be removed to prevent otherwise uncollapsed zones from apparently becoming small near the viewport borders. Such a small zone would then be collapsed, resulting in unwanted popping. Interesingly, only the CPU zones were clamped before. GPU zones were not. 2. Iteration over visible zones has to start before the visible timeline viewport area. Without this some zones that would be otherwise included in the collapsed area (started by a previous zone) may be fully visible. This causes child zones to be drawn and produces unwanted popping. (At this point threshold for continuing collapsed area is greater than threshold for starting it.) 3. Since the iteration now starts before timeline visible area, it may so happen that everything found will be in a small slice of timeline that is outside the screen. To fix this, the end time of last found item is checked against the viewport start time. It is always valid to access *(zitend-1), as it is in each case done after null set check (it == zitend). Similar but simpler fix was also applied to per-thread call stack samples. |
||
---|---|---|
.github | ||
.vscode | ||
capture | ||
common | ||
csvexport | ||
doc | ||
dtl | ||
examples | ||
extra | ||
getopt | ||
icon | ||
imgui | ||
import-chrome | ||
library | ||
manual | ||
nfd | ||
profiler | ||
public | ||
server | ||
test | ||
update | ||
vcpkg | ||
zstd | ||
.gitignore | ||
AUTHORS | ||
CMakeLists.txt | ||
LICENSE | ||
meson_options.txt | ||
meson.build | ||
NEWS | ||
README.md | ||
vcpkg.json |
Tracy Profiler
A real time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler for games and other applications.
Tracy supports profiling CPU (Direct support is provided for C, C++, and Lua integration. At the same time, third-party bindings to many other languages exist on the internet, such as Rust, Zig, C#, OCaml, Odin, etc.), GPU (All major graphic APIs: OpenGL, Vulkan, Direct3D 11/12, OpenCL.), memory allocations, locks, context switches, automatically attribute screenshots to captured frames, and much more.
- Documentation for usage and build process instructions
- Releases containing the documentation (
tracy.pdf
) and compiled Windows x64 binaries (Tracy-<version>.7z
) as assets - Changelog
- Interactive demo
Introduction to Tracy Profiler v0.2
New features in Tracy Profiler v0.3
New features in Tracy Profiler v0.4
New features in Tracy Profiler v0.5
New features in Tracy Profiler v0.6
New features in Tracy Profiler v0.7
New features in Tracy Profiler v0.8