bevyengine / bevyengine/bevy

Winit Decoupling

Open
#23,040 4 comments 5 reactions 0 assignees View on GitHub
A-Windowing C-Goal S-Waiting-on-SME X-Needs-SME
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

## Goal Description

The ECS and winit have grown closely intertwined, largely because ECS updates run within the windowing event loop. For various reasons, this is blocking some hotly desired features (frame-pacing and accurate input timestamps, for example). The close coupling also makes it hard to use alternative windowing backends like SDL. We intend to instead move the ECS onto it's own thread, so ECS updates can occur independently of windowing updates. The ECS and windowing will instead communicate via message passing.

## Goal Status

This is a potential [Bevy Project Goal](https://bevy.org/learn/contribute/project-information/project-goals/). Its state on the [Project Goals Board](https://github.com/orgs/bevyengine/projects/23/views/1) determines if it is Proposed, Postponed, Blocked (Approved), Inactive (Approved), Active (Approved), Completed, or Declined.

- **Staffing SMEs**: Not yet staffed
- **Working Group Link**: Working Group not yet formed
- **Design Documents**: https://hackmd.io/@bevy/winit_refactorening

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.