Intermittent assertion failure: it != mDCLayers.end() with os compositor on Windows
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox73 | --- | fixed |
People
(Reporter: sotaro, Assigned: gw)
References
Details
Attachments
(1 file)
During testing by enabling os compositor, there were occasional assert failuress.
Assertion failure: it != mDCLayers.end(), at z:/build/build/src/gfx/webrender_bindings/DCLayerTree.cpp:206
https://treeherder.mozilla.org/#/jobs?repo=try&author=sikeda.birchill%40mozilla.com&selectedJob=278874098
Assignee | ||
Comment 1•6 years ago
|
||
I did a try run [1] that showed the failure in [2] and [3].
From the log files, both asserts occur immediately after new firefox processes are spawned.
It seems there might be a race condition during startup - where somehow the surfaces are bound but haven't been created. I haven't reproduced locally yet, so I'm not sure if it's an issue inside Gecko or WR.
[1] https://treeherder.mozilla.org/#/jobs?repo=try&revision=7a3d87923f2d86b68132334f0c7db510999a76a5&selectedJob=278987650
[2] https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=278987653&repo=try&lineNumber=3902
[3] https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=278987650&repo=try&lineNumber=4607
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 2•6 years ago
|
||
It seems like this may not be occurring on current m-c?
https://treeherder.mozilla.org/#/jobs?repo=try&revision=85b6f6f046c351a7b764e497b67ae8cf868af1e7 still has some pending jobs, but it doesn't seem to have occurred yet.
Reporter | ||
Comment 3•6 years ago
|
||
(In reply to Glenn Watson [:gw] from comment #2)
It seems like this may not be occurring on current m-c?
https://treeherder.mozilla.org/#/jobs?repo=try&revision=85b6f6f046c351a7b764e497b67ae8cf868af1e7 still has some pending jobs, but it doesn't seem to have occurred yet.
The problem still happened, the above link has the assert failure. I also triggered try this morning with os compositor. It also caused the assert failure, though it seemed less frequent.
Assignee | ||
Comment 4•6 years ago
|
||
With the native compositor enabled, try runs were occasionally
hitting an assertion failure where a compositor surface was
being drawn, but hadn't been created (so the id was unknown).
This was occurring when the MemoryPressure event occurs in some
situations during shutdown. When this occurs, the active_documents
list is cleared. This could result in the native surface updates
list (which was stored in the Frame of a Document) not being
applied, meaning the new surface was not created. If a subsequent
frame then tried to composite that surface, this assert would
occur.
This is fixed by moving compositor surface management to be handled
via the resource cache, in the same way as texture cache updates.
This ensures that even in the presence of a memory pressure event,
any pending native surface updates are applied to the renderer.
Comment 6•6 years ago
|
||
bugherder |
Description
•