Commit 5a2bd6fd by Peng Huang Committed by Angle LUCI CQ

Disable shader cache for PowerVR Rogue GPUs.

We disable shader cache for Validating decoder in chrome, so port this workaround into ANGLE to see if it can fix crbug.com/1203652. Bug: chromium:1203652,chromium:480992 Change-Id: I08611c148217abc9c32d11fefe8a7d15873f3b30 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2867269 Commit-Queue: Peng Huang <penghuang@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent e2881e25
......@@ -3818,6 +3818,7 @@ void Context::initCaps()
mState.mExtensions.getProgramBinaryOES = false;
mState.mCaps.shaderBinaryFormats.clear();
mState.mCaps.programBinaryFormats.clear();
mMemoryProgramCache = nullptr;
}
#undef ANGLE_LIMIT_CAP
......
......@@ -170,6 +170,13 @@ bool IsAndroidEmulator(const FunctionsGL *functions)
return angle::BeginsWith(nativeGLRenderer, androidEmulator);
}
bool IsPowerVrRogue(const FunctionsGL *functions)
{
constexpr char powerVRRogue[] = "PowerVR Rogue";
const char *nativeGLRenderer = GetString(functions, GL_RENDERER);
return angle::BeginsWith(nativeGLRenderer, powerVRRogue);
}
void ClearErrors(const FunctionsGL *functions,
const char *file,
const char *function,
......@@ -2177,6 +2184,9 @@ void InitializeFrontendFeatures(const FunctionsGL *functions, angle::FrontendFea
ANGLE_FEATURE_CONDITION(features, disableProgramCachingForTransformFeedback,
IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION(features, syncFramebufferBindingsOnTexImage, false);
// https://crbug.com/480992
// Disable shader program cache to workaround PowerVR Rogue issues.
ANGLE_FEATURE_CONDITION(features, disableProgramBinary, IsPowerVrRogue(functions));
}
void ReInitializeFeaturesAtGPUSwitch(const FunctionsGL *functions, angle::FeaturesGL *features)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment