Closed Bug 1393376 Opened 7 years ago Closed 7 years ago

Handle the filter's invalidation in layers-free mode

Categories

(Core :: Graphics: WebRender, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
mozilla58
Tracking Status
firefox56 --- unaffected
firefox57 --- unaffected
firefox58 --- fixed

People

(Reporter: ethlin, Assigned: kechen)

References

Details

(Whiteboard: [wr-mvp] [gfx-noted])

Attachments

(2 files)

For fallback of nsDisplayFilter, currently we always repaint the whole display list inside the nsDisplayFilter in each transaction. There are two problems here. One is we shouldn't repaint all. The other one is that the 'reftest-wait' mechanism couldn't work without the invalidation info. We should address the two problems in this bug. A related testcase is "layout/reftests/bugs/796847-1.svg".
Whiteboard: [gfx-noted]
Assignee: nobody → kechen
Status: NEW → ASSIGNED
Priority: P3 → P1
Whiteboard: [gfx-noted] → [wr-mvp] [gfx-noted]
Target Milestone: --- → mozilla57
Comment on attachment 8908456 [details] Bug 1393376 - (Part 1) Paint the item when its type is TYPE_FILTER during WebRenderFallbackData generating; https://reviewboard.mozilla.org/r/180102/#review187278 ::: gfx/layers/wr/WebRenderLayerManager.cpp:551 (Diff revision 2) > PixelCastJustification::WebRenderHasUnitResolution); > > - nsRegion invalidRegion; > + bool needPaint = true; > nsAutoPtr<nsDisplayItemGeometry> geometry = fallbackData->GetGeometry(); > > - if (geometry) { > + if (geometry && !fallbackData->IsInvalid() && aItem->GetType() != DisplayItemType::TYPE_FILTER) { Please add a comment about what the special case for TYPE_FILTER is for. ::: gfx/layers/wr/WebRenderLayerManager.cpp:570 (Diff revision 2) > if (!lastBounds.IsEqualInterior(clippedBounds)) { > invalidRegion.OrWith(lastBounds); > invalidRegion.OrWith(clippedBounds); > } > } > + needPaint = (invalidRegion.IsEmpty())? false: true; This can just be needPaint = !invalidRegion.IsEmpty();
Attachment #8908456 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8908457 [details] Bug 1393376 - (Part 2) Retain BasicLayerManager in WebRenderFallbackData for layer invalidation computation; https://reviewboard.mozilla.org/r/180104/#review187280
Attachment #8908457 - Flags: review?(jmuizelaar) → review+
Keywords: checkin-needed
Target Milestone: mozilla57 → ---
Pushed by ryanvm@gmail.com: https://hg.mozilla.org/integration/autoland/rev/94c2ea91c36f (Part 1) Paint the item when its type is TYPE_FILTER during WebRenderFallbackData generating; r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/b2c7917c24e9 (Part 2) Retain BasicLayerManager in WebRenderFallbackData for layer invalidation computation; r=jrmuizel
Keywords: checkin-needed
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: