| Index: src/gpu/gl/GrGLCaps.cpp
|
| diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
|
| index a60230a2fe91de7e744a27a002cac988e6b3f912..47f3f0f0c819d6fd97312bd4cb424ebe42369d92 100644
|
| --- a/src/gpu/gl/GrGLCaps.cpp
|
| +++ b/src/gpu/gl/GrGLCaps.cpp
|
| @@ -47,6 +47,7 @@ void GrGLCaps::reset() {
|
| fFixedFunctionSupport = false;
|
| fDiscardFBSupport = false;
|
| fFullClearIsFree = false;
|
| + fDropsTileOnZeroDivide = false;
|
| }
|
|
|
| GrGLCaps::GrGLCaps(const GrGLCaps& caps) : GrDrawTargetCaps() {
|
| @@ -84,6 +85,7 @@ GrGLCaps& GrGLCaps::operator = (const GrGLCaps& caps) {
|
| fFixedFunctionSupport = caps.fFixedFunctionSupport;
|
| fDiscardFBSupport = caps.fDiscardFBSupport;
|
| fFullClearIsFree = caps.fFullClearIsFree;
|
| + fDropsTileOnZeroDivide = caps.fDropsTileOnZeroDivide;
|
|
|
| return *this;
|
| }
|
| @@ -244,6 +246,9 @@ void GrGLCaps::init(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) {
|
| }
|
| }
|
|
|
| + // Adreno GPUs have a tendency to drop tiles when there is a divide-by-zero in a shader
|
| + fDropsTileOnZeroDivide = kQualcomm_GrGLVendor == ctxInfo.vendor();
|
| +
|
| this->initFSAASupport(ctxInfo, gli);
|
| this->initStencilFormats(ctxInfo);
|
|
|
| @@ -661,5 +666,6 @@ SkString GrGLCaps::dump() const {
|
| (fUseNonVBOVertexAndIndexDynamicData ? "YES" : "NO"));
|
| r.appendf("Discard FrameBuffer support: %s\n", (fDiscardFBSupport ? "YES" : "NO"));
|
| r.appendf("Full screen clear is free: %s\n", (fFullClearIsFree ? "YES" : "NO"));
|
| + r.appendf("Drops tile on zero divide: %s\n", (fDropsTileOnZeroDivide ? "YES" : "NO"));
|
| return r;
|
| }
|
|
|