8098e63c9e
For quads with very large coordinates, the barycentric coordinate calculations could be very inaccurate in 32 bit. This lead to erroneously thinking the render target was contained within the quad's triangles, instead of just intersecting it. By scaling the coordinates to a more reasonable magnitude before multiplying and subtracting the coordinate values, reasonable accuracy is preserved w/o needing to do everything in 64 bit. Because it produces coordinates relative to the triangle vertices, the computed values remain the same as if the unscaled coordinates were used with higher precision math. This seems to prevent GM_crbug_10141204 from being misclassified as a fullscreen clear when its large rect geometry just intersects the device. Bug: skia:9779, chromium:10141204 Change-Id: Ia97c2c4e288907ddbb7058d3e7ed97112143b7dc Reviewed-on: https://skia-review.googlesource.com/c/skia/+/265977 Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Michael Ludwig <michaelludwig@google.com> |
||
---|---|---|
animations | ||
bench | ||
bin | ||
build/fuchsia | ||
build_overrides | ||
dm | ||
docker | ||
docs/examples | ||
example | ||
experimental | ||
fuzz | ||
gm | ||
gn | ||
include | ||
infra | ||
modules | ||
platform_tools | ||
resources | ||
samplecode | ||
site | ||
specs | ||
src | ||
tests | ||
third_party | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
.gn | ||
AUTHORS | ||
BUILD.gn | ||
codereview.settings | ||
CONTRIBUTING | ||
CQ_COMMITTERS | ||
DEPS | ||
go.mod | ||
go.sum | ||
LICENSE | ||
OWNERS | ||
PRESUBMIT.py | ||
public.bzl | ||
README | ||
README.chromium | ||
RELEASE_NOTES.txt | ||
whitespace.txt |
Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See full details, and build instructions, at https://skia.org.