Crash in [@ mozilla::layers::ContainerLayerMLGPU::FindVisibleBounds]
Categories
(Core :: Graphics: Layers, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox71 | --- | wontfix |
firefox72 | --- | fixed |
People
(Reporter: Gabi, Assigned: mattwoodrow)
References
(Blocks 1 open bug)
Details
(Keywords: crash)
Crash Data
Attachments
(2 files)
This bug is for crash report bp-45377dff-3a67-448f-a941-7e1b80191014.
Top 10 frames of crashing thread:
0 xul.dll static class mozilla::Maybe<mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> > mozilla::layers::ContainerLayerMLGPU::FindVisibleBounds gfx/layers/mlgpu/ContainerLayerMLGPU.cpp:110
1 xul.dll static class mozilla::Maybe<mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> > mozilla::layers::ContainerLayerMLGPU::FindVisibleBounds gfx/layers/mlgpu/ContainerLayerMLGPU.cpp:132
2 xul.dll static class mozilla::Maybe<mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> > mozilla::layers::ContainerLayerMLGPU::FindVisibleBounds gfx/layers/mlgpu/ContainerLayerMLGPU.cpp:132
3 xul.dll void mozilla::layers::ContainerLayerMLGPU::ComputeIntermediateSurfaceBounds gfx/layers/mlgpu/ContainerLayerMLGPU.cpp:162
4 xul.dll bool mozilla::layers::FrameBuilder::Build gfx/layers/mlgpu/FrameBuilder.cpp:69
5 xul.dll void mozilla::layers::LayerManagerMLGPU::RenderLayers gfx/layers/mlgpu/LayerManagerMLGPU.cpp:373
6 xul.dll void mozilla::layers::LayerManagerMLGPU::Composite gfx/layers/mlgpu/LayerManagerMLGPU.cpp:327
7 xul.dll void mozilla::layers::LayerManagerMLGPU::EndTransaction gfx/layers/mlgpu/LayerManagerMLGPU.cpp:276
8 xul.dll void mozilla::layers::CompositorBridgeParent::CompositeToTarget gfx/layers/ipc/CompositorBridgeParent.cpp:1028
9 xul.dll mozilla::layers::CompositorVsyncScheduler::Composite gfx/layers/ipc/CompositorVsyncScheduler.cpp:250
- Steps to Reproduce:
- Launch Firefox
- Set fission.autostart to true
- Go to reddit.com
- Restart browser using browser console
- Go to reddit.com tab after restart
- Repeat steps 4. and 5.
- Expected Result: No crashes, issues are encountered
- Actual Result: Browser crash in Crash in [@ mozilla::layers::ContainerLayerMLGPU::FindVisibleBounds]
Comment 1•5 years ago
|
||
Updated•5 years ago
|
Updated•5 years ago
|
Comment 2•5 years ago
|
||
The priority flag is not set for this bug.
:jbonisteel, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 3•5 years ago
|
||
Hey Matt - any suggestions about this one?
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 4•5 years ago
|
||
So it looks like Advanced Layers has RefLayerMLGPU as an entirely separate implementation from ContainerLayerMLGPU, and only supports intermediate surfaces on normal ContainerLayers.
Without fission, RefLayers are only used for tabs, and this was a safe assumption. With fission they can be used for iframes, and nested arbitrarily, so they really need to be treated the same as normal ContainerLayers.
I think we'll need to share all the implementation code between RefLayerMLGPU and ContainerLayerMLGPU (similar to what we do for ContainerLayerComposite), and calls to AsContainerLayerMLGPU() need to return a common interface (or be replaced with something else).
Jessie, does anyone on Graphics have time to fix up Advanced Layers for fission?
Comment 5•5 years ago
|
||
Chatted with Matt about this on Slack - we are going to make a patch to disable AL with Fission for now to unblock dogfooding and then make a call later once WR Everywhere and Fission timelines are more clear to see if we will still need to do this or not.
Assignee | ||
Comment 6•5 years ago
|
||
Assignee | ||
Updated•5 years ago
|
Comment 8•5 years ago
|
||
Backed out for build bustages at nsBaseWidget.cpp
Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&selectedJob=277904324&resultStatus=testfailed%2Cbusted%2Cexception&revision=8f8105dabc47d81976b1c73745053fbba8e2f2dc
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=277904324&repo=autoland&lineNumber=38710
Backout: https://hg.mozilla.org/integration/autoland/rev/572be1d9e5d4d1ab60015bc6bd5cca4fa44eb302
Comment 10•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Updated•5 years ago
|
Comment 11•4 years ago
|
||
Matt, you added the layers.advanced.fission.enabled
pref in this bug to disable Advanced Layers "for now" when using Fission. Is there another bug to fix and re-enable Advanced Layers for Fission? Do we need to fix Advanced Layers before we ship Fission?
Assignee | ||
Comment 12•4 years ago
|
||
There's not a bug filed, since at the time the plan was to never support Fission+non-WebRender.
We've tried to disable Advanced Layers in the past and ran into correctness issues with D3D11 layers. We would need to fix those, or this bug before we could ship Fission to release without WebRender.
Comment 13•4 years ago
|
||
(In reply to Matt Woodrow (:mattwoodrow) from comment #12)
There's not a bug filed, since at the time the plan was to never support Fission+non-WebRender.
We've tried to disable Advanced Layers in the past and ran into correctness issues with D3D11 layers. We would need to fix those, or this bug before we could ship Fission to release without WebRender.
Thanks. I filed bug 1664334 to track the Fission team's investigation of whether we need to fix those D3D11 Advanced Layers issues or not. We have been assuming we should require WebRender for Fission, but given the uncertainty about SW-WR's schedule to support the ~40% of Windows users that don't have WebRender-compatible hardware, we are re-evaluating whether we should support Fission without WebRender on Windows. (We are already assuming Fission will ship with or without WebRender on macOS and Linux.)
Comment 14•4 years ago
|
||
Where does the "~40% of Windows users that don't have WebRender-compatible hardware" number come from?
Comment 15•4 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #14)
Where does the "~40% of Windows users that don't have WebRender-compatible hardware" number come from?
I was wrong. After talking with Jim Mathies, the correct percentage is more like 10% (Release channel users stuck with basic compositor instead of D3D11 according to [1]). I think the "40%" number came from the number of users still on Windows 7 or 8 (about 30% of Windows Firefox users), which don't support WebRender yet.
Windows 7 and 8 not supporting WebRender will still be a potential blocker for rolling out Fission to those users.
[1] https://sql.telemetry.mozilla.org/dashboard/web-render-rollout-tracking
Comment 16•4 years ago
|
||
(In reply to Chris Peterson [:cpeterson] from comment #15)
(In reply to Jeff Muizelaar [:jrmuizel] from comment #14)
Where does the "~40% of Windows users that don't have WebRender-compatible hardware" number come from?
I was wrong. After talking with Jim Mathies, the correct percentage is more like 10% (Release channel users stuck with basic compositor instead of D3D11 according to [1]). I think the "40%" number came from the number of users still on Windows 7 or 8 (about 30% of Windows Firefox users), which don't support WebRender yet.
Windows 7 and 8 not supporting WebRender will still be a potential blocker for rolling out Fission to those users.
Win7 is scheduled to get WebRender in 83. I've been on parental leave so haven't been following the Fission schedule, is it valuable to try to push that to 82 to avoid blocking Fission?
Comment 17•4 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #16)
Windows 7 and 8 not supporting WebRender will still be a potential blocker for rolling out Fission to those users.
Win7 is scheduled to get WebRender in 83. I've been on parental leave so haven't been following the Fission schedule, is it valuable to try to push that to 82 to avoid blocking Fission?
Awesome. No need to rush Win7 for 82!
Updated•4 years ago
|
Description
•