[graphite] Tweaks to atlas path renderer selection

Previously, `Device::chooseRenderer()` fell beck to a tessellating path
renderer when a shape got rejected from the compute path atlas. In
single-sample mode (when MSAA is not available), the compute atlas
renderer could get selected shapes that it cannot efficiently render.

This has now been tweaked, such that:

1. If the compute atlas is available but it rejects a shape, and MSAA is
   supported, choose a tessellating technique and rely on hardware
   MSAA.
2. If the compute atlas is available but it rejects a shape, and MSAA is
   NOT supported, choose the raster path atlas instead. This avoids
   single-sample rendering.
3. If the compute atlas is unavailable and MSAA is supported, choose a
   tessellating technique and rely on hardware MSAA.
4. If the compute atlas is unavailable and MSAA is NOT supported, always
   use raster path atlas.
5. The path strategy options work as before with one major difference:
   when compute is available and a compute AA technique is explicitly
   requested BUT the compute atlas rejects a shape, then one of the fall
   backs in 1-2 applies. Previously we would send all shapes to the
   compute atlas regardless of whether it can be rendered. This can no
   longer be forced using path strategy option.

Bug: b/339478836

Change-Id: I8127b288f891f42155a23a65615f1a2b4ecb7b79
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/851277
Commit-Queue: Arman Uguray <armansito@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
4 files changed