Commit Graph

59187 Commits

Author SHA1 Message Date
Greg Daniel
fc80c11138 [graphite] Don't initialize Recorder BufferManager until after initializing ResourceProvider.
Change-Id: Ic37b07919478af59fb775285dc2cfc932ce3f2b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504696
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-04 22:43:39 +00:00
John Stiles
b292c30aa0 Reenable unreachable-code warnings.
Change-Id: Ie56967a4b823388f0975384e88be23ff2fceecf7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504598
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-02-04 21:45:43 +00:00
John Stiles
4250effcc5 Prepare to reenable unreachable-code warnings.
Adding double-parens around an `if ((false))` squelches the warning.
In other cases, you can squelch the warning by assigning the
always-constant(-on-this-machine) check into a constexpr bool.

Change-Id: I5a344fb45779c5bd2865edb3cffaf839ba9a5d85
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504597
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-02-04 21:45:39 +00:00
Kevin Lubick
a803794df7 [canvaskit] Add more features to Bazel build
PS 1 adds particles to the build
PS 2+ ports many of the options from //modules/canvaskit/compile.sh

With this CL, all the CanvasKit tests pass with both the
debug and release build.

Change-Id: Id70f0c16a087109c56949417f940849f2e3b5200
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504537
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-02-04 21:33:20 +00:00
Robert Phillips
6c28bd97fe [graphite] Reorganize code snippets a bit
This inches us towards the model of the code snippets being subroutines that are then glued together in a main method.

Bug: skia:12701
Change-Id: I49c39636debd2dbe512c7d5f9bc401dd899df1dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504556
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-04 21:31:04 +00:00
Greg Daniel
324e00243f [graphite] Add RecorderPriv class
Change-Id: If2ef260cf015e7f7ae2ebc7de1a41a5ef52b8dd3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504616
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-02-04 21:23:08 +00:00
Greg Daniel
94f0b94a3d [graphite] Fix unused member warning in Release build.
Change-Id: Ib995ebae0ad54d6ce672ce4afe61f67c4247bd9d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504540
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-04 21:22:45 +00:00
Robert Phillips
c2cb2d9ae2 [graphite] Split up Mtl uniform generation a bit
GetMtlUniforms will allow fusing uniforms from a set of code snippets.

Bug: skia:12701
Change-Id: Idf9767135acca6f918590b13fe7189bcf85b927a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504536
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-04 21:17:41 +00:00
Ben Wagner
8b618c3e16 Pin FcConfig for FCIDirect at creation.
SkFontConfigInterfaceDirect class methods used the FontConfig library
static global "current" FcConfig (implicitly through the use of
nullptr). This was pinned down once per call to each method which used
it (to avoid the "current" FcConfig from being changed out from under it
while running). However, the use of global state as a matter of course
makes it very difficult to reliably test.

Modify SkFontConfigInterface to optionally take an FcConfig on
contruction. If nullptr is provided it is equivelent to the user passing
the result of `FcConfigReference(nullptr)` so that existing users are
unaffected. SkFontConfigInterface now takes ownership of this FcConfig
and will release it on destruction.

Change-Id: Ie3573403a95c6bf627ce5ff7f2eb5617c9cd162d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504477
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-04 20:37:16 +00:00
Greg Daniel
92c2ace930 [graphite] Add basic stubs for ResourceCache.
This also moves the creation of the ResourceProvider from Context into
Recorder so that we can share the SingleOwner object.

Bug: skia:12754
Change-Id: I97f5c8bf86f86835582a78250acb929722f26688
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504478
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-02-04 19:25:11 +00:00
Kevin Lubick
e94b52c442 [canvaskit] Add skottie to Bazel build
PS 1 regenerates existing Bazel files
PS 2 adds generated Bazel files to skottie and its dependencies,
as well as incorporating it into CanvasKit.

This changes the version of Bazel we use to 5.0.0 (recently
released).We had been using a pre-release of 6.0 because we
wanted the new features in one of the 5.0 release candidates,
but not the regression that was there (and reverted before the
full 5.0 release). I'd like to stick to the latest stable Bazel
release where possible.

Suggested Review Order:
 - //modules/skottie/BUILD.bazel (this was hand written
   to encapsulate the skottie library). The files in the
   deps are based on skottie.gni.
 - //modules/skresources/BUILD.bazel and //modules/sksg/BUILD.bazel
   which expose all sources
 - //third_party/file_map_for_bazel.json which ignores the
   ffmpeg libraries (we won't actually build the SkVideoDecoder
   stuff because HAVE_VIDEO_DECODER is not set).
 - //modules/canvaskit/BUILD.bazel which makes use of the skottie
   library and includes the interface skottie.js file.
 - .bazelversion which changes the Bazel version used (e.g. by
   Bazelisk).
 - All other changes should be auto-generated or related to
   deleted files.

Change-Id: Ic26f9a9dea5310f2cbd9cda7d701847924a39a22
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503828
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2022-02-04 19:18:27 +00:00
Robert Phillips
b58173c96b [graphite] Fix graphite Release builds
Change-Id: I6c5ac0811a4c9bc7592a75e7fc31354467ff704c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504476
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-04 16:12:58 +00:00
Ben Wagner
bee5ccd548 Avoid "drawable" when not referring to SkDrawable.
Change all use of "drawable" to "accepted" in glyph drawing code. To
improve uniformity "rejects" is also changed to "rejected".  This is
motivated by the desire to add SkDrawable backed glyph rendering, which
would make the use of "drawable" for both "glyphs which are drawable"
and "glyph which renders with SkDrawable" very confusing.

Change-Id: I6d080bc9ec25f81aa9479757d2cca47ae74f4db6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504236
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-04 15:52:11 +00:00
Kevin Lubick
40df2e3cf5 [canvaskit] Expose SkPicture.makeShader
Change-Id: I664d3828ca848e7ce83ca7cdc5fae4bdb7cbc02c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503737
Reviewed-by: Florin Malita <fmalita@google.com>
2022-02-04 15:12:46 +00:00
John Stiles
7c1dafe51e Remove references to skstd::optional in Skia.
In this CL, Skia has been updated to use std::optional throughout.
skstd::optional continues to exist as a synonym for std::optional so
that Flutter does not break. The typedef will be removed in a few days,
once Flutter rolls into google3 have landed.

Original change's description:
> Revert "Reland "Remove skstd::optional entirely.""
>
> This reverts commit d161e2f6ec.
>
> Reason for revert: Need to wait for Flutter fix to roll into Google3.
>
> Original change's description:
> > Reland "Remove skstd::optional entirely."
> >
> > This reverts commit 98e51006b9.
> >
> > Flutter fix: https://github.com/flutter/engine/pull/31193
> >
> > Original change's description:
> > > Revert "Remove skstd::optional entirely."
> > >
> > > This reverts commit 17d0fc087c.
> > >
> > > Reason for revert: flutter still uses the skstd class
> > >
> > > Original change's description:
> > > > Remove skstd::optional entirely.
> > > >
> > > > Skia now uses C++17's std::optional.
> > > >
> > > > Change-Id: I387069589baaefadd25e25bcec3f4cc6ee6fd090
> > > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/501477
> > > > Reviewed-by: Ben Wagner <bungeman@google.com>
> > > > Reviewed-by: Brian Osman <brianosman@google.com>
> > > > Commit-Queue: John Stiles <johnstiles@google.com>
> > > > Auto-Submit: John Stiles <johnstiles@google.com>
> > >
> > > Change-Id: I2c001588007640ac7b8c9f0760038b46c220a07e
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502702
> > > Auto-Submit: John Stiles <johnstiles@google.com>
> > > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> > > Reviewed-by: Brian Osman <brianosman@google.com>
> > > Commit-Queue: Brian Osman <brianosman@google.com>
> >
> > Change-Id: Ia0cd41eda845b02f518c501a23293d344756a4eb
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502703
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Auto-Submit: John Stiles <johnstiles@google.com>
> > Commit-Queue: John Stiles <johnstiles@google.com>
>
> Change-Id: I8f89412292ba5dfe955c3f44c403c3c232cdad2b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503336
> 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>

Change-Id: I28ef3f543bf74de72645485698affb54921a50f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504176
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-02-04 15:03:16 +00:00
John Stiles
4d6f603241 Eliminate unused function.
This was blocking the Android roll: http://screen/9937JW7waCFer64

Change-Id: I89a88ff5a28e077fb302b5c803d0e4829de35103
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504416
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-02-04 14:57:17 +00:00
John Stiles
9c63e63771 Add missing intrinsic tests for abs/max/min(genIType), clamp(genType)
GPUs that failed continued to fail when I put in error bars like
`distance(a, b) <= 0.001`, so they're just disabled entirely now.
Presumably their results are very busted.

Change-Id: I0f1b80f661563a20630740f8cfb6ef69f2a47934
Bug: skia:11209, skia:12858
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503817
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2022-02-04 14:42:17 +00:00
Michael Ludwig
ca0b32c1dc Automatically defer patches and track joins in PatchWriter
Change-Id: I99bd15049e205311e44a01e45fd3e35db18d2c1f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/501839
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-04 14:20:03 +00:00
Robert Phillips
78219a3551 [graphite] Add stub for image shader SkSL
Bug: skia:12701
Change-Id: I1f0817096b5eb58087494f04162dcbe42585fa57
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503816
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-04 14:15:40 +00:00
Kevin Lubick
d66553ba8c [pathkit] Publish 1.0.0
The API has been stable for long enough to start using major versions.

Change-Id: I70bb75c6f4b51d2d76b933898608ee2efc155f3b
Bug: skia:8216
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503738
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2022-02-04 13:11:08 +00:00
Kevin Lubick
cedcaeed01 Reland "[pathkit] Reorganize to be more like CanvasKit"
This is a reland of e138730000

I fixed the tryjobs to move the compiled files into the right
location.

Original change's description:
> [pathkit] Reorganize to be more like CanvasKit
>
> Change-Id: I64226b57161f86277e0635592c2c11442888335a
> Bug: skia:8216
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502817
> Reviewed-by: Nathaniel Nifong <nifong@google.com>

Bug: skia:8216
Change-Id: I535f906b43816d3143e95ff9350ba20b998d817d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503826
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2022-02-04 13:10:43 +00:00
Kevin Lubick
1d9237e3c2 [canvaskit] Add demo excercising lots of text
There are two approaches taken - naively using a bunch
of drawTexts and using drawGlyphs. The latter runs about
twice as fast (45 ms per frame vs 90 ms per frame) at the
expense of more complex code (need to layout individual
glyphs in the JS).

Change-Id: I5bc93048c0297f036215f86244b395cf812226a4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502369
Reviewed-by: Nathaniel Nifong <nifong@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2022-02-04 13:10:29 +00:00
skia-autoroll
9049e12a27 Roll ANGLE from b756b2c2744a to 1608a9567b66 (13 revisions)
b756b2c274..1608a9567b

2022-02-04 cclao@google.com Vulkan: Revert client vertex data streaming to use DynamicBuffer
2022-02-03 cnorthrop@google.com FrameCapture: Regen framebuffers on Reset
2022-02-03 syoussefi@chromium.org Remove gl_PerVertex-related suppression
2022-02-03 syoussefi@chromium.org Reland "Vulkan: Enable ANGLE_texture_multisample"
2022-02-03 syoussefi@chromium.org Revert "Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang"
2022-02-03 syoussefi@chromium.org Vulkan: Fix gl_LastFragData transformation
2022-02-03 jonahr@google.com Expand suppression of Mimap tests to any Win/Swiftshader config.
2022-02-03 cnorthrop@google.com Vulkan: Check program fetch status when switching framebuffers
2022-02-03 jonahr@google.com Suppress GLSLTest.FramebufferFetch... on Pixel6 / Vk / Glslang
2022-02-03 jmadill@chromium.org Add new Vulkan uniform update test.
2022-02-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from fe093f4789c2 to 3a6f074dbd38 (8 revisions)
2022-02-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 4998c7b3a2b8 to 6014f10de554 (6 revisions)
2022-02-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from a210f891a450 to 8894f7c632dd (1053 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 borenet@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: borenet@google.com
Test: Test: FramebufferFetchES31.FramebufferMixedFetchTest
Test: Test: MEC of genshin_impact trace frames 2-100
Change-Id: I6674a973ca3dacd0e2b3669be8f6a7d7b5a8cdcc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503666
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-04 05:33:39 +00:00
skia-autoroll
6d353eabec Roll Chromium from 865fb8ff0da9 to 9ece57e6815c (510 revisions)
865fb8ff0d..9ece57e681

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 borenet@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: borenet@google.com
Change-Id: Id76c18e668d4c73d48ae3e1dae9ba99cead0cf4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503665
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-04 05:25:40 +00:00
skia-autoroll
a929b6b8d2 Roll SwiftShader from 6014f10de554 to 2b76a13c38ae (3 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/6014f10de554..2b76a13c38ae

2022-02-03 srisser@google.com Turn all uses of ChangeID into CL Number
2022-02-03 capn@google.com Fix broken SwANGLE documentation link
2022-02-03 capn@google.com Document our LLVM dependency and steps to upgrade

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 borenet@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: borenet@google.com
Change-Id: Id77106e334bcc12871aeb579f566813bbf7b91c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503668
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-04 04:59:43 +00:00
skia-autoroll
9f5df27b03 Roll Dawn from 012840b75229 to 327d020468b4 (6 revisions)
https://dawn.googlesource.com/dawn.git/+log/012840b75229..327d020468b4

2022-02-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 6014f10de554 to 2b76a13c38ae (3 revisions)
2022-02-03 bajones@chromium.org Deprecate read only depth/stencil Load/StoreOp
2022-02-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b756b2c2744a to e56f0e293319 (6 revisions)
2022-02-03 cwallez@chromium.org Fix scripts/extract.py for Python3
2022-02-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 75d79f219033 to 6014f10de554 (1 revision)
2022-02-03 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 57933493dd3b to b756b2c2744a (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 cwallez@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: cwallez@google.com
Change-Id: I13331d63c0c92621dfcfdcc0d46babec5be7a864
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503667
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Bot-Commit: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2022-02-04 04:38:13 +00:00
Michael Ludwig
420fd7280e Revert "Support round caps in SurfaceDrawContext::drawStrokedLine"
This reverts commit 66e2b0534b.

Reason for revert: diffs in chrome pixel tests featuring lines with round caps :(

Original change's description:
> Support round caps in SurfaceDrawContext::drawStrokedLine
>
> Bug: skia:12872
> Change-Id: Ibfc94c6de9375fea9770121e1c47f1a685448bd3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503417
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Christopher Dalton <csmartdalton@google.com>

Bug: skia:12872
Change-Id: Ia61da41aea77d106523414fb472c081ffa7fc3c1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504177
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-02-04 00:57:09 +00:00
John Stiles
2ad035378c Remove no-op versions of skstd::to_string.
The float/double versions of skstd::to_string produce better output than
the standard version, so let's keep those.

Other versions of to_string don't do anything at all now that
SkSL::String no longer exists. (Previously they existed to convert the
return type from std::string to SkSL::String.) We can just use the
std::to_string functions directly.

Change-Id: Ief513e474bd47ed97f1c13f4f64fb161f1654065
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503832
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-02-03 22:33:41 +00:00
Jim Van Verth
9907a8637c [graphite] Add buffer to texture copy support
Allows copying of multiple regions into a single texture, which supports
both filling mipLevels and rectangles in atlases.

Bug: skia:12845
Change-Id: I5fef9bda01125958a5491b4c5c8b3a66184357d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/504056
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2022-02-03 22:25:11 +00:00
Ethan Nicholas
744116876e Improved whole-program dehydration and rehydration
This adds a Dehydrator.write(Program) to mirror the Rehydrator's
program() method and simplifies the API.

Change-Id: I1b6d6b722d0ce8e6a292132522f806e43d49ce85
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502704
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2022-02-03 21:49:16 +00:00
Erik Rose
47045c9e06 [infra] Add a Debug-All-NativeFonts CPU job for all OS versions on the new Mac Mini 7.1s.
These Minis have a new CPU (I5-4278U) we've never cared about before, so
add that too. (We had some other Minis of the same model in the Golo,
but we didn't care about their CPUs because we were running only GPU
jobs on them.)

If you want to see a good diff of those, use FileMerge or something that
uses a similar algorithm; git makes a total hash of it.

Change-Id: Id7c4f6bc06f83d2ed4a0034e9174b9e69d3d15b2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/495424
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Erik Rose <erikrose@google.com>
2022-02-03 21:34:49 +00:00
John Stiles
d42c59ddae Make ThreadContext::Settings()/ProgramConfig() const.
You can still mutate program settings if you must, by going all the way
to ThreadContext::Context(), but unless your name is StartRuntimeShader,
you probably shouldn't.

Change-Id: Ie70a283970834f18cf8a30b6cd45dcdeb918ae0a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503829
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2022-02-03 21:11:48 +00:00
Ethan Nicholas
abddff3e11 Re-land "Added tests for sksl clone() on our test corpus".
This reverts commit 63a4d65e16.

Change-Id: Ibd17331d518cf1ac95a310e505ee5b0f6495905e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/501318
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2022-02-03 21:01:48 +00:00
John Stiles
f83bc66e08 Remove skstd::size and skstd::data.
We can use the native C++17 versions going forward, if we need them.

Change-Id: I53be7ed4ec72602b978c1dad252dff7be9e0f392
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503823
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-03 20:47:16 +00:00
John Stiles
9cce961d3b Revert "Add missing mix(genIType, genIType, genBType) to sksl_public."
This reverts commit d33334d44e.

Reason for revert: this isn't available in ES3! Only 4.5.
http://screen/9VstoY9RQkufqm3

Original change's description:
> Add missing mix(genIType, genIType, genBType) to sksl_public.
>
> Change-Id: I8d4816f726196e6f4a5fbb0940b5dd1b2d7db7f5
> Bug: skia:11209
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503821
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Bug: skia:11209
Change-Id: Iad4e95ca89b79066d3a1be42605b4338b542638f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503831
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2022-02-03 20:44:11 +00:00
Herb Derby
7cb61889c5 convertToBlob added to remote glyphs cache
Have the AnalysisCanvas (also known as the diff canvas) convert
SkTextBlobs to GrSlugs and record the Strike differences. Make sure
these differences are tracked and recorded.

Bug: chromium:1278340

Change-Id: I2c8d62fa61511abd1e14d4bf595e6db1a0b5e26b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503827
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2022-02-03 20:36:44 +00:00
John Stiles
d33334d44e Add missing mix(genIType, genIType, genBType) to sksl_public.
Change-Id: I8d4816f726196e6f4a5fbb0940b5dd1b2d7db7f5
Bug: skia:11209
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503821
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2022-02-03 20:19:48 +00:00
Greg Daniel
2a4a0b7f1f Reland "Add SkSurface resolve function."
This is a reland of d921f21fbc

Original change's description:
> Add SkSurface resolve function.
>
> This will insert a resolve msaa call into the stream of commands for
> the SkSurface. This is mostly useful for cases when a client wraps the
> resolve texture but has Skia draw with MSAA, and the client wants to
> make sure Skia resolves to their wrapped texture.
>
> Bug: chromium:1292418
> Change-Id: I6eddae967136716b9215fcd96e7d77a2457efdf2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503340
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

Bug: chromium:1292418
Change-Id: I810b5618092c560f5bba900024b3b8c0c88baea9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503717
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-02-03 20:13:16 +00:00
Brian Osman
005392cbc4 Reland "For runtime shaders, deduce isOpaque automatically"
This is a reland of 995d16fc91

Original change's description:
> For runtime shaders, deduce isOpaque automatically
>
> The forceOpaque parameter is now ignored. Instead, we do a conservative
> analysis of the shader's main function to determine if it always returns
> an opaque color. This is good enough to detect simple cases, including
> things like:
>
>   return child.eval(p).rgb1
>
> Bug: skia:12643
> Bug: skia:12896
> Change-Id: I74b331aa12fadb1d0d1bb85f225dc7aa01ba2455
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503346
> Reviewed-by: John Stiles <johnstiles@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

Bug: skia:12643
Bug: skia:12896
Change-Id: I4ae55cdd3f88c1b5a08bd59913df1c1cd48a4679
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503824
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-02-03 18:45:09 +00:00
Kevin Lubick
b59e38d379 Reland "[pathkit] Increase default memory size and allow growth"
This is a reland of 5268f9d562

Original change's description:
> [pathkit] Increase default memory size and allow growth
>
> Change-Id: Ib403708a8cbdcb85512c341c093d1c1fe342d2b3
> Bug: skia:8216
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502778
> Reviewed-by: Nathaniel Nifong <nifong@google.com>

Bug: skia:8216
Change-Id: I8b63fe28c785ef2fc4fc08cc6b9a076bed34040a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503825
Reviewed-by: Brian Osman <brianosman@google.com>
2022-02-03 18:23:17 +00:00
Robert Phillips
e33641e4cf [graphite] Fix G3 roll
Change-Id: Iaaaab94abd68a09b8194e267bca8f555c7a57a4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503877
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2022-02-03 18:11:17 +00:00
Kevin Lubick
49df61f638 Reland "[fuzzer] Remove GL from (now-Vulkan) build"
This is a reland of 805acda3f3

It fixes the #if SK_GL which was causing the Android roll
to fail.

This disables unit tests on Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-TSAN_Vulkan
which were consistently crashing with OOM.

Original change's description:
> [fuzzer] Remove GL from (now-Vulkan) build
>
> The fuzzer runs against the Vulkan version of Swiftshader.
> There are no libGL.so (etc) on the fuzz runtime, so we
> want to avoid linking against those.
>
> The GL code that is #ifdef'd out is still necessary to
> avoid timeouts on TSAN with our NVIDIA jobs.
> https://skia-review.googlesource.com/c/skia/+/502638
>
> Procedure for testing this locally (and iterating):
>   1. In oss-fuzz checkout, run
>      `python infra/helper.py shell skia`
>      to pull up local interactive version of Docker
>      fuzzer build image.
>   2. Run `compile` in fuzzer shell. Stop after
>      the swiftshader compiles and is copied into /out
>      with Ctrl + C.
>   3. Comment out the swiftshader compilation part [1]
>      (no need to re-do this when modifying Skia code).
>      `apt-get install nano -y`
>      `nano ../build.sh`
>   4. Make change to Skia repo using normal methods.
>   5. Run the following in the Skia repo
>      `git diff origin main > foo.patch`
>      Copy the patch into the Docker shell using Ctrl+C
>      and nano.
>   6. Apply the patch inside the Docker shell
>      `git apply foo.patch`
>      and re-compile (which should skip right to
>      building the fuzzer libs)
>      `compile`
>   7. Repeat 4-7 or make small changes directly in
>      the Docker shell via nano.
>   8. When compilation and link succeeds, run
>      `ldd /out/api_mock_gpu_canvas`
>      to verify GL and friends were not dynamically linked.
>
> [1] https://github.com/google/oss-fuzz/pull/7214/files#diff-76f13875e33875cdd372f1f0933206be599cd87952f1bd1eaa57ca928ee9e3e1R49-R53
>
> Change-Id: Idf569820527c1304b0e5a68fd36295be89dfa2a0
> Bug: oss-fuzz:44132
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503016
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Kevin Lubick <kjlubick@google.com>

Bug: oss-fuzz:44132, skia:12900
Change-Id: Ia2eff9403b0035e7f86098f296d7d9b1bbfd4876
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503716
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-02-03 18:07:47 +00:00
Robert Phillips
0fa0367c8a [graphite] Use PaintParams::toKey in ExtractPaintData
Bug: skia:12701
Change-Id: I9af3c437512f2538066ddbbe576739c8873d0bc0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503345
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-03 17:29:56 +00:00
Brian Osman
bd712d3f97 In SkSL tests, don't force opaque output
Requires tweaking one inliner test to avoid an Intel driver bug (on
ANGLE).

Bug: chromium:709351
Cq-Do-Not-Cancel-Tryjobs: true
Change-Id: I08fac938396d6b90805ba9650c7a520af888bc12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503819
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2022-02-03 17:25:35 +00:00
Robert Phillips
433504300a [graphite] Distribute key creation to SkShaders
Bug: skia:12701
Change-Id: I33d24fc319acbfbb3a218a8dd916c5a64f15f028
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503342
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-03 17:22:58 +00:00
Greg Daniel
9a7acd43c4 [graphite] Make Context no longer ref counted.
Bug: skia:12794
Change-Id: I445144f25e9573d0d9ec55d12c3a9d372772c3bd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503348
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2022-02-03 17:18:40 +00:00
Robert Phillips
a9c10b5449 [graphite] Move creation of UniformBlocks to AddToKey methods
Bug: skia:12701
Change-Id: Ia8189d75621ad2c6a15ed91c8a0b552322f40ade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/502314
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2022-02-03 17:09:34 +00:00
Ben Wagner
8405dfceaa Improve remote glyph caching.
A glyph cache entry is made up of metrics, an image, and a path. If an
entry does not exist then nothing is known of the glyph yet. If there is
an entry it must have at least the metrics. The image and the path may
logically be added lazily as needed. Prior to this change it was not
possible to send both the image and the path of a single glyph. The
added test fails when a given strike is used for both the image and the
path. With this change the test passes, as the image is sent and the
path is sent, and both are merged into the remote glyph. The assertions
around not creating the glyph more than once are replaced with
assertions that no part of the glyph is set more than once.

Change-Id: I2fd4047ee15e0d584b68e1180c6fe15224889310
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503347
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2022-02-03 16:49:43 +00:00
Chris Dalton
66e2b0534b Support round caps in SurfaceDrawContext::drawStrokedLine
Bug: skia:12872
Change-Id: Ibfc94c6de9375fea9770121e1c47f1a685448bd3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503417
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Christopher Dalton <csmartdalton@google.com>
2022-02-03 16:12:40 +00:00
Brian Osman
4e95e1e12a Revert "For runtime shaders, deduce isOpaque automatically"
This reverts commit 995d16fc91.

Reason for revert: Breaks one SkSL test on ANGLE

Original change's description:
> For runtime shaders, deduce isOpaque automatically
>
> The forceOpaque parameter is now ignored. Instead, we do a conservative
> analysis of the shader's main function to determine if it always returns
> an opaque color. This is good enough to detect simple cases, including
> things like:
>
>   return child.eval(p).rgb1
>
> Bug: skia:12643
> Bug: skia:12896
> Change-Id: I74b331aa12fadb1d0d1bb85f225dc7aa01ba2455
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503346
> Reviewed-by: John Stiles <johnstiles@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

Bug: skia:12643
Bug: skia:12896
Change-Id: I7d86933f29ddb373222dff7f2a28a413fd777002
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/503818
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>
2022-02-03 16:09:13 +00:00