Don't reuse scratch textures update

https://codereview.chromium.org/23609026/



git-svn-id: http://skia.googlecode.com/svn/trunk@11366 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp
index 1cd04d9..8c8fbfc 100644
--- a/src/gpu/GrInOrderDrawBuffer.cpp
+++ b/src/gpu/GrInOrderDrawBuffer.cpp
@@ -567,9 +567,8 @@
     fDstGpu->initCopySurfaceDstDesc(src, desc);
 }
 
-void GrInOrderDrawBuffer::willReserveVertexAndIndexSpace(
-                                int vertexCount,
-                                int indexCount) {
+void GrInOrderDrawBuffer::willReserveVertexAndIndexSpace(int vertexCount,
+                                                         int indexCount) {
     // We use geometryHints() to know whether to flush the draw buffer. We
     // can't flush if we are inside an unbalanced pushGeometrySource.
     // Moreover, flushing blows away vertex and index data that was
diff --git a/src/gpu/GrSWMaskHelper.cpp b/src/gpu/GrSWMaskHelper.cpp
index f6e6c31..6b2a759 100644
--- a/src/gpu/GrSWMaskHelper.cpp
+++ b/src/gpu/GrSWMaskHelper.cpp
@@ -7,6 +7,7 @@
 
 #include "GrSWMaskHelper.h"
 #include "GrDrawState.h"
+#include "GrDrawTargetCaps.h"
 #include "GrGpu.h"
 
 #include "SkStrokeRec.h"
@@ -133,9 +134,14 @@
 void GrSWMaskHelper::toTexture(GrTexture *texture) {
     SkAutoLockPixels alp(fBM);
 
+    // If we aren't reusing scratch textures we don't need to flush before
+    // writing since no one else will be using 'texture'
+    bool reuseScratch = fContext->getGpu()->caps()->reuseScratchTextures();
+
     texture->writePixels(0, 0, fBM.width(), fBM.height(),
                          kAlpha_8_GrPixelConfig,
-                         fBM.getPixels(), fBM.rowBytes());
+                         fBM.getPixels(), fBM.rowBytes(),
+                         reuseScratch ? 0 : GrContext::kDontFlush_PixelOpsFlag);
 }
 
 ////////////////////////////////////////////////////////////////////////////////