Go to file
Michael Ludwig 6529990763 Fix overdraw from unstable perspective math
There were two issues leading to the corruption seen in the linked
chromium issue.

1. The draw's bounds were calculated based on the quad being clipped
to w>= epsilon, which is what happens when the AA inset/outset is done.
But for non-aa quads, the fillrect and texture ops did no clipping,
assuming that the GPU would be sufficient. However, this can produce
non-aa draws that exceed the calculated bounds, misleading the clip
stack into incorrectly removing the scissor, etc.
2. Precision issues within CropToRect meant some perspective quads'
barycentric coordinates would become degenerate and compute to (0,0,1),
making it appear as if the render target/scissor were contained within
it. This meant we'd turn it into a rectangular clear.

These changes appear to address the corruption on Linux and Windows, but
there are still rendering artifacts from poor aa inset/outset
calculations. These artifacts are at least limited to the clip properly.
A better rendering method that does not rely on line intersections
will address these artifacts, but this CL is a reasonable temporary
mitigation.

Bug: chromium:1204347
Change-Id: I3c67d4efe70313ae7c98abc0a57b5b047c83890d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407821
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-05-13 19:37:53 +00:00
animations
bazel bazel baby steps 2020-09-14 15:18:32 +00:00
bench Use Wang's formula for quadratic and cubic point counts 2021-05-12 18:33:33 +00:00
bin Fix Python3 compatibility 2021-03-25 14:15:35 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Fix ANGLE roll 2021-05-10 15:34:52 +00:00
client_utils/android Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
demos.skia.org Can ctrl-key work on non-macs? 2021-05-12 17:53:41 +00:00
dm Convert dmsaa to an SkSurfaceProp 2021-04-20 16:24:56 +00:00
docker [infra] Fix index.d.ts copy in Wasm Docker build 2021-02-23 15:54:11 +00:00
docs/examples Must pass filtering to picture shader 2021-03-18 22:18:47 +00:00
example Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
experimental Revert "Switching SkText to UTF16" 2021-05-11 22:24:20 +00:00
fuzz Move SkSpan to include/, for use in public API 2021-05-12 13:19:32 +00:00
gm Use Wang's formula for quadratic and cubic point counts 2021-05-12 18:33:33 +00:00
gn Add a GrCullTest class 2021-05-13 17:30:58 +00:00
include Fix implicit signedness change warnings in private includes 2021-05-13 17:10:44 +00:00
infra Reland "The Matrices test now verifies its results." 2021-05-13 17:25:53 +00:00
modules [androidkit] add getter for matrices 2021-05-13 19:29:53 +00:00
platform_tools [androidkit] add getter for matrices 2021-05-13 19:29:53 +00:00
resources Add support for matrix division to Metal codegen. 2021-05-13 19:28:53 +00:00
samplecode Use Wang's formula for quadratic and cubic point counts 2021-05-12 18:33:33 +00:00
site Restore cube demo to canvaskit demo page 2021-04-21 21:55:27 +00:00
specs
src Fix overdraw from unstable perspective math 2021-05-13 19:37:53 +00:00
tests Fix overdraw from unstable perspective math 2021-05-13 19:37:53 +00:00
third_party Roll skcms from 31ba46d6a284 to bae5e281e80f (1 revision) 2021-05-08 21:32:59 +00:00
tools viewer can show offscreen layers in MSKPSlide 2021-05-12 19:49:03 +00:00
.bazelignore bazel baby steps 2020-09-14 15:18:32 +00:00
.clang-format no more bin packing in .clang-format 2021-03-04 17:22:50 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore [sk] Add DEPS entry for "sk" tool 2021-04-09 14:21:37 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
AUTHORS Add UWP support 2021-02-10 19:04:42 +00:00
BUILD.bazel bazel baby steps 2020-09-14 15:18:32 +00:00
BUILD.gn [androidkit] implement ThreadedSurface backed by WindowSurface 2021-05-13 17:15:49 +00:00
codereview.settings
CONTRIBUTING
CQ_COMMITTERS
DEPS Roll ANGLE from 25b53ceb65b7 to 9809122dbd0d (1 revision) 2021-05-13 17:10:45 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-02 23:41:54 +00:00
go.mod [infra] Roll infra dependency 2021-02-25 19:56:00 +00:00
go.sum [infra] Roll infra dependency 2021-02-25 19:56:00 +00:00
LICENSE
PRESUBMIT.py Revert "Display a Docs-Preview link for each modified MD file" 2021-04-22 13:39:28 +00:00
public.bzl Enable DSL FP tests. 2021-04-22 21:03:43 +00:00
README
README.chromium
RELEASE_NOTES.txt Implement computeFastBounds for PathEffects 2021-05-11 17:01:59 +00:00
whitespace.txt
WORKSPACE.bazel bazel baby steps 2020-09-14 15:18:32 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.