Bug 1364563 - Update render mode and fallback to software solution when GPU process is killed; r=dvander

MozReview-Commit-ID: 5Sewt2wtku8

--HG--
extra : rebase_source : 94b1743f4e42d2a4526521f61fea9fe3b89a76ec
This commit is contained in:
Kevin Chen 2017-06-29 00:27:03 +08:00
Родитель e0c0104c60
Коммит 863fd1589a
2 изменённых файлов: 12 добавлений и 0 удалений

Просмотреть файл

@ -1326,6 +1326,7 @@ ContentChild::RecvReinitRendering(Endpoint<PCompositorManagerChild>&& aComposito
if (!gfx::VRManagerChild::ReinitForContent(Move(aVRBridge))) {
return IPC_FAIL_NO_REASON(this);
}
gfxPlatform::GetPlatform()->CompositorUpdated();
// Establish new PLayerTransactions.
for (const auto& tabChild : tabs) {

Просмотреть файл

@ -428,6 +428,17 @@ GPUProcessManager::OnRemoteProcessDeviceReset(GPUProcessHost* aHost)
DestroyProcess();
DisableGPUProcess("GPU processed experienced too many device resets");
// Reaches the limited TDR attempts, fallback to software solution.
gfxConfig::SetFailed(Feature::HW_COMPOSITING,
FeatureStatus::Blocked,
"Too many attemps of D3D11 creation, fallback to software solution.");
gfxConfig::SetFailed(Feature::D3D11_COMPOSITING,
FeatureStatus::Blocked,
"Too many attemps of D3D11 creation, fallback to software solution.");
gfxConfig::SetFailed(Feature::DIRECT2D,
FeatureStatus::Blocked,
"Too many attemps of D3D11 creation, fallback to software solution.");
HandleProcessLost();
return;
}