From 01fc3c3e7d7be5834de0d84e3de60584be92e7d3 Mon Sep 17 00:00:00 2001 From: Alejandro Alonso Date: Thu, 18 Jun 2026 18:33:10 +0200 Subject: [PATCH] :bug: Defer tile atlas composition to full frames only --- render-wasm/src/render.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/render-wasm/src/render.rs b/render-wasm/src/render.rs index f463e46240..950677fa70 100644 --- a/render-wasm/src/render.rs +++ b/render-wasm/src/render.rs @@ -2298,7 +2298,10 @@ impl RenderState { let frame_type = self.render_shape_tree_partial(base_object, tree, timestamp, allow_stop)?; - if !self.options.is_interactive_transform() { + // `draw_atlas` needs a snapshot of the tile atlas. Partial frames are not + // presented (only flushed), so defer composition to the final frame and + // avoid re-snapshotting up to 4096² on every rAF during async tile work. + if !self.options.is_interactive_transform() && matches!(frame_type, FrameType::Full) { self.surfaces.draw_tile_atlas_to_backbuffer( &self.viewbox, &self.tile_viewbox,