Closed
Bug 1494528
Opened 6 years ago
Closed 6 years ago
GPU process start failure is not handled correctly when WebRender is enabled
Categories
(Core :: Graphics, defect)
Core
Graphics
Tracking
()
RESOLVED
FIXED
mozilla64
Tracking | Status | |
---|---|---|
firefox64 | --- | fixed |
People
(Reporter: sotaro, Assigned: sotaro)
References
(Blocks 1 open bug)
Details
Attachments
(1 file, 1 obsolete file)
1.60 KB,
patch
|
aosmond
:
review+
|
Details | Diff | Splinter Review |
With the following crash log, when gpu loanch is failed, it seemed to try to allocate WebRender in chrome process. But it is disabled and an unexpected STR. https://crash-stats.mozilla.com/report/index/cc18ed3b-af9b-48c5-8d10-24ba30180924
Assignee | ||
Updated•6 years ago
|
Assignee: nobody → sotaro.ikeda.g
Assignee | ||
Updated•6 years ago
|
Summary: GPU process start failure is not handled correctly when WebRender is enabled. → GPU process start failure is not handled correctly
Assignee | ||
Updated•6 years ago
|
Component: Graphics: WebRender → Graphics
Comment hidden (obsolete) |
Assignee | ||
Updated•6 years ago
|
Attachment #9012480 -
Attachment is obsolete: true
Assignee | ||
Updated•6 years ago
|
Summary: GPU process start failure is not handled correctly → GPU process start failure is not handled correctly when WebRender is enabled
Assignee | ||
Comment 2•6 years ago
|
||
When connection to GPU process is failed, GPUProcessManager::DisableGPUProcess() is called and it disables GPU process usage. And gfxPlatform::NotifyGPUProcessDisabled() is called in the DisableGPUProcess(). The NotifyGPUProcessDisabled() disables WebRender if it is enabled. https://dxr.mozilla.org/mozilla-central/source/gfx/thebes/gfxPlatform.cpp#3185
Assignee | ||
Comment 3•6 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #0) > With the following crash log, when gpu loanch is failed, it seemed to try to > allocate WebRender in chrome process. But it is disabled and an unexpected > STR. > > https://crash-stats.mozilla.com/report/index/cc18ed3b-af9b-48c5-8d10-24ba30180924 The crash suggests that GPU process is disabled, but it try to allocate WebRenderAPI in parent process. But in parent process, RenderThread is not initialized. Then it causes crash. One possibility of causing the crash is that GPUProcessManager::EnsureGPUReady() is not called yet when nsBaseWidget::CreateCompositorSession() is called, and the EnsureGPUReady() is called in GPUProcessManager::CreateTopLevelCompositor(). And it failed to connect to GPU process and disabled GPU process and disabled gfxVars::UseWebRender(), but the CreateCompositorSession() already decided to use WebRender before calling the CreateTopLevelCompositor().
Assignee | ||
Comment 4•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Blocks: wr-stability
Assignee | ||
Comment 5•6 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=2d065f9491b930025f262cef118e5d2bc60715cf
Assignee | ||
Updated•6 years ago
|
Attachment #9012539 -
Flags: review?(aosmond)
Comment 6•6 years ago
|
||
Comment on attachment 9012539 [details] [diff] [review] patch - Call GPUProcessManager::EnsureGPUReady() before accessing gfxVars::UseWebRender() Review of attachment 9012539 [details] [diff] [review]: ----------------------------------------------------------------- Nice catch.
Attachment #9012539 -
Flags: review?(aosmond) → review+
Pushed by sikeda@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/a94730ef300e Call GPUProcessManager::EnsureGPUReady() before accessing gfxVars::UseWebRender() r=aosmond
Comment 8•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/a94730ef300e
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox64:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
You need to log in
before you can comment on or make changes to this bug.
Description
•