Closed Bug 1697195 Opened 3 years ago Closed 3 years ago

Always allow Software WebRender if Fission is enabled

Categories

(Core :: Graphics: WebRender, task, P3)

task

Tracking

()

RESOLVED FIXED
88 Branch
Fission Milestone M7a
Tracking Status
firefox-esr78 --- wontfix
firefox86 --- wontfix
firefox87 --- wontfix
firefox88 --- fixed

People

(Reporter: aosmond, Assigned: aosmond)

References

Details

Attachments

(1 file)

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.

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.

Summary: Turn on WebRender if Fission is enabled → Always allow Software WebRender if Fission is enabled
Fission Milestone: --- → M7
Pushed by aosmond@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d5ebf7eedb59
Force enable Software WebRender if Fission is enabled. r=jrmuizel

It is also causing webdriver failures.
(Update) And marionette failures.

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.

Flags: needinfo?(aosmond)

Chris, curious about testing in CI of fission without WR? Is that needed?

Flags: needinfo?(cpeterson)

(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:

  1. The tests were enabled long ago, before we decided Fission will require WR.
  2. 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.

Flags: needinfo?(cpeterson) → needinfo?(jmathies)
Depends on: 1697629
Depends on: 1697631
Depends on: 1697637
Depends on: 1697639

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.

Fission Milestone: M7 → M7a

On Android we need WebRender (Software OpenGL) instead of WebRender (Software). Bug 1697715 is going to change a default pref of it.

Depends on: 1697715

(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.

Flags: needinfo?(jmathies)
Attachment #9207789 - Attachment description: Bug 1697195 - Force enable Software WebRender if Fission is enabled. → Bug 1697195 - Force enable Software WebRender if Fission and experiment are enabled.

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.

No longer depends on: 1697629, 1697631, 1697637, 1697639, 1697715
Pushed by aosmond@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ffac1d860afe
Force enable Software WebRender if Fission and experiment are enabled. r=jrmuizel
Pushed by cbrindusan@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a63164bc8f73
Fix a typo in nsWindow.cpp. a=bustage-fix CLOSED TREE
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: