Commit Graph

53578 Commits

Author SHA1 Message Date
Brian Salomon
ed76e8109b Reenable Wdeprecated-copy-dtor
Change-Id: Id28ed827c4a896805c6d4eead339146fdd49e35f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/359560
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-02-16 17:53:28 +00:00
Dominik Röttsches
fc48f2b5f6 Roll FreeType
54c5ad5c92..dfa7cca5f3

Update colrv1_samples.ttf font to account for changed format ids.

Change-Id: Ibf1271e11b69f421488ef24ba7536df782bacc20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370776
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-02-16 17:00:35 +00:00
John Stiles
4599050369 Convert Operators namespace to first-class Operator object.
This lets us write `op.isAssignment()` instead of
`Operators::IsAssignment(op)`.

Change-Id: If35f2ac500b6ccabc364f9104faaad6e62564667
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369958
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-02-16 16:54:20 +00:00
John Stiles
4a3ec173b3 Add tests to demonstrate SPIR-V error with intrinsics.
When SPIR-V generates function calls to an intrinsic, it assumes that
it can get a pointer to out-parameters referenced by the intrinsic.
This does not account for swizzled out-parameters; these are valid
lvalues, but do not work with getPointer().

The two intrinsics supported by SkSL which have an out-parameter are
frexp and modf, so these tests were fleshed out to trigger the error.
Neither of these are supported in ES2, though, so we cannot test them
via Runtime Effects.

Change-Id: Ib92707a28ba6d1c282d20e29a2a387bddf74ad23
Bug: skia:11052
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370116
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-02-16 15:46:01 +00:00
John Stiles
73e2c8976a Allow repeated params in Metal out-params helper.
The out-param helpers emitted by the Metal code gen (intended to provide
GLSL out-parameter semantics in Metal) emitted bad code if passed the
same variable for two separate out parameters. It would previously
create two parameters in the helper with the same name. The helper
function now omits the name of the second variable in the parameter list
if it is redundant; we already know the caller is passing the same
variable twice.

Change-Id: Ibdc6c02a9e9e4bdb4f4546a25068f2018aa07b10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370258
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-02-16 15:45:45 +00:00
Michael Ludwig
72140a9969 Delete deprecated color filter image filter header
Bug: skia:11230
Change-Id: I3ce314916f1fd8dafaf79598de0b6f30eff3b208
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368244
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-02-16 14:39:43 +00:00
John Stiles
92d83b7b9d Add test to demonstrate out-param semantics violation.
GLSL ES2 documentation on out parameters: "Evaluation of an out
parameter results in an l-value that is used to copy out a value when
the function returns."

The inliner does not do any alias checking when inlining an `out` param.
That is, passing the same variable to two separate `out` parameters
would not generate two distinct lvalues in the inlined code; it reuses
the same variable for each out-params in the inlined code.

(Amusingly, our CFG can fully optimize away this test code so it just
returns "red".)

Change-Id: Ib781d2cfdac54f01b6abe159af0c84ff24ff6976
Bug: skia:11326
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370256
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-02-16 14:28:49 +00:00
skia-autoroll
262f24cdb8 Roll Chromium from 43600b3ab08c to fae825105dc5 (212 revisions)
43600b3ab0..fae825105d

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

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: herb@google.com
Change-Id: I077555d63f2dffdc08b07d6227fa871ef2ca7d55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370647
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-16 06:11:54 +00:00
skia-autoroll
330578e811 Roll ANGLE from 031dd5c56b37 to ca6573ebb08a (5 revisions)
031dd5c56b..ca6573ebb0

2021-02-15 syoussefi@chromium.org Vulkan: Fix dirty bit bug when closing RP in setupDraw()
2021-02-15 cwallez@chromium.org Suppress a SimpleStateChangeTestES31 on Linux AMD GLES
2021-02-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 673a7fe5c3ff to 539ef8e9426e (2 revisions)
2021-02-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c409714366e9 to 418fd62b5c0f (7 revisions)
2021-02-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 59663a6eb4d6 to 17c6b31351cf (178 revisions)

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

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: herb@google.com
Change-Id: I99a0ac65f022f6818884e4401d2018da97809282
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370641
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-16 04:52:20 +00:00
Mike Reed
7cb0f6e970 Don't define legacy flag
Change-Id: I0c0b5012af81647e75c5bbaab9f7d69dade53a8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370476
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-02-15 14:25:13 +00:00
skia-autoroll
56a8fbd21e Roll Chromium from ede6daaf9f05 to 43600b3ab08c (557 revisions)
ede6daaf9f..43600b3ab0

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

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: herb@google.com
Change-Id: Ieb4374fa5fae33d75fe73ab8068ac53a930d02f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370443
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-15 05:13:31 +00:00
skia-autoroll
9dec92f4e7 Roll SwiftShader from 673a7fe5c3ff to 539ef8e9426e (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/673a7fe5c3ff..539ef8e9426e

2021-02-12 srisser@google.com Support querying for Vulkan11 properties
2021-02-12 sugoi@google.com Implement GLSLstd450Interpolate* functions

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 herb@google.com on the revert to ensure that a human
is aware of the problem.

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: herb@google.com
Change-Id: I289c77c2693251a51044844fbc797028cc6b4fb6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370496
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-15 05:05:13 +00:00
skia-autoroll
3a524b8129 Roll ANGLE from 545d0051c9d8 to 031dd5c56b37 (2 revisions)
545d0051c9..031dd5c56b

2021-02-14 syoussefi@chromium.org Vulkan: Add fast path for pack buffer copies
2021-02-14 m.maiya@samsung.com Allow more formats as texture attachments in GLES 1

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

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: herb@google.com
Change-Id: Ifa13ac41e873e86a015a60570057d26b834921c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370444
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-15 05:04:17 +00:00
skia-autoroll
b44fbb3392 Roll Dawn from d44159c23c10 to e61c9d868841 (1 revision)
https://dawn.googlesource.com/dawn.git/+log/d44159c23c10..e61c9d868841

2021-02-12 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from dc9d3e0cd5f2 to 545c9742d5b8 (2 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from dc9d3e0cd5f2 to 545c9742d5b8

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 cwallez@google.com,kainino@google.com,enga@google.com on the revert to ensure that a human
is aware of the problem.

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: cwallez@google.com,kainino@google.com,enga@google.com
Change-Id: Ic1c75bed148cd2a9ccbe0e81c179208098c18195
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370442
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-15 04:59:14 +00:00
Mike Reed
708dc4f8ca Hide legacy imagefilters::image using filter-quality
Small diffs in a GM -- due to the dual nature of kMedium (cpu and gpu)
Another reason to stop using it, and switch to the more-explicit
sampling.

Bug: skia:7650
Change-Id: Ie7575071b19778626da7f94804abaaa11861a050
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370259
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-02-14 14:58:00 +00:00
skia-recreate-skps
9410c7bfb9 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I4c059e25d504d29ba584e18cc0463fd856c8ac7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370311
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-02-14 09:40:21 +00:00
James Clarke
c3e152b9f7 Fix type in Issue 11102: Add support for UWP compilation target
Bug: skia:11102
Change-Id: I03edc6fb10db6d8f3d160ba34dac3352027ee532
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370226
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-02-13 23:38:48 +00:00
skia-autoroll
af2cca1d72 Roll ANGLE from cf8c71de559a to 545d0051c9d8 (15 revisions)
cf8c71de55..545d0051c9

2021-02-13 syoussefi@chromium.org Add a number of glMemoryBarrier tests
2021-02-13 syoussefi@chromium.org Capture/Replay: Some fixes for capturing WebGL
2021-02-13 m.maiya@samsung.com Update assert in BitSetArray::Iterator::prepareCopy
2021-02-13 m.maiya@samsung.com GetBitSet now uses BitSetArray instead of IterableBitSet
2021-02-13 m.maiya@samsung.com Add more functionality to BitSetArray class
2021-02-13 asully@chromium.org Mark uninstantiated tests
2021-02-13 bsalomon@google.com Disable warnings when building in Skia
2021-02-13 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 764e5b48c0ab to 59663a6eb4d6 (349 revisions)
2021-02-13 timvp@google.com Allow small compressed mip level copies
2021-02-12 timvp@google.com Vulkan: setAllDefaultUniformsDirty after createPipelineLayout
2021-02-12 penghuang@chromium.org Workaround context lost for Adreno 42x and 3xx
2021-02-12 ynovikov@chromium.org Remove dEQP expectations for tests removed from masterpass
2021-02-12 lexa.knyazev@gmail.com GL: Add allow_etc_formats workaround
2021-02-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from d671c89249af to 764e5b48c0ab (394 revisions)
2021-02-12 syoussefi@chromium.org Use constexpr initializer list for bitsets

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

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: borenet@google.com,mtklein@google.com
Test: Test: CtsCameraTestCasesTest: Test: Texture2DTestES3.CopyCompressedImageMipMaps
Change-Id: If9041f0b99bc987c7d6c73d271d86e5868090cec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370200
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-13 23:09:02 +00:00
Mike Klein
7a2ff98ce6 clean up SK_SUPPORT_LEGACY_RUNTIME_EFFECTS
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I4475982f0a5b17bcc4bae4b3f75557969cc70fd2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369856
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-13 22:01:14 +00:00
Mike Reed
554aabbaa8 Prepare flag to hide setFilterQuality
Bug: skia:7650
Change-Id: I9cfd6f87e2ca1eb5680e1ec83a029c6bfdbe7b2f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370236
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-02-13 18:06:43 +00:00
Brian Osman
4f065e286d Revert "Performance experiment: Disable SkSL optimization in nanobench/skpbench"
This reverts commit 5ad759065d.

Reason for revert: Experiment concluded - got the data we need.

Original change's description:
> Performance experiment: Disable SkSL optimization in nanobench/skpbench
>
> Change-Id: I974571e7e0e9d0170f92b970d425d9ce530e312e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369716
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

TBR=bsalomon@google.com,brianosman@google.com,johnstiles@google.com

Change-Id: I68bc07e8a604abb77fe9c1f1dac794ab7b90b9e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370156
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-02-13 01:06:13 +00:00
John Stiles
80b02af6ba Fix assertion when arrays are double-declared.
Multi-dimensional arrays aren't legal in GLSL/SkSL, so this should be
caught and flagged as an error. The parser now verifies that a
variable's type isn't an array-type before accepting a `[` token to
open an array on the variable name.

This CL also refactors the IR generator's `convertArraySize` method to
make sure that various checks are made for all callers. Originally this
restructuring was used to verify array multi-dimensionality, but that
didn't detect errors inside struct declarations (which get no error
checking inside the IR generator) so the IR generator updates no longer
need to check the array dimensions.

Bug: skia:11322
Change-Id: Id33f4bdfb544019ddf995a8196c3c09cfe5a4525
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369916
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-02-12 23:49:04 +00:00
Nathaniel Nifong
ba4c3086ba Move GPU locking logic into generic hardware profile
Change-Id: If130b47acdd7f7fc06daa1d4cb5938e4476e0171
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/367776
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2021-02-12 23:01:08 +00:00
John Stiles
59e3456695 Avoid descending into Expressions unnecessarily.
We know expressions can't contain @if or @switch statements inside of
them, so we can avoid recursing into them and run this check slightly
faster.

Change-Id: I60cd6dd40ddda74f7af259fd13e5ea0779982384
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370076
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-12 22:46:04 +00:00
John Stiles
8dabeac58c Improve error reporting for invalid var-decls.
We now interpret any statement of the form `Type identifier...` as a
var-declaration and report errors as such. Previously, if a var-decl
statement generated an error during parse, we'd report errors as if it
were an expression-statement, which meant that slightly-invalid code
could return out-of-context, misleading errors.

Bug: skia:11287
Change-Id: I2c6cf2984760eb34593c80cb30f8c4e007d42027
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/370036
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-02-12 22:26:36 +00:00
Mike Reed
6e73404a78 Remove unused high-quality downgrade heuristic
Change-Id: I4c57f207497f6e701af517fe67c297e210c7ceae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369997
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-02-12 21:48:13 +00:00
Brian Osman
6c3b23fcf3 SkSL: Ensure struct declarations contain at least one member
Bug: skia:11314
Change-Id: I66476543462ae378a5bfb6cbd902dfa2f5fc45f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369917
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-02-12 20:57:56 +00:00
John Stiles
1f19ce2272 Reland "Remove deprecated form of SkRuntimeEffect::Make."
This reverts commit e89b50ae05.

Reason for revert: landed Android fix at http://ag/13544365 (master) and
http://ag/13554983 (sc-dev)

Original change's description:
> Android roll broke with a compilation error:
> frameworks/base/libs/hwui/jni/Shader.cpp:243:37: error: no matching function for call to 'get'
>     sk_sp<SkRuntimeEffect> effect = std::get<0>(result)
>
> Revert "Remove deprecated form of SkRuntimeEffect::Make."
>
> This reverts commit 1cda194366.
>
> Reason for revert: <INSERT REASONING HERE>
>
> Original change's description:
> > Remove deprecated form of SkRuntimeEffect::Make.
> >
> > Chromium has migrated to the new API at https://crrev.com/c/2675855.
> >
> > Change-Id: Id4af77db2c462348e8031d28f56e543ad619c19c
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/367060
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: Brian Osman <brianosman@google.com>
> > Commit-Queue: John Stiles <johnstiles@google.com>
> > Auto-Submit: John Stiles <johnstiles@google.com>
>
> TBR=mtklein@google.com,brianosman@google.com,johnstiles@google.com
>
> Change-Id: Ie18f865f3b7f5b0263db1e52b19cf6faa0500fdd
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368616
> Reviewed-by: Stan Iliev <stani@google.com>
> Commit-Queue: Stan Iliev <stani@google.com>

TBR=mtklein@google.com,brianosman@google.com,stani@google.com,johnstiles@google.com

Change-Id: I9d679013cb275dc80aaaa977b7f1f4da31f36d1e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369037
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-02-12 20:57:50 +00:00
Brian Salomon
2494942f0d Reland "Flush rather than copy pixels in GrSurfaceContext::writePixels."
This is a reland of 3b7a12bd66

Original change's description:
> Flush rather than copy pixels in GrSurfaceContext::writePixels.
>
> Speculative fix for:
>
> Bug: chromium:1171141
> Bug: chromium:1171188
> Change-Id: Ic9762f17652172e620c6bb59aa89e3bb6bc97659
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369318
> Reviewed-by: Adlai Holler <adlai@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Bug: chromium:1171141
Bug: chromium:1171188
Change-Id: I535c9e0252b73c5277b0257ea5cdcac92de53e70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369877
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Adlai Holler <adlai@google.com>
2021-02-12 20:42:58 +00:00
Mike Klein
e76e47982b skvm float divides are meant to allow /0
In this case, unpremul() hits a divide-by-zero here,

    F32 invA = 1.0f / a

but then fixes it (and divide-by-tiny) after the fact,

    invA = select(invA < inf, invA, 0)

Bug: oss-fuzz:30887
Change-Id: Id2da801e04bd21df2138d3db110eedb238e28c43
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369936
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-12 19:52:33 +00:00
Brian Salomon
725f158bcc Remove GrGpu::testingOnly_flushGpuAndSync
Submitting without additional flushing and syncing GPU/CPU is achievable
with public APIs. Moreover, this testing-only method bypasses code and
can lead to bugs.

Change-Id: I03bd0fa65e5ba88ba6181521947243ba84ab9696
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369876
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-02-12 19:33:59 +00:00
Adlai Holler
79426194de Pipe ReducedOpsTaskSplitting into skpbench.py
This ought to help!

Bug: skia:10877
Change-Id: I8265c26dc4146ab78c125f27b533915cfb61aae8
Cq-Include-Trybots: luci.skia.skia.primary:Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_Vulkan_ReduceOpsTaskSplitting_Skpbench,Perf-Android-Clang-Pixel4XL-GPU-Adreno640-arm64-Release-All-Android_ReduceOpsTaskSplitting_Skpbench,Test-Debian10-Clang-NUC7i5BNK-GPU-IntelIris640-x86_64-Debug-All-ASAN_ReduceOpsTaskSplitting_Vulkan
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369756
Commit-Queue: Adlai Holler <adlai@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-02-12 19:32:02 +00:00
Chris Dalton
3354f8c4f8 Simplify stroke join definitions in tessellation shaders
All of a join's information can fit in a single float value:

    Negative => Round Join
    Zero     => Bevel Join
    Positive => Miter join, and the value is also the miter limit

Bug: chromium:1172543
Bug: skia:10419
Change-Id: I50bd822a735987cf21537164267d00e3f34badc5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369457
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-02-12 19:26:58 +00:00
John Stiles
381dd5721f Remove ternary Lvalue support in SPIR-V.
Ternaries are not assignable in GLSL/SkSL. This code should never have
been reached; no tests are affected.

Change-Id: I7d0139531062c27d7af395553e0d225247a70b48
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369878
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-02-12 19:26:57 +00:00
Mike Klein
28698696f1 revise how we handle invalid configs
Move the contrast pin to Make() so it affects all implementations.

Bug: oss-fuzz:30859
Change-Id: Iaf7854701bc6a148976f653066d7bf8f27080d2f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369698
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-12 16:46:37 +00:00
Brian Osman
5ad759065d Performance experiment: Disable SkSL optimization in nanobench/skpbench
Change-Id: I974571e7e0e9d0170f92b970d425d9ce530e312e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369716
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-02-12 16:02:25 +00:00
John Stiles
bb1505f2ab Move static-switch and static-if tests out of scanCFG.
We don't need to do these tests every time we run CFG optimization; we
can do them once at the end of optimization, as a separate step.

Change-Id: If0e72fbacb938b62387fd2ffdbf34d1153bf3bd4
Bug: skia:11319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369481
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-12 15:32:32 +00:00
Herb Derby
1526444aa4 Allocator for GrTextBlobs
This allocator is made specifically to handle the memory after
the class of a textblob. It is lighter weight than ArenaAlloc,
easier to calculate needed memory.

Change-Id: Ie9f94e08e2ffd4041712dd3025296a830e940eb3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/356317
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-12 15:30:36 +00:00
John Stiles
ec24154521 Fix SPIR-V bug with swizzled out parameters.
The CL at http://review.skia.org/366399 introduced a bug with
LValue::getPointer. Specifically, getPointer used to return zero when
no pointer is available. (This happens when the LValue is a swizzle.)
That CL changed the error code to -1. However, it did not fix up all
the call sites that checked the return value of getPointer().

This CL fixes up those call sites to use -1 consistently, and adds
TODOs in spots which do not check the result from getPointer() at all
(instead assuming it cannot fail). This will allow swizzled out-
parameters to work in SPIR-V as they did before. (Except in intrinsics,
where they seem to have been broken all along, but those are now marked
with a TODO at least.)

Note that we still do not fully emulate GLSL semantics for out
parameters, as out-parameters should only be copied back to the original
variable at the end of the function call to be fully GLSL compliant.

(This CL also replaces a tuple with a named struct for readability.)

Change-Id: I708dc7a69296a4244ba9ceb85c3e68d1f331bbc9
Bug: skia:11052
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368618
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-12 15:21:27 +00:00
Michael Ludwig
b604452761 Delete deprecated blur filter header
This also deletes the type conversions between the legacy
tile mode and SkTileMode and cleans up the serialization
logic around that just a little bit.

Bug: skia:11230
Change-Id: If404a73e13f42055a0fe7638dcd9f58cf7e9b896
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368243
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-12 13:49:45 +00:00
skia-autoroll
3370d68067 Roll Dawn from 7e80cce1a906 to d44159c23c10 (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/7e80cce1a906..d44159c23c10

2021-02-11 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from c2118b0dcb2a to dc9d3e0cd5f2 (11 revisions)
2021-02-11 senorblanco@chromium.org Enable more tests on OpenGL and OpenGL ES backends.
2021-02-11 cwallez@chromium.org Reland "Vulkan: Fallback to XCB for Xlib surfaces"

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from c2118b0dcb2a to dc9d3e0cd5f2

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 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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: kainino@google.com
Change-Id: Ie7519444e56f84992edae8faa3eb4b72b3274cd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369584
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-12 05:44:46 +00:00
skia-autoroll
7755db63fe Roll Chromium from 897c00073839 to ede6daaf9f05 (402 revisions)
897c000738..ede6daaf9f

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

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: borenet@google.com
Change-Id: Ifa21804ee14aace583f897176e9b2bfa29ce91e6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369616
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-12 05:39:30 +00:00
skia-autoroll
22363fe3da Roll ANGLE from cffe90b44a51 to cf8c71de559a (12 revisions)
cffe90b44a..cf8c71de55

2021-02-11 jmadill@chromium.org Supress failing capture/replay test.
2021-02-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from fd70e387953e to d8a8a5c337df (2 revisions)
2021-02-11 ynovikov@chromium.org Link angle_util statically into angle_system_info_test
2021-02-11 asully@chromium.org Only define test suites when TEST_Ps defined
2021-02-11 syoussefi@chromium.org Revert "GL: Cache the results of glGetString"
2021-02-11 jmadill@chromium.org Capture Tests: Add to CQ when script is changed.
2021-02-11 jmadill@chromium.org Capture Tests: Update path to capture/.
2021-02-11 jonahr@google.com GL: Do not support ETC1 textures on Desktop GL
2021-02-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 4dc6ccfad74a to c409714366e9 (3 revisions)
2021-02-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 95cbe3e024b0 to d671c89249af (511 revisions)
2021-02-11 lehoangq@gmail.com Metal: fix incorrect default viewport size with contentsScale>1
2021-02-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 28d3d98b040d to fd70e387953e (1 revision)

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

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/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
Tbr: borenet@google.com
Change-Id: I9b3c4c8dcc91ab4e139f0684f280dd4b03070c6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369583
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-12 05:08:13 +00:00
Adlai Holler
c616e1c179 Remove the partial-flush machinery from GrResourceAllocator
Since review.skia.org/366716 this is unused and it makes our life
a whole lot simpler. And a little faster.

Bug: skia:10877
Change-Id: Ib7205bae57ce282f0e4f33c7c780a4c3e5159ea5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369436
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-11 23:35:39 +00:00
Herb Derby
b33140ac7d allocation system for properly aligned bytes
GrBagOfBytes parcels out bytes with a given size and alignment.
It is very careful about checking all values coming so that
no calculations overflows.

If the current block is not big enough to satisfy the request
bytes, a new block will be allocated to satisfy the
requested bytes.

Change-Id: If7b5e812f903b51ba4936605cd0dc298dda8821a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368117
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-02-11 23:17:28 +00:00
Florin Malita
26af11c867 [skottie] Fix sphere lighting shader
Clamp s_base to avoid negative pow arguments.

Fixes rendering issues on Mac/Win.

Change-Id: I5176ffa6150ec430c2ab72115b74fd7ede5f5934
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369482
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Florin Malita <fmalita@chromium.org>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-11 23:15:02 +00:00
Brian Osman
f67199e1a7 Enforce runtime effect's isOpaque on the GPU backend
CPU already does this. Forcing it this way ensures that optimizations
related to opaqueness are correct.

Change-Id: Iaec3990ec0102b4c11f942774361239d3583adfd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369323
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-02-11 22:55:08 +00:00
Dominik Röttsches
691a794bee Support COLRv1 color fonts
Implement support for COLRv1 color gradient vector forms. COLR v1 is an
extension to the OpenType COLR tables that introduces support for
gradients, transforms and compositing. [1]

COLRv1 fonts contain an OpenType COLR table with format v1. In a COLR v1
table, glyphs are defined by a directed, acyclic graph of Paint
operations. The task for the Skia implementation is to extract the COLR
v1 information from the font using FreeType's COLRv1 API, then traverse
the glyph graph and translate information from the font into Skia
operations on SkCanvas.

Care needs to be taken for transformations to work correctly. FreeType
sends a top level transform that includes the scaling from font units to
actual glyph size, as well as optional transforms configured on FreeType
using FT_Set_Transform. This is set up as the starting transform at the
beginning of drawing a COLRv1 glyph. At the stage of setting a clip for
a PaintGlyph operation, the glyph outline is retrieved from FreeType
unscaled and untransformed. Since the starting transformation is applied
to the SkCanvas, the unscaled glyph is properly scaled and positioned.

Similarly, computing the initial bounding box for the COLRv1 glyph needs
to consider transformations. COLRv1 glyphs have a base glyph entry in
the glyf table which can use a minimum of two points for defining a
bounding box. This bounding box is an imaged rectangle enclosing those
two points at the identity transform. We need to compute the bounding
box scaled, but at identity transform, then make a rectangle from it,
that we then transform so that we get a large enough area to paint
in. If those two points from the glyf table would be transformed first,
then we would compute the bounding box, the resulting bounding box ends
up too small.

As a test font, add a version of the samples-glyf_colr_1.ttf from [2]
with one glyph added for testing PaintColrGlyph functionality and
compositions.

Add a basic GM test that produces color glyphs untransformed, with
skew and with rotation and combinations of those.

[1] https://github.com/googlefonts/colr-gradients-spec/
[2] https://github.com/googlefonts/color-fonts

Bug: skia:11264
Change-Id: I8357cd0c7ac0039bb2eac18f21fa343bf61871eb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/300558
Commit-Queue: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-02-11 22:51:13 +00:00
Ethan Nicholas
11a15b1181 added SkSL DSL uniform support
Change-Id: I42c9aa76318ed744ba1390733bb0bd33413ebf29
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/362499
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-02-11 22:03:56 +00:00
Greg Daniel
9408a6170b Final bits of vulkan buffer memory optimizations.
This moves transfer upload buffers to the new better specific memory
usage and removes the CPU buffer used on android for writing to gpu
buffers. The later will hopefully have some perf wins.

Bug: skia:11207
Change-Id: I581e179b155bdadcae5d3f881b5a479338e01240
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/369479
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-02-11 21:52:12 +00:00