| Index: src/gpu/GrOvalRenderer.cpp | 
| diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp | 
| index 5c231bdeae03cad2712551ed4224f7f48c9429d1..112c344913e1b85d1c31aa75065435ed8078cd4f 100644 | 
| --- a/src/gpu/GrOvalRenderer.cpp | 
| +++ b/src/gpu/GrOvalRenderer.cpp | 
| @@ -434,7 +434,7 @@ public: | 
| public: | 
| GLProcessor(const GrGeometryProcessor&, | 
| const GrBatchTracker&) | 
| -            : fColor(GrColor_ILLEGAL) {} | 
| +            : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) {} | 
|  | 
| void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{ | 
| const DIEllipseEdgeEffect& ee = args.fGP.cast<DIEllipseEdgeEffect>(); | 
| @@ -460,7 +460,8 @@ public: | 
| } | 
|  | 
| // Setup position | 
| -            this->setupPosition(pb, gpArgs, ee.inPosition()->fName, ee.viewMatrix()); | 
| +            this->setupPosition(pb, gpArgs, ee.inPosition()->fName, ee.viewMatrix(), | 
| +                                &fViewMatrixUniform); | 
|  | 
| // emit transforms | 
| this->emitTransforms(args.fPB, gpArgs->fPositionVar, ee.inPosition()->fName, | 
| @@ -522,7 +523,13 @@ public: | 
| const GrPrimitiveProcessor& gp, | 
| const GrBatchTracker& bt) override { | 
| const DIEllipseEdgeEffect& dee = gp.cast<DIEllipseEdgeEffect>(); | 
| -            this->setUniformViewMatrix(pdman, dee.viewMatrix()); | 
| + | 
| +            if (!dee.viewMatrix().isIdentity() && !fViewMatrix.cheapEqualTo(dee.viewMatrix())) { | 
| +                fViewMatrix = dee.viewMatrix(); | 
| +                GrGLfloat viewMatrix[3 * 3]; | 
| +                GrGLGetMatrix<3>(viewMatrix, fViewMatrix); | 
| +                pdman.setMatrix3f(fViewMatrixUniform, viewMatrix); | 
| +            } | 
|  | 
| if (dee.color() != fColor) { | 
| GrGLfloat c[4]; | 
| @@ -533,8 +540,10 @@ public: | 
| } | 
|  | 
| private: | 
| +        SkMatrix fViewMatrix; | 
| GrColor fColor; | 
| UniformHandle fColorUniform; | 
| +        UniformHandle fViewMatrixUniform; | 
|  | 
| typedef GrGLGeometryProcessor INHERITED; | 
| }; | 
|  |