-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Fast and Flexible Change Detection #23152
Copy link
Copy link
Open
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-GoalSomething big or high-value that the Bevy Organization wants to accomplish. FOR SME USE ONLY!Something 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 mergedThis 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.This type of work requires an SME to approve it.
Description
Metadata
Metadata
Assignees
Labels
A-ECSEntities, components, systems, and eventsEntities, components, systems, and eventsC-GoalSomething big or high-value that the Bevy Organization wants to accomplish. FOR SME USE ONLY!Something 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 mergedThis 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.This type of work requires an SME to approve it.
Type
Projects
StatusShow more project fields
Staffed (Approved)
StatusShow more project fields
Needs SME Triage
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
Changedfilter 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.