bevy/crates
Patrick Walton fc7705c0a6 Fix the ordering of the systems introduced in #18734. (#18825)
There's still a race resulting in blank materials whenever a material of
type A is added on the same frame that a material of type B is removed.
PR #18734 improved the situation, but ultimately didn't fix the race
because of two issues:

1. The `late_sweep_material_instances` system was never scheduled. This
PR fixes the problem by scheduling that system.

2. `early_sweep_material_instances` needs to be called after *every*
material type has been extracted, not just when the material of *that*
type has been extracted. The `chain()` added during the review process
in PR #18734 broke this logic. This PR reverts that and fixes the
ordering by introducing a new `SystemSet` that contains all material
extraction systems.

I also took the opportunity to switch a manual reference to
`AssetId::<StandardMaterial>::invalid()` to the new
`DUMMY_MESH_MATERIAL` constant for clarity.

Because this is a bug that can affect any application that switches
material types in a single frame, I think this should be uplifted to
Bevy 0.16.
2025-04-14 23:43:09 +02:00
..
bevy_a11y Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_animation Revert "Allow partial support for bevy_log in no_std (#18782)" (#18816) 2025-04-14 23:41:29 +02:00
bevy_app Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_asset Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_audio Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_color Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_core_pipeline Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_derive Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_dev_tools Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_diagnostic Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_dylib don't disable std in bevy_dylib (#18807) 2025-04-12 01:01:22 +02:00
bevy_ecs Add remove_children and remove_related to EntityWorldMut and EntityCommands (#18835) 2025-04-14 23:23:34 +02:00
bevy_encase_derive Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_gilrs Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_gizmos Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_gltf Revert "Allow partial support for bevy_log in no_std (#18782)" (#18816) 2025-04-14 23:41:29 +02:00
bevy_image Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_input Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_input_focus Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_internal Revert "Allow partial support for bevy_log in no_std (#18782)" (#18816) 2025-04-14 23:41:29 +02:00
bevy_log Revert "Allow partial support for bevy_log in no_std (#18782)" (#18816) 2025-04-14 23:41:29 +02:00
bevy_macro_utils Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_math Expose the output curve type in with_derivative (#18826) 2025-04-14 22:46:29 +02:00
bevy_mesh Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_mikktspace Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_pbr Fix the ordering of the systems introduced in #18734. (#18825) 2025-04-14 23:43:09 +02:00
bevy_picking Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_platform Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_ptr Release 0.16.0-rc.4 2025-04-11 09:12:55 +02:00
bevy_reflect Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_remote Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_render Mark render assets as modified when removed from the asset server (#18814) 2025-04-14 22:45:49 +02:00
bevy_scene Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_sprite Make sure the mesh actually exists before we try to specialize. (#18836) 2025-04-14 22:45:49 +02:00
bevy_state Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_tasks Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_text Revert "Allow partial support for bevy_log in no_std (#18782)" (#18816) 2025-04-14 23:41:29 +02:00
bevy_time Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_transform Revert "Allow partial support for bevy_log in no_std (#18782)" (#18816) 2025-04-14 23:41:29 +02:00
bevy_ui Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_utils Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_window Rename bevy_platform_support to bevy_platform (#18813) 2025-04-14 22:45:27 +02:00
bevy_winit Revert "Allow partial support for bevy_log in no_std (#18782)" (#18816) 2025-04-14 23:41:29 +02:00