From cd447fb4e68716fb908158ab9ca64d13746a6b97 Mon Sep 17 00:00:00 2001 From: Mike Date: Fri, 10 Feb 2023 03:32:54 +0000 Subject: [PATCH] Cleanup render schedule (#7589) # Objective - Fixes https://github.com/bevyengine/bevy/issues/7531 ## Solution - Add systems to prepare set - Also remove a unnecessary apply_systems_buffers from ExtractCommands set. --- crates/bevy_pbr/src/lib.rs | 1 + crates/bevy_pbr/src/material.rs | 6 +++++- crates/bevy_render/src/lib.rs | 1 - crates/bevy_sprite/src/mesh2d/material.rs | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/bevy_pbr/src/lib.rs b/crates/bevy_pbr/src/lib.rs index a37056cc86..7635dc1b8f 100644 --- a/crates/bevy_pbr/src/lib.rs +++ b/crates/bevy_pbr/src/lib.rs @@ -284,6 +284,7 @@ impl Plugin for PbrPlugin { // because prepare_lights creates new views for shadow mapping .add_system( apply_system_buffers + .in_set(RenderSet::Prepare) .after(RenderLightSystems::PrepareLights) .before(ViewSet::PrepareUniforms), ) diff --git a/crates/bevy_pbr/src/material.rs b/crates/bevy_pbr/src/material.rs index 170632c629..3930b3d474 100644 --- a/crates/bevy_pbr/src/material.rs +++ b/crates/bevy_pbr/src/material.rs @@ -196,7 +196,11 @@ where .init_resource::>() .init_resource::>>() .add_system_to_schedule(ExtractSchedule, extract_materials::) - .add_system(prepare_materials::.after(PrepareAssetLabel::PreAssetPrepare)) + .add_system( + prepare_materials:: + .in_set(RenderSet::Prepare) + .after(PrepareAssetLabel::PreAssetPrepare), + ) .add_system(queue_material_meshes::.in_set(RenderSet::Queue)); } diff --git a/crates/bevy_render/src/lib.rs b/crates/bevy_render/src/lib.rs index cbf41721ac..14b0750e29 100644 --- a/crates/bevy_render/src/lib.rs +++ b/crates/bevy_render/src/lib.rs @@ -112,7 +112,6 @@ impl RenderSet { let mut schedule = Schedule::new(); // Create "stage-like" structure using buffer flushes + ordering - schedule.add_system(apply_system_buffers.in_set(ExtractCommands)); schedule.add_system(apply_system_buffers.in_set(PrepareFlush)); schedule.add_system(apply_system_buffers.in_set(QueueFlush)); schedule.add_system(apply_system_buffers.in_set(PhaseSortFlush)); diff --git a/crates/bevy_sprite/src/mesh2d/material.rs b/crates/bevy_sprite/src/mesh2d/material.rs index 6b8735b9bd..f47e8c86ae 100644 --- a/crates/bevy_sprite/src/mesh2d/material.rs +++ b/crates/bevy_sprite/src/mesh2d/material.rs @@ -161,8 +161,8 @@ where .add_system_to_schedule(ExtractSchedule, extract_materials_2d::) .add_system( prepare_materials_2d:: - .after(PrepareAssetLabel::PreAssetPrepare) - .in_set(RenderSet::Prepare), + .in_set(RenderSet::Prepare) + .after(PrepareAssetLabel::PreAssetPrepare), ) .add_system(queue_material2d_meshes::.in_set(RenderSet::Queue)); }