| Index: src/gpu/gl/GrGLCaps.cpp
|
| diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
|
| index 2b19f1314d6c4592394d237e1fa74968a8949178..a4a5b68ade8fec072e54937e4f02a72f4e9f3b42 100644
|
| --- a/src/gpu/gl/GrGLCaps.cpp
|
| +++ b/src/gpu/gl/GrGLCaps.cpp
|
| @@ -50,6 +50,8 @@ GrGLCaps::GrGLCaps(const GrContextOptions& contextOptions,
|
| fFullClearIsFree = false;
|
| fBindFragDataLocationSupport = false;
|
| fSRGBWriteControl = false;
|
| + fRGBA8888PixelsOpsAreSlow = false;
|
| + fPartialFBOReadIsSlow = false;
|
|
|
| fReadPixelsSupportedCache.reset();
|
|
|
| @@ -304,6 +306,17 @@ void GrGLCaps::init(const GrContextOptions& contextOptions,
|
| }
|
| }
|
|
|
| +#ifdef SK_BUILD_FOR_WIN
|
| + // We're assuming that on Windows Chromium we're using ANGLE.
|
| + bool isANGLE = kANGLE_GrGLDriver == ctxInfo.driver() ||
|
| + kChromium_GrGLDriver == ctxInfo.driver();
|
| + // Angle has slow read/write pixel paths for 32bit RGBA (but fast for BGRA).
|
| + fRGBA8888PixelsOpsAreSlow = isANGLE;
|
| + // On DX9 ANGLE reading a partial FBO is slow. TODO: Check whether this is still true and
|
| + // check DX11 ANGLE.
|
| + fPartialFBOReadIsSlow = isANGLE;
|
| +#endif
|
| +
|
| /**************************************************************************
|
| * GrShaderCaps fields
|
| **************************************************************************/
|
| @@ -1132,6 +1145,8 @@ SkString GrGLCaps::dump() const {
|
| (fUseNonVBOVertexAndIndexDynamicData ? "YES" : "NO"));
|
| r.appendf("Full screen clear is free: %s\n", (fFullClearIsFree ? "YES" : "NO"));
|
| r.appendf("SRGB write contol: %s\n", (fSRGBWriteControl ? "YES" : "NO"));
|
| + r.appendf("RGBA 8888 pixel ops are slow: %s\n", (fRGBA8888PixelsOpsAreSlow? "YES" : "NO"));
|
| + r.appendf("Partial FBO read is slow: %s\n", (fPartialFBOReadIsSlow? "YES" : "NO"));
|
| return r;
|
| }
|
|
|
|
|