Bug 1453360 - Rename NotifyDidCompositeToPipeline to NotifyPipelineRendered. r?nical
This also rearranges the method implementation slightly to make the next
patch easier to read. This patch should have zero functional changes,
it's just refactoring.
MozReview-Commit-ID: 53StJ0TH3IT
--- a/gfx/layers/ipc/CompositorBridgeParent.cpp
+++ b/gfx/layers/ipc/CompositorBridgeParent.cpp
@@ -2097,47 +2097,55 @@ void
CompositorBridgeParent::NotifyPipelineRemoved(const wr::PipelineId& aPipelineId)
{
if (mAsyncImageManager) {
mAsyncImageManager->PipelineRemoved(aPipelineId);
}
}
void
-CompositorBridgeParent::NotifyDidCompositeToPipeline(const wr::PipelineId& aPipelineId, const wr::Epoch& aEpoch, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd)
+CompositorBridgeParent::NotifyPipelineRendered(const wr::PipelineId& aPipelineId,
+ const wr::Epoch& aEpoch,
+ TimeStamp& aCompositeStart,
+ TimeStamp& aCompositeEnd)
{
- if (!mWrBridge || !mAsyncImageManager) {
- return;
+ if (mAsyncImageManager) {
+ mAsyncImageManager->PipelineRendered(aPipelineId, aEpoch);
}
- mAsyncImageManager->PipelineRendered(aPipelineId, aEpoch);
- if (mPaused) {
+ if (!mWrBridge) {
return;
}
if (mWrBridge->PipelineId() == aPipelineId) {
- TransactionId transactionId = mWrBridge->FlushTransactionIdsForEpoch(aEpoch, aCompositeEnd);
- Unused << SendDidComposite(LayersId{0}, transactionId, aCompositeStart, aCompositeEnd);
+
+ if (!mPaused) {
+ TransactionId transactionId = mWrBridge->FlushTransactionIdsForEpoch(aEpoch, aCompositeEnd);
+ Unused << SendDidComposite(LayersId{0}, transactionId, aCompositeStart, aCompositeEnd);
- nsTArray<ImageCompositeNotificationInfo> notifications;
- mWrBridge->ExtractImageCompositeNotifications(¬ifications);
- if (!notifications.IsEmpty()) {
- Unused << ImageBridgeParent::NotifyImageComposites(notifications);
+ nsTArray<ImageCompositeNotificationInfo> notifications;
+ mWrBridge->ExtractImageCompositeNotifications(¬ifications);
+ if (!notifications.IsEmpty()) {
+ Unused << ImageBridgeParent::NotifyImageComposites(notifications);
+ }
}
return;
}
MonitorAutoLock lock(*sIndirectLayerTreesLock);
ForEachIndirectLayerTree([&] (LayerTreeState* lts, const LayersId& aLayersId) -> void {
if (lts->mCrossProcessParent &&
lts->mWrBridge &&
lts->mWrBridge->PipelineId() == aPipelineId) {
- CrossProcessCompositorBridgeParent* cpcp = lts->mCrossProcessParent;
- TransactionId transactionId = lts->mWrBridge->FlushTransactionIdsForEpoch(aEpoch, aCompositeEnd);
- Unused << cpcp->SendDidComposite(aLayersId, transactionId, aCompositeStart, aCompositeEnd);
+
+ if (!mPaused) {
+ CrossProcessCompositorBridgeParent* cpcp = lts->mCrossProcessParent;
+ TransactionId transactionId = lts->mWrBridge->FlushTransactionIdsForEpoch(aEpoch, aCompositeEnd);
+ Unused << cpcp->SendDidComposite(aLayersId, transactionId, aCompositeStart, aCompositeEnd);
+ }
}
});
}
void
CompositorBridgeParent::NotifyDidComposite(TransactionId aTransactionId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd)
{
Unused << SendDidComposite(LayersId{0}, aTransactionId, aCompositeStart, aCompositeEnd);
--- a/gfx/layers/ipc/CompositorBridgeParent.h
+++ b/gfx/layers/ipc/CompositorBridgeParent.h
@@ -135,20 +135,20 @@ public:
mozilla::ipc::IPCResult RecvSyncWithCompositor() override { return IPC_OK(); }
mozilla::ipc::IPCResult Recv__delete__() override { return IPC_OK(); }
virtual void ObserveLayerUpdate(LayersId aLayersId, uint64_t aEpoch, bool aActive) = 0;
virtual void DidComposite(LayersId aId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd) {}
- virtual void NotifyDidCompositeToPipeline(const wr::PipelineId& aPipelineId,
- const wr::Epoch& aEpoch,
- TimeStamp& aCompositeStart,
- TimeStamp& aCompositeEnd) { MOZ_ASSERT_UNREACHABLE("WebRender only"); }
+ virtual void NotifyPipelineRendered(const wr::PipelineId& aPipelineId,
+ const wr::Epoch& aEpoch,
+ TimeStamp& aCompositeStart,
+ TimeStamp& aCompositeEnd) { MOZ_ASSERT_UNREACHABLE("WebRender only"); }
virtual void NotifyPipelineRemoved(const wr::PipelineId& aPipelineId) { MOZ_ASSERT_UNREACHABLE("WebRender only"); }
// HostIPCAllocator
base::ProcessId GetChildProcessId() override;
void NotifyNotUsed(PTextureParent* aTexture, uint64_t aTransactionId) override;
void SendAsyncMessage(const InfallibleTArray<AsyncParentMessageData>& aMessage) override;
// ShmemAllocator
@@ -575,20 +575,20 @@ protected:
* Return true if current state allows compositing, that is
* finishing a layers transaction.
*/
bool CanComposite();
using CompositorBridgeParentBase::DidComposite;
void DidComposite(TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd);
- void NotifyDidCompositeToPipeline(const wr::PipelineId& aPipelineId,
- const wr::Epoch& aEpoch,
- TimeStamp& aCompositeStart,
- TimeStamp& aCompositeEnd) override;
+ void NotifyPipelineRendered(const wr::PipelineId& aPipelineId,
+ const wr::Epoch& aEpoch,
+ TimeStamp& aCompositeStart,
+ TimeStamp& aCompositeEnd) override;
void NotifyPipelineRemoved(const wr::PipelineId& aPipelineId) override;
void NotifyDidComposite(TransactionId aTransactionId, TimeStamp& aCompositeStart, TimeStamp& aCompositeEnd);
// The indirect layer tree lock must be held before calling this function.
// Callback should take (LayerTreeState* aState, const LayersId& aLayersId)
template <typename Lambda>
inline void ForEachIndirectLayerTree(const Lambda& aCallback);
--- a/gfx/webrender_bindings/RenderThread.cpp
+++ b/gfx/webrender_bindings/RenderThread.cpp
@@ -242,17 +242,17 @@ RenderThread::RunEvent(wr::WindowId aWin
static void
NotifyDidRender(layers::CompositorBridgeParentBase* aBridge,
wr::WrPipelineInfo aInfo,
TimeStamp aStart,
TimeStamp aEnd)
{
for (uintptr_t i = 0; i < aInfo.epochs.length; i++) {
- aBridge->NotifyDidCompositeToPipeline(
+ aBridge->NotifyPipelineRendered(
aInfo.epochs.data[i].pipeline_id,
aInfo.epochs.data[i].epoch,
aStart,
aEnd);
}
for (uintptr_t i = 0; i < aInfo.removed_pipelines.length; i++) {
aBridge->NotifyPipelineRemoved(aInfo.removed_pipelines.data[i]);
}