aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Chris Dalton <csmartdalton@google.com>2018-07-20 12:21:14 -0600
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-07-20 18:58:46 +0000
commit1c1391c2f6991d3250f7c45a360fa13bf60e07d7 (patch)
treea3175276f92ce53389dc4b669730f77854ce24cf /src
parent46656e298b9ff858f5dc48498610786c73914cc8 (diff)
ccpr: Blacklist Sandy Bridge
Bug: skia:8162 Change-Id: I254b31d5b5fc105f80e8a006a885d4110800383a Reviewed-on: https://skia-review.googlesource.com/142792 Reviewed-by: Brian Salomon <bsalomon@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.cpp7
-rw-r--r--src/gpu/gl/GrGLUtil.h2
3 files changed, 17 insertions, 0 deletions
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index 495b862a11..91ed24738d 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -2673,6 +2673,14 @@ void GrGLCaps::applyDriverCorrectnessWorkarounds(const GrGLContextInfo& ctxInfo,
if (kPowerVRRogue_GrGLRenderer == ctxInfo.renderer()) {
fBlacklistCoverageCounting = true;
}
+
+ // CCPR edge AA is busted on Sandy Bridge.
+ // http://skbug.com/8162
+ if (kIntelSandyBridge_GrGLRenderer == ctxInfo.renderer() ||
+ (kANGLE_GrGLRenderer == ctxInfo.renderer() &&
+ GrGLANGLERenderer::kSandyBridge == ctxInfo.angleRenderer())) {
+ fBlacklistCoverageCounting = true;
+ }
}
void GrGLCaps::onApplyOptionsOverrides(const GrContextOptions& options) {
diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp
index 3732b481a9..08b7464553 100644
--- a/src/gpu/gl/GrGLUtil.cpp
+++ b/src/gpu/gl/GrGLUtil.cpp
@@ -387,6 +387,9 @@ GrGLRenderer GrGLGetRendererFromStrings(const char* rendererString,
if (intelNumber >= 6000 && intelNumber < 7000) {
return kIntel6xxx_GrGLRenderer;
}
+ if (intelNumber >= 2000 && intelNumber < 4000) {
+ return kIntelSandyBridge_GrGLRenderer;
+ }
if (intelNumber >= 500 && intelNumber < 600) {
return kIntelSkylake_GrGLRenderer;
}
@@ -449,6 +452,10 @@ void GrGLGetANGLEInfoFromString(const char* rendererString, GrGLANGLEBackend* ba
(1 == sscanf(modelStr, "HD Graphics %i", &modelNumber) ||
1 == sscanf(modelStr, "HD Graphics P%i", &modelNumber))) {
switch (modelNumber) {
+ case 2000:
+ case 3000:
+ *renderer = GrGLANGLERenderer::kSandyBridge;
+ break;
case 4000:
case 2500:
*renderer = GrGLANGLERenderer::kIvyBridge;
diff --git a/src/gpu/gl/GrGLUtil.h b/src/gpu/gl/GrGLUtil.h
index 909c8fd7d5..98b81a19dc 100644
--- a/src/gpu/gl/GrGLUtil.h
+++ b/src/gpu/gl/GrGLUtil.h
@@ -64,6 +64,7 @@ enum GrGLRenderer {
kIntel4xxx_GrGLRenderer,
/** Either HD 6xxx or Iris 6xxx */
kIntel6xxx_GrGLRenderer,
+ kIntelSandyBridge_GrGLRenderer,
kIntelSkylake_GrGLRenderer,
kGalliumLLVM_GrGLRenderer,
kMali4xx_GrGLRenderer,
@@ -102,6 +103,7 @@ enum class GrGLANGLEVendor {
enum class GrGLANGLERenderer {
kUnknown,
+ kSandyBridge,
kIvyBridge,
kSkylake
};