Commit Graph

59511 Commits

Author SHA1 Message Date
Kevin Lubick
f60584eb0f [includes] Remove link between SkImage.h and SkImageEncoder.h
According to go/chrome-includes [1], this will save about
210MB (0.09%) off the Chrome build. http://screen/GVdDaRRneTRuroL

[1] https://commondatastorage.googleapis.com/chromium-browser-clang/include-analysis.html#view=edges&filter=%5Ethird_party%2Fskia%2Finclude%2Fcore%2FSkImage%5C.h%24&sort=asize&reverse=&includer=%5Ethird_party%2Fskia%2Finclude%2Fcore%2FSkImage%5C.h%24&included=&limit=1000

Canary-Android-Topic: image-encoder-2
Change-Id: If911ec283a9ce2b07c8509768a6a05446573a215
Bug: 242216
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512416
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-03-07 21:32:13 +00:00
Brian Osman
22c94544b3 Support arbitrary bicubic filtering in raster pipeline
Guarded for chromium and Google3

Bug: chromium:1302855
Change-Id: If9b085a24d5f03e6971506c98463aa8c09100a67
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516016
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-07 20:56:55 +00:00
John Stiles
d8590052e8 Remove GM test support from SkQP.
We only want to run pass/fail unit tests on SkQP. Gold image support has
been removed.

In this CL, the command-line argument for render tests has been left
as-is to avoid breaking scripts which rely on it. This can be removed in
a followup. The Java binding continues to exist as a no-op.

Change-Id: Ib8acb6cb490b935b10d841e2319fe4537696bda1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516336
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-03-07 19:09:53 +00:00
Julia Lavrova
1cd8104ea3 Reverting a part of blitter selection change
that wouldn't allow to use RasterPipeline
when SkVM blitter cannot be created

Change-Id: Ieadf06169c8163a8490df19258eb4dd25e31ee05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516997
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2022-03-07 18:39:58 +00:00
John Stiles
28b3520559 Use SkTHashMap for the SkSL program-size checker.
Change-Id: Iae781edcd966393d6c1b43d79c7fb71705b8593d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516456
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-03-07 18:34:17 +00:00
Dichen Zhang
7225b26450 Add color-depth detection
ag/16935648 added a method to detect the color depth of R/G/B channel
for input sources. This change does the following: (1) call this new method and default
SkAndroidCodec to 1010102 for 10-bit images; (2) add color-depth to
SkEncodedInfo.

Change-Id: I3ede4a7a6223da2d4c075403d6ee280db086e0be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512076
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2022-03-07 18:22:52 +00:00
Julia Lavrova
bbb1fef951 Switch from SkPaintShader to SkColorShader
as a small optimization and to prepare for future
bigger optimization

Change-Id: Iafda673533c05417de5092549105e82959ba9fcf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516378
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2022-03-07 17:16:50 +00:00
John Stiles
6a10556775 Reject equality operators on opaque types.
ES2 disallows opaque types in expressions (other than passing them to
their associated builtin functions). We now enforce a similar
restriction on SkSL opaque types.

While I was there, I added several other cases to the invalid-shader
test to make sure that they were all caught.

I needed to reorder some code to make sure that ternary expression error
messages didn't change. Ternary expressions now check for opaque types
before checking that the left-side type and right-side type are
compatible. This is because we check for "compatible" ternary
expressions by checking if `leftSide == rightSide` would be accepted.
`shader1 == shader2` used to be considered a valid expression for the
purposes of this test, but not anymore.

Change-Id: I62a0a31feca9dadd428da7d1b48d7693c4b6434d
Bug: skia:13026
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516802
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-03-07 15:19:46 +00:00
Kevin Lubick
2d86f6f5db Reland "[includes] Remove include link between SkPathRef.h and SkRRect.h"
This is a reland of 37b8239bec

Upstack changes:
 - http://ag/17004908
 - https://github.com/flutter/engine/pull/31654

Original change's description:
> [includes] Remove include link between SkPathRef.h and SkRRect.h
>
> According to go/chrome-includes [1], this will save about
> 40MB (0.02%) off the Chrome build. http://screen/4GnPjFaYpwCVHVL
>
> I'm not quite sure why the link is so expensive, but we can
> forward declare it and move the implementation from the .h
> to the .cpp file easily enough.
>
> [1] https://commondatastorage.googleapis.com/chromium-browser-clang/include-analysis.html#view=edges&filter=%5Ethird_party%2Fskia%2Finclude%2Fprivate%2FSkPathRef%5C.h%24&sort=includes&reverse=&includer=%5Ethird_party%2Fskia%2Finclude%2Fprivate%2FSkPathRef%5C.h%24&included=&limit=1000
>
> Canary-Chromium-CL: 3485346
> Change-Id: Ie3a5e7a735426f883a6c06ddbd3b8bf148bf1709
> Bug: 242216
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512158
> Reviewed-by: Robert Phillips <robertphillips@google.com>

Bug: 242216
Change-Id: I31288895528251fd59913427b95b9f88a871d14b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/512776
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-03-07 15:15:05 +00:00
John Stiles
9f67845661 Use SkTHashMap/Set in the SPIRVCodeGenerator.
Change-Id: Iffc3b1febeae0c29d4c24a483f6c05a01ef363d7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515716
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2022-03-07 15:11:56 +00:00
Kevin Lubick
7d4e12544e [dawn] Clean up include paths and dawn_native namespace
Change-Id: I343d878b2ff3b1abf52007c7612b01c53731566b
Bug: dawn:824,dawn:1275,skia:12512
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516916
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2022-03-07 14:38:55 +00:00
John Stiles
b8cee7dab3 Reject operators =, ==, and != on void types.
The fuzzer discovered that we allow == on void types (confusing the SkVM
backend).

Change-Id: Ia9494642faf67f3f86e3a365807be8bd4a7062e4
Bug: skia:13026
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516796
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-03-07 14:10:29 +00:00
John Stiles
1c2b4492b8 Only run vector-folding logic on vectors.
Previously, we would take the vector-folding path for all types. This
didn't cause any problem for scalars, but failed for "zero-size" types
like void. It isn't valid to compare zero-size values, but we currently
don't reject such code (see skia:13026), and the fuzzer noticed this.
It's safest to only run the vector-folding code when we actually have
multiple slots that need to be folded into one result.

Change-Id: I0bc88043d9a4aeea38ae24dc1a6d1a7430d3d7b0
Bug: oss-fuzz:45279, skia:13026
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516676
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-07 13:58:17 +00:00
John Stiles
c8cb357b53 Fix leak in SkReadBuffer::readFlattenable.
If an object did not have the expected type, we would return null, but
leak the undesired object.

Change-Id: I4f799e6583f8d35e852319106b5b07a5a2e4d354
Bug: oss-fuzz:45240, oss-fuzz:45256, oss-fuzz:45265, oss-fuzz:45270
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516797
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-07 13:42:17 +00:00
skia-autoroll
8e6f4d08ce Roll ANGLE from b72718d23720 to 36132a265702 (18 revisions)
b72718d237..36132a2657

2022-03-05 hailinzhang@google.com Reland "add host cached bit for staging buffer"
2022-03-05 antonio.caggiano@collabora.com Vulkan: Fix DRM format support verification
2022-03-04 romanl@google.com Capture/Replay: Clarify that capture is disabled by default.
2022-03-04 cclao@google.com Vulkan: Align the size before calling into VMA's allocator
2022-03-04 m.maiya@samsung.com Vulkan: Add feature to create pipeline during glLinkProgram
2022-03-04 cnorthrop@google.com Docs: Update CaptureAndReplay to include Perf tests
2022-03-04 yuxinhu@google.com Reland "Remove ImageViewHelper from ResourceUseList"
2022-03-04 jmadill@chromium.org Vulkan: Add overlay widget for cache key size.
2022-03-04 romanl@google.com Capture/Replay: Mark two more tests as flaky.
2022-03-04 jmadill@chromium.org Vulkan: Fix missing empty buffer descriptor.
2022-03-04 lubosz.sarnecki@collabora.com Tests: Add Fire Emblem Heroes trace.
2022-03-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 2328c3fcf88d to f7e842466e0a (5 revisions)
2022-03-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e2a60c1d35cf to 46c84f1b0c3f (1077 revisions)
2022-03-04 jmadill@chromium.org Revert "add host cached bit for staging buffer"
2022-03-04 jmadill@chromium.org Call generate_test_spec_json with vpython3.
2022-03-04 jmadill@chromium.org Protect against deleting a current XFB buffer.
2022-03-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 7089ef18891d to 561264b73b36 (7 revisions)
2022-03-04 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from a30aef1d7967 to e572921329ff (5 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: ProgramBinary*CreatePipelineDuringLink*
Test: Test: angle_perftests --gtest_filter="*fire_emblem_heroes*"
Change-Id: I3dc24ec0f9cd10d2abecae965b16e8c1ef86d660
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516697
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-07 05:39:14 +00:00
skia-autoroll
396ff9f275 Roll SwiftShader from 561264b73b36 to fc40ddd2a901 (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/561264b73b36..fc40ddd2a901

2022-03-06 swiftshader.regress@gmail.com Regres: Update test lists @ 60bf3b4c
2022-03-04 swiftshader.regress@gmail.com Regres: Update test lists @ 561264b7
2022-03-04 dvet@google.com Update debug info code to compile with latest LLVM

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: I5578eabea91532cfa8db4cb312d385a0b16d7377
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516696
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-07 04:48:48 +00:00
skia-autoroll
0152ee9981 Roll Dawn from d58b7ef97bde to 95f44fd3b3fd (18 revisions)
https://dawn.googlesource.com/dawn.git/+log/d58b7ef97bde..95f44fd3b3fd

2022-03-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b207b888452e to 29cf938afd2a (1 revision)
2022-03-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 60bf3b4cf91b to fc40ddd2a901 (1 revision)
2022-03-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from e67027c2df29 to 36132a265702 (1 revision)
2022-03-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 8c1205c391dc to b207b888452e (1 revision)
2022-03-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from e1930f0fac2b to 60bf3b4cf91b (1 revision)
2022-03-05 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from bf3cdca5844b to e67027c2df29 (7 revisions)
2022-03-05 enga@chromium.org Remove WGSL readonly-storage to storage binding type promotion
2022-03-05 shrekshao@google.com Allow sparse color attachments
2022-03-05 hao.x.li@intel.com Add timestampWrites on render/compute passes
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e572921329ff to 8c1205c391dc (6 revisions)
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from d1003645cb39 to 4cb132918164 (1 revision)
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 561264b73b36 to e1930f0fac2b (1 revision)
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b72718d23720 to bf3cdca5844b (10 revisions)
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from c7e2e32d489d to d1003645cb39 (2 revisions)
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 80fa1bbd5615 to c7e2e32d489d (1 revision)
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 81af4024f34b to e572921329ff (1 revision)
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 39fdd0d506bf to 561264b73b36 (4 revisions)
2022-03-04 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 7b202392bf9f to b72718d23720 (5 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 80fa1bbd5615 to 4cb132918164

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

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

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

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

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: I62c4f860aef7d25c6ccadcbc24cd3765a05d1c6e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516698
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-07 04:43:48 +00:00
skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com
f029354f16 Update SKP version
Automatic commit by the RecreateSKPs bot.

Change-Id: I8be10a4093ac38d4c98223e601c89e8c204efcce
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516559
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-03-06 07:59:41 +00:00
skia-autoroll
d7bcfecfaf Roll SK Tool from c5b107e57d75 to 871de5b784ca
https://skia.googlesource.com/buildbot.git/+log/c5b107e57d75..871de5b784ca

2022-03-06 skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com Update CIPD Packages

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 borenet@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: borenet@google.com
Change-Id: Ie7093773a9c8291ca5c133d3446b203da5fe688f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516557
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-06 06:08:16 +00:00
Kevin Lubick
cf67cbeb2f Fix int underflow in SkReadBuffer
We don't want to use any negative index in fFactoryArray.

Change-Id: Ib87b3c0a28fb61653dbffc700a96001421930060
Bug: oss-fuzz:42237
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516376
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-03-04 21:37:18 +00:00
Brian Osman
0817ce7c5b Add SK_LENIENT_SKSL_DESERIALIZATION, enabled in Debugger
When deserializing an SkSL shader, it's possible to encounter code that
doesn't compile (particularly from the last year, when syntax tweaks
were being made). By default, we still treat this as an error and fail
to load the SKP. In the SKP debugger, though, we add a lenient mode that
permits these failures. If any of the children were SkShaders, we
instead return that. If all else fails, we just return nullptr, which
will cause the triggering draw to use a solid paint-color, but at least
allow the SKP to be loaded and viewed.

For color-filters and blenders, we allow malformed SkSL, but always
return nullptr.

The bug that prompted this change involved Android's overscroll stretch
shader, where this approach works particularly well (it turns the
stretch into a simple pass-through of the underlying content).

Change-Id: I756c694739d31b11efa1b82c126f34440a7de66a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515543
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-04 20:58:47 +00:00
John Stiles
694823b5cb Remove unused code from the SPIRVCodeGenerator.
Change-Id: I417dd9716aa1d0e861f98ad27cd18e00c3674131
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515677
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2022-03-04 20:36:37 +00:00
John Stiles
dae33f857f Use SkTHashMap for the SkSL Inliner.
Change-Id: Icd175fb400d4c7d7bc8f072a58e9abb9fb42df2f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516156
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: Arman Uguray <armansito@google.com>
2022-03-04 20:09:23 +00:00
Ben Wagner
8bf4580c3c Update ImGui power sliders in Viewer
The power sliders have been deprecated in favor of specifying that the
sliders are logarithmic. This doesn't appear to work very well, but at
least it doesn't crash at runtime with an assert.

Change-Id: I2c80aaf8e387efbb878c81a1ca0f754f6c45e80a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516160
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-04 20:00:19 +00:00
John Stiles
1a01d5a1f1 Remove unused members from GLSLCodeGenerator.
Change-Id: I49ed41170d5ac39658554435f806af0218911316
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516158
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-03-04 19:16:13 +00:00
Ravi Mistry
9a822433df Pull the latest doxygen image
Bug: skia:13020
Change-Id: I32ac1f7593f85da76a883d795cd9803f55a42f24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/516076
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2022-03-04 19:08:05 +00:00
John Stiles
bc6b9df7c6 Use SkTHashMap for the MetalCodeGenerator.
We seem to save about 1K of code size each time an unordered_set/map is
replaced.

Change-Id: I7e04076d470e6c7ad4ae8301ded231ae69168bc8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515361
Reviewed-by: Arman Uguray <armansito@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-03-04 19:01:18 +00:00
John Stiles
b3deb0a652 Use SkTHashMap for the intrinsic-name map.
This leverages our new ability to initialize a hash map at construction
time (http://review.skia.org/515319)

Change-Id: I2e6038b3a6645f19128930d3c58707a682b5232f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515320
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-03-04 18:55:12 +00:00
John Stiles
6105180115 Use SkTHashMap for the PipelineStageCodeGenerator.
Change-Id: I7b10f475598b070b1b690f38dc7d54b40f240f14
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515676
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-04 18:51:46 +00:00
John Stiles
7957918db3 Use SkTHashMap for the BuiltinMap.
Change-Id: I6f50d8020c15acf664cdfcb2918c2e547427b838
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515321
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-03-04 18:50:03 +00:00
Greg Daniel
11206c3faf [graphite] Add support for caching discardable msaa textures
Bug: skia:12754
Change-Id: I66f5f64dc6d27f3bd9bf936fd5989531e33ecdc7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515856
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-03-04 17:47:11 +00:00
Robert Phillips
a27ddd9167 [graphite] Add plumbing of prior stage's output to glue code
The blend mode implementation, in particular, will require access to
the prior stage's result.

Bug: skia:12701
Change-Id: I8db0d70edf0c17b934a3d751d2b632765e0900df
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514958
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-03-04 16:47:35 +00:00
Greg Daniel
2e7a5061b0 [graphite] Use ResourceCache for stencil attachments.
Bug: skia:12754
Change-Id: Iec046dedb088f226e5928712222fa786426b2689
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515517
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-03-04 15:44:45 +00:00
Greg Daniel
4d428f375c Add ability to query gl format enum from GrBackendTexture.
Change-Id: I5faec55b8fddb718999dae8c6b2e7badb6a85efb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515178
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-03-04 14:28:30 +00:00
Joe Gregorio
87496d3cc9 Fix doxygen README.md to use python3.
Change-Id: Ie4ce9604f3c00f31a1f0117afeaa0ea6f30e9bd8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515719
Reviewed-by: Ravi Mistry <rmistry@google.com>
2022-03-04 14:21:35 +00:00
skia-autoroll
6bb185bf54 Roll ANGLE from 6cb08a2203e3 to b72718d23720 (11 revisions)
6cb08a2203..b72718d237

2022-03-03 cclao@google.com Vulkan: Fix the data race for mUse from two threads
2022-03-03 abdolrashidi@google.com Add angle_white_box_tests to SwANGLE tests
2022-03-03 tsniatowski@vewd.com Don't create a string out of a nullptr
2022-03-03 hailinzhang@google.com add host cached bit for staging buffer
2022-03-03 jmadill@chromium.org Vulkan: Fix issue with redefining a layered attachment.
2022-03-03 cnorthrop@google.com Capture/Replay: Fix capture on Linux
2022-03-03 timvp@google.com WATCHLISTS: Remove timvp@ from 'vulkan'
2022-03-03 romanl@google.com Fix glClearColor calls to use GLColor32F constants.
2022-03-03 m.maiya@samsung.com Vulkan: Reserve memory in move-constructor of ResourceUseList
2022-03-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 383901609736 to 7089ef18891d (10 revisions)
2022-03-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 7f867484330b to a30aef1d7967 (4 revisions)

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

To 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: kjlubick@google.com
Test: Test: MEC of an existing trace on Linux
Change-Id: I2738e0acb00ffc3171fe2d116ecd9d27cfe457b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515700
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-04 05:30:11 +00:00
skia-autoroll
3646be8740 Roll SwiftShader from 82d425db023c to 561264b73b36 (10 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/82d425db023c..561264b73b36

2022-03-04 capn@google.com Remove explicit broadcasts of constants in fragment operations
2022-03-03 capn@google.com Fix obtaining the RelaxedPrecision decoration from the result ID
2022-03-03 natsu@google.com Support VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
2022-03-03 dvet@google.com Update googletest submodule to release-1.11.0
2022-03-03 capn@google.com Benchmark mediump GLSL.std.450 instructions
2022-03-03 capn@google.com Simplify obtaining SPIR-V decorations
2022-03-03 capn@google.com Remove duplicate transcendental functions
2022-03-03 capn@google.com Optimize log2() polynomial evaluation using FMA
2022-03-03 capn@google.com Remove exp/log constant propagation TODOs
2022-03-03 capn@google.com Optimize exp2() polynomial evaluation using FMA

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

To 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: kjlubick@google.com
Change-Id: I6a3d6bd3c333c92d2e62fcf3d26108076723a0fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515699
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-04 04:48:47 +00:00
skia-autoroll
fb298ad842 Roll Dawn from 2817d1f98dc0 to d58b7ef97bde (8 revisions)
https://dawn.googlesource.com/dawn.git/+log/2817d1f98dc0..d58b7ef97bde

2022-03-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 85612ac7910e to 81af4024f34b (6 revisions)
2022-03-03 bclayton@google.com Roll WebGPU IDL, update dawn/node bindings.
2022-03-03 lokokung@google.com Extends current CachedObject interface to allow setting and getting cache keys.
2022-03-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 6cb08a2203e3 to 7b202392bf9f (6 revisions)
2022-03-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 82d425db023c to 39fdd0d506bf (6 revisions)
2022-03-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 195bbd48447b to 85612ac7910e (1 revision)
2022-03-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 15b558c19c9f to 6cb08a2203e3 (2 revisions)
2022-03-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 58d1eecc2ec8 to 82d425db023c (6 revisions)

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

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

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

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

Cq-Include-Trybots: skia/skia.primary:Build-Debian10-Clang-x86_64-Debug-Dawn
Bug: None
Tbr: bclayton@google.com
Change-Id: I471ac8e08e087c88176f82768128639ac163a44a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515701
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-03-04 04:43:47 +00:00
John Stiles
6ff07e0b02 Add initializer-list construction to SkTHashSet/Map.
This will allow us to easily replace unordered_set/unordered_map in more
places.

Change-Id: Ic0b5245e8cdce2918d7b043bfc370eca95caf889
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515319
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-03-03 22:40:20 +00:00
John Stiles
227af34e24 Use SkTHashMap for parser layout tokens.
It seems to reduce code size by about 1K every time we remove an
unordered map.

Change-Id: I120aa6130b4283c7d41b9db5bfeec3c2eb99bcd4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515545
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-03-03 21:25:41 +00:00
Nathaniel Nifong
3bf76ab829 Add debugger as an optional module in canvaskit
Change-Id: I7d866aab2a74bbb4c8d4f2cf7901d4b679c0cbe9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515516
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2022-03-03 21:06:17 +00:00
John Stiles
7b40626ca9 Fix debugger return-value display with repeated function calls.
The slot-assignment logic has been changed to associate slots with
function calls, instead of function definitions. In our test case, you
can now see that the calls to `get` are now mapped to $15, $17 and $18.
This change also jiggles some existing tests and improves their
register allocation slightly (!).

One minor hitch here is that there's no FunctionCall node associated
with main() (it's never explicitly called). However, our slot map key
can be any IRNode, and we know main() can't be called by anyone else,
so it's harmless to use the function definition as the key in this case.
(This entry could probably stay out the map entirely if it made a
difference, but I don't think it matters.)

Change-Id: I68a6ff24cbd3a2db77f24126502bd3d11e8c0962
Bug: skia:13011
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514578
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-03-03 20:55:25 +00:00
John Stiles
d9f9f1813c Add test demonstrating issue with function calls.
If a function is called multiple times on one line, stepping over that
line does not show all of the function-call results. It only shows the
last result.

e.g. in this example, I have just stepped over the first line which
calls "get" three times. We should see three results, but we only see
one: http://screen/3WfJoZWm77cSexM

In this test you can see that all three calls to `get` are assigned to
the same slot, $15.

Change-Id: Id0c486ef349a1e527001efbcee2ed2b836f56e83
Bug: skia:13011
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514577
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-03-03 20:55:25 +00:00
John Stiles
ae8d412b9a Add null check to DebugTracePlayer.
Navigating away from the Debugger in Viewer could lead to a null
dereference.

Change-Id: I2686edd3716e7a375d394a4dc1a296395b5f35b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514579
Reviewed-by: Arman Uguray <armansito@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-03-03 20:55:25 +00:00
Jorge Betancourt
c8e520e722 remove scaled stroke guards
should not be pushed until scuba is updated (cl/431716076)

Change-Id: Ic1b6b76eb0ebd1ab0c9d7875c7b5789af39e21c1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/514763
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2022-03-03 20:41:29 +00:00
Robert Phillips
b2ba7ee497 [graphite] Move SkShaderInfo::SnippetEntry to SkShaderSnippet
In a following CL the ShaderSnippet will need to shared between the SkPaintParamsKey and the SkShaderDictionary.

Bug: skia:12701
Change-Id: I69935765a32a5a0eb61a23178037ab6be3d110b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515357
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-03-03 20:09:24 +00:00
Dominik Röttsches
b85e213811 Use default palette index when base palette index out of range
If the requested palette index is not found in the font, use default
palette at index 0. This implements the current specification of
https://www.w3.org/TR/css-fonts-4/#base-palette-desc .

Change-Id: I614f1738e75a5dde573ff117c413dadafcca1e52
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515377
Reviewed-by: Dominik Röttsches <drott@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-03-03 19:54:10 +00:00
John Stiles
6f8a444249 Replace Caps lookup table with an SkTHashMap.
This is rarely accessed so I don't expect much impact on performance,
but it will be interesting to see if it impacts code size.

Change-Id: I407ef5f8dc71f328e541243073b7e82dd1303268
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515359
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-03-03 18:34:17 +00:00
John Stiles
be46542a7f Update SkTHashSet tests to use std::string/string_view.
This leverages our new support for standard strings in SkGoodHash, added
in prior CL http://review.skia.org/515356.

These tests already included checks for SkString, so it was easy to add
a template which tested std::string and std::string_view with the same
checks.

Change-Id: Ia2d9b889e66a50556a25e40493d14a5b692214a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515358
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-03-03 18:09:00 +00:00
John Stiles
847f03ab20 Add std::string/string_view support to SkGoodHash.
This will allow these types to be used as the key in an SkTHashSet/Map
without providing a custom Traits class.

Change-Id: I41bfc1d43f3909d3653b4f12ac39e2a288235052
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/515356
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-03-03 18:09:00 +00:00