sw-wr: YouTube Crash in [@ mozilla::wr::RenderMacIOSurfaceTextureHostOGL::GetSize]
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox-esr78 | --- | unaffected |
firefox80 | --- | unaffected |
firefox81 | --- | unaffected |
firefox82 | --- | disabled |
firefox83 | --- | fixed |
People
(Reporter: cpeterson, Assigned: mattwoodrow)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: crash, regression)
Crash Data
Attachments
(3 files)
Maybe Fission related. (DOMFissionEnabled=1)
STR:
- Enable SW-WR:
gfx.webrender.software
pref = true - Load any YouTube video.
RESULT:
Crash report: https://crash-stats.mozilla.org/report/index/ff91e5e4-31f1-4827-a7b5-e1e010200919
Top 10 frames of crashing thread:
0 XUL mozilla::wr::RenderMacIOSurfaceTextureHostOGL::GetSize const gfx/webrender_bindings/RenderMacIOSurfaceTextureHostOGL.cpp:71
1 XUL mozilla::layers::NativeLayerCA::AttachExternalImage gfx/layers/NativeLayerCA.mm:495
2 XUL <webrender_bindings::swgl_bindings::SwCompositor as webrender::composite::Compositor>::attach_external_image gfx/webrender_bindings/src/swgl_bindings.rs:1181
3 XUL webrender::renderer::Renderer::update_native_surfaces gfx/wr/webrender/src/renderer.rs:6036
4 XUL webrender::renderer::Renderer::render_impl gfx/wr/webrender/src/renderer.rs:3609
5 XUL wr_renderer_render gfx/webrender_bindings/src/bindings.rs:617
6 XUL mozilla::wr::RendererOGL::UpdateAndRender gfx/webrender_bindings/RendererOGL.cpp:156
7 XUL mozilla::wr::RenderThread::UpdateAndRender gfx/webrender_bindings/RenderThread.cpp:505
8 XUL mozilla::wr::RenderThread::HandleFrameOneDoc gfx/webrender_bindings/RenderThread.cpp:360
9 XUL mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void xpcom/threads/nsThreadUtils.h:1240
Reporter | ||
Comment 1•4 years ago
|
||
I bisected this regression to this pushlog for bug 1622966:
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
When SWGL is enabled, we're letting BufferTextureHost::PushDisplayItems pass true for aUseExternalSurface, which lets WebRender pass that texture directly back to the compositor.
On MacOS though we're not using the SWGL compositor, and we're forwarding on to the native compositor, which doesn't support BufferTextureHost.
We're going to need to either support this (by making NativeLayerCA::AttachExternalImage detect BufferTextureHosts, and upload to an IOSurface), or disable this flag again on Mac.
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 4•4 years ago
|
||
When using the native RenderCompositor+SWGL on MacOS, we don't support passing buffer textures directly to the compositor.
Assignee | ||
Comment 5•4 years ago
|
||
This interface is never used directly, and the only consumers of the virtual functions are by the derived classes themselves.
Depends on D93179
Assignee | ||
Comment 6•4 years ago
|
||
NativeLayerCA only understands how to extract the IOSurface from a RenderMacIOSurfaceTextureHost.
Rather than trying to support both types, this just merges them, as they are both just an IOSurface pointer and some associated helper functions.
Depends on D93180
Comment 8•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/97337b1dc812
https://hg.mozilla.org/mozilla-central/rev/4069bebe3082
https://hg.mozilla.org/mozilla-central/rev/c80e9fd82c9d
Updated•4 years ago
|
Updated•4 years ago
|
Description
•