Update the indirect tessellator to drop extra edges
Update the indirect tessellator to drop extra edges

When an instanced draw had more edges than the stroke actually needed,
we used to distribute those excess edges evenly across the stroke.
(e.g., a stroke that needs 40 edges gets drawn in an instance that has
 64.) This CL updates the shader to emit the excess edges as
degenerate triangles instead. The hope here is twofold: (1) that when
all threads in a warp belong to an extra edge, the GPU will skip the
expensive edge sorting entirely, and (2) that the rasterizer will drop
the degenerate triangles or at least do less work.

Bug: chromium:1172543
Change-Id: Idffad09c1f7e633c8ac75f5fdf865ade92af7f91
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/387616
Reviewed-by: Brian Salomon <61fabaaf0876044aeedfd8e351e485c028d69e7b@google.com>
Commit-Queue: Chris Dalton <ef7fc3a08ada7d31f16e9a18b5f3c728256e041e@google.com>

google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,google/skia,google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia,google/skia,google/skia,google/skia,google/skia,aosp-mirror/platform_external_skia,google/skia,google/skia,aosp-mirror/platform_external_skia,google/skia,aosp-mirror/platform_external_skia,aosp-mirror/platform_external_skia