From b22b633625f0f646da733e5e30f1b053d998fb54 Mon Sep 17 00:00:00 2001 From: Arman Uguray Date: Tue, 12 Dec 2023 13:52:51 -0800 Subject: [PATCH] Fix hot_reload when debug layers are enabled Both blit and debug pipelines need to be recompiled when the engine gets recreated. --- vello/src/lib.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vello/src/lib.rs b/vello/src/lib.rs index 11c5fe588..b1d2a4cd1 100644 --- a/vello/src/lib.rs +++ b/vello/src/lib.rs @@ -462,12 +462,26 @@ impl Renderer { let mut engine = WgpuEngine::new(self.options.use_cpu); // We choose not to initialise these shaders in parallel, to ensure the error scope works correctly let shaders = shaders::full_shaders(device, &mut engine, &self.options)?; + let blit = self + .options + .surface_format + .map(|surface_format| BlitPipeline::new(device, surface_format, &mut engine)); + #[cfg(feature = "debug_layers")] + let debug = self + .options + .surface_format + .map(|format| debug::DebugLayers::new(device, format, &mut engine)); let error = device.pop_error_scope().await; if let Some(error) = error { return Err(error.into()); } self.engine = engine; self.shaders = shaders; + self.blit = blit; + #[cfg(feature = "debug_layers")] + { + self.debug = debug; + } Ok(()) }