Commit Graph

60153 Commits

Author SHA1 Message Date
Robert Phillips
932801c29e [graphite] Update GMs to have graphite-backed gpu SkImages
This makes part of of our testing infrastructure (i.e., the GMs)
compatible with Graphite's more stringent requirements.

Bug: skia:12701
Change-Id: I5d2bf44a1f044797971a1cf6874cf1819d715ca6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530539
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-04-19 20:19:41 +00:00
skia-autoroll
ffba7ace41 Roll vulkan-deps from 1a408eb154d7 to 158676f39f3b (16 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/1a408eb154d7..158676f39f3b

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross from 6a67891418a3 to d7cae5e7cd32
  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools from cb96abbf7aff to 2b2b0282af25

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 wrightgeorge@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: wrightgeorge@google.com
Change-Id: Id8540345f53013e1f76330ec1fe44742fa4cc22f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531693
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-19 19:59:12 +00:00
George Wright
09c7277dd0 Revert "[infra] Update iOS device provisioning profile."
This reverts commit a370ecf9fc.

Reason for revert: This broke iOS and Mac bots

Original change's description:
> [infra] Update iOS device provisioning profile.
>
> We're moving from Apple's Enterprise program to their Developer program,
> which requires a new profile. Versions 7 and 8 were mistaken uploads of
> who-knows-what by yours truly, so we skip them.
>
> Change-Id: I1b7913781eae5c643e60b47ad374a4365cef7bce
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531553
> Reviewed-by: Ravi Mistry <rmistry@google.com>
> Commit-Queue: Erik Rose <erikrose@google.com>

Change-Id: Icbf9fbf6ed1b84a884ed6aeeebe37ea04ad14bb2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531696
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: George Wright <wrightgeorge@google.com>
2022-04-19 18:49:51 +00:00
Herb Derby
c68df46606 Remove bilerp from GrTextBlob except for fSupportBilerpAtlas field.
Change-Id: If586b3797bb458bf8806d3d030b2ed94e07b990f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531257
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-04-19 18:03:11 +00:00
Herb Derby
07f53c1bb6 Remove bilerp flag from GrTextBlob's API
Change-Id: Ie1330ee4f9ae2eeedb0dfb378b753dcfd9293107
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531322
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-04-19 17:34:35 +00:00
Erik Rose
a370ecf9fc [infra] Update iOS device provisioning profile.
We're moving from Apple's Enterprise program to their Developer program,
which requires a new profile. Versions 7 and 8 were mistaken uploads of
who-knows-what by yours truly, so we skip them.

Change-Id: I1b7913781eae5c643e60b47ad374a4365cef7bce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531553
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Erik Rose <erikrose@google.com>
2022-04-19 17:32:36 +00:00
John Stiles
721a07f5f6 Optimize away self comparisons in SPIR-V.
(This mirrors an optimization performed in the constant folder.)

Expressions like `OpIEqual %20 %20` or `OpFUnordNotEqual %15 %15` can be
replaced by `true` or `false` on sight. The GLSL spec makes it clear
that checking for NaN is optional:

4.7.1 Range and Precision
"... NaNs are not required to be generated. Support for signaling NaNs
is not required and exceptions are never raised. Operations and built-in
functions that operate on a NaN are not required to return a NaN as the
result."

Change-Id: I2e29b659a73582e9ade0eb61f70f7d362a007c50
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531550
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-04-19 16:10:03 +00:00
John Stiles
fce87a43e6 Move store-cache handling into writeLabel.
Previously, every expression/statement type was responsible for
pruning or clearing the store-cache when branches were involved. This
was difficult to reason about and easy to get wrong, particularly if
the details are not fresh in your mind.

Now, `writeLabel` takes care of the details for you. Pass in the
location of the branch(es) which use the label, and the proper cache
updating behavior will occur automatically.

Some of the label enum types are not strictly necessary and exist for
the benefit of a reader. Specifically:
 - `kBranchlessBlock` and `kBranchIsOnPreviousLine` are synonyms
 - `kBranchIsBelow` and `kBranchesOnBothSides` are also synonyms

The hope is that extra enum names will be easier for a reader to
follow, versus fewer but very-verbose enum names (like
 `kBranchIsBelowOrOnBothSides`).

This change earned some very minor switch-related dividends. Previously,
every label in a switch was treated as a forward-branch, but in fact,
the very first label in a switch is privileged. This is because we are
branching from the previous line, and the store cache is trustworthy in
this case. (Versus "branching from above," where the store cache needs
to be pruned before it can be trusted.)

Change-Id: I38b539069c22be9f0777b632f60f0eab2409d687
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531540
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-04-19 15:17:01 +00:00
Derek Sollenberger
d5c047004d Revert "Update VMA to latest version."
This reverts commit f33cf451a2.

Reason for revert: breaking the android roller

Original change's description:
> Update VMA to latest version.
>
> This is needed so that we can use non skia supplied vk_mem_alloc.h on
> clients that have already updated to newest version. As we transition
> to Bazel builds this helps to make it so we can set the rules for
> specific clients around VMA without things breaking
>
> Bug: skia:13211
> Change-Id: I5d38a3a91a44f6b3fdf75894a3248ee3991dd5d9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531157
> Reviewed-by: Kevin Lubick <kjlubick@google.com>

Bug: skia:13211
Change-Id: Ibd621aa2f07359f9b72e1a35df0f50ca3c063e86
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531543
Auto-Submit: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-04-19 14:49:08 +00:00
Herb Derby
2d8f4c76fa Remove bilerp flag from DirectMaskSubRun
Change-Id: I0dbcfde1615a4d2875906753e289b0cb15a7ba51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531321
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-04-19 14:47:28 +00:00
Brian Salomon
05106ac1c3 Remove guard for skif rounding change.
Consolidate skif tolerance rounding.

Bug: chromium:1313579
Change-Id: I8d18627fb09cf78beb3013a045e62348c0c87127
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531316
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2022-04-19 14:07:59 +00:00
John Stiles
56bc24c004 Remove complex path simplification code.
Now that we can call into Skia utils directly, we can use the
preexisting code from SkOSPath instead.

Change-Id: I67e3099e97ec0e93acc08c7f2142a01a2af48f15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531416
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-04-19 12:51:35 +00:00
skia-autoroll
931ce6efbc Roll ANGLE from 3636d129ee9c to 197100880118 (5 revisions)
3636d129ee..1971008801

2022-04-19 cclao@google.com Vulkan: Call into vulkan directly for big size allocation.
2022-04-18 abdolrashidi@google.com Vulkan: Remove retains before acquireBufferHelper
2022-04-18 lexa.knyazev@gmail.com Metal: Fix bytesPerRow computation for compressed formats
2022-04-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7f875b15c6a3 to 1a408eb154d7 (4 revisions)
2022-04-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 573f2ec89cb9 to e9b55eb91cb1 (411 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 wrightgeorge@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: wrightgeorge@google.com
Change-Id: I850915c8b82152b6cfc28b979e42656e81780864
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531402
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-19 05:29:37 +00:00
skia-autoroll
a984f4d5be Roll Chromium from 9b1b8c387f01 to e44993cc0096 (297 revisions)
9b1b8c387f..e44993cc00

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

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: wrightgeorge@google.com
Change-Id: Ifa5a23b958491aac1ebb0e3886e2b1754018d47a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531401
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-19 04:40:10 +00:00
skia-autoroll
8f8ae5e3c3 Roll Dawn from 69daaab75938 to d431eb9d94fd (13 revisions)
https://dawn.googlesource.com/dawn.git/+log/69daaab75938..d431eb9d94fd

2022-04-19 dsinclair@chromium.org [tint] Move potential type creation out of ValidateReturn.
2022-04-19 dsinclair@chromium.org [tint] Remove current_function from ValidateReturn.
2022-04-19 dsinclair@chromium.org [tint] Remove current_function from ValidateFunction.
2022-04-19 dsinclair@chromium.org [tint] Remove current_function from ValidateStructure.
2022-04-19 dsinclair@chromium.org [tint] Remove current_function from ValidateEntryPoint.
2022-04-19 dsinclair@chromium.org [tint] Remove current_function_ from ValidateBuiltinAttribute.
2022-04-19 dsinclair@chromium.org [tint] Remove current_function_ usage from ValidateLocationAttribute.
2022-04-19 shaobo.yan@intel.com Add Debug Tracing in Dawn
2022-04-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d903818a85ad to 866210add2f6 (2 revisions)
2022-04-18 aleksi.sapon@faro.com Fix integer truncation bug
2022-04-18 bajones@chromium.org Revert "Enable gn check for all build targets."
2022-04-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 1a408eb154d7 to 8b8b53e7b6de (1 revision)
2022-04-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 3636d129ee9c to d903818a85ad (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/dawn-skia-autoroll
Please CC shrekshao@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: shrekshao@google.com
Change-Id: I1c5dc564652edffb62a25f781c739f2ffdc11e80
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531403
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-19 04:39:39 +00:00
Ben Wagner
d9f96ab14e Don't set FT_LOAD_COLOR on scalable fonts.
FreeType introduced FT_LOAD_COLOR in 2.5 so an application could
indicate that it could handle the new color format. If this glyph load
flag was not set then the colors would be desaturated into the old gray
format so that something would be drawn while applications were updated.
The only source of color glyphs was bitmaps, but Skia always set the
flag on both scalable and non-scalable (bitmap and outline) fonts.

In FreeType 2.10 the meaning of this flag was expanded to mean that
using FreeType to render a glyph with an associated COLR entry would
attempt to draw using the color layers instead of the base glyph. This
did not affect Skia since Skia handles the color layers itself.

In FreeType 2.12 the meaning of this flag was updated again to mean that
if using FreeType to load a glyph with an associated SVG entry would
prefer loading the glyph with a new FT_GLYPH_FORMAT_SVG. This means any
users loading a glyph with FT_LOAD_COLOR on a scalable font (like Skia
has been) will get this new format and not the base outlines.

In order to work properly with this setup, Skia must ensure the
FT_LOAD_COLOR is only set on scalable (outline) fonts when Skia supports
SVG glyphs. For now this means setting FT_LOAD_COLOR on bitmap fonts
only with a comment where it should be set when SVG is supported.

Change-Id: Iaf8991b73d353ab7bda836ff4c290d75ab519d78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531323
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-04-19 02:41:10 +00:00
Herb Derby
78849da620 Remove bilerp from DirectMaskSubRunNoCache
Change-Id: Iea498cfb478d2cc70be131582371f2874b63d4f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531256
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-04-18 23:17:37 +00:00
Herb Derby
b7bddda319 Remove bilerpPadding from SubRuns down to AtlasManager
Change-Id: I4a6a7306f6549c1749ee013b7ba6de4408dbf05a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529206
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-04-18 22:31:08 +00:00
Herb Derby
88530c559e Simplify all the regenerateAtlas calls to remove unused parameter
Change-Id: Ibb6eee4aec76dfd20f242598dd90553c5572fbf4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530680
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-04-18 20:58:05 +00:00
Greg Daniel
f33cf451a2 Update VMA to latest version.
This is needed so that we can use non skia supplied vk_mem_alloc.h on
clients that have already updated to newest version. As we transition
to Bazel builds this helps to make it so we can set the rules for
specific clients around VMA without things breaking

Bug: skia:13211
Change-Id: I5d38a3a91a44f6b3fdf75894a3248ee3991dd5d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531157
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2022-04-18 20:28:30 +00:00
Brian Salomon
3d07148b85 Reland "Eval args of trace macros in debug builds"
This is a reland of commit ca0c82a968

Original change's description:
> Eval args of trace macros in debug builds
>
> Change-Id: I9ae48cfa23948fbdcdf6e8997365f5a8c2b3be8b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530677
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Change-Id: I8eb6c5fb129e907577c504776c3bab37c6a94fec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531236
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2022-04-18 19:46:44 +00:00
Herb Derby
3a21cf8364 Handle bilerp padding in AtlasManager
Have the GrAtlasManger handle the logic of the
fSupportBilerpFromGlyphAtlas flag directly. This dramatically
reduces the complex plumbing the current code uses.

This is part of a larger CL that has a crash on MSVC-Direct3d-Release
bot, but not the debug bot. I'm breaking the CL into very small
pieces to find the problem.

Change-Id: Idbad1614b511041893c00c291c9db1cf61ab5532
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530737
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-04-18 19:02:11 +00:00
Eric Boren
7f04c414e4 Update Skia milestone to 103
Change-Id: I28ef42ff417faf98eb1f124d4a1987b6cc4a609f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530456
Auto-Submit: Eric Boren <borenet@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-04-18 18:47:43 +00:00
Kevin Lubick
65392b3eb1 Do not include xcb by default for G3
Change-Id: I0bce46c3c32783fb2bc6a34291b6eb814924f6ae
Bug: skia:13211
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531063
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-04-18 17:14:42 +00:00
Kevin Lubick
4a6fbd84f4 [bazel] Remove outdated docs
These were from a previous attempt.

Change-Id: Ia057e5e23d2ba97e33f1bb7fafc785a3ee92d66e
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531096
Auto-Submit: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-04-18 15:04:01 +00:00
John Stiles
ffc9dec755 Eliminate redundant loads following stores.
We now have two functions `writeOpLoad` and `writeOpStore` which are
in charge of writing SpvOpLoad and SpvOpStore instructions.
`writeOpStore` also keeps track of pointer stores in a "store cache."
Subsequent loads from that same pointer will be found in the cache and
will return the value stored in that pointer instead.

Such a cache definitely cannot work in the face of control flow, so we
make the following concessions:
- `pruneReachableOps` is now `pruneConditionalOps`. Any pointers that
  are altered inside a potentially-unreachable block are cleared from
  the cache entirely.
- The entire store cache is cleared at all OpLabels within a loop.

The cache also cannot work in the presence of swizzled stores, so we
make another significant concession:
- The entire store cache is cleared whenever we store into a non-memory
  pointer (e.g., assigning into a swizzled LValue, such as `foo.xz`).

Despite these significant limitations, this manages to dramatically
shrink many real-world examples.

Change-Id: I0981a0cf7b45b064e153e9ada271494c8e00cad5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530054
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-04-18 14:57:48 +00:00
John Stiles
ae7bd50be6 Revert "Eval args of trace macros in debug builds"
This reverts commit ca0c82a968.

Reason for revert:


../../src/sksl/SkSLCompiler.cpp:437:5: error: expected ';' after expression
    TRACE_EVENT0("skia.shaders", "SkSL::Compiler::convertProgram");
    ^
../../src/core/SkTraceEventCommon.h:75:29: note: expanded from macro 'TRACE_EVENT0'
#define TRACE_EVENT0(cg, n) TRACE_EMPTY(cg, n)
                            ^
../../src/core/SkTraceEventCommon.h:64:52: note: expanded from macro 'TRACE_EMPTY'
#define TRACE_EMPTY(...) do { sk_noop(__VA_ARGS__) } while (0)


Original change's description:
> Eval args of trace macros in debug builds
>
> Change-Id: I9ae48cfa23948fbdcdf6e8997365f5a8c2b3be8b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530677
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Change-Id: Ia07d3c928c28d1f3409ba7b45970b2fd22f1a030
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/531097
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-04-18 14:52:19 +00:00
Robert Phillips
01220a7bf0 [graphite] update SKPSrc to call makeTextureImage
Graphite won't draw non-Graphite-backed images so we need to update our
tools to meet that requirement.

Bug: skia:12701
Change-Id: I66dc371b2e11e327e1d371115fb62c85863308e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530542
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-04-18 14:28:42 +00:00
Brian Salomon
2386d3e7d6 mipMapped -> mipmapped
Change-Id: Ib9d4e23159724825dacb7d37ceabfd2aff68f58a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530681
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-04-18 14:26:19 +00:00
Robert Phillips
bdf5ce7369 [graphite] Expand imageshader feature support
This just adds texture coordinate normalization and kClamp and kRepeat
support.

Bug: skia:12701
Change-Id: I17ed0ccfd95d7081a77cb23428a14f6fef0a118b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530538
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-04-18 14:15:12 +00:00
Brian Salomon
ca0c82a968 Eval args of trace macros in debug builds
Change-Id: I9ae48cfa23948fbdcdf6e8997365f5a8c2b3be8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530677
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2022-04-18 13:03:31 +00:00
John Stiles
b966ea2177 Fix update-fuzzer script to allow non-UTF8 data.
Some of our oss-fuzz tests contain garbage data which isn't in any
encoding. This throws an error unless the files are opened in binary
mode.

Change-Id: I5caf307f3c79fba5b177496fd8ced8381205b97e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530679
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-04-18 12:10:05 +00:00
skia-autoroll
ef87a96443 Roll ANGLE from 3587e217d96c to 3636d129ee9c (5 revisions)
3587e217d9..3636d129ee

2022-04-16 cnorthrop@google.com Infra: Enable Skia Gold tests on Pixel 6
2022-04-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c9be322642fb to 7f875b15c6a3 (16 revisions)
2022-04-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 1d450ae99a0f to 103a69bd6c82 (3 revisions)
2022-04-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e6765ea8299f to 573f2ec89cb9 (443 revisions)
2022-04-15 abdolrashidi@google.com Vulkan: updateUniforms when commandbuffer is valid

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 wrightgeorge@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: wrightgeorge@google.com
Test: Test: TracePerfTest.Run/vulkan_car_chase
Change-Id: I812819fe3b26b8103e797f66e7849555648e3f05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530997
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-18 05:25:42 +00:00
skia-autoroll
292ec45d82 Roll Dawn from e6d4598d3615 to 69daaab75938 (8 revisions)
https://dawn.googlesource.com/dawn.git/+log/e6d4598d3615..69daaab75938

2022-04-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from d18e9e84afc0 to 3636d129ee9c (1 revision)
2022-04-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9ef8e65d0136 to 1a408eb154d7 (1 revision)
2022-04-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from ff084b28d0bd to d18e9e84afc0 (2 revisions)
2022-04-15 enga@chromium.org Speculatively suppress RequiredBufferSizeInCopyTests on Win Intel x86
2022-04-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7f875b15c6a3 to 9ef8e65d0136 (3 revisions)
2022-04-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from aefb2a99ebb5 to ff084b28d0bd (5 revisions)
2022-04-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 380bd4ba74d9 to 7f875b15c6a3 (7 revisions)
2022-04-15 dsinclair@chromium.org Enable gn check for all build targets.

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 bajones@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: bajones@google.com
Change-Id: Id469bedf8d96b3d92e61a85187b147128499b80d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530998
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-18 04:39:14 +00:00
skia-autoroll
afc5ed58e2 Roll Chromium from deef3481d457 to 9b1b8c387f01 (423 revisions)
deef3481d4..9b1b8c387f

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

To file a bug in Chromium: https://bugs.chromium.org/p/chromium/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:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia/skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
Tbr: wrightgeorge@google.com
Change-Id: Icbe87223e3b15827428087616d55996849a36ff5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530996
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-18 04:31:21 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
4f1107c8b4 Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: I964a641799f02ac9fe7e94f05eae42846422635d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530956
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-04-17 08:12:37 +00:00
skia-autoroll
1d29bceff1 Roll SK Tool from b6e77f371719 to 74c60f8523c9
https://skia.googlesource.com/buildbot.git/+log/b6e77f371719..74c60f8523c9

2022-04-17 skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com Update CIPD Packages
2022-04-16 rmistry@google.com [npm-audit-mirror] Add library for configs

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 lovisolo@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: lovisolo@google.com
Change-Id: I72d1b8335e871497736642a758b84188f6b5e875
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530897
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-17 06:20:38 +00:00
skia-autoroll
b72b3c39f3 Roll vulkan-deps from 9ef8e65d0136 to 1a408eb154d7 (1 revision)
https://chromium.googlesource.com/vulkan-deps.git/+log/9ef8e65d0136..1a408eb154d7

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 armansito@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

Bug: None
Tbr: armansito@google.com
Change-Id: I24a3ddaa93978073000f7ae35c7dc130fc03689e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530836
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-16 17:37:39 +00:00
skia-autoroll
6dbb179fbf Roll vulkan-deps from aca87272862c to 9ef8e65d0136 (2 revisions)
https://chromium.googlesource.com/vulkan-deps.git/+log/aca87272862c..9ef8e65d0136

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 armansito@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

Bug: None
Tbr: armansito@google.com
Change-Id: Ib46cb8f24e2bf0048485b7999e0f6fbbea5a2805
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/528679
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-16 05:00:10 +00:00
Ben Wagner
dc07bc6562 Protect FreeType face with mixed glyph formats.
It is possible for a single glyph to have multiple representations. In a
COLRv0 or COLRv1 font the outlines of the sub glyphs must be used as
layers or clips. Ensure that bitmaps and SVG representations are
explicitly excluded when loading glyphs with the express purpose of
retrieving any available outline.

Note that this does not touch the flags used in generatePath because in
that case a path should only be loaded if the glyph representation for
rendering is actually outline based.

Change-Id: I499e23aa20dacead81c7f76980039f139fa8edce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530676
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-04-15 22:57:47 +00:00
John Stiles
21ca05d8bf Remove getActualType.
Now that getType no longer needs it, this was only used to see if two
types matched (modulo precision).

Change-Id: Icdf507573f03a8caf2b202465a83e50359eb6446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530570
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-04-15 22:17:47 +00:00
John Stiles
123d29701b Fix half-precision operand types in writeBinaryExpression.
Previously, we would determine the operandType by calling
`getActualType`. This function converts half-precision types to full-
precision ones, which seems to have been unintentional. Fortunately, the
operand type is not actually emitted into the SPIR-V by most code paths
(most paths use the resultType instead) so it was not a significant
impact in practice. A few matrix-based paths emitted ops using this type
and these paths now emit RelaxedPrecision as expected.

Change-Id: I32f4c0327427476fee6b78953284818b7970b6e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530543
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
2022-04-15 22:17:47 +00:00
John Stiles
4561c15a4a Simplify handling of relaxed-precision IDs.
This now uses existing logic from `nextId` rather than reinventing the
wheel.

Change-Id: I2879fa42e8df6d70936ce7e322d48e4990d79319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530540
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-04-15 22:16:07 +00:00
skia-autoroll
9cf1448788 Roll SK Tool from 44e75c37955f to 61eae4de7c4a
https://skia.googlesource.com/buildbot.git/+log/44e75c37955f..61eae4de7c4a

2022-04-15 kjlubick@google.com [task_scheduler] Avoid swarming 500s by adding time constraint
2022-04-15 kjlubick@google.com [http] Prevent nil dereference if timeout occurs

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 erikrose@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: erikrose@google.com
Change-Id: I84afd66dc0b8b20b84fb05f6e10f410c7f9a59fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530026
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-04-15 21:50:13 +00:00
Arman Uguray
f0877a9642 Fix Android build
Change-Id: I5d1821825811bea7aba5cb58564c0724d710b75b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530656
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-04-15 21:11:19 +00:00
Ben Wagner
1770c69c2a Fix FreeType COLRv1 subpixel bounding box.
The COLRv1 bounding box is currently computed without the subpixel
offset. This can lead to cropping of a row or column at the edge of the
rendering. Apply the subpixel offset to the base bounding boxes.

This is simplified by always converting the FT_BBox to an SkRect as
early as is convenient and unifying the COLRv1, COLRv0, outline, and
bitmap application of subpixel positioning and conversion of bounds to
glyph bounds.

This also fixes a long standing issue where it is possible for subpixel
positioned empty (space) glyphs to have non-zero bounds since rounding
out a non-integer aligned empty SkRect to an SkIRect will produce a unit
SkIRect.

Change-Id: I634783250942d0cd45cf28e81d5fd695982547cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530523
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-04-15 20:31:57 +00:00
Jim Van Verth
d1a685e0c1 Add implicit NaN check in split_conic.
SkFindQuadMaxCurvature returns either a value in [0, 1) or NaN.
split_conic uses this to determine where to chop a conic, but doesn't
check for NaN, and passing NaN to conic.chopAt() will assert. Inverting
the if statement and checking to see if t is in (0,1) rather than that
t == 0 || t == 1 will cover the NaN case, since NaN comparisons are
always false.

Bug: skia:1310167
Change-Id: I401f586d9b4cb9f05332027627f9fac9dc7dee15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530519
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-04-15 18:11:41 +00:00
John Stiles
11525080e1 Track SpvStorageClass inside LValue classes.
We will need this in a followup, because we can apply optimizations to
function-class LValues that wouldn't make sense for other classes.

Change-Id: I99855961cfb8c5bfac0068e33e20e2e687f5aefe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530537
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-04-15 17:46:56 +00:00
Greg Daniel
bd73e796d7 [graphite] Enable MSAA.
Bug: skia:13212
Change-Id: I8fc8bcd01181fcfb9955119984afa4bfbb1f73e5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/529756
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-04-15 17:03:51 +00:00
Julia Lavrova
09c279fe84 Removing few duplicate lines
Change-Id: Ib5224602159d773ef99925ce6ef9eab874f67be0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/530536
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2022-04-15 16:49:22 +00:00