From 34bc7d55c544a03524d3bf4bc4f69afbcc1d1648 Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Wed, 11 Feb 2026 11:05:51 +0100 Subject: [PATCH] surface: don't access shm buffers if there are buffer blockers --- src/ifs/wl_surface/commit_timeline.rs | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/ifs/wl_surface/commit_timeline.rs b/src/ifs/wl_surface/commit_timeline.rs index 230e508b..b790436b 100644 --- a/src/ifs/wl_surface/commit_timeline.rs +++ b/src/ifs/wl_surface/commit_timeline.rs @@ -471,16 +471,15 @@ impl NodeRef { match &self.kind { EntryKind::Commit(c) => { let mut has_unmet_dependencies = false; - if c.sync_obj.get() > 0 { - has_unmet_dependencies = true; - } - if c.pending_uploads.get() > 0 { - check_shm_uploads(c)?; + let may_access_buffer = c.sync_obj.get() == 0 && c.num_pending_polls.get() == 0; + if may_access_buffer { if c.pending_uploads.get() > 0 { - has_unmet_dependencies = true; + check_shm_uploads(c)?; + if c.pending_uploads.get() > 0 { + has_unmet_dependencies = true; + } } - } - if c.num_pending_polls.get() > 0 { + } else { has_unmet_dependencies = true; } let tl = &c.surface.commit_timeline;