Index: src/gpu/GrGpu.cpp |
diff --git a/src/gpu/GrGpu.cpp b/src/gpu/GrGpu.cpp |
index ab8e5cb5359a4e025f748a89a0db69fc365c6313..39d190e05252ad8564768189348f7389c7c26078 100644 |
--- a/src/gpu/GrGpu.cpp |
+++ b/src/gpu/GrGpu.cpp |
@@ -280,10 +280,13 @@ bool GrGpu::getWritePixelsInfo(GrSurface* dstSurface, int width, int height, siz |
return false; |
} |
- if (this->caps()->useDrawInsteadOfPartialRenderTargetWrite() && |
- SkToBool(dstSurface->asRenderTarget()) && |
- (width < dstSurface->width() || height < dstSurface->height())) { |
- ElevateDrawPreference(drawPreference, kRequireDraw_DrawPreference); |
+ if (SkToBool(dstSurface->asRenderTarget())) { |
+ if (this->caps()->useDrawInsteadOfAllRenderTargetWrites()) { |
+ ElevateDrawPreference(drawPreference, kRequireDraw_DrawPreference); |
+ } else if (this->caps()->useDrawInsteadOfPartialRenderTargetWrite() && |
+ (width < dstSurface->width() || height < dstSurface->height())) { |
+ ElevateDrawPreference(drawPreference, kRequireDraw_DrawPreference); |
+ } |
} |
if (!this->onGetWritePixelsInfo(dstSurface, width, height, rowBytes, srcConfig, drawPreference, |