-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
schedule v3 ("stageless") #4391
Conversation
use bevy_utils::tracing::Instrument; | ||
use fixedbitset::FixedBitSet; | ||
|
||
/// Runs systems on a single thread. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to mention that the order still follows existing rules, and is not guaranteed to be stable.
} | ||
} | ||
|
||
/// Runs systems on a single thread and immediately applies their commands. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be cross-referenced with SingleThreadedRunner
.
0173759
to
3ab5ce0
Compare
Closing this since I'm most likely going to make a new PR. I expect the RFC to be merged soon and I want to formalize a more collaborative effort and migration path given the number of PRs trying to make incremental progress. This one was basically a solo attempt, but we may decide to re-open it. |
Objective
bevy_ecs::schedule
with the API outlined in Stageless: a complete scheduling overhaul rfcs#45Solution
Blocked On
&mut World
as a system param and make.exclusive_system()
optional #4166Closely Related
(Edit: Based on feedback, I think I'm going to split this into 2-3 PRs.)
bevy_ecs::schedule_v3
module with the new stuff.bevy_*
crates and examples over to the new API.bevy_ecs::schedule
(and changeschedule_v3
toschedule
).Glossary
Systems and sets share a common builder API and they can all be ordered together.
Detailed Changelist
ReadOnlySystemParamFetch
)Local<T>
(TODO)bool
(removedShouldRun
)Systems
apply_system_buffers
system to your app(broken by recent label changes)OnEnter(state)
andOnExit(state)
apply_state_transition::<State>
system to your appPreview
Resolves
a lot of stuff
Follow-up Work