Skip to content

Fast and Flexible Change Detection #23152

@ecoskey

Description

@ecoskey

Goal Description

Bevy's component change detection is always on for all components, some of which may not need it, and is too slow for some critical systems that do, like rendering and physics simulations. In particular, iterating a query with a Changed filter requires a "table scan" that checks every entity in the query one-by-one. Change detection should be opt-in, configurable on a per-component basis, and flexible enough to adapt to different performance requirements.

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.

  • Staffing SMEs: Not yet staffed
  • Working Group Link: Working Group not yet formed
  • Design Documents: Design documents not yet written

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-ECSEntities, components, systems, and eventsC-GoalSomething big or high-value that the Bevy Organization wants to accomplish. FOR SME USE ONLY!S-Needs-Design-DocThis issue or PR is particularly complex, and needs an approved design doc before it can be mergedX-Needs-SMEThis type of work requires an SME to approve it.

    Type

    No type

    Projects

    Status

    Proposed

    Status

    Needs SME Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions