Always allow Software WebRender if Fission is enabled
Categories
(Core :: Graphics: WebRender, task, P3)
Tracking
()
People
(Reporter: aosmond, Assigned: aosmond)
References
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
We don't want to support Fission + non-WebRender. We can just force enable Software WebRender (and Software WebRender for certain popups on Windows) if a user has fission enabled, and disallow fallback to Basic. This will make experiments in 88 go smoothly as well as avoid having to debug reports for unsupported configurations.
Assignee | ||
Comment 1•4 years ago
|
||
Fission without WebRender is an unsupported configuration and enrolls
users based on their compositor. However because of our own rollout of
WebRender, a user might start in early beta with WebRender and lose it
in late beta, while they remain enrolled in the Fission experiment.
Also, a user could lose WebRender because of crashes or device reset,
and we may fall back to Basic.
This patch forces Software WebRender as available (but does not override
Hardware WebRender) if Fission is enabled. It also prevents fallback to
Basic layers when disabling acceleration due to crashes and runtime
errors, so the user will be stuck with Software WebRender at a minimum.
It also enables Software WebRender for Windows popups with transparency.
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 3•4 years ago
|
||
Backed out for dt failures on nsDisplayList.cpp
Backout link: https://hg.mozilla.org/integration/autoland/rev/779d0ce5e5fbaefb5d3274264209240264415060
Log link: https://treeherder.mozilla.org/logviewer?job_id=332577782&repo=autoland&lineNumber=8717
There were also gv failures -> https://treeherder.mozilla.org/logviewer?job_id=332579476&repo=autoland&lineNumber=10414
Comment 4•4 years ago
|
||
It is also causing webdriver failures.
(Update) And marionette failures.
Assignee | ||
Comment 5•4 years ago
|
||
It's unfortunate the fission has non-WebRender targets in CI. This isn't ideal since we aren't even shipping to those. But I guess we haven't enabled all of the tests with WebRender yet, so we can't simply turn them off. CI turns it on via the pref, just like how users and normandy would.
Comment 6•4 years ago
|
||
Chris, curious about testing in CI of fission without WR? Is that needed?
Comment 7•4 years ago
|
||
(In reply to Jim Mathies [:jimm] from comment #6)
Chris, curious about testing in CI of fission without WR? Is that needed?
Do these tests (dt, gv, webdriver, and Marionette) pass with SW-WR if Fission is not enabled? Or are these tests being run with SW-WR for first time?
I can file new bugs for these Fission + SW-WR test failures.
Some tests run with Fission enabled and WR disabled because either:
- The tests were enabled long ago, before we decided Fission will require WR.
- Or the tests are frontend tests, like Marionette or DevTools, that don't typically run with WR enabled.
There were also gv failures -> https://treeherder.mozilla.org/logviewer?job_id=332579476&repo=autoland&lineNumber=10414
TEST-UNEXPECTED-FAIL | org.mozilla.geckoview.test.ScreenshotTest.screenshotQuartersScaled | java.lang.AssertionError: Images are almost identical
gv are Android tests. Does SW-WR support Android yet? If not, gfxConfigManager.cpp's FissionAutostart() check can be wrapped in #ifndef ANDROID so we don't auto-enable SW-WR on Android.
Comment 8•4 years ago
|
||
I filed bug 1697639 for the dt failures with Fission + SW-WR.
I filed bug 1697631 for the webdriver failures with Fission + SW-WR.
I filed bug 1697629 for the Marionette failures with Fission + SW-WR.
I filed bug 1697637 for the Android gv failures with Fission + SW-WR. AFAIK, we don't support SW-WR on Android yet. We do support Fission on Android for a few specific tests (like gv). Someone will want to fix that test failure when enabling SW-WR on Android, but for now, we can just wrap gfxConfigManager.cpp's FissionAutostart() check in #ifndef ANDROID so we don't enable SW-WR in the gv test.
I am moving this bug from Fission Beta experiment milestone M7 (Windows and macOS) to M7a (Linux Beta). We can support most Windows and macOS users in our Beta experiment without SW-WR fallback, but we'll need it for Linux.
Comment 9•4 years ago
|
||
On Android we need WebRender (Software OpenGL) instead of WebRender (Software). Bug 1697715 is going to change a default pref of it.
Comment 10•4 years ago
|
||
(In reply to Chris Peterson [:cpeterson] from comment #7)
gv are Android tests. Does SW-WR support Android yet? If not, gfxConfigManager.cpp's FissionAutostart() check can be wrapped in #ifndef ANDROID so we don't auto-enable SW-WR on Android.
We're getting there. I've been running it on my Pixel 3 and it's great. Sotaro and Jeff are working on this currently. We plan to have it shipped by the end of H1 to the hardware that can't support accelerated backends, just like desktop. We do not have a first rollout target yet, maybe 89 or 90 for some PI testing. We'll decide from there.
Updated•4 years ago
|
Assignee | ||
Comment 11•4 years ago
|
||
Shifting this bug to allow/require at least Software WebRender (if not WebRender) for users in the Fission experiment. That should avoid the CI issue for now and ensure the 88 beta is successful for testing. In the meantime, I've moved the SW-WR + Fission CI issues to their own metabug in bug 1698122.
Comment 12•4 years ago
|
||
Comment 13•4 years ago
|
||
Comment 14•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ffac1d860afe
https://hg.mozilla.org/mozilla-central/rev/a63164bc8f73
Description
•