-
-
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
[Merged by Bors] - Migrate engine to Schedule v3 #7267
Closed
Closed
Changes from 171 commits
Commits
Show all changes
297 commits
Select commit
Hold shift + click to select a range
7bea2e7
Remove add_set method
alice-i-cecile 3ef0b50
Use outer schedule, rather than active schedule
alice-i-cecile d4da305
Merge remote-tracking branch 'origin/main' into stage-yeet
alice-i-cecile 366e867
Hard code which schedule is run in App::update
alice-i-cecile 777f381
Revert "Hard code which schedule is run in App::update"
alice-i-cecile a1da867
Active and default schedules have been removed
alice-i-cecile b221923
Implement *Label for Box<dyn *Label>
alice-i-cecile c981a73
Improve bevy_ecs prelude
alice-i-cecile 2552d97
Fix incorrect usage of default_schedule_label
alice-i-cecile 92aff8a
Export common_conditions in the prelude
alice-i-cecile 780a574
Make run_schedule take a &Label
alice-i-cecile 1c8e075
Borrow checker fixes
alice-i-cecile f278e2e
Clean up imports
alice-i-cecile a67a5a1
Remove .at_end from tick_global_task_pools_on_main_thread
alice-i-cecile a1ec0d7
Fix more imports
alice-i-cecile 77f4314
Replace run criteria for ReportHierarchyIssue
alice-i-cecile 95490e6
TimeSystem is no longer an exclusive system
alice-i-cecile b090724
Fix newly merged add_system_to_stage
alice-i-cecile b7479f2
Actually break out of the startup schedule
alice-i-cecile ea7bef3
Basic setup for fixed time steps
alice-i-cecile 15e6548
Implement new strategy for fixed timesteps
alice-i-cecile 7e1d952
Fix imports in log_diagnostics_plugin
alice-i-cecile 4cf7063
Find and replace error
alice-i-cecile 63633a3
Imports for bevy_asset
alice-i-cecile bc66890
Add and use app.init_schedule
alice-i-cecile b2189a5
Merge branch `main` into stage-yeet
alice-i-cecile 5679670
Migrate AssetStage to AssetSet
alice-i-cecile 558766b
Find and replace error
alice-i-cecile d1f4daa
transform_propagate_system_set -> Schedule
alice-i-cecile bdaada4
Clean up and fix imports
alice-i-cecile 4b96751
Merge remote-tracking branch 'origin/main' into stage-yeet
alice-i-cecile c035d5c
Remove fresh add_system_to_stage
alice-i-cecile 4053484
Migrate bevy_transform system tests
alice-i-cecile 0f25c8f
Migrate RenderStage -> RenderSet
alice-i-cecile 43fdc34
Remove flush point after RenderSet::Extract
alice-i-cecile d2ddb20
Remove `set_must_read_resource`
alice-i-cecile 3929c85
Outline strategy of pipelined rendering migration
alice-i-cecile 63b587a
Add and use App::add_extract_system convenience method
alice-i-cecile d6330ec
Re-add MainThreadExecutor
alice-i-cecile 49f6221
Fix merge conflict
alice-i-cecile 0718073
Move calculate_bounds system to Update
alice-i-cecile 525679f
Add Schedule::apply_system_buffers
alice-i-cecile d82e533
Fix new systems added in bevy_winit
alice-i-cecile 021141c
Remove dead imports to unbreak RA
alice-i-cecile de49e4e
get bevy_render compiling
hymm d5c8224
move some stuff back to make the diff cleaner
hymm 7c36bf9
add main thread executor to multithreaded executor scope
hymm 5d6a44b
Merge pull request #81 from hymm/pipelined-stage-yeet
alice-i-cecile 1103e16
just have extract schedule live in render app schedules
hymm 850b59f
Merge pull request #82 from hymm/extract-as-normal-schedule
alice-i-cecile 29e3c3a
fix getting thread executor from the world
hymm 81b9b9d
Merge pull request #83 from hymm/fix-main-thread-executor
alice-i-cecile ee30461
fix default_schedule_label lookup
jakobhellermann 2776f6c
Merge pull request #84 from jakobhellermann/stage-yeet
alice-i-cecile b6fd119
Merge branch 'main' into stage-yeet
alice-i-cecile 405569d
Move scene_spawner_system
alice-i-cecile f4fc839
Trivial compiler error fixes
alice-i-cecile 99f5367
Migrate more rendering systems
alice-i-cecile 27d738f
Make bevy_pbr::add_clusters an ordinary system
alice-i-cecile dcef89c
Get bevy_text compiling
alice-i-cecile 29e166a
Get bevy_ui compiling
alice-i-cecile 4a471fd
Migrate bevy_pbr::prepare_lights and prepare_views
alice-i-cecile 4877dce
First pass of docs for references to stages
alice-i-cecile 2cea36c
Remove usages of add_system_to_stage in tests and examples
alice-i-cecile cd69bbb
Remove simple usages of SystemStage
alice-i-cecile c8c1749
More docs cleanup
alice-i-cecile 841f39c
CoreSchedule::Outer runs CoreScheduleMain on the first update
alice-i-cecile c09938d
Remove dead example from Cargo.toml
alice-i-cecile 17eb90d
Rename bevy_ecs/schedule -> bevy_ecs/scheduling
alice-i-cecile 29f2caf
Clippy
alice-i-cecile 432900a
Migrate simple uses of SystemSet
alice-i-cecile c1e3e23
Assorted example compile error fixes
alice-i-cecile 5bc8970
Correctly initialize the outer schedule
alice-i-cecile b6859c5
Initialize Schedules resource in RenderApp
alice-i-cecile 91e2b07
doobie
tim-blackbird 4a87dde
Merge pull request #88 from devil-ira/stage-yeet
alice-i-cecile 6091b66
Revert "Merge pull request #88 from devil-ira/stage-yeet"
alice-i-cecile 1ac76da
Merge remote-tracking branch 'alice-i-cecile/stage-yeet' into stage-yeet
alice-i-cecile 291c8c4
fire
tim-blackbird 6e5f8cc
Yay!
tim-blackbird b1d4032
Merge pull request #89 from devil-ira/stage-yeet-remove-on_enter-and-…
alice-i-cecile 60dcaf8
Merge pull request #90 from devil-ira/stage-yeet-hello-world-is-working
alice-i-cecile c2fc8e2
Typo fix
alice-i-cecile 319e021
Apply default set appropriately
alice-i-cecile facf9c1
Fix implementation of impl Label for BoxedLabel
alice-i-cecile d0a80d8
Fix doc strings for FixedTimeStep
alice-i-cecile 83db16e
Fix typo in derive macro
alice-i-cecile 19e23de
Move `world.init_resource::<Schedules>()` to `App::empty`
tim-blackbird e414ea6
Merge remote-tracking branch 'origin/main' into stage-yeet
alice-i-cecile ae5c433
Add `App::configure_set`
tim-blackbird 93e97e4
Add `no_default_set()` to `IntoSystem(Set)Config`
tim-blackbird 2822e1c
Make `SubApp`s run the outer_schedule instead of the default_schedule
tim-blackbird fdd5a59
ecs_guide example fixes
tim-blackbird c6a7539
no_default_set > add_default_set
tim-blackbird 62200a4
Merge pull request #91 from devil-ira/stage-yeet-patch
alice-i-cecile 55d9976
Remove the notion of a "default system set"
alice-i-cecile d1a1c8d
Merge remote-tracking branch 'alice-i-cecile/stage-yeet' into stage-yeet
alice-i-cecile 270a9fc
Add in_set(CoreSet::Update) and in_set(StartupSet::Startup)
alice-i-cecile 1f95bdf
Use correct syntax for state enter/exit systems
alice-i-cecile d9e5583
Expose public system labels for command flushes
alice-i-cecile c7803b4
Update FixedTimestep examples
alice-i-cecile 57956a4
Remove obsolete system_sets.rs example
alice-i-cecile fe8d23e
Improve docs for states
alice-i-cecile 985ed3f
FixedTime::new_from_secs
alice-i-cecile 8efe4cf
fix loops in assets
hymm 2e6e7bc
add a simple outer schedule
hymm 16491d7
dyn_clone the label instead of explicitly boxing it
hymm 2f7439b
Merge pull request #94 from hymm/fix-schedule-run
alice-i-cecile ad44974
Merge pull request #93 from hymm/render-app-outer-schedule
alice-i-cecile e4c586d
Merge pull request #92 from hymm/fix-assets-loops
alice-i-cecile ccccfd8
configure core schedules for extract sub app
hymm 3fe0f36
Merge pull request #95 from hymm/extract-app-core-schedules
alice-i-cecile 9e900c8
Remove references from schedule label apis where possible
cart a79ee4d
Switch edit_schedule cases to add_system_to_schedule. Tweak api.
cart 8072215
Merge pull request #96 from cart/migration-tweaks
alice-i-cecile b438b08
Fix typo
alice-i-cecile e9b062f
Fix merge conflict error with duplicate audio resource
alice-i-cecile 8f27c77
App::schedule -> App::get_schedule
alice-i-cecile 6725648
NextState::queue -> NextState::set
alice-i-cecile 41c1cc0
Tiny errors
alice-i-cecile 816bb6f
Remove vestigal test
alice-i-cecile 35a3f8f
Merge remote-tracking branch 'upstream/main' into merge-main-into-sta…
hymm 19863ac
fix merge issues
hymm e73f937
Merge pull request #97 from hymm/merge-main-into-stage-yeet
alice-i-cecile 95cb847
Minor cleanup
alice-i-cecile 047d261
Simple changes for benchmark migration
alice-i-cecile 474896c
Fix NumLabel impl
alice-i-cecile 635ab9b
Readd and fix benchmarks from stage.rs as running_systems.rs
alice-i-cecile f6efd8e
Fix some example errors
cart c315764
Merge pull request #99 from cart/example-fixes
alice-i-cecile d8dbe62
move fixed timestep between preupdate and update
hymm 7229c73
Merge pull request #100 from hymm/stage-yeet-move-fixedtimestep
alice-i-cecile 0eda986
Remove App::run_schedule
alice-i-cecile 74ed86a
Style: remove second impl block for App
alice-i-cecile bc1c5dc
Remove flushes after FixedUpdate and ApplyStateTransitions
alice-i-cecile 20466e4
CoreSet::FixedTimestep -> CoreSet::FixedUpdate
alice-i-cecile bfbd2f8
Use add_system_to_schedule
alice-i-cecile 2bcb1a2
Fix doc link
alice-i-cecile 3a70836
Remove questionable doc comment
alice-i-cecile 7c8a6b4
Remove resolved TODO
alice-i-cecile d850929
Remove duplicated system
alice-i-cecile f02913e
Remove added ordering
alice-i-cecile 764369b
Merge remote-tracking branch 'alice-i-cecile/stage-yeet' into stage-yeet
alice-i-cecile 57d8077
Take `label` by value in App::edit_schedule
alice-i-cecile f5b7477
Better preserve existing timing of AssetSet
alice-i-cecile 674174b
Remove Copy trait bound on States
alice-i-cecile 9f98b69
Ensure all bevy_ecs tests pass
alice-i-cecile e42f040
Fix App::add_state
alice-i-cecile c8f1641
Ensure all bevy_app tests pass
alice-i-cecile cf04714
Compilation fixes for examples
alice-i-cecile 36e500f
Add on_update to IntoSystemConfigs trait
alice-i-cecile fb2f6a3
Export transform_propagate_systems w SystemConfigs
alice-i-cecile 8931af5
Panic if the requested schedule is not found
alice-i-cecile 4f1deb5
Fix shadow mapping
superdump 3026957
Merge pull request #101 from superdump/fix-shadows
alice-i-cecile 3ddffc4
stageless: better system set inheritance
jakobhellermann 31de4d8
Fix ambiguity in Breakout
alice-i-cecile 0d0ab95
Merge remote-tracking branch 'alice-i-cecile/stage-yeet' into stage-yeet
alice-i-cecile b5b1a67
add a system to run the enter schedule of the initial state
hymm 2587424
add new behavior to doc
hymm 4b13dc9
Merge pull request #103 from hymm/stage-yeet-enter-initial-state
alice-i-cecile f736104
Merge pull request #102 from jakobhellermann/stageless-better-set-inh…
alice-i-cecile 803c1d2
Remove transform_propagate_system_set
alice-i-cecile e0f91e7
CI nits
alice-i-cecile fe3a452
Merge remote-tracking branch 'origin/main' into stage-yeet
alice-i-cecile 90238b1
Fix timing of UI layout systems
alice-i-cecile 9548e8e
Make bevy_transform::systems public
alice-i-cecile 3ad4377
Improve error message for World::run_schedule
alice-i-cecile 0751e0b
Module docs for bevy_transform::systems
alice-i-cecile 6076c80
Clippy formatting nit
alice-i-cecile 3ff2302
Fix typo in example description
alice-i-cecile 110981f
Clippy fixes for example
alice-i-cecile 7904389
Remove metadata for removed example
alice-i-cecile 23a18c6
Clippy: avoid unnecessary as cast
alice-i-cecile 54aab6f
Update examples README
alice-i-cecile 5c007ad
Clippy
alice-i-cecile 4959658
Force tick_global_task_pools to use main thread
alice-i-cecile a214800
make fixed time resource available to fixed time schedule
hymm ce6493b
OnUpdate set is in StateTransitions
hymm a0a6999
change stage to set in message
hymm 9f0b929
Merge pull request #105 from hymm/stage-yeet-fix-alien-cake
alice-i-cecile f3a67f4
Merge pull request #104 from hymm/stage-yeet-fixed-time-res
alice-i-cecile a555032
Merge pull request #106 from hymm/stage-yeet-ecs-guide-word
alice-i-cecile b75773d
fix bugs
maniwani 8228cdc
Merge pull request #107 from maniwani/stage-yeet-fix-bugs
alice-i-cecile 5a3c43a
Sync between add_clusters and assign_lights_to_clusters
superdump 7ca8cd5
Merge pull request #108 from superdump/stageless-fix-point-shadows
alice-i-cecile 1c7349c
cleanup executor traces
hymm 053fdd4
Merge pull request #109 from hymm/state-yeet-executor-traces
alice-i-cecile e7f8cc2
add a method on add to create a simple outer schedule
hymm ff63a8b
remove some references to stage
hymm 41d0b86
Merge pull request #111 from hymm/stage-yeet-more-span-cleanup
alice-i-cecile 075209e
Merge pull request #110 from hymm/stage-yeet-cleanup-outer-schedules
alice-i-cecile 216c7c9
move final checking outside multithreaded executor
hymm 645a226
fix unapplied buffers not being cleared
hymm b1c7b5c
remove more spans
hymm 6adcafa
Reframe comment as invariant
alice-i-cecile ee7b0a6
Merge pull request #112 from hymm/stage-yeet-commands-fixing
alice-i-cecile 096fbdd
fix example
hymm 94a1016
Merge pull request #114 from hymm/stage-yeet-fix-sub-app-example
alice-i-cecile 412342f
add ability to disable final sync
hymm f138926
disable final sync on extract schedule
hymm 20d9c50
clippy
hymm 2d21836
change to a set function.
hymm 6541d66
cargo fmt
hymm 8fdae03
Merge pull request #113 from hymm/stage-yeet-skip-commands
alice-i-cecile 2868545
fix menu
hymm a441ad2
Merge pull request #121 from hymm/stage-yeet-fix-game-menu
alice-i-cecile d2c7446
Merge remote-tracking branch 'origin/main' into stage-yeet
alice-i-cecile 83afdad
Resolve merge conflicts with ambiguity reducing and fog PRs
alice-i-cecile 2f5cc7d
Make debug_assert in report_conflicts return more useful data
alice-i-cecile f8ce290
Don't forget to add gamepad_event_system
alice-i-cecile 288f4fc
Report the number of ambiguities
alice-i-cecile 9cc1e22
Report component / resource name in ambiguities
alice-i-cecile 5030691
Add LogLevel::Ignore
alice-i-cecile 325b3ec
Ignore system order ambiguities by default
alice-i-cecile e60e657
Port nondeterministic_system_order example
alice-i-cecile b2431d5
Derive Clone and Debug for ScheduleBuildSettings
alice-i-cecile 084cca5
Fix assert failures
maniwani ca6b28f
typo
maniwani dca1f58
Merge pull request #122 from maniwani/stage-yeet-fix-asserts
alice-i-cecile 9e9c63b
Merge remote-tracking branch 'alice-i-cecile/stage-yeet' into stage-yeet
alice-i-cecile e7c3f6a
Fixes for CI
alice-i-cecile 5e11c85
Rename bevy_ecs::scheduling to bevy_ecs::schedule_v3 to aid review
alice-i-cecile dc52879
Clippy lints
alice-i-cecile a74e820
Merge remote-tracking branch 'bevyengine/main' into merge-main-230202
hymm 7149205
Merge pull request #123 from hymm/merge-main-230202
alice-i-cecile ebdb821
Fix broken link
alice-i-cecile ba4ff14
Typo fix
alice-i-cecile 605d91d
Don't bother fetching component ID for MainWorld
alice-i-cecile 598221f
Improve docs for state.rs example
alice-i-cecile 0c3453a
Move CacluclateBounds back to PostUpdate
alice-i-cecile 9e02924
Merge remote-tracking branch 'origin/main' into stage-yeet
alice-i-cecile 1a96791
Add configure_system_sets
alice-i-cecile 2c5e15f
Formatting
alice-i-cecile 2f473d1
Fully disable tick_global_tasks_pools on web
alice-i-cecile 7684926
Fix links to CoreStage in docs
alice-i-cecile 034ef1c
Another stray CoreStage reference in the docs
alice-i-cecile 24e8da8
More broken doc links
alice-i-cecile abe90bb
Add and use an extra commands flush for AABB calculations
alice-i-cecile 4e5ef1b
Doc links
alice-i-cecile 8c5cb03
Explicit add CalculateBoundsFlush to PostUpdate
alice-i-cecile 1e18e31
Add close_when_requested to a CoreSet
alice-i-cecile 5ad0c47
put add clusters flush into a set
hymm c26d582
Merge pull request #124 from hymm/cleanup-add-clusters-flush
alice-i-cecile 00f226d
Merge remote-tracking branch 'origin/main' into pr/alice-i-cecile/7267
cart 780a47c
Fix doc links
cart acb3f24
Fix doc links
alice-i-cecile 01a43ae
Doc link
alice-i-cecile 60fa3e8
Doc links T_T
alice-i-cecile File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
I think calling this module
bevy_ecs::schedule
makes more sense / is more consistent with rust naming conventions:schedule
module makes sense (ex:std::vec::Vec
)-ing
. Ex: it isbacktrace
notbacktracing,
panicnot
packing,
threadnot
threading`, etc.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.
Note that there's a
schedule
submodule within this module, which stores theSchedule
andSchedules
type.I renamed this to a) make the diff more readable and b) avoid a very sensible clippy lint warning against that confusing scenario.
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.
Wait: this comment is on the
benches
folder: is that where you meant to coment?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.
I'm not a fan of this lint in the first place (nor is
@dtolnay
... note that this is in a "most suppressed clippy lints" thread). Combining multiple "private" submodules for a given context into the same submodule is an extremely common pattern. To follow thestd::vec::Vec
example above, imagine you wanted to havestd/vec/vec.rs
(containing the vec impl) andstd/vec/vec_iterators.rs
(containing iterator impls for vec). This is a valid way to break up your files in my opinion. Imo the only valid alternative is dumping thevec.rs
internals intostd/vec/mod.rs
, which combines the "meta module-joining" context of the originalmod.rs
with the "implementation details" ofvec.rs
. I don't think we should compromise our ideal module names or file structure to satisfy a controversial clippy lint. I don't see the value.Likewise being diff/review-friendly is good and I don't hate something like this as an intermediate step. But we shouldn't compromise our ideal api for that either.
It was meant to be on the actual scheduling module. I just left it in the wrong place / commented on the first scheduling.rs I found :)
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.
My vote is to suppress this lint as a matter of policy and rename this module to
schedule
.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.
(i have the changes prepped)
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.
Resolved by alice-i-cecile#98 (if we agree to go that route)