Implement stroke tessellation with indirect draws

Adds a vertex shader that maps a variable-length triangle strip to a
stroke and its preceding join. Adds a new op that generates stroke
instances from a path, bins them by log2 triangle strip length (using
SIMD for the calculations), and renders them with indirect draws.

Bug: skia:10419
Change-Id: I6d52df02cffe97d14827c6d66136957f1859f53b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/339716
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/mock/GrMockOpTarget.h b/src/gpu/mock/GrMockOpTarget.h
index bca9494..a8cc8c5 100644
--- a/src/gpu/mock/GrMockOpTarget.h
+++ b/src/gpu/mock/GrMockOpTarget.h
@@ -99,7 +99,7 @@
 
 private:
     sk_sp<GrDirectContext> fMockContext;
-    char fStaticVertexData[4 * 1024 * 1024];
+    char fStaticVertexData[6 * 1024 * 1024];
     GrDrawIndirectCommand fStaticDrawIndirectData[32];
     GrDrawIndexedIndirectCommand fStaticDrawIndexedIndirectData[32];
     SkSTArenaAllocWithReset<1024 * 1024> fAllocator;