Commit Graph

53106 Commits

Author SHA1 Message Date
Mike Klein
f3087d8297 allow a fourth Val/Reg arg per op
This is a pure refactor, making room for a fourth argument per Op.

I'll use this to make store128 work more naturally, taking all
128 bits of its input at once, rather than spreading across two strided
64-bit stores as done today.  I've left this for a second CL because
this refactor on its own seemed error-prone enough.

Change-Id: I704e4f2e165b0bfd0276af921d97bf2cc01e8550
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355659
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-19 19:58:45 +00:00
Florin Malita
ea27de5cb7 [svg] Cleanup: use FP alpha for opacity
Update general opacity and stop-opacity to use float alpha.

Change-Id: I496b2d41d77c0123ea2a2e1f8f8e4b1377a98abc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355627
Auto-Submit: Florin Malita <fmalita@chromium.org>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2021-01-19 19:22:49 +00:00
Mike Klein
aad9719f78 remove reg/imm unions
I've been looking to simplify and expand the kinds of instructions
we can support, and one easy early simplification is to break the
union of regs y,z and immy,immz into separate fields.

To further reinforce how unrelated they are, rename to immA,immB.

With the guaranteed two immediates available, we can simplify the
representation of some ops to use the immediates more naturally.

Change-Id: Iad139b5d77e8464e71f1360d881c1ed2e0957db8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355658
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-19 19:09:45 +00:00
Leon Scroggins III
94c7476003 Fix decoding gifs with too-big-bounds
Update libgifcodec to include the fix and test an animated gif with
too-big-bounds. This image (alphabetAnim.gif, checked into our skimage
assets to be downloaded and tested on the bots) has bounds that extend
outside the edge of the canvas.
https://skia-review.googlesource.com/c/libgifcodec/+/339831
broke this image, so add it to our visual tests to verify that it's
fixed.

Change-Id: Id21c1858c72822db7c59d84591401ec9f74420f9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353624
Commit-Queue: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
2021-01-19 18:46:55 +00:00
Brian Salomon
7656c4b7e8 Fix DrawEdgeAAQuad degenerate issue where 3D points don't correctly project to 2D points.
Bug: chromium:1162942

Change-Id: Idc1dcb725ff9eae651b84de2fe792b188dcd1c1b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354671
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-01-19 17:33:45 +00:00
John Stiles
f8dfc3b518 Generate valid Metal code when globals reference one another.
`globalStruct` is now named `_skGlobals` and is passed around directly
by reference, with no additional helper variable (`_globals`) at all.

Change-Id: Icc5566d2212afd14a4d43700e89f50bedcc8b45f
Bug: skia:11168
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355717
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-19 17:07:24 +00:00
Adlai Holler
0c5c3498bc Optimize task clustering, part 1
Dug in with instruments and yeah there's substantial work to do here.

Bug: skia:10877
Change-Id: I0f6978e0d16385e09e6017a0532fdcf9ba9a5d0c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355716
Auto-Submit: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-01-19 16:59:45 +00:00
Florin Malita
bde06cc511 [svg] Cleanup: drop the presentation attribute SkPaint cache
Instead of attempting to keep fill & stroke SkPaints synchronized with
the current presentation attributes throughout the DAG walk, build the
SkPaints on the fly, only when needed.

This simplifies presentation attribute handling and enables further
/future refactoring.

Change-Id: I3791b4244530644e7e4b983d93b3c966ea7a1b22
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355096
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
2021-01-19 15:58:55 +00:00
Ben Wagner
e9a8238d3c Avoid division by zero when shaping.
The hb_position is always tracked in 16.16 now, so take direct advantage
of that instead of relying on the ratio of the requested size and size
as known by HarfBuzz. This avoids potential issues with division of zero
by zero when shaping zero sized fonts.

Bug: oss-fuzz:29240
Change-Id: I9715629034008552f88afd4feb1074a11cae15e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354117
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2021-01-19 15:53:14 +00:00
Brian Salomon
f1650efc55 Revert "Test all YUVA image factories with different encoded origins."
This reverts commit 2ba80af000.

Reason for revert: new test fails ddl and cpu configs on imggen

Original change's description:
> Test all YUVA image factories with different encoded origins.
>
> Now that SkImage_GpuYUVA stores a GrYUVATextureProxies it supports
> encoded origins.
>
> Modify wacky_yuv_format GMs to use different origins and remove
> restriction in SkImage::MakeFromYUVAPixmaps.
>
> Bug: skia:10632
> Change-Id: I02477d592b7baba164944d629eeac48223698c10
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353623
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=jvanverth@google.com,bsalomon@google.com

Change-Id: If909ee4769cc1c74e1682a5e2870ec85a83f65c5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10632
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354661
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-01-19 15:47:46 +00:00
Mike Reed
0bc32f23f6 Add query to test our cached convexity
Sometimes our cache of convexity is wrong -- still trying to figure out
what do do about that.

Change-Id: Ie36292b87c4d07fc18643cc91f93be00c577b2ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355616
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-01-19 14:54:44 +00:00
skia-autoroll
cc7aa8e318 Roll ANGLE from 68635b431b3c to 81430e11c81e (12 revisions)
68635b431b..81430e11c8

2021-01-19 jmadill@chromium.org Vulkan: Remove command processor special functions.
2021-01-18 penghuang@chromium.org Support create ANGLE EGLContext from an external EGLContext
2021-01-18 penghuang@chromium.org Only call context::unMakeCurrent() if context is changed.
2021-01-18 geofflang@google.com Generate internal gl entry point functions as C functions.
2021-01-18 geofflang@google.com GL: Add detection of IMG and Vivante GPUs.
2021-01-18 cwoffenden@gmail.com Fix to build with VS2019
2021-01-18 james@clarkezone.io Add support for building in Flutter Windows UWP configuration
2021-01-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from aedd133cd85f to 149733cead63 (2 revisions)
2021-01-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7b69f3d087b8 to 2bb77d70cc64 (4 revisions)
2021-01-18 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 2ef9c5ff8ca7 to 55486659cf9b (469 revisions)
2021-01-18 syoussefi@chromium.org Reland "Cleanup translator option checks"
2021-01-18 syoussefi@chromium.org Reland "Vulkan: Generate xfb support code in SPIR-V for extension path"

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/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: scroggo@google.com
Change-Id: Ib839d3f5d9836d14ceae211ad2bfa6e7043b1169
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355517
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-19 05:11:54 +00:00
skia-autoroll
001c9536f9 Roll SwiftShader from 149733cead63 to 8da0f82baf35 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/149733cead63..8da0f82baf35

2021-01-18 amaiorano@google.com VulkanBenchmarks: improve and clarify resource ownership
2021-01-18 swiftshader.regress@gmail.com Regres: Update test lists @ 149733ce

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: scroggo@google.com
Change-Id: I838463f6f948a1247705d40496fc8afa2a28a93c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355518
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-19 05:00:14 +00:00
skia-autoroll
65876fdcd2 Roll Chromium from 1d3066a6e2ec to 00da91bbde3d (227 revisions)
1d3066a6e2..00da91bbde

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/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: scroggo@google.com
Change-Id: Id454930032cc64d43b925361c60b8b081efe8afc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355516
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-19 04:57:53 +00:00
skia-autoroll
1cb592d4ef Roll Dawn from 04772515a8b6 to e45593cb0876 (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/04772515a8b6..e45593cb0876

2021-01-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 4a110c2726e9 to d7335fa97495 (1 revision)
2021-01-18 senorblanco@chromium.org Suppress depth/stencil copy tests failing on ANGLE.
2021-01-18 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from c068cfc1397a to 4a110c2726e9 (1 revision)
2021-01-18 cwallez@chromium.org Add the SubresourceTrackingPerf perf test.

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from c068cfc1397a to d7335fa97495

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: sarahmashay@google.com
Change-Id: I29145b5ea188aeb9f5450742e5f2180a3cbd2cec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355536
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-19 04:47:24 +00:00
Mike Reed
2a27413fde Remove legacy code from picture-shader
Bug: skia:7650
Change-Id: I4d2aaa8e1b1065a7981b20511fbd04a911587d09
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355396
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-01-18 12:49:40 +00:00
skia-autoroll
1bb49a8700 Roll SwiftShader from aedd133cd85f to 149733cead63 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/aedd133cd85f..149733cead63

2021-01-15 sugoi@google.com Fix crash in vertex shader when position is not declared
2021-01-15 amaiorano@google.com LLVMReactorDebugInfo: fix location filename always "<unknown>" on Windows

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: scroggo@google.com
Change-Id: I4d3e1c5e7581cdce7b3234853b9b0df54b3c4c95
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355419
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-18 05:06:59 +00:00
skia-autoroll
073df4dc40 Roll ANGLE from 50c82f42e33f to 68635b431b3c (24 revisions)
50c82f42e3..68635b431b

2021-01-18 syoussefi@chromium.org Reland "Vulkan: Move xfb position decl to translator in extension path"
2021-01-18 syoussefi@chromium.org Reland "Vulkan: Generate gl_Position.z correction in SPIR-V"
2021-01-17 syoussefi@chromium.org Reland "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
2021-01-16 syoussefi@chromium.org Vulkan: Redo RewriteStructSamplers
2021-01-16 m.maiya@samsung.com Vulkan: Rename ReplaceClipDistanceVariable files
2021-01-16 timvp@google.com Tests: Add Real Gangster Crime trace
2021-01-16 timvp@google.com Revert "Vulkan: Generate gl_Position pre-rotation in SPIR-V"
2021-01-16 timvp@google.com Revert "Vulkan: Generate gl_Position.z correction in SPIR-V"
2021-01-16 timvp@google.com Revert "Vulkan: Move xfb position decl to translator in extension path"
2021-01-16 timvp@google.com Revert "Vulkan: Generate xfb support code in SPIR-V for extension path"
2021-01-16 timvp@google.com Revert "Cleanup translator option checks"
2021-01-16 syoussefi@chromium.org Cleanup translator option checks
2021-01-15 m.maiya@samsung.com Vulkan: Support EXT_clip_cull_distance extension
2021-01-15 syoussefi@chromium.org Vulkan: Translator pass to monomorphize problematic functions
2021-01-15 syoussefi@chromium.org Vulkan: Generate xfb support code in SPIR-V for extension path
2021-01-15 syoussefi@chromium.org Vulkan: Move xfb position decl to translator in extension path
2021-01-15 lexa.knyazev@gmail.com OpenGL: Remove avoidDXT1sRGBTextureFormat workaround
2021-01-15 jmadill@chromium.org Capture/Replay tests: Fixes and improvements.
2021-01-15 syoussefi@chromium.org Vulkan: Generate gl_Position.z correction in SPIR-V
2021-01-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 5255c465bbba to aedd133cd85f (1 revision)
2021-01-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 5869a809d551 to 7b69f3d087b8 (5 revisions)
2021-01-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from fabc0b0b129a to 2ef9c5ff8ca7 (556 revisions)
2021-01-15 syoussefi@chromium.org Vulkan: Generate gl_Position pre-rotation in SPIR-V
2021-01-15 syoussefi@chromium.org Vulkan: Fix validation of MSRTT framebuffer attachment

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/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: scroggo@google.com
Test: Test: angle_perftests --gtest_filter=TracePerfTest.Run/*real_gangster_crime*
Change-Id: Idb24d78ea43a8956ce57217450e8f73931600bf5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355418
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-18 05:01:49 +00:00
skia-autoroll
a3f0d2683a Roll Chromium from e330bc98d133 to 1d3066a6e2ec (498 revisions)
e330bc98d1..1d3066a6e2

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/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: scroggo@google.com
Change-Id: Ieaa6c7611b1adf79c483bb915936cf72c05a4eb3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355417
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-18 04:42:19 +00:00
skia-autoroll
26a84431ff Roll Dawn from 5a6fda1a6fcc to 04772515a8b6 (5 revisions)
https://dawn.googlesource.com/dawn.git/+log/5a6fda1a6fcc..04772515a8b6

2021-01-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 0a68b365ebff to c068cfc1397a (2 revisions)
2021-01-15 cwoffenden@gmail.com Missing header for VS1029 (for commit 8c58491d)
2021-01-15 bclayton@google.com StorageTextureTests: Use textureNumLayers()
2021-01-15 bclayton@google.com StorageTextureTests: Use new access qualifiers
2021-01-15 senorblanco@chromium.org Workaround ANGLE hang with a glFlush().

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 0a68b365ebff to c068cfc1397a

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

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: kainino@google.com,enga@google.com,cwallez@google.com
Change-Id: Ic64510e11012d38a7b7077ae51f5eb456c727c9f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355416
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-01-18 04:40:59 +00:00
skia-recreate-skps
a799f6c37d Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: Ibd0f9537285bb5718d117afb292874e8254e5081
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/355320
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-01-17 06:37:58 +00:00
John Stiles
05e5446145 Code cleanup: minor fixes in convertSwitch.
- Remove unexplained special case where we avoided coercing uints to int
- Replaced the set<int> of case values with SkTHashSet<SKSL_INT>. Should
  be faster and more type-correct.

Change-Id: I3286bd50253cc7a1ff6a550dc429bdfebbb8d8c5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354670
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-01-15 23:22:26 +00:00
John Stiles
9d7aa41081 Reorder GLSL output so that functions are emitted last.
The Inliner likes to move function bodies around; after inlining, code
can inadvertently move upwards, above ProgramElements that the code
relies on. We work around this by always emitting functions last.

Change-Id: Ie5486cc3a79a478920342fb9f578d575486fb4cf
Bug: skia:11186
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354669
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-01-15 23:15:46 +00:00
Leon Scroggins III
add35d9474 Deprecate (and ignore) SkAndroidCodec::ExifOrientation
This was originally added so that some clients (BitmapFactory,
BitmapRegionDecoder) could ignore exif for backwards compatibility, and
others (ImageDecoder) could respect it.

With the addition of NDK APIs for decoding all frames of an animated
image, hwui/ImageDecoder will handle compositing frames, including
handling the orientation, so it may as well always handle it.

This removes tests for SkAndroidCodec that are no longer applicable.
Android already has tests for most of them.
AndroidCodec_sampledOrientation is recreated in
ag/Ieda439910ae52e609f0710d424503616d99ae5c7.

Change-Id: Ibd280986892176f284895d543f2f50bca22d196b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344763
Commit-Queue: Leon Scroggins <scroggo@google.com>
Auto-Submit: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2021-01-15 23:08:46 +00:00
Brian Osman
ea485e5285 Enforce ES2 limits on indexing expressions (in runtime effects)
This enforces an even stricter version of the rules from GLSL ES 1.0
Appendix A, Section 5. Essentially, indices (to arrays, vectors,
matrices) must be made of literals, loop indices, and expressions made
of those two.

Bug: skia:10837
Bug: skia:11096
Change-Id: I437a5ed64da58e24d5991ddbde68859f5214e98b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354665
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-01-15 22:49:27 +00:00
Florin Malita
d414e600b2 [svg] Property inheritance workaround
Property inheritance is supposed to follow the tree hierarchy, but we
implement it based on the render path.

One nasty side effect is when resolving IRI paint servers
(gradients, patterns), the referencing node properties get inherited
(leak) into the paint server fragment.  E.g.

  <pattern id="pat">
    <rect fill="green"/>
  </pattern>

  <rect stroke="blue" fill="url(#pat)" stroke="blue"/>

The pattern subtree incorrectly inherits a blue stroke property from
the referencing node when we resolve the fill.

As a temporary (and imperfect) workaround, we can reset the presentation
context when resolving IRI paint servers.

Change-Id: Ia4a8a6199222820661f805c43340b5e16902feff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354668
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-01-15 22:19:16 +00:00
John Stiles
4f2bcff08e Implement Type cloning for enums and structs.
As far as I know, there shouldn't be a way to introduce a struct or enum
other than at global scope; the keywords are not accepted inside a
function body. In fact, I wasn't able to find a way to exercise these
code paths in practice. But we now have concrete assurance that any
possible type can be cloned into a symbol table safely; all Types are
either built-in (available everywhere by design) or are clonable.

Change-Id: I4b006b6cab995b3e598b683736ab9689828629c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354664
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-15 21:45:56 +00:00
John Stiles
ddcc843e8d Migrate Type-cloning logic from the Inliner into Type.
The inliner needs to clone Types from one SymbolTable to another when
cloning blocks of code. However, it seems like a poor division of
responsibility for the inliner to need to know how to clone every Type
correctly. It makes more sense for this logic to exist within the Type
class itself.

Change-Id: I4a383d5e22d5084eb35992a0b5c24865d2030282
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354662
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-15 21:38:56 +00:00
John Stiles
8f7689ce76 Revert "Disable the MSAA atlas mode for CCPR"
This reverts commit 97c476ecb7.

Reason for revert: tree breakage - Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader


Original change's description:
> Disable the MSAA atlas mode for CCPR
>
> We have a long term path rendering plan that uses dynamic MSAA instead.
> This CL is a test to see if we can drop support for CCPR now.
>
> Change-Id: I1bff3ca3143a6b453b65a7932a1805c195922805
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354036
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=egdaniel@google.com,bsalomon@google.com,csmartdalton@google.com

Change-Id: I9f472807f743b8ddfee92800ee3b62609f2d4717
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354673
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-01-15 21:38:38 +00:00
Brian Osman
035606d291 Enable matrix-negation interpreter test
This was disabled a long time ago, when this was (incorrectly) forbidden
by the IR generator, most likely.

Change-Id: I14585d249104b263c152fa59cbeba0c4e9a2e074
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354666
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-01-15 21:30:46 +00:00
Mike Reed
bfd330d081 Add filter param to picture-shader
Bug: skia:7650
Change-Id: I5eb6d73cf92c22b3846d4f4b81c7a8c06e2889a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354659
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-01-15 21:05:56 +00:00
Heather Miller
d5412d9f80 update release notes for m89
Change-Id: Ie23baa11be7c52f969676512efabc44648c23dc4
Docs-Preview: https://skia.org/?cl=354663
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354663
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Heather Miller <hcm@google.com>
2021-01-15 19:58:19 +00:00
John Stiles
9f079f7c0d Add Type::isEnum helper method.
Change-Id: I62755dfcf5c8bb5bd7e0cc742e675aacf4afbb78
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354658
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-01-15 19:52:56 +00:00
Tyler Denniston
a25e1a38dd [svg] Implement feBlend filter
Note we are still not passing filters-blend-01-b because we don't yet
support feImage.

Bug: skia:10841
Change-Id: Ibca52c0e8e8d45e73473dea3b0252d6b81eaa584
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354657
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2021-01-15 19:45:56 +00:00
Brian Osman
bf061a32ef Fix an (int + float) error in "cube" particle demo
Also fix a crash if you try to play an effect that has never compiled
correctly. (After the first compile, the arrays were always large enough
to set "dt" -- this code is all going to be reworked soon for SkVM, but
I hit this while diagnosing the type coercion error).

Change-Id: I5bfab539c7304bde2da36b0b0604991d5b5b303a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354660
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-01-15 19:15:16 +00:00
Mike Klein
7de307a64f pull arm64 binary on arm64 Mac/Linux
Really I just want the Mac binary, but Linux kind of comes along for
free.  (It'd work for Windows too if there were arm64 GN binaries.)

Python2 calls Linux 'linux2', while Python3 calls it 'linux'.

Change-Id: I8ef3d482a956acfe6b1eec3d7b5429b25c528c54
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354556
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-15 19:00:46 +00:00
Tyler Denniston
a22d21e447 [svg] Fix incorrect optimization for opacity layer
When both filter and opacity attributes are set on a leaf node, the
opacity must be applied as a separate layer so that the results of the
filter are modified by the opacity. Previously in this circumstance we
were incorrectly applying the opacity to the paints only (without a
layer).

To illustrate:

<svg viewBox="0 0 1000 500" version="1.1"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <defs>
    <filter id="Green" x="0%" y="0%" width="100%" height="100%">
      <feFlood flood-color="lime" flood-opacity="1" />
    </filter>
  </defs>
  <rect x="30" y="20" width="400" height="100" fill="red" opacity="0.1"
        filter="url(#Green)"/>
  <g filter="url(#Green)">
    <rect x="30" y="200" width="400" height="100" fill="red" opacity="0.1"/>
  </g>
</svg>

The two rects should render differently. In the <g> case, the filter
output (opaque green) overrides the translucent red pixels of the rect.
In the <rect> case, the filter output overrides the translucent red
pixels with opaque green, but then is modified by the opacity on the
<rect>.

Relevant W3C test is filters-blend-01-b (and possibly others).

Change-Id: I165eed36c546f1f99457865cee58ee2b3bffe6f1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354879
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
2021-01-15 18:55:16 +00:00
Chris Dalton
97c476ecb7 Disable the MSAA atlas mode for CCPR
We have a long term path rendering plan that uses dynamic MSAA instead.
This CL is a test to see if we can drop support for CCPR now.

Change-Id: I1bff3ca3143a6b453b65a7932a1805c195922805
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354036
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-01-15 18:43:56 +00:00
Mike Reed
2ac6ce8e6e Simplify common case for recttorect
Change-Id: I70e295a677b8cac3d578e3cd57472c833af03877
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354336
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
2021-01-15 18:37:46 +00:00
John Stiles
e6c67c5bc4 Restrict the creation of built-in types to BuiltinTypes class.
This CL limits the availability of functions like "MakeLiteralType" and
"MakeScalarType" to the BuiltinTypes class. This allows us to know,
definitively, that whenever we encounter these types, they are part of
the BuiltinTypes class and available anywhere in the program without
needing to be cloned.

The remaining MakeXxxxxxTypes in SkSL::Type are constructed dynamically
and injected into child symbol tables during parse/IR generation. These
types must be treated with special care when being moved or cloned:
- Arrays (MakeArrayType)
- Structs (MakeStructType)
- Enums (MakeEnumType)

Change-Id: I5490d6739c2a5ffdd54195f5a0b9b5be05d07953
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354878
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-01-15 17:49:26 +00:00
Florin Malita
b2aa04d184 [svg] Minor cleanup
Replace a bunch of no-op stubs with a default template impl.

Change-Id: I37b24361dcf3d7c247a12a7c20a9f3a967b6f9e6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354877
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Auto-Submit: Florin Malita <fmalita@chromium.org>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
2021-01-15 17:32:16 +00:00
John Stiles
ac01aca0fe Migrate BuiltinTypes to a separate file from Context.
No code or functionality changes.

Change-Id: I24317767570ae9ebbfea56f873d98709fb22d8b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354876
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-01-15 17:23:16 +00:00
Mike Reed
5ec22387ff Simplify common case of linear filtering with no mips
Change-Id: I08b4a7bc088705b93a0aa680f6733d09c7ad23dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354221
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-01-15 16:47:16 +00:00
Mike Klein
4f4c064d5b roll gn to latest
Nice periodically, and this version also has a Mac arm64 binary.

Refine a few visibility rules from ":*" (any target in this file)
to "./*" (any target in any .gn file anywhere under this directory).

Use frameworks over libs where now required.

Change-Id: Ic19e1533e2810d18ae4684645d8555b422320b7f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354536
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-01-15 15:34:00 +00:00
Florin Malita
73d57bf4e8 [svg] Add support for mask color-interpolation
https://www.w3.org/TR/SVG11/painting.html#ColorInterpolationProperty

Bug: skia:10842
Change-Id: I3e97577ee257c9afe64d924c768c85badbfab07d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354220
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
2021-01-15 15:19:40 +00:00
John Stiles
6a1a98c313 Fix for fuzzer-discovered use-after-free.
The inliner discovered that when a binary expression is inlined, its
type is not cloned into the destination's SymbolTable. This meant that
when the inlined-from function was later dead-stripped, the type pointer
would become dangling. Did a quick pass over inlineExpression and
inlineStatement and ensured that types are always copied.

Also found that `copy_if_needed` was making a copy of eligible types
each time one was encountered, instead of making one copy and reusing
it. This is fixed as well.

Change-Id: Iee3259ab038dfb04034bf0110af1909ccffec3de
Bug: oss-fuzz:29444
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354219
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-01-15 15:11:00 +00:00
Tyler Denniston
5878ecef2f [svg] Implement feOffset filter
https://www.w3.org/TR/SVG11/filters.html#feOffsetElement

We should now be passing filters-felem-02-f W3C test.

Bug: skia:10841
Change-Id: I642cf3c8816b83bdf88066c55103e432ae9c9d5a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354216
Commit-Queue: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2021-01-15 15:04:30 +00:00
Brian Salomon
2ba80af000 Test all YUVA image factories with different encoded origins.
Now that SkImage_GpuYUVA stores a GrYUVATextureProxies it supports
encoded origins.

Modify wacky_yuv_format GMs to use different origins and remove
restriction in SkImage::MakeFromYUVAPixmaps.

Bug: skia:10632
Change-Id: I02477d592b7baba164944d629eeac48223698c10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/353623
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-01-15 14:55:10 +00:00
John Stiles
4ed174526b Honor fIsScope when emitting a Block's description.
Change-Id: I93d580e67cb66d388bd66b280ff229cb79e5b154
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354218
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-01-15 14:43:40 +00:00
Florin Malita
cf1e2f3d9b [svg] Fix mask edge artifacts
Per spec, the explicit <mask> bounds [x,y,w,h] are used to also clip
the content (the actual mask geometry may extend beyond these bounds).

This clip is currently scoped such that it applies both to the mask
layer and the content layer.  When the clip is not pixel-aligned,
we're anti-aliasing both layers' edges -- which darkens the composition
result (producing dark hairlines around the mask).

Push the clip down such that it applies to content only.

Change-Id: I32169e2b6dc9685e50a51c6b22cfaaac1a897239
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/354217
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Tyler Denniston <tdenniston@google.com>
2021-01-15 14:31:50 +00:00