1
0
Fork 0
forked from wry/wry

tracy: move profiler facade into workspace crate

This commit is contained in:
kossLAN 2026-05-29 09:17:36 -04:00
parent 657e7ce2f7
commit b7ecf700fa
No known key found for this signature in database
7 changed files with 49 additions and 9 deletions

13
Cargo.lock generated
View file

@ -681,6 +681,7 @@ dependencies = [
"jay-layout-animation", "jay-layout-animation",
"jay-time", "jay-time",
"jay-toml-config", "jay-toml-config",
"jay-tracy",
"jay-units", "jay-units",
"jay-utils", "jay-utils",
"kbvm", "kbvm",
@ -698,13 +699,11 @@ dependencies = [
"regex", "regex",
"repc", "repc",
"run-on-drop", "run-on-drop",
"rustc-demangle",
"serde", "serde",
"serde_json", "serde_json",
"smallvec", "smallvec",
"thiserror", "thiserror",
"tiny-skia", "tiny-skia",
"tracy-client-sys",
"uapi", "uapi",
"walkdir", "walkdir",
"with_builtin_macros", "with_builtin_macros",
@ -802,6 +801,16 @@ dependencies = [
"walkdir", "walkdir",
] ]
[[package]]
name = "jay-tracy"
version = "0.1.0"
dependencies = [
"ahash",
"parking_lot",
"rustc-demangle",
"tracy-client-sys",
]
[[package]] [[package]]
name = "jay-units" name = "jay-units"
version = "0.1.0" version = "0.1.0"

View file

@ -26,6 +26,7 @@ members = [
"criteria", "criteria",
"cmm", "cmm",
"time", "time",
"tracy",
"toml-config", "toml-config",
"algorithms", "algorithms",
"toml-spec", "toml-spec",
@ -53,6 +54,7 @@ jay-utils = { version = "0.1.0", path = "utils" }
jay-criteria = { version = "0.1.0", path = "criteria" } jay-criteria = { version = "0.1.0", path = "criteria" }
jay-cmm = { version = "0.1.0", path = "cmm" } jay-cmm = { version = "0.1.0", path = "cmm" }
jay-time = { version = "0.1.0", path = "time" } jay-time = { version = "0.1.0", path = "time" }
jay-tracy = { version = "0.1.0", path = "tracy" }
uapi = "0.2.13" uapi = "0.2.13"
thiserror = "2.0.11" thiserror = "2.0.11"
@ -85,8 +87,6 @@ serde = { version = "1.0.196", features = ["derive"] }
serde_json = "1.0.128" serde_json = "1.0.128"
linearize = { version = "0.1.3", features = ["derive"] } linearize = { version = "0.1.3", features = ["derive"] }
png = "0.18.0" 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"] } kbvm = { version = "0.1.6", features = ["compose"] }
tiny-skia = { version = "0.12.0", default-features = false, features = ["std"] } tiny-skia = { version = "0.12.0", default-features = false, features = ["std"] }
regex = "1.11.1" regex = "1.11.1"
@ -118,4 +118,4 @@ opt-level = 3
[features] [features]
rc_tracking = [] rc_tracking = []
it = [] it = []
tracy = ["dep:tracy-client-sys", "dep:rustc-demangle"] tracy = ["jay-tracy/tracy"]

View file

@ -45,7 +45,10 @@ mod macros;
#[macro_use] #[macro_use]
mod leaks; mod leaks;
#[macro_use] #[macro_use]
mod tracy; extern crate jay_tracy;
use jay_tracy as tracy;
mod acceptor; mod acceptor;
mod allocator; mod allocator;
mod animation; mod animation;

14
tracy/Cargo.toml Normal file
View file

@ -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"]

View file

@ -66,9 +66,10 @@ impl ZoneName {
} }
} }
#[macro_export]
macro_rules! create_zone_name { macro_rules! create_zone_name {
($($tt:tt)*) => { ($($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 { macro_rules! dynamic_raii_zone {
($name:expr) => {{ ($name:expr) => {{
let name: ZoneName = $name; let name: ZoneName = $name;
@ -92,16 +94,18 @@ macro_rules! dynamic_raii_zone {
}}; }};
} }
#[macro_export]
macro_rules! dynamic_zone { macro_rules! dynamic_zone {
($name:expr) => { ($name:expr) => {
let _zone = dynamic_raii_zone!($name); let _zone = dynamic_raii_zone!($name);
}; };
} }
#[macro_export]
macro_rules! raii_zone { macro_rules! raii_zone {
($($tt:tt)*) => { ($($tt:tt)*) => {
{ {
static CACHE: std::sync::LazyLock<crate::tracy::ZoneName> = std::sync::LazyLock::new(|| { static CACHE: std::sync::LazyLock<$crate::ZoneName> = std::sync::LazyLock::new(|| {
create_zone_name!($($tt)*) create_zone_name!($($tt)*)
}); });
CACHE.__enter() CACHE.__enter()
@ -109,6 +113,7 @@ macro_rules! raii_zone {
}; };
} }
#[macro_export]
macro_rules! zone { macro_rules! zone {
($($tt:tt)*) => { ($($tt:tt)*) => {
let _zone = raii_zone!($($tt)*); let _zone = raii_zone!($($tt)*);
@ -147,6 +152,7 @@ impl FrameName {
} }
} }
#[macro_export]
macro_rules! raii_frame { macro_rules! raii_frame {
($name:expr) => {{ ($name:expr) => {{
let name: FrameName = $name; let name: FrameName = $name;
@ -154,6 +160,7 @@ macro_rules! raii_frame {
}}; }};
} }
#[macro_export]
macro_rules! frame { macro_rules! frame {
($name:expr) => { ($name:expr) => {
let _frame = raii_frame!($name); let _frame = raii_frame!($name);

View file

@ -12,36 +12,43 @@ impl FrameName {
} }
} }
#[macro_export]
macro_rules! create_zone_name { macro_rules! create_zone_name {
($($tt:tt)*) => { ($($tt:tt)*) => {
crate::tracy::ZoneName $crate::ZoneName
}; };
} }
#[macro_export]
macro_rules! dynamic_raii_zone { macro_rules! dynamic_raii_zone {
($name:expr) => {}; ($name:expr) => {};
} }
#[macro_export]
macro_rules! dynamic_zone { macro_rules! dynamic_zone {
($name:expr) => {}; ($name:expr) => {};
} }
#[macro_export]
macro_rules! raii_zone { macro_rules! raii_zone {
($($tt:tt)*) => { ($($tt:tt)*) => {
() ()
}; };
} }
#[macro_export]
macro_rules! zone { macro_rules! zone {
($($tt:tt)*) => {}; ($($tt:tt)*) => {};
} }
#[macro_export]
macro_rules! raii_frame { macro_rules! raii_frame {
($name:expr) => { ($name:expr) => {
() ()
}; };
} }
#[macro_export]
macro_rules! frame { macro_rules! frame {
($name:expr) => {}; ($name:expr) => {};
} }