From 8b972d1dc6731c96480d67a4c7a2269a132376d1 Mon Sep 17 00:00:00 2001 From: sotaro Date: Thu, 22 Nov 2018 17:24:50 +0900 Subject: [PATCH] Bug 1508526 - Remove unnecessary ScheduleGenerateFrame() call in WebRenderBridgeParent::RecvUpdateResources() r=aosmond --- gfx/layers/ipc/PWebRenderBridge.ipdl | 2 +- gfx/layers/wr/WebRenderBridgeChild.cpp | 5 ++--- gfx/layers/wr/WebRenderBridgeChild.h | 3 +-- gfx/layers/wr/WebRenderBridgeParent.cpp | 8 +------- gfx/layers/wr/WebRenderBridgeParent.h | 3 +-- gfx/layers/wr/WebRenderLayerManager.cpp | 6 ++---- 6 files changed, 8 insertions(+), 19 deletions(-) diff --git a/gfx/layers/ipc/PWebRenderBridge.ipdl b/gfx/layers/ipc/PWebRenderBridge.ipdl index 19c1fada4a6c..458780a7cd71 100644 --- a/gfx/layers/ipc/PWebRenderBridge.ipdl +++ b/gfx/layers/ipc/PWebRenderBridge.ipdl @@ -54,7 +54,7 @@ parent: OpUpdateResource[] aResourceUpdates, RefCountedShmem[] aSmallShmems, Shmem[] aLargeShmems, IdNamespace aIdNamespace, TimeStamp refreshStartTime, TimeStamp txnStartTime, nsCString txnURL, TimeStamp fwdTime); async SetFocusTarget(FocusTarget focusTarget); - async UpdateResources(OpUpdateResource[] aResourceUpdates, RefCountedShmem[] aSmallShmems, Shmem[] aLargeShmems, bool scheduleComposite); + async UpdateResources(OpUpdateResource[] aResourceUpdates, RefCountedShmem[] aSmallShmems, Shmem[] aLargeShmems); async ParentCommands(WebRenderParentCommand[] commands); sync GetSnapshot(PTexture texture); async SetLayersObserverEpoch(LayersObserverEpoch childEpoch); diff --git a/gfx/layers/wr/WebRenderBridgeChild.cpp b/gfx/layers/wr/WebRenderBridgeChild.cpp index 76de707f589c..72ca399b0fe8 100644 --- a/gfx/layers/wr/WebRenderBridgeChild.cpp +++ b/gfx/layers/wr/WebRenderBridgeChild.cpp @@ -96,8 +96,7 @@ WebRenderBridgeChild::BeginTransaction() } void -WebRenderBridgeChild::UpdateResources(wr::IpcResourceUpdateQueue& aResources, - bool aScheduleComposite /* = false */) +WebRenderBridgeChild::UpdateResources(wr::IpcResourceUpdateQueue& aResources) { if (!IPCOpen()) { aResources.Clear(); @@ -114,7 +113,7 @@ WebRenderBridgeChild::UpdateResources(wr::IpcResourceUpdateQueue& aResources, aResources.Flush(resourceUpdates, smallShmems, largeShmems); this->SendUpdateResources(resourceUpdates, smallShmems, - largeShmems, aScheduleComposite); + largeShmems); } void diff --git a/gfx/layers/wr/WebRenderBridgeChild.h b/gfx/layers/wr/WebRenderBridgeChild.h index 5074a3f52ab1..3e3fb1a92b17 100644 --- a/gfx/layers/wr/WebRenderBridgeChild.h +++ b/gfx/layers/wr/WebRenderBridgeChild.h @@ -66,8 +66,7 @@ public: void AddWebRenderParentCommand(const WebRenderParentCommand& aCmd); - void UpdateResources(wr::IpcResourceUpdateQueue& aResources, - bool aScheduleComposite = false); + void UpdateResources(wr::IpcResourceUpdateQueue& aResources); void BeginTransaction(); void EndTransaction(const wr::LayoutSize& aContentSize, wr::BuiltDisplayList& dl, diff --git a/gfx/layers/wr/WebRenderBridgeParent.cpp b/gfx/layers/wr/WebRenderBridgeParent.cpp index 94c48f2d4fc9..300574ba99a5 100644 --- a/gfx/layers/wr/WebRenderBridgeParent.cpp +++ b/gfx/layers/wr/WebRenderBridgeParent.cpp @@ -749,8 +749,7 @@ WebRenderBridgeParent::ObserveSharedSurfaceRelease(const nsTArray&& aResourceUpdates, nsTArray&& aSmallShmems, - nsTArray&& aLargeShmems, - const bool& aScheduleComposite) + nsTArray&& aLargeShmems) { if (mDestroyed) { wr::IpcResourceUpdateQueue::ReleaseShmems(this, aSmallShmems); @@ -770,11 +769,6 @@ WebRenderBridgeParent::RecvUpdateResources(nsTArray&& aResourc return IPC_FAIL(this, "Invalid WebRender resource data shmem or address."); } - if (aScheduleComposite) { - txn.InvalidateRenderedFrame(); - ScheduleGenerateFrame(); - } - mApi->SendTransaction(txn); return IPC_OK(); diff --git a/gfx/layers/wr/WebRenderBridgeParent.h b/gfx/layers/wr/WebRenderBridgeParent.h index dffc04c5addc..fc72c300be91 100644 --- a/gfx/layers/wr/WebRenderBridgeParent.h +++ b/gfx/layers/wr/WebRenderBridgeParent.h @@ -80,8 +80,7 @@ public: mozilla::ipc::IPCResult RecvDeleteCompositorAnimations(InfallibleTArray&& aIds) override; mozilla::ipc::IPCResult RecvUpdateResources(nsTArray&& aUpdates, nsTArray&& aSmallShmems, - nsTArray&& aLargeShmems, - const bool& aScheduleComposite) override; + nsTArray&& aLargeShmems) override; mozilla::ipc::IPCResult RecvSetDisplayList(const gfx::IntSize& aSize, InfallibleTArray&& aCommands, InfallibleTArray&& aToDestroy, diff --git a/gfx/layers/wr/WebRenderLayerManager.cpp b/gfx/layers/wr/WebRenderLayerManager.cpp index dd574a548b1d..37a42e1103e2 100644 --- a/gfx/layers/wr/WebRenderLayerManager.cpp +++ b/gfx/layers/wr/WebRenderLayerManager.cpp @@ -364,8 +364,7 @@ WebRenderLayerManager::EndTransactionWithoutLayer(nsDisplayList* aDisplayList, // If we can't just swap the queue, we need to take the slow path and // send the update as a separate message. We don't need to schedule a // composite however because that will happen with EndTransaction. - WrBridge()->UpdateResources(mAsyncResourceUpdates.ref(), - /* aScheduleComposite */ false); + WrBridge()->UpdateResources(mAsyncResourceUpdates.ref()); } mAsyncResourceUpdates.reset(); } @@ -761,8 +760,7 @@ WebRenderLayerManager::FlushAsyncResourceUpdates() } if (!IsDestroyed() && WrBridge()) { - WrBridge()->UpdateResources(mAsyncResourceUpdates.ref(), - /* aScheduleComposite */ true); + WrBridge()->UpdateResources(mAsyncResourceUpdates.ref()); } mAsyncResourceUpdates.reset();