atagen

monolith

public
Star0
Watch0

Commit 890bf5ded7c3

tarball

atagen <boss@atagen.co>2026-10-19 10:44 UTC

2 files changed+9-5
frame: latch fifo barriers of lock, dnd icon and cursor surfaces

Only windows and layers went through fifo::scanout, so a fifo-using locker had its barriers cleared by the 100 ms sweep and ran at 7 to 10 fps.
Modified file: crates/monolith/src/frame.rs+8 additions−4 deletions
@@ -101,7 +101,7 @@ pub fn send_frame_callbacks(
101101 output,
102102 elapsed,
103103 Some(Duration::ZERO),
104- |_, _| Some(output.clone()),
104+ crate::fifo::scanout(output),
105105 );
106106 }
107107 if lock.active() {
@@ -203,8 +203,12 @@ pub fn send_cursor_frames(wm: &Wm, input: &Input, o: OutputId, output: &Output,
203203 .output(o)
204204 .is_some_and(|out| out.area.contains(pos.x, pos.y))
205205 {
206- send_frames_surface_tree(surface, output, elapsed, Some(Duration::ZERO), |_, _| {
207- Some(output.clone())
208- });
206+ send_frames_surface_tree(
207+ surface,
208+ output,
209+ elapsed,
210+ Some(Duration::ZERO),
211+ crate::fifo::scanout(output),
212+ );
209213 }
210214 }
Modified file: crates/monolith/src/lock.rs+1 additions−1 deletions
@@ -213,7 +213,7 @@ pub fn send_frames(lock: &Lock, output: &Output, elapsed: Duration) {
213213 output,
214214 elapsed,
215215 Some(Duration::ZERO),
216- |_, _| Some(output.clone()),
216+ crate::fifo::scanout(output),
217217 );
218218 }
219219 }