diff --git a/crates/bevy_pbr/src/lib.rs b/crates/bevy_pbr/src/lib.rs index 2b47ae1e62..70ab4d4dfc 100644 --- a/crates/bevy_pbr/src/lib.rs +++ b/crates/bevy_pbr/src/lib.rs @@ -254,6 +254,9 @@ impl Plugin for PbrPlugin { // Extract the required data from the main world render_app + .configure_set(RenderLightSystems::PrepareLights.in_set(RenderSet::Prepare)) + .configure_set(RenderLightSystems::PrepareClusters.in_set(RenderSet::Prepare)) + .configure_set(RenderLightSystems::QueueShadows.in_set(RenderSet::Queue)) .add_systems_to_schedule( ExtractSchedule, ( @@ -264,8 +267,7 @@ impl Plugin for PbrPlugin { .add_system( render::prepare_lights .before(ViewSet::PrepareUniforms) - .in_set(RenderLightSystems::PrepareLights) - .in_set(RenderSet::Prepare), + .in_set(RenderLightSystems::PrepareLights), ) // A sync is needed after prepare_lights, before prepare_view_uniforms, // because prepare_lights creates new views for shadow mapping @@ -277,14 +279,9 @@ impl Plugin for PbrPlugin { .add_system( render::prepare_clusters .after(render::prepare_lights) - .in_set(RenderLightSystems::PrepareClusters) - .in_set(RenderSet::Prepare), - ) - .add_system( - render::queue_shadows - .in_set(RenderLightSystems::QueueShadows) - .in_set(RenderSet::Queue), + .in_set(RenderLightSystems::PrepareClusters), ) + .add_system(render::queue_shadows.in_set(RenderLightSystems::QueueShadows)) .add_system(render::queue_shadow_view_bind_group.in_set(RenderSet::Queue)) .add_system(sort_phase_system::.in_set(RenderSet::PhaseSort)) .init_resource::() diff --git a/crates/bevy_pbr/src/material.rs b/crates/bevy_pbr/src/material.rs index 596b7c9b54..fa37de4945 100644 --- a/crates/bevy_pbr/src/material.rs +++ b/crates/bevy_pbr/src/material.rs @@ -196,11 +196,7 @@ where .init_resource::>() .init_resource::>>() .add_system_to_schedule(ExtractSchedule, extract_materials::) - .add_system( - prepare_materials:: - .after(PrepareAssetLabel::PreAssetPrepare) - .in_set(RenderSet::Prepare), - ) + .add_system(prepare_materials::.after(PrepareAssetLabel::PreAssetPrepare)) .add_system(queue_material_meshes::.in_set(RenderSet::Queue)); } diff --git a/crates/bevy_render/src/render_asset.rs b/crates/bevy_render/src/render_asset.rs index 390cdb1355..4320b07388 100644 --- a/crates/bevy_render/src/render_asset.rs +++ b/crates/bevy_render/src/render_asset.rs @@ -79,24 +79,21 @@ impl Default for RenderAssetPlugin { impl Plugin for RenderAssetPlugin { fn build(&self, app: &mut App) { if let Ok(render_app) = app.get_sub_app_mut(RenderApp) { - let prepare_asset_system = prepare_assets::.in_set(self.prepare_asset_label.clone()); - - let prepare_asset_system = match self.prepare_asset_label { - PrepareAssetLabel::PreAssetPrepare => prepare_asset_system, - PrepareAssetLabel::AssetPrepare => { - prepare_asset_system.after(PrepareAssetLabel::PreAssetPrepare) - } - PrepareAssetLabel::PostAssetPrepare => { - prepare_asset_system.after(PrepareAssetLabel::AssetPrepare) - } - }; - render_app + .configure_sets( + ( + PrepareAssetLabel::PreAssetPrepare, + PrepareAssetLabel::AssetPrepare, + PrepareAssetLabel::PostAssetPrepare, + ) + .chain() + .in_set(RenderSet::Prepare), + ) .init_resource::>() .init_resource::>() .init_resource::>() .add_system_to_schedule(ExtractSchedule, extract_render_asset::) - .add_system(prepare_asset_system.in_set(RenderSet::Prepare)); + .add_system(prepare_assets::.in_set(self.prepare_asset_label.clone())); } } } diff --git a/crates/bevy_render/src/view/mod.rs b/crates/bevy_render/src/view/mod.rs index bd50da9521..5d278223c9 100644 --- a/crates/bevy_render/src/view/mod.rs +++ b/crates/bevy_render/src/view/mod.rs @@ -45,11 +45,8 @@ impl Plugin for ViewPlugin { if let Ok(render_app) = app.get_sub_app_mut(RenderApp) { render_app .init_resource::() - .add_system( - prepare_view_uniforms - .in_set(RenderSet::Prepare) - .in_set(ViewSet::PrepareUniforms), - ) + .configure_set(ViewSet::PrepareUniforms.in_set(RenderSet::Prepare)) + .add_system(prepare_view_uniforms.in_set(ViewSet::PrepareUniforms)) .add_system( prepare_view_targets .after(WindowSystem::Prepare) diff --git a/crates/bevy_render/src/view/window.rs b/crates/bevy_render/src/view/window.rs index 8aa0802bf8..343e8d1551 100644 --- a/crates/bevy_render/src/view/window.rs +++ b/crates/bevy_render/src/view/window.rs @@ -33,11 +33,8 @@ impl Plugin for WindowRenderPlugin { .init_resource::() .init_non_send_resource::() .add_system_to_schedule(ExtractSchedule, extract_windows) - .add_system( - prepare_windows - .in_set(WindowSystem::Prepare) - .in_set(RenderSet::Prepare), - ); + .configure_set(WindowSystem::Prepare.in_set(RenderSet::Prepare)) + .add_system(prepare_windows.in_set(WindowSystem::Prepare)); } } }