Skip to content

Commit 206a67d

Browse files
committed
Revert "Bug 1882358 Part 2: Make WebRenderLayerManager track widget size to detect resizes. r=nical"
This reverts commit 3904945.
1 parent 4cca85d commit 206a67d

File tree

2 files changed

+9
-19
lines changed

2 files changed

+9
-19
lines changed

gfx/layers/wr/WebRenderLayerManager.cpp

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ bool WebRenderLayerManager::Initialize(
9797
}
9898

9999
mWrChild = static_cast<WebRenderBridgeChild*>(bridge);
100-
mHasFlushedThisChild = false;
101100

102101
TextureFactoryIdentifier textureFactoryIdentifier;
103102
wr::MaybeIdNamespace idNamespace;
@@ -703,30 +702,24 @@ void WebRenderLayerManager::FlushRendering(wr::RenderReasons aReasons) {
703702
}
704703
MOZ_ASSERT(mWidget);
705704

706-
// If widget bounds size is different from the last flush, consider
707-
// this to be a resize. It's important to use GetClientSize here,
708-
// because that has extra plumbing to support initial display cases
709-
// where the widget doesn't yet have real bounds.
710-
LayoutDeviceIntSize widgetSize = mWidget->GetClientSize();
711-
bool resizing = widgetSize != mFlushWidgetSize;
712-
mFlushWidgetSize = widgetSize;
705+
// If value of IsResizingNativeWidget() is nothing, we assume that resizing
706+
// might happen.
707+
bool resizing = mWidget && mWidget->IsResizingNativeWidget().valueOr(true);
713708

714709
if (resizing) {
715710
aReasons = aReasons | wr::RenderReasons::RESIZE;
716711
}
717712

718-
// Check for the conditions where we we force a sync flush. The first
719-
// flush for this child should always be sync. Resizes should be
720-
// sometimes be sync. Everything else can be async.
721-
if (!mHasFlushedThisChild ||
722-
(resizing && (mWidget->SynchronouslyRepaintOnResize() ||
723-
StaticPrefs::layers_force_synchronous_resize()))) {
713+
// Limit async FlushRendering to !resizing and Win DComp.
714+
// XXX relax the limitation
715+
if (WrBridge()->GetCompositorUseDComp() && !resizing) {
716+
cBridge->SendFlushRenderingAsync(aReasons);
717+
} else if (mWidget->SynchronouslyRepaintOnResize() ||
718+
StaticPrefs::layers_force_synchronous_resize()) {
724719
cBridge->SendFlushRendering(aReasons);
725720
} else {
726721
cBridge->SendFlushRenderingAsync(aReasons);
727722
}
728-
729-
mHasFlushedThisChild = true;
730723
}
731724

732725
void WebRenderLayerManager::WaitOnTransactionProcessed() {

gfx/layers/wr/WebRenderLayerManager.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,6 @@ class WebRenderLayerManager final : public WindowRenderer {
226226
nsIWidget* MOZ_NON_OWNING_REF mWidget;
227227

228228
RefPtr<WebRenderBridgeChild> mWrChild;
229-
bool mHasFlushedThisChild;
230229

231230
RefPtr<TransactionIdAllocator> mTransactionIdAllocator;
232231
TransactionId mLatestTransactionId;
@@ -274,8 +273,6 @@ class WebRenderLayerManager final : public WindowRenderer {
274273
UniquePtr<wr::DisplayListBuilder> mDLBuilder;
275274

276275
ScrollUpdatesMap mPendingScrollUpdates;
277-
278-
LayoutDeviceIntSize mFlushWidgetSize;
279276
};
280277

281278
} // namespace layers

0 commit comments

Comments
 (0)