From 5e2d9b4ae4b6c996900428e3f3980611ac497ce3 Mon Sep 17 00:00:00 2001 From: TheRawMeatball Date: Tue, 23 Aug 2022 09:40:06 +0000 Subject: [PATCH] Add explicit ordering between `update_frusta` and `camera_system` (#5757) # Objective Fix a nasty system ordering bug between `update_frusta` and `camera_system` that lead to incorrect frustum s, leading to excessive culling and extremely hard-to-debug visual glitches ## Solution - add explicit system ordering --- crates/bevy_render/src/view/visibility/mod.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/bevy_render/src/view/visibility/mod.rs b/crates/bevy_render/src/view/visibility/mod.rs index eb14f94f1ad2a..bf7b110b1277e 100644 --- a/crates/bevy_render/src/view/visibility/mod.rs +++ b/crates/bevy_render/src/view/visibility/mod.rs @@ -14,7 +14,10 @@ use std::cell::Cell; use thread_local::ThreadLocal; use crate::{ - camera::{Camera, CameraProjection, OrthographicProjection, PerspectiveProjection, Projection}, + camera::{ + camera_system, Camera, CameraProjection, OrthographicProjection, PerspectiveProjection, + Projection, + }, mesh::Mesh, primitives::{Aabb, Frustum, Sphere}, }; @@ -186,18 +189,21 @@ impl Plugin for VisibilityPlugin { CoreStage::PostUpdate, update_frusta:: .label(UpdateOrthographicFrusta) + .after(camera_system::) .after(TransformSystem::TransformPropagate), ) .add_system_to_stage( CoreStage::PostUpdate, update_frusta:: .label(UpdatePerspectiveFrusta) + .after(camera_system::) .after(TransformSystem::TransformPropagate), ) .add_system_to_stage( CoreStage::PostUpdate, update_frusta:: .label(UpdateProjectionFrusta) + .after(camera_system::) .after(TransformSystem::TransformPropagate), ) .add_system_to_stage(