Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

profiling: add Task/GC/Inference/Codegen signposts for Tracy #49140

Merged
merged 12 commits into from
Apr 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions Make.inc
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ WITH_ITTAPI := 0
# Enable Tracy support
WITH_TRACY := 0

# Enable Timing Counts support
WITH_TIMING_COUNTS := 0

# Prevent picking up $ARCH from the environment variables
ARCH:=

Expand Down Expand Up @@ -738,11 +741,16 @@ LIBITTAPI:=-littnotify
endif

ifeq ($(WITH_TRACY), 1)
JCXXFLAGS += -DUSE_TRACY -DTRACY_ENABLE
JCFLAGS += -DUSE_TRACY -DTRACY_ENABLE
JCXXFLAGS += -DUSE_TRACY -DTRACY_ENABLE -DTRACY_FIBERS
JCFLAGS += -DUSE_TRACY -DTRACY_ENABLE -DTRACY_FIBERS
LIBTRACYCLIENT:=-lTracyClient
endif

ifeq ($(WITH_TIMING_COUNTS), 1)
JCXXFLAGS += -DUSE_TIMING_COUNTS
JCFLAGS += -DUSE_TIMING_COUNTS
endif

# ===========================================================================

# Select the cpu architecture to target, or automatically detects the user's compiler
Expand Down
1 change: 1 addition & 0 deletions base/loading.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2109,6 +2109,7 @@ function create_expr_cache(pkg::PkgId, input::String, output::String, output_o::
$trace
-`,
"OPENBLAS_NUM_THREADS" => 1,
"JULIA_WAIT_FOR_TRACY" => nothing,
"JULIA_NUM_THREADS" => 1),
stderr = internal_stderr, stdout = internal_stdout),
"w", stdout)
Expand Down
66 changes: 32 additions & 34 deletions deps/checksums/libtracyclient
Original file line number Diff line number Diff line change
@@ -1,34 +1,32 @@
LibTracyClient.v0.9.0+1.aarch64-apple-darwin.tar.gz/md5/621591ea1b72b07a0be82f87ed29a456
LibTracyClient.v0.9.0+1.aarch64-apple-darwin.tar.gz/sha512/d053db12a0256bd60730f9b9a73ed6308c4cecb3f4a31cb979e1ecd8afbec5e3217b4a4f6355e24fc0c3bcc90dc9a83bf1be1dee467544e15ae6597d9d1a8d01
LibTracyClient.v0.9.0+1.aarch64-linux-gnu.tar.gz/md5/7e2183c4cba6108e39c58e57ba31eb53
LibTracyClient.v0.9.0+1.aarch64-linux-gnu.tar.gz/sha512/a912d329e065aae7a9d5b4392f6c292b68fed5cbd83b06bfddf925601f84bde4a76993864ecf3750fd216313630632157ff2f3f9e659caa71530e31aa738c72d
LibTracyClient.v0.9.0+1.aarch64-linux-musl.tar.gz/md5/a9d1b9700f9ed3c8c70480da7ebf326d
LibTracyClient.v0.9.0+1.aarch64-linux-musl.tar.gz/sha512/e9e928dda72f0b1aa9a92809f6f8b6c9d3c7e99f30d1944725e6d0eae0eeba34928e0262172f6e1ccd10f99dfb44d2e39537663a4ab72ebb3ce65f8f1b001c13
LibTracyClient.v0.9.0+1.armv6l-linux-gnueabihf.tar.gz/md5/7c1541edbe31bfb9e43f4ec09a3aa748
LibTracyClient.v0.9.0+1.armv6l-linux-gnueabihf.tar.gz/sha512/ab8c2502c0fa743538b8929756f283514ee4c69a6fc65555dca7b95021c36ce827ee33e8594d0447f15fa9bd1df873b1a1a75f876989813386f46a803c504c06
LibTracyClient.v0.9.0+1.armv6l-linux-musleabihf.tar.gz/md5/2904a775192b8bb53c170f28d3588ea0
LibTracyClient.v0.9.0+1.armv6l-linux-musleabihf.tar.gz/sha512/1b1288619a72e30a1e414295591d93e122c9c478e574e31c09f49e6ee3b665a64a883cd367566cec9ba95abb5fdcc51056d9853400f441ddd0f27a369a20bae3
LibTracyClient.v0.9.0+1.armv7l-linux-gnueabihf.tar.gz/md5/7773f17dab1acdcb6b9e749dfb04f727
LibTracyClient.v0.9.0+1.armv7l-linux-gnueabihf.tar.gz/sha512/49b7a433aa9945cfd20702584916ab24cf2e35a67804635c11726576763a09c5f2e578002e175d9ca3e109e29c454b4ad5db2e267ed5aeb002eff45965a74704
LibTracyClient.v0.9.0+1.armv7l-linux-musleabihf.tar.gz/md5/9c1799102529603793bf180c2fd432ec
LibTracyClient.v0.9.0+1.armv7l-linux-musleabihf.tar.gz/sha512/ab2fcde7a59754b15d36f39e88fddbf1f198e15221680b9cd0dcb7eb43becc498d17ca1763ec576479646f0d4a1947a9b39f340db800e859751105d7d7aa5ed6
LibTracyClient.v0.9.0+1.i686-linux-gnu.tar.gz/md5/4f64c950d319cdeeec379cef58f41a13
LibTracyClient.v0.9.0+1.i686-linux-gnu.tar.gz/sha512/9258ec31e5023e7b503c36f1d76d4e6c0b7492abeb177ffe772a64da1d5db6f199031d22956a7702a809b1263b49aef614763816d1a18f5590d0a00b3f6243f1
LibTracyClient.v0.9.0+1.i686-linux-musl.tar.gz/md5/d5524ddb8c8537b02b737bd7f2a68275
LibTracyClient.v0.9.0+1.i686-linux-musl.tar.gz/sha512/f149ea48cff01f6cd9da40692eed9900d5b2ff3a3e10e27bb10b62a89034f37f9a68fc080b97d41efb95718472898c8cc6271a8934f907275cde19f44582de08
LibTracyClient.v0.9.0+1.i686-w64-mingw32.tar.gz/md5/c415459220b24c0a67553e4691801639
LibTracyClient.v0.9.0+1.i686-w64-mingw32.tar.gz/sha512/57c8826be9fb049fa418a72dc8fbf576b6fbf45da1662f07ed041b9e55c36e487c02c43a1e64003d76a0040f0e998201e8b0d3853960023ea440a2daadcb4f77
LibTracyClient.v0.9.0+1.powerpc64le-linux-gnu.tar.gz/md5/5eacaa3672522f45733595182ba643fc
LibTracyClient.v0.9.0+1.powerpc64le-linux-gnu.tar.gz/sha512/4edf154a9ac126fe31879b7962af127d99e5afd19dc046275ddb26b9f455431fd6fd398373a01d6f8865b090cb87ed521a5919b8037d569c569c36c7a8a2f72f
LibTracyClient.v0.9.0+1.x86_64-apple-darwin.tar.gz/md5/bb517fdccbf51c7f0889919735889d65
LibTracyClient.v0.9.0+1.x86_64-apple-darwin.tar.gz/sha512/a3587248776c859e60d367e91908e36fd9f7fd3e27320dfac2c7527ee120c1a2652b2da1c0c1a006d2c28c7f93992dd4a3b2565e7f2c5feec6a5661cc4cf080e
LibTracyClient.v0.9.0+1.x86_64-linux-gnu.tar.gz/md5/2dd1cbcf917c7df9df110b99f393b916
LibTracyClient.v0.9.0+1.x86_64-linux-gnu.tar.gz/sha512/3d0dc4cd3df2528678a0305baa23d5cda97406f73a3def3ff2fd8ee2517f07051e19719faf99604fddb3aa5b20574b92b240f7898d392d9e21431f275c0a8aa8
LibTracyClient.v0.9.0+1.x86_64-linux-musl.tar.gz/md5/d1b02aaf45f13ba34f4f1138b83f8ce7
LibTracyClient.v0.9.0+1.x86_64-linux-musl.tar.gz/sha512/7c8a3748238d015de4be7074c1efe72b2cda9dbc23c2ab722750885cd01cd4a6ea6e37b241fc997d41ab3949154b4a5bddbfd8f3a59ca153e9b42136a154a02a
LibTracyClient.v0.9.0+1.x86_64-unknown-freebsd.tar.gz/md5/7bb6f98ab2a39a062293c95f91b959f0
LibTracyClient.v0.9.0+1.x86_64-unknown-freebsd.tar.gz/sha512/72935612fbfb339003b9be38c64a53c6a19a58b8427485b4351f18933a2ec7a4f7bf00556996501ccd3857e8085910af72020e4507951eb8ee094287a82208ae
LibTracyClient.v0.9.0+1.x86_64-w64-mingw32.tar.gz/md5/f3b60a51e8f64ec62c07597f6c4e52f7
LibTracyClient.v0.9.0+1.x86_64-w64-mingw32.tar.gz/sha512/3ef5916f9a441e8655569c803392987a39c3baa79ac9ac446760cc60577619a616ee1365673d5323eb1c5884a6bd9e283b4094cdcbf42eba6b409a0348643b25
libtracyclient-5a1f5371b792c12aea324213e1dc738b2923ae21.tar.gz/md5/62791801e0ffb11a7d70c2d724a230be
libtracyclient-5a1f5371b792c12aea324213e1dc738b2923ae21.tar.gz/sha512/b0570e048eee08ba5e21e0f855b2346cad408b0b86cdf79c8bb3727bb0ab57167dc7988f4dd1ee4157b371135201b87d1491237c09a2934de65eb3b9e26fcdc2
LibTracyClient.v0.9.1+1.aarch64-apple-darwin.tar.gz/md5/540617535443c918d42415d7e775456d
LibTracyClient.v0.9.1+1.aarch64-apple-darwin.tar.gz/sha512/5dc245327900a26f20692c76c6a3043a07ee88010b814bdded79460fd77cd587b69448b074a1afc931290ef7f445771aec71a003d6e425d42c75d2cc72bdf846
LibTracyClient.v0.9.1+1.aarch64-linux-gnu.tar.gz/md5/d2a09ad722a1f15090dd0ae6ce9c37c7
LibTracyClient.v0.9.1+1.aarch64-linux-gnu.tar.gz/sha512/b5e6f44bb4690226dd4176a43824193c7e1a7873cf75c2e261b6cb0a614aad172c0265b6aa89849328133de9894af94a4a38b4362ec8d706d03a0cad4fd1171a
LibTracyClient.v0.9.1+1.aarch64-linux-musl.tar.gz/md5/eccc851b7346590d2636ff585e4b1f55
LibTracyClient.v0.9.1+1.aarch64-linux-musl.tar.gz/sha512/214dd6d7ce70ce11748091143a2e89dfc6b85c62424d971eb973b1126ee3da98d8285c2f5557c7b62523f76e513692947b5ef0f046bdf183da3ddd38554b4a97
LibTracyClient.v0.9.1+1.armv6l-linux-gnueabihf.tar.gz/md5/200b940fb4b6c7f8cb6c621ae4bab347
LibTracyClient.v0.9.1+1.armv6l-linux-gnueabihf.tar.gz/sha512/1213b716ed3680bb8b1a682099ef325a257e29811498a731553c4d6fc8f93831038d211720da1985f72f42c6409ea5e2aa262493557abecb6587d7db69bde737
LibTracyClient.v0.9.1+1.armv6l-linux-musleabihf.tar.gz/md5/44dddf9ef55cd9d222a16eff2b2e14e7
LibTracyClient.v0.9.1+1.armv6l-linux-musleabihf.tar.gz/sha512/ba887e97366e9ac9dbc43864b3d8cd8cdf2db571fb198593f2ae66790fb9cd5a12d4c29088a65bc103939ec029fa426925a0990c0a2b1441fece974b3dabce6c
LibTracyClient.v0.9.1+1.armv7l-linux-gnueabihf.tar.gz/md5/286bbb5c258fcd38224ff03a691cf474
LibTracyClient.v0.9.1+1.armv7l-linux-gnueabihf.tar.gz/sha512/26e85ec00a794901d412bb54d1ea1cbd9c7972e2dcc6fbcad12d520088c4d6d86a8ff7398cff14e60741abb30028fcda39515b2a1ae1a225a3192e9e956a8641
LibTracyClient.v0.9.1+1.armv7l-linux-musleabihf.tar.gz/md5/36b317542174c07c4e85fdffcf5e34c7
LibTracyClient.v0.9.1+1.armv7l-linux-musleabihf.tar.gz/sha512/d9e28e6ebb4537ae4de75ae03bb28d170c7dc92731f6a8d6431ce2e5ee5ad717a04990a42b57898247a5059b8e0d93b5812d6ffc66c94c5571adec2ecfe0555d
LibTracyClient.v0.9.1+1.i686-linux-gnu.tar.gz/md5/1990c1f0701a3c7853fa57e54d214465
LibTracyClient.v0.9.1+1.i686-linux-gnu.tar.gz/sha512/f899f109ad77f2b1964e94242b0a601128b063140190105fd44e43782036ef0134cdc2b6cb1faaf5b7c0742f4a168c7b7870f18d2d18b19fc94d8f269f3027d1
LibTracyClient.v0.9.1+1.i686-linux-musl.tar.gz/md5/eeee122d2166e8a251bcee40d66daede
LibTracyClient.v0.9.1+1.i686-linux-musl.tar.gz/sha512/fcf0de849b8533065e61d5e1528cc1e882d2734c488a030728ec4915651bb2bd049536d9d76ecce3063647d0cd20e10033beb3d8de82e06c9c73e9eb41b12b03
LibTracyClient.v0.9.1+1.i686-w64-mingw32.tar.gz/md5/0f42ad75bb75084e129b0e6fe5e86196
LibTracyClient.v0.9.1+1.i686-w64-mingw32.tar.gz/sha512/28821145c8d3d7d8dc3e1db883478e53b4eacafa5f4deae965057ad6466c683de6bd9265a92f1d63ab587107fbb374f7167ff4be70c5fbdf09db9b57fb619b3e
LibTracyClient.v0.9.1+1.powerpc64le-linux-gnu.tar.gz/md5/1a2243ac3a4efa224da1eaace7aa9278
LibTracyClient.v0.9.1+1.powerpc64le-linux-gnu.tar.gz/sha512/acd17f12afb523348de56f7fa84497468ec5f2f76d9622180e72bded7eb4eda4033e28ed20cb25c7c8049b086c994c10a6d97efae06a661ce7d0d65e5c8bbfd5
LibTracyClient.v0.9.1+1.x86_64-apple-darwin.tar.gz/md5/34a75343f9aed8e6db252cc043b26b09
LibTracyClient.v0.9.1+1.x86_64-apple-darwin.tar.gz/sha512/2eaf4e5ef1959110cecaf467bdc28e92d45862c4d83315fccafbf3ab4e498918f4d715b0303be4e563ac7ddb88c9d9cec71351183c5ec0055759a86341473232
LibTracyClient.v0.9.1+1.x86_64-linux-gnu.tar.gz/md5/d6fcd4255ab1363412e85497770ab522
LibTracyClient.v0.9.1+1.x86_64-linux-gnu.tar.gz/sha512/a879afb13a35d18c8ed5593cf83d48ac228c45c246fa013f5f067fa216b61d2dc5b8adfc4ced6043c331b982d050522b228a5792c707b9deff2fb65b37aa66ea
LibTracyClient.v0.9.1+1.x86_64-linux-musl.tar.gz/md5/0490919c558c5ae8c833934426e0dda4
LibTracyClient.v0.9.1+1.x86_64-linux-musl.tar.gz/sha512/b37637e8530ad9b3cb58732bb35d9634aadaeb5a83815f602d5804d4fff1499ea49ce72300b03036ecd642d0dbd8f86d475b637673bc8d400f70e4cb4cf865eb
LibTracyClient.v0.9.1+1.x86_64-unknown-freebsd.tar.gz/md5/985a19b60f44349870c304c7a140cad8
LibTracyClient.v0.9.1+1.x86_64-unknown-freebsd.tar.gz/sha512/514f01127dcc641ab4b66fac49c0470f6277bff37fbd82084482d3db72e1964d85655ca8aa135dbe08265d711d857ed861eba038a072f8e4fcffeefe3b11808d
LibTracyClient.v0.9.1+1.x86_64-w64-mingw32.tar.gz/md5/a777f0997a238c3f28a362e2998d92a2
LibTracyClient.v0.9.1+1.x86_64-w64-mingw32.tar.gz/sha512/3aa49b49f696792d20265e9947b9a0dc4b888a482617513252176b0ac59db9069c965f01a8c1c253f73050eab3344d9d0b4c26a826ff9bfa92e36eb42814444d
13 changes: 9 additions & 4 deletions deps/libtracyclient.mk
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ LIBTRACYCLIENT_SRCCACHE := $(SRCCACHE)/$(LIBTRACYCLIENT_SRC_DIR)
LIBTRACYCLIENT_CMAKE :=
LIBTRACYCLIENT_CMAKE += -DBUILD_SHARED_LIBS=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_FIBERS=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_NO_BROADCAST=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_NO_SAMPLING=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_ONLY_LOCALHOST=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_NO_CODE_TRANSFER=ON
LIBTRACYCLIENT_CMAKE += -DTRACY_NO_FRAME_IMAGE=ON
Expand All @@ -30,12 +30,17 @@ $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-freebsd-elfw.patch-applied: $(LIBTRACY
patch -p1 -f < $(SRCDIR)/patches/libTracyClient-freebsd-elfw.patch
echo 1 > $@

$(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-no-crash-handler.patch-applied: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-freebsd-elfw.patch-applied
$(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-no-sampling.patch-applied: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-freebsd-elfw.patch-applied
cd $(LIBTRACYCLIENT_BUILDDIR) && \
patch -p1 -f < $(SRCDIR)/patches/libTracyClient-no-crash-handler.patch
patch -p1 -f < $(SRCDIR)/patches/libTracyClient-no-sampling.patch
echo 1 > $@

$(LIBTRACYCLIENT_BUILDDIR)/build-configured: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-no-crash-handler.patch-applied
$(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-plot-config.patch-applied: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-no-sampling.patch-applied
cd $(LIBTRACYCLIENT_BUILDDIR) && \
patch -p1 -f < $(SRCDIR)/patches/libTracyClient-plot-config.patch
echo 1 > $@

$(LIBTRACYCLIENT_BUILDDIR)/build-configured: $(LIBTRACYCLIENT_BUILDDIR)/libTracyClient-plot-config.patch-applied
mkdir -p $(dir $@)
cd $(dir $@) && \
$(CMAKE) . $(CMAKE_GENERATOR_COMMAND) $(CMAKE_COMMON) $(LIBTRACYCLIENT_CMAKE) \
Expand Down
8 changes: 4 additions & 4 deletions deps/libtracyclient.version
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
## jll artifact
LIBTRACYCLIENT_JLL_NAME := LibTracyClient
LIBTRACYCLIENT_JLL_VER := 0.9.0+1
LIBTRACYCLIENT_JLL_VER := 0.9.1+1

## source build
LIBTRACYCLIENT_VER := 0.9.0
LIBTRACYCLIENT_BRANCH=v0.9
LIBTRACYCLIENT_SHA1=5a1f5371b792c12aea324213e1dc738b2923ae21
LIBTRACYCLIENT_VER := 0.9.1
LIBTRACYCLIENT_BRANCH=v0.9.1
LIBTRACYCLIENT_SHA1=897aec5b062664d2485f4f9a213715d2e527e0ca
21 changes: 0 additions & 21 deletions deps/patches/libTracyClient-no-crash-handler.patch

This file was deleted.

79 changes: 79 additions & 0 deletions deps/patches/libTracyClient-no-sampling.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
commit 6249999153a9497b32bc84e9dc95a1537a0af714
Author: Cody Tapscott <[email protected]>
Date: Tue Apr 4 15:20:46 2023 -0400

linux: respect `TRACY_NO_SAMPLING` for sys-tracing

This compile-time flag was being ignored on Linux. This change adds
gating for software-sampled stack trace sampling following the same
pattern as other `TRACY_NO_SAMPLE_*` options.

If `TRACY_NO_SAMPLING=1` is provided as an environment variable,
software stack sampling is also disabled.

diff --git a/public/client/TracySysTrace.cpp b/public/client/TracySysTrace.cpp
index 4a562eaa..af0641fe 100644
--- a/public/client/TracySysTrace.cpp
+++ b/public/client/TracySysTrace.cpp
@@ -770,6 +770,13 @@ bool SysTraceStart( int64_t& samplingPeriod )
TracyDebug( "sched_wakeup id: %i\n", wakeupId );
TracyDebug( "drm_vblank_event id: %i\n", vsyncId );

+#ifdef TRACY_NO_SAMPLING
+ const bool noSoftwareSampling = true;
+#else
+ const char* noSoftwareSamplingEnv = GetEnvVar( "TRACY_NO_SAMPLING" );
+ const bool noSoftwareSampling = noSoftwareSamplingEnv && noSoftwareSamplingEnv[0] == '1';
+#endif
+
#ifdef TRACY_NO_SAMPLE_RETIREMENT
const bool noRetirement = true;
#else
@@ -839,28 +846,31 @@ bool SysTraceStart( int64_t& samplingPeriod )
pe.clockid = CLOCK_MONOTONIC_RAW;
#endif

- TracyDebug( "Setup software sampling\n" );
- ProbePreciseIp( pe, currentPid );
- for( int i=0; i<s_numCpus; i++ )
+ if( !noSoftwareSampling )
{
- int fd = perf_event_open( &pe, currentPid, i, -1, PERF_FLAG_FD_CLOEXEC );
- if( fd == -1 )
+ TracyDebug( "Setup software sampling\n" );
+ ProbePreciseIp( pe, currentPid );
+ for( int i=0; i<s_numCpus; i++ )
{
- pe.exclude_kernel = 1;
- ProbePreciseIp( pe, currentPid );
- fd = perf_event_open( &pe, currentPid, i, -1, PERF_FLAG_FD_CLOEXEC );
+ int fd = perf_event_open( &pe, currentPid, i, -1, PERF_FLAG_FD_CLOEXEC );
if( fd == -1 )
{
- TracyDebug( " Failed to setup!\n");
- break;
+ pe.exclude_kernel = 1;
+ ProbePreciseIp( pe, currentPid );
+ fd = perf_event_open( &pe, currentPid, i, -1, PERF_FLAG_FD_CLOEXEC );
+ if( fd == -1 )
+ {
+ TracyDebug( " Failed to setup!\n");
+ break;
+ }
+ TracyDebug( " No access to kernel samples\n" );
+ }
+ new( s_ring+s_numBuffers ) RingBuffer( 64*1024, fd, EventCallstack );
+ if( s_ring[s_numBuffers].IsValid() )
+ {
+ s_numBuffers++;
+ TracyDebug( " Core %i ok\n", i );
}
- TracyDebug( " No access to kernel samples\n" );
- }
- new( s_ring+s_numBuffers ) RingBuffer( 64*1024, fd, EventCallstack );
- if( s_ring[s_numBuffers].IsValid() )
- {
- s_numBuffers++;
- TracyDebug( " Core %i ok\n", i );
}
}
57 changes: 57 additions & 0 deletions deps/patches/libTracyClient-plot-config.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
commit 7151c6afd9cc40877325c64bd19bcff7211fbd59
Author: Bartosz Taudul <[email protected]>
Date: Wed Mar 8 23:18:36 2023 +0100

Add support for configuring plots to C API.

diff --git a/public/client/TracyProfiler.cpp b/public/client/TracyProfiler.cpp
index 6104a7ed..38b5ea13 100644
--- a/public/client/TracyProfiler.cpp
+++ b/public/client/TracyProfiler.cpp
@@ -4149,6 +4149,7 @@ TRACY_API void ___tracy_emit_frame_image( const void* image, uint16_t w, uint16_
TRACY_API void ___tracy_emit_plot( const char* name, double val ) { tracy::Profiler::PlotData( name, val ); }
TRACY_API void ___tracy_emit_plot_float( const char* name, float val ) { tracy::Profiler::PlotData( name, val ); }
TRACY_API void ___tracy_emit_plot_int( const char* name, int64_t val ) { tracy::Profiler::PlotData( name, val ); }
+TRACY_API void ___tracy_emit_plot_config( const char* name, int type, int step, int fill, uint32_t color ) { tracy::Profiler::ConfigurePlot( name, tracy::PlotFormatType(type), step, fill, color ); }
TRACY_API void ___tracy_emit_message( const char* txt, size_t size, int callstack ) { tracy::Profiler::Message( txt, size, callstack ); }
TRACY_API void ___tracy_emit_messageL( const char* txt, int callstack ) { tracy::Profiler::Message( txt, callstack ); }
TRACY_API void ___tracy_emit_messageC( const char* txt, size_t size, uint32_t color, int callstack ) { tracy::Profiler::MessageColor( txt, size, color, callstack ); }
diff --git a/public/tracy/TracyC.h b/public/tracy/TracyC.h
index bedf5e16..736b51ed 100644
--- a/public/tracy/TracyC.h
+++ b/public/tracy/TracyC.h
@@ -11,6 +11,13 @@
extern "C" {
#endif

+enum TracyPlotFormatEnum
+{
+ TracyPlotFormatNumber,
+ TracyPlotFormatMemory,
+ TracyPlotFormatPercentage,
+};
+
TRACY_API void ___tracy_set_thread_name( const char* name );

#define TracyCSetThreadName( name ) ___tracy_set_thread_name( name );
@@ -60,6 +67,8 @@ typedef const void* TracyCZoneCtx;
#define TracyCPlot(x,y)
#define TracyCPlotF(x,y)
#define TracyCPlotI(x,y)
+#define TracyCPlotConfig(x,y,z,w,a)
+
#define TracyCMessage(x,y)
#define TracyCMessageL(x)
#define TracyCMessageC(x,y,z)
@@ -289,11 +298,13 @@ TRACY_API void ___tracy_emit_frame_image( const void* image, uint16_t w, uint16_
TRACY_API void ___tracy_emit_plot( const char* name, double val );
TRACY_API void ___tracy_emit_plot_float( const char* name, float val );
TRACY_API void ___tracy_emit_plot_int( const char* name, int64_t val );
+TRACY_API void ___tracy_emit_plot_config( const char* name, int type, int step, int fill, uint32_t color );
TRACY_API void ___tracy_emit_message_appinfo( const char* txt, size_t size );

#define TracyCPlot( name, val ) ___tracy_emit_plot( name, val );
#define TracyCPlotF( name, val ) ___tracy_emit_plot_float( name, val );
#define TracyCPlotI( name, val ) ___tracy_emit_plot_int( name, val );
+#define TracyCPlotConfig( name, type, step, fill, color ) ___tracy_emit_plot_config( name, type, step, fill, color );
#define TracyCAppInfo( txt, size ) ___tracy_emit_message_appinfo( txt, size );
2 changes: 1 addition & 1 deletion src/aotcompile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1448,7 +1448,7 @@ void jl_dump_native_impl(void *native_code,
const char *asm_fname,
const char *sysimg_data, size_t sysimg_len, ios_t *s)
{
JL_TIMING(NATIVE_DUMP);
JL_TIMING(NATIVE_DUMP, NATIVE_DUMP);
jl_native_code_desc_t *data = (jl_native_code_desc_t*)native_code;
if (!bc_fname && !unopt_bc_fname && !obj_fname && !asm_fname) {
LLVM_DEBUG(dbgs() << "No output requested, skipping native code dump?\n");
Expand Down
Loading