Just a typo fix.
Change-Id: I2fe1f6ae1c99d7f20a4fa5f49eefea514e224652
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321977
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>
This reverts commit 556b8bef61.
Reason for revert: TSAN (& ASAN?) bots unhappy
Original change's description:
> moved SkSL Field data into IRNode
>
> Change-Id: Ib119035466a9d5dbd870e5b4e22f45f3b56455c4
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321120
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>
TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com
Change-Id: Ibc6b41c8cfc13d1d7fafc43ff643483da5a5f368
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321980
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Fix a missing null check in SkSLAnalysis.cpp
Change-Id: Ifb976e79f93add9b7439d6b707bcee986f1284a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321936
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
No code changes in this CL, only hundreds of lines of indentation fixes.
Change-Id: I780a0f93a61e567c4dca0e8b8d7066350569dc55
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321795
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
With these changes, SkTArray/SkSTArray can be used.
Change-Id: Ibf9a720086ac4342157a665786afac713d56c300
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321786
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This greatly improves the output from a profiler. It makes it much
easier to determine how much time is spent in searching for candidates,
versus actually inlining them.
It also improves the code readability somewhat by breaking a large
monolithic function into several smaller functions.
Change-Id: I1b3ef6ddbe46af60e673f37ded766f8077ed6b03
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321376
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
We were letting this get further, then asserting.
Bug: skia:10797
Change-Id: Iff6fe43aa32450b5a517c94773031d593f1f62a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321794
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
- Use a named constant for unsized array columns. Some places were using
0, others were using -1. (It's now -1 everywhere).
- Fix dehydrate/rehydrate of unsized arrays.
- Change sk_in to be an unsized array - this matches the GLSL
declaration (the size is implicitly the number of vertices per
primitive). It also makes our use of sk_in where we index it not look
like out-of-bounds access.
Change-Id: I64b9e81872ed71bcb691657d21b5713217b0b5e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321553
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Bug: skia:10632
Change-Id: Icb27e44d234063ab049fef95587f474323d7ada9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321537
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Auto-resizing and vertical alignment require a non-empty text box. But
currently, the presence of the text box is used to discriminate between
point text [1] and paragraph text [2].
In order to support auto-scaling and v-alignment for point text, we must
decouple the text mode encoding from the text box:
* introduce and explicit LinebreakPolicy property for skottie::Shaper,
and use it to control line breaking instead of the text box presence
* by default, the line breaking policy is initialized per existing
AE/BM semantics: non-empty text box -> paragraph mode,
empty box -> point mode
* the policy can be overridden via the PropertyObserver APIs to enable
point mode auto-resizing and vertical alignment
[1] https://helpx.adobe.com/after-effects/using/creating-editing-text-layers.html#enter_point_text
[2] https://helpx.adobe.com/after-effects/using/creating-editing-text-layers.html#enter_paragraph_text
Change-Id: I007144283a31a2faa579d7eec82af72af3d540cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321788
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
There is not need to have read accesses list in the srcAccessMask of
barriers. This is cause the srcAccessMask is used to make writes to
memory available and reads obviously have no writes.
Change-Id: I2fb1eca04d6f216bc63e200ad36bacdb40bf8146
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321785
Auto-Submit: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
This reverts commit a0c82f08df.
Change-Id: Ic2e93591c64992ec22e477bd0975d71954bef1c6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321469
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This will later allow us to rescan parent statements independently,
instead of performing a full rescan of the entire Program on each
iteration.
Change-Id: Id86e139d81125bc529aba9453cba5606d1041908
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321462
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
The vulkan spec says that if a subpass has an input attachment that the
input attachment descriptor set must be bound to all pipelines in that
subpass. This includes pipelines that don't actually use the input
attachment.
Bug: chromium:1134454
Change-Id: I9a544a9a457dde80d315010a626ae74eb422bb9b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321779
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
This will allow us in a follow on change to put in a "fake" gl stencil
format for the wrapped FBO.
Bug: skia:10727
Change-Id: Iba1eca5114b34d25e6a220591d28a20f7b36b12b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321545
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
I noticed it was broken and untested when writing docs.
Change-Id: I5254b7bd50fde8a361c72ccbd7380809d31ccc08
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321464
Reviewed-by: Nathaniel Nifong <nifong@google.com>
We don't believe this is needed anymore and was mostly here to support
old desktop GL
Bug: skia:10727
Change-Id: Iab35ec7d6ed64d817aed57c38864932cc417c68e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321541
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
This reverts commit 3e40ce0937.
Reason for revert: Lots of bad Vk images from Pixel2/3
Original change's description:
> Convert sksl_frag.sksl to an IRIntrinsicMap
>
> Did some related cleanup:
> - We were setting the IRGenerator's fIntrinsics to the (empty) GPU map
> while converting the GPU/frag/vert source. Make the IR generator
> support a null intrinsic map, so we can (more correctly) structure the
> compiler's constructor.
> - Use explicit types on all calls to findAndInclude.
> - Move the assert back into grab_intrinsics - every converted include
> only contains supported elements (and will continue to do so).
>
> Change-Id: I80ebb247107dde656946858bf2cd1f50a03f67d3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321496
> Reviewed-by: John Stiles <johnstiles@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>
TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com
Change-Id: I6f11366971bfd252f11d30c48e2e776d30458933
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321683
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
b09f16ee7a..1fd3e5d89a
2020-10-02 jmadill@chromium.org Test Runner: Fix race in watchdog timeouts.
2020-10-02 syoussefi@chromium.org Vulkan: Fix UtilsVk clear in non-zero subpass
2020-10-02 jmadill@chromium.org Revert "Vulkan:Add debug labels for OpenGL calls"
2020-10-02 jmadill@chromium.org Add a standalone GN isolate map.
2020-10-01 jonahr@google.com Suppress MultisampledRenderToTextureBenchmark on Pixel2/GLES
2020-10-01 syoussefi@chromium.org Skip MSRTT tests on Nvidia/Windows7
2020-10-01 b.schade@samsung.com Vulkan: Change sampleCoverage calculation
2020-10-01 lehoangq@gmail.com Metal: Implement transform feedback
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 brianosman@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: brianosman@google.com
Test: Test: dEQP-GLES3.functional.multisample.fbo*sample_coverage*
Change-Id: I85897c5a1daa356f38a61a748e51ac100d987302
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321647
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Did some related cleanup:
- We were setting the IRGenerator's fIntrinsics to the (empty) GPU map
while converting the GPU/frag/vert source. Make the IR generator
support a null intrinsic map, so we can (more correctly) structure the
compiler's constructor.
- Use explicit types on all calls to findAndInclude.
- Move the assert back into grab_intrinsics - every converted include
only contains supported elements (and will continue to do so).
Change-Id: I80ebb247107dde656946858bf2cd1f50a03f67d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321496
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
As a first step, convert sksl_pipeline.sksl to an IntrinsicMap (rather
than inherited element list). This makes the new code operate on
sk_FragCoord (which was previously being shared by all runtime effect
programs).
The new unit test angered TSAN, and now runs without complaint.
Also finish converting the .fp intrinsics over, so those don't need an
inherited element list either. And while doing that, refactor that
parsing to match all of the others. FP was uniquely implementing
processIncludeFile itself, rather than reusing the pattern of other
pre-include parsing.
The meat of the CL is the subtle changes in Compiler, and the logic in
cloneBuiltinVariables. Note that we need to clone the global variable
declaration element (because one of the goals is to get rid of shared
and inherited program elements), but also the variable itself (and the
new copy needs to live in the program's symbol table).
Bug: skia:10589
Bug: skia:10679
Bug: skia:10680
Change-Id: Ied352f8434dac2b8eacb4e515b014b6af7b57d20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319023
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
We don't use the entrance ID values anywhere; we only check to see if
the block is reachable or not.
Change-Id: I0988e6c1999936de25dd04404409b736d8ad14f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321540
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
The inliner generally only cares whether a function has 50 nodes or
less. Once we hit the 50th node, we can stop counting.
Change-Id: I92918989a9b3b5b73c1d1f13fa25c9adfa5b7e40
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321198
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
fa082bb58b..b09f16ee7a
2020-10-01 jmadill@chromium.org Don't pull in Vulkan headers in Skia standalone.
2020-10-01 cnorthrop@google.com Capture/Replay: Minor fixes for MEC
2020-10-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from fcb22ecf0f7e to 615fbe6cbc78 (6 revisions)
2020-10-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from b042f4e70879 to 5e947adaf26e (4 revisions)
2020-10-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from e2b329a75b6a to 7a78cc629cca (3 revisions)
2020-10-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 18cdc3179c58 to 5efa84e265f7 (627 revisions)
2020-10-01 jmadill@chromium.org Integrate Skia Gold with restricted trace tests.
2020-10-01 jmadill@chromium.org Drop isolated perf output arg in test runner.
2020-10-01 timvp@google.com Vulkan: Always reset during createPipelineLayout()
2020-10-01 ianelliott@google.com Vulkan:Add debug labels for OpenGL calls
2020-09-30 courtneygo@google.com Move LayoutCaches to ShareGroup
2020-09-30 cclao@google.com Vulkan: disable glFlush deferral optimization for QualComm GPUs.
2020-09-30 jmadill@chromium.org Fix info collection on Android without Vulkan.
2020-09-30 jmadill@chromium.org Additional perf test cleanup & functionality.
2020-09-30 courtneygo@google.com Vulkan: Check that its okay to add commands
2020-09-30 syoussefi@chromium.org Vulkan: Constants for unpacked D/S attachment indices
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 brianosman@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: brianosman@google.com
Test: Test: Manually verify Cut the Rope doesn't crashTest: Test: angle_perftests --gtest_filter="*Trace*"
Change-Id: I07c6099e1cf1506ed9fb5cd85b4b470386db2c20
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321479
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Change-Id: I8ab093c68e0c70d78722589bcfd28934f2cf5cb9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321517
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
The SkRasterClip on DeviceCM appears to be unused and just increased the
size of that struct. Now the clip is tracked on the MCRec or within
SkBitmapDevice itself.
This adjusts the reserved size for DeviceCM to match (as reported on my
machine), and moves it into an anonymous namespace.
Change-Id: Ifa8635f839fc3d75339a64c9378ee054fe0cc071
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321250
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Avoids double call of release proc on failure.
Bug: skia:9832
Change-Id: I517c010376ba73f6d98c95f3453c8b0f9a5a299a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321461
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: Ib97cbf2e20580d3b9e54a5ffe793013ec97d4892
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321539
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Part of this change is to move some of this static format information
off of GrCaps since it is not cap dependent in anyway. This allows us
to the need for caps in many places. Also changes the low level format
query to be based off of bytes per block so it can be shared for
compressed and non compressed formats.
This change will also make it easier to add stencil/depth formats in
follow on change since we don't have to fill in a whole caps
FormatInfo block just so we can get the bytesPerPixel which is all
they need.
Bug: skia:10727
Change-Id: I2e6fdabf3ed699b4145ef9e6f0a73078d32a0444
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321463
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
This reverts commit 135e237656.
No-Tree-Checks: true
Change-Id: I7e9dd2148f7b2a8dee1e49a9a9cc593e0d7ceb6e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321460
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Instead of being passed separately.
Check sample count in various onWrap methods in GrMtlGpu.
Bug: skia:9832
Cq-Include-Trybots: luci.skia.skia.primary:Test-iOS-Clang-iPhone8-GPU-AppleA11-arm64-Release-All-Metal,Test-iOS-Clang-iPhone7-GPU-PowerVRGT7600-arm64-Release-All-Metal,Test-iOS-Clang-iPadPro-GPU-PowerVRGT7800-arm64-Release-All-Metal,Test-iOS-Clang-iPhone11-GPU-AppleA13-arm64-Release-All-Metal,Test-iOS-Clang-iPhone6-GPU-PowerVRGX6450-arm64-Release-All-Metal,Test-Mac10.15-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Release-All-Metal
Change-Id: If5813db95b07f5d272e80920486f461cc5a587fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320956
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Maybe a hair faster for OOP-R/DDL-style rendering of the shadow_utils GM.
Bug: 1108408
Change-Id: If8827f7a765b8fc231f7a37178b7a12dc78357ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321159
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
No discernable perf improvement for OOP-R/DDL-style rendering of the matrixconvolution* GMs.
Bug: 1108408
Change-Id: Iea016feb2a8a0e5303a64ee8166c3ef089bb2649
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321137
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Using return statements generates better code when there are no early
exits.
Change-Id: I18edd49991324aaf1473b614261862d273eac541
Bug: skia:10549
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321237
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Similar to the same field on Enum and FunctionDeclaration, will be used
to facilitate cloning builtin variables into Programs that use them.
Bug: skia:10589
Change-Id: Ic63701c61ee4658a5ec72adb506cc96aa0b2836f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/321196
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Makes it simpler to call methods that update the internal ref counted
state.
Change-Id: Iecefab2c14ff13eae2fa34eafdcc7e031b3c85b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/320957
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>