Add layerless painting
Categories
(Core :: Web Painting, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox90 | --- | fixed |
People
(Reporter: jrmuizel, Assigned: mattwoodrow)
References
Details
Attachments
(9 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
Bug 1540737 - Use correct frame size when converting print logical coordinates into physical. r?miko
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
Currently there a couple of cases where we need to use FLB and BasicLayerManager when it's not really providing much value. This includes painting foreign object in masks, background-clip: text and perhaps other uses of nsLayoutUtils::PaintFrame.
Instead, we should be able to paint directly from the display list. Display items can mostly paint themselves, however, container items rely on BasicLayerManger.
For WebRender SVG support we mostly do this except for Fitlers: https://searchfox.org/mozilla-central/source/gfx/layers/wr/WebRenderCommandBuilder.cpp#890
Having this code path available will let us take special cases out of BasicLayerManager and FrameLayerBuilder and shouldn't be much additional code. We'll also save some cpu time from not having to run FrameLayerBuilder.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
Depends on D114670
Assignee | ||
Comment 3•4 years ago
|
||
Depends on D114671
Assignee | ||
Comment 4•4 years ago
|
||
Depends on D114672
Assignee | ||
Comment 5•4 years ago
|
||
Depends on D114673
Assignee | ||
Comment 6•4 years ago
|
||
Depends on D114674
Assignee | ||
Comment 7•4 years ago
|
||
This creates a new leaf nsDisplayWrapper item for consumers that just want an empty wrapper, with a Paint method that asserts. This lets us leaves Paint pure-virtual on nsDisplayWrapList, and lets the compiler force us to implement it for the other leaf types.
It also disables flattening of transform/opacity items. This is because they flatten the items even when used with FlattenedDisplayItemIterator, even though this doesn't add markers to replace them (only FLB does this). We could in theory fix this, but I don't think FLB performance matters much any more.
Depends on D114675
Comment 9•4 years ago
|
||
Backed out for failures on test_bug847890_paintFlashing.html
-
backout: https://hg.mozilla.org/integration/autoland/rev/10dacf71ccbe487b94edc08ae9cae12ee3237512
-
failure log: https://treeherder.mozilla.org/logviewer?job_id=339796552&repo=autoland&lineNumber=3990
[task 2021-05-15T23:09:52.688Z] 23:09:52 INFO - TEST-START | layout/base/tests/chrome/test_bug847890_paintFlashing.html
[task 2021-05-15T23:09:52.690Z] 23:09:52 INFO - GECKO(2144) | [Parent 2144, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/chrome/nsChromeRegistry.cpp:180
[task 2021-05-15T23:09:52.691Z] 23:09:52 INFO - GECKO(2144) | [Parent 2144, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80004005 (NS_ERROR_FAILURE): file /builds/worker/checkouts/gecko/dom/security/nsCSPService.cpp:191
[task 2021-05-15T23:09:52.731Z] 23:09:52 INFO - GECKO(2144) | [Parent 2144, Main Thread] WARNING: Failed to retarget HTML data delivery to the parser thread.: file /builds/worker/checkouts/gecko/parser/html/nsHtml5StreamParser.cpp:1449
[task 2021-05-15T23:09:53.433Z] 23:09:53 INFO - TEST-INFO | started process screentopng
[task 2021-05-15T23:09:53.857Z] 23:09:53 INFO - TEST-INFO | screentopng: exit 0
[task 2021-05-15T23:09:53.859Z] 23:09:53 INFO - TEST-UNEXPECTED-FAIL | layout/base/tests/chrome/test_bug847890_paintFlashing.html | windows are different
[task 2021-05-15T23:09:53.859Z] 23:09:53 INFO - SimpleTest.ok@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:417:16
[task 2021-05-15T23:09:53.860Z] 23:09:53 INFO - startTest/</</<@chrome://mochitests/content/chrome/layout/base/tests/chrome/test_bug847890_paintFlashing.html:21:15
[task 2021-05-15T23:09:53.861Z] 23:09:53 INFO - waitForPaints@chrome://mochikit/content/tests/SimpleTest/paint_listener.js:90:14
[task 2021-05-15T23:09:53.862Z] 23:09:53 INFO - waitForPaints/<@chrome://mochikit/content/tests/SimpleTest/paint_listener.js:77:22
[task 2021-05-15T23:09:53.863Z] 23:09:53 INFO - GECKO(2144) | MEMORY STAT | vsize 3384MB | residentFast 455MB | heapAllocated 192MB
[task 2021-05-15T23:09:53.864Z] 23:09:53 INFO - TEST-OK | layout/base/tests/chrome/test_bug847890_paintFlashing.html | took 760ms
Comment 10•4 years ago
|
||
Assignee | ||
Updated•4 years ago
|
Comment 11•4 years ago
|
||
Backed out for causing mochitest failures on test_reftests_with_caret.html.
Assignee | ||
Comment 12•4 years ago
|
||
Depends on D114676
Comment 13•4 years ago
|
||
Assignee | ||
Updated•4 years ago
|
Comment 14•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/b4c93d182ef4
https://hg.mozilla.org/mozilla-central/rev/2f5b8369d061
https://hg.mozilla.org/mozilla-central/rev/f929de495b87
https://hg.mozilla.org/mozilla-central/rev/b3d0cc460b24
https://hg.mozilla.org/mozilla-central/rev/81f1a9d1a5e1
https://hg.mozilla.org/mozilla-central/rev/a73e041f1f1d
https://hg.mozilla.org/mozilla-central/rev/4b5f53d5127b
https://hg.mozilla.org/mozilla-central/rev/37628894ffd5
Comment 15•4 years ago
|
||
Backed out for causing graphics crashes in Bug 1711718
backout: https://hg.mozilla.org/mozilla-central/rev/57003279f12b1f4018227362e243b6dad331b73e
Updated•4 years ago
|
Assignee | ||
Comment 16•4 years ago
|
||
Depends on D115175
Comment 17•4 years ago
|
||
Assignee | ||
Updated•4 years ago
|
Comment 18•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/33dbc637a003
https://hg.mozilla.org/mozilla-central/rev/b6f33666cf87
https://hg.mozilla.org/mozilla-central/rev/c51dd1e9bf2d
https://hg.mozilla.org/mozilla-central/rev/36685908dce5
https://hg.mozilla.org/mozilla-central/rev/b091009018d3
https://hg.mozilla.org/mozilla-central/rev/fdee5a641aee
https://hg.mozilla.org/mozilla-central/rev/1f86740dbf1a
https://hg.mozilla.org/mozilla-central/rev/445bc0de5112
https://hg.mozilla.org/mozilla-central/rev/411d3031b1b4
Updated•4 years ago
|
Description
•