Commit Graph

56596 Commits

Author SHA1 Message Date
John Stiles
d340042cd6 Fix assertion when swizzling literals.
The fuzzer generated the expression `(6).xx`, which triggered a
type-checking assertion. This swizzle was otherwise harmless.

Change-Id: Icb12f93fe3f6d88265d67e689ceb85cf1085c9e8
Bug: oss-fuzz:36655
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434464
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-29 15:07:51 +00:00
Dominik Röttsches
58920bbdca [COLRv1] Spec update for degree specifications, fix PaintSkew
Multiply degree values by 180 as FreeType returns them just as in the
font format. Add more tests for skew and transform, and a sweep
test. Update the test font to follow changes from a work in progress
FontTools branch which implements the new format.

Roll FreeType to include parsing changes
d3dc2da9b2..47b1a541cb

Bug: skia:12272
Cq-Include-Trybots: luci.skia.skia.primary:Test-Android-Clang-GalaxyS6-GPU-MaliT760-arm64-Release-All-Android_NativeFonts
Change-Id: Iaaf3a53dbf40828b908202c19de91319cc68b0b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432976
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-07-29 14:55:45 +00:00
Herb Derby
99d7d67fc4 draw vertices: implement triangle vertex color
Reuse all the existing SkTriColorShader, implement the
matrix code using SKvM.

Bug=skia:11822
Change-Id: I1a1f0dd005939386ca7bf9ba812e717967525089
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434159
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-07-29 14:46:11 +00:00
skia-autoroll
99b9cd836e Roll SK Tool from a7b6f73b1117 to dfaa677fc445
https://skia.googlesource.com/buildbot.git/+log/a7b6f73b1117..dfaa677fc445

2021-07-29 jcgregorio@google.com Followup fixes from previous CL review.
2021-07-29 borenet@google.com Remove new-branch commands
2021-07-29 jcgregorio@google.com [switchboard] Ansible role copy_authorized_keys.
2021-07-29 jcgregorio@google.com [switchboard] Ansible role to load secrets.
2021-07-29 borenet@google.com [sk] Update release-branch command for SkCQ and Chrome Faster
2021-07-29 borenet@google.com [task scheduler] Workaround to trigger Buildbucket build status fix
2021-07-28 lovisolo@google.com [gold] Replace truncateWithEllipses() with infra-sk's truncate().
2021-07-28 lovisolo@google.com [gold] Delete Webpack and Karma config files.
2021-07-28 lovisolo@google.com [status] commits-table-sk.ts: Replace Gold's truncateWithEllipses with infra-sk's truncate.
2021-07-28 borenet@google.com Update go.mod with licenses
2021-07-28 rmistry@google.com [skcq] Add expo backoff to AddComment
2021-07-28 rmistry@google.com Add configurable rate-limits to go/gerrit
2021-07-27 rmistry@google.com [skcq] Retry transient errors during vm.GetVerifiers

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: I4544edd12fa17efb1366d65d92e884ee1ee0bcaf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434483
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-29 14:45:49 +00:00
Jorge Betancourt
14c4206d25 [androidkit] add seekTime and seekFrame for SkottieView util view
Change-Id: Ic714c0be2f63f62485e9d44f1db1e708f3c04dcd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433056
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-07-29 14:12:54 +00:00
Chris Dalton
d665999b0d Place GrAtlasPathRenderer above GrSmallPathRenderer in the chain
Tessellation is extremely fast for large batches of small paths. That,
combined with its ability to render without caching and the atlas's
well-defined memory limits, make it desirable over
GrSmallPathRenderer's CPU-generated bitmap cache. We may want to
reconsider use cases for distance fields though, and those could be
prioritized above the atlas.

Bug: skia:12258
Change-Id: I7b8218eb02f38b3b0c1462b181b9373f5c84cdaa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434199
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-07-29 13:25:44 +00:00
John Stiles
0ce9592410 Add 'isBlendFunction' as a FP flag and 'destColor' to EmitArgs.
Blend functions are fragment processors that take two arguments, a
source color and dest color.

Change-Id: Ia26fadae42610fd8849716ad68db867cfa082169
Bug: skia:12257
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433361
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-07-29 13:12:20 +00:00
Chisoon Jeong
109f54d200 Correct a typo in build_workaround_header.py
Change-Id: I356cfc0c59ada46d93130af136168489f6287c02
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433898
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-07-29 13:06:01 +00:00
Corentin Wallez
ff9ee67872 Roll dawn, tint, spirv-headers and spirv-tools
Also does some evolutions of Dawn's API and suppresses
runtime_intrinsics_matrix when using Dawn because Tint doesn't implement
a SPIR-V -> WGSL MatrixInverse polyfill yet.

Roll third_party/externals/dawn/ 170ea75f2..d59ba7c18 (121 commits; 1 trivial rolls)
https://dawn.googlesource.com/dawn.git/+log/170ea75f2ad2..d59ba7c18b29

Roll third_party/externals/spirv-headers/ bcf55210f..cf653e4ca (25 commits)
bcf55210f1..cf653e4ca4

Roll third_party/externals/spirv-tools/ dc72924cb..11cd875ed (89 commits)
dc72924cb3..11cd875ed8

Roll third_party/externals/tint/ ea1a4680d..cc6d5b464 (185 commits)
https://dawn.googlesource.com/tint/+log/ea1a4680d490..cc6d5b464dcb

Created with:
  roll-dep third_party/externals/dawn third_party/externals/spirv-headers third_party/externals/spirv-tools third_party/externals/tint

Bug: tint:1045
Change-Id: I40b18282538910cf9528096d2c6114465fbe5266
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431958
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Stephen White <senorblanco@google.com>
2021-07-29 13:02:43 +00:00
skia-autoroll
0d9a079079 Roll ANGLE from 0d06c3cf936a to ae24c9d38782 (10 revisions)
0d06c3cf93..ae24c9d387

2021-07-29 adkushwa@microsoft.com Remove space from internal debug name strings.
2021-07-28 bsheedy@chromium.org Suppress Mac 11.4 failures
2021-07-28 syoussefi@chromium.org TestSuite tests: Don't validate stderr until fixed
2021-07-28 syoussefi@chromium.org infra: Enable gles3.2 deqp tests with direct SPIR-V generation
2021-07-28 syoussefi@chromium.org infra: Enable gles3.1 deqp tests with direct SPIR-V generation
2021-07-28 bikineev@chromium.org Disable RunAppAsync and RunAppAsyncRedirectStderrToStdout
2021-07-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 42c7e9bc00c2 to ecc420b25566 (2 revisions)
2021-07-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 915947134128 to b8bcc42a41e5 (2 revisions)
2021-07-28 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from f18a56e21b43 to 7ad7eb435b84 (470 revisions)
2021-07-28 syoussefi@chromium.org Translator: Make sure built-in variables are consistent

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: I287945bbf8e81fc74b35e5d6954f542c0e81a39b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434377
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-29 05:27:43 +00:00
skia-autoroll
ef721154a7 Roll SwiftShader from b8bcc42a41e5 to 44660405ea6c (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b8bcc42a41e5..44660405ea6c

2021-07-28 capn@google.com Initialize llvm::orc::ExecutionSession with default SelfExecutorProcessControl

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: Icd121263ac1e064a4c7b73371d7d8ed6a9bd8f69
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434376
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-07-29 05:14:42 +00:00
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