Bug 1636038 - Only rebuild the scene if the a displaylist or root pipeline was updated. r=gw

This reverts to the behavior before https://phabricator.services.mozilla.com/D71781 which introduced a talos regression.

Differential Revision: https://phabricator.services.mozilla.com/D74228
This commit is contained in:
Nicolas Silva 2020-05-07 19:43:07 +00:00
Родитель 68dab10ed9
Коммит 96e70c7f92
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -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) => {