diff options
author | 2015-02-13 09:00:39 -0800 | |
---|---|---|
committer | 2015-02-13 09:00:39 -0800 | |
commit | a8fcea0cd09080de45143f2726059398cd8b8049 (patch) | |
tree | 565354fac163fe4a948d8ff58d2166ced749d801 | |
parent | e36914cb205699526988127a827d1a76c9a98d39 (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.cpp | 2 | ||||
-rw-r--r-- | src/gpu/gl/GrGLUtil.cpp | 12 | ||||
-rw-r--r-- | src/gpu/gl/GrGLUtil.h | 2 |
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 }; |