Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

System order ambiguities #287

Open
Vrixyz opened this issue Jun 20, 2024 · 2 comments
Open

System order ambiguities #287

Vrixyz opened this issue Jun 20, 2024 · 2 comments

Comments

@Vrixyz
Copy link
Contributor

Vrixyz commented Jun 20, 2024

Running bevy's system order ambiguities detection reports several ambiguities:

2024-06-20T08:59:49.675123Z  WARN bevy_ecs::schedule::schedule: Schedule PostUpdate has ambiguities.
8 pairs of systems with conflicting data access have indeterminate execution order. Consider adding `before`, `after`, or `ambiguous_with` relationships between these:
 -- bevy_pbr::light::add_clusters (in set AddClusters) and bevy_render::camera::camera::camera_system<bevy_render::camera::projection::PerspectiveProjection> (in set CameraUpdateSystem)
    conflict on: ["bevy_render::camera::camera::Camera"]
 -- bevy_pbr::light::add_clusters (in set AddClusters) and bevy_render::camera::camera::camera_system<bevy_render::camera::projection::OrthographicProjection> (in set CameraUpdateSystem)
    conflict on: ["bevy_render::camera::camera::Camera"]
 -- bevy_pbr::light::add_clusters (in set AddClusters) and bevy_render::camera::camera::camera_system<bevy_render::camera::projection::Projection> (in set CameraUpdateSystem)
    conflict on: ["bevy_render::camera::camera::Camera"]
 -- bevy_render::camera::camera::camera_system<bevy_render::camera::projection::PerspectiveProjection> (in set CameraUpdateSystem) and bevy_egui::systems::process_output_system (in set ProcessOutput)
    conflict on: ["bevy_window::window::Window"]
 -- bevy_render::camera::camera::camera_system<bevy_render::camera::projection::OrthographicProjection> (in set CameraUpdateSystem) and bevy_egui::systems::process_output_system (in set ProcessOutput)
    conflict on: ["bevy_window::window::Window"]
 -- bevy_render::camera::camera::camera_system<bevy_render::camera::projection::Projection> (in set CameraUpdateSystem) and bevy_egui::systems::process_output_system (in set ProcessOutput)
    conflict on: ["bevy_window::window::Window"]
 -- bevy_winit::accessibility::update_accessibility_nodes (in set Update) and bevy_egui::systems::process_output_system (in set ProcessOutput)
    conflict on: ["bevy_window::window::Window"]
 -- bevy_egui::systems::process_output_system (in set ProcessOutput) and bevy_window::system::exit_on_all_closed
    conflict on: ["bevy_window::window::Window"]

(detected while working on dimforge/bevy_rapier#536 )

@vladbat00
Copy link
Owner

Hi, thanks for bringing this to attention! I just double-checked: it seems that we aren't using the process_output_system system in a way that would have some undesired effects because of inconsistent ordering. The only way we access the Window component is to set a cursor for it (if I haven't missed anything).

So I guess we can just put .ambiguous_with(...) and call it a day?

@Vrixyz
Copy link
Contributor Author

Vrixyz commented Jul 7, 2024

Thanks for taking a look, that's my understanding too, I'd welcome a comment accompanying any ambiguous_with because it's not too trivial to track.

The rest seems to originate from bevy ; for information I'd love to clean bevy ambiguities too :') bevyengine/bevy#13950

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants