From 66fc6ae7116c4a77441c60b2be21dca8452bc69c Mon Sep 17 00:00:00 2001 From: PJB3005 Date: Thu, 2 Jul 2026 22:11:26 +0200 Subject: [PATCH 1/2] Give render thread an explicit name Makes it show up nicer in tools like Tracy --- crates/bevy_render/src/pipelined_rendering.rs | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/crates/bevy_render/src/pipelined_rendering.rs b/crates/bevy_render/src/pipelined_rendering.rs index 9806ff45015cd..cf329953c2080 100644 --- a/crates/bevy_render/src/pipelined_rendering.rs +++ b/crates/bevy_render/src/pipelined_rendering.rs @@ -146,36 +146,39 @@ impl Plugin for PipelinedRenderingPlugin { render_to_app_receiver, )); - std::thread::spawn(move || { - #[cfg(feature = "trace")] - let _span = bevy_log::info_span!("render thread").entered(); - - let compute_task_pool = ComputeTaskPool::get(); - loop { - // run a scope here to allow main world to use this thread while it's waiting for the render app - let sent_app = compute_task_pool - .scope(|s| { - s.spawn(async { app_to_render_receiver.recv().await }); - }) - .pop(); - let Some(Ok(mut render_app)) = sent_app else { - break; - }; - - { - #[cfg(feature = "trace")] - let _sub_app_span = - bevy_log::info_span!("sub app", name = ?RenderApp).entered(); - render_app.update(); + std::thread::Builder::new() + .name("render thread".into()) + .spawn(move || { + #[cfg(feature = "trace")] + let _span = bevy_log::info_span!("render thread").entered(); + + let compute_task_pool = ComputeTaskPool::get(); + loop { + // run a scope here to allow main world to use this thread while it's waiting for the render app + let sent_app = compute_task_pool + .scope(|s| { + s.spawn(async { app_to_render_receiver.recv().await }); + }) + .pop(); + let Some(Ok(mut render_app)) = sent_app else { + break; + }; + + { + #[cfg(feature = "trace")] + let _sub_app_span = + bevy_log::info_span!("sub app", name = ?RenderApp).entered(); + render_app.update(); + } + + if render_to_app_sender.send_blocking(render_app).is_err() { + break; + } } - if render_to_app_sender.send_blocking(render_app).is_err() { - break; - } - } - - bevy_log::debug!("exiting pipelined rendering thread"); - }); + bevy_log::debug!("exiting pipelined rendering thread"); + }) + .expect("Failed to create render thread"); } } From 3b5cbcf58885c774b3ea1fb9180feb8eac163dbb Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Thu, 2 Jul 2026 22:31:54 +0200 Subject: [PATCH 2/2] Update crates/bevy_render/src/pipelined_rendering.rs Co-authored-by: IceSentry --- crates/bevy_render/src/pipelined_rendering.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/bevy_render/src/pipelined_rendering.rs b/crates/bevy_render/src/pipelined_rendering.rs index cf329953c2080..d643e48f93d2f 100644 --- a/crates/bevy_render/src/pipelined_rendering.rs +++ b/crates/bevy_render/src/pipelined_rendering.rs @@ -147,7 +147,7 @@ impl Plugin for PipelinedRenderingPlugin { )); std::thread::Builder::new() - .name("render thread".into()) + .name("Render thread".into()) .spawn(move || { #[cfg(feature = "trace")] let _span = bevy_log::info_span!("render thread").entered();