From 2d6d4bc8f53ceb771c1619cdb1a8e5a41fc8febb Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Fri, 9 Aug 2024 14:46:50 +0200 Subject: [PATCH] desktop: Update tracy and bump profiling --- Cargo.lock | 20 ++++++++++---------- desktop/Cargo.toml | 2 +- desktop/src/main.rs | 5 +++-- desktop/src/tracy.rs | 20 ++++++++++++++++++++ 4 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 desktop/src/tracy.rs diff --git a/Cargo.lock b/Cargo.lock index 717dda434..a11f35b78 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3829,9 +3829,9 @@ dependencies = [ [[package]] name = "profiling" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42" +checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" dependencies = [ "profiling-procmacros", "tracy-client", @@ -3839,9 +3839,9 @@ dependencies = [ [[package]] name = "profiling-procmacros" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce97fecd27bc49296e5e20518b5a1bb54a14f7d5fe6228bc9686ee2a74915cc8" +checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd" dependencies = [ "quote", "syn 2.0.76", @@ -5567,9 +5567,9 @@ dependencies = [ [[package]] name = "tracing-tracy" -version = "0.10.4" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6c7bf057d67aa107e076129a4f331aaac47ec379952d9f0775c6b1d838ee97" +checksum = "9be7f8874d6438e4263f9874c84eded5095bda795d9c7da6ea0192e1750d3ffe" dependencies = [ "tracing-core", "tracing-subscriber", @@ -5589,9 +5589,9 @@ dependencies = [ [[package]] name = "tracy-client" -version = "0.16.5" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307e6b7030112fe9640fdd87988a40795549ba75c355f59485d14e6b444d2987" +checksum = "63de1e1d4115534008d8fd5788b39324d6f58fc707849090533828619351d855" dependencies = [ "loom", "once_cell", @@ -5600,9 +5600,9 @@ dependencies = [ [[package]] name = "tracy-client-sys" -version = "0.22.2" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d104d610dfa9dd154535102cc9c6164ae1fa37842bc2d9e83f9ac82b0ae0882" +checksum = "98b98232a2447ce0a58f9a0bfb5f5e39647b5c597c994b63945fcccd1306fafb" dependencies = [ "cc", ] diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index 449408350..fd3ba770d 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -47,7 +47,7 @@ gilrs = "0.10" tokio = { workspace = true, features = ["rt-multi-thread", "macros"]} # Deliberately held back to match tracy client used by profiling crate -tracing-tracy = { version = "=0.10.4", optional = true } +tracing-tracy = { version = "=0.11.1", optional = true } rand = "0.8.5" thiserror.workspace = true diff --git a/desktop/src/main.rs b/desktop/src/main.rs index 9939a755b..ac5a307d7 100644 --- a/desktop/src/main.rs +++ b/desktop/src/main.rs @@ -15,6 +15,8 @@ mod gui; mod log; mod player; mod preferences; +#[cfg(feature = "tracy")] +mod tracy; mod util; use crate::preferences::GlobalPreferences; @@ -31,7 +33,6 @@ use std::panic::PanicInfo; use tracing_subscriber::fmt::Layer; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; - use url::Url; thread_local! { @@ -175,7 +176,7 @@ async fn main() -> Result<(), Error> { #[cfg(feature = "tracy")] let subscriber = { - let tracy_subscriber = tracing_tracy::TracyLayer::new(); + let tracy_subscriber = tracing_tracy::TracyLayer::new(tracy::RuffleTracyConfig::default()); subscriber.with(tracy_subscriber) }; diff --git a/desktop/src/tracy.rs b/desktop/src/tracy.rs new file mode 100644 index 000000000..24a619844 --- /dev/null +++ b/desktop/src/tracy.rs @@ -0,0 +1,20 @@ +use tracing::Metadata; +use tracing_subscriber::fmt::format::DefaultFields; +use tracing_tracy::Config; + +#[derive(Default)] +pub struct RuffleTracyConfig(DefaultFields); + +impl Config for RuffleTracyConfig { + type Formatter = DefaultFields; + + fn formatter(&self) -> &Self::Formatter { + &self.0 + } + + fn stack_depth(&self, _metadata: &Metadata<'_>) -> u16 { + // How much, if any, of the stack trace to capture for each event + // Obviously, this adds overhead + 0 + } +}