aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2018-07-23 12:17:10 -0600
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-07-23 19:05:24 +0000
commitb70beea0a6aa771d70fef25a04f5d9ecf923ee6c (patch)
tree3441fc9c5a2477eedff2461268745dcfd93d603e /src
parent7d31e46a35ce17ad493caa8caf89fe0072e270a9 (diff)
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 <benjaminwagner@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/gpu/gl/GrGLCaps.cpp8
-rw-r--r--src/gpu/gl/GrGLUtil.cpp52
-rw-r--r--src/gpu/gl/GrGLUtil.h1
3 files changed, 35 insertions, 26 deletions
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,