Commit Graph

7137 Commits

Author SHA1 Message Date
Robert Adam
1f7656e845 CMake: Add option to explicitly set lib type
With this new option, it is now possible to explicitly build Tracy as a
shared or static library independent from the BUILD_SHARED_LIBS
variable, which always acts on a global scope (thus, affecting all CMake
targets).

If the options is not explicitly given, it will default to whatever
BUILD_SHARED_LIBS would indicate, leaving the default behavior
unchanged.
2022-08-31 18:06:51 +02:00
Robert Adam
0aeadb4c49 Use TRACY_PUBLIC_DIR throughout 2022-08-31 18:06:22 +02:00
Robert Adam
ece8779362 Fix cpuid symbol redefinition on older GCC versions
Since commit 940f32c1a8 building the Tracy
library on Linux using a GCC version < 11 would result in compile errors
due to symbol redefinitions of __get_cpuid_max, __get_cpuid and
__get_cpuid_count.

This is because prior to GCC 11 the cpuid.h header file did not have any
include guards and thus including this header more than once would
produce the abovementioned errors.

To work around this issue, including cpuid.h has been wrapped into a
custom header file that itself uses include guards and thus shields
cpuid.h from being included multiple times.

Fixes #452
2022-08-31 17:59:46 +02:00
Bartosz Taudul
107975c8de
Fix time rounding logic.
PrintSmallInt() expects values in the 0-999 range, but the in+1 may produce
1000 here. This is invalid and it either asserted, or outputted an empty
string.

Workaround by simple outputting "1000" as the value here.

This function is only used in context of printing time, and only in specific
context. The end result will be that values like "1000 us" or "1000 ms" may
appear, where they would be otherwise shortened to "1 ms" or "1 s". This may
be a bit unusual, but is acceptable, as the real time value has not yet
crossed the threshold required for such shortening.
2022-08-28 14:50:38 +02:00
Bartosz Taudul
f0386d2f72
Update manual. 2022-08-28 13:26:15 +02:00
Bartosz Taudul
cedd8b590c
Update NEWS. 2022-08-28 13:21:24 +02:00
Bartosz Taudul
c2d527e2e7
Cosmetics. 2022-08-28 13:17:29 +02:00
Bartosz Taudul
74789d1049
Merge pull request #446 from simplyWiri/master
Add WASD panning/zooming functionality to timeline.
2022-08-28 13:13:21 +02:00
Bartosz Taudul
87723cdcc4
Update json.hpp to 3.11.2. 2022-08-27 16:09:42 +02:00
Bartosz Taudul
be392a76fb
Move TracyVersion.hpp to common. 2022-08-27 16:05:36 +02:00
Bartosz Taudul
165099ca87
Merge pull request #448 from hulakdar/multithreaded_d3d12_zones
Multithreaded d3d12 zones
2022-08-26 13:11:35 +02:00
hulakdar
e35db2657b A bit more consistent usage of atomic 2022-08-26 13:25:58 +03:00
hulakdar
391cb4242e Fix d3d12 gpu zones for multithreaded use 2022-08-26 13:07:07 +03:00
Bartosz Taudul
11b11d5f51
Update NEWS. 2022-08-26 00:54:36 +02:00
Bartosz Taudul
f3113f24a9
Update manual. 2022-08-26 00:48:18 +02:00
Bartosz Taudul
72b7d0db5b
Add user data pointer to parameter callback. 2022-08-26 00:46:01 +02:00
simplyWiri
d2e3856724 Add WASD panning/zooming functionality to timeline. 2022-08-22 17:23:57 +10:00
Bartosz Taudul
655d8a01ea
Move vis data to timeline controller. 2022-08-20 17:02:29 +02:00
Bartosz Taudul
49bda91be5
Cosmetics. 2022-08-20 01:45:55 +02:00
Bartosz Taudul
414f467c6e
More jump targets to normalize. 2022-08-19 12:50:47 +02:00
Bartosz Taudul
2f219188e1
Fix function normalization being forced on. 2022-08-18 14:13:53 +02:00
Bartosz Taudul
197007ab47
Keep a list of buffers left to handle.
Previously a bitmap of buffers was repeatedly scanned to see which buffers
still contain data. This process was needlessly wasting cycles (seen as a
hotspot when profiled) and worse yet, the workload increased with the number
of CPU cores (=> buffers used) to handle.

The new implementation instead maintains a list of buffer indices that have to
be handled. This list does not contain empty buffers, so each loop iteration
performs some work, instead of just spinning in search for buffers to handle.
2022-08-18 13:59:56 +02:00
Bartosz Taudul
940f32c1a8
Add include for cpuid. 2022-08-18 13:40:37 +02:00
Bartosz Taudul
1d60c0cd5b
Remove leftovers. 2022-08-18 13:18:39 +02:00
Bartosz Taudul
07a56f1148
Load globals to local variables. 2022-08-18 01:08:22 +02:00
Bartosz Taudul
d62f7d5d13
Shorten zone name in jump popup target submenu. 2022-08-18 00:49:42 +02:00
Bartosz Taudul
f9a4bc55cc
Normalize function names in jump popup. 2022-08-18 00:35:59 +02:00
Bartosz Taudul
a1f09fab35
Assembly lines without source locations are navigatable to. 2022-08-18 00:19:32 +02:00
Bartosz Taudul
3dfa3a77a2
Update manual. 2022-08-17 16:48:45 +02:00
Bartosz Taudul
7df4aef122
Expose source callback registering through a macro. 2022-08-17 16:26:03 +02:00
Bartosz Taudul
687e901347
Update NEWS. 2022-08-17 16:04:21 +02:00
Bartosz Taudul
e8aaf5fa99
Run source file query on payloaded source locations. 2022-08-17 16:04:20 +02:00
Bartosz Taudul
a237f108c7
Use source contents callback. 2022-08-17 16:04:20 +02:00
Bartosz Taudul
ed7be2faaa
Add source contents callback setup. 2022-08-17 16:04:18 +02:00
Bartosz Taudul
4bcb59bbe6
Update font awesome and migrate to v6 headers. 2022-08-17 12:07:38 +02:00
Bartosz Taudul
ef35c01e14
Highlight jump line on hover over jump target label. 2022-08-17 00:30:07 +02:00
Bartosz Taudul
1601ddeab5
Resolve relative file names to absolute ones.
Note that this is a tentative fix, which *should* be working, but it may as
well not be correct in some edge cases. Who knows.
2022-08-16 23:48:46 +02:00
Bartosz Taudul
3dc542a464
Log invalid debuginfod queries.
Filename paths must be absolute, not relative.
2022-08-16 22:05:14 +02:00
Bartosz Taudul
d32dc47845
Add debug logging for debuginfod queries. 2022-08-16 22:05:08 +02:00
Bartosz Taudul
ed733a4b15
Update manual. 2022-08-16 18:58:11 +02:00
Bartosz Taudul
0779151170
Update NEWS. 2022-08-16 18:52:29 +02:00
Bartosz Taudul
827bbeb442
Context menu hide for plots. 2022-08-16 18:51:28 +02:00
Bartosz Taudul
4bf6a2b9d2
Context menu hide for CPU data. 2022-08-16 18:48:54 +02:00
Bartosz Taudul
3aa62a18cc
Context menu hide of GPU zones. 2022-08-16 18:43:13 +02:00
Bartosz Taudul
fa8a071334
Add context menu with hide option to threads on timeline. 2022-08-16 18:40:10 +02:00
Bartosz Taudul
5ef7e42223
Fix indentation. 2022-08-16 18:39:43 +02:00
Bartosz Taudul
06b986ad90
Bump LZ4 to 1.9.4. 2022-08-16 14:43:50 +02:00
Bartosz Taudul
3d9d242153
Fix test application flags. 2022-08-16 14:12:22 +02:00
Bartosz Taudul
72ad40698b
Move initialization of callstack structs to a thread.
Initializing structures for callstack processing (building memory map of the
process, gathering kernel symbols, etc) takes some time, which in some cases
may be significant.

Callstack queries are now handled on a separate thread. In such setup it no
longer makes sense to block main thread execution with this lengthy init
process.

All the heavy initialization phase has been now moved to this separate
processing thread. Some initial callstack queries may now not produce
responses as promptly as before, but this is only because the main thread is
able to start working earlier.

Some parts of the initialization process may be critical to do in the main
thread, for example because the function responsible for gathering callstacks
must be loaded first. This is done still on the main thread, in a new function
InitCallstackCritical().
2022-08-16 13:55:46 +02:00
Bartosz Taudul
d9d31e4d51
Make fixed font more compact.
Note that the negative glyph spacing is const here, regardless of the font
scaling. The alternative of using proportional spacing in reality does not
work as good as it sounds. With fractional scaling some of the glyphs will
no longer land on exact pixel boundaries, which results in blurry text.

Looking at the potential solutions for this problem is moot point, as with
the non-fractional scale of 2x and glyph spacing of -2, there is no longer
enough space separating some letters, which is especially visible in words
like "common" or register "xmm", where the "mm" pair becomes joined.
2022-08-16 13:16:21 +02:00