diff --git a/crates/bevy_ui/src/lib.rs b/crates/bevy_ui/src/lib.rs index ce54ae39e1a90..aedb5e51e87f5 100644 --- a/crates/bevy_ui/src/lib.rs +++ b/crates/bevy_ui/src/lib.rs @@ -54,6 +54,7 @@ use bevy_app::prelude::*; use bevy_ecs::prelude::*; use bevy_input::InputSystem; use bevy_render::{ + camera::CameraUpdateSystem, view::{check_visibility, VisibilitySystems}, RenderApp, }; @@ -146,6 +147,7 @@ impl Plugin for UiPlugin { .configure_sets( PostUpdate, ( + CameraUpdateSystem, UiSystem::Prepare.before(UiSystem::Stack), UiSystem::Layout, (UiSystem::PostLayout, UiSystem::Outlines), @@ -226,11 +228,6 @@ fn build_text_interop(app: &mut App) { widget::measure_text_system .in_set(UiSystem::Prepare) // Potential conflict: `Assets` - // In practice, they run independently since `bevy_render::camera_update_system` - // will only ever observe its own render target, and `widget::measure_text_system` - // will never modify a pre-existing `Image` asset. - .ambiguous_with(bevy_render::camera::CameraUpdateSystem) - // Potential conflict: `Assets` // Since both systems will only ever insert new [`Image`] assets, // they will never observe each other's effects. .ambiguous_with(bevy_text::update_text2d_layout) diff --git a/tests/ecs/ambiguity_detection.rs b/tests/ecs/ambiguity_detection.rs index 08e5015691894..ff7532fbd3e30 100644 --- a/tests/ecs/ambiguity_detection.rs +++ b/tests/ecs/ambiguity_detection.rs @@ -69,7 +69,7 @@ pub fn main() { let total_ambiguities = ambiguities.total(); assert_eq!( - total_ambiguities, 81, + total_ambiguities, 72, "Main app does not have an expected conflicting systems count, \ you might consider verifying if it's normal, or change the expected number.\n\ Details:\n{:#?}",