Go to file
Justin Novosad 7255993970 Fix saveLayer/restore not invalidating raster canvas gen ID.
When restoring a saveLayer, SkBitmapDevice::drawSpecial is used
to composite layer contents onto the parent layer.  The parent layer's
backing pixmap was not being notified that its content was modified.
In some circumstances Chromium's 2D canvas implementation uses a
saveLayer internally for applying certain compositing operations.
Because the draw op was not causing a bump in gen ID, we were getting
key collisions inside cc::PaintOpBuffer's image cache. This was causing
the wrong version of the content of a canvas to be used in a
canavas-to-canvas drawImage calls where the source canvas is software
rendered and the destination canvas uses gpu-accelerated or
out-of-process rasterization.

BUG=chromium:1281185

Change-Id: I3aacae27e3cc1c68d130b782aa99517ffee890a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/501237
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Justin Novosad <junov@chromium.org>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-01 20:53:34 +00:00
animations
bazel [bazel] Add mirrors to every external dependency. 2022-01-13 15:53:27 +00:00
bench Improve nanobench CSV output 2022-02-01 19:12:45 +00:00
bin [sk] Update asset download references to use SK 2021-09-17 16:55:53 +00:00
build/fuchsia
build_overrides Add Abseil dependency for Dawn 2021-09-22 22:05:32 +00:00
client_utils/android Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
demos.skia.org [canvaskit] Add API to re-use Image textures and reduce flickering 2022-01-31 14:00:48 +00:00
dm Revert "Remove skstd::optional entirely." 2022-02-01 18:47:44 +00:00
docker Switch skia-build-tools to debian11. 2022-01-28 16:51:06 +00:00
docs/examples Use angle brackets for system includes 2021-11-22 17:03:11 +00:00
example [bazel] Use font manager in HelloWorld. 2022-01-11 16:22:52 +00:00
experimental [graphite] Plumb SkUniformData/SkUniformBlock everywhere 2022-02-01 18:50:21 +00:00
fuzz [fuzz] Make mock gpu fuzzer compatible with Vulkan 2022-02-01 15:09:22 +00:00
gm Add GM to demonstate skbug.com/12866 2022-01-27 15:24:21 +00:00
gn Revert "Remove skstd::optional entirely." 2022-02-01 18:47:44 +00:00
include HEIF decode: add support for 10-bit color format 2022-02-01 19:49:39 +00:00
infra Add Pixel 6 phones to the tree. 2022-02-01 14:38:10 +00:00
modules Implement SkTLazy using std::optional 2022-02-01 19:51:21 +00:00
platform_tools Add regular expression capability to SKQP unittest filter 2022-01-25 21:39:44 +00:00
resources Determine weight, width and slant from variable axes 2022-02-01 19:34:50 +00:00
samplecode Fix when a glyph has a path 2021-12-07 14:58:29 +00:00
site Add SkSL color management docs 2022-01-10 14:34:46 +00:00
specs [infra] Port serve.py from Python2 to 3 2021-08-31 15:28:19 +00:00
src Fix saveLayer/restore not invalidating raster canvas gen ID. 2022-02-01 20:53:34 +00:00
tests Determine weight, width and slant from variable axes 2022-02-01 19:34:50 +00:00
third_party [bazel] Regenerate files and build with c++17 2022-02-01 13:15:22 +00:00
toolchain [bazel] Regenerate files and build with c++17 2022-02-01 13:15:22 +00:00
tools [canvaskit] Fix GM tests 2022-02-01 19:57:53 +00:00
.bazelrc [infra] Add SkParagraph (harfbuzz, ICU) to Canvaskit Bazel build. 2021-11-30 21:01:06 +00:00
.bazelversion [infra] Add Bazel rules for codecs. 2021-11-11 20:10:01 +00:00
.clang-format no more bin packing in .clang-format 2021-03-04 17:22:50 +00:00
.clang-tidy
.gitignore Add .vscode to the default gitignore list. 2021-10-13 15:23:02 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
.vpython [python3] Reland recipes -> python3 changes 2021-12-01 13:04:03 +00:00
AUTHORS Fix a null pointer bug in SkData::copyRange 2022-01-24 19:27:13 +00:00
BUILD.bazel Update Bazel files 2022-01-06 18:10:57 +00:00
BUILD.gn Reland "Use native std::string_view." 2022-02-01 18:43:47 +00:00
codereview.settings
CONTRIBUTING
CQ_COMMITTERS
DEPS Roll ANGLE from a4a4fec8b77f to f810e9989932 (8 revisions) 2022-02-01 05:26:38 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-02 23:41:54 +00:00
go_repositories.bzl [bazel] Sketching out HelloWorld sk_app using GL 2022-01-11 13:06:19 +00:00
go.mod [bazel] Sketching out HelloWorld sk_app using GL 2022-01-11 13:06:19 +00:00
go.sum [bazel] Sketching out HelloWorld sk_app using GL 2022-01-11 13:06:19 +00:00
LICENSE
OWNERS [infra] Add wildcard OWNERS 2021-08-30 19:19:34 +00:00
PRESUBMIT.py Remove AUTHORS check from PRESUBMIT.py 2021-09-30 14:12:18 +00:00
public.bzl add no-font rules to .bzl file for google3 flag 2022-01-24 17:12:21 +00:00
README
README.chromium
RELEASE_NOTES.txt Upgrade from C++14 to C++17. 2022-01-27 15:58:10 +00:00
whitespace.txt Push shaders.skia.org. 2022-01-19 21:46:16 +00:00
WORKSPACE.bazel [bazel] Add mirrors to every external dependency. 2022-01-13 15:53:27 +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.