mirror of
https://github.com/YaLTeR/niri.git
synced 2024-10-26 11:48:09 +03:00
Add tracy profiling under a feature
This commit is contained in:
parent
18b9d0dfcc
commit
0ed5bad452
64
Cargo.lock
generated
64
Cargo.lock
generated
@ -482,6 +482,19 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "generator"
|
||||||
|
version = "0.7.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"log",
|
||||||
|
"rustversion",
|
||||||
|
"windows",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "getrandom"
|
name = "getrandom"
|
||||||
version = "0.2.10"
|
version = "0.2.10"
|
||||||
@ -704,6 +717,19 @@ version = "0.4.19"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
|
checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "loom"
|
||||||
|
version = "0.5.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
"generator",
|
||||||
|
"scoped-tls",
|
||||||
|
"tracing",
|
||||||
|
"tracing-subscriber",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "matchers"
|
name = "matchers"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@ -818,10 +844,12 @@ dependencies = [
|
|||||||
"anyhow",
|
"anyhow",
|
||||||
"bitflags 2.3.3",
|
"bitflags 2.3.3",
|
||||||
"clap",
|
"clap",
|
||||||
|
"profiling",
|
||||||
"smithay",
|
"smithay",
|
||||||
"smithay-drm-extras",
|
"smithay-drm-extras",
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-subscriber",
|
"tracing-subscriber",
|
||||||
|
"tracy-client",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1046,6 +1074,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "46b2164ebdb1dfeec5e337be164292351e11daf63a05174c6776b2f47460f0c9"
|
checksum = "46b2164ebdb1dfeec5e337be164292351e11daf63a05174c6776b2f47460f0c9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"profiling-procmacros",
|
"profiling-procmacros",
|
||||||
|
"tracy-client",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1184,6 +1213,12 @@ dependencies = [
|
|||||||
"windows-sys 0.48.0",
|
"windows-sys 0.48.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustversion"
|
||||||
|
version = "1.0.14"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scan_fmt"
|
name = "scan_fmt"
|
||||||
version = "0.2.6"
|
version = "0.2.6"
|
||||||
@ -1452,6 +1487,26 @@ dependencies = [
|
|||||||
"tracing-log",
|
"tracing-log",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tracy-client"
|
||||||
|
version = "0.15.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "434ecabbda9f67eeea1eab44d52f4a20538afa3e2c2770f2efc161142b25b608"
|
||||||
|
dependencies = [
|
||||||
|
"loom",
|
||||||
|
"once_cell",
|
||||||
|
"tracy-client-sys",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tracy-client-sys"
|
||||||
|
version = "0.21.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0d99f5fc382239d08b6bf05bb6206a585bfdb988c878f2499081d0f285ef7819"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "udev"
|
name = "udev"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
@ -1759,6 +1814,15 @@ version = "0.4.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "windows"
|
||||||
|
version = "0.48.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
|
||||||
|
dependencies = [
|
||||||
|
"windows-targets 0.48.1",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "windows-sys"
|
name = "windows-sys"
|
||||||
version = "0.45.0"
|
version = "0.45.0"
|
||||||
|
@ -10,9 +10,11 @@ edition = "2021"
|
|||||||
anyhow = { version = "1.0.72", features = ["backtrace"] }
|
anyhow = { version = "1.0.72", features = ["backtrace"] }
|
||||||
bitflags = "2.3.3"
|
bitflags = "2.3.3"
|
||||||
clap = { version = "4.3.21", features = ["derive"] }
|
clap = { version = "4.3.21", features = ["derive"] }
|
||||||
|
profiling = "1.0.9"
|
||||||
smithay-drm-extras = { version = "0.1.0", path = "../smithay/smithay-drm-extras" }
|
smithay-drm-extras = { version = "0.1.0", path = "../smithay/smithay-drm-extras" }
|
||||||
tracing = "0.1.37"
|
tracing = "0.1.37"
|
||||||
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
|
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
|
||||||
|
tracy-client = { version = "0.15.2", default-features = false }
|
||||||
|
|
||||||
[dependencies.smithay]
|
[dependencies.smithay]
|
||||||
git = "https://github.com/Smithay/smithay"
|
git = "https://github.com/Smithay/smithay"
|
||||||
@ -31,3 +33,7 @@ features = [
|
|||||||
"use_system_lib",
|
"use_system_lib",
|
||||||
"wayland_frontend",
|
"wayland_frontend",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[features]
|
||||||
|
profile-with-tracy = ["profiling/profile-with-tracy", "tracy-client/default"]
|
||||||
|
|
||||||
|
@ -24,6 +24,10 @@ impl CompositorHandler for Niri {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn commit(&mut self, surface: &WlSurface) {
|
fn commit(&mut self, surface: &WlSurface) {
|
||||||
|
tracy_client::Client::running()
|
||||||
|
.unwrap()
|
||||||
|
.message("client commit", 0);
|
||||||
|
|
||||||
on_commit_buffer_handler::<Self>(surface);
|
on_commit_buffer_handler::<Self>(surface);
|
||||||
if !is_sync_subsurface(surface) {
|
if !is_sync_subsurface(surface) {
|
||||||
let mut root = surface.clone();
|
let mut root = surface.clone();
|
||||||
|
@ -20,6 +20,7 @@ impl Niri {
|
|||||||
change_vt: &mut dyn FnMut(i32),
|
change_vt: &mut dyn FnMut(i32),
|
||||||
event: InputEvent<I>,
|
event: InputEvent<I>,
|
||||||
) {
|
) {
|
||||||
|
let _span = tracy_client::span!("process_input_event");
|
||||||
trace!("process_input_event");
|
trace!("process_input_event");
|
||||||
|
|
||||||
match event {
|
match event {
|
||||||
|
@ -52,6 +52,8 @@ fn main() {
|
|||||||
|
|
||||||
let cli = Cli::parse();
|
let cli = Cli::parse();
|
||||||
|
|
||||||
|
let _client = tracy_client::Client::start();
|
||||||
|
|
||||||
let mut event_loop = EventLoop::try_new().unwrap();
|
let mut event_loop = EventLoop::try_new().unwrap();
|
||||||
|
|
||||||
let has_display = env::var_os("WAYLAND_DISPLAY").is_some() || env::var_os("DISPLAY").is_some();
|
let has_display = env::var_os("WAYLAND_DISPLAY").is_some() || env::var_os("DISPLAY").is_some();
|
||||||
@ -103,6 +105,7 @@ fn main() {
|
|||||||
event_loop
|
event_loop
|
||||||
.run(None, &mut data, move |data| {
|
.run(None, &mut data, move |data| {
|
||||||
// niri is running.
|
// niri is running.
|
||||||
|
let _span = tracy_client::span!("flush_clients");
|
||||||
data.display.flush_clients().unwrap();
|
data.display.flush_clients().unwrap();
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
@ -163,6 +163,8 @@ impl Niri {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn redraw(&mut self, backend: &mut dyn Backend) {
|
fn redraw(&mut self, backend: &mut dyn Backend) {
|
||||||
|
let _span = tracy_client::span!("redraw");
|
||||||
|
|
||||||
assert!(self.redraw_queued);
|
assert!(self.redraw_queued);
|
||||||
assert!(!self.waiting_for_vblank);
|
assert!(!self.waiting_for_vblank);
|
||||||
self.redraw_queued = false;
|
self.redraw_queued = false;
|
||||||
|
@ -69,6 +69,8 @@ impl Backend for Tty {
|
|||||||
WaylandSurfaceRenderElement<GlesRenderer>,
|
WaylandSurfaceRenderElement<GlesRenderer>,
|
||||||
>],
|
>],
|
||||||
) {
|
) {
|
||||||
|
let _span = tracy_client::span!("Tty::render");
|
||||||
|
|
||||||
let output_device = self.output_device.as_mut().unwrap();
|
let output_device = self.output_device.as_mut().unwrap();
|
||||||
let drm_compositor = &mut output_device.drm_compositor;
|
let drm_compositor = &mut output_device.drm_compositor;
|
||||||
|
|
||||||
@ -223,6 +225,9 @@ impl Tty {
|
|||||||
let tty = data.tty.as_mut().unwrap();
|
let tty = data.tty.as_mut().unwrap();
|
||||||
match event {
|
match event {
|
||||||
DrmEvent::VBlank(_crtc) => {
|
DrmEvent::VBlank(_crtc) => {
|
||||||
|
tracy_client::Client::running()
|
||||||
|
.unwrap()
|
||||||
|
.message("vblank", 0);
|
||||||
info!("vblank {metadata:?}");
|
info!("vblank {metadata:?}");
|
||||||
|
|
||||||
let output_device = tty.output_device.as_mut().unwrap();
|
let output_device = tty.output_device.as_mut().unwrap();
|
||||||
|
@ -37,6 +37,8 @@ impl Backend for Winit {
|
|||||||
WaylandSurfaceRenderElement<GlesRenderer>,
|
WaylandSurfaceRenderElement<GlesRenderer>,
|
||||||
>],
|
>],
|
||||||
) {
|
) {
|
||||||
|
let _span = tracy_client::span!("Winit::render");
|
||||||
|
|
||||||
let size = self.backend.window_size().physical_size;
|
let size = self.backend.window_size().physical_size;
|
||||||
let damage = Rectangle::from_loc_and_size((0, 0), size);
|
let damage = Rectangle::from_loc_and_size((0, 0), size);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user