Commit Graph

60724 Commits

Author SHA1 Message Date
Ben Wagner
225c8861b7 [pdf] Differentiate text from byte strings.
In PDF there are two different physical encodings of strings (as a
sequence of bytes). There is the literal string encoding which is
delimited by '(' and ') which stores the bytes as-is except for '(',
')', and the escape character '\' (which can introduce octal encoded
bytes). There is also the hex string encoding delimited by '<' and '>'
and the bytes are encoded in hex pairs (with an implicit '0' at the end
for odd length encodings).

The interpretation of these bytes depends on the logical string type of
the dictionary key. There is a base abstract (well, almost abstract
except for legacy purposes) string type. The subtypes of the string type
are `text string`, `ASCII string`, and `byte string`. The `text string`
is logically further subtyped into `PDFDocEncoded string` and `UTF-16BE
with BOM`. In theory any of these logical string types may have its
encoded bytes written out in either of the two physical string
encodings.

In practice for Skia this means there are two types of string to keep
track of, since `ASCII string` and `byte string` can be treated the
same (in this change they are both treated as `byte string`). If the
type is `text string` then the bytes Skia has are interpreted as UTF-8
and may be converted to `UTF-16BE with BOM` or used directly as
`PDFDocEncoded string` if that is valid. If the type is `byte string`
then the bytes Skia has may not be converted and must be written as-is.

This means that when Skia sets a dictionary key to a string value it
must, at the very least, remember if the key's type was `text string`.
This change replaces all `String` methods with `ByteString` and
`TextString` methods and updates all the callers to the correct one
based on the key being written.

With the string handling corrected, the `/ActualText` string is now
emitted with this new common code as well for better output and to
reduce code duplication. A few no longer used public APIs involving
these strings are removed. The documentation for the URI annotation is
updated to reflect reality.

This change outputs `UTF-16BE with BOM` with the hex string encoding
only and does not attempt to fix the literal string encoding which
always escapes bytes > 0x7F. These changes may be attempted in a
separate change.

Bug: chromium:1323159
Change-Id: I00bdd5c90ad1ff2edfb74a9de41424c4eeac5ccb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543084
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-24 18:46:42 +00:00
Kevin Lubick
88e0e75380 [canvaskit] Fix uniform handling for makeShader and MallocObj
shaders.skia.org was passing in a Malloc'd TypedArray for uniforms
(to avoid unnecessary copying of that buffer on every frame).

However, CanvasKit would always take ownership of that buffer and
free it when the shader was freed. CanvasKit should only take
ownership (and clean up) the uniform buffer if it was not
copied into pre-malloc'd memory.

This also adds a handy make target that builds CanvasKit
and copies it into the proper place in the infra repository
to run the shaders app locally.

See also: https://skia-review.googlesource.com/c/buildbot/+/543436

Change-Id: I6c6b7f94f8c8571f9ce0613ccdd7fceb0f315a12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543416
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2022-05-24 16:33:17 +00:00
Herb Derby
4c26a927a6 Fix compile error on chrome bots
Change-Id: Ie1d94106a741a9cc51dfd13813f143374392489a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543516
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2022-05-24 16:08:14 +00:00
Michael Ludwig
0221e79b8b Remove SkNx entirely
Also cleans up the scattered references remaining in the code base
(including in files I thought I got already...).

Change-Id: I7004354b1e9cea9f9d9f45b791d8ab9ce557ba01
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542647
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-24 15:57:57 +00:00
Jim Van Verth
a25aeff052 Move GrTextBlobRedrawCoordinator to sktext:gpu namespace.
Also makes SDFMaskFilter available.

Bug: skia:13118
Change-Id: I27ca3ed85a057267387841be5dad10d8e6c7f7bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543079
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-24 15:36:34 +00:00
Michael Ludwig
36b8d05921 [graphite] Add uniforms for transform to stroke render step
Bug: skia:12703
Change-Id: I913a8411ab15f61e61512012061dd9f7fdbb0740
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/540857
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-24 15:12:56 +00:00
Kevin Lubick
66ef531e8d [bazel] Temporarily remove IWYU CI job
Appeasing IWYU and the Gazelle-generated BUILD.bazel files is currently
annoying for devs working on non-linux environments.

I have been experimenting with removing the gazelle rules (but still
keeping our BUILD.bazel rules organized), which would alleviate
some of the burden here. Until that is finished, we can stop one
of the two jobs.

Change-Id: Id6c43bd98c6ce41e1ae9a6bfc1102ff47a6e5b1f
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543496
Reviewed-by: Brian Salomon <bsalomon@google.com>
2022-05-24 14:58:10 +00:00
Herb Derby
163db5205d Ref to initialPositionMatrix on SubRun
Remove the need for the Slug/Blob at SubRun creation. This needed
to combine the SkGlyphRunPainterInterface for Slug and Blob.

Change-Id: I8ba1db4590a5db26d1542d025e5414a2625ad88f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543082
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-05-24 14:46:07 +00:00
Kevin Lubick
e526b7ed68 [canvaskit] Expose Canvas.getDeviceClipBounds()
Change-Id: Ie70e34873e755701fcfb04d0fcedf796ad9a4516
Bug: skia:13347
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543296
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2022-05-24 13:28:25 +00:00
skia-autoroll
8ad30fcbbe Roll Dawn from 318f6acd56c0 to c45f11ddb539 (7 revisions)
https://dawn.googlesource.com/dawn.git/+log/318f6acd56c0..c45f11ddb539

2022-05-24 jie.a.chen@intel.com Add VideoViewsTests.CreateVideoTextureWithoutInitializedData
2022-05-24 brandon1.jones@intel.com Change External Texture YUV-To-RGB Matrix To Be Optional
2022-05-23 cwallez@chromium.org Make Chromium's recurse_deps in Dawn get GLFW.
2022-05-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 82a65519c521 to 96612da0dde0 (1 revision)
2022-05-23 cwallez@chromium.org Add nullable annotations to webgpu.h
2022-05-23 cwallez@chromium.org Roll third_party/webgpu-cts/ e48651de0..9618103c4 (3 commits)
2022-05-23 cwallez@chromium.org CommandAllocatorTests: Fix a couple use-after-move.

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

To file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: I4df16abf6ff98a4004fc54e2bb94b34f306fefc5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543185
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-24 04:40:56 +00:00
skia-autoroll
c00eb65799 Roll vulkan-deps from 96612da0dde0 to aae529072cf3 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/96612da0dde0..aae529072cf3

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

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: tdenniston@google.com
Change-Id: I2eebbc8791c557b7a7af4608eb723d15cace1ee0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543183
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-24 04:02:59 +00:00
Jim Van Verth
791f4bcf3e Fix up Ganesh and Graphite defines.
SK_SUPPORT_GPU needed to be set to 1, and SK_GRAPHITE_ENABLED should
be checked to see if it's defined, not its value.

Change-Id: Ib762c590ceaa570ec98a76558657bbcee672c254
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543080
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-05-23 20:51:28 +00:00
Herb Derby
0fcf38ce16 Pass the SubRun storage to draw to be counted in the op
This is a CL to make the APIs for SubRuns more Blob/Slug
agnostic. The aim is to make the process* code for Blobs and
Slug the same.

Change-Id: I087da97ea4c56e5d37619a43b2aa2458bc58914c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542648
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-05-23 20:47:05 +00:00
Robert Phillips
dfabbfc0e3 [graphite] Add SkCombinationBuilder.h
This is cleanup left over from a prior CL's review. We will want to
use the combination builder outside of graphite.

This CL is mainly just moving stuff around except for the addition
of the SkCombinationBuilder.buildCombinations method and CreateKey
more accessible outside of Graphite.

Bug: skia:12701
Change-Id: If2cae6fcff5670e488bc14473b7b1d2f9b1fecd7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543196
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-05-23 20:26:17 +00:00
Greg Daniel
8fd61eea0d [graphite] Add SkBudgeted field to Resources.
This also adds support for making a Resources unbudgeted state when it
is pulled out of the cache to be used for an SkImage or Surface. It
then puts the resources back as budgeted when returned to the cache.

Bug: skia:12754
Change-Id: I469ace602aa6f5f708b82655e94557ff8ad45a72
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/538046
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-05-23 17:59:54 +00:00
Kevin Lubick
7ca19d2a56 [pathkit] Expose res_scale
Bug: skia:13301
Change-Id: I20be23d748afca28012e39dfc62898ac0f25614b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541536
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2022-05-23 17:46:48 +00:00
Michael Ludwig
767586b330 Update Sk4px to use skvx instead of SkNx
Adds a saturated_add function that was on SkNx and used in
SkXfermode_opts, but hadn't been ported to skvx yet.

Removes the Sk4px_opts variants and simplifies some of its functions;
many were already defined skvx.

The largest change is that Sk4px does not extend skvx::byte16, since it
used to extend Sk16b. Now it just has a vector as a data type. This
was necessary so that we could define operators that were typed for
Sk4px and Wide w/o conflicting with the free operators that were
defined for the base skvx types.

Change-Id: I8c667ba86f662ccf07ad85aa32e78abfc0a8c7ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542645
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-23 17:41:53 +00:00
Jim Van Verth
3149a7b283 Moving GrTextBlob to sktext::gpu
Bug: skia:13118
Change-Id: Id7c92b2e1af9febb3e576c244fcff3aedd27f408
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542646
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-23 17:09:39 +00:00
Michael Ludwig
ccf94835ee [graphite] Flesh out stroke patch writing
Bug: skia:12703
Change-Id: Ic24f7c29583946f29b4b500194f2e951b1037655
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/540856
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2022-05-23 16:58:40 +00:00
Michael Ludwig
230c535dfe Manual dawn roll
Change-Id: Ib4f2ae63ceee424eb93d098c7cd65e6ea8ac92f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543056
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2022-05-23 16:22:20 +00:00
skia-autoroll
8d7729ee6a Roll vulkan-deps from 82a65519c521 to 96612da0dde0 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/82a65519c521..96612da0dde0

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

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: tdenniston@google.com
Change-Id: I818657df0d85d8db4a3bb5c294da27676826c625
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543107
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-23 15:22:53 +00:00
Michael Ludwig
86323276b2 [graphite] Add shell for TessellateStrokeRenderStep
Bug: skia:12703
Change-Id: I9cc44db555a7bb03e4afeaedac4052c796349c5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/540621
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2022-05-23 15:10:06 +00:00
Tyler Denniston
193c16380f Revert "Eliminate DSLPossibleExpression."
This reverts commit f2d000328f.

Reason for revert: breaking google3 roll

Original change's description:
> Eliminate DSLPossibleExpression.
>
> The Possible(Expression|Statement) classes were added at
> http://review.skia.org/375069. These classes were responsible for
> capturing `__builtin_FILE()` and `__builtin_LINE()` when an
> expression or statement was added to a hand-authored DSL program. This
> allowed errors to be reported on the C++ file/line where they were
> encountered. This was a good feature to have, when the plan was to
> author the majority of SkSL code via DSL.
>
> Later, IRNode positions were converted from an integer line number to
> SkSL Positions at http://review.skia.org/518137. This gave us range
> tracking, but at a high memory cost (16 bytes per IRNode, versus four
> bytes when we tracked line numbers only).
>
> Positions were reduced to 8 bytes at http://review.skia.org/521005 by
> removing the filename, which was only used for hand-authored DSL. (The
> size was pared all the way back to 4 bytes at
> http://review.skia.org/533699 by packing the data more efficiently.)
>
> __builtin_FILE/LINE capturing was removed entirely at
> http://review.skia.org/528366; the filename was discarded anyway and
> the line number didn't have a range and wasn't very meaningful without
> a filename. Also, it didn't matter very much since we no longer intended
> to hand-craft our programs in DSL.
>
> At this stage, DSLPossibleExpression stopped adding value and simply
> served to move Expressions around.
>
> Change-Id: I29ac33e08dcc1804cc0619c1e8856ba28ebcc51d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542145
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Change-Id: I33badbdcce8760200246bf50e4932d42721ea952
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543078
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Owners-Override: Kevin Lubick <kjlubick@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2022-05-23 15:04:00 +00:00
Michael Ludwig
8e870728db Update filters to use skvx instead of SkNx
Change-Id: I1a5490f546a3cb046c64b114a30be991d2d9f2cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541064
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-23 14:38:11 +00:00
John Stiles
f2d000328f Eliminate DSLPossibleExpression.
The Possible(Expression|Statement) classes were added at
http://review.skia.org/375069. These classes were responsible for
capturing `__builtin_FILE()` and `__builtin_LINE()` when an
expression or statement was added to a hand-authored DSL program. This
allowed errors to be reported on the C++ file/line where they were
encountered. This was a good feature to have, when the plan was to
author the majority of SkSL code via DSL.

Later, IRNode positions were converted from an integer line number to
SkSL Positions at http://review.skia.org/518137. This gave us range
tracking, but at a high memory cost (16 bytes per IRNode, versus four
bytes when we tracked line numbers only).

Positions were reduced to 8 bytes at http://review.skia.org/521005 by
removing the filename, which was only used for hand-authored DSL. (The
size was pared all the way back to 4 bytes at
http://review.skia.org/533699 by packing the data more efficiently.)

__builtin_FILE/LINE capturing was removed entirely at
http://review.skia.org/528366; the filename was discarded anyway and
the line number didn't have a range and wasn't very meaningful without
a filename. Also, it didn't matter very much since we no longer intended
to hand-craft our programs in DSL.

At this stage, DSLPossibleExpression stopped adding value and simply
served to move Expressions around.

Change-Id: I29ac33e08dcc1804cc0619c1e8856ba28ebcc51d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542145
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-05-23 13:56:41 +00:00
skia-autoroll
d3cbea4114 Roll SwiftShader from 73679602bc0b to b5cb037f0292 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/73679602bc0b..b5cb037f0292

2022-05-20 swiftshader.regress@gmail.com Regres: Update test lists @ 73679602
2022-05-20 penghuang@cromium.org Adjust {min,max}ImageExtent to {0,0} and 4K

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

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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: tdenniston@google.com
Change-Id: Ie3f95f4ff0299e02e147beb8de6a9147aa5b0a8e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/543037
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-23 04:50:22 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
fb7f03aeac Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: Ib6f8e15be676f5c13bbf709af285da3dbb7bbe8f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542976
Commit-Queue: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Bot-Commit: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2022-05-22 08:23:54 +00:00
skia-autoroll
ade84dfd2b Roll vulkan-deps from 5fcdc8144e78 to 82a65519c521 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/5fcdc8144e78..82a65519c521

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

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: jmbetancourt@google.com
Change-Id: Iaea55618875075f33e8c51fc53b256f1f69fafa3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542916
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-21 09:03:25 +00:00
John Stiles
7f4a5f2ebb Remove dead code in PossibleStatement/PossibleExpression dtors.
~DSLStatement and ~DSLExpression previously called
`fFragBuilder->codeAppend`. ~DSLPossibleStatement and
~DSLPossibleExpression would convert themselves to DSLStatements and
DSLExpressions (if otherwise unreleased) in order to leverage this
side-effect. DSL FP support was removed at
http://review.skia.org/540301, and those side-effects were removed.
At that point, these destructors became dead code.

Change-Id: Iec801d66b9ee9ea8c93f7c851966af38c6446037
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542526
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-05-21 00:37:06 +00:00
skia-autoroll
0d8b218f8a Roll SK Tool from 97525e74ca36 to d66bc1818def
https://skia.googlesource.com/buildbot.git/+log/97525e74ca36..d66bc1818def

2022-05-20 rmistry@google.com [status] Display repo-specific Gold statuses
2022-05-20 rmistry@google.com [npm-audit-mirror] Add Chromium Dash as a supported project
2022-05-20 kjlubick@google.com [bazel] Make cipd_install take a configurable BUILD file
2022-05-20 lovisolo@google.com [bazel] Install cpython3 CIPD package with cipd_install. Delete CIPD from RBE toolchain container.
2022-05-20 lovisolo@google.com [bazel] Remove vpython-native CIPD package from RBE toolchain container.
2022-05-20 lovisolo@google.com [bazel] Install vpython CIPD package with cipd_install.
2022-05-20 lovisolo@google.com [bazel] Add helpers under //bazel/cipd to get paths to CIPD binaries.
2022-05-20 kjlubick@google.com [task_scheduler] Remove conflicting init configuration
2022-05-20 borenet@google.com [autoroll] Fix comment in meta-config generator
2022-05-20 borenet@google.com [sk] Attempt to automatically derive the bucket for tryjobs

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 file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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: Ic9481c703a96cbf4f01242898ffb844fdf4abd49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542724
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 21:32:54 +00:00
Ben Wagner
9ae91aa2c0 [pdf] Reduce nesting in gradient functions.
Previously the function emitted for complex gradients looked like

    if (t <= 0) {
      ret = color[0]
    } else {
      if (t <= stop[1]) {
        ret = interp(t, color[0], color[1])
      } else {
        if (t <= stop[2]) {
          ret = interp(t, color[1], color[2])
        } else {
          if (t <= stop[3]) {
            ret = interp(t, color[2], color[3])
          } else {
            if (t <= stop[4]) {
              ret = interp(t, color[3], color[4])
            } else {
              ret = color[4]
            }
          }
        }
      }
    }

So a gradient with many color stops could end up with extreme nesting of
ifelse. This could cause some viewers to reject the function due to
implementation limits. Even when not rejected the drawing would be slow
due to the linear testing of each range.

Change the function's structure to a binary search with special cases
for the begin and end ranges.

    if (t <= 0) {
      ret = color[0];
      t = 0;
    }
    if (t > 0 && t <= stop[4]) {
      if (t <= stop[2]) {
        if (t <= stop[1]) {
          ret = interp(t, color[0], color[1]);
        } else {
          ret = interp(t, color[1], color[2]);
        }
      } else {
        if (t <= stop[3] {
          ret = interp(t, color[2], color[3]);
        } else {
          ret = interp(t, color[3], color[4]);
        }
      }
      t = 0;
    }
    if (t > 0) {
      ret = color[4];
    }

This change allows gradients with many stops to work in all known
viewers and greatly speeds up their drawing in viewers which did manage
to render with the old function. The function text is slightly larger
with this change, but minimally. If this becomes a size issue it may be
possible to size optimize gradients with few stops in the future.

Props to Bram De Cooman for suggesting this form for the function, the
initial implementation [0], and testing to make sure this approach would
resolve the issue.

[0] https://skia-review.googlesource.com/c/skia/+/540136

Bug: chromium:1316377
Co-authored-by: Bram De Cooman <bram.decooman@gmail.com>
Change-Id: Ib29cbb17220b9c32105b02222c1e1615ce0196bf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541639
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2022-05-20 21:24:08 +00:00
Herb Derby
5c9d1a90eb Introduce someExcludedGlyphs to align Slug and Blob processing
Change-Id: I82786ace477796afe099dea26e95c295a5a31271
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542637
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-05-20 20:58:04 +00:00
skia-autoroll
e803e61f4f Roll skcms from dcb0286a1e17 to 9c30a95f0f16 (1 revision)
https://skia.googlesource.com/skcms.git/+log/dcb0286a1e17..9c30a95f0f16

2022-05-20 brianosman@google.com Fix "implicit conversion from 'int' to 'float' may lose precision"

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

To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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:Canary-Chromium
Tbr: brianosman@google.com,jmbetancourt@google.com
Change-Id: Ibd8f1fc3eec9a853fc766979419e9c4ad5af049d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542718
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 20:43:00 +00:00
skia-autoroll
30cec70bef Roll vulkan-deps from 880c9e0050c6 to 5fcdc8144e78 (4 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/880c9e0050c6..5fcdc8144e78

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

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: jmbetancourt@google.com
Change-Id: I7df79c7fd698adc5c94c940f70ef357181744967
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542721
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 20:27:02 +00:00
Michael Ludwig
c43555b2f9 [graphite] Delete unused/refrenced cpp file
Change-Id: I4ea10bd1354d6f68a6940fd48782bfa00bb3b343
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542417
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
2022-05-20 20:10:32 +00:00
John Stiles
d4f366e7da Update SkTArray tests to include arrays of objects with vtables.
These tests would be expected to trigger the CFI sanitizer (skia:13339).
We don't currently support CFI sanitizers, though (skia:13338).

Tests are confirmed to fail in Linux by copying TArray unit tests into
SkSLCompiler and running Chrome unit tests:
http://screen/3cYe9r4MYSXmTTa

Change-Id: If2d9e611bc9902e2ac6e0960a38e876bb1952884
Bug: skia:13338, skia:13339
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542639
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-05-20 19:47:12 +00:00
Herb Derby
17391db9fb Remove unused type alias GrAtlasSubRunOwner
Change-Id: I6db6a31834e55ebcc4af9064eac372281f341533
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542644
Auto-Submit: Herb Derby <herb@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-05-20 19:45:04 +00:00
Jim Van Verth
e55e01640b [graphite] Move Slug to gpu shared
Bug: skia:13118
Change-Id: Id4afcfeeb9a5b44a0e2cb24b70c76a81ec5daaea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542300
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-05-20 19:42:03 +00:00
Michael Ludwig
0275828111 [graphite] Update job/task auto-trigger to reflect new directory
Change-Id: I6db702c2d231bfe527b3fd4bf4f99beb6e58bf8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542641
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-20 19:20:10 +00:00
Ben Wagner
d2fba4ac94 [pdf] Fix complex mirrored gradients in Preview.
An undocumented feature of Preview 11.0 (1033.3) is that `a n mod r eq`
(with a and n both integers, r integer or real) early aborts a function
when false would be put on the stack. Work around this by re-writing
`t 2 mod 1 eq` as `t 2 mod 0 gt`.

Bug: chromium:1316377, chromium:1170345
Change-Id: Ibb6eaaf36f276e9ef2906159622ab44b35289492
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542638
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-05-20 18:17:01 +00:00
Brian Osman
9c8b5c6566 Enable Matrix-Scalar math tests on all ANGLE Mac bots
Fix for this landed in ANGLE.

Bug: skia:13290
Cq-Include-Trybots: luci.skia.skia.primary:Test-Mac10.15.1-Clang-MacBookAir7.2-GPU-IntelHD6000-x86_64-Debug-All-ANGLE
Change-Id: Id14366c5f9fe33bf1347a9bdaad12ec38b93fa6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542640
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-05-20 17:27:43 +00:00
Michael Ludwig
b9195414fd [graphite] Handle dynamic instances that never accumulated anything
In the curve tessellating render step, a path that is only linear
segments is entirely handled by the inner triangles, so the patch
writing never actually emits any instances. This is detected after
the fact by seeing that the per-instance vertex count remains 0, so
we just skip issuing the draw call.

Change-Id: I708797484073f5afcfb5d734467378861091ce8a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542616
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-05-20 16:53:52 +00:00
Jim Van Verth
7a9744cc4c [graphite] Remove need for Plot subclass.
Graphite will also need tokens to track draw and upload progress, so
moved the token class to a shared location, and tokens into the Plot
class.

Bug: skia:13118
Change-Id: Ib5748a7f25d79ee0aabca7427511cc9fd6e75117
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541740
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-05-20 15:41:01 +00:00
Robert Phillips
b2e3f57866 [graphite] Pull the ShaderType enum out of the ShaderCombo
The ShaderType enum seems like it will persist while the ShaderCombo will not.

Bug: skia:12701
Change-Id: Idf9ed89a50bac46b93a81da3e814207c83b3a1ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541723
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2022-05-20 14:48:11 +00:00
John Stiles
d12cfa9d12 Update UBSAN TODO assigned to Xoogler.
I've created a real bug and assigned to Joe Gregorio for now (please
reassign as you see fit).

Change-Id: I0cc1ef52b254904e545c9c266df484816de60021
Bug: skia:13344
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542636
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2022-05-20 13:58:22 +00:00
Michael Reed
14aa53bf38 Add rive to third_party
Add rive slide to Viewer

Change-Id: Id25a7ac2a65e816544159ff4b3f582249f9ba0ce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/541742
Auto-Submit: Mike Reed <mike@reedtribe.org>
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2022-05-20 13:33:30 +00:00
skia-autoroll
b2a8a7e3e8 Roll vulkan-deps from db71a037284b to 880c9e0050c6 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/db71a037284b..880c9e0050c6

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

To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry

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-Debug-Dawn;skia/skia.primary:Build-Debian10-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE
Bug: None
Tbr: jmbetancourt@google.com
Change-Id: I39a5f35d10c1548a31bb16d9dd1ef5edebc5a19c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542578
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 07:40:54 +00:00
skia-autoroll
531b0b096b Roll ANGLE from 6ae0c3214c41 to 58fd315775c8 (13 revisions)
6ae0c3214c..58fd315775

2022-05-20 syoussefi@chromium.org Vulkan: Dynamic state for vertex stride
2022-05-20 brianosman@google.com Insert Metal polyfill for Matrix /= Scalar when needed
2022-05-20 yuxinhu@google.com Suppress Flaky Tests
2022-05-20 yuxinhu@google.com Update capture replay expectation file
2022-05-20 gman@chromium.org Metal: Upstream buffer cache fix from WebKit
2022-05-20 cnorthrop@google.com Tests: Add Bridge Constructor Portal trace
2022-05-19 yuxinhu@google.com Suppress Vulkan Validation Error
2022-05-19 ynovikov@chromium.org Fix trigger.py to run mb.py with python3
2022-05-19 syoussefi@chromium.org Vulkan: Reserve varying for xfb if pre-rotation is enabled
2022-05-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from dbb1f3a2b2f7 to 170d12460fd5 (586 revisions)
2022-05-19 pkasting@chromium.org Roll third_party/rapidjson/src/ 7484e06c5..781a4e667 (156 commits)
2022-05-19 ynovikov@chromium.org Fetch gn binary for the correct architecture on linux.
2022-05-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from cb4fc6d02fe4 to 2933d3126969 (1 revision)

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

To file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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: jmbetancourt@google.com
Test: Test: angle_perftests --gtest_filter="*bridge_constructor_portal*"
Change-Id: Ia50d9e50805b38bd0a8bf137d156ec4f2274247c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542479
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 05:53:22 +00:00
skia-autoroll
1ab0d40b83 Roll SwiftShader from 2933d3126969 to 73679602bc0b (4 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/2933d3126969..73679602bc0b

2022-05-19 swiftshader.regress@gmail.com Regres: Update test lists @ 2933d312
2022-05-19 capn@google.com Revert workaround for MemorySanitizer scalar SSE false positives
2022-05-19 sugoi@google.com Revert "Stop skipping VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"
2022-05-19 sugoi@google.com Fix using uninitialized blend constants

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

To file a bug in SwiftShader: https://bugs.chromium.org/p/swiftshader/issues/entry
To file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry

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: jmbetancourt@google.com
Change-Id: I3032a944436cdd7e5d36eaf3b35367cfff15ac23
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/542480
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-05-20 04:49:57 +00:00
Michael Ludwig
1186b60fcf [graphite] Only convert LinearTolerances to vertex counts when invoking draw calls
Instead of taking the minimum required index/vertex count for an
instance, DynamicInstances::append() now takes a proxy. The proxy can
be used to calculate the index when it's needed at flush time, and can
accumulate its internal state to represent a worst case that
corresponds to the worst case index count as well.

Updates the tessellating RenderSteps to use a single PatchAllocator
definition that just swaps out how tess::LinearTolerances are converted
to a vertex count. This will also work seamlessly with
FixedCountStrokes.

Removes stride() function from PatchAllocator because it's clunky to
try and pass that out of DrawWriter or RenderStep to PatchWriter, and
can be re-computed from fAttribs anyways. Since it's only re-used in
PatchWriter for the deferred patch, it's one sum for every path contour
and will likely not be noticed in perf. If it is, we can have
PatchWriter remember it instead and keep PatchAllocator simple still.

Bug: skia:13056, skia:13012
Change-Id: I52a36da4df23ebb01a98246458b6538744c1815f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/540620
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2022-05-20 01:32:52 +00:00