diff --git a/gfx/wr/webrender/src/scene_builder_thread.rs b/gfx/wr/webrender/src/scene_builder_thread.rs index e1a45f37da69..3adf4a27d34a 100644 --- a/gfx/wr/webrender/src/scene_builder_thread.rs +++ b/gfx/wr/webrender/src/scene_builder_thread.rs @@ -607,7 +607,7 @@ impl SceneBuilderThread { let mut discard_frame_state_for_pipelines = Vec::new(); let mut removed_pipelines = Vec::new(); - let rebuild_scene = !txn.scene_ops.is_empty(); + let mut rebuild_scene = false; for message in txn.scene_ops.drain(..) { match message { SceneMsg::UpdateEpoch(pipeline_id, epoch) => { @@ -633,6 +633,7 @@ impl SceneBuilderThread { list_data, preserve_frame_state, } => { + rebuild_scene = true; let built_display_list = BuiltDisplayList::from_data(list_data, list_descriptor); let display_list_len = built_display_list.data().len(); @@ -668,6 +669,7 @@ impl SceneBuilderThread { } } SceneMsg::SetRootPipeline(pipeline_id) => { + rebuild_scene = true; scene.set_root_pipeline_id(pipeline_id); } SceneMsg::RemovePipeline(pipeline_id) => {