diff --git a/crates/bevy_pbr/src/lib.rs b/crates/bevy_pbr/src/lib.rs index 319495c40f..60bb2f4d42 100644 --- a/crates/bevy_pbr/src/lib.rs +++ b/crates/bevy_pbr/src/lib.rs @@ -350,14 +350,7 @@ impl Plugin for PbrPlugin { .in_set(SimulationLightSystems::UpdateLightFrusta) .after(TransformSystem::TransformPropagate) .after(SimulationLightSystems::AssignLightsToClusters), - check_visibility:: - .in_set(VisibilitySystems::CheckVisibility) - .after(VisibilitySystems::CalculateBounds) - .after(VisibilitySystems::UpdateOrthographicFrusta) - .after(VisibilitySystems::UpdatePerspectiveFrusta) - .after(VisibilitySystems::UpdateProjectionFrusta) - .after(VisibilitySystems::VisibilityPropagate) - .after(TransformSystem::TransformPropagate), + check_visibility::.in_set(VisibilitySystems::CheckVisibility), check_light_mesh_visibility .in_set(SimulationLightSystems::CheckLightVisibility) .after(VisibilitySystems::CalculateBounds) diff --git a/crates/bevy_pbr/src/meshlet/mod.rs b/crates/bevy_pbr/src/meshlet/mod.rs index 86580dcea8..b721e374b8 100644 --- a/crates/bevy_pbr/src/meshlet/mod.rs +++ b/crates/bevy_pbr/src/meshlet/mod.rs @@ -83,7 +83,6 @@ use bevy_render::{ ExtractSchedule, Render, RenderApp, RenderSet, }; use bevy_transform::components::{GlobalTransform, Transform}; -use bevy_transform::TransformSystem; const MESHLET_BINDINGS_SHADER_HANDLE: Handle = Handle::weak_from_u128(1325134235233421); const MESHLET_MESH_MATERIAL_SHADER_HANDLE: Handle = @@ -168,14 +167,7 @@ impl Plugin for MeshletPlugin { .insert_resource(Msaa::Off) .add_systems( PostUpdate, - check_visibility:: - .in_set(VisibilitySystems::CheckVisibility) - .after(VisibilitySystems::CalculateBounds) - .after(VisibilitySystems::UpdateOrthographicFrusta) - .after(VisibilitySystems::UpdatePerspectiveFrusta) - .after(VisibilitySystems::UpdateProjectionFrusta) - .after(VisibilitySystems::VisibilityPropagate) - .after(TransformSystem::TransformPropagate), + check_visibility::.in_set(VisibilitySystems::CheckVisibility), ); } diff --git a/crates/bevy_render/src/view/visibility/mod.rs b/crates/bevy_render/src/view/visibility/mod.rs index 9418f7847a..a57a5f8414 100644 --- a/crates/bevy_render/src/view/visibility/mod.rs +++ b/crates/bevy_render/src/view/visibility/mod.rs @@ -259,14 +259,25 @@ impl Plugin for VisibilityPlugin { fn build(&self, app: &mut bevy_app::App) { use VisibilitySystems::*; - app.add_systems( + app.configure_sets( + PostUpdate, + ( + CalculateBounds, + UpdateOrthographicFrusta, + UpdatePerspectiveFrusta, + UpdateProjectionFrusta, + VisibilityPropagate, + ) + .before(CheckVisibility) + .after(TransformSystem::TransformPropagate), + ) + .add_systems( PostUpdate, ( calculate_bounds.in_set(CalculateBounds), update_frusta:: .in_set(UpdateOrthographicFrusta) .after(camera_system::) - .after(TransformSystem::TransformPropagate) // We assume that no camera will have more than one projection component, // so these systems will run independently of one another. // FIXME: Add an archetype invariant for this https://github.com/bevyengine/bevy/issues/1481. @@ -275,24 +286,15 @@ impl Plugin for VisibilityPlugin { update_frusta:: .in_set(UpdatePerspectiveFrusta) .after(camera_system::) - .after(TransformSystem::TransformPropagate) // We assume that no camera will have more than one projection component, // so these systems will run independently of one another. // FIXME: Add an archetype invariant for this https://github.com/bevyengine/bevy/issues/1481. .ambiguous_with(update_frusta::), update_frusta:: .in_set(UpdateProjectionFrusta) - .after(camera_system::) - .after(TransformSystem::TransformPropagate), + .after(camera_system::), (visibility_propagate_system, reset_view_visibility).in_set(VisibilityPropagate), - check_visibility:: - .in_set(CheckVisibility) - .after(CalculateBounds) - .after(UpdateOrthographicFrusta) - .after(UpdatePerspectiveFrusta) - .after(UpdateProjectionFrusta) - .after(VisibilityPropagate) - .after(TransformSystem::TransformPropagate), + check_visibility::.in_set(CheckVisibility), ), ); } diff --git a/crates/bevy_sprite/src/lib.rs b/crates/bevy_sprite/src/lib.rs index a8189c6d4d..fcf2a701f6 100644 --- a/crates/bevy_sprite/src/lib.rs +++ b/crates/bevy_sprite/src/lib.rs @@ -33,7 +33,6 @@ pub mod prelude { } use bevy_reflect::{std_traits::ReflectDefault, Reflect}; -use bevy_transform::TransformSystem; pub use bundle::*; pub use dynamic_texture_atlas_builder::*; pub use mesh2d::*; @@ -122,13 +121,7 @@ impl Plugin for SpritePlugin { check_visibility::, check_visibility::, ) - .in_set(VisibilitySystems::CheckVisibility) - .after(VisibilitySystems::CalculateBounds) - .after(VisibilitySystems::UpdateOrthographicFrusta) - .after(VisibilitySystems::UpdatePerspectiveFrusta) - .after(VisibilitySystems::UpdateProjectionFrusta) - .after(VisibilitySystems::VisibilityPropagate) - .after(TransformSystem::TransformPropagate), + .in_set(VisibilitySystems::CheckVisibility), ), ); diff --git a/crates/bevy_ui/src/lib.rs b/crates/bevy_ui/src/lib.rs index 8db70a2e6c..0688510432 100644 --- a/crates/bevy_ui/src/lib.rs +++ b/crates/bevy_ui/src/lib.rs @@ -137,13 +137,7 @@ impl Plugin for UiPlugin { app.add_systems( PostUpdate, ( - check_visibility:: - .in_set(VisibilitySystems::CheckVisibility) - .after(VisibilitySystems::CalculateBounds) - .after(VisibilitySystems::UpdateOrthographicFrusta) - .after(VisibilitySystems::UpdatePerspectiveFrusta) - .after(VisibilitySystems::UpdateProjectionFrusta) - .after(VisibilitySystems::VisibilityPropagate), + check_visibility::.in_set(VisibilitySystems::CheckVisibility), update_target_camera_system.before(UiSystem::Layout), apply_deferred .after(update_target_camera_system)