Commit Graph

59322 Commits

Author SHA1 Message Date
Greg Daniel
7af43100d5 [graphite] Fix shader dictionary's map key equality check.
Change-Id: I3d1433fba70d5283cb76c960c2e5e7aab0b53ef5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510816
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-02-18 20:25:39 +00:00
Herb Derby
fae2cc3b80 use flatten/unflattend Slugs to draw
This CL using GPU draws every TextBlob by converting it to a
Slug, flattening the Slug, unflattening the Slug to a dstSlug,
and then uses the dstSlug to draw the TextBlob.

Since only DirectMask sub runs are working I have disabled some
code to all empty sub runs. This will be restored in the final
version.

This adds a compile-time flag to control this behavior:
SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE

Bug: chromium:1278340

Change-Id: I7674593b0d6e1f871e1c526af76407a1977a8836
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510419
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-18 15:11:22 +00:00
Michael Ludwig
a3728924bb Reland "Use VectorXform to determine parametric segments for stroke curves"
This reverts commit 832b9ac092.

Reason for revert: Fix is in PS1->PS4

Original change's description:
> Revert "Use VectorXform to determine parametric segments for stroke curves"
>
> This reverts commit ee45d92013.
>
> Reason for revert: missed declaring PRECISION in the tessellation shader stages
>
> Original change's description:
> > Use VectorXform to determine parametric segments for stroke curves
> >
> > Change-Id: I088119d01d31d58b154e49479aa071ac68938cb4
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502059
> > Reviewed-by: Jim Van Verth <jvanverth@google.com>
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
>
> Change-Id: I2aeb6d8f2dfc403cd556d130f8a50a0cae8568cb
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510204
> Auto-Submit: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>

Change-Id: I2f63ac168b8c02a8ea6e346b14089439d3bd8446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510205
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-18 15:01:45 +00:00
Heather Miller
8c2a82270e Update Skia milestone to 101
Change-Id: I78fd07c10a8dd3ff76b6040109afdf4b47b69eb0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510656
Reviewed-by: Heather Miller <hcm@google.com>
Auto-Submit: Heather Miller <hcm@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2022-02-18 12:46:42 +00:00
Ben Wagner
0ec715d6cd Correct FreeType palette setup.
Use the override index as intended instead of the index into the
override list as the palette entry index to override. Correct the bounds
check on the override index. Modify an existing test to exercise this.

Bug: skia:12576
Change-Id: Ide8327ff0536eee252c6a83e997ad540a98ba957
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510596
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-18 05:08:22 +00:00
skia-autoroll
621e0f8d25 Roll SwiftShader from 4228bb95b5b5 to b4a56a893496 (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/4228bb95b5b5..b4a56a893496

2022-02-17 sergeyu@google.com [Fuchsia] Stop ignoring warnings in llvm-10.0
2022-02-17 capn@google.com Make shader inputs/outputs only statically indexable
2022-02-17 sugoi@google.com VK_EXT_inline_uniform_block implementation
2022-02-17 capn@google.com Fix rr::RoundIntClamped() for architectures other than x86 and ARM

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC fmalita@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: fmalita@google.com
Change-Id: I7869076f132dff5cd6c191b7041b24bf1548d5a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510338
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-18 04:51:13 +00:00
skia-autoroll
17d903e0d8 Roll Dawn from 6cc74dce933e to 1220bbcbd2ed (11 revisions)
https://dawn.googlesource.com/dawn.git/+log/6cc74dce933e..1220bbcbd2ed

2022-02-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 555e94e7e365 to 7274b8ac19c4 (4 revisions)
2022-02-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 4d9fe6bf1f0c to f987c40d5cc6 (1 revision)
2022-02-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4228bb95b5b5 to 8941bdeeafac (2 revisions)
2022-02-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from c9735450c0c2 to 555e94e7e365 (1 revision)
2022-02-17 brandon1.jones@intel.com Add Validation For External Texture Bind Group Layout Mismatch
2022-02-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ae9c94f1bda1 to 671fcf732d8f (4 revisions)
2022-02-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from afb02e8ec7cd to c9735450c0c2 (1 revision)
2022-02-17 hao.x.li@intel.com Fix QueryInternalShaderTests
2022-02-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 956ca5369840 to 4d9fe6bf1f0c (18 revisions)
2022-02-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 043a8084c1cb to 4228bb95b5b5 (3 revisions)
2022-02-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from afacf7f9967a to ae9c94f1bda1 (8 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from afb02e8ec7cd to 7274b8ac19c4

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC kainino@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: kainino@google.com
Change-Id: I127251795b969410b1cf1fa284d86990f714fc61
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510337
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-18 04:41:21 +00:00
Jim Van Verth
d49161e835 More PolyUtils fixes.
First, the convex check still had a bug when determining if we've
wrapped around more than once. If the delta between two coordinates was
0, then that doesn't trigger a sign change (as expected), but it
will get copied as the next value to check against. Instead we should
be checking against the previous non-zero value.

Second, the ActiveEdgeList for isSimple had a bug where two very large
segments were ending up with equal p0 and v values due to floating
point error. Added a check for this and we'll treat those edges as
effectively coincident.

Bug: oss-fuzz:44753
Change-Id: I84bccdf629e6173d14c040b0e6f6c997f4b48001
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510416
Auto-Submit: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-02-18 02:10:41 +00:00
Herb Derby
418fdebf1c move top-level Slug creation from buffer to GrSlug
Change-Id: Ieef75feb64614a6ece4c88deaaf147fe1ac0b311
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510420
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-17 22:26:55 +00:00
Brian Osman
b5282fea23 Fix viewer crash with corrupted MSKPs
If an MSKP fails to load, fPlayer will be null, and viewer will crash
when switching backends.

Change-Id: I68b63da21c8f7c5726b3c5bbbdcb6c17018a63ac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510209
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-02-17 22:19:18 +00:00
Ben Wagner
3d97b14820 Roll libjpeg-turbo to 2.1.2
24e310554f..02959c3ee1

Update to match Chromium's current DEPS.

Change-Id: I954eb606912acfb4340f122c01e8fd502a8c86ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510418
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-17 20:57:46 +00:00
Herb Derby
0063b6bdb8 don't produce empty slugs
Change-Id: Ie7e882b559e05a5a3b33ab5e08611f84e448ef19
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510417
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-17 20:46:48 +00:00
Michael Ludwig
a872718e51 Reland "Preserve base device origin on saveLayer and image filters"
This reverts commit 814652c373.

Reason for revert: missed suppression has landed in chrome

Original change's description:
> Revert "Preserve base device origin on saveLayer and image filters"
>
> This reverts commit f436cf2343.
>
> Reason for revert: May need to be behind flag or more
> suppressions. Breaking linux-rel vulkan_swiftshader_blink_web_tests
> css3/filters/effect-blur-hw.html .
>
> Original change's description:
> > Preserve base device origin on saveLayer and image filters
> >
> > SaveLayerOriginTest taken from https://skia-review.googlesource.com/c/skia/+/277977
> >
> > Bug: skia:12732
> > Change-Id: I5ce75355bb16237043c229e1cbc7a106eb636d18
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508919
> > Reviewed-by: Greg Daniel <egdaniel@google.com>
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
>
> Bug: skia:12732
> Change-Id: I74cc8dc279d22c4fbd313ae3caeb4d0748daf003
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510196
> Auto-Submit: Ben Wagner <bungeman@google.com>
> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>

Bug: skia:12732
Change-Id: Ifdc3ac96b1b695c208960915ca313fbacf4b7ed6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510203
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-17 19:49:10 +00:00
Ben Wagner
1f987af388 Delay creating CGColorSpace in SkScalerContext_Mac
A number of scaler contexts are created (like for paths) which are never
used in a way that forces the port to create the image. Delay the
(seemingly expensive) work of creating the color space and color until
they are actually needed.

Bug: chromium:1297957
Bug: chromium:1297978
Change-Id: Ibf55d18432b9be7deea9d3bc28dd5b4c1e5b9da5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510206
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-17 19:15:16 +00:00
Robert Phillips
c4f1d16390 [graphite] Switch PaintParamsKey over to a builder/result model
This will leave the PaintParamsKeys more clearly immutable and manage more of the cruft of key creation (e.g., beginBlock/endBlock pairing).

Bug: skia:12701
Change-Id: I1944397465f845e974e950f47cedb90c3f1895b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/506881
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-17 17:48:01 +00:00
Michael Ludwig
05a4b12dbd Don't dither const shaders that don't have a GP override
https://gold.skia.org/detail?test=gradients_no_texture&digest=008c796df4da7fbb6718e96db2c36c90

If paintFP was only non-null because it came from the main SkShader, we
should defer to SkPaintPriv's check that the shader is not a constant.
We don't have a isConstant() for FPs so this assumes that if the GP
overrides it with a new FP it probably is doing something spatially
interesting and does need the dithering.

Bug: skia:12516
Change-Id: I7935ba8f0baf91e7b7ba07280452871c60ffd3e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509996
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-02-17 17:44:15 +00:00
Michael Ludwig
832b9ac092 Revert "Use VectorXform to determine parametric segments for stroke curves"
This reverts commit ee45d92013.

Reason for revert: missed declaring PRECISION in the tessellation shader stages

Original change's description:
> Use VectorXform to determine parametric segments for stroke curves
>
> Change-Id: I088119d01d31d58b154e49479aa071ac68938cb4
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502059
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

Change-Id: I2aeb6d8f2dfc403cd556d130f8a50a0cae8568cb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510204
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-02-17 17:23:17 +00:00
Michael Ludwig
ee45d92013 Use VectorXform to determine parametric segments for stroke curves
Change-Id: I088119d01d31d58b154e49479aa071ac68938cb4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502059
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-02-17 15:28:17 +00:00
Jim Van Verth
1729710b51 [graphite] Add TextureProxyView class.
Bug: skia:12845
Change-Id: I2cf5074f85242f51b3798c59d4450c043a99afee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509916
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-02-17 15:22:40 +00:00
Ben Wagner
814652c373 Revert "Preserve base device origin on saveLayer and image filters"
This reverts commit f436cf2343.

Reason for revert: May need to be behind flag or more
suppressions. Breaking linux-rel vulkan_swiftshader_blink_web_tests
css3/filters/effect-blur-hw.html .

Original change's description:
> Preserve base device origin on saveLayer and image filters
>
> SaveLayerOriginTest taken from https://skia-review.googlesource.com/c/skia/+/277977
>
> Bug: skia:12732
> Change-Id: I5ce75355bb16237043c229e1cbc7a106eb636d18
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508919
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

Bug: skia:12732
Change-Id: I74cc8dc279d22c4fbd313ae3caeb4d0748daf003
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510196
Auto-Submit: Ben Wagner <bungeman@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-02-17 13:48:07 +00:00
Dominik Röttsches
01be94d7f1 Support font palette overrides through SkFontArguments
Co-authored with Ben Wagner, bungeman@google.com.

Similar to how we allow configuration of variable font configurations,
provide additional SkFontArguments to select a base palette and a set
of potentially sparse color overrides.

This is required for implementing CSS font-palette.

Modify the more_samples-glyf_colr_1.ttf to have two additional palettes,
and two additional test glyphs, one that draws with COLRv0 logic, one
that draws with COLRv1 logic and has a foreground palette index dot
in the middle. See [1] & [2] for the additions to the test font.

Add a GM which tests this on the SkFontMgr_custom using makeClone() and
makeFromStreamArgs(). The test displays the two glyphs in default
palette on the left, then with palette overrides (as in the title of the
test) on the right. The first row uses a typeface created with
makeFromStreamArgs(), the second uses one created with makeClone().

[1] https://github.com/googlefonts/color-fonts/pull/91
[2] https://github.com/googlefonts/color-fonts/pull/92

Bug: skia:12730, chromium:1170794
Cq-Include-Trybots: luci.skia.skia.primary:Test-Android-Clang-GalaxyS20-GPU-MaliG77-arm64-Release-All-Android_NativeFonts,Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Debug-All-NativeFonts
Change-Id: Ia1334f069240edc78fd4791969914e8a6f4fbaf9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/479616
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-17 13:19:53 +00:00
skia-autoroll
76699a4495 Roll SwiftShader from 13f7365e81be to 4228bb95b5b5 (7 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/13f7365e81be..4228bb95b5b5

2022-02-16 capn@google.com Fix and improve exp2 accuracy
2022-02-16 capn@google.com Fix handling overflow in Exp2()
2022-02-16 capn@google.com Exhaustively test the exp2 implementation's conformance
2022-02-16 sugoi@google.com Support render area instead of extent in Renderer::draw()
2022-02-16 swiftshader.regress@gmail.com Regres: Update test lists @ 13f7365e
2022-02-16 sugoi@google.com Small resolveDepthStencil refactor
2022-02-16 sugoi@google.com Format fix in VkPromotedExtensions.cpp

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC fmalita@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: fmalita@google.com
Change-Id: Iacc4f79b0dc7eac63148655982e48c7c884ee1e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510098
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-17 04:58:44 +00:00
skia-autoroll
5505a02ca1 Roll Dawn from 703ed278c32d to 6cc74dce933e (8 revisions)
https://dawn.googlesource.com/dawn.git/+log/703ed278c32d..6cc74dce933e

2022-02-17 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 4a15605be725 to afb02e8ec7cd (1 revision)
2022-02-17 jiawei.shao@intel.com Add validation on format when creating a multisampled texture
2022-02-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 6b02308bdccf to 956ca5369840 (3 revisions)
2022-02-16 ccameron@chromium.org Expand GetFormatEquivalentToIOSurfaceFormat
2022-02-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 13f7365e81be to 043a8084c1cb (4 revisions)
2022-02-16 enga@chromium.org Don't try to load libvulkan on Mac
2022-02-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from eeddb05040ba to afacf7f9967a (6 revisions)
2022-02-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 0863290dc7f6 to 13f7365e81be (10 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 4a15605be725 to afb02e8ec7cd

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC kainino@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: kainino@google.com
Change-Id: I958339b7114b1726896ef3b8ad0e18c93e16f866
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/510097
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-17 04:43:16 +00:00
Erik Rose
e6fba0a50b [infra] Stop overspecifying the version of 10.14.
There are no more 10.14.3 bots in the farm and haven't been for some
time. This made all 10.14 tasks fail to run.

All we have now is 10.14.6, so we can remove the first if clause.

The second talks about an OS key that isn't even in the hash anymore, so
it can go away too.
Change-Id: I53cd54c9520b8a10f72de8e413f023027cdf8088
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509728
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Erik Rose <erikrose@google.com>
2022-02-17 00:50:45 +00:00
Michael Ludwig
f436cf2343 Preserve base device origin on saveLayer and image filters
SaveLayerOriginTest taken from https://skia-review.googlesource.com/c/skia/+/277977

Bug: skia:12732
Change-Id: I5ce75355bb16237043c229e1cbc7a106eb636d18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508919
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-02-16 22:20:12 +00:00
Herb Derby
d3243f660e working serialize Slugs with DirectMask runs
Add fully functional flatten, and MakeFromBuffer functionality
for the DirectMaskSubRunSlug type. The other runs will need to come
later.

Add MakeFromBuffer stubs for all the rest of the subrun types.

This has a single unit test to check basic functionality of
flatten and MakeFromBuffer calls.

Change-Id: I379ded4609a2160170ed6a3670c7c7b6ed2c5b2e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509137
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-16 19:53:17 +00:00
Herb Derby
e39f253c2a add facilities for flattening different subrun types
Change-Id: Ie223b7ef7035df0c2e40b4b2dd026170a23dbd18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509557
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-16 18:49:41 +00:00
Erik Rose
d714e1ebe1 [infra] Remove job mistakenly made for nonexistent OS-12 Skolo Minis.
Back in 47045c9e06 I had meant to "Add a
Debug-All-NativeFonts CPU job for all OS versions on the new Mac Mini 7.1s."
Well, none of those is running 12.

Change-Id: I9dd13ce33c9a4004faf4da5f53d25c5ce5d8ec04
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509718
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Erik Rose <erikrose@google.com>
2022-02-16 16:39:41 +00:00
Michael Ludwig
66470f8b7d Pre-construct device-to-layer matrix for skif::Mappings
SkCanvas and SkDevice were using SkM44 and its definition of invert(),
but it was slightly more generous than SkMatrix::invert() so the fuzzer
caught a case where the layer's SkDevice had a valid transform but then
converting it to a SkMatrix in skif::Mapping was no longer invertible.

This modifies it so that skif::Mapping no longer tries to invert the
matrices. In almost all cases, the inverse of the layer-to-device
matrix can be constructed directly from a matrix multiply (that's what
device->getRelativeTransform() does). When the matrices are
ill-conditioned the constructed inverse may be inaccurate (hence why
SkMatrix::invert reports false), but in practice this happens for
ridiculously large transforms and the error isn't significant compared
to the precision range of the matrices anyways.

Other cases explicitly want to use the identity matrix for the layer
to device matrix, so I added a helper in the few places that would have
had to pass SkMatrix::I() twice instead.

The last case is drawImage() that creates its own skif::Mapping, now it
just calculates the inverse that skif::Mapping() would have done and if
it fails it drops the draw since it means the canvas matrix is bad.

Bug: chromium:1276525
Change-Id: Ib516bb2fac19d5e7397bd27d80f8e3932b25b2e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509396
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-02-16 16:26:40 +00:00
Herb Derby
2865ea30ff serialization framework down to the Slug level, but not runs
Change-Id: I687ba55a61dd5d0509190804f19255851c328a31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509502
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-16 16:15:50 +00:00
Julia Lavrova
7b5b00aaf1 Fixing some inconsistencies in blitter selection.
So --skvm and --forceRasterPipeline flags work more correctly.

Change-Id: Ia1c3560a61dda4800785b1e7ad1a0e41fe42594d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509719
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2022-02-16 16:08:54 +00:00
Herb Derby
e444402333 add default ctor for SkGlyphRect
Change-Id: I18bba62b999c3b8920daf831dc512837a23e29a0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509785
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-16 15:26:26 +00:00
Michael Ludwig
0b124c444e Fix mask/image filter bounds calculation for inverse-filled paths
Bug: skia:12587, skia:10959
Change-Id: I43dea5f2d2f54c7db47e778ac9c7bac53ae4998d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509176
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-02-16 15:09:42 +00:00
Jim Van Verth
d6245fc4aa Rename GrSwizzle to skgpu::Swizzle
Bug: skia:12845
Change-Id: Ia03293c4efdad4c5381a713c9d7d4857b79530c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509398
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-02-16 13:30:14 +00:00
skia-autoroll
c3f0a82b2b Roll SwiftShader from 5f1c00bda1c1 to 13f7365e81be (5 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/5f1c00bda1c1..13f7365e81be

2022-02-16 capn@google.com Skip testing subnormals when flushed to zero
2022-02-16 capn@google.com Benchmark the effect of flush-to-zero / denormals-are-zero
2022-02-15 capn@google.com Don't treat all warnings as errors in tests and benchmarks
2022-02-15 swiftshader.regress@gmail.com Regres: Update test lists @ 5f1c00bd
2022-02-15 capn@google.com Don't silently ignore unsupported extension structures

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC fmalita@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: fmalita@google.com
Change-Id: I27acbd087712186a63f9d9c8cb5391cc62a66e46
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509618
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-16 04:59:14 +00:00
skia-autoroll
5b7649746c Roll Dawn from 3a60f96079c8 to 703ed278c32d (9 revisions)
https://dawn.googlesource.com/dawn.git/+log/3a60f96079c8..703ed278c32d

2022-02-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 5f6a185d0210 to 4a15605be725 (1 revision)
2022-02-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ad4fae642fe8 to eeddb05040ba (13 revisions)
2022-02-15 shrekshao@google.com Fix predefined color space undefined jsrepr
2022-02-15 senorblanco@chromium.org Re-enable compilation of GL backends in Chromium.
2022-02-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from d0ec88ce6161 to 5f6a185d0210 (3 revisions)
2022-02-15 jrprice@google.com Roll Tint and update WGSL syntax for overrides
2022-02-15 enga@chromium.org Add additional guards in counter set feature checks
2022-02-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from a7f412ebb116 to 0863290dc7f6 (6 revisions)
2022-02-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from a0bc9dab4eef to ad4fae642fe8 (3 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from f1d570a11eba to 4a15605be725

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/dawn-skia-autoroll
Please CC kainino@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: kainino@google.com
Change-Id: I37ea0cab6f871b112c1cfa79af294c92ef8a4a95
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509617
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-16 04:46:19 +00:00
Leandro Lovisolo
34e3b35eb4 [codesize] Define more CodeSize tasks for testing purposes (both for CQ and waterfall).
Bug: skia:12151
Change-Id: I0ab5c8d6e48c8f90d825c0a8636d60571b3db708
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509504
Commit-Queue: Leandro Lovisolo <lovisolo@google.com>
Auto-Submit: Leandro Lovisolo <lovisolo@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-02-15 23:42:43 +00:00
Kevin Lubick
149938e8e3 [canvaskit] Rename some CK-specific defines
The one use of the define in //modules/skottie was in an old
G3 BUILD file which has since been deleted.

Change-Id: I3cbb0dd2bcbff7de433b2d044b3e7a0c34a45240
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509400
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2022-02-15 22:42:17 +00:00
Kevin Lubick
56438322bd [fuzz] Fix unreachable code warning
Change-Id: I18fb0be2ae900cd99c20aa65eea85fff1e367876
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509399
Reviewed-by: Leon Scroggins <scroggo@google.com>
2022-02-15 22:41:11 +00:00
Kevin Lubick
eec8edb660 Remove skottiekit experiment
Takeaway: A specific skottie WASM build *would* improve load time and
code size

This experiment is unused otherwise.

Change-Id: I78ab8c3936c7ac2b5e6e3af08e6f5b749d89265d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509401
Reviewed-by: Florin Malita <fmalita@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2022-02-15 22:40:08 +00:00
Herb Derby
59452acdc0 support making slugs using the full strike cache
Converting slugs through the remote glyph cache's strike can't work
because the the thing cache doesn't retain enough glyph information
to make slugs. Use the current thin strike cache for analysis, but add
a new painter that holds the full SkStrikeCache.

Change-Id: I6b1646827d78049d2fc5f2e0fd7a2ea1add1b639
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509500
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-15 22:21:59 +00:00
Ben Wagner
c9ca00910a Support for COLR foreground color in CoreText.
COLR fonts can use a magic palette index value 0xFFFF to indicate the
foreground color of the drawing context. Modify the CoreText port to
properly indicate when the foreground color is needed and use it.

Bug: skia:12576
Change-Id: I14818b34fbe40ee508ed720510be53bc289c748a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509178
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-15 21:42:23 +00:00
Ethan Nicholas
85e7f31e6d Rewrote SkSL binary documentation
Change-Id: I2780f33599c65fa8fb76d01c4ca2f464d2a9fd8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508116
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2022-02-15 19:55:18 +00:00
Herb Derby
0ec59b90ab add SubRunType for each SubRun to facilitate deserialization
Change-Id: I058eb13d4efc20197d81f15d2261906950d6e92e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509397
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-15 19:25:43 +00:00
Michael Ludwig
10241484aa Fix dithering on drawImage[Rect] calls
Bug: skia:12516
Change-Id: Ibb68558e0f474143df3c6a5fb0fb3d4881529226
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/508677
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-02-15 18:59:02 +00:00
Kevin Lubick
7f568e968e [bazel] Update to use emsdk 3.1.4
PS1 regenerates the BUILD.bazel files

This allows us to use closure to minify the JS in canvaskit.js

Change-Id: Ib8326d2e3a19cd2168b740b6946f9165a2810133
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509177
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-02-15 17:47:03 +00:00
Robert Phillips
ee910053ec [graphite] Add first version of Blend Shader support
This CL adds children to the SkPaintParamsKey and ShaderInfo objects and then uses them to implement the blend shader glue code.

Bug: skia:12701
Change-Id: I6750fe375b20a5c1cda315336bfcb3feda8cab28
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/505297
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-15 17:18:10 +00:00
Kevin Lubick
c13cd6479d Reland "Build CanvasKit using GN/Ninja"
This is a reland of ecac712bec

Changes (best viewed comparing PS1 to latest)
 - Use emsdk 3.1.3 which includes important bug fixes
 - Remove unnecessary steps in compile.sh
 - Fix use of various gn args.
 - Avoid conflicts with Flutter's GN symbols
 - Add/update docs
 - Make activate-emsdk script compatible with our infra.

Original change's description:
> Build CanvasKit using GN/Ninja
>
> Build with
>
> ./bin/gn gen out/wasm_debug '--args=target_cpu="wasm"'
>
> or
>
> ./bin/gn gen out/wasm_release '--args=target_cpu="wasm" is_debug=false'
>
> Change-Id: Ib74586bf8397d57064a3899eaa6da76f9bce9049
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502036
> Reviewed-by: Kevin Lubick <kjlubick@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

Change-Id: I601712a8953c2799fa029e782e097905b95e6b59
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/507717
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-02-15 16:31:10 +00:00
Robert Phillips
d184c1b12d [graphite] Add uniform name mangling and a uniform padding cheat
The name mangling is pretty simple. The uniform padding cheat is that all uniform blocks are now multiples of 16B so can always just be blindly concatenated.

Bug: skia:12701
Change-Id: I738b0669d13b11ad22096caf73af3e0c52fc0585
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/506879
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-15 16:22:44 +00:00
Herb Derby
bd7f5d9ce0 use GrTextReferenceFrame consistently in SubRuns
Change-Id: I6f221fa3d3df98aeb9a2b955d4d8724a6fb0cc0a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/509136
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-15 15:49:11 +00:00