diff options
-rw-r--r-- | mozilla-1672139.patch | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/mozilla-1672139.patch b/mozilla-1672139.patch new file mode 100644 index 0000000..efd40cb --- /dev/null +++ b/mozilla-1672139.patch @@ -0,0 +1,91 @@ +diff --git a/gfx/layers/ipc/CompositorBridgeParent.cpp b/gfx/layers/ipc/CompositorBridgeParent.cpp +--- a/gfx/layers/ipc/CompositorBridgeParent.cpp ++++ b/gfx/layers/ipc/CompositorBridgeParent.cpp +@@ -2376,30 +2376,28 @@ + if (mWrBridge->PipelineId() == aPipelineId) { + mWrBridge->RemoveEpochDataPriorTo(aEpoch); + +- if (!mPaused) { +- if (mIsForcedFirstPaint) { +- uiController->NotifyFirstPaint(); +- mIsForcedFirstPaint = false; +- } +- +- std::pair<wr::PipelineId, wr::Epoch> key(aPipelineId, aEpoch); +- nsTArray<CompositionPayload> payload = +- mWrBridge->TakePendingScrollPayload(key); +- if (!payload.IsEmpty()) { +- RecordCompositionPayloadsPresented(payload); +- } +- +- TransactionId transactionId = mWrBridge->FlushTransactionIdsForEpoch( +- aEpoch, aCompositeStartId, aCompositeStart, aRenderStart, +- aCompositeEnd, uiController); +- Unused << SendDidComposite(LayersId{0}, transactionId, aCompositeStart, +- aCompositeEnd); +- +- nsTArray<ImageCompositeNotificationInfo> notifications; +- mWrBridge->ExtractImageCompositeNotifications(¬ifications); +- if (!notifications.IsEmpty()) { +- Unused << ImageBridgeParent::NotifyImageComposites(notifications); +- } ++ if (mIsForcedFirstPaint) { ++ uiController->NotifyFirstPaint(); ++ mIsForcedFirstPaint = false; ++ } ++ ++ std::pair<wr::PipelineId, wr::Epoch> key(aPipelineId, aEpoch); ++ nsTArray<CompositionPayload> payload = ++ mWrBridge->TakePendingScrollPayload(key); ++ if (!payload.IsEmpty()) { ++ RecordCompositionPayloadsPresented(payload); ++ } ++ ++ TransactionId transactionId = mWrBridge->FlushTransactionIdsForEpoch( ++ aEpoch, aCompositeStartId, aCompositeStart, aRenderStart, aCompositeEnd, ++ uiController); ++ Unused << SendDidComposite(LayersId{0}, transactionId, aCompositeStart, ++ aCompositeEnd); ++ ++ nsTArray<ImageCompositeNotificationInfo> notifications; ++ mWrBridge->ExtractImageCompositeNotifications(¬ifications); ++ if (!notifications.IsEmpty()) { ++ Unused << ImageBridgeParent::NotifyImageComposites(notifications); + } + return; + } +@@ -2408,21 +2406,19 @@ + if (wrBridge && wrBridge->GetCompositorBridge()) { + MOZ_ASSERT(!wrBridge->IsRootWebRenderBridgeParent()); + wrBridge->RemoveEpochDataPriorTo(aEpoch); +- if (!mPaused) { +- std::pair<wr::PipelineId, wr::Epoch> key(aPipelineId, aEpoch); +- nsTArray<CompositionPayload> payload = +- wrBridge->TakePendingScrollPayload(key); +- if (!payload.IsEmpty()) { +- RecordCompositionPayloadsPresented(payload); +- } +- +- TransactionId transactionId = wrBridge->FlushTransactionIdsForEpoch( +- aEpoch, aCompositeStartId, aCompositeStart, aRenderStart, +- aCompositeEnd, uiController, aStats, &stats); +- Unused << wrBridge->GetCompositorBridge()->SendDidComposite( +- wrBridge->GetLayersId(), transactionId, aCompositeStart, +- aCompositeEnd); ++ ++ std::pair<wr::PipelineId, wr::Epoch> key(aPipelineId, aEpoch); ++ nsTArray<CompositionPayload> payload = ++ wrBridge->TakePendingScrollPayload(key); ++ if (!payload.IsEmpty()) { ++ RecordCompositionPayloadsPresented(payload); + } ++ ++ TransactionId transactionId = wrBridge->FlushTransactionIdsForEpoch( ++ aEpoch, aCompositeStartId, aCompositeStart, aRenderStart, aCompositeEnd, ++ uiController, aStats, &stats); ++ Unused << wrBridge->GetCompositorBridge()->SendDidComposite( ++ wrBridge->GetLayersId(), transactionId, aCompositeStart, aCompositeEnd); + } + + if (!stats.IsEmpty()) { + |