-
-
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
System sets and parallel executor v2 #1144
Commits on Dec 5, 2020
-
Configuration menu - View commit details
-
Copy full SHA for c18476a - Browse repository at this point
Copy the full SHA c18476aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 234e766 - Browse repository at this point
Copy the full SHA 234e766View commit details
Commits on Dec 6, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 2f6c231 - Browse repository at this point
Copy the full SHA 2f6c231View commit details -
Configuration menu - View commit details
-
Copy full SHA for 474dc05 - Browse repository at this point
Copy the full SHA 474dc05View commit details -
Configuration menu - View commit details
-
Copy full SHA for 40e8953 - Browse repository at this point
Copy the full SHA 40e8953View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0cdcfd9 - Browse repository at this point
Copy the full SHA 0cdcfd9View commit details -
Configuration menu - View commit details
-
Copy full SHA for e4d7ab5 - Browse repository at this point
Copy the full SHA e4d7ab5View commit details -
Configuration menu - View commit details
-
Copy full SHA for e370da0 - Browse repository at this point
Copy the full SHA e370da0View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf9c513 - Browse repository at this point
Copy the full SHA bf9c513View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7699ec4 - Browse repository at this point
Copy the full SHA 7699ec4View commit details -
Configuration menu - View commit details
-
Copy full SHA for dbe3748 - Browse repository at this point
Copy the full SHA dbe3748View commit details -
Configuration menu - View commit details
-
Copy full SHA for cadd846 - Browse repository at this point
Copy the full SHA cadd846View commit details
Commits on Dec 7, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 2611cc5 - Browse repository at this point
Copy the full SHA 2611cc5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 509f5f5 - Browse repository at this point
Copy the full SHA 509f5f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 000dd7e - Browse repository at this point
Copy the full SHA 000dd7eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9b382ea - Browse repository at this point
Copy the full SHA 9b382eaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 061f0c4 - Browse repository at this point
Copy the full SHA 061f0c4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5c435be - Browse repository at this point
Copy the full SHA 5c435beView commit details
Commits on Dec 10, 2020
-
Configuration menu - View commit details
-
Copy full SHA for ccad3c6 - Browse repository at this point
Copy the full SHA ccad3c6View commit details
Commits on Dec 11, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 465f59e - Browse repository at this point
Copy the full SHA 465f59eView commit details
Commits on Dec 12, 2020
-
Preparatory work for new parallel scheduling implementation:
Renamed `access::Access` to `ArchetypeAccess`, made it private. No particular reason. Removed `ThreadLocalExecution`, `System::thread_local_execution()` - this information is now encoded in `::archetype_component_access()`, `::resource_access()`, and new `::is_thread_local()`. Extended `TypeAccess` with support for "reads/writes everything" to facilitate the above. Renamed `ThreadLocalSystemFn` and the module `into_thread_local` to `ExclusiveSystemFn` and `into_exclusive` respectively, to differentiate systems with this access pattern from actually thread-local systems. Implemented `IntoSystem` for `FnMut(&mut World)` and `FnMut(&mut Resources)`, both result in `ExclusiveSystemFn`. Just because. Probably in vain. Rewrote `SerialSystemStageExecutor` to account for `ThreadLocalExecution` removal. Implemented `ThreadLocal` system parameter. Implemented mk1 label and dependencies methods on `SystemSet` and `SystemStage`. Added `ShouldRun::NoAndLoop`.
Configuration menu - View commit details
-
Copy full SHA for b966034 - Browse repository at this point
Copy the full SHA b966034View commit details
Commits on Dec 13, 2020
-
Renamed `System::update()` to `System::update_access()`, for clarity. Plumbed labels and dependencies into the stage executor, via `SystemStage::labels` (a stage-global map of label to system index), `SystemSet::system_label()`, and `SystemSet::system_dependencies()`. Rewrote `SerialSystemStageExecutor` to support exclusive systems at start of stage as well; unfinished.
Configuration menu - View commit details
-
Copy full SHA for 457262c - Browse repository at this point
Copy the full SHA 457262cView commit details
Commits on Dec 14, 2020
-
Parallel executor implementation, pt 1:
Began implementation; doesn't do anything yet because the pathway from data it gets to data it wants is not implemented. Changed system sets to store systems in `NonNull` rather than `Box`. Requires auditing and a sanity check.
Configuration menu - View commit details
-
Copy full SHA for ffe34e7 - Browse repository at this point
Copy the full SHA ffe34e7View commit details -
Parallel executor implementation, pt 2:
Minor cleanup. Partially implemented run criteria handling.
Configuration menu - View commit details
-
Copy full SHA for 26afcfe - Browse repository at this point
Copy the full SHA 26afcfeView commit details
Commits on Dec 15, 2020
-
Parallel executor implementation, pt 3:
Minor refactor. Fixed a future bug in not yet implemented `can_start_now()`. Accounted for run criteria for parallel systems: if a system shouldn't run in this iteration, its task is not spawned and it's never queued to run.
Configuration menu - View commit details
-
Copy full SHA for 0e75a60 - Browse repository at this point
Copy the full SHA 0e75a60View commit details
Commits on Dec 20, 2020
-
Parallel executor implementation, pt 4:
Added `CondensedTypeAccess` and related machinery. Moved the dependency resolution burden from executor to the stage; verification is not yet implemented. Systems with no dependencies are immediately queued to run at the start of each iteration. Implemented rebuilding scheduling data and updating access information. Implemented `can_start_now()`. Running tests violates access, right now.
Configuration menu - View commit details
-
Copy full SHA for 7d36fc0 - Browse repository at this point
Copy the full SHA 7d36fc0View commit details
Commits on Dec 22, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 4a6db18 - Browse repository at this point
Copy the full SHA 4a6db18View commit details
Commits on Dec 23, 2020
-
Merge remote-tracking branch 'upstream/master' into schedule-v2
# Conflicts: # crates/bevy_app/src/app.rs # crates/bevy_app/src/app_builder.rs # crates/bevy_asset/src/lib.rs # crates/bevy_core/src/time/fixed_timestep.rs # crates/bevy_ecs/Cargo.toml # crates/bevy_ecs/src/lib.rs # crates/bevy_ecs/src/schedule/mod.rs # crates/bevy_ecs/src/schedule/stage.rs # crates/bevy_ecs/src/schedule/stage_executor.rs # crates/bevy_ecs/src/schedule/state.rs # crates/bevy_ecs/src/system/into_system.rs # crates/bevy_ecs/src/system/into_thread_local.rs # crates/bevy_ecs/src/system/system.rs # crates/bevy_ecs/src/system/system_chaining.rs # crates/bevy_ecs/src/system/system_param.rs # crates/bevy_input/src/lib.rs # crates/bevy_render/src/lib.rs # crates/bevy_render/src/render_graph/system.rs # crates/bevy_scene/src/lib.rs # crates/bevy_transform/src/hierarchy/hierarchy_maintenance_system.rs # crates/bevy_transform/src/transform_propagate_system.rs # crates/bevy_ui/src/lib.rs # crates/bevy_ui/src/update.rs # crates/bevy_winit/src/lib.rs # examples/2d/texture_atlas.rs # examples/ecs/ecs_guide.rs # examples/ecs/fixed_timestep.rs # examples/ecs/state.rs
Configuration menu - View commit details
-
Copy full SHA for c29ab55 - Browse repository at this point
Copy the full SHA c29ab55View commit details -
Configuration menu - View commit details
-
Copy full SHA for 52f692f - Browse repository at this point
Copy the full SHA 52f692fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1746bb1 - Browse repository at this point
Copy the full SHA 1746bb1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5d133fa - Browse repository at this point
Copy the full SHA 5d133faView commit details -
Configuration menu - View commit details
-
Copy full SHA for a68611b - Browse repository at this point
Copy the full SHA a68611bView commit details
Commits on Dec 24, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 55e8eb1 - Browse repository at this point
Copy the full SHA 55e8eb1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8fbe2a7 - Browse repository at this point
Copy the full SHA 8fbe2a7View commit details
Commits on Dec 29, 2020
-
Configuration menu - View commit details
-
Copy full SHA for c4e8261 - Browse repository at this point
Copy the full SHA c4e8261View commit details
Commits on Jan 9, 2021
-
Merge branch 'upstream-master' into executor-v2
# Conflicts: # crates/bevy_ecs/Cargo.toml # crates/bevy_ecs/src/schedule/mod.rs # crates/bevy_ecs/src/schedule/stage.rs # crates/bevy_ecs/src/schedule/stage_executor.rs
Configuration menu - View commit details
-
Copy full SHA for e0b9d14 - Browse repository at this point
Copy the full SHA e0b9d14View commit details
Commits on Jan 12, 2021
-
Implemented (probably incomplete) `SystemDescriptor`, its coercion machinery, and its usage in `SystemStage` (parallel dependency tree is still not validated). Plumbed more data between stage and executor to make use of the latter. Removed most of system insertion methods on `SystemStage` and `SystemSet`, replaced remaining with those taking `Into<SystemDescriptor>` (except `App`). Simplified cache invalidation trigger in `SystemSet`; need to verify if any of it, along with its usage, could/should be moved to initialization instead.
Configuration menu - View commit details
-
Copy full SHA for 504055f - Browse repository at this point
Copy the full SHA 504055fView commit details
Commits on Jan 13, 2021
-
Removed the check that forbade parallel systems to be used in the exclusive system queues, altered exclusive system execution to also run the parallel part. Changed language in `SystemStage` and the executors to reflect the above: "exclusive" systems are now "sequential". Moved `ParallelSystemStageExecutor` to its own file. Refactored the two executors to share more code; moved parallel system preparation in parallel executor to its own function, `::prepare_parallel_systems()`. Minor renames. Removed `SerialSystemStageExecutor::last_archetypes_generation`: this is used only to update access, and access is used only to parallelize things, so a strictly serial executor has no need of it.
Configuration menu - View commit details
-
Copy full SHA for 64a276a - Browse repository at this point
Copy the full SHA 64a276aView commit details
Commits on Jan 16, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 7234d22 - Browse repository at this point
Copy the full SHA 7234d22View commit details -
Configuration menu - View commit details
-
Copy full SHA for fe60c85 - Browse repository at this point
Copy the full SHA fe60c85View commit details
Commits on Jan 17, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 44d4271 - Browse repository at this point
Copy the full SHA 44d4271View commit details
Commits on Jan 18, 2021
-
Decoupled exclusive systems from parallel systems:
Introduced `_exclusive` system insertion methods throughout the API (except states). Rearranged system insertion methods in `AppBuilder`; no particular reason. Renamed `System::run_exclusive()` to `apply_buffers()` to better reflect its function. Blindly made all exclusive systems in the engine be inserted with the appropriate methods; haven't done anything wrt validity of the resulting execution order.
Configuration menu - View commit details
-
Copy full SHA for 43a08f9 - Browse repository at this point
Copy the full SHA 43a08f9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70850fa - Browse repository at this point
Copy the full SHA 70850faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 027f80a - Browse repository at this point
Copy the full SHA 027f80aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 116c877 - Browse repository at this point
Copy the full SHA 116c877View commit details
Commits on Jan 19, 2021
-
Merge branch 'upstream-master' into executor-v2
# Conflicts: # crates/bevy_ecs/Cargo.toml
Configuration menu - View commit details
-
Copy full SHA for c972161 - Browse repository at this point
Copy the full SHA c972161View commit details -
Configuration menu - View commit details
-
Copy full SHA for 19c7430 - Browse repository at this point
Copy the full SHA 19c7430View commit details -
Configuration menu - View commit details
-
Copy full SHA for ad14e57 - Browse repository at this point
Copy the full SHA ad14e57View commit details
Commits on Jan 21, 2021
-
Fixed & exposed
ThreadLocal
; refactors; some tests; topological sor……ting where applicable; more documentation.
Configuration menu - View commit details
-
Copy full SHA for 43dd985 - Browse repository at this point
Copy the full SHA 43dd985View commit details
Commits on Jan 23, 2021
-
Made dependencies "soft" by default, added test cases for that; added…
… `SystemSet` and `ShouldRun` to the prelude; renamed `SystemStage::serial()` and `SerialSystemStageExecutor` to `::single_threaded()` and `SingleThreadedSystemStageExecutor` respectively; minor refactors.
Configuration menu - View commit details
-
Copy full SHA for e1da00a - Browse repository at this point
Copy the full SHA e1da00aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6ae4398 - Browse repository at this point
Copy the full SHA 6ae4398View commit details -
Refactors:
SystemStageExecutor
renamed toParallelSystemExecutor
,…… now responsible solely for parallel systems execution; renamed things to make sense with that change; moved `SystemSet` to its own module.
Configuration menu - View commit details
-
Copy full SHA for e8b02fe - Browse repository at this point
Copy the full SHA e8b02feView commit details
Commits on Jan 25, 2021
-
Renamed
ThreadLocal
and friends intoNonSend
; preemptively fixed ……chained systems; minor refactors; more tests.
Configuration menu - View commit details
-
Copy full SHA for cd20ee4 - Browse repository at this point
Copy the full SHA cd20ee4View commit details -
Moved the burder of creating and maintaining the parallel "should run…
…" bitset to `SystemStage`.
Configuration menu - View commit details
-
Copy full SHA for 59a03ad - Browse repository at this point
Copy the full SHA 59a03adView commit details
Commits on Jan 26, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 5c9cf4d - Browse repository at this point
Copy the full SHA 5c9cf4dView commit details -
Implemented parallel system order ambiguity detection; plumbed archet…
…ype-agnostic component access for parallelizable systems.
Configuration menu - View commit details
-
Copy full SHA for 61a0211 - Browse repository at this point
Copy the full SHA 61a0211View commit details
Commits on Jan 27, 2021
-
Fixed parallel executor "starting" more than one non-send system at a…
… time; more tests; minor refactors.
Configuration menu - View commit details
-
Copy full SHA for c5fc80d - Browse repository at this point
Copy the full SHA c5fc80dView commit details -
Unified system descriptors, deduplicated system insertion methods; re…
…worked exclusive systems to use separate and unambiguous `IntoExclusiveSystem` trait.
Configuration menu - View commit details
-
Copy full SHA for e9321f8 - Browse repository at this point
Copy the full SHA e9321f8View commit details
Commits on Jan 28, 2021
-
Execution order ambiguity for exclusive systems; refactors; reverted …
…removal of `Send + Sync` bound from `Stage`.
Configuration menu - View commit details
-
Copy full SHA for 0c30716 - Browse repository at this point
Copy the full SHA 0c30716View commit details -
Configuration menu - View commit details
-
Copy full SHA for 01164e5 - Browse repository at this point
Copy the full SHA 01164e5View commit details
Commits on Jan 29, 2021
-
Configuration menu - View commit details
-
Copy full SHA for a8df35c - Browse repository at this point
Copy the full SHA a8df35cView commit details
Commits on Feb 1, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 976cc53 - Browse repository at this point
Copy the full SHA 976cc53View commit details -
Configuration menu - View commit details
-
Copy full SHA for ad89d68 - Browse repository at this point
Copy the full SHA ad89d68View commit details
Commits on Feb 4, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 4a82850 - Browse repository at this point
Copy the full SHA 4a82850View commit details -
Configuration menu - View commit details
-
Copy full SHA for feb38d5 - Browse repository at this point
Copy the full SHA feb38d5View commit details -
Merge branch 'upstream-master' into executor-v2
# Conflicts: # crates/bevy_app/src/app_builder.rs # crates/bevy_ecs/src/schedule/stage.rs # crates/bevy_gilrs/src/lib.rs # crates/bevy_winit/src/lib.rs
Configuration menu - View commit details
-
Copy full SHA for a32063e - Browse repository at this point
Copy the full SHA a32063eView commit details -
Configuration menu - View commit details
-
Copy full SHA for e42f1f4 - Browse repository at this point
Copy the full SHA e42f1f4View commit details
Commits on Feb 5, 2021
-
Configuration menu - View commit details
-
Copy full SHA for f7a0eb6 - Browse repository at this point
Copy the full SHA f7a0eb6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3cfd48a - Browse repository at this point
Copy the full SHA 3cfd48aView commit details -
Configuration menu - View commit details
-
Copy full SHA for e09298f - Browse repository at this point
Copy the full SHA e09298fView commit details -
Configuration menu - View commit details
-
Copy full SHA for d9fa55d - Browse repository at this point
Copy the full SHA d9fa55dView commit details
Commits on Feb 6, 2021
-
Configuration menu - View commit details
-
Copy full SHA for ec845c5 - Browse repository at this point
Copy the full SHA ec845c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 42118c9 - Browse repository at this point
Copy the full SHA 42118c9View commit details -
Configuration menu - View commit details
-
Copy full SHA for b532235 - Browse repository at this point
Copy the full SHA b532235View commit details
Commits on Feb 7, 2021
-
Configuration menu - View commit details
-
Copy full SHA for e23c8a8 - Browse repository at this point
Copy the full SHA e23c8a8View commit details
Commits on Feb 8, 2021
-
Configuration menu - View commit details
-
Copy full SHA for c69579f - Browse repository at this point
Copy the full SHA c69579fView commit details
Commits on Feb 9, 2021
-
Configuration menu - View commit details
-
Copy full SHA for d929da3 - Browse repository at this point
Copy the full SHA d929da3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 69a55aa - Browse repository at this point
Copy the full SHA 69a55aaView commit details