NEWS 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688
  1. Note: There is no guarantee that version mismatched client and server will
  2. be able to talk with each other. Network protocol breakages won't be listed
  3. here.
  4. Note: Release numbers are nothing more than numbers. There are some
  5. "missing" versions due to trace file changes during development. This is not
  6. a mistake.
  7. v0.7.6 (2021-02-06)
  8. -------------------
  9. - Various fixes in build scripts.
  10. - Fixed a faulty rpmalloc initialization path when the first thing the
  11. thread did was sending a message with call stack.
  12. - Added fallback timer define for various virtualized environments, which
  13. may not be able to access the hardware timer registers. This will result
  14. in usage of timer provided by the standard library, with reduced
  15. resolution.
  16. - Further OpenCL improvements.
  17. - Updated libbacktrace.
  18. - Adds Mach-O 64-bit FAT support.
  19. - Fixes memory corruption when processing Mach-O data.
  20. - Fixes missing matching entries during binary search.
  21. - Adds support for MiniDebugInfo.
  22. - Adds fallback to ELF symbol table if no debug info is available.
  23. - Various other fixes.
  24. - Store build time of profiled program in captures.
  25. - GPU contexts can be now named.
  26. - Implemented client -> server source code transfer.
  27. v0.7.5 (2021-01-23)
  28. -------------------
  29. - More robust handling of system tracing on Android.
  30. - Added warning dialog when the connection is lost before all needed data
  31. can be retrieved.
  32. - Fixed handling of NaN plot entries (by skipping them).
  33. - Dynamic zone colors are now supported through the ZoneColor() macro.
  34. - Fixed Arm machine code printout to match the one printed by objdump.
  35. - Fixed client memory corruption when using colored messages.
  36. - Switched to the next-gen ImGui table UI.
  37. - Table columns can have their order rearranged, can be hidden, can be
  38. sorted both in ascending and descending order (where appropriate).
  39. - Table columns state is now preserved between runs.
  40. - Various fixes related to restricting listening to localhost.
  41. - Improved compatibility of ETW tracing with non-MSVC compilers.
  42. - Fixed Vulkan call stack transfer.
  43. - Added support for transient GPU zones (OpenGL, Vulkan, Direct3D 12).
  44. - OpenCL fixes for assert-less builds and non-active zones.
  45. - Added support for thread names and title bar description in traces
  46. imported from chrome tracing format.
  47. v0.7.4 (2020-11-15)
  48. -------------------
  49. - Added support for user-provided locks to keep dbghelp calls thread-safe.
  50. - Call stacks can be now copied to clipboard.
  51. - Allow more control over which automated captures are performed.
  52. - Added textual descriptions for some assembly instructions.
  53. - Profiler memory usage is now also displayed as a percentage of available
  54. physical memory.
  55. - Microarchitecture mismatch is now clearly displayed in the source view
  56. window.
  57. - Added Zen 3 and Cascade Lake microarchitectural data.
  58. - Ghost zones are now supporting all zone coloring modes and namespace
  59. shortening.
  60. - Extend C API to support memory pools.
  61. - Frame rate targets can be now visually represented on the timeline view.
  62. v0.7.3 (2020-10-06)
  63. -------------------
  64. - Properly support DPI scaling on Linux (requires GLFW 3.3).
  65. - Added early checks for output file validity in the capture utility.
  66. - Improvements to presence broadcast handling.
  67. - Custom zone colors can be optionally ignored.
  68. - Added support for tracking multiple memory pools.
  69. - Memory free failure dialog can now show call stack pointing to the failure
  70. location.
  71. - Added support for Wayland on Linux.
  72. - If during the first 5 seconds of the trace there are no frames being
  73. reported, the profiler will switch to following last 5 seconds of the
  74. trace, instead of displaying three last frames.
  75. v0.7.2 (2020-09-14)
  76. -------------------
  77. - Note: the bitbucket repository is obsolete and will soon stop receiving
  78. updates. Migrate to https://github.com/wolfpld/tracy, if you haven't
  79. already.
  80. - The "waiting for connection" dialog no longer has "cancel" button. To
  81. abort connection attempt just use the "close window" button.
  82. - Added update notification.
  83. - The most recent traced events can be now viewed regardless of timeline
  84. zoom level.
  85. - Fixed going-to-line in source view (again).
  86. - Crash handling on client is now not performed, if there is no active
  87. connection.
  88. - Added ability to listen only on IPv4 interfaces.
  89. v0.7.1 (2020-08-24)
  90. -------------------
  91. - Dropped support for pre-v0.6 traces.
  92. - Fixed regression on non-AVX2 CPUs.
  93. - Fixed incorrect calculation of some ghost zones.
  94. - Added list of cached source files.
  95. - Added import of plot data.
  96. - Secure versions of alloc/free macros.
  97. - Automated tracing of vertical synchronization on Windows.
  98. - Fixed attachment of postponed frame images.
  99. - Source location data can be now copied to clipboard from zone info window.
  100. - Zones in find zones menu can be now grouped by zone name.
  101. - Vulkan and D3D12 GPU contexts can be now calibrated.
  102. - Added CSV export utility.
  103. - "Go to frame" popup no longer has a dedicated button. To show it, click on
  104. the frame counter.
  105. - Added macro for checking if profiler is connected.
  106. - Implemented optional data removal from traces in the update utility.
  107. - Allow manual management of profiler lifetime.
  108. - Adjusted priority of ETW threads to time critical.
  109. - Annotations can be now freely adjusted on the timeline.
  110. - Limiting time range for find zone functionality has been significantly
  111. improved.
  112. - Added time range limits for statistics and symbol view.
  113. - Implemented call stack sampling on Linux (including Android).
  114. - Exact time from start of profiling session can be now viewed by hovering
  115. the mouse over the time scale.
  116. - Code transfer can be now compiled-out.
  117. - Added support for zone markup in unloadable modules.
  118. - Added image name filter to sampling statistics results window.
  119. v0.7 (2020-06-11)
  120. -----------------
  121. This is the last release which will be able to load pre-v0.6 traces. Use the
  122. update utility to convert your old traces now!
  123. - chrome:tracing importer now imports zone metadata from "args" key.
  124. - Added display of statistical mode to find zone menu.
  125. - Automatic stack sampling is now available on windows.
  126. - Properly handle tracing on long-running systems.
  127. - Message list entries can now show associated frame image.
  128. - Call stack window will now display module names.
  129. - Symbol location in call stack window may now also display symbol address.
  130. - Statistics menu can now be used to display call stack sampling data or
  131. list available symbols.
  132. - All call paths leading to the sampled instruction in a call stack can be
  133. now displayed.
  134. - Frame image compression ratio (lossless in-memory compression, not taking
  135. into account DXT compression) is displayed in playback window.
  136. - Allow reconnection straight from the discard data dialog.
  137. - Added ability to set custom names for locks.
  138. - Improved handling of network ports.
  139. - Added time percentage display to instrumentation statistics.
  140. - Display of ghost zones (generated from automated call stack sampling).
  141. - Notify when empty labels display is enabled.
  142. - Small fragments of executable code will be now sent from client to server.
  143. - Added notification about query backlog.
  144. - Fixed performance problem with query backlog.
  145. - Display number of in-flight queries, in addition to query backlog.
  146. - Improved failure reports.
  147. - The capture utility will connect to localhost by default.
  148. - Added optional support for QPC timer on windows.
  149. - Complete rewrite of source file viewer. It is now 100% reliable when going
  150. to a source location.
  151. - Symbol source view was added.
  152. - Extension of source file viewer.
  153. - Can display source file, assembly view, or both at the same time.
  154. - May include display of statistical profiling data.
  155. - Ability to switch between source files which were used to build the
  156. symbol.
  157. - Ability to switch between inlined functions which are incorporated into
  158. the symbol.
  159. - Graphical representation of control flow in program.
  160. - Display of micro-architectural data for each assembly instruction.
  161. - Tracking register dependencies between assembly instructions.
  162. - Disassembly may be saved to a file, in order to be processed by external
  163. tools.
  164. - If the default listening port is occupied, profiler will now try listening
  165. on other ports.
  166. - Added possibility to perform source file names substitution.
  167. - Profiler windows can be now docked.
  168. - CPU usage tooltip now displays a list of running threads.
  169. - Added possibility to filter discovered clients list.
  170. - Source files are now cached during capture.
  171. - Profiler will now display a popup when application crashes.
  172. - Added ability to send simple integral values as extra payload for zones.
  173. - Per-frame zone times on the frames plot can now display self time.
  174. - Ability to bind only on localhost interface.
  175. - OpenCL profiling.
  176. - Direct3D 12 profiling.
  177. v0.6.3 (2020-02-13)
  178. -------------------
  179. - Fixed performance issues with loading saved traces on Ryzen CPUs.
  180. - Profiler window contents are now properly updated during window resize.
  181. - Improved tid to pid mapping on windows.
  182. - Zero length and unfinished zones are no longer taken into account for
  183. statistics.
  184. - Build files for shared library are now available (experimental).
  185. - GPU zones now also have "active" parameter.
  186. - Further reduction of memory usage and on-disk trace size.
  187. - Replaced ska::flat_hash_map with robin-hood-hashing.
  188. - Speed-up rendering of long lists of items.
  189. - Exact event time is displayed in some places in the UI.
  190. - Memory allocation lists can now be sorted.
  191. - Added display of trace file compression ratio.
  192. - Optional Zstd compression of trace files.
  193. - Frame images are now internally compressed using Zstd (instead of LZ4).
  194. - Fix display of continuous frame set tooltips.
  195. v0.6.2 (2019-12-30)
  196. -------------------
  197. - Improved call stack decoding on OSX.
  198. - Collection of CPU topology data.
  199. - C API now supports allocated source locations.
  200. - Added chrome:tracing importer.
  201. - Allow merging of ZoneText() strings.
  202. - Time distribution can now show both exclusive and inclusive times.
  203. - Display proper value of selection time in find zone menu.
  204. - Implemented limiting find zone search to a specified time range.
  205. - Highlight hovered zone from find zone menu zone list on the histogram.
  206. - Allow copying user data directory location to the clipboard.
  207. v0.6.1 (2019-11-28)
  208. -------------------
  209. - Dropped support for pre-v0.5 traces.
  210. - Improve BSD support.
  211. - GPU zone CPU thread highlight will now highlight whole thread, not only
  212. the thread name.
  213. - Added CPU thread highlight for CPU data items.
  214. - Client parameters may be now set from the server.
  215. - Minor UI fixes.
  216. v0.6 (2019-11-17)
  217. -----------------
  218. This is the last release which will be able to load pre-v0.5 traces. Use the
  219. update utility to convert your old traces now!
  220. - Dropped support for pre-v0.4 traces.
  221. - Major memory usage decrease.
  222. - Significant network bandwidth decrease.
  223. - Implemented context switch capture on selected platforms.
  224. - Zone timings in various UI places can now take into account only the
  225. time when the thread was executing.
  226. - Zone information window can now display regions in which thread was
  227. suspended by the operating system.
  228. - CPUs on which the zone was running are enumerated.
  229. - Thread activity regions can be graphed on the timeline.
  230. - API breakage: SetThreadName() now only works on current thread.
  231. - Fixed thread name retrieval after thread is destroyed.
  232. - Added number of CPU cores to host info.
  233. - Limited number of possible source locations to 64K.
  234. - Limited supported capture length to 1.6 days.
  235. - CPU cores are now displayed on the timeline.
  236. - Thread execution workload is displayed, including threads from external
  237. programs.
  238. - Thread migrations across CPU cores can be graphed.
  239. - System-wide workload distribution is now plotted on the timeline.
  240. - Added "CPU data" window showing programs competing for CPU during the
  241. capture.
  242. - Switched to using native thread identifiers (relatively small numbers), as
  243. opposed to pthreads identifiers, which in reality were pointers.
  244. - Improved thread name discovery if context switch capture is enabled.
  245. - Per-trace state is now preserved between profiling sessions:
  246. - Timeline view position.
  247. - Item categories draw/hide settings.
  248. - Timeline zones will be highlighted using a different color, when a
  249. matching time range is selected on histogram.
  250. - Per-frame zone times are now displayed on the frames plot when a zone is
  251. selected in the find zone menu.
  252. - Zone color is now displayed in zone information window.
  253. - Zone colors can now be determined basing on depth and thread or source
  254. location.
  255. - Thread colors are displayed across the profiler application.
  256. - Frame times can be now compared.
  257. - Expose more lock handling functionality.
  258. - Network port can be now specified by the user.
  259. - Proper handling of multithreaded Vulkan code.
  260. - Added extreme compression level in update utility.
  261. - Added time distribution data in the zone information window.
  262. - Trace file name is now displayed in trace information window.
  263. - Annotations can be now added to the timeline.
  264. - Server now performs network data retrieval and decompression on a dedicated
  265. thread.
  266. - Added examples of Tracy integration.
  267. - Allow grouping of zones in the find zone menu by zone parent or with no
  268. grouping.
  269. - Zone list in the statistics window can be now filtered.
  270. - Implemented configuration of plots.
  271. - Messages can now collect call stacks.
  272. v0.5 (2019-08-10)
  273. -----------------
  274. This is the last release which will be able to load pre-v0.4 traces. Use the
  275. update utility to convert your old traces now!
  276. - Major decrease of trace dump file size.
  277. - Major optimizations across the board.
  278. - Vcpkg is now used for library management on Windows.
  279. - Display dump file size change in the update utility.
  280. - Added notification area.
  281. - Display trace loading time.
  282. - Display background processing tasks after trace is loaded.
  283. - Display trace save notification.
  284. - Show crash icon, if there was a crash.
  285. - Added C API.
  286. - Profiling session may now gracefully terminate, due to incorrect
  287. instrumentation. A popup with termination reason will be displayed.
  288. - Call stack improvements.
  289. - Call stack frames now have a proper source file and file line
  290. information on Linux.
  291. - Single call stack frame may now have multiple entries, representing
  292. inlined function calls.
  293. - Call stack grouping in the find zone menu now has a special display
  294. mode.
  295. - Call stack memory allocations tree improvements:
  296. - Add top-down variant to complement the previously available bottom-up
  297. one.
  298. - Add ability to group tree nodes by function name.
  299. - Allow restricting tree to display only active allocations.
  300. - Added support for Lua call stack capture.
  301. - Self time of zones may be now displayed in the find zone menu.
  302. - Added ability to disconnect from a client.
  303. - Find zone groups can now be sorted by mean time per call.
  304. - Zones displayed in the find zone menu can be now grouped by order of
  305. appearance, execution time or name.
  306. - Time is now displayed without trailing fractional zeros (e.g. "2.5 ms"
  307. instead of "2.50 ms").
  308. - Child zones displayed in zone info window can be now grouped by source
  309. location.
  310. - Selected or hovered lock is now highlighted on the timeline.
  311. - Locks are now grouped into single and multithreaded (contended and
  312. uncontended) in the options menu locks list.
  313. - On broken platforms the profiler can now be initialized as needed (and
  314. possible), taking a performance and functionality hit.
  315. - User experience improvements in the graphical profiler.
  316. - Thread position and height is now animated, to eliminate flickering that
  317. was happening when depth of displayed zones was changing.
  318. - Zooming in/out using the mouse wheel is now animated.
  319. - Plot range adjustment is now animated.
  320. - Various other UI improvements.
  321. - System CPU usage is now being monitored.
  322. - Threads that have nothing to display in the current view are now hidden by
  323. default.
  324. - Dimmed-out the timeline outside the profiling area.
  325. - Source file view can now be opened also from statistics menu.
  326. - Display standard deviation in find zone and compare traces menus.
  327. - Display zone messages in zone information window.
  328. - Display order of threads can be changed in the options menu.
  329. - Prevent deadlocks by querying socket send buffer size.
  330. - Frame set statistics can be now limited to frames visible on the screen.
  331. - Messages can be now colored.
  332. - Zone selection in compare traces menu can be now linked to the other
  333. trace.
  334. - Added support for frame image (screen shot) storage.
  335. - Implemented ability to cut off outliers on histograms.
  336. - Zone or frame that is currently hovered by the mouse cursor will be
  337. highlighted on the histogram.
  338. - Server now displays available clients in the local network.
  339. - Source code whitespace visibility can now be enabled or disabled.
  340. - Profiler will now check if proper timer readings can be performed on
  341. x86/x64.
  342. - Application can now log app-specific information, similarly to how the
  343. host info reports system information.
  344. - Message list will automatically scroll down to the most recent message.
  345. - Feature will disable when the list is scrolled by user.
  346. - To re-enable, scroll to the bottom of the list.
  347. - Message list can be now filtered.
  348. - A notification popup will be displayed during trace cleanup.
  349. - Source file view won't be available if a source file is newer than the
  350. capture.
  351. - Added ability to set custom trace descriptions.
  352. - Added frame time target lines.
  353. - FPS counts are now displayed next to frame times.
  354. - GPU drift value can be now automatically measured.
  355. - Connection window is now a popup hidden under a dedicated button.
  356. v0.4.1 (2018-12-30)
  357. -------------------
  358. - Active frame set can be now switched by clicking on a frame set on the
  359. timeline.
  360. - Add ability to go to a specified frame.
  361. - Most commonly used addresses can be now selected from the drop-down menu.
  362. - Fixed corner case problem with profiler initialization on Windows.
  363. - Added third state (stopped) to the pause/resume button. It will be used
  364. after the connection to the client is terminated.
  365. - Active trace can be discarded.
  366. - Call stack capture may be forced through TRACY_CALLSTACK define.
  367. - Lock info window has been added.
  368. - Time of lock creation and termination is now being tracked.
  369. - Menu bar buttons are now toggles that can also close their corresponding
  370. windows.
  371. - Find zone and compare menu improvements.
  372. - Ability to ignore case during search.
  373. - Pressing enter key will now start search, just like pressing the "find"
  374. button.
  375. - Using the ^F keyboard shortcut will open the find zone menu and focus
  376. the input box.
  377. - Added ability to automatically connect to an IP address in the graphical
  378. profiler application (use "-a address" argument to enable).
  379. - Pressing enter key after entering client address in the welcome dialog
  380. will now automatically begin connection process.
  381. v0.4 (2018-10-09)
  382. -----------------
  383. - Renamed "standalone" utility to "profiler".
  384. - Added trace update utility, which will convert files saved in previous
  385. versions of tracy to be up-to-date.
  386. - Optional high compression (--hc) mode is available that will increase
  387. the compression level, at the cost of considerably longer compression
  388. time.
  389. - Fix regression causing varying size of profiler window for different
  390. captures.
  391. - Added support for on-demand tracing.
  392. - If a client application is compiled with the TRACY_ON_DEMAND macro
  393. defined, tracing will not begin until a connection to server is
  394. established.
  395. - Since data is not fully captured in this mode, the resulting trace will
  396. be less precise, until application state is appropriately reset. For
  397. example, locks need to be fully released, zone stacks need to be
  398. flushed. This is an automatic process.
  399. - All tracing macros are able to work in the on-demand mode.
  400. - Improved compatibility with various system setups.
  401. - Aside from using TRACY_NO_EXIT define you can also set the same-named
  402. environmental variable to 1 to get the same effect.
  403. - Added ability to show/hide all threads and plots.
  404. - Performance improvements.
  405. - Improvements to memory data presentation.
  406. - Added memory allocation info window.
  407. - Selecting memory allocation on a plot will draw time range of the
  408. allocation.
  409. - Middle clicking on an memory allocation address (or on a button in
  410. memory allocation info window) will zoom the view to the allocation
  411. range.
  412. - Find zone menu improvements:
  413. - Zones can be now also grouped by call stacks.
  414. - Zone groups can be now also sorted by time spend in each zone.
  415. - Zone groups list now displays group times.
  416. - Average and median zone times are now displayed on the histogram.
  417. - Selected zones will be highlighted on the timeline view.
  418. - Added named versions of tracing macros that allow specifying scoped
  419. variable name.
  420. - The main profiler window is now kept at the bottom of windows stack.
  421. - The "profiler" utility will now use a custom embedded font.
  422. - Microseconds are now displayed using correct symbol ('μ' instead of 'u').
  423. - Unix builds of the "profiler" utility will now ask for a file name when
  424. saving a trace.
  425. - Progress popup is now displayed when a trace file is loading.
  426. - Zones that share source location with a zone that is hovered over are now
  427. highlighted.
  428. - Added ability to zoom-in to a selection range made using middle mouse
  429. button.
  430. - Holding the ctrl key will switch to zoom-out mode.
  431. - The "profiler" utility will use less resources when its window is
  432. out-of-focus or minimized.
  433. - Added support for cross-DLL profiling.
  434. - Items in options menu (locks, threads, etc.) are now described with number
  435. of events.
  436. - Source location of lock declaration is also provided.
  437. - Created an extensive user manual for the profiler.
  438. - Added ability to capture multiple frame sets.
  439. - Viewer will display multiple frame ranges at once.
  440. - Only one frame set can be active at once. The selected one is used for
  441. the frame navigation graph, frame navigation buttons and drawing frame
  442. separators.
  443. - The active frame set will be highlighted, and the rest will be dimmed
  444. out.
  445. - Frames can now also be discontinuous.
  446. - Frames and zones too small to be displayed will be marked with a zig-zag
  447. pattern.
  448. - General improvements to message list and message markers.
  449. - Hovering over message on a list will highlight its marker (previously it
  450. only worked the other way).
  451. - Left clicking on a message marker will focus the message list on the
  452. selected message.
  453. - Middle clicking on a message marker will center it on screen.
  454. - Added trace information window.
  455. - This includes frame time statistics and histogram.
  456. - Displayed memory sizes are now properly formatted.
  457. - Added call stack tree for memory allocations.
  458. - You can display allocations list for each call stack tree entry.
  459. - The source code of the profiled application may now be viewed in the
  460. profiler.
  461. - BIG FAT WARNING: The actual profiled program source code is not known to
  462. the profiler. It only checks if there is a file on your disk that
  463. matches the file name of the captured source location. Even if the file
  464. is displayed, it may be out of date.
  465. - CPU and GPU zones will have "Source" button, if source file can be
  466. opened.
  467. - Source files for call stack traces can be opened by right-clicking on
  468. the file name. Since in this case there is no button that can be hidden,
  469. a small animation will be played to notify user if the source cannot be
  470. opened.
  471. - The main profiler view will now occupy the whole window. Previous behavior
  472. is still available for embedded use cases.
  473. - Many button labels are now accompanied by icons.
  474. - Fonts should now be less blurry.
  475. - "Go to parent" button in zone info window won't be displayed if there is
  476. no parent to go to.
  477. - Improvements to the compare traces menu.
  478. - There are now colored markers to make it easier to distinguish "this" and
  479. "external" traces.
  480. - The amount of saved time is now displayed (a difference between total
  481. run times of both traces).
  482. - Tracy will now collect host information, like CPU name, amount of system
  483. memory, etc.
  484. - Windows builds of the "profiler" utility will perform a check of supported
  485. CPU instruction set and match it against the one required by the binary
  486. (by default AVX2 is used). If the program cannot be executed on the
  487. processor, a message dialog with workaround instructions will be
  488. displayed.
  489. - Tracy can intercept crashes and finish sending data from a dying process.
  490. - Currently this is only implemented on Windows, Linux and Android.
  491. - Call stack window may now display addresses of the frames, instead of
  492. source file locations.
  493. - Memory events will now properly register their thread.
  494. - Profiler settings are now stored in a persistent location.
  495. - On Windows settings are stored in %APPDATA%/tracy.
  496. - On other platforms settings are stored in $XDG_CONFIG_HOME/tracy or
  497. $HOME/.config/tracy, if the variable is not set.
  498. - The main profiler window position, size and maximized state are saved
  499. and restored.
  500. - The size and position of internal windows now doesn't depend on the
  501. runtime directory of the profiler executable.
  502. - Added connection handshake.
  503. - Server won't be able to connect to client if there's a protocol version
  504. mismatch.
  505. - Client not in on-demand mode will refuse connections after the first
  506. connection was made and the initial event buffers were cleared.
  507. - A single server will no longer try to connect to multiple clients.
  508. - The capture utility will now display time span of the ongoing capture.
  509. v0.3.3 (2018-07-03)
  510. -------------------
  511. - Breaking change: the format of trace files has changed.
  512. - Previous tracy version will crash when trying to open new traces.
  513. - Loading of traces saved by previous version is supported.
  514. - Tracy will no longer crash when trying to load traces saved by future
  515. versions. Instead, a dialog advising to update will be displayed.
  516. - Tracy will no longer crash in most cases when trying to open files that
  517. are not traces. Some crashes are still possible, due to support of old,
  518. header-less traces.
  519. - Ability to track every memory allocation in profiled program.
  520. - Allocation event queuing must be done in order, which requires exclusive
  521. access to the serialized queue on the client side. This has no effect on
  522. the rest of events, which are stored in a concurrent queue, as before.
  523. - You can search for a memory address and see where it was allocated, for
  524. how long, etc. This lists all matching allocations since the program was
  525. started.
  526. - All active (non-freed) allocations may be listed. This shows the current
  527. memory state by default, but can go back to any point in time.
  528. - Graphical representation of process memory map may be displayed. New
  529. allocations/frees are displayed in a bright color and fade out with
  530. time. This feature also can look back in time.
  531. - Memory usage plot is automatically generated.
  532. - Basic allocation information is displayed in memory plot tooltips.
  533. - A summary of memory events within a zone (and its children) is now
  534. printed in zone info window.
  535. - Support loading profile dumps with no memory allocation data (generated by
  536. v0.2).
  537. - Added ability to display global statistics of a selected zone from the
  538. zone info window.
  539. - Fixed regression with lock announce processing that appeared during
  540. worker/viewer split.
  541. - Allow selecting/unselecting all locks for display.
  542. - Performance improvements.
  543. - Don't save unneeded lock information in trace file.
  544. - Don't save thrash in message list data.
  545. - Allow expanding view span up to one hour, instead of one minute.
  546. - Added trace comparison window.
  547. - An external trace has to be loaded first.
  548. - Zone query in both traces (current and external).
  549. - Both results are overlaid on the same histogram.
  550. - Graphs can be adjusted as-if there was the same number of zones
  551. collected.
  552. - Read time directly from a hardware register on ARM/ARM64, if possible.
  553. - User-space access to the timer needs to be enabled in the kernel, so
  554. tracy will perform run-time checks and fallback to the old method if the
  555. check fails.
  556. - Prevent connections in a TIME-WAIT state from blocking new listen
  557. connections.
  558. - Display y-range of plots.
  559. - Added ability to unload traces loaded from files. To do so close the main
  560. profiler window. You will return to the connect/open selection dialog.
  561. Live captures cannot be terminated this way.
  562. - Zones previously displayed in zone info window are remembered and you can
  563. go back to them. Closing the zone info window or switching between CPU and
  564. GPU zones will clear the memory.
  565. - Improved message list window.
  566. - Messages are now displayed in columns.
  567. - Originating thread of each message is now included in the list.
  568. - Messages can be filtered by the originating thread.
  569. - You can now navigate to next and previous frame.
  570. - Zone statistics can be now displayed using only self times.
  571. - Support for tracing GPU events using Vulkan.
  572. - Timeline will now display "OpenGL context" or "Vulkan context" instead of
  573. "GPU context".
  574. - Fixed regression causing invalid display of GPU context appearance time.
  575. - Fixed regression causing invalid reporting of an active CPU in zone end
  576. events, if MSVC rdtscp optimization was not enabled.
  577. - Ability to collect true call stacks.
  578. - Supported on Windows, Linux, Android.
  579. - The following events can collect call stacks:
  580. - Memory alloc/free.
  581. - Zone begin.
  582. - GPU zone begin.
  583. - Zone stack trace now also displays frames from a real call trace.
  584. - On Linux call stack frame name resolution requires a call to dladdr,
  585. which in turn requires linking with libdl.
  586. - Allow manual entry of GPU time drift value.
  587. - Unix build system no longer shares object files between different build
  588. units.
  589. - Fixes inability to build debug and release versions of a single utility
  590. without "make clean".
  591. - Fixes incompatibility between "standalone" and "capture" utilities due
  592. to different set of used feature flags.
  593. - On Windows "standalone" utility now adapts to system DPI setting.
  594. - Optional per-call zone naming.
  595. v0.2 (2018-04-05)
  596. -----------------
  597. - Fixed broken TRACY_NO_EXIT behavior.
  598. - Visual refresh (new color scheme).
  599. - Added optional support for live in-depth zone analysis.
  600. - Ability to search for zones matching a query.
  601. - Histogram of zone time spans.
  602. - List occurrences of a zone, grouped by thread, or by user text.
  603. - Zone groups can be selected and highlighted on histogram graph.
  604. - Support for linear and logarithmic display of time and values.
  605. - Histogram bins can show zone counts or total execution time.
  606. - Listed zones can be narrowed down by data range selection on histogram.
  607. - Separation of server data handling code from the visualisation.
  608. - Implementation of a command line capture utility.
  609. - Support libraries have been updated.
  610. - Fixed an issue that prevented de-duplication of source location payloads.
  611. - Fixed an issue that prevented the ability to disable threads in settings
  612. menu, if two threads had the same name.
  613. - Performance optimizations.
  614. - Visual clean up of the settings menu.
  615. - Zone info windows improvements.
  616. - Visual improvements to zone info window child list.
  617. - Zone info windows now show zone thread.
  618. - Display zone stack trace.
  619. - Hide pause/resume button if there's no data connection (i.e. trace was
  620. loaded from file).
  621. - Source location statistics view has been added.
  622. - Fixed crash when a saved trace was opened, but no trace capture session
  623. was performed before.
  624. - Standalone server will now open trace files passed as an argument to the
  625. executable.
  626. - Fix possible crash in SetThreadName, that could happen if TLS init was
  627. delayed until first use of thread local variable.
  628. - Store full thread name if pthreads (with 15 character name limit) are
  629. used.
  630. - Properly handle unaligned memory access (no performance impact).
  631. - Fixed broken lock identifiers in try_lock().
  632. v0.1 (2017-12-18)
  633. -----------------
  634. - Initial release.