Bug 1773128 - Block webrender on several PowerVR GPUs due to crash. r=gfx-reviewers,nical

There is a crash in glFenceSync (used to recycle PBOs when uploading
textures) affecting several PowerVR GPUs. Block webrender on the known
bad combinations of GPU and driver versions.

Differential Revision: https://phabricator.services.mozilla.com/D148638
This commit is contained in:
Jamie Nicol 2022-06-08 13:57:51 +00:00
Родитель 808558c301
Коммит 30384c7460
1 изменённых файлов: 16 добавлений и 0 удалений

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

@ -570,6 +570,18 @@ nsresult GfxInfo::GetFeatureStatusImpl(
mGLStrings->Renderer().Find("Vivante GC7000UL",
/* ignoreCase */ true) >= 0;
const bool isPowerVrFenceSyncCrash =
(mGLStrings->Renderer().Find("PowerVR Rogue G6200",
/* ignoreCase */ true) >= 0 ||
mGLStrings->Renderer().Find("PowerVR Rogue G6430",
/* ignoreCase */ true) >= 0 ||
mGLStrings->Renderer().Find("PowerVR Rogue GX6250",
/* ignoreCase */ true) >= 0) &&
(mGLStrings->Version().Find("3283119", /* ignoreCase */ true) >= 0 ||
mGLStrings->Version().Find("3443629", /* ignoreCase */ true) >= 0 ||
mGLStrings->Version().Find("3573678", /* ignoreCase */ true) >= 0 ||
mGLStrings->Version().Find("3830101", /* ignoreCase */ true) >= 0);
if (isMali4xx) {
// Mali 4xx does not support GLES 3.
*aStatus = nsIGfxInfo::FEATURE_BLOCKED_DEVICE;
@ -582,6 +594,10 @@ nsresult GfxInfo::GetFeatureStatusImpl(
// Blocked on Vivante GC7000UL due to bug 1719327.
*aStatus = nsIGfxInfo::FEATURE_BLOCKED_DEVICE;
aFailureId = "FEATURE_FAILURE_VIVANTE_GC7000UL";
} else if (isPowerVrFenceSyncCrash) {
// Blocked on various PowerVR GPUs due to bug 1773128.
*aStatus = nsIGfxInfo::FEATURE_BLOCKED_DEVICE;
aFailureId = "FEATURE_FAILURE_POWERVR_FENCE_SYNC_CRASH";
} else {
*aStatus = nsIGfxInfo::FEATURE_ALLOW_QUALIFIED;
}