Closed Bug 1271770 Opened 4 years ago Closed 4 years ago

Fallback to WARP if accelerated ANGLE fails

Categories

(Core :: Canvas: WebGL, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla50
Tracking Status
firefox49 --- fixed
relnote-firefox --- 50+
firefox50 --- fixed

People

(Reporter: jrmuizel, Assigned: ernest)

References

(Blocks 1 open bug)

Details

(Whiteboard: gfx-noted)

Attachments

(2 files)

Currently we don't do this. It seems like we should.
Blocks: 1257692
Bug 1260944 made it possible to use WARP. FWIW, it looks like the machine I was seeing this on has an additional problem that makes WARP fail.
Whiteboard: gfx-noted
I think this bug is probably the reason for the remaining webgl (non performance caveat) failures on Windows 7
Benoit, something Ernest can cover?
Flags: needinfo?(bgirard)
This is mostly solved by bug 1281050.
Depends on: 1281050
Yes, I think this is a good bug.
Assignee: nobody → eyim
Flags: needinfo?(bgirard) → needinfo?(eyim)
Flags: needinfo?(eyim)
(In reply to Jeff Gilbert [:jgilbert] from comment #5)
> This is mostly solved by bug 1281050.

AIUI bug 1281050 would let us run with both ANGLE/Warp at the same time in the same process. I'm not sure that's desirable outside of testing environments. Is bug 1281050 really a blocker for this?
Flags: needinfo?(jgilbert)
(In reply to Benoit Girard (:BenWa) from comment #7)
> (In reply to Jeff Gilbert [:jgilbert] from comment #5)
> > This is mostly solved by bug 1281050.
> 
> AIUI bug 1281050 would let us run with both ANGLE/Warp at the same time in
> the same process. I'm not sure that's desirable outside of testing
> environments. Is bug 1281050 really a blocker for this?

Yes, because once we initialize EGL for non-WARP ANGLE, we can't re-initialize it for WARP ANGLE.
Flags: needinfo?(jgilbert)
If we aren't checking the ANGLE blocklist before initializing EGL, we can and should do that.
But once we initialize EGL, we're stuck with that ANGLE config. (including d3d9 vs d3d11)
Wrote a small patch for adding WARP fallback at initialization, will look into other locations where ANGLE may fail and see if we can fallback to WARP as discussed.
Depends on: 1283594
Early data from Nightly suggests that roughly 20% of our webgl failures would be fixed by this.
We're waiting on bug 1283594 before we want to land this, so that we can see the numbers change, or is there more that needs to be done to this patch?

Covering 20% of failures sounds great.
Currently the patch I wrote will only fallback at initialization, if we wait for bug 1281050 also, we can look into writing a patch to also fallback during runtime. But we can land the patch as is first, as the latter may take a bit more time and work.
I don't think we need to block on bug 1283594. I believe we will still report the empty string so we should be able to study the data just fine.
Actually the relationship needs to be the other way. Bug 1283594 is going to change heavily once this is landed because this will add ways we can fallback higher up in call graph.
Blocks: 1283594
No longer depends on: 1283594
Comment on attachment 8766848 [details]
Bug 1271770 - Fallback to WARP if accelerated ANGLE fails

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/61570/diff/1-2/
Attachment #8766848 - Flags: review?(jmuizelaar)
Attachment #8766848 - Flags: review?(bgirard)
Attached patch proposalSplinter Review
I think you want something like this instead.
We should try Accel unless we don't think it'll work.
After (maybe) trying Accel, we should fallback to WARP, except if we shouldn't be falling back to WARP.
Flags: needinfo?(eyim)
With your suggestion, it will remove the overriding WARP preference (if ANGLE is successful)? Is this the intended behaviour?
Flags: needinfo?(eyim)
Ignore the above comment, I lied.
With this patch we might be trying WARP twice in some cases where it fails. Let's see if we can come up with better logic here.
Comment on attachment 8766848 [details]
Bug 1271770 - Fallback to WARP if accelerated ANGLE fails

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/61570/diff/2-3/
Comment on attachment 8766848 [details]
Bug 1271770 - Fallback to WARP if accelerated ANGLE fails

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/61570/diff/3-4/
Attachment #8766848 - Flags: review?(jmuizelaar) → review+
Comment on attachment 8766848 [details]
Bug 1271770 - Fallback to WARP if accelerated ANGLE fails

https://reviewboard.mozilla.org/r/61570/#review61366

There's a machine in the office that would be good to test this on.
Comment on attachment 8766848 [details]
Bug 1271770 - Fallback to WARP if accelerated ANGLE fails

https://reviewboard.mozilla.org/r/61570/#review61702
Attachment #8766848 - Flags: review?(bgirard) → review+
Pushed by b56girard@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/af5a866739e9
Fallback to WARP if accelerated ANGLE fails r=BenWa,jrmuizel
https://hg.mozilla.org/mozilla-central/rev/af5a866739e9
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
Comment on attachment 8766848 [details]
Bug 1271770 - Fallback to WARP if accelerated ANGLE fails

Approval Request Comment
[Feature/regressing bug #]: Not a regression
[User impact if declined]: WinVista+ users with GPUs that are old but haven't been explicitly blacklisted will not get WebGL. This looks to be the reason that Vista+ users don't get WebGL 71% of the time.
[Describe test coverage new/current, TreeHerder]: Has been on Nightly for a couple of days. However, it only exposes a path that we've already been testing on blacklisted GPUs.
[Risks and why]: I'd like to get as much testing as soon as possible, especially on the more diverse set of hardware that Aurora provides.
Attachment #8766848 - Flags: approval-mozilla-aurora?
Comment on attachment 8766848 [details]
Bug 1271770 - Fallback to WARP if accelerated ANGLE fails

Improve WebGL support, taking it into aurora.
Attachment #8766848 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
No longer depends on: 1281050
See Also: → 1281050
Release Note Request (optional, but appreciated)
[Why is this notable]: This increases our WebGL success rate noticeably (on beta the Win7 success rate went from 87% to 98%)
[Suggested wording]: Availability of WebGL increased to 98%+ on Windows 7 and newer.
relnote-firefox: --- → ?
You need to log in before you can comment on or make changes to this bug.