Commit Graph

56485 Commits

Author SHA1 Message Date
Chris Dalton
8cd8e27c2c Enable the atlas path renderer for GrAAType::kCoverage
This will definitely cause regressions on a whole slew of benchmarks
that were carelessly regurgitating cached bitmaps until the system
memory was blown. But the well defined memory limits of the atlas and
resilience to animation are worth it. If a client still wants this
type of caching they can always render their own bitmaps using Skia
and cache them.

Bug: chromium:928984
Bug: skia:12258
Change-Id: I277f50cb9192f1cf5fe8d4b7f629abe72432150a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433917
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-07-29 01:29:14 +00:00
Mike Reed
9459c1bb05 Move stub methods for updating shader into base
Change-Id: I2069553795403ea85e51eb84d4b146d10e59b027
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434296
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-07-28 22:14:47 +00:00
Chris Dalton
cdabdce301 Place the atlas path renderer above triangulation in the chain
This will cause some regressions on static, cached content, but the
hope is that the overall reliability of the atlas approach is more
desirable in the end.

Bug: skia:12258
Change-Id: I6db29342a70af6ebef61ebe91d406ed7692467f8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433916
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-07-28 21:48:04 +00:00
Chris Dalton
72fd33ac58 Limit the max atlas path width to 1024
The way GrDynamicAtlas works, a single 2048x1 path is given an entire
2048x2048 atlas with draw bounds of 2048x1025. Limit the max width to
1024 to avoid this landmine until it's resolved.

Bug: skia:12291
Change-Id: I4719ea789615a22238fa30b66f857dbfc113f33d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433966
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-07-28 21:42:45 +00:00
Chris Dalton
8a1bbaa210 Remove uber paths from the tessellation atlas
Implements the atlas properly with draw lists instead of taking a
shortcut with uber paths. This speeds up the chalkboard by ~20% on my
Windows laptop (10.9 -> 8.6ms).

Bug: skia:12258
Bug: chromium:928984
Change-Id: Icabccd9a797f5802a11eb087fc97c23edd895679
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433876
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-07-28 21:36:50 +00:00
recipe-roller
c23f34894d 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:
c5dc7a267c
  c5dc7a2 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 4a50fe70103e to 0bed1f0a6f81

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: Ieda5ae595dda868fc5552aa284119c113029bbef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433963
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-28 21:20:14 +00:00
Herb Derby
3b6ee00686 remove unused uniforms from update
Change-Id: Icc2cbce4080e9d5a76ea040982279d63fe198f69
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434160
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-07-28 21:08:55 +00:00
Brian Osman
7fd83ebd39 Fix SkTLList::popTail
Change-Id: Id3e4d10456be6e0e0329600f05641034f3ffdb8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434336
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-07-28 20:23:38 +00:00
skia-autoroll
257ce471d5 Roll SK Tool from 87274fcd2b55 to 7159a93d57df
https://skia.googlesource.com/buildbot.git/+log/87274fcd2b55..7159a93d57df

2021-07-27 rmistry@google.com [skcq] Detect and post a better comment when merge conflicts occur

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/sk-tool-skia
Please CC jcgregorio@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

Tbr: jcgregorio@google.com
Change-Id: I756952b9b6dfea7ee50fcca10faf1833c36efd1d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432694
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-28 20:13:18 +00:00
Robert Phillips
4dca83162b Rename GrSurfaceDrawContext to skgpu::v1::SurfaceDrawContext
This CL is mostly mechanical. It:

replaces "src/gpu/GrSurfaceDrawContext.h" #includes with
         "src/gpu/v1/SurfaceDrawContext_v1.h" and reorders

replaces "class GrSurfaceDrawContext;" with
         "namespace skgpu { namespace v1 { class SurfaceDrawContext; }}"

replaces "GrSurfaceDrawContext*" with "auto" where possible
replaces "rtc" with "sdc"
replaces "surfaceDrawContext" with "sdc"
replaces GrSurfaceDrawContext with skgpu::v1::SurfaceDrawContext
reflows parameters as needed

This CL does not try to:

make skgpu::v1::SurfaceDrawContext V1-only
minimize the skgpu and/or skgpu::v1 prefixes

Those two tasks will be accomplished in follow up CLs. This CL is just trying to get the bulk of the mechanical changes comprehensibly landed.

Bug: skia:11837
Change-Id: I6fe59080249d585df8f5d27c6b67569cdc35842f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433156
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-07-28 20:12:10 +00:00
Joe Gregorio
f1f542cde8 [switchboard] Switch S20s over to arm64 RPis.
Bug: skia:12063
Change-Id: I47257179d38de0452766ce70857eaf0a920b7abc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434156
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2021-07-28 18:36:40 +00:00
Herb Derby
5992f9eb43 draw vertices: fast triangles using a shader
Introduce a new call to SkShaderBase to return an
SkUpdatableShader. An SkUpdatableShader is both a SkShaderBase
and has an update() method.

If the onUpdatableShader call returns !nullptr, then the
shader's specialized updatable shader is used. Otherwise,
the shader is wrapped in a TexCoordShader.

This scheme allows Shaders to have specialized updaters,
but also adds updaters for shaders that don't need
specialization.

orig  this  bench
771µs 779µs verts_textures_colors
217µs 335µs verts_textures
275µs 380µs verts_textures_persp

Bug=skia:11822

Change-Id: I11ba344eba96188c5631228cd5e91c5d834ea3d6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/429417
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-07-28 18:08:35 +00:00
Chris Dalton
17eaf62160 Update GrPathTessellator::prepare() to take a list of paths
This allows us to batch multiple paths together in a single
tessellation. The first user will be the atlas, but the convex
renderer is also a good candidate.

Bug: skia:12258
Change-Id: I4d415d32bbf423cfd9b7ddf2543c21371936da90
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433776
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-07-28 16:56:51 +00:00
Jim Van Verth
5bd97720a8 Metal: use staging buffer for updating non-dynamic buffers
For non-dynamic (i.e. GPU-resident) buffers, onUpdateData() uses a
staging buffer rather than map() and unmap(). In addition, map() and
unmap() do nothing for non-dynamic buffers.

Also removes fOffset member, as it was never anything but 0.

Change-Id: I8bcd36c10c14d21395693686696462cca79a0e70
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433678
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-07-28 16:40:34 +00:00
Brian Osman
3a21d497bd Revert "Reland "SkCanvas: switch from SkDeque to simpler SkSTArray""
This reverts commit 4573ae19fe.

Reason for revert: Breaks Android roll.

Original change's description:
> Reland "SkCanvas: switch from SkDeque to simpler SkSTArray"
>
> This is a reland of 222c1c1631
>
> Original change's description:
> > SkCanvas: switch from SkDeque to simpler SkSTArray
> >
> > Faster, and much less klunky.
> >
> > Change-Id: I8531ea85bbfaff4ce1217d20803dd040a6edfff8
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433477
> > Commit-Queue: Brian Osman <brianosman@google.com>
> > Reviewed-by: Mike Reed <reed@google.com>
>
> Change-Id: I3efc47c7e6b7362f62188b3a6793d71edef83b67
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433979
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

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

Change-Id: Ibd0f9548bbab308cd70d6f77abb02c87e2e6aba3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434041
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-07-28 14:57:39 +00:00
Herb Derby
85dbc1e527 Reland "draw vertices: put SkVM implementation behind a flag"
This is a reland of 2efda3ad16

I don't know what I was thinking. I forgot to run tests
with --skvm. I think it needs to follow back on Raster
Pipeline until I have drawVertices fully implemented for
SkVM.

Original change's description:
> 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>

Change-Id: I5d5e16e7a1f4e3ff008a3d095556b6bf9ed19073
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433980
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-07-28 14:47:38 +00:00
Brian Osman
4573ae19fe Reland "SkCanvas: switch from SkDeque to simpler SkSTArray"
This is a reland of 222c1c1631

Original change's description:
> SkCanvas: switch from SkDeque to simpler SkSTArray
>
> Faster, and much less klunky.
>
> Change-Id: I8531ea85bbfaff4ce1217d20803dd040a6edfff8
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433477
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

Change-Id: I3efc47c7e6b7362f62188b3a6793d71edef83b67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433979
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-07-28 14:45:45 +00:00
Brian Osman
79b1478ffe Revert "SkCanvas: switch from SkDeque to simpler SkSTArray"
This reverts commit 222c1c1631.

Reason for revert: Assertion failures.

Original change's description:
> SkCanvas: switch from SkDeque to simpler SkSTArray
>
> Faster, and much less klunky.
>
> Change-Id: I8531ea85bbfaff4ce1217d20803dd040a6edfff8
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433477
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

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

Change-Id: I192a7f8b08c11b7be10c3248d9f89d8914fd4fa7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433978
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-07-28 12:51:53 +00:00
Brian Osman
222c1c1631 SkCanvas: switch from SkDeque to simpler SkSTArray
Faster, and much less klunky.

Change-Id: I8531ea85bbfaff4ce1217d20803dd040a6edfff8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433477
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-07-28 12:18:13 +00:00
skia-autoroll
c7218f57ad Roll ANGLE from b8d6f8aa936d to 0d06c3cf936a (9 revisions)
b8d6f8aa93..0d06c3cf93

2021-07-28 pkasting@chromium.org Fix some instances of -Wunused-but-set-variable.
2021-07-28 syoussefi@chromium.org Translator: Fix sizing of tessellation shader arrays
2021-07-27 ynovikov@chromium.org Revert "VulkanExternalHelper: Use VK_KHR_image_format_list extension."
2021-07-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d85297cbd31b to 42c7e9bc00c2 (37 revisions)
2021-07-27 pkasting@chromium.org Fix some instances of -Wunreachable-code-aggressive.
2021-07-27 lubosz.sarnecki@collabora.com VulkanExternalHelper: Use VK_KHR_image_format_list extension.
2021-07-27 lubosz.sarnecki@collabora.com FrameCapture: Capture GLES1 matrix stack.
2021-07-27 lubosz.sarnecki@collabora.com GLES1State: Add getMatrixStack function.
2021-07-27 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 779c0d440060 to f18a56e21b43 (464 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 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: I0fcfc1999ecfe27860493d96c9f117f294b6dd33
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433816
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-28 05:26:43 +00:00
skia-autoroll
5def25af3f Roll SwiftShader from fdb16bd6c291 to b8bcc42a41e5 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/fdb16bd6c291..b8bcc42a41e5

2021-07-27 capn@google.com Remove -Wno-unused-but-set-variable flag usage

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: I889948754de72ac9f9567c4784eef30522cef687
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433796
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-28 05:17:48 +00:00
recipe-roller
77292ac4a1 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:
1bd4ffa295~..493faf16216e7375a51be0139645969d93895520
  1bd4ffa (linxinan@google.com)
      Remove wait-for-merge from gerrit client tool
  493faf1 (linxinan@google.com)
      Add new API to update files by gerrit module

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: Id6a42f64d028aa078b48d8e63d28358653b31fd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433756
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-28 02:36:46 +00:00
recipe-roller
2527fd0b8d 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:
537f0cb4e8~..b26ca6d25250558db80f05c8a515fea2c00b0a2a
  537f0cb (yiwzhang@google.com)
      py3: replace os.unsetenv with os.environ.pop
  b26ca6d (yiwzhang@google.com)
      py3: add cffi to vpthon3 spec

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: I031e944ec029e9129941b4515598a2e6380bbd22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433738
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-28 01:33:17 +00:00
recipe-roller
dc409946e9 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:
acc131cedd
  acc131c (ukai@google.com)
      add infradata_rbe config

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: I0cbf2bd3e4109ee89f6e2913ad37d18f3f20766b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433736
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-28 00:32:45 +00:00
Herb Derby
32e07ae6bc Revert "draw vertices: put SkVM implementation behind a flag"
This reverts commit 2efda3ad16.

Reason for revert: Doesn't pass tests on SkVM bots.

Original change's description:
> 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>

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

Change-Id: Id76791621398481b3af3acf82e459be5263caba3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433676
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-07-27 22:29:54 +00:00
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