Known issues
Problems seen in Patina apps that aren't fixed yet, with what's known so far.
Windows stop redrawing on GNOME Shell until minimised
Seen: 2026-10-11, GNOME Shell 50.1 on Wayland, NVIDIA (Vulkan), eframe 0.35 / winit 0.30.13. Photograph 0.4.4 and Notebook froze within half an hour of each other. Both came back after being minimised and restored.
What happens:
- On Wayland, winit sends
RedrawRequestedonly after the compositor's frame callback for the window's last frame arrives (FrameCallbackState::Requestedin winit's Wayland backend). GNOME Shell stopped sending those callbacks while the windows were still on screen, so no redraw ever came. - Input still arrives, but every repaint it asks for waits behind the missing callback, so the window looks frozen.
- An app that repaints continuously spins (Photograph: about 90% of a core). eframe's
check_redraw_requestssetsControlFlow::Polland callsrequest_redrawon every pass. Its guard for hidden windows doesn't help: winit can't tell that a window is minimised on Wayland. - An app that repaints on demand just sleeps (Notebook).
- Minimising and restoring makes GNOME Shell send frame callbacks again.
Evidence:
eu-stackandperfof the stuck processes showed the main thread in winit'spump_events/loop_dispatch, with no egui or wgpu frames at all.- From the same period, GNOME Shell's journal repeatedly logged
meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed. A window missing from the stack would plausibly be treated as hidden and get no frame callbacks. That link is unproven.
Suspected: a GNOME Shell bug, possibly set off by moving or raising windows. Patina's custom
title bar hands every drag to the compositor (StartDrag). Not reproduced on purpose yet.
Workaround: minimise and restore the window.
To look into:
- Run an app with
WAYLAND_DEBUG=clientlogging to a file until it freezes. The log will show the lastwl_surface.framerequest that never got awl_callback.done. Note the time of GNOME Shell's stack assertion. - Find what triggers it: dragging by the title bar, maximising, workspaces, screen lock.
- Report it to GNOME (mutter) with the log.
- Check whether a newer winit times out a missing frame callback. If it does, decide whether Patina should carry a workaround until GNOME is fixed.