Closed Bug 1376590 Opened 3 years ago Closed 3 years ago

GPUProcessManager::CreateTopLevelCompositor should initialize same process dependencies when falling back

Categories

(Core :: Graphics, defect, P3)

Unspecified
Windows
defect

Tracking

()

RESOLVED FIXED
mozilla56
Tracking Status
firefox-esr52 --- unaffected
firefox54 --- unaffected
firefox55 --- unaffected
firefox56 --- fixed

People

(Reporter: aosmond, Assigned: aosmond)

References

Details

(Keywords: crash, Whiteboard: [gfx-noted])

Crash Data

Attachments

(1 file)

GPUProcessManager::CreateTopLevelCompositor tries to create a remote compositor session with the GPU process, and if that fails, it will disable the GPU process and try to create an in process compositor session.

The problem with this behaviour is that GPUProcessManager::EnsureCompositorManagerChild (and related) were called when still in the GPU process context. Once we call GPUProcessManager::DisableGPUProcess, we no longer have a valid CompositorManagerChild. We need to call this set of Ensure* functions again after  disabling the GPU process.

This is another root cause of mozilla::layers::CompositorBridgeParent::InitSameProcess crashes.
Assignee: nobody → aosmond
Blocks: 1365927
Status: NEW → ASSIGNED
Crash Signature: [@ mozilla::layers::CompositorBridgeParent::InitSameProcess ]
Keywords: crash
OS: Unspecified → Windows
Priority: -- → P3
Whiteboard: [gfx-noted]
See Also: → 1373540
Attachment #8881578 - Flags: review?(dvander) → review+
Pushed by aosmond@gmail.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/8df38aa68781
When disabling the GPU process, ensure its dependencies are initialized for the same process. r=dvander
https://hg.mozilla.org/mozilla-central/rev/8df38aa68781
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
You need to log in before you can comment on or make changes to this bug.