Commit Graph

57301 Commits

Author SHA1 Message Date
John Stiles
cb40008b43 Implement switch in SkVM.
SkVM implements switches as a pseudo-loop; breaks are handled with the
condition mask just like a for loop. Fallthrough is handled via a
scratch Value in a temporary slot. `writeStore` neeeded to be refactored
to support writing into slot(s) without an associated Variable.

At IR generation time, SwitchStatements are now emitted without error
even in strict-ES2 mode. The GLSL code generator currently reports these
as an error in strict-ES2 mode, but this will be fixed in a followup
coming shortly (the switch will be rewritten as ifs inside a one-shot
loop, similar to our IR-rewrite strategy).

Change-Id: I5507257246c42a35d2f46b4b9a89492a5ffeff9b
Bug: skia:12450
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451421
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-09-23 19:58:55 +00:00
Herb Derby
106e7ff887 remove drawing from ctor
Remove drawing from the bench's constructor. This allows easier
debugging and measurement of RasterPipeline.

Change-Id: Iec974eef171917e849130fc68361e80ec1642100
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452357
Commit-Queue: Herb Derby <herb@google.com>
Auto-Submit: Herb Derby <herb@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-09-23 19:29:39 +00:00
Brian Osman
3761e57a9d Run fewer configs on SwiftShader perf bot
Change-Id: Idc09f052864601498d28c3cfe17b12ef09977543
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452318
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-09-23 19:04:09 +00:00
Brian Osman
d2491fbc32 Update configs for SwiftShader perf bot
Change-Id: I051b6c7237ad95fde372542e123d58929d485248
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452316
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-09-23 17:58:12 +00:00
Avery Musbach
92ae58f338 Reland "bench: Add PhoneHub assets to skottie-vs-png decode bench"
This is a reland of 0541a983ef

This time with Generic_Error.png instead of Generic Error.png, because
the space caused problems.

Original change's description:
> bench: Add PhoneHub assets to skottie-vs-png decode bench
>
> The skottie-vs-png decode bench is intended to facilitate comparison
> between Lottie and PNG, but such a comparison cannot really be made when
> the Lottie files are unrelated to the PNG files (Lottie files chosen to
> represent a range of vector graphic complexity, versus PNG files chosen
> to represent a range of image dimensions). This CL adds PhoneHub assets
> in PNG and Lottie, including various Lottie files created using
> different optimization strategies (see added code comments for details).
>
> Change-Id: I1a4357ab0af22b9db7b7ce83fd07d48c77db7680
> Bug: chromium:1128684
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442476
> Reviewed-by: Avery Musbach <amusbach@google.com>
> Reviewed-by: Florin Malita <fmalita@google.com>
> Commit-Queue: Florin Malita <fmalita@google.com>

Bug: chromium:1128684
Change-Id: I1a5e21f67f52b03fa1c06192ef7190f41b04e3dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452300
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
Commit-Queue: Avery Musbach <amusbach@chromium.org>
2021-09-23 17:40:09 +00:00
Brian Osman
448b2d5795 Add GetConstantValue, fix const-variable ES2 loop bounds
Prior to this fix, the new test cases would report that the various loop
terms needed to be constant expressions.

Bug: skia:12472
Change-Id: Ic377ed0c4598136ae38fb2b65c93b6d8609d54cb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452276
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-09-23 16:30:12 +00:00
Kevin Lubick
e405d7c8e5 [infra] Migrate ChromeOS devices to arm64 RPIs
This is similar to https://skia-review.googlesource.com/c/skia/+/447177

Change-Id: I9189c6994ee02360115f5397d5008e2eb4c3e40e
Bug: skia:12401
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451916
Reviewed-by: Eric Boren <borenet@google.com>
2021-09-23 15:59:59 +00:00
Brian Osman
10d3837ec5 Add a SwiftShader perf bot
This is mostly to satisfy my curiousity about GPU+SwiftShader vs. CPU

Change-Id: I140ba51f99fead7b4709385396e55f2fcc57ae05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452196
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-09-23 15:25:37 +00:00
Brian Osman
bd8bbcd016 Revert "bench: Add PhoneHub assets to skottie-vs-png decode bench"
This reverts commit 0541a983ef.

Reason for revert: Android roll failing

Original change's description:
> bench: Add PhoneHub assets to skottie-vs-png decode bench
>
> The skottie-vs-png decode bench is intended to facilitate comparison
> between Lottie and PNG, but such a comparison cannot really be made when
> the Lottie files are unrelated to the PNG files (Lottie files chosen to
> represent a range of vector graphic complexity, versus PNG files chosen
> to represent a range of image dimensions). This CL adds PhoneHub assets
> in PNG and Lottie, including various Lottie files created using
> different optimization strategies (see added code comments for details).
>
> Change-Id: I1a4357ab0af22b9db7b7ce83fd07d48c77db7680
> Bug: chromium:1128684
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442476
> Reviewed-by: Avery Musbach <amusbach@google.com>
> Reviewed-by: Florin Malita <fmalita@google.com>
> Commit-Queue: Florin Malita <fmalita@google.com>

Bug: chromium:1128684
Change-Id: Ib6364a482cfff5ca63e74eeb24c2688e49bc4b72
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452096
Auto-Submit: Brian Osman <brianosman@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-09-23 12:36:08 +00:00
skia-autoroll
519ecaa024 Roll ANGLE from 68c0da839bc6 to 17b50dbcf896 (6 revisions)
68c0da839b..17b50dbcf8

2021-09-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from f50ae42daa8b to 0ca662a00a61 (158 revisions)
2021-09-22 ynovikov@chromium.org Revert "Add standalone experimental Mac Intel and AMD bots"
2021-09-22 timvp@google.com Skip Linux+AMD ComputeShaderTest test failures
2021-09-22 jmadill@chromium.org Revert "Perf Tests: Split samples into sub-tests on desktop."
2021-09-22 jmadill@chromium.org Optimize VAO bindings.
2021-09-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 0537997114eb to f50ae42daa8b (490 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 brianosman@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: brianosman@google.com
Test: Test: ComputeShaderTest.BufferImageBufferMapWrite/ES3_1_OpenGL
Test: Test: ComputeShaderTest.ImageBufferMapWrite/ES3_1_OpenGL
Change-Id: I53caa77643967e22e250f13ad15fb7d590e42526
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452023
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-23 05:37:42 +00:00
skia-autoroll
0f5b9fe79e Roll SwiftShader from 755b78dc66b2 to 4e3812937c5f (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/755b78dc66b2..4e3812937c5f

2021-09-22 capn@google.com Compute the image size in 64-bit arithmetic

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 brianosman@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: brianosman@google.com
Change-Id: Icae2df3d836210fb37ebd36eaa4778e7e5bf8040
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452021
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-23 05:23:16 +00:00
skia-autoroll
2c9fe6ab34 Roll Dawn from a10f5331f2b5 to ebf183bde4e9 (5 revisions)
https://dawn.googlesource.com/dawn.git/+log/a10f5331f2b5..ebf183bde4e9

2021-09-23 rockot@google.com Implement drawIndexedIndirect validation
2021-09-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from a617d0f0fccc to 5e6d4577fdc6 (1 revision)
2021-09-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 28d6763ef8e3 to a617d0f0fccc (1 revision)
2021-09-22 enga@chromium.org Add dawn_native unittests for Limits
2021-09-22 jiawei.shao@intel.com Remove prefix 'm' on mCreateInfo in ComputeVertexInputDesc

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 28d6763ef8e3 to 5e6d4577fdc6

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 kainino@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: kainino@google.com
Change-Id: I87077d46790610a9950cbe1e2642c134184ec4f6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452022
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-23 04:58:08 +00:00
skia-autoroll
af5c75d72c Roll Chromium from 5b12d6f9f82b to 7f78322beba4 (454 revisions)
5b12d6f9f8..7f78322beb

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 brianosman@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: brianosman@google.com
Change-Id: I703e900bfa1e38a2c092ad75aa96b8b2af79429e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/452020
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-23 04:48:16 +00:00
Robert Phillips
ee79cc3491 Revert "Graphite: Add compilation bots"
This reverts commit 605748b95b.

Reason for revert: Red bots

Original change's description:
> Graphite: Add compilation bots
>
> Bug: skia:12466
> Change-Id: I5cca024b8df9cf2203d5f09109154d02f0490445
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451417
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Robert Phillips <robertphillips@google.com>

Bug: skia:12466
Change-Id: If35cf18de94731e17596a6b064941c2bef20f265
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451422
Auto-Submit: Robert Phillips <robertphillips@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-09-23 03:47:07 +00:00
Robert Phillips
605748b95b Graphite: Add compilation bots
Bug: skia:12466
Change-Id: I5cca024b8df9cf2203d5f09109154d02f0490445
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451417
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-09-22 22:14:24 +00:00
Brandon Jones
2d71c9e995 Add Abseil dependency for Dawn
Dawn is adding an dependency on Abseil, and a previous attempt to do so
broke the Dawn/Skia roller. Adding the library to DEPS here to support
that, though it will only be called from Dawn code (like Tint).

See: https://dawn-review.googlesource.com/c/dawn/+/64600

Bug: dawn:563
Change-Id: I002a086b3c8406da2a59d04321e9189f09e9e29a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451638
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-09-22 22:05:32 +00:00
Robert Phillips
d6bf374c3c Graphite: Improve DM/Graphite connection
This makes "dm --config grgl --src gm skp" generate a lot of green pngs and adds a stub class for Image_Graphite.

Bug: skia:12466
Change-Id: Ia7cf891ad278434f473cf6c9c4673bf8fa085adf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451740
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-09-22 21:34:09 +00:00
John Stiles
fe9bfe6eeb Separate IRGenerator and Compiler into separate DSLWriter fields.
The only actual use of Compiler is in dsl::ReleaseProgram. All other
uses of Compiler in DSLWriter were to gain access to its internal
IRGenerator.

Change-Id: I0169cb1debf837894b1be3321f3d920259f7e91a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451741
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-09-22 20:31:32 +00:00
John Stiles
1a117d7642 Allow dsl::Start with a Context instead of a Compiler.
This should allow lightweight DSL usage without needing access to a
Compiler, but some operations won't work (for now) because they rely on
the IRGenerator. Ideally, as we will reduce our dependence on
IRGenerator, these limitations will fade away.

Change-Id: I93880f153a7425b208bdc4a866169d037e4553a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451739
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-09-22 20:29:44 +00:00
Ethan Nicholas
ec8eef24fb Slightly updated DSL Switch API
PossibleExpression / PossibleStatement should only have been used in
cases where we do not have a position available.

Change-Id: I8cd3cafce21b3c18f03e75a0c822eea75c86f225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451896
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-09-22 20:00:43 +00:00
Jorge Betancourt
4d06441fca [JetSki] bind drawGlyphs to JetSki for Text rendering
Change-Id: I5cd691b5b3fda58afdc8ddd5213063c202b19672
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/447716
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2021-09-22 19:38:13 +00:00
Michael Ludwig
01754ecf12 Graphite: Rough out DrawCommandList and BoundsManager
Device will own and manage a BoundsManager, which it will use to decide
the sort and test Z's that it passes to the DrawCommandList in its
draw() implementations.

DrawCommandList might end up being owned by the SDC, with the SDC
exposing a similar drawing API. There will need to be some mechanism to
end a DrawCommandList and start a new one (the list moves into an
SDCTask). This would either happen from an external flush call, or in
the rare case where the representable Z values are exhausted and we
have to insert a depth buffer clear and start a new task that depends
on the prior one.

Bug: skia:12466
Change-Id: I892b631037dc801eb94da2462683c9701afa281b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451599
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-09-22 19:36:49 +00:00
skia-autoroll
f8a6faf94b Roll skcms from cf7d3f925b87 to 3021821e8f79 (1 revision)
https://skia.googlesource.com/skcms.git/+log/cf7d3f925b87..3021821e8f79

2021-09-22 lovisolo@google.com [bazel] SkCMS RBE config for Linux.

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 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
Change-Id: Ia4ee01b57ecbc4532905b53268e7844194b9dd00
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451876
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-22 19:30:42 +00:00
John Stiles
428af4cf2f Remove fLocalCoord from SkVMGenerator.
Local coordinates are mapped to the SK_MAIN_COORDS_BUILTIN argument in
ProgramToSkVM, and never otherwise needed during code generation.

Change-Id: Ia2080dd72d43fe792881f5422f811e8f35e85572
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451744
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-22 19:28:46 +00:00
John Stiles
a4f56836f5 Refactor SkVMGenerator construction.
Previously, the ctor for SkVMGenerator did a lot of setup work and
emitted the global-variable logic directly. Callers were responsible for
calling `writeFunction` exactly one time, to emit main.

Now, the ctor of SkVMGenerator just sets up members, and callers need to
call `writeProgram`. `writeProgram` emits all the setup code as well as
main.

This makes the ctor a little less scary looking, and gives us a natural
place to insert a dsl::Start/End pair.

Change-Id: I713a0ea70def64f9eeeda4eb7504028112b5d7ad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451743
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2021-09-22 19:24:48 +00:00
Greg Daniel
77435597fa Add memoryless attachment support for vulkan dmsaa.
For this initial landing, we actually have the memoryless support
disabled because we need to update Chrome's vk memory allocator to
handle the new lazy flag added in this CL. Otherwise we will fail to
make dmsaa attachments and not draw anything.

I tested this on ARM and the it does look to keep the size of all the
lazy msaa attachments at 0. I test with both 4 and 8 sample counts. To
confirm the size check, I changed the store op on the msaa attachments
from discard to store and the reported memory size did grow.

Bug: skia:11809
Change-Id: I977f337b922cdbdbce16d67945369246e3547c17
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451296
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-09-22 19:06:02 +00:00
Jerome Gaillard
6ee0018bfe Remove mssse3 flag of host builds for Android skia
This flag is not necessary, and it prevents users with CPUs that do not
support SSSE3 from using design tools in Android Studio.

Change-Id: Ia3b907c6f398e331f642256774116fbf720581da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/445937
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2021-09-22 18:36:20 +00:00
Avery Musbach
0541a983ef bench: Add PhoneHub assets to skottie-vs-png decode bench
The skottie-vs-png decode bench is intended to facilitate comparison
between Lottie and PNG, but such a comparison cannot really be made when
the Lottie files are unrelated to the PNG files (Lottie files chosen to
represent a range of vector graphic complexity, versus PNG files chosen
to represent a range of image dimensions). This CL adds PhoneHub assets
in PNG and Lottie, including various Lottie files created using
different optimization strategies (see added code comments for details).

Change-Id: I1a4357ab0af22b9db7b7ce83fd07d48c77db7680
Bug: chromium:1128684
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/442476
Reviewed-by: Avery Musbach <amusbach@google.com>
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-09-22 17:23:33 +00:00
Brandon Jones
6d351405d4 Fix an issue reporting errors with check_deps.py
The script was previously checking to ensure that each entry was well
formatted, but then continued to try and parse it as if it was
regardless, causing an IndexError when trying to access the split array.

This change continues to the next iteration of the loop when an errors
is detected so that the script can complete normally and the errors can
be reported.

Change-Id: I830c74610ccce45e32a1afa679af7b0ee0881a4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451637
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2021-09-22 16:14:37 +00:00
Robert Phillips
5a6f1606cc Add more stub classes
Bug: skia:12466
Change-Id: Iaa8431bf6fbe20c30b34a90a5a55f6f89723aa30
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451257
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-09-22 15:59:54 +00:00
Herb Derby
9f6be8e7de Reland "align the different implementations of 1/x"
This is a reland of 828987893b

Addendum: I failed to make the distinction between AVX and FMA.
A machine can have AVX, but not have FMA. We encapsulate this
difference where HSW and SKX are assumed to have FMA while plain
AVX does not.

Original change's description:
> align the different implementations of 1/x
>
> Before this CL, the current rcp (1/x) calculation has enough precision
> for color calculations, but not enough for positional calculations.
>
> Introduce a new reciprocal called recip that has more precision for
> positions. On Intel, this requires the addition of a Newton-Raphson
> iterations, and ARM requires two NR iterations.
>
> Bug = skia:12453
> Change-Id: Ib04d71a653ad1326dc114316c1e909fe4d3d364c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/449194
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: If87764cc57319ddd3254aab2190e0a2b31af099b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451737
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-09-22 15:28:10 +00:00
John Stiles
6386199d27 Remove IRGenerator::coerce.
This was replaced by Type::coerceExpression. This CL removes the last
two call sites to reference the old `coerce` method.

Change-Id: I636501a6eb6991463e1975ac38169dee058cdf6f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451738
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-09-22 15:19:13 +00:00
Michael Ludwig
c3fab1a511 Don't switch kDecal to kClamp
Came across this when working on a new GM that happened to use a 1px
wide image with decal sampling, this caused it to smear across a much
larger than expected area.

Change-Id: I05a12e4ae9a2a54f8a9a18050573a4f6b35197ac
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451357
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-09-22 15:11:45 +00:00
Jim Van Verth
5480677cfc Fix CMAKE build
Change-Id: I4471903f20b8167b71f81db91748794c7fbfb94b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451576
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-09-22 14:16:40 +00:00
John Stiles
49b1a42279 Migrate unreachable-code elimination to Analysis.
Change-Id: Ib0c79046044f159b35f0cbaf06c7931c37a09ac4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451299
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-22 13:56:33 +00:00
skia-autoroll
cb25d566c2 Roll ANGLE from 9184973fc1be to 68c0da839bc6 (13 revisions)
9184973fc1..68c0da839b

2021-09-22 timvp@google.com Vulkan: Inform frontend when new buffer is allocated
2021-09-22 timvp@google.com Vulkan: glMapBuffer(): Create new buffer (Buffer Ghosting)
2021-09-22 timvp@google.com Vulkan: Add ResourceWrite to track Read and Write Access
2021-09-21 jmadill@chromium.org Vulkan: Lift DS feedback read-only suppression.
2021-09-21 kpiddington@apple.com Metal: ANGLE Metal AutoObjCPtr == nullptr comparison is inverted
2021-09-21 kpiddington@apple.com Reimplement transform feedback on direct-to-Metal backend
2021-09-21 yuxinhu@google.com Fix app trace heap buffer overflow
2021-09-21 jmadill@chromium.org GN: Remove the "no GTest" dEQP targets.
2021-09-21 kpiddington@apple.com Metal Direct: TinyDepthStencilWorkaroundTest.DepthTexturesStick
2021-09-21 jmadill@chromium.org Fix build in some configurations.
2021-09-21 jmadill@chromium.org Perf Tests: Split samples into sub-tests on desktop.
2021-09-21 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from b7de6caa43b9 to 6cbc24686901 (7 revisions)
2021-09-21 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e515fa6a510e to 0537997114eb (434 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 brianosman@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: brianosman@google.com
Test: Test: BufferDataTest.MapWriteArrayBufferDataDrawArrays
Test: Test: BufferDataTest.MapWriteArrayBufferDataDrawQuad
Test: Test: ComputeShaderTest.ImageBufferMapWrite
Test: Test: TextureBufferTestES31.MapTextureBufferInvalidateThenWrite
Test: Test: VulkanPerformanceCounterTest.MappingGpuReadOnlyBufferGhostsBuffer
Change-Id: I1ecaef225b0e0c62167d20f833d6e58305636358
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451438
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-22 05:32:07 +00:00
skia-autoroll
6ed5a66c06 Roll Chromium from c3ac14695197 to 5b12d6f9f82b (500 revisions)
c3ac146951..5b12d6f9f8

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 brianosman@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: brianosman@google.com
Change-Id: I7dac589c0dc5e24637b1a8873b9abd5040ed0249
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451439
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-22 05:29:37 +00:00
skia-autoroll
33245291ae Roll SwiftShader from 6cbc24686901 to 755b78dc66b2 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/6cbc24686901..755b78dc66b2

2021-09-21 pkasting@chromium.org Force -Wno-shadow to avoid variable shadowing warnings.
2021-09-21 swiftshader.regress@gmail.com Regres: Update test lists @ 6cbc2468

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 brianosman@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: brianosman@google.com
Change-Id: Id84e3e40f681f38eab33a0423e6c85d1b4e9c268
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451437
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-22 05:20:38 +00:00
skia-autoroll
5527735121 Roll Dawn from 92d6e53e6def to a10f5331f2b5 (5 revisions)
https://dawn.googlesource.com/dawn.git/+log/92d6e53e6def..a10f5331f2b5

2021-09-22 hao.x.li@intel.com Update destinationOffset alignment to 256 in resolveQuerySet
2021-09-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 1d81f8370458 to 28d6763ef8e3 (5 revisions)
2021-09-21 pkasting@chromium.org Force -Wno-shadow to avoid variable shadowing warnings.
2021-09-21 kainino@chromium.org dawn.json changes to match upstream webgpu.h
2021-09-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from d1c6f8334168 to 1d81f8370458 (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from d1c6f8334168 to 28d6763ef8e3

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 kainino@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: kainino@google.com
Change-Id: I73f610a0a0cfd136a101208af37e26fe8573a3f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451436
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-09-22 04:41:45 +00:00
John Stiles
bb30fc16e1 Revert "align the different implementations of 1/x"
This reverts commit 828987893b.

Reason for revert: breaks Waymo

Original change's description:
> align the different implementations of 1/x
>
> Before this CL, the current rcp (1/x) calculation has enough precision
> for color calculations, but not enough for positional calculations.
>
> Introduce a new reciprocal called recip that has more precision for
> positions. On Intel, this requires the addition of a Newton-Raphson
> iterations, and ARM requires two NR iterations.
>
> Bug = skia:12453
> Change-Id: Ib04d71a653ad1326dc114316c1e909fe4d3d364c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/449194
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>

Change-Id: I555fead21dc8b856cc6f0a1b59b14176a1ba2bfd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451356
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-09-21 22:41:08 +00:00
Ethan Nicholas
a48e7b0186 Removed unused SkSLPosition
Change-Id: Icdeb0e3efce2cd9ba697edebe1c3a831144c7613
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451256
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-09-21 20:28:43 +00:00
Robert Phillips
f15c3ff9d3 Add SkSurface_Graphite stub
and fix up the #include guards

Bug: skia:12466
Change-Id: I865ebb00827001b2cf0f7d871e872a7be0f36c22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451156
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-09-21 20:28:40 +00:00
John Stiles
d668d4da68 Fix SwitchWithFallthrough test on iOS.
It looks like returning from inside a switch on iOS gives wrong results
in GLSL.

Change-Id: I9d6d8971a7a54600268e27443815444fca6f3c61
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450994
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-09-21 20:15:32 +00:00
Herb Derby
828987893b align the different implementations of 1/x
Before this CL, the current rcp (1/x) calculation has enough precision
for color calculations, but not enough for positional calculations.

Introduce a new reciprocal called recip that has more precision for
positions. On Intel, this requires the addition of a Newton-Raphson
iterations, and ARM requires two NR iterations.

Bug = skia:12453
Change-Id: Ib04d71a653ad1326dc114316c1e909fe4d3d364c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/449194
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-09-21 20:01:48 +00:00
John Stiles
1c5eb4b371 Disallow continue inside a switch.
This fails on several platforms in practice, and is of very limited
real-world utility.

Change-Id: Ib476396fc33cb51af6bbcf7fe822d30703ed995d
Bug: skia:12467
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450993
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-09-21 19:26:40 +00:00
Florin Malita
6a2a637746 [skottie] Fix Keyframe::Value equality operator
Per spec, reading anything other than the most recently written
union member is undefined behavior.

Keyframe containers always access the same member, consistently.  But
the type-agnostic equality operator does touch both members.

Refactor to avoid undefined behavior.

Also add a couple of unit tests to capture keyframe deduping behavior
(which in turn relies on the equality operator).

Change-Id: I7ba9c335ef28af7ddc71bd6f03d56b891fbdea1e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451016
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-09-21 19:23:26 +00:00
Julia Lavrova
9f6e4632f8 Fixing all clang errors...
Change-Id: If448c339c16359b53c31f181d3e3938ffbe30cef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450037
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-09-21 17:25:18 +00:00
John Stiles
35bd92638f Add tests for switch + loop constructs.
Change-Id: I17b5e21a28140b8e9313d87af9b1145674214fdb
Bug: skia:12450
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450989
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-09-21 17:23:47 +00:00
Robert Phillips
755e00edec Update sprint to graphite name
Change-Id: Ice0826af0b64fa8dd92975f879af8ab0f71740fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/451039
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-09-21 16:44:10 +00:00
Dominik Röttsches
8abb52f212 Roll FreeType
fed5521016..6190360967

Contains a change that accepts ClipBoxes only in format number 0 instead
of 1 after a spec change to harmonize format numbering, thus needs
an update to the test font.

Change-Id: I837802648aec1acc0d0424b2b381e3f7031b181e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/450916
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-09-21 16:37:14 +00:00