diff --git a/Cargo.lock b/Cargo.lock index 9c16fef..52dede4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1410,11 +1410,13 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b674242641cab680688fc3b850243b351c1af49d4f3417a576debd6cca8dcf5" dependencies = [ + "async-channel", "async-executor", "async-task", "atomic-waker", "bevy_platform", "cfg-if", + "concurrent-queue", "crossbeam-queue", "derive_more", "futures-channel", diff --git a/Cargo.toml b/Cargo.toml index 826e802..1d434e3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -103,6 +103,7 @@ bevy = { version = "0.16", default-features = false, features = [ "hdr", "jpeg", "tonemapping_luts", + "multi_threaded", ] } bevy_mod_xr = "0.3" bevy_mod_openxr = "0.3" diff --git a/src/wayland/core/buffer.rs b/src/wayland/core/buffer.rs index 7ec5d8e..9437b30 100644 --- a/src/wayland/core/buffer.rs +++ b/src/wayland/core/buffer.rs @@ -40,7 +40,7 @@ pub struct Buffer { } impl Buffer { - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn new(client: &mut Client, id: ObjectId, backing: BufferBacking) -> Arc { let buffer = client.insert( id, @@ -56,7 +56,7 @@ impl Buffer { } /// Returns the tex if it was updated - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn update_tex( &self, dmatexes: &ImportedDmatexs, diff --git a/src/wayland/core/shm_pool.rs b/src/wayland/core/shm_pool.rs index c2e5120..72040eb 100644 --- a/src/wayland/core/shm_pool.rs +++ b/src/wayland/core/shm_pool.rs @@ -18,7 +18,7 @@ pub struct ShmPool { } impl ShmPool { - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn new(fd: OwnedFd, size: i32) -> Result { let map = unsafe { MmapOptions::new() @@ -31,7 +31,7 @@ impl ShmPool { }) } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn data_lock(&self) -> MappedMutexGuard { MutexGuard::map(self.inner.lock(), |i| i.as_mut()) } @@ -39,7 +39,7 @@ impl ShmPool { impl WlShmPool for ShmPool { /// https://wayland.app/protocols/wayland#wl_shm_pool:request:create_buffer - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn create_buffer( &self, client: &mut Client, @@ -64,7 +64,7 @@ impl WlShmPool for ShmPool { } /// https://wayland.app/protocols/wayland#wl_shm_pool:request:resize - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn resize(&self, _client: &mut Client, _sender_id: ObjectId, size: i32) -> Result<()> { let mut inner = self.inner.lock(); unsafe { inner.remap(size as usize, RemapOptions::new().may_move(true))? }; @@ -72,7 +72,7 @@ impl WlShmPool for ShmPool { } /// https://wayland.app/protocols/wayland#wl_shm_pool:request:destroy - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn destroy(&self, _client: &mut Client, _sender_id: ObjectId) -> Result<()> { Ok(()) } diff --git a/src/wayland/core/surface.rs b/src/wayland/core/surface.rs index 6001bbc..f4f8bf2 100644 --- a/src/wayland/core/surface.rs +++ b/src/wayland/core/surface.rs @@ -85,7 +85,7 @@ impl std::fmt::Debug for Surface { } } impl Surface { - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn new(client: &Client, id: ObjectId) -> Self { Surface { id, @@ -99,12 +99,12 @@ impl Surface { } } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn pending_state(&self) -> parking_lot::MutexGuard<'_, DoubleBuffer> { self.state.lock() } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn add_commit_handler bool + Send + Sync + 'static>( &self, handler: F, @@ -113,7 +113,7 @@ impl Surface { handlers.push(Box::new(handler)); } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn update_graphics( &self, dmatexes: &ImportedDmatexs, @@ -160,13 +160,13 @@ impl Surface { let _ = state_lock.current().clean_lock.set(()); } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn apply_material(&self, model_part: &Arc) { // tracing::info!("uwu applying material"); self.pending_material_applications.add_raw(model_part) } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] fn apply_surface_materials(&self) { let Some(mat) = self.material.get() else { return; @@ -177,15 +177,15 @@ impl Surface { } self.pending_material_applications.clear(); } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] fn mark_dirty(&self) { self.state.lock().pending.clean_lock = Default::default(); } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn current_state(&self) -> SurfaceState { self.state.lock().current().clone() } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn frame_event(&self) { if let Some(callback_obj) = self.frame_callback_object.lock().take() { let _ = self.message_sink.send(Message::Frame(callback_obj)); @@ -222,7 +222,7 @@ impl Surface { } impl WlSurface for Surface { /// https://wayland.app/protocols/wayland#wl_surface:request:attach - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn attach( &self, client: &mut Client, @@ -236,7 +236,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:damage - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn damage( &self, _client: &mut Client, @@ -252,7 +252,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:frame - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn frame( &self, client: &mut Client, @@ -265,7 +265,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:set_opaque_region - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn set_opaque_region( &self, _client: &mut Client, @@ -277,7 +277,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:set_input_region - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn set_input_region( &self, _client: &mut Client, @@ -289,7 +289,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:commit - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn commit(&self, _client: &mut Client, _sender_id: ObjectId) -> Result<()> { { let mut lock = self.state.lock(); @@ -324,7 +324,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:set_buffer_transform - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn set_buffer_transform( &self, _client: &mut Client, @@ -336,7 +336,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:set_buffer_scale - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn set_buffer_scale( &self, _client: &mut Client, @@ -348,7 +348,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:damage_buffer - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn damage_buffer( &self, _client: &mut Client, @@ -364,7 +364,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:offset - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn offset( &self, _client: &mut Client, @@ -376,7 +376,7 @@ impl WlSurface for Surface { } /// https://wayland.app/protocols/wayland#wl_surface:request:destroy - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn destroy(&self, _client: &mut Client, _sender_id: ObjectId) -> Result<()> { Ok(()) } diff --git a/src/wayland/dmabuf/buffer_backing.rs b/src/wayland/dmabuf/buffer_backing.rs index c0b64ca..8c7e35f 100644 --- a/src/wayland/dmabuf/buffer_backing.rs +++ b/src/wayland/dmabuf/buffer_backing.rs @@ -11,7 +11,6 @@ use bevy_dmabuf::{ use drm_fourcc::DrmFourcc; use mint::Vector2; use parking_lot::Mutex; -use tracing::info; use std::sync::{Arc, OnceLock}; use waynest::server::protocol::stable::linux_dmabuf_v1::zwp_linux_buffer_params_v1::Flags; @@ -40,7 +39,7 @@ impl std::fmt::Debug for DmabufBacking { } impl DmabufBacking { - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn new( params: Arc, message_sink: Option, @@ -76,13 +75,12 @@ impl DmabufBacking { }) } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn update_tex( &self, dmatexes: &ImportedDmatexs, images: &mut Assets, ) -> Option> { - info!("updating dmabuf tex"); self.pending_imported_dmatex .lock() .take() diff --git a/src/wayland/dmabuf/buffer_params.rs b/src/wayland/dmabuf/buffer_params.rs index e6c2cc6..f775372 100644 --- a/src/wayland/dmabuf/buffer_params.rs +++ b/src/wayland/dmabuf/buffer_params.rs @@ -30,7 +30,7 @@ pub struct BufferParams { } impl BufferParams { - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub fn new(id: ObjectId) -> Self { tracing::info!("Creating new BufferParams with id {:?}", id); Self { @@ -46,7 +46,7 @@ impl ZwpLinuxBufferParamsV1 for BufferParams { Ok(()) } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn add( &self, _client: &mut Client, @@ -91,7 +91,7 @@ impl ZwpLinuxBufferParamsV1 for BufferParams { Ok(()) } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn create( &self, client: &mut Client, @@ -126,7 +126,7 @@ impl ZwpLinuxBufferParamsV1 for BufferParams { } } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] async fn create_immed( &self, client: &mut Client, @@ -154,7 +154,7 @@ impl ZwpLinuxBufferParamsV1 for BufferParams { } impl Drop for BufferParams { - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] fn drop(&mut self) { let planes = self.planes.get_mut(); tracing::info!("BufferParams being dropped with {} planes", planes.len()); diff --git a/src/wayland/dmabuf/feedback.rs b/src/wayland/dmabuf/feedback.rs index fc6b56f..51005ef 100644 --- a/src/wayland/dmabuf/feedback.rs +++ b/src/wayland/dmabuf/feedback.rs @@ -19,7 +19,7 @@ use waynest::{ #[derive(Debug, Dispatcher)] pub struct DmabufFeedback(pub Arc); impl DmabufFeedback { - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub async fn send_params(&self, client: &mut Client, sender_id: ObjectId) -> Result<()> { let num_formats = self.0.formats.len(); // Send format table first @@ -60,7 +60,7 @@ impl DmabufFeedback { Ok(()) } - #[tracing::instrument("debug", skip_all)] + #[tracing::instrument(level = "debug", skip_all)] pub async fn send_format_table(&self, client: &mut Client, sender_id: ObjectId) -> Result<()> { // Format + modifier pair (16 bytes): // - format: u32