Closed Bug 1374990 Opened 7 years ago Closed 4 years ago

OffscreenCanvas crashes on Windows

Categories

(Core :: Graphics: CanvasWebGL, defect, P3)

x86_64
Windows 10
defect

Tracking

()

RESOLVED DUPLICATE of bug 1390089
Tracking Status
firefox57 --- wontfix

People

(Reporter: jujjyl, Unassigned)

References

Details

(Whiteboard: [gfx-noted])

Running OffscreenCanvas on Windows with STR:

http://clbri.com/dump/10kCubes_with_OffscreenCanvas/10kCubes.html

while setting pref

gfx.offscreencanvas.enabled;true

Firefox Nightly occassionally crashes after the page has run for a couple of seconds.

Crash reports:

https://crash-stats.mozilla.com/report/index/40aa0202-92ed-4c84-b66b-e02b10170621
https://crash-stats.mozilla.com/report/index/3b0ea1d2-2ea8-47d3-bff5-8caa80170621
https://crash-stats.mozilla.com/report/index/c22ea8a0-d34d-4841-87ba-2dc840170621

Sometimes the page does not crash, but the animation stops updating and the displayed content freezes.

Download the test case for local execution at

http://clbri.com/dump/10kCubes_with_OffscreenCanvas/10kCubes.zip
The crash does not occur on OS X, but the page works fine there when OffscreenCanvas is enabled.
Changing from critical to normal since the crash is related to a currently nonshipping feature.
Severity: critical → normal
The code in question (`SurfaceFactory::mRecycleTotalPool` handling) doesn't appear to be windows-specific, and I don't see anything obviously wrong with the `RecycleCallback`.
Priority: -- → P2
Whiteboard: [gfx-noted]
I got different crash reports on my Win10 PC when OffscreenCanvas is enabled.

The first crash it causes is getting WebGLExtensionID::WEBGL_debug_renderer_info fail:

>	xul.dll!mozilla::ServoStyleSet::IsInServoTraversal() Line 112	C++
 	xul.dll!mozilla::Preferences::InitStaticMembers() Line 621	C++
 	xul.dll!mozilla::Preferences::GetBool(const char * aPref, bool * aResult) Line 1627	C++
 	xul.dll!mozilla::Preferences::GetBool(const char * aPref, bool aDefault) Line 127	C++
 	xul.dll!mozilla::WebGLContext::IsExtensionSupported(mozilla::WebGLExtensionID ext) Line 148	C++
 	xul.dll!mozilla::WebGLContext::IsExtensionSupported(mozilla::dom::CallerType callerType, mozilla::WebGLExtensionID ext) Line 108	C++
 	xul.dll!mozilla::WebGLContext::GetSupportedExtensions(mozilla::dom::Nullable<nsTArray<nsString> > & retval, mozilla::dom::CallerType callerType) Line 470	C++


The second crash is failure to copy texture client with async canvas renderer.

>	xul.dll!mozilla::layers::AsyncCanvasRenderer::CopyFromTextureClient(mozilla::layers::TextureClient * aTextureClient) Line 176	C++
 	xul.dll!mozilla::layers::CanvasClientSharedSurface::UpdateRenderer(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> aSize, mozilla::MaybeOneOf<mozilla::layers::ShareableCanvasLayer *,mozilla::layers::AsyncCanvasRenderer *> & aRenderer) Line 481	C++
 	xul.dll!mozilla::layers::CanvasClientSharedSurface::UpdateAsync(mozilla::layers::AsyncCanvasRenderer * aRenderer) Line 391	C++
 	xul.dll!mozilla::layers::ImageBridgeChild::UpdateAsyncCanvasRenderer(mozilla::layers::AsyncCanvasRenderer * aWrapper) Line 437	C++
 	xul.dll!mozilla::dom::OffscreenCanvas::CommitFrameToCompositor() Line 207	C++
 	xul.dll!mozilla::WebGLContext::Commit() Line 1421	C++
Offscreen canvas not in 57.
Priority: P2 → P3
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.