diff --git a/crates/bevy_render/src/view/mod.rs b/crates/bevy_render/src/view/mod.rs index d4392c8e7c6ff..bcb144b1f9885 100644 --- a/crates/bevy_render/src/view/mod.rs +++ b/crates/bevy_render/src/view/mod.rs @@ -121,6 +121,10 @@ impl Plugin for ViewPlugin { render_app.add_systems( Render, ( + // `TextureView`s need to be dropped before reconfiguring window surfaces. + clear_view_attachments + .in_set(RenderSet::ManageViews) + .before(create_surfaces), prepare_view_attachments .in_set(RenderSet::ManageViews) .before(prepare_view_targets) @@ -817,7 +821,6 @@ pub fn prepare_view_attachments( cameras: Query<&ExtractedCamera>, mut view_target_attachments: ResMut, ) { - view_target_attachments.clear(); for camera in cameras.iter() { let Some(target) = &camera.target else { continue; @@ -842,6 +845,11 @@ pub fn prepare_view_attachments( } } +/// Clears the view target [`OutputColorAttachment`]s. +pub fn clear_view_attachments(mut view_target_attachments: ResMut) { + view_target_attachments.clear(); +} + pub fn prepare_view_targets( mut commands: Commands, clear_color_global: Res,