Black flash software webrender (d3d11 compositor) on Windows 10
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox88 | --- | fixed |
People
(Reporter: jrmuizel, Assigned: sotaro)
References
(Blocks 2 open bugs)
Details
Attachments
(2 files)
1.88 KB,
patch
|
Details | Diff | Splinter Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
With software webrender enabled I get a black flash in-between the skeleton UI showing up and the real UI showing up.
Reporter | ||
Updated•3 years ago
|
Comment 1•3 years ago
|
||
Bugbug thinks this bug should belong to this component, but please revert this change in case of error.
Updated•3 years ago
|
Updated•3 years ago
|
Reporter | ||
Comment 2•3 years ago
|
||
This happens without the skeleton UI. The skeleton UI just makes it more noticeable.
Reporter | ||
Comment 3•3 years ago
|
||
To summarize:
HW-WR: no flash
SW-WR-d3d11: black flash
d3d11: no flash
SW-WR: no flash
Sotaro or Matt any guesses as to the cause here?
Assignee | ||
Comment 4•3 years ago
|
||
With the patch, Firefox had red flash. From it, no rendering seems to cause the black flash.
Comment 5•3 years ago
|
||
Is this because RenderCompositorLayersSWGL calls BeginFrameForWindow, which includes a clear?
RenderCompositorSWGL only clears the buffer from StartCompositing/AllocateMappedBuffer.
If there's a frame where gecko calls RenderCompositor::BeginFrame, but WR doesn't call RenderCompositor::StartCompositor, then we'd clear but not draw any surfaces.
Updated•3 years ago
|
Comment 6•3 years ago
|
||
Possibly related to this - Bug 1697310 - about:support fails to render properly with software fallback
Assignee | ||
Comment 7•3 years ago
|
||
(In reply to Matt Woodrow (:mattwoodrow) from comment #5)
If there's a frame where gecko calls RenderCompositor::BeginFrame, but WR doesn't call RenderCompositor::StartCompositor, then we'd clear but not draw any surfaces.
I confirmed that it happened.
Assignee | ||
Updated•3 years ago
|
Comment 8•3 years ago
•
|
||
This seems like maybe a similar problem to bug 1696025 where we realized wr_renderer_update can result in composite_native->start_compositing->StartCompositing being called when not inside the scope of BeginFrame/EndFrame. Not quite the same, but in the same family of bugs maybe.
Updated•3 years ago
|
Assignee | ||
Comment 9•3 years ago
|
||
Updated•3 years ago
|
Comment 10•3 years ago
|
||
Pushed by sikeda.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/200f23c57336 Call mCompositor->EndFrame() only when StartCompositing() is called r=lsalzman
Comment 11•3 years ago
|
||
bugherder |
Description
•