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)
Core
Graphics: WebRender
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".
Updated•7 years ago
|
Whiteboard: [gfx-noted]
Assignee | ||
Updated•7 years ago
|
Assignee: nobody → kechen
Updated•7 years ago
|
Priority: -- → P3
Updated•7 years ago
|
Status: NEW → ASSIGNED
Priority: P3 → P1
Whiteboard: [gfx-noted] → [wr-mvp] [gfx-noted]
Target Milestone: --- → mozilla57
Updated•7 years ago
|
status-firefox56:
--- → unaffected
status-firefox57:
--- → unaffected
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 5•7 years ago
|
||
mozreview-review |
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 6•7 years ago
|
||
mozreview-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+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Updated•7 years ago
|
Keywords: checkin-needed
Updated•7 years ago
|
Target Milestone: mozilla57 → ---
Comment 11•7 years ago
|
||
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
Comment 12•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/94c2ea91c36f
https://hg.mozilla.org/mozilla-central/rev/b2c7917c24e9
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
status-firefox58:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla58
You need to log in
before you can comment on or make changes to this bug.
Description
•