From b7ecf700fae07bc7057388d57405de88cd2c7ba0 Mon Sep 17 00:00:00 2001 From: kossLAN Date: Fri, 29 May 2026 09:17:36 -0400 Subject: [PATCH] tracy: move profiler facade into workspace crate --- Cargo.lock | 13 +++++++++++-- Cargo.toml | 6 +++--- src/main.rs | 5 ++++- tracy/Cargo.toml | 14 ++++++++++++++ src/tracy.rs => tracy/src/lib.rs | 0 {src/tracy => tracy/src}/tracy_impl.rs | 11 +++++++++-- {src/tracy => tracy/src}/tracy_noop.rs | 9 ++++++++- 7 files changed, 49 insertions(+), 9 deletions(-) create mode 100644 tracy/Cargo.toml rename src/tracy.rs => tracy/src/lib.rs (100%) rename {src/tracy => tracy/src}/tracy_impl.rs (94%) rename {src/tracy => tracy/src}/tracy_noop.rs (82%) diff --git a/Cargo.lock b/Cargo.lock index 6071ac1b..bbd9d565 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -681,6 +681,7 @@ dependencies = [ "jay-layout-animation", "jay-time", "jay-toml-config", + "jay-tracy", "jay-units", "jay-utils", "kbvm", @@ -698,13 +699,11 @@ dependencies = [ "regex", "repc", "run-on-drop", - "rustc-demangle", "serde", "serde_json", "smallvec", "thiserror", "tiny-skia", - "tracy-client-sys", "uapi", "walkdir", "with_builtin_macros", @@ -802,6 +801,16 @@ dependencies = [ "walkdir", ] +[[package]] +name = "jay-tracy" +version = "0.1.0" +dependencies = [ + "ahash", + "parking_lot", + "rustc-demangle", + "tracy-client-sys", +] + [[package]] name = "jay-units" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index 6939361e..71b7640f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,7 @@ members = [ "criteria", "cmm", "time", + "tracy", "toml-config", "algorithms", "toml-spec", @@ -53,6 +54,7 @@ jay-utils = { version = "0.1.0", path = "utils" } jay-criteria = { version = "0.1.0", path = "criteria" } jay-cmm = { version = "0.1.0", path = "cmm" } jay-time = { version = "0.1.0", path = "time" } +jay-tracy = { version = "0.1.0", path = "tracy" } uapi = "0.2.13" thiserror = "2.0.11" @@ -85,8 +87,6 @@ serde = { version = "1.0.196", features = ["derive"] } serde_json = "1.0.128" linearize = { version = "0.1.3", features = ["derive"] } png = "0.18.0" -rustc-demangle = { version = "0.1.24", optional = true } -tracy-client-sys = { version = "0.24.1", features = ["ondemand", "manual-lifetime", "debuginfod", "demangle"], optional = true } kbvm = { version = "0.1.6", features = ["compose"] } tiny-skia = { version = "0.12.0", default-features = false, features = ["std"] } regex = "1.11.1" @@ -118,4 +118,4 @@ opt-level = 3 [features] rc_tracking = [] it = [] -tracy = ["dep:tracy-client-sys", "dep:rustc-demangle"] +tracy = ["jay-tracy/tracy"] diff --git a/src/main.rs b/src/main.rs index 9ca91200..77f13bbb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -45,7 +45,10 @@ mod macros; #[macro_use] mod leaks; #[macro_use] -mod tracy; +extern crate jay_tracy; + +use jay_tracy as tracy; + mod acceptor; mod allocator; mod animation; diff --git a/tracy/Cargo.toml b/tracy/Cargo.toml new file mode 100644 index 00000000..c80436b7 --- /dev/null +++ b/tracy/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "jay-tracy" +version = "0.1.0" +edition = "2024" +license = "GPL-3.0-only" + +[dependencies] +ahash = { version = "0.8.7", optional = true } +parking_lot = { version = "0.12.1", optional = true } +rustc-demangle = { version = "0.1.24", optional = true } +tracy-client-sys = { version = "0.24.1", features = ["ondemand", "manual-lifetime", "debuginfod", "demangle"], optional = true } + +[features] +tracy = ["dep:ahash", "dep:parking_lot", "dep:rustc-demangle", "dep:tracy-client-sys"] diff --git a/src/tracy.rs b/tracy/src/lib.rs similarity index 100% rename from src/tracy.rs rename to tracy/src/lib.rs diff --git a/src/tracy/tracy_impl.rs b/tracy/src/tracy_impl.rs similarity index 94% rename from src/tracy/tracy_impl.rs rename to tracy/src/tracy_impl.rs index 5b5d0b51..43b8d4ce 100644 --- a/src/tracy/tracy_impl.rs +++ b/tracy/src/tracy_impl.rs @@ -66,9 +66,10 @@ impl ZoneName { } } +#[macro_export] macro_rules! create_zone_name { ($($tt:tt)*) => { - crate::tracy::ZoneName::__get(&format!($($tt)*)) + $crate::ZoneName::__get(&format!($($tt)*)) }; } @@ -85,6 +86,7 @@ impl Drop for RunningZone { } } +#[macro_export] macro_rules! dynamic_raii_zone { ($name:expr) => {{ let name: ZoneName = $name; @@ -92,16 +94,18 @@ macro_rules! dynamic_raii_zone { }}; } +#[macro_export] macro_rules! dynamic_zone { ($name:expr) => { let _zone = dynamic_raii_zone!($name); }; } +#[macro_export] macro_rules! raii_zone { ($($tt:tt)*) => { { - static CACHE: std::sync::LazyLock = std::sync::LazyLock::new(|| { + static CACHE: std::sync::LazyLock<$crate::ZoneName> = std::sync::LazyLock::new(|| { create_zone_name!($($tt)*) }); CACHE.__enter() @@ -109,6 +113,7 @@ macro_rules! raii_zone { }; } +#[macro_export] macro_rules! zone { ($($tt:tt)*) => { let _zone = raii_zone!($($tt)*); @@ -147,6 +152,7 @@ impl FrameName { } } +#[macro_export] macro_rules! raii_frame { ($name:expr) => {{ let name: FrameName = $name; @@ -154,6 +160,7 @@ macro_rules! raii_frame { }}; } +#[macro_export] macro_rules! frame { ($name:expr) => { let _frame = raii_frame!($name); diff --git a/src/tracy/tracy_noop.rs b/tracy/src/tracy_noop.rs similarity index 82% rename from src/tracy/tracy_noop.rs rename to tracy/src/tracy_noop.rs index da88c2b6..04b3ccec 100644 --- a/src/tracy/tracy_noop.rs +++ b/tracy/src/tracy_noop.rs @@ -12,36 +12,43 @@ impl FrameName { } } +#[macro_export] macro_rules! create_zone_name { ($($tt:tt)*) => { - crate::tracy::ZoneName + $crate::ZoneName }; } +#[macro_export] macro_rules! dynamic_raii_zone { ($name:expr) => {}; } +#[macro_export] macro_rules! dynamic_zone { ($name:expr) => {}; } +#[macro_export] macro_rules! raii_zone { ($($tt:tt)*) => { () }; } +#[macro_export] macro_rules! zone { ($($tt:tt)*) => {}; } +#[macro_export] macro_rules! raii_frame { ($name:expr) => { () }; } +#[macro_export] macro_rules! frame { ($name:expr) => {}; }