aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-08-10 14:12:20 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-08-10 14:50:51 +0400
commit0ed5bad452113eaa55b88c8fc46d36badea43286 (patch)
treef3994fb64b3ff7ffcd8816b7da9bc8045f41efd4 /src
parent18b9d0dfccc0917ffcc2cf8017d0a346a8df143b (diff)
downloadniri-0ed5bad452113eaa55b88c8fc46d36badea43286.tar.gz
niri-0ed5bad452113eaa55b88c8fc46d36badea43286.tar.bz2
niri-0ed5bad452113eaa55b88c8fc46d36badea43286.zip
Add tracy profiling under a feature
Diffstat (limited to 'src')
-rw-r--r--src/handlers/compositor.rs4
-rw-r--r--src/input.rs1
-rw-r--r--src/main.rs3
-rw-r--r--src/niri.rs2
-rw-r--r--src/tty.rs5
-rw-r--r--src/winit.rs2
6 files changed, 17 insertions, 0 deletions
diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs
index b2666f7f..1cd781f6 100644
--- a/src/handlers/compositor.rs
+++ b/src/handlers/compositor.rs
@@ -24,6 +24,10 @@ impl CompositorHandler for Niri {
}
fn commit(&mut self, surface: &WlSurface) {
+ tracy_client::Client::running()
+ .unwrap()
+ .message("client commit", 0);
+
on_commit_buffer_handler::<Self>(surface);
if !is_sync_subsurface(surface) {
let mut root = surface.clone();
diff --git a/src/input.rs b/src/input.rs
index a8f85b3a..227bb330 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -20,6 +20,7 @@ impl Niri {
change_vt: &mut dyn FnMut(i32),
event: InputEvent<I>,
) {
+ let _span = tracy_client::span!("process_input_event");
trace!("process_input_event");
match event {
diff --git a/src/main.rs b/src/main.rs
index 7a977bd0..f0083ae4 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -52,6 +52,8 @@ fn main() {
let cli = Cli::parse();
+ let _client = tracy_client::Client::start();
+
let mut event_loop = EventLoop::try_new().unwrap();
let has_display = env::var_os("WAYLAND_DISPLAY").is_some() || env::var_os("DISPLAY").is_some();
@@ -103,6 +105,7 @@ fn main() {
event_loop
.run(None, &mut data, move |data| {
// niri is running.
+ let _span = tracy_client::span!("flush_clients");
data.display.flush_clients().unwrap();
})
.unwrap();
diff --git a/src/niri.rs b/src/niri.rs
index 98a21d01..28bc2dfd 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -163,6 +163,8 @@ impl Niri {
}
fn redraw(&mut self, backend: &mut dyn Backend) {
+ let _span = tracy_client::span!("redraw");
+
assert!(self.redraw_queued);
assert!(!self.waiting_for_vblank);
self.redraw_queued = false;
diff --git a/src/tty.rs b/src/tty.rs
index 142adfa6..4475975f 100644
--- a/src/tty.rs
+++ b/src/tty.rs
@@ -69,6 +69,8 @@ impl Backend for Tty {
WaylandSurfaceRenderElement<GlesRenderer>,
>],
) {
+ let _span = tracy_client::span!("Tty::render");
+
let output_device = self.output_device.as_mut().unwrap();
let drm_compositor = &mut output_device.drm_compositor;
@@ -223,6 +225,9 @@ impl Tty {
let tty = data.tty.as_mut().unwrap();
match event {
DrmEvent::VBlank(_crtc) => {
+ tracy_client::Client::running()
+ .unwrap()
+ .message("vblank", 0);
info!("vblank {metadata:?}");
let output_device = tty.output_device.as_mut().unwrap();
diff --git a/src/winit.rs b/src/winit.rs
index 458ff95a..e63ac30c 100644
--- a/src/winit.rs
+++ b/src/winit.rs
@@ -37,6 +37,8 @@ impl Backend for Winit {
WaylandSurfaceRenderElement<GlesRenderer>,
>],
) {
+ let _span = tracy_client::span!("Winit::render");
+
let size = self.backend.window_size().physical_size;
let damage = Rectangle::from_loc_and_size((0, 0), size);