aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar bsalomon <bsalomon@google.com>2015-02-13 09:00:39 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-02-13 09:00:39 -0800
commita8fcea0cd09080de45143f2726059398cd8b8049 (patch)
tree565354fac163fe4a948d8ff58d2166ced749d801
parente36914cb205699526988127a827d1a76c9a98d39 (diff)
Limit clear as draw workaround to Adreno 3xx.
This causes more problems than it fixes on the Nexus 6. Review URL: https://codereview.chromium.org/917313005
-rw-r--r--src/gpu/gl/GrGLCaps.cpp2
-rw-r--r--src/gpu/gl/GrGLUtil.cpp12
-rw-r--r--src/gpu/gl/GrGLUtil.h2
3 files changed, 15 insertions, 1 deletions
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index 8d2cb52aad..6d8b4bab25 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -403,7 +403,7 @@ bool GrGLCaps::init(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) {
if (kPowerVR54x_GrGLRenderer == ctxInfo.renderer() ||
kPowerVRRogue_GrGLRenderer == ctxInfo.renderer() ||
- kQualcomm_GrGLVendor == ctxInfo.vendor()) {
+ kAdreno3xx_GrGLRenderer == ctxInfo.renderer()) {
fUseDrawInsteadOfClear = true;
}
diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp
index 9f7b05a3c9..0a17c19c2a 100644
--- a/src/gpu/gl/GrGLUtil.cpp
+++ b/src/gpu/gl/GrGLUtil.cpp
@@ -214,6 +214,18 @@ GrGLRenderer GrGLGetRendererFromString(const char* rendererString) {
SK_ARRAY_COUNT(kPowerVRRogueStr)-1)) {
return kPowerVRRogue_GrGLRenderer;
}
+ int adrenoNumber;
+ n = sscanf(rendererString, "Adreno (TM) %d", &adrenoNumber);
+ if (1 == n) {
+ if (adrenoNumber >= 300) {
+ if (adrenoNumber < 400) {
+ return kAdreno3xx_GrGLRenderer;
+ }
+ if (adrenoNumber < 500) {
+ return kAdreno4xx_GrGLRenderer;
+ }
+ }
+ }
}
return kOther_GrGLRenderer;
}
diff --git a/src/gpu/gl/GrGLUtil.h b/src/gpu/gl/GrGLUtil.h
index 570694af31..3646de548e 100644
--- a/src/gpu/gl/GrGLUtil.h
+++ b/src/gpu/gl/GrGLUtil.h
@@ -45,6 +45,8 @@ enum GrGLRenderer {
kTegra3_GrGLRenderer,
kPowerVR54x_GrGLRenderer,
kPowerVRRogue_GrGLRenderer,
+ kAdreno3xx_GrGLRenderer,
+ kAdreno4xx_GrGLRenderer,
kOther_GrGLRenderer
};