Slow composites when using DComp. Time spent in NtFlipObjectAddPoolBuffer and ZwFlipObjectRemoveContent
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr140 | --- | unaffected |
| firefox150 | --- | fixed |
| firefox151 | --- | fixed |
| firefox152 | --- | fixed |
People
(Reporter: jrmuizel, Assigned: sotaro)
References
(Regression)
Details
(Keywords: regression)
Attachments
(3 files, 1 obsolete file)
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-beta+
|
Details | Review |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-release+
|
Details | Review |
From https://www.reddit.com/r/firefox/comments/1t049ar/jerky_stuttery_scrolling/
Browser runs better when profiling with screenshots which disables DirectComposition.
Happens on Nvidia
Here's an excerpt of the profile: https://share.firefox.dev/4tKqxmy
DirectComposition::CDevice::CreateCompositionTexture is waiting on NtFlipObjectAddPoolBuffer
and releasing it gets stuck on ZwFlipObjectRemoveContent
| Assignee | ||
Comment 2•21 days ago
|
||
It's particularly bad on websites with embedded video. LinkedIn is really bad when there's a video on the page, but smooth otherwise with pictures and text. Here's an example, this blog has video in the page, and scrolling through that is slow and jerky. Smooth once the video is off the screen.
Current DCLayerTree has a mechanism to detect slow present with video overlay. But it seemed not work in this case.
| Assignee | ||
Comment 3•21 days ago
|
||
It seems better to disable WebGL overlay if RenderDXGITextureHost::GetDCompositionTexture() becomes slow.
And going to look into if I could reproduce the problem.
| Assignee | ||
Comment 4•21 days ago
•
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #0)
From https://www.reddit.com/r/firefox/comments/1t049ar/jerky_stuttery_scrolling/
Browser runs better when profiling with screenshots which disables DirectComposition.
With layer compositor, DirectComposition is not disabled during taking profile with screenshot. It just disables overlays.
| Assignee | ||
Comment 5•21 days ago
|
||
I could reproduce the problem with the following with NVIDIA GPU. I am going to look into it.
| Assignee | ||
Updated•21 days ago
|
| Assignee | ||
Comment 6•21 days ago
|
||
With WebGL, gl::SharedSurface is recycled in WebGLContext::PushRemoteTexture(). But TextureHost is not recycled. The TextureHost is always created in RemoteTextureOwnerClient::PushTexture(). Then RenderDXGITextureHost is always created for rendering update. Then IDCompositionTexture was always created in RenderDXGITextureHost::GetDCompositionTexture() for each update.
| Assignee | ||
Updated•19 days ago
|
Comment 7•19 days ago
|
||
Set release status flags based on info from the regressing bug 2008399
| Assignee | ||
Comment 8•18 days ago
|
||
Disable WebGL/WebGPU overlay until Bug 2036655 is addressed.
| Assignee | ||
Comment 9•18 days ago
|
||
Disable overlay of WebGL/WebGPU until Bug 2036655 is addressed.
Comment 10•18 days ago
|
||
| Assignee | ||
Updated•18 days ago
|
Comment 11•18 days ago
|
||
firefox-beta Uplift Approval Request
- User impact if declined/Reason for urgency: Bad performance regression on WebGL on some platforms
- Code covered by automated testing?: yes
- Fix verified in Nightly?: no
- Needs manual QE testing?: no
- Steps to reproduce for manual QE testing:
- Risk associated with taking this patch: low
- Explanation of risk level: This just reverts the change from bug 2013143
- String changes made/needed?: No
- Is Android affected?: no
| Reporter | ||
Comment 12•18 days ago
|
||
Disable WebGL/WebGPU overlay until Bug 2036655 is addressed.
Original Revision: https://phabricator.services.mozilla.com/D298160
Comment 13•18 days ago
|
||
firefox-release Uplift Approval Request
- User impact if declined/Reason for urgency: Bad performance regression on WebGL on some platforms
- Code covered by automated testing?: yes
- Fix verified in Nightly?: no
- Needs manual QE testing?: no
- Steps to reproduce for manual QE testing:
- Risk associated with taking this patch: low
- Explanation of risk level: This just reverts the change from bug 2013143
- String changes made/needed?: No
- Is Android affected?: no
| Reporter | ||
Comment 14•18 days ago
|
||
Disable WebGL/WebGPU overlay until Bug 2036655 is addressed.
Original Revision: https://phabricator.services.mozilla.com/D298160
Comment 15•18 days ago
|
||
| bugherder | ||
Updated•17 days ago
|
Updated•17 days ago
|
Comment 16•17 days ago
|
||
| uplift | ||
Updated•17 days ago
|
Updated•17 days ago
|
Comment 17•17 days ago
|
||
| uplift | ||
Updated•15 days ago
|
Description
•