DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL usage on D3D compositor makes HWND unreusable

RESOLVED FIXED in Firefox 68

Status

()

defect
P1
normal
RESOLVED FIXED
Last month
18 days ago

People

(Reporter: sotaro, Assigned: bas.schouten)

Tracking

(Regression, Regressed 1 bug)

unspecified
mozilla68
Points:
---
Bug Flags:
qe-verify +

Firefox Tracking Flags

(firefox67 unaffected, firefox68 fixed)

Details

Attachments

(1 attachment)

Reporter

Description

Last month

Bug 1547775 enables DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL usage, it makes makes HWND unreusable.

STR
[1] Start Firefox by disabling WebRender.
[2] Open about:support
[3] Push "Terminate GPU Process" button or "Trigger Device Reset" button several times.

Expected result: Compositor fallback to BasicCompositor and rendering update works as expected.

Actual results: Firefox does not update rendering anymore until restarting Firefox.

Reporter

Comment 1

Last month

On WebRender case, CompositorWindow and DirectComposition are used to avoid the problem.

Reporter

Updated

Last month
Blocks: 1547775
Reporter

Updated

Last month
Priority: -- → P1
Reporter

Updated

Last month
Reporter

Comment 2

Last month

:jbonisteel, how do we handle this bug? m-c is already in soft freeze.

Flags: needinfo?(jbonisteel)

I think we should probably back out bug 1547775 until we have a solution to this problem.

Flags: needinfo?(bas)
No longer blocks: 1547775
Regressed by: 1547775
Flags: needinfo?(jbonisteel)
Assignee

Comment 4

Last month

(In reply to Jeff Muizelaar [:jrmuizel] from comment #3)

I think we should probably back out bug 1547775 until we have a solution to this problem.

Maybe we should just use DComp to composite D3D11 layers, I feel that wouldn't be particularly hard, it would probably help us in other ways. I'm a little confused as to why this would happen. So I'll look for a workaround for current painting as well :).

Flags: needinfo?(bas)
Assignee

Updated

Last month
Assignee: nobody → bas
Status: NEW → ASSIGNED
Assignee

Comment 6

Last month

This fix should be simple enough to go to central in soft-freeze, since we already use WebRender using the CompositorWindow. I will follow-up with a bug & patch that implements DirectComposite for the next train. I have it running locally and just need to clean it up.

Attachment #9063913 - Attachment description: Bug 1549674: Use the CompositorWindow to draw to when using DoubleBuffering. r=jrmuizel → Bug 1549674: Use the CompositorWindow to draw to when using DoubleBuffering. r=sotaro
Summary: DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL usage on D3D compositro makes HWND unreusable → DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL usage on D3D compositor makes HWND unreusable
Assignee

Comment 7

Last month

Note that I expect Tresize to regress a little with this patch. It is also a little worse on WebRender confirmed to central as far as I can tell, I believe that to basically be the additional window resizing.

Comment 8

Last month
Pushed by bschouten@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/e96752781d2d
Use the CompositorWindow to draw to when using DoubleBuffering. r=sotaro

Comment 9

Last month
bugherder
Status: ASSIGNED → RESOLVED
Closed: Last month
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
Assignee

Comment 10

Last month

I also believe this will regress Twinopen a little to a point closer to webrender, still better, but worse than it is now. This is unavoidable, but I believe still well off-set by the benefits of bug 1547775, and since we've already decided to accept these numbers for WebRender I believe this should be fine.

Regressions: 1554438

Updated

20 days ago
Regressions: 1554610
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.