Commit Graph

54821 Commits

Author SHA1 Message Date
Brian Osman
22dcb5fd7e Add coords parameter to all .sksl test files used as runtime effects
Convert to use the newer MakeForShader factory, which requires this.

Change-Id: Ifaf6054054027c78f3f3fe15596e435e0f79b877
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399336
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-04-26 18:34:38 +00:00
John Stiles
0188b3422b Cleanup pass over UniformCTypeMapper::Get.
This function was inadvertently making a copy of the supported-type list
immediately before iterating over it. This was harmless but is a
significant amount of unnecessary work. (Fortunately it only occurs at
skslc time, so the performance hit was not user-facing.)

Since I was cleaning up the code anyway, converted search loops to use
range-based `for`.

Change-Id: I20727ea8dd19373db14fcd5d29ebe5a22b85b532
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400378
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-04-26 17:00:48 +00:00
Michael Ludwig
3e8ff3ef61 Fix vertex alpha when connector edges intersect inner edges
In the new GM, the left and right portions of the path have a shared
vertex. The two edges leaving that vertex vertically towards the bottom
of the image are nearly parallel but the right edge has a steeper slope.
This leads to two sources of self intersections. The outset vertices
for the left and right sides intersect, which converts some of those
edges into "connecting" edges and removes others (preventing double
hitting of pixels). However, these outset but now "connecting" edges
from the right side also overlap with the inset vertices of the left
shape, requiring additional vertex splitting and connecting edge
creation.

The old alpha logic when one of the intersecting edges was a connecting
edge was to use its interpolated alpha value. In this case, since the
connecting edge originated from two outset vertices, its end point
alphas were 0 and the split alpha became 0, even though the other
intersecting edge was an interior edge.

This CL flips the logic around and ensures that any split vertex that
is on the interior edges remains fully opaque, any vertex that is
fully on the exterior remains fully transparent, and anything else
uses the max of the interpolated alphas (equivalent to the old
logic when one edge was connecting and one was exterior, but is more
accurate if somehow we get two connecting edges intersecting).

Bug: skia:11859
Change-Id: I85d2d54a8833e3c9da2fdd1a4f3a0513119730b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400596
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-04-26 17:00:08 +00:00
John Stiles
119ad7329d Remove superfluous lines from DSL generated code.
The comma-warning issue has since been fixed, and we don't need to
use `(void) var;` when we have C++17's [[maybe_unused]] attribute.

Change-Id: I2078354f06801b024638e9c7d9ac699df20a8c48
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/401116
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-04-26 16:40:48 +00:00
Brian Osman
fbc06d831f Switch runtime effect fuzzer to use MakeForShader
New entry point that does stricter checking on SkSL validity.

Bug: skia:11813
Change-Id: Icc8501c108af278e2fe1029859a552ea6ab6eb08
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/401056
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-26 15:40:58 +00:00
John Stiles
e3fa745a5a Add support for atan() to DSL.
Change-Id: I00cc1e89fd85fdc0ce0860fcb35ececd0eaec50a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400540
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-26 15:18:18 +00:00
John Stiles
b9fc6e45c2 Support 'layout(when)' expressions in DSL C++.
This required some changes to how we name variables in DSL.
When-expressions are designed to expect a local C++ variable with the
same name as the layout key. This constraint means our DSLVar variables
CANNOT have the same name as the layout key. Now, all DSL variables are
given a prefix. We try to keep the code tidy by using just a leading
underscore as the prefix, where it's safe to do so. (The C++ naming
rules put some underscore-names out of bounds, but underscore followed
by a lowercase letter is safe.)

Change-Id: Iaa8878042329b9909096f05712d5cf636ea01822
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400623
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-04-26 15:17:38 +00:00
Brian Osman
56ed7daeca Use MakeForShader/ColorFilter in runtime effect tests
Bug: skia:11813
Change-Id: I9748a2806fe4636111fbb5740a3ebdb0814cfc35
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/401018
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-26 14:44:38 +00:00
John Stiles
08771b00eb Add DSLVar::swap method.
This gives DSLVar the ability to be set up after initial construction.
To do this, we create a plain empty Var, then swap it with the actual
Var we want afterwards. This allows DSL to support Vars which are
`uniform half4` in some cases and `const half4` (or entirely unused) in
other cases.

This technique was adapted from similar code in Ethan's parser CL.

Change-Id: Ic54d037a0102fda77b25d4755caf77a291eaa8c6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400716
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-04-26 14:28:48 +00:00
skia-autoroll
c36aae31a4 Roll SK Tool from c16eea521d3a to a714fd3486df
https://skia.googlesource.com/buildbot.git/+log/c16eea521d3a..a714fd3486df

2021-04-26 borenet@google.com [sk] Add tests for `try`

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 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: borenet@google.com
Change-Id: Ie24e70cde52d8f826c32f42ced525bdf738c2e63
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/401036
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-26 13:01:08 +00:00
skia-autoroll
adcf2ef54e Roll Chromium from c1593bf1225d to 162e27665cb1 (541 revisions)
c1593bf122..162e27665c

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

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: jcgregorio@google.com
Change-Id: I6d39cadd23cb2ed09a0b5949c6adc712e18e7d4e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400978
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-26 05:34:58 +00:00
skia-autoroll
7916734921 Roll ANGLE from 1800d1d92bca to 3182095f19bc (19 revisions)
1800d1d92b..3182095f19

2021-04-24 cnorthrop@google.com Tests: Add Higgs Domino Island trace
2021-04-24 lexa.knyazev@gmail.com Metal: update format caps
2021-04-24 timvp@google.com Capture/Replay: Reset GL Fence Sync objects
2021-04-23 jplate@google.com Disable OpenCL support by default
2021-04-23 jplate@google.com Add scrict type checking for reinterpret_cast
2021-04-23 cnorthrop@google.com Tests: Add Gardenscapes trace
2021-04-23 ynovikov@chromium.org Increase kMaxExtensionNames
2021-04-23 jmadill@chromium.org infra: Set MSVC builders to compile-only.
2021-04-23 cnorthrop@google.com Tests: Add Homescapes trace
2021-04-23 jmadill@chromium.org Revert "Remove 'six' from roll_chromium_deps."
2021-04-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 953728c7e200 to cf8ffbca555e (681 revisions)
2021-04-23 jmadill@chromium.org Revert "Temporarily remove 'errorprone_plugin' from roll_chromium_deps."
2021-04-23 m.maiya@samsung.com Vulkan: Update unsized array error
2021-04-23 ynovikov@chromium.org Temporarily remove 'errorprone_plugin' from roll_chromium_deps.
2021-04-23 hans@chromium.org [build] Turn off -Wdeprecated-copy warnings
2021-04-23 gert.wollny@collabora.com Capture/Replay:  Handle bindGeneratesResource in trace meta data
2021-04-23 gert.wollny@collabora.com Capture/Replay: Handle ClientArraysEnabled in trace meta data
2021-04-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 706897cbbf31 to 68b78a05fea2 (3 revisions)
2021-04-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from c597a8af03ef to 112faf441539 (1 revision)

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

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: jcgregorio@google.com
Test: Test: KHR-GLES32.core.texture_cube_map_array.texture_size_tesselation_con_sh
Test: Test: angle_perftests --gtest_filter="*gardenscapes*"
Test: Test: angle_perftests --gtest_filter="*higgs_domino_island*"
Test: Test: angle_perftests --gtest_filter="*homescapes*"
Change-Id: I590ddfcf77b56b71c945e652887d7b5873fe03d1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400977
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-26 04:52:28 +00:00
skia-autoroll
467103022f Roll Dawn from 02336e6f9993 to 221b8b06cc77 (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/02336e6f9993..221b8b06cc77

2021-04-24 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from ab215981fe11 to 12353bc5fd80 (3 revisions)
2021-04-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 05abdf5096fa to ab215981fe11 (5 revisions)
2021-04-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 145f865fb1cb to 05abdf5096fa (1 revision)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 145f865fb1cb to 12353bc5fd80

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 rharrison@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: rharrison@google.com
Change-Id: Id6ac50e9d401822b48871706e6b5db929158094f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400976
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-26 04:47:08 +00:00
skia-recreate-skps
8980b65c48 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: I20852e762a1fe39bd6eaed9a9b384a039788978a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400530
Reviewed-by: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2021-04-25 18:43:07 +00:00
Ravi Mistry
4df5672a5b Fix invalid SKP file names
Bug: skia:11897
Change-Id: Ie1130600eaa66bd733e19d81b7de31cb2727f408
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400876
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-04-25 14:17:27 +00:00
skia-autoroll
08ea025607 Roll SK Tool from 56306cbe458a to 45de31c865cf
https://skia.googlesource.com/buildbot.git/+log/56306cbe458a..45de31c865cf

2021-04-25 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 kjlubick@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: kjlubick@google.com
Change-Id: I89d057e74bd0d04bd2e7859e090dd8ccc5fc187d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400837
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-25 06:19:26 +00:00
Ravi Mistry
5d8a09ebff Add wait time to ebay pageset
Bug: skia:11898
Change-Id: I0bb58f1d8e9c6ad48148d50b840f152fc158f071
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400538
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-04-24 15:17:04 +00:00
Chris Dalton
d7872aca1d Don't test hw tessellation on dmsaa android
It looks like there are gold issues with hw tessellation on android.

TBR=bsalomon@google.com

Change-Id: I625d244f9d90f7ee6589aa610f7d45117cbaeed9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400528
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-04-24 04:30:34 +00:00
John Stiles
08c6608907 Append f suffix to float literals in DSL C++.
This prevents some ambiguous-expression errors (since we were passing a
`double` typed value into places that only took an `int` or `float`).

(The ambiguous-expression errors were later fixed in
http://review.skia.org/400619, but it's still the right thing to do for
DSL C++ to emit floats.)

Change-Id: I052c9919a9f00cb427dd152722d2f7c370f3f3b4
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400616
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-23 23:15:54 +00:00
John Stiles
1dcf46359c Fix sk_Caps support in DSL C++ code generator.
This was almost right, but was missing the trailing () to make a
function call.

Change-Id: I1215a97bb0ac39aceca8ff6bea70af8ff572ef84
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400541
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-04-23 22:20:13 +00:00
Chris Dalton
710e1c9226 Implement dynamic MSAA on OpenGL
This is an initial attempt. We use a few coverage ops that haven't
been updated to handle MSAA yet, and other times we trigger MSAA when
we shouldn't, but it sets the basic functionality in place.

Bug: skia:11396
Change-Id: I8acfe4283bccf5543d4b774692e39427142b3228
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/395996
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-04-23 21:50:03 +00:00
Adlai Holler
b0ada77326 Remove drop-work-before-color-clear while we fix a bug
The current way that we handle merging-with-color-clear ops
tasks has a bug. For the time being, just leave them in and
accept the wasted work. A real fix is on the way.

Bug: skia:11903
Change-Id: I0e2b60a3f9a10be1010b41f905a879b65e9172a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400620
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
2021-04-23 21:48:33 +00:00
Michael Ludwig
48f106501c Reland "Stop using copying SkPath::Iter for convexity and contains checks"
This reverts commit 29c06bc82a.

Reason for revert: Convexicator::BySign did not handle count <= 3, which
it previously never encountered because a path with leading moveTos
would actually turn into a sequence of moveTo+close by the forceClose
SkPath::Iter so it'd never actually skip anything.

I updated the code so that BySign checks for count <= 3 after we've
skipped leading moveTos. This means computeConvexity's logic can get
a little simpler, just checking isFinite(), calling into BySign, and
then going into the second pass. Previously, it skipped the first pass
if pointCount <= 3 (using the pointCount before leading moveTos were
skipped).

Lastly, I removed SkPathPriv::IsConvex. It was the other user of
BySign but it was only used in PathTest. I figured it's best to have
a single source of convexity definition rather than having two code
paths that both need to implement the same two-pass behavior.

Original change's description:
> Revert "Stop using copying SkPath::Iter for convexity and contains checks"
>
> This reverts commit 3752760157.
>
> Reason for revert: asan failures
>
> Original change's description:
> > Stop using copying SkPath::Iter for convexity and contains checks
> >
> > This also ensures that consecutive moveTos at the start and end of the
> > path do not affect convexity, and updates AutoBoundsUpdate respects
> > that as well.
> >
> > Bug: 1187385
> > Change-Id: I9d9d7ab7f268003ff12e46873d7b98d993db47fe
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396056
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Mike Reed <reed@google.com>
>
> TBR=csmartdalton@google.com,reed@google.com,michaelludwig@google.com
>
> Change-Id: I46aaca9c709be7124fc3933f5d02f20f5d2b42ea
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 1187385
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399376
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

# Not skipping CQ checks because this is a reland.

Bug: 1187385
Change-Id: I21159915839911225440c2f65da9bbbd22b77ab3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399377
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-04-23 20:44:33 +00:00
Greg Daniel
1034425bc1 Move cached input descriptor to attachment and off GrVkRenderTarget.
Now each attachment tracks the input descriptor needed for iteself.
There are actaully two input descriptors, one for blending and one for
msaa loading. Annoyingly the only difference between the two is the
layout of the attachment, but there isn't much we can do there.

Bug: skia:11809
Change-Id: Iacd1148d3fe0a95a95afeb5aebb2af9a674e643e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399776
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-04-23 20:12:34 +00:00
Chris Dalton
e0fe23a65e Add a second stencil attachment to GrRenderTarget for dmsaa
As we move toward dmsaa, we need stencil attachments on the single and
multisample attachments both. This is only a temporary solution until
the new surface world is finished.

Bug: skia:11396
Change-Id: I48928343e1fc9fd2e00362a534be9eb3ade92656
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399838
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-04-23 20:01:03 +00:00
Brian Salomon
9a0da785a5 Restore code that sets preserve stencil when breaking up SDC into
multiple opstasks.

Accidentally removed in:
https://skia-review.googlesource.com/c/skia/+/341680

Change-Id: Ic526c4ab0043c91c0446df679bfff46c00e861af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400536
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-04-23 19:38:13 +00:00
John Stiles
3befaf23a9 Fix overzealous destruction of DSL FP VarDeclarations.
Previously, if a DSL-based FP attempted to sample from another DSL-based
FP, all VarDeclarations for both FPs would be erased as soon as the
inner FP called EndFragmentProcessor. We now use the DSL stack to save
and restore the VarDeclarations array when FPs are nested.

Change-Id: I7481d89ac62ca6cdc6fc828ffdc61d6a36affbdc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400539
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-23 19:37:33 +00:00
John Stiles
56bc148786 Remove fSupportsTracking flag from UniformCTypeMapper.
This flag was always set to true for every type.

Change-Id: Icbbe9a3c49adf0c49e6d912f978560b178eb633c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400176
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-04-23 19:27:03 +00:00
John Stiles
c5fac47133 Simplify implementation of eval_template.
This is only used for offline compilation (in skslc), and is not on a
critical path. An easy-to-understand, reasonably efficient algorithm is
preferable to a slightly more efficient, harder-to-understand algorithm.

Change-Id: If46403a43d5198f02eeaee45ef5d304b66f3de72
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400099
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-04-23 19:26:23 +00:00
Chris Dalton
92934d7528 Don't use dmsaa for blurs yet
DMSAA is still very experimental. It doesn't draw everything entirely
correctly yet and uses more memory than it should. We should only be
enabling it right now with an explicit opt-in.

Bug: skia:11396
Change-Id: Ib552bfa551ac419d50ea1fdad3043cf20328f247
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400456
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-04-23 17:56:33 +00:00
Hans Wennborg
7bbe365b7b Don't include the intrinsics headers in SkFloatingPoint.h
They're only used for the legacy implementation of sk_float_rsqrt,
which is going away.

SkFloatingPoint.h is part of ca 10,000 translation units when building
Chrome, and include graph analysis shows that including xmmintrin.h
adds a total of 3.5 GB to the build.

Avoiding these includes shaves ca 7 CPU-minutes off a local Chrome
build.

Bug: skia:11861 chromium:242216
Change-Id: Ib0fd53c4fb3ae254814fb6ae5afbb298efb0eb83
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400437
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2021-04-23 17:30:13 +00:00
Joe Gregorio
796501e451 Remove pixelbook devices.
Our only Debian9 builder left after this is for flutter.

Bug: skia:11876
Change-Id: I34cef8f31dac83347f2af1955dfde5346decc7a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399472
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2021-04-23 17:09:53 +00:00
Kevin Lubick
600bc360ff [infra] update iOS profile
Change-Id: I283ef69f928d6e3532fecf3504b9e2966e5654e2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399737
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-04-23 17:04:00 +00:00
John Stiles
4680db675f Disable switch test on Adreno to work around GLSL driver bugs.
The Adreno driver seems to have a bug involving switch statements that
use fallthrough and/or have early returns.

Change-Id: I4a0e36dda5d30621e4c7119cdf9de0f478bc9d8d
Bug: skia:11891
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400396
Commit-Queue: John Stiles <johnstiles@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2021-04-23 15:01:03 +00:00
Florin Malita
a3ce568b27 [androidkit] Add Surface.flushAndSubmit()
This is a no-op for the current/raster backend, but will be implemented
for GPU.

Change-Id: Id2ff4fe3b254b0d1730c2cb931737c372edbcf7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400096
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
2021-04-23 14:39:23 +00:00
Florin Malita
05bb5a8b30 [androidkit] Introduce RuntimeShader
- opaque Shader class to act as a Java SkShader wrapper
 - shader slot on Paint
 - RuntimeShaderBuilder utility to enable the same use pattern as native
   Skia:

  RuntimeShaderBuilder builder(sksl_string);
  builder.setUniform("foo", 1);
  builder.setUniform("bar", 2);
  paint.setShader(builder.makeShader());

or, more fluent:

  paint.setShader(
      RuntimeShaderBuilder(sksl_string)
          .setUniform("foo", 1)
          .setUniform("bar", 2)
          .makeShader());


Change-Id: I7cd241a2f64bc54dcae2175ed35040edf6506ed3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399736
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-04-23 14:38:36 +00:00
Ravi Mistry
f4f8d92b9b Generate and use Flutter's SKPs in RecreateSKPs bot
Bug: skia:11897
Change-Id: Ia937bfc5f86daea9d39b2d6f398dc093ba3146f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400098
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2021-04-23 14:19:53 +00:00
Kevin Lubick
7978abafee [canvaskit] Deploy 0.26.0
Change-Id: I162e82824e1447409f5dbe7e32ec892f28e1cbf5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400296
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2021-04-23 12:44:52 +00:00
Joe Gregorio
7b8f14991d Add Acer Spin 514 ChromeOS devices to the tree.
Bug: skia:11876
Change-Id: Ic95dc6d9bc04117c4fc7f88d6eb6acceb5bbe58d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399501
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
2021-04-23 12:23:36 +00:00
skia-autoroll
94d3dd82f3 Roll Chromium from faf3e3230d75 to c1593bf1225d (506 revisions)
faf3e3230d..c1593bf122

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 jvanverth@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: jvanverth@google.com
Change-Id: I942846fc9bd866cba407c4590423e0283a8bf3e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400153
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-23 05:22:03 +00:00
skia-autoroll
b1895414a4 Roll ANGLE from e0e5eb8480ab to 1800d1d92bca (10 revisions)
e0e5eb8480..1800d1d92b

2021-04-22 cnorthrop@google.com Tests: Add Ludo King trace
2021-04-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from e5bb9b56c292 to 706897cbbf31 (11 revisions)
2021-04-22 geofflang@chromium.org D3D11: Disable CompositorNativeWindow11 in Chromium builds.
2021-04-22 jplate@google.com Updated OpenCL headers
2021-04-22 jplate@google.com Generate empty CL object classes
2021-04-22 lexa.knyazev@gmail.com Align BPTC format names in angle::FormatID
2021-04-22 geofflang@google.com Reland "Add a Vulkan feature to compress float32 vertex formats."
2021-04-22 jmadill@chromium.org Update standalone Android docs.
2021-04-22 jmadill@chromium.org Update Android-releated tools DEPS.
2021-04-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 2e3165386670 to 953728c7e200 (354 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 jvanverth@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: jvanverth@google.com
Test: Test: angle_perftests --gtest_filter="*ludo_king*"
Change-Id: I04372f1f7fcf0ff1ebb654f90e728709a95867ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400155
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-23 05:12:33 +00:00
skia-autoroll
e6613d1ef8 Roll Dawn from 8091c6845079 to 02336e6f9993 (20 revisions)
https://dawn.googlesource.com/dawn.git/+log/8091c6845079..02336e6f9993

2021-04-23 cjj19970505@live.cn Add UWP support
2021-04-23 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 26fa9927e8c3 to 145f865fb1cb (2 revisions)
2021-04-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 943ded79d2b1 to 26fa9927e8c3 (7 revisions)
2021-04-22 hob@chromium.org Add helper functions to iterate over ChainedStructs
2021-04-22 rharrison@chromium.org Add header for std::forward
2021-04-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from d5ceafee1684 to 943ded79d2b1 (1 revision)
2021-04-22 hao.x.li@intel.com Clear resolve buffer to 0 for resolving unavailable queries
2021-04-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 98c2cf0e9194 to d5ceafee1684 (6 revisions)
2021-04-21 bclayton@google.com unittests: Add a position return value for vertex shaders
2021-04-21 cwallez@chromium.org Add docs/contributing.md
2021-04-21 cwallez@chromium.org WGSL: Replace last uses of var<in> and var<out>
2021-04-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from c0810e7e6eba to 98c2cf0e9194 (4 revisions)
2021-04-21 cwallez@chromium.org client::Buffer: In debug mode, clobber mMappedData when it is freed
2021-04-21 jiawei.shao@intel.com D3D12: Initialize DXC in Device::Initialize()
2021-04-21 cjj19970505@live.cn Add string to wstring conversion helper and related unittest
2021-04-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 5b3d88b748e4 to c0810e7e6eba (2 revisions)
2021-04-21 rharrison@chromium.org Fix MinBufferSizeDefaultLayoutTests.RenderPassConsidersBothStages
2021-04-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from b69660733875 to 5b3d88b748e4 (26 revisions)
2021-04-20 enga@chromium.org SlabAllocator: Fix writing to freed memory on slab destruction
2021-04-20 bclayton@google.com Re-add const to TranslateToHLSLWithTint()

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from b69660733875 to 145f865fb1cb

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 rharrison@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: skia:10501
Tbr: rharrison@google.com
Change-Id: I48ad838cfa3473fcc205937746bd1669eef35dc9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400154
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-23 05:11:23 +00:00
skia-autoroll
7b60deedbd Roll SwiftShader from c597a8af03ef to 112faf441539 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/c597a8af03ef..112faf441539

2021-04-22 capn@google.com Format switch statements consistently

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 jvanverth@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: jvanverth@google.com
Change-Id: I65a989baf6a8ebcee6f626a3cbbd87a02a0963af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400152
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-04-23 04:50:23 +00:00
Mike Klein
395274e664 stop using rcp/rsqrt in SkRasterPipeline
Bug: skia:11861
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I9d9e7a9ee81bef54cea3c5be3952f577ddad35a6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399798
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-04-22 22:42:23 +00:00
John Stiles
db21d93ac6 Fix DSL C++ code generation when FP variable names overlap.
DSL requires all of its variables to exist at the topmost scope, since
its inner "scopes" are not actual C++ scopes, but Block() statements.
This means that code like this:

   if (something) {
      int var;
   } else {
      int var;
   }

Must declare both `var` objects at the top level. We now detect variable
names that overlap, and prepend a number to disambiguate them. In this
case, the second `var` here would be renamed to `_0_var`. Since this
scheme follows the mangler's naming pattern, these names coexist nicely
with the inliner (avoiding double-mangling in the final output).

Change-Id: I22fa9b856ea9cdc3f7eae96c9d91ad9dcc16b186
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399417
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-22 21:59:42 +00:00
John Stiles
83b0c830c6 Add support for built-in functions to DSLCPPCodeGenerator.
Change-Id: Idf65ff46cd75d23f550c8e763cf3618ec7501b38
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/398877
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-22 21:56:22 +00:00
Mike Klein
f0e564f43d remove sk_float_rsqrt()
The instructions used to implement it don't deliever
the same results across processors, even on the same
architecture.

Minor diffs on lighting image filter GMs;
this will likely require staged rollout.

Bug: skia:11861
Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I4c0b0eab221a051f863f4949051f50652466651e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396723
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-04-22 21:32:23 +00:00
Herb Derby
40f45d6c8f create ops directly for drawGlyphs, etc.
If there is no SkTextBlob associated with the glyphRunList,
then there is no possibility for reuse. Don't create a
GrTextBlob, and don't consult the cache. Just build the
GrAtlasTextOp directly.

Change-Id: I2dbdb2a01ef62c1bdaa1010796b4d58a9b455640
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399896
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-04-22 21:20:23 +00:00
John Stiles
d85d720800 Add support for sample() to DSLCPPCodeGenerator.
This CL also removes some vestiges of the kSampler type, which hasn't
been used in .fp files for a long time.

Change-Id: Iaca1d0c6e77ad2df2b6c5dacd1c68079d6dd5cf2
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/398738
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-04-22 21:13:13 +00:00
John Stiles
abde8fc182 Enable DSL FP tests.
These new tests rely on compiled shaders that live in the
`tests/sksl/dslfp/` directory; this CL updates the Bazel and
emscripten build scripts to include these shaders.

Change-Id: Ib670682af8bf451a4473504dd4cc76a0e9222129
Bug: skia:11854
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/400097
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-04-22 21:03:43 +00:00