| Index: src/gpu/gl/GrGpuGL.cpp
 | 
| diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
 | 
| index cdf9be9547ab91432e9115500ecef344c9305b14..05f6e0d8aabf59254ed12fe463824a62f4be480d 100644
 | 
| --- a/src/gpu/gl/GrGpuGL.cpp
 | 
| +++ b/src/gpu/gl/GrGpuGL.cpp
 | 
| @@ -2398,8 +2398,8 @@ inline bool can_blit_framebuffer(const GrSurface* dst,
 | 
|                                   const GrSurface* src,
 | 
|                                   const GrGpuGL* gpu,
 | 
|                                   bool* wouldNeedTempFBO = NULL) {
 | 
| -    if (gpu->glCaps().isConfigRenderable(dst->config()) &&
 | 
| -        gpu->glCaps().isConfigRenderable(src->config()) &&
 | 
| +    if (gpu->glCaps().isConfigRenderable(dst->config(), dst->desc().fSampleCnt > 0) &&
 | 
| +        gpu->glCaps().isConfigRenderable(src->config(), src->desc().fSampleCnt > 0) &&
 | 
|          gpu->glCaps().usesMSAARenderBuffers()) {
 | 
|          // ES3 doesn't allow framebuffer blits when the src has MSAA and the configs don't match
 | 
|          // or the rects are not the same (not just the same size but have the same edges).
 | 
| @@ -2439,8 +2439,10 @@ inline bool can_copy_texsubimage(const GrSurface* dst,
 | 
|      if (NULL != srcRT && srcRT->renderFBOID() != srcRT->textureFBOID()) {
 | 
|          return false;
 | 
|      }
 | 
| -    if (gpu->glCaps().isConfigRenderable(src->config()) && NULL != dst->asTexture() &&
 | 
| -        dst->origin() == src->origin() && kIndex_8_GrPixelConfig != src->config()) {
 | 
| +    if (gpu->glCaps().isConfigRenderable(src->config(), src->desc().fSampleCnt > 0) &&
 | 
| +        NULL != dst->asTexture() &&
 | 
| +        dst->origin() == src->origin() &&
 | 
| +        kIndex_8_GrPixelConfig != src->config()) {
 | 
|          if (NULL != wouldNeedTempFBO) {
 | 
|              *wouldNeedTempFBO = NULL == src->asRenderTarget();
 | 
|          }
 | 
| 
 |