Commit Graph

56360 Commits

Author SHA1 Message Date
Brian Osman
310178c7b7 Microbench for canvas save/restore calls
Change-Id: I0dbf1af17c3a7ec70437e0479cd8b6b6269d155c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433476
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-07-27 21:08:11 +00:00
Chris Dalton
e909e1e985 Remove the viewMatrix uniform from tessellation's BoundingBoxShader
This can be a instance attrib instead, which allows better batching
now that we transform the stencil geometry on CPU. We still keep color
as a uniform for this CL, since that can be faster on some devices
than varying color. In the future this can be configurable if we need
different colors in order to batch.

Bug: skia:12258
Change-Id: Ib8a4384f44586ffc80e72ca1cea8e9e49c778cdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433556
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-07-27 20:50:51 +00:00
Chris Dalton
66deeb2716 Bump the max atlas path size to 256 for non-MSAA
When we don't have MSAA to fall back on (e.g., for clipping), we
benefit from allowing larger paths in the atlas.

Bug: skia:12258
Change-Id: I6decb7c5dd092b5e350e9f5701e05df5680a52f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432076
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-07-27 20:43:15 +00:00
recipe-roller
fa4d522cb0 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools, recipe_engine) into this repository.

depot_tools:
2eba529771~..0b0738d9fe14e2a5f475ec41e2eeb14d33581bbf
  2eba529 (yiwzhang@google.com)
      recipe: import engine_types instead of types from recipe_engine
  0b0738d (linxinan@google.com)
      Add setbotcommit method to gerrit_client

recipe_engine:
60858d08ac
  60858d0 (yiwzhang@google.com)
      py3: rename types module to engine_types to avoid conflict with...

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7715fa8d7c1351792f51ac4a597d1a99d4c9dabd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433577
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2021-07-27 20:33:45 +00:00
Chris Dalton
6966981ae0 Add a 'pathMatrix' to GrPathTessellator::prepare
The pathMatrix is applied on the CPU while the geometry is being
written out. It is a tool for batching, and is applied in addition to
the shader's on-GPU matrix. This CL also updates GrPathStencilCoverOp
do do all its path transformations with pathMatrix on the CPU side.
The next step will be for atlases to use the pathMatrix instead of
creating uber paths.

Bug: skia:12258
Change-Id: Ib924dfb06a2c0eed8f9045adc6ae9eefad510082
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433236
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-07-27 20:31:57 +00:00
Herb Derby
2efda3ad16 draw vertices: put SkVM implementation behind a flag
Change-Id: I8bcaad6169d5e243b48984657347efed7063b654
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433496
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-07-27 20:27:42 +00:00
Florin Malita
40f3db41af Reland "Experimental ICU runtime linking"
This is a reland of f4aab0584d

Original change's description:
> Experimental ICU runtime linking
>
> Introduce a build config option where ICU symbols are resolved at
> runtime, against existing system libs.
>
> Change-Id: I2325537438de0063fcc4a7c0f8411764cf550f09
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431037
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Florin Malita <fmalita@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

Change-Id: I6f67a5eb842743d2486ccc4519e2d8cb9fac3458
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433277
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-07-27 19:51:31 +00:00
recipe-roller
abda17a7c4 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools) into this repository.

depot_tools:
c2fb26a337~..b992c4253f2180b90a9a54a1e6499a1b1585ca6b
  c2fb26a (linxinan@chromium.org)
      gerrit_client could retrieve the branch and tag info for a comm...
  b992c42 (kimstephanie@google.com)
      tryserver getter for CL repo host/project

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I27e5b721c743ef5de89588abd849a7e27e8ab346
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432693
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2021-07-27 19:30:47 +00:00
recipe-roller
6ad47a0ad6 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools, recipe_engine) into this repository.

depot_tools:
00af2cc9b7~..576f8a26a894a90a094b709e67b0f743415dee0c
  00af2cc (yyanagisawa@chromium.org)
      Roll out new goma client binary VERSION=228
  576f8a2 (bryner@google.com)
      New vpython release to depot_tools.

recipe_engine:
32560ddd7d
  32560dd (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 4d27bf4863b7 to 5849a0d29a3f

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I4350e283e82cba424186b6bcb7be721734f4a55d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432692
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2021-07-27 18:37:22 +00:00
Ben Wagner
097a9a4759 Fix unused-but-set-variable totQuadsSeen
In a Windows component release build with Chromium clang GrTextureOp.cpp
FillInVertices totQuadsSeen is calculated but never used. Put it behind
SkDEBUGCODE to match the other post condition asserts.

Change-Id: I6d26709caa952bdad8744ce5bdd82e11dbfa521e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433437
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-07-27 17:17:12 +00:00
Herb Derby
a4953515af add array to the Uniforms
Note: I have changed from using a byte offset for index to
an ordinary array index at the builder interface, but the
builder converts this to a byte offset for the instruction.
This makes the API easier to use.

I've added pushArray, and pushArrayF to the Uniforms, and
convenience methods on the builder to take Uniforms.

I've expanded the tests to use the new API.

Change-Id: Id538e826a96d4d242ae6482acc711d84c9041239
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432036
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-07-27 15:48:06 +00:00
Robert Phillips
294d687b69 Avoid OveridePaintFilterCanvas in Viewer when possible
Since:

https://skia-review.googlesource.com/c/skia/+/431539 (Feed all top-level GPU accessors through skgpu::BaseDevice (take 2))

The OveridePaintFilterCanvas now blocks access to the true SurfaceDrawContext that backs the top device of a GPU-backed SkCanvas. This is because the SkPaintFilterCanvas doesn't pass on SkCanvas::topDevice calls to the canvas it is wrapping so it always returns a SkNoPixelsDevice.

Given that accessing the top SDC is an incredibly specialized testing-only feature this CL keeps the feature working short-term w/o gumming up the public API.

Change-Id: I99012ba34c2800e0149251667156b412c4e8aa63
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433362
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-07-27 15:46:02 +00:00
Herb Derby
a37001e2ca Reland "Reland "add op array32 for indirect uniform access""
Forgot to load the pointer to the array in the arm64 case.

This is a reland of fe2506f3ca

Bug=skia:11822

Original change's description:
> Reland "add op array32 for indirect uniform access"
>
> This is a reland of ac2d053ccf
>
> The original CL was reverted because of a bug in the hash
> function.
>
> Bug=skia:11822
>
> Original change's description:
> > add op array32 for indirect uniform access
> >
> > Change-Id: I6249594a2348c7b24e4f057cce2f4e8a6a2c4409
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431676
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: Herb Derby <herb@google.com>
>
> Change-Id: I94604f5589c72d342c39cad44540d810ed7f31a1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432797
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I185fc9554dcb6aa7ce367814ce2c69603074c434
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433356
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-07-27 15:04:50 +00:00
Brian Osman
ae8e0634a8 Reject degenerate quads in AA hairline path renderer
Includes unit test that reproduces the original bug.

Bug: chromium:1232834
Change-Id: Iae2f52b42d35f0774c4cf9fa686df7aaf57c130a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433279
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-07-27 14:30:42 +00:00
Kevin Lubick
e33845317b [infra] Remove CIFuzz task
Don't have the cycles to maintain the build.

Change-Id: Ia06cd78f5920091fcad250391a4d91b039e97f5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432777
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-07-27 13:10:12 +00:00
Herb Derby
2c5b922e7a Revert "Reland "add op array32 for indirect uniform access""
This reverts commit fe2506f3ca.

Reason for revert: Breaks unit test on M1 mac

Original change's description:
> Reland "add op array32 for indirect uniform access"
>
> This is a reland of ac2d053ccf
>
> The original CL was reverted because of a bug in the hash
> function.
>
> Bug=skia:11822
>
> Original change's description:
> > add op array32 for indirect uniform access
> >
> > Change-Id: I6249594a2348c7b24e4f057cce2f4e8a6a2c4409
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431676
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: Herb Derby <herb@google.com>
>
> Change-Id: I94604f5589c72d342c39cad44540d810ed7f31a1
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432797
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

TBR=herb@google.com,brianosman@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: I3dccc04dc5a867bb45a99044991056b22f5b6fe3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433278
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-07-27 12:50:12 +00:00
Florin Malita
6cce9615a0 Revert "Experimental ICU runtime linking"
This reverts commit f4aab0584d.

Reason for revert: build failures

Original change's description:
> Experimental ICU runtime linking
>
> Introduce a build config option where ICU symbols are resolved at
> runtime, against existing system libs.
>
> Change-Id: I2325537438de0063fcc4a7c0f8411764cf550f09
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431037
> Commit-Queue: Florin Malita <fmalita@chromium.org>
> Commit-Queue: Florin Malita <fmalita@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

TBR=djsollen@google.com,bungeman@google.com,fmalita@chromium.org,fmalita@google.com,jlavrova@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: Ic252af1d7ba0a72b3c596e61f86746c27a0685b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433276
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-07-27 12:13:39 +00:00
skia-autoroll
84cc1f6acf Roll ANGLE from a5b7655cb25a to b8d6f8aa936d (11 revisions)
a5b7655cb2..b8d6f8aa93

2021-07-27 syoussefi@chromium.org Translator: Facilitate integration in FireFox
2021-07-27 syoussefi@chromium.org Vulkan: SPIR-V Gen: Fixes to tessellation shader support
2021-07-27 syoussefi@chromium.org Translator: Remove GLSL rules from the ESSL-only symbol table
2021-07-27 syoussefi@chromium.org Vulkan: SPIR-V Gen: Fix bugs with ES3.1 texture* builtins
2021-07-27 syoussefi@chromium.org infra: Enable gles3 deqp tests with direct SPIR-V generation
2021-07-27 syoussefi@chromium.org Vulkan: SPIR-V Gen: Fixes to geometry shader support
2021-07-27 syoussefi@chromium.org Vulkan: SPIR-V Gen: Fix .length() vs ssbo arrays
2021-07-27 syoussefi@chromium.org Vulkan: SPIR-V Gen: Support multiview
2021-07-26 jmadill@chromium.org Capture/Replay: Only perform call updates on valid calls.
2021-07-26 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 172cae01c41b to 779c0d440060 (322 revisions)
2021-07-26 gert.wollny@collabora.com Capture/Replay: Handle missing context serialization

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 kjlubick@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/main/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: kjlubick@google.com
Change-Id: Iaabe711e8306706030e3e1c80bc5f527493c7079
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433216
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-27 05:29:44 +00:00
skia-autoroll
c687917096 Roll SwiftShader from 915947134128 to fdb16bd6c291 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/915947134128..fdb16bd6c291

2021-07-26 pkasting@chromium.org Fix some instances of -Wunused-but-set-variable.

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 kjlubick@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/main/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: kjlubick@google.com
Change-Id: Ib162e75eae9a12a71b934beac2a748c723bb50e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433199
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-27 05:10:42 +00:00
Robert Phillips
0ca08cc720 Fix G3 roll
TBR=kjlubick@google.com
Change-Id: I38acafacaac1216a46bc2e92638dbf542fb0e74b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433181
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-07-26 23:11:45 +00:00
Chris Dalton
a8c4de96df Revert "Delete GrPathTessellationShader::MakeSimpleTriangleShader"
This reverts commit 09bc8af282.

Reason for revert:

The GrDefaultGeoProcFactory handles view matrices differently,
including injecting different code based on the matrix type. This can
introduce LSB differences between the points generated by the curve
shader and the fan shader, leading to gaps and jogs in seaming.

Original change's description:
> Delete GrPathTessellationShader::MakeSimpleTriangleShader
>
> We should have always used the default GP here. It makes for better
> reuse, and shader that draws raw triangles isn't a "tessellation"
> shader anyway.
>
> Bug: skia:10419
> Change-Id: Ia2ef2a83f5ed8917005e12b9f9a52c1d9f877575
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/429956
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: skia:10419
Change-Id: Ifce8204f23066e9c85af458a7d15abd8551fe965
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432742
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-07-26 22:55:43 +00:00
Herb Derby
fe2506f3ca Reland "add op array32 for indirect uniform access"
This is a reland of ac2d053ccf

The original CL was reverted because of a bug in the hash
function.

Bug=skia:11822

Original change's description:
> add op array32 for indirect uniform access
>
> Change-Id: I6249594a2348c7b24e4f057cce2f4e8a6a2c4409
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431676
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I94604f5589c72d342c39cad44540d810ed7f31a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432797
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-07-26 22:42:15 +00:00
Ethan Nicholas
27f06eb8ef Revert "Revert "Removed name string field from SkSLType""
This reverts commit 917fef7ba7.

Change-Id: I68aeff69cc59bdd185ac79465eaba7215c01413a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433176
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-07-26 22:41:12 +00:00
Robert Phillips
0cb587c033 Revert "Fix build SKNX_NO_SIMD build and G3 roll"
This reverts commit 5fea567664.

Reason for revert: G3 build

Original change's description:
> Fix build SKNX_NO_SIMD build and G3 roll
>
> Change-Id: Iaf8875085d5a97d4d8b1310f3f2b7c254ba1da67
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433157
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

TBR=bungeman@google.com,robertphillips@google.com,bungeman@chromium.org

Change-Id: I6fbaf1bc13b4f09e6d053c2eb276cdd579ba8684
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433178
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-07-26 21:46:32 +00:00
Chris Dalton
40c906f58e Don't store a GrVertexWriter pointer in GrMiddleOutPolygonTriangulator
GrVertexWriter is itself a pointer, so this is a double reference.
It's ~20% faster on the micro benchmark to store this as a literal
GrVertexWriter. The motivation for this CL is that we need to optimize
the CPU-side processing for tessellation in order to place the
tessellation atlas above the cached triangulating path renderer in the
chain.

Bug: skia:12258
Change-Id: Ie10036d2fe618e848cdf67b9c23038fb9edf4c3b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433077
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-07-26 21:43:38 +00:00
recipe-roller
8c1eae1a18 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

recipe_engine:
9f66864e52~..14aeb4fc9d57d144be6ba3cc8b6b948fa5d74e6e
  9f66864 (yiwzhang@google.com)
      stop calling basicconfig in subcommand because it is now always...
  a9d52af (yiwzhang@google.com)
      py3: add .vpython3 to .gitattributes so that it will be bundled
  14aeb4f (yiwzhang@google.com)
      py3: use zlib module to compress the build proto stream

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I6367990d56654b150e8559af2b9c5dafa82feea8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432960
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2021-07-26 21:25:12 +00:00
Florin Malita
f4aab0584d Experimental ICU runtime linking
Introduce a build config option where ICU symbols are resolved at
runtime, against existing system libs.

Change-Id: I2325537438de0063fcc4a7c0f8411764cf550f09
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431037
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-07-26 21:18:17 +00:00
Robert Phillips
5fea567664 Fix build SKNX_NO_SIMD build and G3 roll
Change-Id: Iaf8875085d5a97d4d8b1310f3f2b7c254ba1da67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433157
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-07-26 21:13:47 +00:00
Mike Reed
a2a85e473c Generalize composing imagefilters and shaders to blenders
The preexisting enum versions now are just shallow factories for
the new blender versions, though internally we've kept the
specializations on impl.

Change-Id: I3449682bb443a4ff9f53cc7b0860343c56e377e4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/424436
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-07-26 21:07:51 +00:00
Herb Derby
72ce9be7fd different bytes - same hash
Change-Id: I2aa06f8e0800a6b5a869978e68a76f5e1d4711af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432996
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-07-26 21:04:22 +00:00
Brian Salomon
d438815e85 Protect against div-by-zero in GrSmallPathRenderer::onCanDrawPath
Bug: oss-fuzz:33865
Change-Id: I769e28ace7a61a5a1053777ce8270365975620c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433136
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-07-26 20:54:17 +00:00
recipe-roller
bd7278a2ba Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

recipe_engine:
7d762708d4
  7d76270 (tandrii@google.com)
      [doc] fix typo.

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I68e4603ff54c476964a9e3c53b8b3e94e31c6c54
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432959
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2021-07-26 20:06:42 +00:00
Ethan Nicholas
917fef7ba7 Revert "Removed name string field from SkSLType"
This reverts commit 2df03e64bf.

Reason for revert: Unhappy bots

Original change's description:
> Removed name string field from SkSLType
>
> This field wasn't really necessary, and was just bloating Type and
> causing a lot of extra String creation. This one change reduces the
> size of a new Compiler by ~2.4KB.
>
> Change-Id: Ie90c565d669d2caaa61056015ea2119fe61c1844
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/423298
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>

TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com,skcq-be@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: I3959961d00749addc99cf97b6e2d50a172bf4b25
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433158
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-07-26 19:56:40 +00:00
Brian Salomon
3465365fbd GrRRectEffect checks all nine-patch elliptical radii against min radius.
Bug: chromium:1224753
Change-Id: I41766993e4013250e9afdda86abc024dec63e88c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433058
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-07-26 19:15:44 +00:00
recipe-roller
a5fab95226 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (recipe_engine) into this repository.

recipe_engine:
493b236de3
  493b236 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 8183425438f1 to 04c7051e7a02

More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.

R=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ib536535a4d65749056e3640b9bcdfbc288bc7752
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432958
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2021-07-26 18:37:42 +00:00
Robert Phillips
400f52e691 Retract GrSurfaceDrawContext.h a bit
This CL just pulls GrSurfaceDrawContext.h out of headers and .cpp files where possible.

TBR=brianosman@google.com
Bug: skia:11837
Change-Id: Ib96f3619e3a50091516f81ae48f956fe83c05aff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431384
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-07-26 18:28:04 +00:00
Brian Osman
0074706b80 Fix SkOpts::hash_fn slightly
We were folding together a string of 4 byte values as 8 byte values,
causing us to CRC in quite a few zeros. This appears to really poison
the algorithm, resulting in frequent hash collisions.

Change-Id: I1e363088d821d2fc0bbc392b78d1e24690fdc70a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432938
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2021-07-26 18:08:56 +00:00
Ethan Nicholas
2df03e64bf Removed name string field from SkSLType
This field wasn't really necessary, and was just bloating Type and
causing a lot of extra String creation. This one change reduces the
size of a new Compiler by ~2.4KB.

Change-Id: Ie90c565d669d2caaa61056015ea2119fe61c1844
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/423298
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-07-26 18:03:12 +00:00
Brian Osman
940517cc1e Only enlarge bounds for color filters that affect transparent black
Change-Id: I695ee063d700bea1956290d12ddfa7e0792ff894
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432258
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-07-26 17:27:46 +00:00
Ben Wagner
53813ff67c Remove unused ICU include from SkShaper_harfbuzz
SkShaper_harfbuzz should be relying solely on the icu module for
icu like things, and this include is no longer used.

Change-Id: I7b247d9de30646c0002ed8380a96b9a86d84baf7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432998
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
2021-07-26 17:24:09 +00:00
Peter Kasting
a3eaeb4fd8 Fix an instance of -Wunused-but-set-variable.
Bug: chromium:1203071
Change-Id: I1cdd65c735dcc30a50cf4cdd4a63b309d3bc5a90
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432738
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-07-26 16:53:09 +00:00
Ben Wagner
c4de11b6d7 Don't build hb-icu
Since "Build HarfBuzz without ICU support" e07555f6aa, HarfBuzz in Skia
has not been using ICU. However, hb-icu support files are still being
built. Remove them from the build.

Change-Id: Ib8dcf8a2139255ee1a1019197c38414305ca082e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432997
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-07-26 16:51:44 +00:00
Jorge Betancourt
0b94acc132 [androidkit] initial upload of SkottieView util
Change-Id: I6f83ee6947121bef8a0c5b76b7a96ad85f24bd36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/430018
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-07-26 15:47:10 +00:00
John Stiles
6926ba4d3c Fix variable name shadowing issue.
Some runtime effect `onProgram` calls were using the name `dst` both as
the name of the destination color inside the sampleBlender lambda, and
as the name of the SkColorInfo for the destination surface.

The SkColorInfo has been renamed to `colorInfo` to disambiguate the two.

Change-Id: Ia85be8b53cb37eebbf4cbaa2b33ad36e8b6a7856
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432896
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-07-26 15:39:12 +00:00
Jim Van Verth
6a54042bcd Add GrMtlRenderPipeline.
Creates a wrapper class just for id<MTLRenderPipelineState> so it can
be managed as a command buffer object.

Bug: skia:12253
Change-Id: Ibef833fda25d00e7b3110c17b59c5e760b523473
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431040
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-07-26 15:11:41 +00:00
Robert Phillips
04f22eacaa Feed all top-level GPU accessors through skgpu::BaseDevice (take 2)
This pulls the GPU-specific accessors off of SkCanvas and SkDevice - moving them all to skgpu::BaseDevice and SkCanvasPriv.

This will allow us to more easily change the gpu class hierarchy (esp. changing GrSurfaceDrawContext to skgpu::v1:SurfaceDrawContext) w/o churning the public API.

TBR=brianosman@google.com
Bug: skia:11837
Change-Id: Ib69a3ea27c840fa7758bc3318395a27228c7ae9d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431539
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-07-26 14:56:37 +00:00
Kevin Lubick
4765fd0eb7 [infra] Remove failing InfraTests_Win job
And fix a Python typo

Change-Id: I2e63c16865ec44cf1506ea9392155b2b687042b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432776
Reviewed-by: Eric Boren <borenet@google.com>
2021-07-26 14:49:36 +00:00
Dominik Röttsches
613ca2b916 Fix PaintScale and add testing
Define separate GMs for scaling and gradient repeat modes. Migrate more
test glyphs to script generated test font from [1].

Follow-up to [2] and [3].

[1] https://github.com/googlefonts/color-fonts
[2] https://skia-review.googlesource.com/c/skia/+/424096
[3] https://skia-review.googlesource.com/c/skia/+/423396

Cq-Include-Trybots: luci.skia.skia.primary:Test-Android-Clang-GalaxyS6-GPU-MaliT760-arm64-Release-All-Android_NativeFonts
Change-Id: Ie4ac33967333e6218526889c4d762c5cc378e0d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431956
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-07-26 14:38:59 +00:00
John Stiles
d3b232e99b Implement SkBlendModeBlender::asFragmentProcessor.
The GrBlendFragmentProcessor already does everything right here,
including setting the correct optimization flags, so we can just
leverage the existing implementation as-is.

Change-Id: Iac6b2678d49ab0ab4bed44bcf7bb2749d05bd388
Bug: skia:12257, skia:12205
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432796
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-07-26 13:42:50 +00:00
John Stiles
bb2ef92d05 Add private blender type to SkSL built-in types.
This type will hold blender objects, similar to color filters and
shaders. Since the implementation is not yet complete, the type is
currently named `$blender` to indicate that it's private/inaccessible.
The $ will be removed once sampling is functional.

Many places which were conditioned on "is a color filter or shader" are
now conditioned on a helper method instead; if we ever add another
runtime effect type in the future, there should be less hunting for
places that need to be fixed.

Change-Id: I207219abf8764906c3612ce8896492c7a2af6ea1
Bug: skia:12257
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432259
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-07-26 13:10:42 +00:00