Disable program binary caching on AMD + ANGLE D3D9

This should fix the flaky GM results that appeared when caching was
fixed/enabled recently.

Bug: skia:10395
Change-Id: Idd35f6a57e94504d56186be3601b52728ada97e7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/297018
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This commit is contained in:
Brian Osman 2020-06-17 10:37:16 -04:00 committed by Skia Commit-Bot
parent 1f14ca04b9
commit 15207b8567
3 changed files with 10 additions and 1 deletions

View File

@ -4007,6 +4007,12 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo,
if (kANGLE_GrGLDriver == ctxInfo.driver()) {
shaderCaps->fCanUseDoLoops = false;
}
// ANGLE's D3D9 backend + AMD GPUs are flaky with program binary caching (skbug.com/10395)
if (ctxInfo.angleBackend() == GrGLANGLEBackend::kD3D9 &&
ctxInfo.angleVendor() == GrGLANGLEVendor::kAMD) {
fProgramBinarySupport = false;
}
}
void GrGLCaps::onApplyOptionsOverrides(const GrContextOptions& options) {

View File

@ -584,6 +584,8 @@ std::tuple<GrGLANGLEBackend, GrGLANGLEVendor, GrGLANGLERenderer> GrGLGetANGLEInf
}
} else if (strstr(rendererString, "NVIDIA")) {
vendor = GrGLANGLEVendor::kNVIDIA;
} else if (strstr(rendererString, "Radeon")) {
vendor = GrGLANGLEVendor::kAMD;
}
if (strstr(rendererString, "Direct3D11")) {
backend = GrGLANGLEBackend::kD3D11;

View File

@ -158,7 +158,8 @@ enum class GrGLANGLEBackend {
enum class GrGLANGLEVendor {
kUnknown,
kIntel,
kNVIDIA
kNVIDIA,
kAMD
};
enum class GrGLANGLERenderer {