Skip to content

Fast and Flexible Change Detection #23152

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.

Metadata

Metadata

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
Staffed (Approved)
Status
Needs SME Triage

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions