Index: src/gpu/GrContext.cpp |
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp |
index 64f4cb3deca237649047db0ababf9954813ca01e..3c25f3d1a9a986ff2e135767f31e2b74d0b102e3 100755 |
--- a/src/gpu/GrContext.cpp |
+++ b/src/gpu/GrContext.cpp |
@@ -324,7 +324,9 @@ bool GrContext::writeSurfacePixels(GrSurface* surface, |
{ |
GrTexture* texture = NULL; |
if (!(kUnpremul_PixelOpsFlag & pixelOpsFlags) && (texture = surface->asTexture()) && |
- fGpu->canWriteTexturePixels(texture, srcConfig)) { |
+ fGpu->canWriteTexturePixels(texture, srcConfig) && |
+ (!fCaps->useDrawInsteadOfPartialRenderTargetWrite() || !surface->asRenderTarget() || |
+ (width == texture->width() && height == texture->height()))) { |
if (!(kDontFlush_PixelOpsFlag & pixelOpsFlags) && |
surface->surfacePriv().hasPendingIO()) { |