From b70beea0a6aa771d70fef25a04f5d9ecf923ee6c Mon Sep 17 00:00:00 2001 From: Chris Dalton Date: Mon, 23 Jul 2018 12:17:10 -0600 Subject: ccpr: Blacklist Bay Trail and Sandybridge on Mesa Bug: skia:8162 Change-Id: I16d8b9a93151c9e568b5c27e6ad6c3cf5b717fe1 Reviewed-on: https://skia-review.googlesource.com/142940 Reviewed-by: Ben Wagner Commit-Queue: Chris Dalton --- src/gpu/gl/GrGLCaps.cpp | 8 ++++---- src/gpu/gl/GrGLUtil.cpp | 52 ++++++++++++++++++++++++++++--------------------- src/gpu/gl/GrGLUtil.h | 1 + 3 files changed, 35 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index 91ed24738d..5532e36bd0 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -2674,11 +2674,11 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo, fBlacklistCoverageCounting = true; } - // CCPR edge AA is busted on Sandy Bridge. + // CCPR edge AA is busted on Mesa, Sandy Bridge/Bay Trail. // http://skbug.com/8162 - if (kIntelSandyBridge_GrGLRenderer == ctxInfo.renderer() || - (kANGLE_GrGLRenderer == ctxInfo.renderer() && - GrGLANGLERenderer::kSandyBridge == ctxInfo.angleRenderer())) { + if (kMesa_GrGLDriver == ctxInfo.driver() && + (kIntelSandyBridge_GrGLRenderer == ctxInfo.renderer() || + kIntelBayTrail_GrGLRenderer == ctxInfo.renderer())) { fBlacklistCoverageCounting = true; } } diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp index 08b7464553..762c880e42 100644 --- a/src/gpu/gl/GrGLUtil.cpp +++ b/src/gpu/gl/GrGLUtil.cpp @@ -367,31 +367,39 @@ GrGLRenderer GrGLGetRendererFromStrings(const char* rendererString, if (0 == strcmp("Google SwiftShader", rendererString)) { return kGoogleSwiftShader_GrGLRenderer; } - if (0 == strcmp("Intel Iris Pro OpenGL Engine", rendererString)) { - return kIntelIrisPro_GrGLRenderer; - } - - int intelNumber; - if (sscanf(rendererString, "Intel(R) Iris(TM) Graphics %d", &intelNumber) || - sscanf(rendererString, "Intel(R) Iris(TM) Pro Graphics %d", &intelNumber) || - sscanf(rendererString, "Intel(R) Iris(TM) Pro Graphics P%d", &intelNumber) || - sscanf(rendererString, "Intel(R) Iris(R) Graphics %d", &intelNumber) || - sscanf(rendererString, "Intel(R) Iris(R) Pro Graphics %d", &intelNumber) || - sscanf(rendererString, "Intel(R) Iris(R) Pro Graphics P%d", &intelNumber) || - sscanf(rendererString, "Intel(R) HD Graphics %d", &intelNumber) || - sscanf(rendererString, "Intel(R) HD Graphics P%d", &intelNumber)) { - - if (intelNumber >= 4000 && intelNumber < 5000) { - return kIntel4xxx_GrGLRenderer; - } - if (intelNumber >= 6000 && intelNumber < 7000) { - return kIntel6xxx_GrGLRenderer; + + if (const char* intelString = strstr(rendererString, "Intel")) { + if (0 == strcmp("Intel Iris Pro OpenGL Engine", intelString)) { + return kIntelIrisPro_GrGLRenderer; } - if (intelNumber >= 2000 && intelNumber < 4000) { + if (strstr(intelString, "Sandybridge")) { return kIntelSandyBridge_GrGLRenderer; } - if (intelNumber >= 500 && intelNumber < 600) { - return kIntelSkylake_GrGLRenderer; + if (strstr(intelString, "Bay Trail")) { + return kIntelBayTrail_GrGLRenderer; + } + int intelNumber; + if (sscanf(intelString, "Intel(R) Iris(TM) Graphics %d", &intelNumber) || + sscanf(intelString, "Intel(R) Iris(TM) Pro Graphics %d", &intelNumber) || + sscanf(intelString, "Intel(R) Iris(TM) Pro Graphics P%d", &intelNumber) || + sscanf(intelString, "Intel(R) Iris(R) Graphics %d", &intelNumber) || + sscanf(intelString, "Intel(R) Iris(R) Pro Graphics %d", &intelNumber) || + sscanf(intelString, "Intel(R) Iris(R) Pro Graphics P%d", &intelNumber) || + sscanf(intelString, "Intel(R) HD Graphics %d", &intelNumber) || + sscanf(intelString, "Intel(R) HD Graphics P%d", &intelNumber)) { + + if (intelNumber >= 4000 && intelNumber < 5000) { + return kIntel4xxx_GrGLRenderer; + } + if (intelNumber >= 6000 && intelNumber < 7000) { + return kIntel6xxx_GrGLRenderer; + } + if (intelNumber >= 2000 && intelNumber < 4000) { + return kIntelSandyBridge_GrGLRenderer; + } + if (intelNumber >= 500 && intelNumber < 600) { + return kIntelSkylake_GrGLRenderer; + } } } diff --git a/src/gpu/gl/GrGLUtil.h b/src/gpu/gl/GrGLUtil.h index 98b81a19dc..38c7135bfd 100644 --- a/src/gpu/gl/GrGLUtil.h +++ b/src/gpu/gl/GrGLUtil.h @@ -65,6 +65,7 @@ enum GrGLRenderer { /** Either HD 6xxx or Iris 6xxx */ kIntel6xxx_GrGLRenderer, kIntelSandyBridge_GrGLRenderer, + kIntelBayTrail_GrGLRenderer, kIntelSkylake_GrGLRenderer, kGalliumLLVM_GrGLRenderer, kMali4xx_GrGLRenderer, -- cgit v1.2.3