Assertion failure calling gl->Screen()->Front()->ToSurfaceDescriptor() in WebGLContext::Present (on Android)
Categories
(Core :: Graphics: CanvasWebGL, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox75 | --- | fixed |
People
(Reporter: mortimergoro, Assigned: mortimergoro)
References
Details
Attachments
(1 file)
Crash report from Firefox Reality: https://crash-stats.mozilla.com/report/index/8237e8f0-e8d8-4071-a28f-d7ff40200220
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
•
|
||
The crash only happens with e10s disabled. After some research I was able to reproduce the issue using a minimal testcase:
- If a canvas is sized using CSS styles the webgl test runs correctly
- If a canvas is sized using JS (canvas.width = value)
gl->Screen()->Front()->ToSurfaceDescriptor()
crashes
The problem is related to backbuffer not being regenerated after the gl->Screen()->Morph(std::move(factory))
call. When using JS sized canvas the DrawingBufferSize
and gl->Screen()->Size()
are equal. This leads to Resize not being called in PresentScreenBuffer, which ends with a FrontBuffer which has not been created using the new factory after screen->PublishFrame();
Comment 2•4 years ago
|
||
Yep, that sounds like a problem.
Comment 3•4 years ago
|
||
What I'm thinking of doing is changing this API generally to be BlitToNewSharedSurface, instead of the current GLScreenBuffer dance.
Assignee | ||
Comment 4•4 years ago
|
||
Pushed by igorostizaga@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e3a8032a4a14 Ensure that GLScreenBuffer back buffer is created using the newly attached factory r=jgilbert
Comment 6•4 years ago
|
||
bugherder |
Comment 7•4 years ago
•
|
||
Backed out for andoird webgl failures.
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=290802300&repo=autoland&lineNumber=1953
Backout: https://hg.mozilla.org/integration/autoland/rev/2e06f187b37127a9640b077da662bf878cb82acd
Comment 8•4 years ago
|
||
Backout merged: https://hg.mozilla.org/mozilla-central/rev/2e06f187b371
Updated•4 years ago
|
Pushed by igorostizaga@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8d3e96a5a07a Ensure that GLScreenBuffer back buffer is created using the newly attached factory. r=jgilbert
Assignee | ||
Updated•4 years ago
|
Comment 10•4 years ago
|
||
bugherder |
Description
•