summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mozilla-1672139.patch91
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(&notifications);
+- 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(&notifications);
++ 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()) {
+
bgstack15