Closed
Bug 1358053
Opened 6 years ago
Closed 6 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•6 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•6 years ago
|
Flags: needinfo?(jgilbert) → needinfo?(jgilbert)
Comment 2•6 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•6 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•6 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•6 years ago
|
Whiteboard: [gfx-noted]
Comment hidden (mozreview-request) |
Comment 6•6 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•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/fe62e230c76e
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Comment 9•6 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•6 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•6 years ago
|
Updated•6 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•