diff --git a/src/ifs/wl_buffer.rs b/src/ifs/wl_buffer.rs index cbb0a2cc..9b6a6275 100644 --- a/src/ifs/wl_buffer.rs +++ b/src/ifs/wl_buffer.rs @@ -274,7 +274,7 @@ impl WlBuffer { ctx: &Rc, mem: &Rc, dmabuf_buffer_params: &mut DmabufBufferParams, - ) -> Result>, GfxError> { + ) -> Option> { let DmabufBufferParams { size, udmabuf, @@ -285,20 +285,20 @@ impl WlBuffer { host_buffer_impossible, } = dmabuf_buffer_params; if let Some(hb) = host_buffer { - return Ok(Some(hb.clone())); + return Some(hb.clone()); } if *host_buffer_impossible { - return Ok(None); + return None; } let udmabuf = 'udmabuf: { if let Some(b) = udmabuf { break 'udmabuf b.clone(); } if *udmabuf_impossible { - return Ok(None); + return None; } let Some(dev) = self.client.state.udmabuf.get() else { - return Ok(None); + return None; }; let mask = page_size() - 1; let offset = mem.offset() & mask; @@ -316,7 +316,7 @@ impl WlBuffer { Err(e) => { *udmabuf_impossible = true; log::debug!("Could not create udmabuf: {}", ErrorFmt(e)); - return Ok(None); + return None; } } }; @@ -326,11 +326,11 @@ impl WlBuffer { Err(e) => { *host_buffer_impossible = true; log::debug!("Could not create gfx host buffer: {}", ErrorFmt(e)); - return Ok(None); + return None; } }; *host_buffer = Some(hb.clone()); - Ok(Some(hb)) + Some(hb) } fn update_texture(&self, surface: &WlSurface, sync_shm: bool) -> Result<(), WlBufferError> { diff --git a/src/ifs/wl_surface/commit_timeline.rs b/src/ifs/wl_surface/commit_timeline.rs index ef18bb04..3a084b9a 100644 --- a/src/ifs/wl_surface/commit_timeline.rs +++ b/src/ifs/wl_surface/commit_timeline.rs @@ -14,7 +14,6 @@ use { utils::{ clonecell::CloneCell, copyhashmap::CopyHashMap, - errorfmt::ErrorFmt, hash_map_ext::HashMapExt, linkedlist::{LinkedList, LinkedNode, NodeRef}, numcell::NumCell, @@ -649,19 +648,10 @@ fn schedule_async_upload( back_tex } }; - match buf.get_gfx_buffer(&ctx, mem, dmabuf_buffer_params) { - Ok(Some(hb)) => { - return back_tex - .async_upload_from_buffer(&hb, node_ref.clone(), back.damage.get()) - .map_err(WlSurfaceError::PrepareAsyncUpload); - } - Ok(None) => {} - Err(e) => { - log::error!( - "Could not create GPU mapping of host buffer: {}", - ErrorFmt(e), - ); - } + if let Some(hb) = buf.get_gfx_buffer(&ctx, mem, dmabuf_buffer_params) { + return back_tex + .async_upload_from_buffer(&hb, node_ref.clone(), back.damage.get()) + .map_err(WlSurfaceError::PrepareAsyncUpload); } let mut staging_opt = surface.shm_staging.get(); if let Some(staging) = &staging_opt