Stop supporting D2D with D3D9 layers

NEW
Unassigned

Status

()

Core
Graphics: Layers
3 years ago
3 years ago

People

(Reporter: jrmuizel, Unassigned)

Tracking

(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

3 years ago
Looking at crashes it seems like we sometimes fallback to D3D9 after using D3D11.

For example in CompositorParent we can fail to initialize the D3D11 compositor but then we'll happily continue trying to use D2D.

This is bad.

Updated

3 years ago
Blocks: 1086611
I am tempted to delay gfxPlatform::InitBackendPrefs to the end of nsBaseWidget::CreateCompositor so that we know whether D3D11 failed (when OMTC is enabled that is). I can't think of anything that would try to render before we create the first LayerManager (which triggers CreateCompositor), but it's hard to be sure. In case it happens, we could just default to cairo/skia software for things that query the backend before CreateCompositor.
Actually, now that I have started untangling the dependencies involved with initializing the backend prefs, I think that moving the creation of the compositor to the initialization of gfxPlatform might be easier.
(In reply to Nicolas Silva [:nical] from comment #2)
> Actually, now that I have started untangling the dependencies involved with
> initializing the backend prefs, I think that moving the creation of the
> compositor to the initialization of gfxPlatform might be easier.

Actually, that's a bit of a mess as well, because there is not one compositor, but one per widget. It would be much easier if the initialization of the backend was decoupled from the creation of the compositor instances.

Updated

3 years ago
Depends on: 1102387
You need to log in before you can comment on or make changes to this bug.