From 22456cd52b7f4b359cba037ab0f2856f90fd7981 Mon Sep 17 00:00:00 2001 From: Kartikaya Gupta Date: Sat, 28 Jul 2018 04:47:08 -0400 Subject: [PATCH] Bug 1479075 - Ensure FlushRenderingAsync actually flushes the compositor. r=sotaro MozReview-Commit-ID: AfVIwLj2YJp --HG-- extra : rebase_source : 3c9f4af10be9ab38fb708a2be4cb9393cd7e86c7 --- gfx/layers/ipc/CompositorBridgeParent.cpp | 2 +- gfx/layers/wr/WebRenderBridgeParent.cpp | 14 +++----------- gfx/layers/wr/WebRenderBridgeParent.h | 3 +-- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/gfx/layers/ipc/CompositorBridgeParent.cpp b/gfx/layers/ipc/CompositorBridgeParent.cpp index f88050e0322d..8880112a17c3 100644 --- a/gfx/layers/ipc/CompositorBridgeParent.cpp +++ b/gfx/layers/ipc/CompositorBridgeParent.cpp @@ -616,7 +616,7 @@ mozilla::ipc::IPCResult CompositorBridgeParent::RecvFlushRenderingAsync() { if (mWrBridge) { - mWrBridge->FlushRenderingAsync(); + mWrBridge->FlushRendering(false); return IPC_OK(); } diff --git a/gfx/layers/wr/WebRenderBridgeParent.cpp b/gfx/layers/wr/WebRenderBridgeParent.cpp index e193f83aee23..84b058f60488 100644 --- a/gfx/layers/wr/WebRenderBridgeParent.cpp +++ b/gfx/layers/wr/WebRenderBridgeParent.cpp @@ -1667,7 +1667,7 @@ WebRenderBridgeParent::ScheduleGenerateFrame() } void -WebRenderBridgeParent::FlushRendering() +WebRenderBridgeParent::FlushRendering(bool aWaitForPresent) { if (mDestroyed) { return; @@ -1677,17 +1677,9 @@ WebRenderBridgeParent::FlushRendering() // scene (which has the display list at the new window size). FlushSceneBuilds(); FlushFrameGeneration(); - FlushFramePresentation(); -} - -void -WebRenderBridgeParent::FlushRenderingAsync() -{ - if (mDestroyed) { - return; + if (aWaitForPresent) { + FlushFramePresentation(); } - - mCompositorScheduler->FlushPendingComposite(); } void diff --git a/gfx/layers/wr/WebRenderBridgeParent.h b/gfx/layers/wr/WebRenderBridgeParent.h index d96749784af4..4789deb5b35e 100644 --- a/gfx/layers/wr/WebRenderBridgeParent.h +++ b/gfx/layers/wr/WebRenderBridgeParent.h @@ -168,8 +168,7 @@ public: return mIdNamespace; } - void FlushRendering(); - void FlushRenderingAsync(); + void FlushRendering(bool aWaitForPresent = true); /** * Schedule generating WebRender frame definitely at next composite timing.