Closed Bug 1087583 Opened 10 years ago Closed 3 years ago

Stop supporting D2D with D3D9 layers

Categories

(Core :: Graphics: Layers, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1349476

People

(Reporter: jrmuizel, Unassigned)

References

(Blocks 1 open bug)

Details

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.
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.
Depends on: 1102387
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.