Fetch random numbers for TestCreate in a predictable order.

We want our randomized tests to behave predictably when given a fixed
seed, but C++ is allowed to arbitrarily reorder our calls to
random->nextXxxx() when we call it more than once on the same line.
Each random-fetching call is now performed separately.

Change-Id: I8d9c0fcd7e5c931d3a963a2e401ea8b66535fc4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/402716
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
diff --git a/src/gpu/GrDefaultGeoProcFactory.cpp b/src/gpu/GrDefaultGeoProcFactory.cpp
index dc36fc1..e306ed4 100644
--- a/src/gpu/GrDefaultGeoProcFactory.cpp
+++ b/src/gpu/GrDefaultGeoProcFactory.cpp
@@ -275,13 +275,18 @@
         flags |= kLocalCoordAttribute_GPFlag;
     }
 
+    GrColor color = GrRandomColor(d->fRandom);
+    SkMatrix viewMtx = GrTest::TestMatrix(d->fRandom);
+    SkMatrix localMtx = GrTest::TestMatrix(d->fRandom);
+    bool readsLocalCoords = d->fRandom->nextBool();
+    uint8_t coverage = GrRandomCoverage(d->fRandom);
     return DefaultGeoProc::Make(d->allocator(),
                                 flags,
-                                SkPMColor4f::FromBytes_RGBA(GrRandomColor(d->fRandom)),
-                                GrTest::TestMatrix(d->fRandom),
-                                GrTest::TestMatrix(d->fRandom),
-                                d->fRandom->nextBool(),
-                                GrRandomCoverage(d->fRandom));
+                                SkPMColor4f::FromBytes_RGBA(color),
+                                viewMtx,
+                                localMtx,
+                                readsLocalCoords,
+                                coverage);
 }
 #endif
 
diff --git a/src/gpu/effects/GrAARectEffect.fp b/src/gpu/effects/GrAARectEffect.fp
index 89a7244..0f4afab 100644
--- a/src/gpu/effects/GrAARectEffect.fp
+++ b/src/gpu/effects/GrAARectEffect.fp
@@ -53,10 +53,11 @@
 }
 
 @test(d) {
-    SkRect rect = SkRect::MakeLTRB(d->fRandom->nextSScalar1(),
-                                   d->fRandom->nextSScalar1(),
-                                   d->fRandom->nextSScalar1(),
-                                   d->fRandom->nextSScalar1());
+    SkScalar l = d->fRandom->nextSScalar1();
+    SkScalar t = d->fRandom->nextSScalar1();
+    SkScalar r = d->fRandom->nextSScalar1();
+    SkScalar b = d->fRandom->nextSScalar1();
+    SkRect rect = SkRect::MakeLTRB(l, t, r, b);
     rect.sort();
     GrClipEdgeType edgeType = static_cast<GrClipEdgeType>(
             d->fRandom->nextULessThan(kGrClipEdgeTypeCnt));
diff --git a/src/gpu/effects/GrArithmeticProcessor.fp b/src/gpu/effects/GrArithmeticProcessor.fp
index 7b1f0cf..548f38a 100644
--- a/src/gpu/effects/GrArithmeticProcessor.fp
+++ b/src/gpu/effects/GrArithmeticProcessor.fp
@@ -37,8 +37,13 @@
 }
 
 @test(d) {
+    SkV4 k;
+    k.x = d->fRandom->nextF();
+    k.y = d->fRandom->nextF();
+    k.z = d->fRandom->nextF();
+    k.w = d->fRandom->nextF();
+    bool enforcePMColor = d->fRandom->nextBool();
     return GrArithmeticProcessor::Make(
             GrProcessorUnitTest::MakeChildFP(d), GrProcessorUnitTest::MakeChildFP(d),
-            {d->fRandom->nextF(), d->fRandom->nextF(), d->fRandom->nextF(), d->fRandom->nextF()},
-            d->fRandom->nextBool());
+            k, enforcePMColor);
 }
diff --git a/src/gpu/effects/GrBezierEffect.cpp b/src/gpu/effects/GrBezierEffect.cpp
index fa4632b..3234146 100644
--- a/src/gpu/effects/GrBezierEffect.cpp
+++ b/src/gpu/effects/GrBezierEffect.cpp
@@ -207,10 +207,16 @@
 
 #if GR_TEST_UTILS
 GrGeometryProcessor* GrConicEffect::TestCreate(GrProcessorTestData* d) {
+    GrColor color = GrRandomColor(d->fRandom);
+    SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom);
+    SkMatrix localMatrix = GrTest::TestMatrix(d->fRandom);
+    bool usesLocalCoords = d->fRandom->nextBool();
     return GrConicEffect::Make(d->allocator(),
-                               SkPMColor4f::FromBytes_RGBA(GrRandomColor(d->fRandom)),
-                               GrTest::TestMatrix(d->fRandom), *d->caps(),
-                               GrTest::TestMatrix(d->fRandom), d->fRandom->nextBool());
+                               SkPMColor4f::FromBytes_RGBA(color),
+                               viewMatrix,
+                               *d->caps(),
+                               localMatrix,
+                               usesLocalCoords);
 }
 #endif
 
@@ -377,9 +383,15 @@
 
 #if GR_TEST_UTILS
 GrGeometryProcessor* GrQuadEffect::TestCreate(GrProcessorTestData* d) {
+    GrColor color = GrRandomColor(d->fRandom);
+    SkMatrix viewMatrix = GrTest::TestMatrix(d->fRandom);
+    SkMatrix localMatrix = GrTest::TestMatrix(d->fRandom);
+    bool usesLocalCoords = d->fRandom->nextBool();
     return GrQuadEffect::Make(d->allocator(),
-                              SkPMColor4f::FromBytes_RGBA(GrRandomColor(d->fRandom)),
-                              GrTest::TestMatrix(d->fRandom), *d->caps(),
-                              GrTest::TestMatrix(d->fRandom), d->fRandom->nextBool());
+                              SkPMColor4f::FromBytes_RGBA(color),
+                              viewMatrix,
+                              *d->caps(),
+                              localMatrix,
+                              usesLocalCoords);
 }
 #endif
diff --git a/src/gpu/effects/GrBitmapTextGeoProc.cpp b/src/gpu/effects/GrBitmapTextGeoProc.cpp
index 9e1ba8b..470db88 100644
--- a/src/gpu/effects/GrBitmapTextGeoProc.cpp
+++ b/src/gpu/effects/GrBitmapTextGeoProc.cpp
@@ -231,10 +231,14 @@
             break;
     }
 
+    GrColor color = GrRandomColor(d->fRandom);
+    bool wideColor = d->fRandom->nextBool();
+    SkMatrix localMatrix = GrTest::TestMatrix(d->fRandom);
+    bool usesW = d->fRandom->nextBool();
     return GrBitmapTextGeoProc::Make(d->allocator(), *d->caps()->shaderCaps(),
-                                     SkPMColor4f::FromBytes_RGBA(GrRandomColor(d->fRandom)),
-                                     d->fRandom->nextBool(),
+                                     SkPMColor4f::FromBytes_RGBA(color),
+                                     wideColor,
                                      &view, 1, samplerState, format,
-                                     GrTest::TestMatrix(d->fRandom), d->fRandom->nextBool());
+                                     localMatrix, usesW);
 }
 #endif
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index 5cbdce7..6dd6780 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -579,10 +579,11 @@
     if (flags & kSimilarity_DistanceFieldEffectFlag) {
         flags |= d->fRandom->nextBool() ? kScaleOnly_DistanceFieldEffectFlag : 0;
     }
-
+    SkMatrix localMatrix = GrTest::TestMatrix(d->fRandom);
+    bool wideColor = d->fRandom->nextBool();
     return GrDistanceFieldPathGeoProc::Make(d->allocator(), *d->caps()->shaderCaps(),
-                                            GrTest::TestMatrix(d->fRandom),
-                                            d->fRandom->nextBool(),
+                                            localMatrix,
+                                            wideColor,
                                             &view, 1,
                                             samplerState,
                                             flags);
diff --git a/src/gpu/effects/generated/GrAARectEffect.cpp b/src/gpu/effects/generated/GrAARectEffect.cpp
index d8782d2..52894bd 100644
--- a/src/gpu/effects/generated/GrAARectEffect.cpp
+++ b/src/gpu/effects/generated/GrAARectEffect.cpp
@@ -125,10 +125,11 @@
 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrAARectEffect);
 #if GR_TEST_UTILS
 std::unique_ptr<GrFragmentProcessor> GrAARectEffect::TestCreate(GrProcessorTestData* d) {
-    SkRect rect = SkRect::MakeLTRB(d->fRandom->nextSScalar1(),
-                                   d->fRandom->nextSScalar1(),
-                                   d->fRandom->nextSScalar1(),
-                                   d->fRandom->nextSScalar1());
+    SkScalar l = d->fRandom->nextSScalar1();
+    SkScalar t = d->fRandom->nextSScalar1();
+    SkScalar r = d->fRandom->nextSScalar1();
+    SkScalar b = d->fRandom->nextSScalar1();
+    SkRect rect = SkRect::MakeLTRB(l, t, r, b);
     rect.sort();
     GrClipEdgeType edgeType =
             static_cast<GrClipEdgeType>(d->fRandom->nextULessThan(kGrClipEdgeTypeCnt));
diff --git a/src/gpu/effects/generated/GrArithmeticProcessor.cpp b/src/gpu/effects/generated/GrArithmeticProcessor.cpp
index dd50569..1d95a09 100644
--- a/src/gpu/effects/generated/GrArithmeticProcessor.cpp
+++ b/src/gpu/effects/generated/GrArithmeticProcessor.cpp
@@ -95,10 +95,15 @@
 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrArithmeticProcessor);
 #if GR_TEST_UTILS
 std::unique_ptr<GrFragmentProcessor> GrArithmeticProcessor::TestCreate(GrProcessorTestData* d) {
-    return GrArithmeticProcessor::Make(
-            GrProcessorUnitTest::MakeChildFP(d),
-            GrProcessorUnitTest::MakeChildFP(d),
-            {d->fRandom->nextF(), d->fRandom->nextF(), d->fRandom->nextF(), d->fRandom->nextF()},
-            d->fRandom->nextBool());
+    SkV4 k;
+    k.x = d->fRandom->nextF();
+    k.y = d->fRandom->nextF();
+    k.z = d->fRandom->nextF();
+    k.w = d->fRandom->nextF();
+    bool enforcePMColor = d->fRandom->nextBool();
+    return GrArithmeticProcessor::Make(GrProcessorUnitTest::MakeChildFP(d),
+                                       GrProcessorUnitTest::MakeChildFP(d),
+                                       k,
+                                       enforcePMColor);
 }
 #endif
diff --git a/src/gpu/gradients/GrLinearGradientLayout.fp b/src/gpu/gradients/GrLinearGradientLayout.fp
index 30d55ba..e512c2a 100644
--- a/src/gpu/gradients/GrLinearGradientLayout.fp
+++ b/src/gpu/gradients/GrLinearGradientLayout.fp
@@ -51,10 +51,11 @@
 
 @test(d) {
     SkScalar scale = GrGradientShader::RandomParams::kGradientScale;
-    SkPoint points[] = {{d->fRandom->nextRangeScalar(0.0f, scale),
-                         d->fRandom->nextRangeScalar(0.0f, scale)},
-                        {d->fRandom->nextRangeScalar(0.0f, scale),
-                         d->fRandom->nextRangeScalar(0.0f, scale)}};
+    SkPoint points[2];
+    points[0].fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    points[0].fY = d->fRandom->nextRangeScalar(0.0f, scale);
+    points[1].fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    points[1].fY = d->fRandom->nextRangeScalar(0.0f, scale);
 
     GrGradientShader::RandomParams params(d->fRandom);
     auto shader = params.fUseColors4f ?
diff --git a/src/gpu/gradients/GrRadialGradientLayout.fp b/src/gpu/gradients/GrRadialGradientLayout.fp
index dab821c..6982df5 100644
--- a/src/gpu/gradients/GrRadialGradientLayout.fp
+++ b/src/gpu/gradients/GrRadialGradientLayout.fp
@@ -48,8 +48,9 @@
     GrTest::TestAsFPArgs asFPArgs(d);
     do {
         GrGradientShader::RandomParams params(d->fRandom);
-        SkPoint center = {d->fRandom->nextRangeScalar(0.0f, scale),
-                          d->fRandom->nextRangeScalar(0.0f, scale)};
+        SkPoint center;
+        center.fX = d->fRandom->nextRangeScalar(0.0f, scale);
+        center.fY = d->fRandom->nextRangeScalar(0.0f, scale);
         SkScalar radius = d->fRandom->nextRangeScalar(0.0f, scale);
         sk_sp<SkShader> shader = params.fUseColors4f
                          ? SkGradientShader::MakeRadial(center, radius, params.fColors4f,
diff --git a/src/gpu/gradients/GrSweepGradientLayout.fp b/src/gpu/gradients/GrSweepGradientLayout.fp
index 6c69144..1e586a8 100644
--- a/src/gpu/gradients/GrSweepGradientLayout.fp
+++ b/src/gpu/gradients/GrSweepGradientLayout.fp
@@ -59,8 +59,9 @@
 
 @test(d) {
     SkScalar scale = GrGradientShader::RandomParams::kGradientScale;
-    SkPoint center = {d->fRandom->nextRangeScalar(0.0f, scale),
-                      d->fRandom->nextRangeScalar(0.0f, scale)};
+    SkPoint center;
+    center.fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    center.fY = d->fRandom->nextRangeScalar(0.0f, scale);
 
     GrGradientShader::RandomParams params(d->fRandom);
     auto shader = params.fUseColors4f ?
diff --git a/src/gpu/gradients/GrTwoPointConicalGradientLayout.fp b/src/gpu/gradients/GrTwoPointConicalGradientLayout.fp
index ca6b0a7..f98d4e2 100644
--- a/src/gpu/gradients/GrTwoPointConicalGradientLayout.fp
+++ b/src/gpu/gradients/GrTwoPointConicalGradientLayout.fp
@@ -217,10 +217,11 @@
     SkScalar scale = GrGradientShader::RandomParams::kGradientScale;
     SkScalar offset = scale / 32.0f;
 
-    SkPoint center1 = {d->fRandom->nextRangeScalar(0.0f, scale),
-                       d->fRandom->nextRangeScalar(0.0f, scale)};
-    SkPoint center2 = {d->fRandom->nextRangeScalar(0.0f, scale),
-                       d->fRandom->nextRangeScalar(0.0f, scale)};
+    SkPoint center1, center2;
+    center1.fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    center1.fY = d->fRandom->nextRangeScalar(0.0f, scale);
+    center2.fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    center2.fY = d->fRandom->nextRangeScalar(0.0f, scale);
     SkScalar radius1 = d->fRandom->nextRangeScalar(0.0f, scale);
     SkScalar radius2 = d->fRandom->nextRangeScalar(0.0f, scale);
 
diff --git a/src/gpu/gradients/generated/GrLinearGradientLayout.cpp b/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
index 98e576f..92106d2 100644
--- a/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrLinearGradientLayout.cpp
@@ -59,9 +59,11 @@
 #if GR_TEST_UTILS
 std::unique_ptr<GrFragmentProcessor> GrLinearGradientLayout::TestCreate(GrProcessorTestData* d) {
     SkScalar scale = GrGradientShader::RandomParams::kGradientScale;
-    SkPoint points[] = {
-            {d->fRandom->nextRangeScalar(0.0f, scale), d->fRandom->nextRangeScalar(0.0f, scale)},
-            {d->fRandom->nextRangeScalar(0.0f, scale), d->fRandom->nextRangeScalar(0.0f, scale)}};
+    SkPoint points[2];
+    points[0].fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    points[0].fY = d->fRandom->nextRangeScalar(0.0f, scale);
+    points[1].fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    points[1].fY = d->fRandom->nextRangeScalar(0.0f, scale);
 
     GrGradientShader::RandomParams params(d->fRandom);
     auto shader = params.fUseColors4f ? SkGradientShader::MakeLinear(points,
diff --git a/src/gpu/gradients/generated/GrRadialGradientLayout.cpp b/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
index be83898..1db5b06 100644
--- a/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrRadialGradientLayout.cpp
@@ -63,8 +63,9 @@
     GrTest::TestAsFPArgs asFPArgs(d);
     do {
         GrGradientShader::RandomParams params(d->fRandom);
-        SkPoint center = {d->fRandom->nextRangeScalar(0.0f, scale),
-                          d->fRandom->nextRangeScalar(0.0f, scale)};
+        SkPoint center;
+        center.fX = d->fRandom->nextRangeScalar(0.0f, scale);
+        center.fY = d->fRandom->nextRangeScalar(0.0f, scale);
         SkScalar radius = d->fRandom->nextRangeScalar(0.0f, scale);
         sk_sp<SkShader> shader = params.fUseColors4f
                                          ? SkGradientShader::MakeRadial(center,
diff --git a/src/gpu/gradients/generated/GrSweepGradientLayout.cpp b/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
index c8008d6..0641c59 100644
--- a/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrSweepGradientLayout.cpp
@@ -99,8 +99,9 @@
 #if GR_TEST_UTILS
 std::unique_ptr<GrFragmentProcessor> GrSweepGradientLayout::TestCreate(GrProcessorTestData* d) {
     SkScalar scale = GrGradientShader::RandomParams::kGradientScale;
-    SkPoint center = {d->fRandom->nextRangeScalar(0.0f, scale),
-                      d->fRandom->nextRangeScalar(0.0f, scale)};
+    SkPoint center;
+    center.fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    center.fY = d->fRandom->nextRangeScalar(0.0f, scale);
 
     GrGradientShader::RandomParams params(d->fRandom);
     auto shader = params.fUseColors4f ? SkGradientShader::MakeSweep(center.fX,
diff --git a/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp b/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
index 745191d..e925eff 100644
--- a/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
+++ b/src/gpu/gradients/generated/GrTwoPointConicalGradientLayout.cpp
@@ -223,10 +223,11 @@
     SkScalar scale = GrGradientShader::RandomParams::kGradientScale;
     SkScalar offset = scale / 32.0f;
 
-    SkPoint center1 = {d->fRandom->nextRangeScalar(0.0f, scale),
-                       d->fRandom->nextRangeScalar(0.0f, scale)};
-    SkPoint center2 = {d->fRandom->nextRangeScalar(0.0f, scale),
-                       d->fRandom->nextRangeScalar(0.0f, scale)};
+    SkPoint center1, center2;
+    center1.fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    center1.fY = d->fRandom->nextRangeScalar(0.0f, scale);
+    center2.fX = d->fRandom->nextRangeScalar(0.0f, scale);
+    center2.fY = d->fRandom->nextRangeScalar(0.0f, scale);
     SkScalar radius1 = d->fRandom->nextRangeScalar(0.0f, scale);
     SkScalar radius2 = d->fRandom->nextRangeScalar(0.0f, scale);
 
diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp
index b69fb42..62781fd 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp
@@ -678,10 +678,12 @@
 
 #if GR_TEST_UTILS
 GrGeometryProcessor* QuadEdgeEffect::TestCreate(GrProcessorTestData* d) {
+    SkMatrix localMatrix = GrTest::TestMatrix(d->fRandom);
+    bool usesLocalCoords = d->fRandom->nextBool();
+    bool wideColor = d->fRandom->nextBool();
     // Doesn't work without derivative instructions.
     return d->caps()->shaderCaps()->shaderDerivativeSupport()
-                   ? QuadEdgeEffect::Make(d->allocator(), GrTest::TestMatrix(d->fRandom),
-                                          d->fRandom->nextBool(), d->fRandom->nextBool())
+                   ? QuadEdgeEffect::Make(d->allocator(), localMatrix, usesLocalCoords, wideColor)
                    : nullptr;
 }
 #endif
diff --git a/src/gpu/ops/GrDashOp.cpp b/src/gpu/ops/GrDashOp.cpp
index e7eaad8..140ead2 100644
--- a/src/gpu/ops/GrDashOp.cpp
+++ b/src/gpu/ops/GrDashOp.cpp
@@ -1009,9 +1009,12 @@
 #if GR_TEST_UTILS
 GrGeometryProcessor* DashingCircleEffect::TestCreate(GrProcessorTestData* d) {
     AAMode aaMode = static_cast<AAMode>(d->fRandom->nextULessThan(GrDashOp::kAAModeCnt));
+    GrColor color = GrRandomColor(d->fRandom);
+    SkMatrix matrix = GrTest::TestMatrix(d->fRandom);
     return DashingCircleEffect::Make(d->allocator(),
-                                     SkPMColor4f::FromBytes_RGBA(GrRandomColor(d->fRandom)),
-                                     aaMode, GrTest::TestMatrix(d->fRandom),
+                                     SkPMColor4f::FromBytes_RGBA(color),
+                                     aaMode,
+                                     matrix,
                                      d->fRandom->nextBool());
 }
 #endif
@@ -1245,9 +1248,12 @@
 #if GR_TEST_UTILS
 GrGeometryProcessor* DashingLineEffect::TestCreate(GrProcessorTestData* d) {
     AAMode aaMode = static_cast<AAMode>(d->fRandom->nextULessThan(GrDashOp::kAAModeCnt));
+    GrColor color = GrRandomColor(d->fRandom);
+    SkMatrix matrix = GrTest::TestMatrix(d->fRandom);
     return DashingLineEffect::Make(d->allocator(),
-                                   SkPMColor4f::FromBytes_RGBA(GrRandomColor(d->fRandom)),
-                                   aaMode, GrTest::TestMatrix(d->fRandom),
+                                   SkPMColor4f::FromBytes_RGBA(color),
+                                   aaMode,
+                                   matrix,
                                    d->fRandom->nextBool());
 }
 
diff --git a/src/gpu/ops/GrOvalOpFactory.cpp b/src/gpu/ops/GrOvalOpFactory.cpp
index e5ab493..0d0b3e8 100644
--- a/src/gpu/ops/GrOvalOpFactory.cpp
+++ b/src/gpu/ops/GrOvalOpFactory.cpp
@@ -721,9 +721,11 @@
 
 #if GR_TEST_UTILS
 GrGeometryProcessor* EllipseGeometryProcessor::TestCreate(GrProcessorTestData* d) {
-    return EllipseGeometryProcessor::Make(d->allocator(), d->fRandom->nextBool(),
-                                          d->fRandom->nextBool(), d->fRandom->nextBool(),
-                                          GrTest::TestMatrix(d->fRandom));
+    bool stroke = d->fRandom->nextBool();
+    bool wideColor = d->fRandom->nextBool();
+    bool useScale = d->fRandom->nextBool();
+    SkMatrix matrix = GrTest::TestMatrix(d->fRandom);
+    return EllipseGeometryProcessor::Make(d->allocator(), stroke, wideColor, useScale, matrix);
 }
 #endif
 
@@ -920,9 +922,11 @@
 
 #if GR_TEST_UTILS
 GrGeometryProcessor* DIEllipseGeometryProcessor::TestCreate(GrProcessorTestData* d) {
-    return DIEllipseGeometryProcessor::Make(d->allocator(), d->fRandom->nextBool(),
-                                            d->fRandom->nextBool(), GrTest::TestMatrix(d->fRandom),
-                                            (DIEllipseStyle)(d->fRandom->nextRangeU(0, 2)));
+    bool wideColor = d->fRandom->nextBool();
+    bool useScale = d->fRandom->nextBool();
+    SkMatrix matrix = GrTest::TestMatrix(d->fRandom);
+    auto style = (DIEllipseStyle)(d->fRandom->nextRangeU(0, 2));
+    return DIEllipseGeometryProcessor::Make(d->allocator(), wideColor, useScale, matrix, style);
 }
 #endif