Closed
Bug 1358053
Opened 8 years ago
Closed 8 years ago
Assertion failure: surface->IsDataSourceSurface() (The snapshot SourceSurface from WebGL rendering contest is not DataSourceSurface.), at ImageBitmap.cpp:885
Categories
(Core :: Graphics: CanvasWebGL, defect)
Core
Graphics: CanvasWebGL
Tracking
()
RESOLVED
FIXED
mozilla55
People
(Reporter: cbook, Assigned: daoshengmu)
References
()
Details
(Keywords: assertion, Whiteboard: [gfx-noted])
Attachments
(2 files)
Found via bughunter and reproduced on latest trunk windows debug build
Steps to reproduce:
-> Load https://speaktogo.withgoogle.com/
--> Assertion failure
Assertion failure: surface->IsDataSourceSurface() (The snapshot SourceSurface from WebGL rendering contest is not DataSourceSurface.), at /home/worker/workspace/build/src/dom/canvas/ImageBitmap.cpp:885
#01: mozilla::dom::ImageBitmap::Create [dom/canvas/ImageBitmap.cpp:1471]
#02: nsGlobalWindow::CreateImageBitmap [dom/base/nsGlobalWindow.cpp:14699]
#03: mozilla::dom::WindowBinding::createImageBitmap [obj-firefox/dom/bindings/WindowBinding.cpp:15318]
#04: mozilla::dom::WindowBinding::createImageBitmap_promiseWrapper [obj-firefox/dom/bindings/WindowBinding.cpp:15399]
#05: mozilla::dom::WindowBinding::genericPromiseReturningMethod [obj-firefox/dom/bindings/WindowBinding.cpp:15695]
#06: js::CallJSNative [js/src/jscntxtinlines.h:282]
#07: js::InternalCallOrConstruct [js/src/vm/Interpreter.cpp:448]
#08: Interpret [js/src/vm/Interpreter.cpp:2990]
#09: js::RunScript [js/src/vm/Interpreter.cpp:365]
#10: js::InternalCallOrConstruct [js/src/vm/Interpreter.cpp:466]
#11: Interpret [js/src/vm/Interpreter.cpp:2990]
#12: js::RunScript [js/src/vm/Interpreter.cpp:365]
#13: js::InternalCallOrConstruct [js/src/vm/Interpreter.cpp:466]
#14: js::Call [js/src/vm/Interpreter.cpp:512]
#15: PromiseReactionJob [js/src/builtin/Promise.cpp:921]
#16: js::CallJSNative [js/src/jscntxtinlines.h:282]
#17: js::InternalCallOrConstruct [js/src/vm/Interpreter.cpp:448]
#18: js::Call [js/src/vm/Interpreter.cpp:512]
#19: JS::Call [js/src/jsapi.cpp:2887]
#20: mozilla::dom::PromiseJobCallback::Call [obj-firefox/dom/bindings/PromiseBinding.cpp:21]
#21: mozilla::dom::PromiseJobCallback::Call [obj-firefox/dist/include/mozilla/dom/PromiseBinding.h:89]
#22: PromiseJobRunnable::Run [xpcom/base/nsISupportsImpl.h:58]
#23: mozilla::dom::Promise::PerformMicroTaskCheckpoint [dom/promise/Promise.cpp:557]
#24: mozilla::CycleCollectedJSContext::AfterProcessTask [xpcom/base/CycleCollectedJSContext.cpp:1416]
#25: XPCJSContext::AfterProcessTask [js/xpconnect/src/XPCJSContext.cpp:3685]
#26: nsThread::ProcessNextEvent [xpcom/threads/nsThread.cpp:1282]
#27: NS_ProcessNextEvent [xpcom/threads/nsThreadUtils.cpp:389]
#28: mozilla::ipc::MessagePump::Run [ipc/glue/MessagePump.cpp:97]
#29: MessageLoop::RunInternal [ipc/chromium/src/base/message_loop.cc:239]
#30: MessageLoop::Run [ipc/chromium/src/base/message_loop.cc:502]
#31: nsBaseAppShell::Run [widget/nsBaseAppShell.cpp:158]
#32: nsAppStartup::Run [toolkit/components/startup/nsAppStartup.cpp:284]
#33: XREMain::XRE_mainRun [toolkit/xre/nsAppRunner.cpp:4500]
#34: XREMain::XRE_main [toolkit/xre/nsAppRunner.cpp:4677]
#35: XRE_main [toolkit/xre/nsAppRunner.cpp:4768]
#36: do_main [browser/app/nsBrowserApp.cpp:236]
#37: main [browser/app/nsBrowserApp.cpp:309]
#38: libc.so.6 + 0x20830
#39: _start
Reporter | ||
Comment 1•8 years ago
|
||
[Tracking Requested - why for this release]:
daoshengmu, jeff: could you take a look ?
status-firefox54:
--- → affected
status-firefox55:
--- → affected
tracking-firefox54:
--- → ?
tracking-firefox55:
--- → ?
Flags: needinfo?(jgilbert)
Flags: needinfo?(dmu)
Updated•8 years ago
|
Flags: needinfo?(jgilbert) → needinfo?(jgilbert)
Comment 2•8 years ago
|
||
A first look for this bug was.
1. DrawTarget with software backend was created in [1] for snapshot.
2. A type check was mismatched in [2]. The check returns true only if the surface type was SurfaceType::DATA or SurfaceType::DATA_SHARED.
[1]: http://searchfox.org/mozilla-central/rev/7aa21f3b531ddee90a353215bd86e97d6974e25b/dom/canvas/WebGLContext.cpp#1982
[2]: http://searchfox.org/mozilla-central/rev/7aa21f3b531ddee90a353215bd86e97d6974e25b/dom/canvas/ImageBitmap.cpp#872
Assignee | ||
Comment 3•8 years ago
|
||
On Windows, it is a SourceSurfaceSkia and its type is not equal to SurfaceType::DATA or SurfaceType::DATA_SHARED.
As Comment 2 mentioned, the SourceSurfaceSkia is created by the Skia backend. I am think if we should override IsDataSourceSurface() to allow SourceSurfaceSkia/SourceSurfaceCairo can return true because they derive from DataSourceSurface. I have tried to modify it locally and it works well.
Might Jeff would have more ideas about this.
Flags: needinfo?(dmu)
Comment 4•8 years ago
|
||
(In reply to Daosheng Mu[:daoshengmu] from comment #3)
> On Windows, it is a SourceSurfaceSkia and its type is not equal to
> SurfaceType::DATA or SurfaceType::DATA_SHARED.
>
> As Comment 2 mentioned, the SourceSurfaceSkia is created by the Skia
> backend. I am think if we should override IsDataSourceSurface() to allow
> SourceSurfaceSkia/SourceSurfaceCairo can return true because they derive
> from DataSourceSurface. I have tried to modify it locally and it works well.
>
> Might Jeff would have more ideas about this.
I think we should just remove this assert.
Flags: needinfo?(jgilbert)
Updated•8 years ago
|
Whiteboard: [gfx-noted]
Comment hidden (mozreview-request) |
Comment 6•8 years ago
|
||
mozreview-review |
Comment on attachment 8862351 [details]
Bug 1358053 - Remove DataSourceSurface assertion when doing snapshot in WebGL;
https://reviewboard.mozilla.org/r/134270/#review137246
Attachment #8862351 -
Flags: review?(jgilbert) → review+
Pushed by dmu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fe62e230c76e
Remove DataSourceSurface assertion when doing snapshot in WebGL; r=jgilbert
Comment 8•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Comment 9•8 years ago
|
||
Seems like we can just let this ride the 55 train?
Assignee: nobody → dmu
status-firefox53:
--- → wontfix
status-firefox-esr52:
--- → wontfix
Flags: needinfo?(dmu)
Assignee | ||
Comment 10•8 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #9)
> Seems like we can just let this ride the 55 train?
yep. I think so. This is just an assertion for debugging and will not have any effect on the release build.
Flags: needinfo?(dmu)
Updated•8 years ago
|
Updated•8 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•