зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1762025 - Block GPU process on Android versions 12 and above. r=gfx-reviewers,aosmond
On Android version 12, it appears as if the EGL context does not correctly get detached from a Surface when its process dies. This means that subsequent attempts to create an EGL context fail, meaning we cannot render anything. This results in a completely unusable browser following a GPU process crash, which is worse than the alternative of a parent process crash. Block the GPU process on Android 12 and above until we have found a workaround. Differential Revision: https://phabricator.services.mozilla.com/D142452
This commit is contained in:
Родитель
376cbd6128
Коммит
dbde42a288
|
@ -697,6 +697,20 @@ nsresult GfxInfo::GetFeatureStatusImpl(
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (aFeature == FEATURE_GPU_PROCESS) {
|
||||||
|
// On Android 12 the EGL context isn't correctly detached from the Surface
|
||||||
|
// when the process dies, meaning we are subsequently unable to create new
|
||||||
|
// EGL contexts. Block the GPU process on Android 12 and above until we find
|
||||||
|
// a solution. See bug 1762025.
|
||||||
|
if (mSDKVersion >= 31) {
|
||||||
|
*aStatus = nsIGfxInfo::FEATURE_BLOCKED_OS_VERSION;
|
||||||
|
aFailureId = "FEATURE_FAILURE_ANDROID_12";
|
||||||
|
} else {
|
||||||
|
*aStatus = nsIGfxInfo::FEATURE_STATUS_OK;
|
||||||
|
}
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
return GfxInfoBase::GetFeatureStatusImpl(
|
return GfxInfoBase::GetFeatureStatusImpl(
|
||||||
aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, aFailureId, &os);
|
aFeature, aStatus, aSuggestedDriverVersion, aDriverInfo, aFailureId, &os);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче