Add support for kRectangle textureType as a DstProxy.

Currently we don't add a sampler key for the dstProxy because we assume
all of the "keyed" properties are implied by other parts of the key.
However, this is not really true in all cases. For exampler, if we're
using dmsaa, the main surface may be an IOSurface that requires a Rect
texture type for sampling even though the msaa dst surface is just 2D. Thus we need to make sure this is included in the key.

Additionally we need to make sure we're using valid coords for a
rectangle texture.

In general it would be hard for us to trigger this code path, but to
hit it we need to be on a Mac drawing to an IOSurface, using dmsaa,
and have a draw that requires in shader with blending without any
of the fast path in shader dst reads.

Bug: chromium:1356725
Change-Id: I447031b8cb97f2ca723719ee71f2b440f63a86aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/604056
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
3 files changed