From d748ea442732f70c490bab18cb18f747dcbe7e62 Mon Sep 17 00:00:00 2001 From: Jan Hohenheim Date: Tue, 8 Jul 2025 00:19:00 +0200 Subject: [PATCH] Move renderer initialization to PreStartup --- crates/bevy_render/src/lib.rs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/crates/bevy_render/src/lib.rs b/crates/bevy_render/src/lib.rs index 69d732c316..27174e7dab 100644 --- a/crates/bevy_render/src/lib.rs +++ b/crates/bevy_render/src/lib.rs @@ -116,7 +116,7 @@ use crate::{ view::{ViewPlugin, WindowRenderPlugin}, }; use alloc::sync::Arc; -use bevy_app::{App, AppLabel, Plugin, SubApp}; +use bevy_app::{App, AppLabel, Plugin, PreStartup, SubApp}; use bevy_asset::{AssetApp, AssetServer}; use bevy_ecs::{prelude::*, schedule::ScheduleLabel}; use bevy_utils::WgpuWrapper; @@ -348,7 +348,9 @@ impl Plugin for RenderPlugin { let future_render_resources_wrapper = Arc::new(Mutex::new(None)); app.insert_resource(FutureRenderResources( future_render_resources_wrapper.clone(), - )); + )) + .insert_resource(AutomaticRendererCreationSettings(render_creation.clone())) + .add_systems(PreStartup, initialize_renderer); // SAFETY: Plugins should be set up on the main thread. unsafe { initialize_render_app(app) }; @@ -383,13 +385,6 @@ impl Plugin for RenderPlugin { Render, reset_render_asset_bytes_per_frame.in_set(RenderSystems::Cleanup), ); - if let RenderCreation::Automatic(render_creation) = &self.render_creation { - if render_creation.backends.is_some() { - render_app - .insert_resource(AutomaticRendererCreationSettings(render_creation.clone())) - .add_systems(RenderStartup, initialize_renderer); - } - } } app.register_type::()