Commit Graph

53777 Commits

Author SHA1 Message Date
Chris Dalton
6165526d45 Fix a bug that threw away tessellation edges on bowties
Change-Id: Ic6a2b89bea3923b7e0f4016dbbf9144095e1420e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374819
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-02-24 20:58:25 +00:00
Mike Klein
1d766830ba remove 'debugging' step
This can take a few minutes, a fair chunk of some runs.

E.g. https://ci.chromium.org/raw/build/logs.chromium.org/skia/51ee56ccc7f9ba11/+/annotations

    debugging  2m32s   (17%)
  + dm        11m17s   (77%)
  + other        54s   ( 6%)
  = total     14m43s

should become more like

    dm        11m17s   (93%)
  + other        54s   ( 7%)
  = total     12m11s

Change-Id: I8bdbc280f5d581d98b08e471613401eee507064e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375184
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-24 20:56:21 +00:00
Brian Osman
d010f659bb Trace shader compilation for clients other than Android framework
We had added detailed events specifically when running in Android
framework, but other clients (eg, Flutter) would like these, too.

To keep the same semantics in Android, added a new _ALWAYS variant
of TRACE_EVENT0. It works like TRACE_EVENT0, but has the _ALWAYS
semantics in Android.

Bug: skia:11360
Change-Id: I13fd77445e0d2a05e46b75629b37bab5f571b02e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375018
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-02-24 20:08:14 +00:00
Mike Klein
c3231789e2 retry fast adb push
This time, push host/* instead of host/.  This cuts the time it takes to
push resources from ~11m to ~8s on Android One phones.

I tried ignoring version files and blindly pushing packages, but in the
end kept the version files for compatibility with bots running at head
(or after this lands, bisecting bots), and those version files still do
save a good chunk of time.  In PS12 I faked version file mismatch and it
took ~2m extra to push all the packages back.

I also tried but got nervous about --sync so I've left it for a follow
up.  It's not clear that we can rely on it for packages where files will
be removed, but it's probably fine for resources/ if we want to go
faster than 8s.

Change-Id: I84de90f13177393e4d8a599ef880545538b6af81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375076
Reviewed-by: Eric Boren <borenet@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-24 20:04:04 +00:00
John Stiles
c1a98b8736 Move shader caps into SkSL context.
Previously these existed in each Program, but they are unchanging for
the lifetime of the Compiler. Also, their presence in the Context will
allow the SkSL::Setting class to access them outside of the IRGenerator.

Also, removed some code which allowed the IRGenerator to support null
shader-caps; this never actually happens. (The Compiler asserts that
they are non-null; the GLSL code generator uses the caps bits without a
null check, etc.)

Change-Id: Id58743a0c2ac068cb60ec35648b4f758bf28bbe3
Bug: skia:11365, skia:11319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375067
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-24 20:00:54 +00:00
Brian Salomon
d00d351387 Fewer operations in GrAARectEffect.
Change-Id: I57880b69302bab70be8e45d80387bcce052cf989
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374599
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-02-24 19:59:04 +00:00
Ben Wagner
5d9c20ecc9 Make TextBlob 'Text' allocators public.
This will allow users to create PDFs with the actual text embedded. This
will allow for correct search and copy operations on the generated PDF.

Since these are now public, SkTextBlobBuilderPriv is no longer needed
and is removed. For consistency, the allocRunRSXform overload is renamed
to allocRunTextRSXform.

Change-Id: I44be82d9038a433e1221d5cbfd8ed113ecb6d4fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375017
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-02-24 18:48:44 +00:00
Herb Derby
215104efea pull out calculation of SDF ops parameters
Change-Id: Ifc3909a93ae036fc8f851cf0a8ea9cc65b688b34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375064
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-24 18:31:34 +00:00
John Stiles
0c7312a469 Add program-setting to disable control-flow analysis.
Change-Id: I22b602568c2031c54d33f6b1634f7fa76aab982a
Bug: skia:11365, skia:11319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375062
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-02-24 17:45:54 +00:00
Eric Boren
03521cbe13 [infra] Change git_utils.NewGitRepo to use the default "git clone" dir
Change-Id: I616d2a119886d04e2b21499aece3e042226f6f3f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375057
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2021-02-24 17:43:04 +00:00
Herb Derby
72917e4529 return void* instead of char* from alignedBytes
Not as many casts needed to use this.

Change-Id: I871b5f3f9658d349d08d396f2cb8ec5498c3b50b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375061
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-02-24 17:23:54 +00:00
Herb Derby
9553a57ad4 make adding a text blob to GrTextBlobCache thread safe
Change-Id: I18d3b05e4913114e44905a6020baca90bf437320
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375056
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-24 17:17:04 +00:00
Ben Wagner
0baacb50bc Remove lang parameter from TextBlob alloc methods.
The 'lang' was never stored or used, so this makes no current practical
difference. The original intent was to be able to specify a language so
that it could be emitted as a 'Lang' override in the 'ActualText' when
generating a PDF. However, due to the way 'ActualText' is generally used
this would be impractical. If there is ever a desire to mark up sections
of the PDF with a specific language it would be better handled in a
different way.

Change-Id: Id63596190235fc45ce17249b9b578b6f9b838b2b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375060
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-02-24 17:08:04 +00:00
Brian Salomon
80313c85e0 Go back to using coverage FP in aarecteffect/convexpoly GMs.
Drawing these with a color FP using fillRectWithFP made them harder
to triage.

TBR: michaelludwig@google.com
Change-Id: I97f181e861c1c24bb2224f00901eb470d868f3c4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375059
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-02-24 16:32:04 +00:00
Brian Osman
a77ed8b382 Add flags for all layout qualifiers, check for duplicates
Now, even if a qualifier has a default value, we will know that it
appeared in the text. We can use that to check for redundant qualifiers
(as is being done here), and in the IR generator to prevent any use of
certain qualifiers, depending on context. (eg, runtime effects, wrong
shader stage, on a parameter declaration, etc.)

Bug: skia:11301
Change-Id: I2cd6ad35c2b4c4d6f87ade97e80aea84dc16ee4b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374616
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-02-24 16:22:26 +00:00
Herb Derby
70cd6d1446 make producing GrTextBlob sub runs thread safe
Change-Id: Ie16e41fa6cef2d06d1e6e82036524dd5ad06b1ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375036
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-02-24 15:51:54 +00:00
Brian Salomon
e40e69f3a4 Allow use/generation of MIP maps with YUVA images and strict subsets.
Strict subsetting is odd to mix with MIP maps, but we allow it for
all other images. At least be consistent. Long term we should remove
this feature and require users to make a subset image with it's own
MIP levels if they want to strictness + MIPs.

Bug: skia:10481
Change-Id: Ia12b60ef8d65a10bdf32f713daf77c366949ac26
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374598
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-02-24 15:10:49 +00:00
Michael Ludwig
47b400bf7d Rename SkPaintImageFilter to SkShaderImageFilter
Bug: skia:11230
Change-Id: I4a90191d858265e60a817aa04c3e1aacf345a7f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371965
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-24 14:52:21 +00:00
John Stiles
cbd65754f2 Revert "Performance experiment: Disable SkSL optimization in nanobench/skpbench"
This reverts commit b34a896c12.

Reason for revert: experiment is complete

Original change's description:
> Performance experiment: Disable SkSL optimization in nanobench/skpbench
>
> Cloned from http://review.skia.org/369716
> Re-running the experiment now that @switch is supported when
> optimizations are disabled.
>
> Change-Id: I428051d9c679a8084589fba428a637f36587be16
> Bug: skia:11341
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374516
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,brianosman@google.com,johnstiles@google.com

Change-Id: I1e91c55538ef35f413f2c41c83df9d9c0f29d9a1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:11341
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/375016
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-02-24 14:14:26 +00:00
Brian Osman
ba7ef32832 SkSL: Simplify layout(key)
We had support for layout(key=identity), which added a bit to the key
depending on whether or not a matrix variable was identity. That feature
was unused - now 'key' is just a flag, rather than a separate enum.

Change-Id: I691a0b3683610f55e5d020b9cd6d9e414690bee6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374416
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-02-24 14:02:34 +00:00
Herb Derby
743c697007 make GrTextBlob::canReuse const
Change-Id: I27b18e63f9f1ff4ae6ada70a7cf781d6e29c9108
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374356
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-24 13:49:14 +00:00
Mike Klein
b21bc6e8e9 Revert "Temporary fix for bad data pushed to Android test devices"
This reverts commit 9de609c874.

Reason for revert: been long enough?

Original change's description:
> Temporary fix for bad data pushed to Android test devices
>
> A change to Android asset deployment left some devices with bad data
> (but correct _VERSION files). Unless we force-push assets, test runs
> will continue to fail.
>
> Once all devices have had their assets re-pushed (and any bisection
> into the offending time period is concluded), we can revert this CL.
>
> Change-Id: Ibbfe48409b99e8313186dde1dc0cc3cfb5061d4c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/372457
> Reviewed-by: Eric Boren <borenet@google.com>
> Reviewed-by: Mike Klein <mtklein@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I3a53f2da59bb947d7579a63359e0d2c349c4ce36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374637
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2021-02-24 13:36:44 +00:00
skia-autoroll
df4b22d54a Roll ANGLE from 1a70e5a04584 to 39d7fc187554 (12 revisions)
1a70e5a045..39d7fc1875

2021-02-24 syoussefi@chromium.org Vulkan: Don't break the render pass on dispatch calls
2021-02-23 syoussefi@chromium.org Remove incorrect memory barrier tests
2021-02-23 lubosz.sarnecki@collabora.com Add Collabora, Ltd. to AUTHORS and CONTRIBUTORS
2021-02-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 1a524349f06b to 9cdde06fb38a (1 revision)
2021-02-23 syoussefi@chromium.org Assert valid when using SPIR-V ids
2021-02-23 lubosz.sarnecki@collabora.com capture_replay_tests: Fix repository path retrieval.
2021-02-23 lubosz.sarnecki@collabora.com Generators: Use fixed year in license headers.
2021-02-23 ynovikov@chromium.org Remove old Win x64 bots from CQ
2021-02-23 jmadill@chromium.org Clean up entry point generation script.
2021-02-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from d85a7a27b272 to 22186f076bf3 (4 revisions)
2021-02-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from a075fac2c633 to 1a524349f06b (4 revisions)
2021-02-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from fa63f1264116 to d163fd7c6905 (388 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 fmalita@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: fmalita@google.com
Change-Id: I2b8e809416eb737eda333856eb67acca5dd2ef15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374674
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-24 09:47:54 +00:00
Chris Dalton
7c0200a8e2 Move cubic cusp existence test into GrStrokeHardwareTessellator.cpp
GrStrokeHardwareTessellator is the only user that needs to simply
check if a cusp exists at all. Making the check local speeds up the
microbench from 502us -> 392.

Bug: chromium:1172543
Change-Id: I52adf9ef0a66e1267435e6ce41f01ee1eda17d7a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/373744
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-02-24 08:24:53 +00:00
skia-autoroll
68c43dbc5f Roll skcms from 4a4ff5bbefdf to 4e5402c56973 (3 revisions)
https://skia.googlesource.com/skcms.git/+log/4a4ff5bbefdf..4e5402c56973

2021-02-23 mtklein@google.com skcms build updates
2021-02-23 mtklein@google.com roll xcode to 12.4
2021-02-23 borenet@google.com [infra] Switch from isolate to RBE-CAS

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 fmalita@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: fmalita@google.com,mtklein@google.com
Change-Id: If379427bdf8e5fdc88479b32529b9f8569390f2f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374578
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-24 07:02:54 +00:00
Herb Derby
6b27ae8db4 make GrTextBlob::subRunList() const
Change-Id: I02ffb7c09b1b1507700d618451a64bf89dd6953f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374357
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-24 05:09:34 +00:00
Ben Wagner
9a7fcf7eda Scale Viewer status by backing scale.
The Viewer status box 's' is quite small on high resolution displays.
The 'u' key doubles its size and has been used as a work-around, but
let the status box scale take the backing scale into account.

Change-Id: I98db37a4ed86698ba7c02666478dff248ff6daae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374377
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-02-24 03:42:04 +00:00
Herb Derby
6d2b7688f6 remove GrTextBlob::setMinAndMaxScale from API
Change-Id: I7940fc31c7504e651cc1d035c662e4c1a403574e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374358
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-24 02:17:33 +00:00
Chris Dalton
ad7a55fc58 Don't block GrTessellationPathRenderer when hw tessellation support exists
Bug: chromium:1172543
Change-Id: I81ec979104266ca34f53f4b6006fb58d8904bc92
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374338
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-02-24 02:15:33 +00:00
Brian Osman
4717fbbc38 Remove GL image support from SkSL
This was added to Ganesh briefly in 2016 for an experiment, then
reverted, and never used.

Change-Id: I65849aff53acc14f9adc7585398fd09363a4ed65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374376
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-02-24 00:51:53 +00:00
Michael Ludwig
5ef07a4097 Remove deprecated offset filter header
Bug: skia:11230
Change-Id: I509a20b1b1ffa17b125289f9619692638a13a621
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/371964
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-24 00:34:30 +00:00
Herb Derby
d15c52d233 make GrTextBlob::addMultiMaskFormat private
Change-Id: Ie3592487d18a719f5ca6a226c971e30c2c01c139
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374359
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-02-23 22:30:14 +00:00
John Stiles
b34a896c12 Performance experiment: Disable SkSL optimization in nanobench/skpbench
Cloned from http://review.skia.org/369716
Re-running the experiment now that @switch is supported when
optimizations are disabled.

Change-Id: I428051d9c679a8084589fba428a637f36587be16
Bug: skia:11341
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374516
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2021-02-23 22:21:30 +00:00
Mike Reed
8f8e7335a5 Flutter does use legacy image.makeShader()
Bug: skia:7650
Change-Id: I779944e25b8ca241a60f2c2880c95460b5f20545
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374596
Reviewed-by: Mike Reed <reed@google.com>
2021-02-23 22:01:49 +00:00
Brian Salomon
066f411b2a Remove GrConvexPolyEffect::Make() that takes SkRect, use GrAARectEffect.
Also split out the rect test cases from convex_poly_effect into their
own GM that uses GrAARectEffect directly.

Make GrAARectEffect assert that the rect used is sorted and don't copy
inverted rect test cases to the new GM

Change-Id: Ida9847390af27ac2317d324a98bd11cc904f0e6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374121
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-02-23 21:41:21 +00:00
John Stiles
642cde289d Optimize @switch statements in SwitchStatement::Make.
At IR generation time, this CL limits our optimizations to only
@switch statements. A regular switch statement will only be optimized
during the optimization phase even if the switch-value is a known
compile-time constant. This is done to avoid upsetting our reachability
analysis.

Most of this CL is moving existing logic from SkSLCompiler into
SkSLAnalysis and SkSLSwitchStatement. Although the diffs look large, the
actual changes are very small.

Change-Id: I90920f41bc386dfa7a980ae7510f6681231a5120
Bug: skia:11340, skia:11342, skia:11319
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/372679
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-02-23 21:36:04 +00:00
Adlai Holler
ea8d1971b8 Add a fuzzer for DDL threading
This helps us find any issues with the promise image sharing.

Bug: skia:10286
Change-Id: I393655c2de76f896d9f376765894f84c015b2760
Cq-Include-Trybots: luci.skia.skia.primary:Fuzz-Debian10-Clang
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374317
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2021-02-23 21:33:31 +00:00
Brian Salomon
17f95b1a25 Store GrGLSLFragmentProcessor arrays in std::vector
Bug: b/180759848
Bug: skia:11358

Change-Id: I5fd5eac4ac5bd70ea2c86c353152e5d1f0bc4c4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/373777
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-02-23 20:55:51 +00:00
Brian Osman
4a015c5092 Require initializers on const variable declarations
Bug: skia:10837
Change-Id: I33da2eb1e723ed04ab62d65c21e54306dd362bed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/372677
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-02-23 20:55:01 +00:00
Mike Klein
4d68c244a7 refactor high-contrast filter
Rewrite as one cacheable runtime effect with uniforms paralleling
SkHighContrastConfig.  This is mostly for style, in the sense of
readability but also how I'd recommend writing these effects generally:
one program body controlled by uniforms.  Callers needing specialization
can write their own effect (or use our TBD uniform->constant facility).

Test isAlphaUnchanged(), and make it so by not saturating c.a.

MaliT880 was producing seriously bad results until I switched to mix().

Change-Id: Ia4cfef25fe26643f6832a5fa0843b28dafc5b284
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/372295
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2021-02-23 20:22:07 +00:00
Ethan Nicholas
63f75fc1b6 SkSL DSL function objects are now callable
Change-Id: I10d561eec456a7917681d7bdf0b1bd2f5ee5ad5f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374217
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-02-23 20:06:18 +00:00
Brian Salomon
e666254f0f Remove SkImage_Base::peekProxy.
This is the only place we provide a proxy from a SkImage other than
asView() and is only used in one place in the library. Add a utility
function to replace uses in tests based on asView().

Bug: skia:11208
Change-Id: Ica6eae6e5f153f208523331566acc0360925a20e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/373617
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-02-23 19:59:31 +00:00
skia-autoroll
ad2fa06f2b Roll skcms from 8247d3c2481b to 4a4ff5bbefdf (1 revision)
https://skia.googlesource.com/skcms.git/+log/8247d3c2481b..4a4ff5bbefdf

2021-02-23 mtklein@google.com update emscripten/node

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 fmalita@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: fmalita@google.com,mtklein@google.com
Change-Id: I94c570f0581f8fbcaeed8836c70f7b3c1e868a29
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374196
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-02-23 19:43:51 +00:00
Brian Salomon
18ab2030e3 Make GrGLSLFragmentProcessors be created as std::unique_ptr.
Rename factory function from createGLSLInstance() to makeProgramImpl()

Bug: b/180759848
Bug: skia:11358
Change-Id: I095bdf1f26db5a8192fa8ab59000db4a1d561d96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/373738
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-02-23 19:31:01 +00:00
John Stiles
56566c68aa Remove obsolete test outputs.
The test inputs were removed at http://review.skia.org/360778

Change-Id: Ib2918f3f984cd80463bacb822ef510ee9feb1e77
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/373916
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-02-23 19:17:51 +00:00
John Stiles
e1d1b08203 Migrate convertSwitch to SwitchStatement::Make.
This splits switch() construction into two stages.

- One version of Make takes an array of case-values and case-statement
lists, and is responsible for reporting errors if the case-values are
not unique or are improperly typed. This is what the IR generator or DSL
will start with on its first encounter with the switch statement.

- The other version of Make takes an array of already-processed
SwitchCases and can assume the invariant that they're all correctly-
typed with unique values. This is what we will have when a statement
is inlined or otherwise cloned. (We still assert this invariant, for
correctness' sake, but in release mode we assume it.)

This CL doesn't perform any optimizations at Make time yet; it does work
equivalent to how `switch` works in the IR generator today. It does
improve duplicate case-label checking slightly; duplicate case labels
are now reported, and duplicate `default:` labels are detected.
(Multiple `default` labels won't pass the parser, but they can be
constructed in DSL.)

Change-Id: I537ce2c8236152d58641fb1793619d66a62c01a8
Bug: skia:11342
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/372616
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-02-23 19:16:40 +00:00
John Stiles
7142e40534 Fix SPIR-V code generation when unreachable code exists.
This will allow us to disable dead-code elimination and run performance
tests.

Change-Id: Ia98aa88e8db511e77ad2fb669af128f4510285ae
Bug: skia:11361
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374316
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-02-23 18:43:23 +00:00
Eric Boren
3b31f68d2b [infra] Fix InfraTests recipe for other repos which use it
Change-Id: I7cd2163d316ed3b4575c7d3d05f6704c13cc46a5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374258
Reviewed-by: Weston Tracey <westont@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2021-02-23 17:42:38 +00:00
Robert Phillips
d1b6c37371 Simplify ddlbench a bit
Change-Id: I5ed062172645ed8e7ae238e629dcc1af5b0357cf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/374118
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Adlai Holler <adlai@google.com>
2021-02-23 17:42:28 +00:00
Robert Phillips
98f85d0e45 Add some tracking stats to ddlbench
Change-Id: I62d8cdec7dfe126513e616c9966e2a8eb994d95f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/373880
Reviewed-by: Adlai Holler <adlai@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-02-23 17:10:48 +00:00