rust-windowing / rust-windowing/winit
`Occluded` change must be synced with winit
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 6.2k
- Forks
- 1.3k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 9
Description
State change on Wayland, demands confirmation in form of ack + commit, commit usually done when drawing, however when using Vsync extension drawing will block indefinitely when you'll have Occluded event.
To solve that winit must have a way to commit on-behalf of the users, however doing so unconditionally will break clients and may result in desyncs, but asking them to draw and then send Occluded is also not an option, thus Occluded itself should ask whether the user stopped their rendering/continued their rendering, thus on stop winit can do wl_surface::commit.
This issue is also kind of present with other state changes, and not really specific to occluded, however occluded is the only where it really matters.
Until it's resolved it winit will remove the handling of this event.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at winit's Occluded event handling and inspect the Wayland ack/commit flow, especially with the Vsync extension. Determine the API or behavior needed for users to indicate stopped or continued rendering, then validate it against the described blocking case and state-change synchronization requirements.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100