Chromium Code Reviews| Index: src/gpu/gl/GrGLCaps.cpp |
| diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp |
| index 2b19f1314d6c4592394d237e1fa74968a8949178..3e02e1134d8d0f4a25c8f013c0f8afc453a58937 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,21 @@ void GrGLCaps::init(const GrContextOptions& contextOptions, |
| } |
| } |
|
robertphillips
2015/07/31 17:17:41
Can we just do all this only when SK_BUILD_FOR_WIN
|
| + static const bool kIsWindows = |
| +#ifdef SK_BUILD_FOR_WIN |
| + true; |
| +#else |
| + false; |
| +#endif |
| + |
|
robertphillips
2015/07/31 17:17:41
Maybe:
bool isAngle = ...;
fRGBA8888PixelsOpsAre
|
| + // Angle has slow read/write pixel paths for 32bit RGBA (but fast for BGRA). We're assuming that |
| + // on Windows Chromium we're using ANGLE. |
| + fRGBA8888PixelsOpsAreSlow = kIsWindows && (ctxInfo.driver() == kChromium_GrGLDriver || |
| + ctxInfo.driver() == kANGLE_GrGLDriver); |
| + // On DX9 ANGLE reading a partial FBO is slow. TODO: Check whether this is still true and |
| + // check DX11 ANGLE. |
| + fPartialFBOReadIsSlow = fRGBA8888PixelsOpsAreSlow; |
| + |
| /************************************************************************** |
| * GrShaderCaps fields |
| **************************************************************************/ |
| @@ -1132,6 +1149,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; |
| } |