Commit Graph

54753 Commits

Author SHA1 Message Date
Herb Derby
e90a295f6c fix SkCanvas::drawGlyphs's bounds calculation
Change-Id: I9aea1f516ccb362cf28684de571bdd6971dd6f6c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397478
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-04-16 16:34:33 +00:00
Mike Reed
35c894e861 More plumbing for new virtual onDrawGlyphRunList
Also, disable quick-reject for now until bounds are fixed.

Change-Id: I08b9fa037d279a99fc393364a71cb171e3d16d4a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397458
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-04-16 15:26:13 +00:00
Brian Osman
ce585026db Fix implicit references to _input when GrSkSLFP invokes children
This actually solves two different bugs:

1) A call to sample(child) in a helper function would fail to compile.
   We were invoking the child's entry point with the default color
   argument of args.fInputColor. That was "_input", which is a parameter
   to our main.
2) The runtime effect's FP hard-wired references to the main color
   parameter to args.fInputColor (via a builtin id). This meant that the
   user code could change the variable, then call sample and have those
   changes visible to the child. That shoudln't happen (unless you
   actually pass a color to the child explicitly).

Doing this with an extra global variable is somewhat ugly, and adds some
overhead. Hopefully the driver is able to see through it and optimize
this.

Bug: skia:10506
Change-Id: I11d152bd9f8b270afd53d3bfa71d2e728c8fd729
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397154
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-04-16 15:05:22 +00:00
Brian Osman
829de5b409 Remove sample variants from runtime shaders
This limits users to sample(shader, coords). That's the actual semantics
of an SkShader, so we model it precisely. The other two versions of
sample were really (internal) optimization tricks, and we don't want to
externalize that.

Sample with matrix isn't particularly useful for clients (the child
can be constructed using a local matrix, if that's what you want).
Filed 11869 to detect when we're sampling using the un-modified incoming
coords, so we get the benefits of pass-through sampling automatically.

Bug: skia:11869
Change-Id: Id46d6d495d1d7f17341b5ffb453f62a0c74bd098
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397457
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-16 14:41:22 +00:00
skia-autoroll
f112483bfc Roll SK Tool from a34c89040445 to 28a50e3888cb
https://skia.googlesource.com/buildbot.git/+log/a34c89040445..28a50e3888cb

2021-04-15 jcgregorio@google.com [machine] Add filtering.
2021-04-15 jcgregorio@google.com Run 'go mod tidy' to remove unused modules.
2021-04-15 lovisolo@google.com Infra-PerCommit-Test-Bazel-Local: Fix bug.
2021-04-15 lovisolo@google.com [bazel] Update rules_nodejs to 3.4.0 and rules_sass to 1.32.8.
2021-04-15 lovisolo@google.com [perf] Fix CockroachDB test flakes.
2021-04-15 borenet@google.com [sk] Fix missing BUILD.bazel
2021-04-15 jcgregorio@google.com [perf] Move login init to be after config loading.
2021-04-15 borenet@google.com [sk] Add "asset" subcommand

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

Tbr: jcgregorio@google.com
Change-Id: I917e4ca253fb741e97467898915ee4402deeb888
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397397
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-16 10:22:32 +00:00
skia-autoroll
c42f772718 Roll Chromium from b11e0710253c to c6b364c274f4 (482 revisions)
b11e071025..c6b364c274

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

To 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: brianosman@google.com
Change-Id: Ifa0925b08136fcd24ba524e9d0eb3790a6b26aaa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397356
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-16 05:07:52 +00:00
skia-autoroll
e33da90dc4 Roll ANGLE from 212849e9323a to f2aa9d5da699 (16 revisions)
212849e932..f2aa9d5da6

2021-04-16 lehoangq@gmail.com Reland: Metal: Support importing external metal textures
2021-04-16 jmadill@chromium.org Android: Include android-deps into Android checkout.
2021-04-15 jmadill@chromium.org Vulkan: Implement shader buffers descriptor cache.
2021-04-15 jplate@google.com Generate CL enums in libGLESv2
2021-04-15 timvp@google.com Capture/Replay: Add PPO/glProgramUniform support
2021-04-15 syoussefi@chromium.org Remove suppression for fixed CTS tests
2021-04-15 cclao@google.com Vulkan: Consolidate mReadOnlyDepthStencilMode to mRenderPassUsageFlags
2021-04-15 cclao@google.com Vulkan: Support sample/render to depth texture with different LOD
2021-04-15 cclao@google.com Vulkan: Add test for render+sample depth texture with non-overlap LOD
2021-04-15 syoussefi@chromium.org Roll VK-GL-CTS from c4e6dbe68e04 to ededa67cb12a (76 revisions)
2021-04-15 syoussefi@chromium.org Skip TracePerfTest.Run/*_idle_heroes on Pixel 2
2021-04-15 jplate@google.com Clear macros 'NEAR' and 'FAR'
2021-04-15 lubosz.sarnecki@collabora.com Tests: Add Idle Heroes trace.
2021-04-15 gert.wollny@collabora.com Capture/Replay: Enable InstancingTest.LineLoop/* tests
2021-04-15 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 21426fd08f99 to cac0b331e3fc (436 revisions)
2021-04-15 gert.wollny@collabora.com JsonSerializer: Add tests for sorting and non-unique keys

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 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: brianosman@google.com
Test: Test: FramebufferTest_ES3.RenderSampleImmutableDepthTextureWithExcludedLevelTest: Test: FramebufferTest_ES3.SampleFromAttachedTextureWithDifferentLODAndFBOSwitchTest: Test: angle_perftests --gtest_filter="*idle_heroes*"
Change-Id: I31c9b1594a3c7bca0c6f2b541aba5fddfedfe371
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396974
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-16 04:58:32 +00:00
skia-autoroll
1efd7fc993 Roll Dawn from e87ea2bedc8b to 413dcf8a40df (5 revisions)
https://dawn.googlesource.com/dawn.git/+log/e87ea2bedc8b..413dcf8a40df

2021-04-15 bajones@chromium.org Rename setBlendColor->setBlendConstant
2021-04-15 bajones@chromium.org Updated BlendFactor enum to match spec
2021-04-15 cwallez@chromium.org Temporarily stop running tests on D3D12 with use_tint_generator
2021-04-15 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from f8313e5a6e13 to cc46e393e481 (8 revisions)
2021-04-15 rharrison@chromium.org Fix unittests that are broken by --enable-toggles=use_tint_generator

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from f8313e5a6e13 to cc46e393e481

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 alanbaker@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: alanbaker@google.com
Change-Id: I4231d24da0b4dd19400869d739f3468ae48c3ffe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397357
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-16 04:53:32 +00:00
Florin Malita
de89bf0cd7 [androidkit] Start sketching out Paint
Add Color and Paint classes:

  - Color is pure Java (equivalent of SkColor4f)
  - Paint is backed by a native SkPaint

Change-Id: I79dbfae48f9e51254a51bc1c3966930f32cea5c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396020
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
2021-04-16 01:56:04 +00:00
Brian Osman
0962268099 Fix SampleUsage analysis for calls that use coords and color
Bug: skia:11867
Change-Id: I21e71c77518f0a942651f31061f43f80505090ea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397150
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-04-15 21:40:23 +00:00
Jim Van Verth
dcde69b84e Direct3D: Add UAV support to the root signature
The previous structure of the root signature was:
0: root CBV
1: sampler descriptor table (if any)
2: SRV descriptor table (if any)

SRVs and UAVs can be in the same descriptor table, so they will share
that, but swap it with the sampler so we can have texture-less root
signatures. So new format is:
0: root CBV
1: SRV/UAV descriptor table (if any)
2: sampler descriptor table (if any)

Change-Id: Ibf2b28ed3cfce98e55785682e2009c52a29fda97
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397139
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-04-15 20:45:02 +00:00
Brian Osman
102d6e5a63 Add test case for sample() with color and various forms of coords
Demonstrates a bug that was introduced here:
  https://skia-review.googlesource.com/c/skia/+/396021

Bug: skia:11867
Change-Id: Iaa6521bdeb4c05b0b91f4df43505e9983106f964
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397148
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-15 20:34:42 +00:00
Michael Ludwig
70fae35842 Preserve winding scale for outer edges in AA triangulation
More details are in the bug, but the specific test case gets an
overlap region in the AA outset geometry for the left and right shapes.
Additionally, the mitered outset for the left shape is collinear with
the bottom of the right shape, so the winding of exterior edge of
the overlap region is updated to +2.

When determining the polygons to fill, this +2 on the outer edges
violates the winding rules that normally ensure the interior polygons
(that use +/-2 instead of +/-1) are always filled.

It appears a similar bug fix was added here:
https://skia-review.googlesource.com/c/skia/+/141952/
but then didn't survive a heavy refactor later:
https://skia-review.googlesource.com/c/skia/+/215094

To the best of my knowledge, this is achieving the same result as the
original fix but is updated to preserve winding scale for interior
polygons with overlap regions (the code checks for these, but they
seem pretty rare to me).

Bug: 1197461
Change-Id: I0d32820af8cfec92c46114aeaa58b6e340abdfca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397140
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-04-15 20:31:12 +00:00
Adlai Holler
387309c8bb Fall back to unordered DAG if we go over budget
This case is exceedingly rare, but we need to handle it anyway.

Bug: skia:10877
Change-Id: I6ba219487e4616ff24f2c087b3fcac957d2523f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396816
Commit-Queue: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-04-15 19:49:52 +00:00
John Stiles
f35853a4a2 Clarify output from rewrite_includes assertion.
Previously, the conflicting header names were printed between several
lines of "boilerplate" text, and without any explanatory text. This
made them difficult to notice. The assertion now has an explanatory
message and prints the conflicting filenames directly at the point of
the assertion.

Before:
---
Running presubmit upload checks ...
tests/sksl/dslfp GrSwizzle.h /Users/johnstiles/skia/src/gpu/GrSwizzle.h
Traceback (most recent call last):
  File "tools/rewrite_includes.py", line 60, in <module>
    assert file_name not in headers
AssertionError

** Presubmit ERRORS ** (etc)
username$ _

After:
---
Running presubmit upload checks ...
Traceback (most recent call last):
  File "tools/rewrite_includes.py", line 61, in <module>
    assert file_name not in headers, message
AssertionError: Header filename is used more than once!
- tests/sksl/dslfp/GrSwizzle.h
- /Users/johnstiles/skia/src/gpu/GrSwizzle.h

** Presubmit ERRORS ** (etc)
username$ _

Change-Id: I2b6848ef82c4b1c6d4b5577a76969785e5e122bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397149
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-04-15 19:44:32 +00:00
Herb Derby
3910bc9b4c introduce SkCanvas::onDrawGlyphRunList
With this change, there is no need to produce a SkTextBlob when
using the drawGlyph, drawSimpleText, or drawString apis. These
calls just produce a light weight wrapper sending the wrapper
to onDrawGlyphRunList for rendering.

For recording, recording canvas converts the SkGlyphRunList into
a blob, and calls SkRecorder::onDrawTextBlob.

Remove unused call: drawPosTextCommon.

Change-Id: I173ba2793f74b521b33a6fb3dbd8d98945216a3b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388719
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-04-15 19:44:24 +00:00
Brian Osman
6860db769b Insert newlines in generated FP constructors
Cleans up registerChild calls, which were all on one long line.

Change-Id: I2b665b033edb88cf1de5e4da433833c0be26c92b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397147
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-04-15 19:00:22 +00:00
skia-autoroll
665920e9b9 Roll skcms from 163066c2a041 to a638db877ef8 (1 revision)
https://skia.googlesource.com/skcms.git/+log/163066c2a041..a638db877ef8

2021-04-15 mtklein@google.com require 3 or 4 B2A output channels

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC brianosman@google.com,mtklein@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: luci.chromium.try:linux-blink-rel
Tbr: brianosman@google.com,mtklein@google.com
Change-Id: I4a4834a7a01cf6d4855b40d6da47af6e29f1d11e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397122
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 18:26:22 +00:00
Stephen White
c204e5f765 Dawn: update fences to new API.
Bug: skia:11855
Change-Id: I77ed8b93efb1a9d806f6bec3963c57b7ce16fe4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397138
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Stephen White <senorblanco@google.com>
2021-04-15 18:04:42 +00:00
Jim Van Verth
eefde6ffcc Clean up D3D12 shader compilation
Adds in printing of shaders and better matches other backends.

Change-Id: Ie2d7bed201e3d0a8d76262ee454632ec46b7e0aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397137
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-04-15 17:33:24 +00:00
Adlai Holler
b51dd577b9 Add GrResourceAllocator::reset
This is used in the fallback code when reordering produces
a DAG that goes over our memory budget.

Bug: skia:10877
Change-Id: I13772b30e270eb546957b88586ded1cf42d2dbeb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397136
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-04-15 17:04:10 +00:00
Adlai Holler
e6f1d8c2df Add a reset method to SkTMultiMap
This will be used as part of GrResourceAllocator::reset which
is coming in a followup CL.

Bug: skia:10877
Change-Id: I16327dd7e470e996891795a443fa665dd58cd54e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397099
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2021-04-15 17:03:00 +00:00
Jim Van Verth
4d10e4566c Add more support for UAVs and SRV miplevel access
Change-Id: Iefb44f59041c31d45db5c89131f70d6c76376622
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396158
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-04-15 16:23:30 +00:00
Eric Boren
532b799173 [sk] Add documentation
Change-Id: Ibf8cad25af60f61541ebe064a27d235dceea442b
No-Try: true
Docs-Preview: https://skia.org/docs/dev/tools/sk?cl=397037
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397037
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2021-04-15 16:02:51 +00:00
Chris Dalton
333de882b6 Use fillPixelsWithLocalMatrix in SkBlurMaskFilterImpl::filterMaskGPU
Use fillPixelsWithLocalMatrix instead of drawRect.

Bug: skia:11396
Change-Id: Ibaf64a5c482747d78aa5905f9e561358adcb42f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396556
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-04-15 15:14:29 +00:00
Herb Derby
0b1228d53e put an arena on GrRenderTargetProxy
This is a reland of 5a2de5e72f

This is part one of two CLs. In this CL, I put a
sk_sp<GrArenas> on GrRenderTargetProxy where GrArenas wraps
a SkArenaAlloc to add ref counting. Creating
a GrOpsTask shares the GrArenas with the ops task. When an
GrOpsTask is destroyed, it nulls out the fArenas sk_sp on
the GrRenderTargetProxy to limit the life span of the arenas.

New plumbing was added to GR_DRAW_OP_TEST_DEFINE to allow a
proper GrSurfaceDrawContext to be passed to GrAtlasTextOp's
GR_DRAW_OP_TEST_DEFINE so the arena will have a proper lifetime.

The second CL will work on replacing GrOpsTask's fAllocators
system with the shared arena.

Change-Id: Ieb568e4533c17e31b3b015e7781365d7d898c483
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396818
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-04-15 14:37:59 +00:00
Brian Osman
cbb60bd0b0 Add runtime color filter and shader modes to the SkSL compiler
These enforce stricter rules about the signature of main, and each one
uses a separate pre-include module. That prevents color filters from
being able to reference sk_FragCoord (or coords passed to main) at all.
It also limits the versions of sample() that are exposed.

In the new world, an effect created for a specific stage of the Skia
pipeline can only be used to create instances of that stage (SkShader or
SkColorFilter). For now, SkRuntimeEffect::Make uses kRuntimeEffect,
which continues to be more lenient and allow creation of either shaders
or color filters from a single effect. After we migrate all clients, we
can deprecate and then delete that mode.

Bug: skia:11813
Change-Id: I0afd79a72beeec84da42c86146e8fcd8d0e4c09f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395716
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-15 13:30:59 +00:00
Mike Reed
be834bfa2c Fix up quotes and prototype decl from prev CL
Change-Id: I9546bef4d0bd1232aa1995b59e9a188198fcb75a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396819
Auto-Submit: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
2021-04-15 12:38:29 +00:00
skia-autoroll
804c6ad292 Roll SK Tool from 182db4e6cd1b to e65260dcb444
https://skia.googlesource.com/buildbot.git/+log/182db4e6cd1b..e65260dcb444

2021-04-14 lovisolo@google.com Update BUILD files with Gazelle.
2021-04-14 kjlubick@google.com [gold] Change how ignore rules are applied periodically
2021-04-14 jcgregorio@google.com [docsy] Remove noindex
2021-04-14 borenet@google.com [cipd] Fix inverted file filter logic

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

Tbr: jcgregorio@google.com
Change-Id: I455bf33886a972d05e4d044458d83f78ddc3a6da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397019
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 11:47:49 +00:00
skia-autoroll
3a3d457364 Roll Chromium from 576abd334c74 to b11e0710253c (429 revisions)
576abd334c..b11e071025

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

To 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: brianosman@google.com
Change-Id: Id2f806731689ad777537d8ec8b7b59b95887c3fb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396980
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 05:23:59 +00:00
skia-autoroll
0629f7a36b Roll ANGLE from 9e1ccb240f59 to 212849e9323a (5 revisions)
9e1ccb240f..212849e932

2021-04-14 gert.wollny@collabora.com Capture: store some array values as vector
2021-04-14 gert.wollny@collabora.com JsonSerializer: Sort group members before writing them out
2021-04-14 sugoi@google.com Allow Chromecast tests to run on SwANGLE
2021-04-14 lexa.knyazev@gmail.com Upgrade overlay fonts generator to Python 3
2021-04-14 jmadill@chromium.org infra: Remove osx_sdk cache.

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 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: brianosman@google.com
Change-Id: Ic18db9e1bbc151c92d8bb439743357f530826bef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396982
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 05:11:49 +00:00
skia-autoroll
82332858cc Roll Dawn from f7d01e07cd84 to e87ea2bedc8b (4 revisions)
https://dawn.googlesource.com/dawn.git/+log/f7d01e07cd84..e87ea2bedc8b

2021-04-14 bajones@chromium.org Update WGSL syntax for end2end tests
2021-04-14 bajones@chromium.org Fix new-style WGSL I/O with OpenGL backend
2021-04-14 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from ebc5bd4e28ea to f8313e5a6e13 (16 revisions)
2021-04-14 rharrison@chromium.org Support enabling/disabling toggles in unittests

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from ebc5bd4e28ea to f8313e5a6e13

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 alanbaker@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: alanbaker@google.com
Change-Id: Iccd957e5cb14d8f13903421bd9d9bf140a5519aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/397017
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 04:59:59 +00:00
skia-autoroll
0b7a8b27f2 Roll SwiftShader from b71a5569b879 to f32791f5d53b (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b71a5569b879..f32791f5d53b

2021-04-14 swiftshader.regress@gmail.com Regres: Update test lists @ b71a5569

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 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: brianosman@google.com
Change-Id: I416a673d2295221c8b04d87d6d58716f14bd1f44
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396981
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-15 04:59:49 +00:00
Greg Daniel
de4bbdb565 Move vulkan external commandbuffer logic from RT to GrVkFramebufer.
Bug: skia:11809
Change-Id: I7fa364f7472be35e02b06fa2f3fbb6d61a427f65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396156
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-04-14 21:42:58 +00:00
John Stiles
f1ce6faf29 Fix for loops with multiple init-variables in GLSL.
When a Block is detected in the for loop's init-statement, we now
synthesize a scope and write the init-statement directly above the for
loop and leave the for loop's init-stmt section empty.

Change-Id: I3e89c6a4328a79e49b8a19faae7975629cd0e152
Bug: skia:11860
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396820
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-04-14 21:40:19 +00:00
Chris Dalton
5c5f09bc28 Redirect fillRectWithEdgeAA to fillRectToRect when edgeAA==kAll
Bug: skia:11396
Change-Id: I37e7ed2902171bbf2d6d4aa9a7fd4047f1879758
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396297
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-04-14 21:15:38 +00:00
Chris Dalton
3e4ff84477 Revert GrOpsRenderPass::fUsesMSAASurface
Reverts all changes related to GrOpsRenderPass::fUsesMSAASurface.
These snuck in accidentally on a rebase and were not meant to land.

Change-Id: Idc0d7de6568eed69e705934f9b9d957edb2dd8fd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396724
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-04-14 21:15:18 +00:00
Mike Klein
b91382ef3e remove SkNx::rsqrt()
The instructions used to implement it don't deliever
the same results across processors, even on the same
architecture.

Bug: skia:11861
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I7831640fa6c0f01540619fce3f509c8969aaaaff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396722
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-04-14 20:54:08 +00:00
John Stiles
a36fa6636b Fix for loops with multiple init-variables in Metal.
This is structured differently than the GLSL fix, due to the different
semantics of array-types in Metal.

Change-Id: I27ad11539bbbb96abb0686d5686b8fcd2f5dd6d1
Bug: skia:11860
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396916
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-14 20:47:48 +00:00
John Stiles
c5d860877e Add unit test for for-loop with multiple variables.
We lacked test coverage for this case, and this was broken when compound
VarDeclarations were split from one Statement into several.

Change-Id: I561b4d8acc0bfa01161d873a0c022ec58e316903
Bug: skia:11860
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396817
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-04-14 20:23:35 +00:00
Brian Salomon
5a32828e5e No VS specialization for identity or scale/trans in reduced shader mode
Modifies helpers on GrGLSLGeometryProcessor that insert, set, and make
keys for view/local matrix uniforms to not omit the uniform when
the matrix is identity or use a float4 when it is scale/trans. Always
uses a 3x3.

Bug: skia:11844
Change-Id: I0f25b60b46b8932d7e2cac4a50159d22b9cd84d2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395656
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-14 20:09:09 +00:00
Mike Klein
940ec1ca0e remove unused SkNx::invert()
The instructions used to implement it don't deliever
the same results across processors, even on the same
architecture.

Bug: skia:11861
Change-Id: Ifb87fc04a4ec866f84d7c2f2472c7f4b65661d28
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396721
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-04-14 19:27:38 +00:00
Mike Reed
b3d14873d4 Demo different sampling options
Requested by blink team

Change-Id: I5b93c330341e8582bfc479bd830bb6dfa3489847
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396198
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-04-14 19:17:57 +00:00
Mike Reed
9983b1efd9 Expose drawGlyphs to CK
Precursor for https://skia-review.googlesource.com/c/skia/+/392837

Change-Id: I94cf555d3185e4e2689888a3ae2acf6f57a0fb65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396496
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-04-14 19:15:50 +00:00
Adlai Holler
8e2a8b202c Surface resource cache through cmdline flag
This lets us test out the memory-fallback code in the new
ops task reordering pathway on our bots.

Bug: skia:10877
Change-Id: Ic5662ef68e46b144eb2821687390c858d0056ba1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396157
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2021-04-14 18:49:48 +00:00
Stephen White
7bf4145094 Update Skia-Dawn for recent Dawn API changes.
Bug: skia:11855
Change-Id: Iccd1c8a382e3b43f6f51fa05a9352183d49fea66
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396196
Auto-Submit: Stephen White <senorblanco@chromium.org>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
2021-04-14 18:46:58 +00:00
Brian Salomon
354147a23c Replace GrConstColorProcessor with a runtime FP
Change-Id: Ie36ea4d5186f6cca341efc6300b813ec8255bdbb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/388457
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-14 18:40:18 +00:00
Herb Derby
3c1ed9cbe2 add bounds generation code to SkGlyphRun
Change-Id: I29c269bce86cb50fea57d44d7760b60326aa56a8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396436
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-04-14 18:05:18 +00:00
skia-autoroll
ec745c1818 Roll ANGLE from 68f1203d29c9 to 9e1ccb240f59 (9 revisions)
68f1203d29..9e1ccb240f

2021-04-14 jplate@google.com Workaround for missing include in OpenCL headers
2021-04-14 gert.wollny@collabora.com Capture: Fix storing strings instead of scalars
2021-04-14 syoussefi@chromium.org Revert "Roll vulkan-deps from c18d8cd5016c to a441440ae454 (23 revisions)"
2021-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c18d8cd5016c to a441440ae454 (23 revisions)
2021-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 77edad299907 to f32791f5d53b (3 revisions)
2021-04-14 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from cb430282a083 to 21426fd08f99 (209 revisions)
2021-04-14 cnorthrop@google.com Capture/Replay: Support non-binary GLboolean
2021-04-14 cnorthrop@google.com Capture/Replay: Support glGetQueryiv
2021-04-14 cnorthrop@google.com Capture/Replay: Support glBufferStorageEXT

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 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;skia/skia.primary:Build-Win-Clang-arm64-Debug-ANGLE
Tbr: brianosman@google.com
Test: Test: MEC for Dota Underlords
Change-Id: I263c528d83b301cd0a1a0bb346942eb118b0304d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396700
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 17:49:28 +00:00
skia-autoroll
e264ba393d Roll skcms from 411e27776f5c to 163066c2a041 (1 revision)
https://skia.googlesource.com/skcms.git/+log/411e27776f5c..163066c2a041

2021-04-14 mtklein@google.com B2A part 3, turn it on

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/skcms-skia-autoroll
Please CC brianosman@google.com,mtklein@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: luci.chromium.try:linux-blink-rel
Tbr: brianosman@google.com,mtklein@google.com
Change-Id: I629f77a5d49673edef2b1a67318fbcc45ac89225
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396720
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-14 17:17:58 +00:00