Implement interior triangulation for PLS

Adds a drawing mode for large paths that:

1. Subdivides the curves into sections spanning no more than 16 segments.
2. Draws the outer curves using the existing PLS algorithm.
3. Triangulates the path interior into non-overlapping triangles and draws them separately.

In addition to simply eliminating overdraw, these interior triangles:

1. Can be drawn without raster ordered synchronization (since they don't overlap).
2. Don't have to update the coverage buffer (since we know each fragment is the final one for the path at that pixel).

Both of these properties lead to savings in a PC environment that uses read/write textures for pixel local storage (45 fps -> 78 fps on the Rope.riv at 3840x2241).

Apple Silicon also benefits from these changes, even though we can't turn off raster ordering there and the coverage updates should have been much cheaper in a tiled rendering architecture (375 fps -> 525 fps on the Rope.riv at 3200x2102).

Diffs=
16c4503b8 Implement interior triangulation for PLS (#5515)

Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
34 files changed