Skip to content

Winit Decoupling #23040

Description

@NthTensor

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. Its state on the Project Goals Board determines if it is Proposed, Postponed, Blocked (Approved), Inactive (Approved), Active (Approved), Completed, or Declined.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-WindowingPlatform-agnostic interface layer to run your app inC-GoalSomething big or high-value that the Bevy Organization wants to accomplish. FOR SME USE ONLY!S-Waiting-on-SMEThis is currently waiting for an SME to resolve something controversialX-Needs-SMEThis type of work requires an SME to approve it.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Inactive (Approved)
    Status
    SME Triaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions