bevy/release-content/migration-guides
andriyDev 2c6cf9a597
Run RenderStartup in/before extract instead of after it. (#19926)
# Objective

- Fixes #19910.

## Solution

- First, allow extraction function to be FnMut instead of Fn. FnMut is a
superset of Fn anyway, and we only ever call this function once at a
time (we would never call this in parallel for different pairs of worlds
or something).
- Run the `RenderStartup` schedule in the extract function with a flag
to only do it once.
- Remove all the `MainRender` stuff.

One sad part here is that now the `RenderStartup` blocks extraction. So
for pipelined rendering, our simulation will be blocked on the first
frame while we set up all the rendering resources. I don't see this as a
big loss though since A) that is fundamentally what we want here -
extraction **has to** run after `RenderStartup`, and the only way to do
better is to somehow run `RenderStartup` in parallel with the first
simulation frame, and B) without `RenderStartup` the **entire** app was
blocked on initializing render resources during Plugin construction - so
we're not really losing anything here.

## Testing

- I ran the `custom_post_processing` example (which was ported to use
`RenderStartup` in #19886) and it still works.
2025-07-07 01:31:40 +00:00
..
.gitkeep
anchor_is_removed_from_sprite.md
animation_graph_no_more_asset_ids.md Prevent AnimationGraph from serializing AssetIds. (#19615) 2025-06-30 22:26:05 +00:00
bevy_render_reorganization.md Split bevy_camera out of bevy_render (#19949) 2025-07-04 23:31:16 +00:00
bevy_ui_render_crate.md bevy_ui_render crate (#18703) 2025-07-03 23:36:35 +00:00
camera_restructure.md
check_change_ticks.md System::check_change_tick and similar methods take CheckChangeTicks (#19600) 2025-06-13 19:24:27 +00:00
component_entry.md Rename bevy_ecs::world::Entry to ComponentEntry (#19517) 2025-06-10 01:12:40 +00:00
component-lifecycle-module.md Rename Trigger to On (#19596) 2025-06-12 18:22:33 +00:00
composable_specialization.md Composable Pipeline Specialization (#17373) 2025-07-01 01:32:44 +00:00
compressed-image-saver.md add forgotten migration guide (#19800) 2025-06-24 11:19:20 +00:00
convert-coordinates.md Nudge users into migrating to new default glTF coordinate conversion (#19816) 2025-06-28 18:35:41 +00:00
dragenter_includes_dragged_entity.md
entities_apis.md
entity_cloner_builder_split.md Split EntityClonerBuilder in OptOut and OptIn variants (#19649) 2025-06-24 00:12:08 +00:00
entity_representation.md Fix new typos (#19562) 2025-06-09 22:55:14 +00:00
event_split.md Event Split: Event, EntityEvent, and BufferedEvent (#19647) 2025-06-15 16:46:34 +00:00
extract_fn_is_mut.md Run RenderStartup in/before extract instead of after it. (#19926) 2025-07-07 01:31:40 +00:00
fullscreen_shader_resource.md Replace FULLSCREEN_SHADER_HANDLE with a FullscreenShader resource. (#19426) 2025-06-24 00:02:23 +00:00
generic-option-parameter.md
handle_weak_replaced_with_handle_uuid.md Replace Handle::Weak with Handle::Uuid. (#19896) 2025-07-02 14:40:35 +00:00
interned-labels-cleanup.md
labeled_asset_scope_errors.md
LightVisibilityClass_rename.md Rename light visibility class (#19986) 2025-07-06 19:04:30 +00:00
log-diagnostics-hash-set.md
map_set_apply.md Fix PartialReflect::apply for maps, remove get_at/_mut from Map trait (#19802) 2025-06-25 15:42:01 +00:00
merge_observerState_observer_single_component.md
Newtype_ScrollPosition.md Newtyped ScrollPosition (#19881) 2025-07-01 17:41:48 +00:00
observer_triggers.md Rename Trigger to On (#19596) 2025-06-12 18:22:33 +00:00
observers_may_not_be_exclusive.md
overflowclipbox_default_is_now_paddingbox.md
per-world-error-handler.md
picking_location_not_component.md
pointer_target.md Provide access to the original target of entity-events in observers (#19663) 2025-06-15 20:53:25 +00:00
query_items_borrow_from_query_state.md Remove 's lifetime from WorldQuery::Fetch (#19720) 2025-06-19 00:58:21 +00:00
reflect_asset_asset_ids.md Replace UntypedHandle from ReflectAsset with impl Into<UntypedAssetId>. (#19606) 2025-06-15 16:42:54 +00:00
relationship_set_risky.md EntityWorldMut methods do not automatically overwrite Relationship components (#19601) 2025-06-22 00:22:05 +00:00
relative_cursor_position_is_object_centered.md Fix some typos (#19788) 2025-06-23 22:32:46 +00:00
remove_archetype_component_id.md
remove_archetypecomponentid.md
remove_bundle_register_required_components.md Remove Bundle::register_required_components (#19967) 2025-07-06 18:15:28 +00:00
remove_cosmic_text_reexports.md Remove re-exports of cosmic_text types (#19516) 2025-06-06 21:49:02 +00:00
remove_deprecated_batch_spawning.md Fix new typos (#19562) 2025-06-09 22:55:14 +00:00
remove_the_add_sub_impls_on_volume.md fix: Ensure linear volume subtraction does not go below zero (#19423) 2025-06-05 03:59:20 +00:00
rename_condition.md
rename_pointer_events.md Rename some pointer events and components (#19574) 2025-06-10 21:57:28 +00:00
rename_spawn_gltf_material_name.md
rename_state_scoped.md
rename_timer_paused_and_finished.md
rename_transform_compute_matrix.md rename Transform::compute_matrix to to_matrix (#19646) 2025-06-18 05:37:25 +00:00
rename-justifytext.md Rename JustifyText to Justify (#19522) 2025-06-09 19:59:48 +00:00
render_graph_app_to_ext.md Allow calling add_render_graph_node on World. (#19912) 2025-07-02 14:56:18 +00:00
replace_non_send_resources.md Make GILRS and WINIT_WINDOWS public (#19575) 2025-06-12 20:05:00 +00:00
scalar-field-on-vector-space.md Improve Bevy's double-precision story for third-party crates (#19194) 2025-06-08 02:02:47 +00:00
schedule_slotmaps.md Use SlotMaps to store systems and system sets in Schedules (#19352) 2025-07-03 18:50:54 +00:00
separate-border-colors.md
simple_executor_going_away.md
specialized_ui_transform.md Specialized UI transform (#16615) 2025-06-09 19:05:49 +00:00
split-window.md Split CursorOptions off of Window (#19668) 2025-06-17 20:20:13 +00:00
stack_z_offsets_changes.md UI z-ordering fix (#19691) 2025-07-01 19:20:07 +00:00
state_scoped_entities_by_default.md
stop_storing_system_access.md Stop storing access for all systems (#19477) 2025-06-13 17:56:09 +00:00
sync_cell_utils.md
system_run_returns_result.md Have System::run_unsafe return Result. (#19145) 2025-07-03 21:48:09 +00:00
system_set_naming_convention.md
taa_non_experimental.md
textshadow_is_moved_to_widget_text_module.md Move TextShadow to text widget module (#19579) 2025-06-29 17:37:04 +00:00
unified_system_state_flag.md Unify system state (#19506) 2025-06-08 18:18:43 +00:00
wgpu_25.md Ugrade to wgpu version 25.0 (#19563) 2025-06-26 19:41:47 +00:00
zstd.md add native zstd support (#19793) 2025-06-26 20:53:54 +00:00