Commit Graph

55229 Commits

Author SHA1 Message Date
Shahbaz Youssefi
8d8a68339b Fix ANGLE roll
ANGLE requires two new variables to be defined; angle_spirv_headers_dir
and angle_spirv_tools_dir.

This change adds those variables in preparation for an ANGLE roll.

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
Change-Id: I0c45cb19fd07c6a8551de68cdfe430675108ddb2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405678
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-05-10 15:34:52 +00:00
Michael Ludwig
799658f5c2 More sanitization of coordinates in GrTriangulator
It took a few "independent" changes in order to get the linked fuzzer
bugs to pass without failing. Leaving any out triggered an issue :/

 1. I changed nearly_flat to be <= epsilon, since if it's == epsilon and
    we split the edge, then the new coordinates would have
    difference < epsilon.
 2. I updated double_to_clamped_scalar to also snap very small values to
    0 (right now 16 * float epsilon).
 3. double_to_clamped_scalar is now used to clean up the computed
    intersection of two edges, and is used to process all initial
    vertices (in case the curve evaluation generates lots of denormals
    etc.)
 4. I updated the use of nearly_flat in checkForIntersection to report
    no intersection if both lines are nearly_flat. The comments suggest
    nearly_flat means you can't split along that line since the new
    coord is incalculable. So if both lines are flat, it's a really
    tough numerical scenario and I just punt.

Then I made a few other changes for the fuzzer and debugging:
 1. Added more logging messages and updated the code so that it compiles
    correctly if TRIANGULATOR_LOGGING is defined.
 2. I was also getting asserts in the fuzzer because the vertex
    allocator expects the vertex buffer to be detached by the path
    renderer before its destroyed, so I just have the fuzzer detach and
    discard it. Running locally, the fuzzer test cases from the two
    linked bugs pass successfully without oom'ing or timing out.

Bug: oss-fuzz:33672, oss-fuzz:33620
Change-Id: I7687b920db0a9e200b3fa79b323974b7812e52ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404120
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-05-10 15:23:02 +00:00
Dominik Röttsches
ee98a42d72 Avoid code duplication in retrieving color stops
Define a lambda to iterate over a FT_ColorStopIterator and copy the
stops and colors to a vector.

No functional changes.

Change-Id: I505b32c3add7b723beb43f6ec10cfcd3feaf3b9a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405716
Commit-Queue: Dominik Röttsches <drott@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-05-10 14:59:02 +00:00
John Stiles
edac7716aa Evaluate single-argument generic intrinsics at compile time.
In particular, this optimizes abs() and sign() when all inputs are known
at compile time. This resolves a TODO on a test case in
`IllegalIndexing.rts`.

Change-Id: Ica310522a85b42dc7ae255bd25004a6629d04176
Bug: skia:10835
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405676
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-05-10 14:50:50 +00:00
Brian Salomon
96263aa7c6 Reuse GL enums for ANGLE vendor/renderer
Currently our ANGLE vendor/renderer detection is based ANGLE's D3D
backends. To detect on the GL backend it'd be helpful to reuse the
normal GL detection after extracting the relevant GL backend strings
that ANGLE puts in GL_RENDERER in its GLES frontend. This is a step in
that direction.

Bug: 1203705
Change-Id: I5367c49e8aaee2e138088316566f95900b9c4831
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405689
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-10 13:38:30 +00:00
skia-autoroll
bdadfc16df Roll SK Tool from 33de3938b244 to bccbf0e3ae0f
https://skia.googlesource.com/buildbot.git/+log/33de3938b244..bccbf0e3ae0f

2021-05-10 kjlubick@google.com [gold] Search for closest diffs in parallel
2021-05-08 rmistry@google.com Use main branch in skcms-skia roller

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 lovisolo@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: lovisolo@google.com
Change-Id: I13892d0d7056b2f9de5c104fe9a77afa6afc4efb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406076
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-10 12:59:01 +00:00
skia-autoroll
e03030e1a7 Roll Chromium from 54647a439c14 to ed46c1e47728 (599 revisions)
54647a439c..ed46c1e477

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 robertphillips@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: robertphillips@google.com
Change-Id: Ie39c76e663678ed767efca5a36a22517adec7531
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406022
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-10 05:41:00 +00:00
skia-autoroll
bb2acbb147 Roll Dawn from 09a97ad44611 to 26468c407175 (6 revisions)
https://dawn.googlesource.com/dawn.git/+log/09a97ad44611..26468c407175

2021-05-08 enga@chromium.org Metal: Add CommandRecordingContext argument to ClearTexture
2021-05-08 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 25df959dadb0 to 6a56744b557c (9 revisions)
2021-05-07 bajones@chromium.org Suppress specific Vulkan validation messages
2021-05-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 698d01383cda to 25df959dadb0 (7 revisions)
2021-05-07 jiawei.shao@intel.com Skip CopyTests_T2B/CopyOneRowWithDepth32Float on D3D12
2021-05-07 jrprice@google.com Remove use of EmitVertexPointSize transform

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from 698d01383cda to 6a56744b557c

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 bajones@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: bajones@google.com
Change-Id: Ic3b51bfca7eb42602496aeafd202e13d47498e03
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406025
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-10 04:59:00 +00:00
skia-autoroll
6100cd8c1a Roll SwiftShader from 8b09c1078a2b to e260190edbd2 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/8b09c1078a2b..e260190edbd2

2021-05-07 sugoi@google.com Obtain all sampler parameters through SamplingRoutineCache::Key

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 robertphillips@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: robertphillips@google.com
Change-Id: I231c327da76c806ea5dc0b96e7115ba8ad0e819b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406023
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-10 04:51:33 +00:00
Mike Reed
1f85dd9159 Expose embolden on Font
Change-Id: I92c3b86b8cfff1a77e2a27503ec0cdc8b0cab784
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406037
Reviewed-by: Mike Reed <reed@google.com>
2021-05-09 18:03:44 +00:00
Mike Reed
7d093d8828 Quick out-of-range fix for selections
Change-Id: I6373f9a70c6e341a39114f0bdce50a92ee745dcb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406036
Reviewed-by: Mike Reed <reed@google.com>
2021-05-09 17:28:45 +00:00
Mike Reed
511c327de6 Sync styles when inserting/deleting text
Change-Id: I263ae85b0b229d359b865d8b8c9f4aed736b0654
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405880
Reviewed-by: Mike Reed <reed@google.com>
2021-05-09 17:00:14 +00:00
skia-recreate-skps
c6ec4abbe7 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: If613ec1867b020047b84a8a80bd00736c6a9bbd0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405956
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-05-09 06:36:19 +00:00
skia-autoroll
ab1ec37ff3 Roll SK Tool from ad82a156ba1c to 33de3938b244
https://skia.googlesource.com/buildbot.git/+log/ad82a156ba1c..33de3938b244

2021-05-09 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 rmistry@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: rmistry@google.com
Change-Id: I1a35e7b2fb6e8da38a060a08936b12b5c9ea965a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405902
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-09 06:27:59 +00:00
skia-autoroll
028de13d6f Roll skcms from 31ba46d6a284 to bae5e281e80f (1 revision)
https://skia.googlesource.com/skcms.git/+log/31ba46d6a284..bae5e281e80f

2021-05-08 rmistry@google.com Add whitespace.txt

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 egdaniel@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: egdaniel@google.com,mtklein@google.com
Change-Id: If800196fd280423d58126d506f67d3dce51fb527
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405899
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-08 21:32:59 +00:00
Mike Reed
686dd910dd Track non-shaping style runs
We only break runs (from the shaper's perspective) on typeface/size
changes. All others we just track locally, and then 'chop up' our draws
accordingly.

Change-Id: I81695772f71175cd5116ed34981ecf16b52123c8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405876
Reviewed-by: Mike Reed <reed@google.com>
2021-05-08 20:18:36 +00:00
John Stiles
dabb2891c4 Fold casts of known values at compile time.
A cast like `float(five)` or `int4(colorGreen)` will now detect const
variables and replace the expression with its compile-time constant
equivalent value. This can unblock further constant folding
opportunities.

(This CL is very similar in spirit to http://review.skia.org/404676)

Change-Id: If78a2091770777b0caaaec696fe15a0f55d88c24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405683
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-05-07 22:04:48 +00:00
John Stiles
27193d4bce Add test demonstrating missed opportunities with casts.
A cast like `float(five)` or `int4(colorGreen)` should detect const
variables and replace the expression with its compile-time constant
equivalent value. At present, this replacement is missed, which inhibits
further optimization opportunities on the expression.

(This CL is very similar in spirit to http://review.skia.org/404676)

Change-Id: I04b5c435a30d2afcdbdb3d020adc15e9c651cc31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405682
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-05-07 22:04:16 +00:00
Herb Derby
88983f1a3a Fix enumerate to handle refs
The SkEnumerate was capturing elements by value instead of
by reference. This caused odd things to happen when the value
was used on the left side of an assignment.

Added a test to demonstrate this.

Change-Id: I14bbeee8041bcbaa4e5ca845d6510096558673b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/341462
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-05-07 21:51:38 +00:00
Jim Van Verth
1c318eb4ce Direct3D: fix up tests
* Enable MipmappedTest
* Add didWriteToSurface calls to fix up MipmapInvalidation test
* Add flush & submit to fix DDLSkSurfaceFlush test

Change-Id: I9c3cad96b40491a54cab4edb8f56639d6cc16665
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405496
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-05-07 21:48:38 +00:00
Mike Reed
72de83df3a Manage styles in editor
Change-Id: Ifde8853a780b8406ef6b794cd458904ee0663771
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405694
Reviewed-by: Mike Reed <reed@google.com>
2021-05-07 21:17:42 +00:00
Brian Salomon
c411429239 Convert GrGLDriver/Vendor/Renderer to enum classes
Reformat uses to de-yodaify and try to improve readabilty of
complicated conditionals.

Change-Id: Ifccb84836cbe4f5a01813795ceb287089984f8ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405685
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-07 18:28:48 +00:00
Greg Daniel
063fdce620 Reland "Fix semaphore support check on GrDirectContext::wait"
This reverts commit 4ecc0f43f2.

Reason for revert: relanding after fix in chrome

Original change's description:
> Revert "Fix semaphore support check on GrDirectContext::wait"
>
> This reverts commit 671177905d.
>
> Reason for revert: breaking chrome dawn test, most likely chrome bug
>
> Original change's description:
> > Fix semaphore support check on GrDirectContext::wait
> >
> > Change-Id: Ifce5346b513b0caa291333c80effda7901bfb0c5
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/403236
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
>
> TBR=egdaniel@google.com,bsalomon@google.com
>
> Change-Id: I6248850376ca1d0236b6f44d049bf65f3f8e9127
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/403697
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

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

Change-Id: I49e03dd8e7ef8a5f087136e25e37c6e256e338f7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405402
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-05-07 18:18:08 +00:00
Julia Lavrova
b44d6f4099 Reland "LRU Cache requires exact float comparison"
This is a reland of 85a51865f9

Original change's description:
> LRU Cache requires exact float comparison
>
> Bug: oss-fuzz:30314
> Change-Id: Id5dccdbab2a4801e6796254a68e417dbdc0f7a4a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404780
> Commit-Queue: Julia Lavrova <jlavrova@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

Bug: oss-fuzz:30314
Change-Id: I0736a068b5b952415099f56733b6748a5a93981a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405681
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-05-07 17:50:48 +00:00
Mike Reed
cced68e42c fakeBold is gone, scaleX is in (sort of)
Change-Id: I5db9e935d0c43de92a9688baf8cb1e1f9e74e7c9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405684
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2021-05-07 17:26:25 +00:00
Brian Salomon
893358e208 Fix incorrect assignment from refactor.
Accidentally regressed here:
https://skia-review.googlesource.com/c/skia/+/405200

Bug: 1203705
Change-Id: If74c4a281467d2f0fa0d01086f54bdc425f227f4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405687
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-05-07 17:15:08 +00:00
John Stiles
ffba524ff8 Add variation of GetConstantValueForVariable which handles ownership.
The new function `MakeConstantValueForVariable` behaves the same, except
it takes unique_ptrs as inputs and returns a unique_ptr as output.
We already had this behavior coded up in two places and I realized I
could use this functionality in other spots as well.

Change-Id: I2f0c43e8555a3c89bf9a1eef7030b422355ec2a3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405680
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-05-07 17:03:38 +00:00
Jorge Betancourt
062793401d [androidkit] optimize JNI calls in AndroidKit.Matrix transformations
Note: Shouldn't add or change the Skia API, only accepts an optional z value to preScale()

Change-Id: Ic73c723ebc2b75acca1fce5395953434ef1582e6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404376
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2021-05-07 16:17:09 +00:00
John Stiles
115645ee9b Evaluate various single-argument float intrinsics at compile time.
This CL only handles a subset of our intrinsics. In particular, it
avoids changing the behavior of `sqrt` as many of our tests use sqrt as
an optimization barrier.

The transcendental test inputs are intentionally kept very simple to
avoid putting numbers in the test outputs which could round differently
on various platforms and cause Housekeeper to complain.

Change-Id: I539f918294332310dcd6fe12fab163c0b6216f65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405398
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-05-07 14:37:18 +00:00
Brian Salomon
6e0e7cbe89 remove RGB_888x pixel tests exceptions.
Should have been removed with
https://skia.googlesource.com/skia/+/974c821502042c0ab233affb0f38bf2b49f5ecfe

Bug: skia:8862
Change-Id: I3e6445a006165cc2d5713c4b21b23ed674c0a6fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405399
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-07 14:15:18 +00:00
John Stiles
1dc2d0fe0f Allow compile-time intrinsic evaluation to read const variables.
Previously, the code neglected to resolve constant variables into
values. This meant that expressions like `lessThan(zero, one)` could not
be compile-time evaluated even when `zero` and `one` have known values.

Change-Id: I2f5ce303e3dcc682be14e4d2485e24dd7c59212e
Bug: skia:10835
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405536
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-05-07 13:36:08 +00:00
John Stiles
aaac4e4e3e Use the IntrinsicKind to look up SPIR-V intrinsic calls.
This is more efficient than looking up the intrinsic by name.

Change-Id: I69bc5734073477d4359ef2b37c4b37dffc90fed5
Bug: skia:11961
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405278
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-05-07 13:32:38 +00:00
Brian Salomon
1989342920 Consolidate gathering of info from GL strings.
Should not change functionality.

Bug: 1203705
Change-Id: I2a17fb0ccb729033c964a138dbd5e86be7f93d9e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405200
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-07 13:20:18 +00:00
Greg Daniel
daa02f4021 Revert "Simplify quickReject implementation in SkCanvas"
This reverts commit 0a0f4f5c35.

Reason for revert: possible cause of flutter roll failure

Original change's description:
> Simplify quickReject implementation in SkCanvas
>
>  - SkCanvas no longer keeps fIsScaleTranslate bool that has to stay in
>    sync with the type of the matrix.
>  - No more fast or slow path for quickReject, the Sk4f code has been
>    completely removed.
>  - Uses SkM44::mapRect instead of SkMatrix::mapRect. This is slightly
>    slower for S+T, but much faster for other transforms. I'm hopeful we
>    won't notice the regression in the grand scheme for S+T, since the
>    code is a lot simpler now.
>  - The final isFinite() and intersects() check for quickReject uses
>    SkRect's functions instead of hand-written SSE/NEON. If we think this
>    is optimization is necessary, I'm hoping we can rewrite it in terms
>    of skvx instead of specific instructions.
>  - Consolidated how the quick-reject bounds outsetting into
>    computeDeviceClipBounds, and added an option to skip outsetting for
>    the one call site that doesn't want it.
>
> Bug: skia:10987
> Change-Id: I3cf2a73636cdeed06d12cab4548cfb94d1eb074a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405198
> Commit-Queue: Mike Reed <reed@google.com>
> Auto-Submit: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

TBR=mtklein@google.com,reed@google.com,michaelludwig@google.com

Change-Id: I1a373740ee167827b9a6a2eee9afb7f814641fb0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10987
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405616
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-05-07 12:55:19 +00:00
Greg Daniel
bb4bf6eaaf Revert "LRU Cache requires exact float comparison"
This reverts commit 85a51865f9.

Reason for revert: possibly causing flutter roll failure

Original change's description:
> LRU Cache requires exact float comparison
>
> Bug: oss-fuzz:30314
> Change-Id: Id5dccdbab2a4801e6796254a68e417dbdc0f7a4a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404780
> Commit-Queue: Julia Lavrova <jlavrova@google.com>
> Reviewed-by: Ben Wagner <bungeman@google.com>

TBR=bungeman@google.com,jlavrova@google.com

Change-Id: I2cbbcf667734145b94359be4331bbf21e299d6a0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: oss-fuzz:30314
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405576
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-05-07 12:43:39 +00:00
skia-autoroll
703f68e660 Roll SwiftShader from e839645bb9a6 to 8b09c1078a2b (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/e839645bb9a6..8b09c1078a2b

2021-05-06 swiftshader.regress@gmail.com Regres: Update test lists @ 04c037ac

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 egdaniel@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: egdaniel@google.com
Change-Id: Id66f547bff6221c776105aee4a6e52332b959993
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405526
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-07 05:14:02 +00:00
skia-autoroll
17a6ccbb5a Roll Chromium from 8e935e49a890 to 54647a439c14 (553 revisions)
8e935e49a8..54647a439c

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 egdaniel@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: egdaniel@google.com
Change-Id: Ia67f45fc59b2e58ec3753a32f3c15c16ea97224e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405525
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-07 05:08:59 +00:00
skia-autoroll
0ee37ead0e Roll Dawn from f3e4779031bd to 09a97ad44611 (11 revisions)
https://dawn.googlesource.com/dawn.git/+log/f3e4779031bd..09a97ad44611

2021-05-07 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from fe5c3058919c to 698d01383cda (3 revisions)
2021-05-07 shaobo.yan@intel.com Add validation rules for CopyTextureForBrowser
2021-05-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from d2be7cea9058 to fe5c3058919c (8 revisions)
2021-05-06 cwallez@chromium.org Properly implement per-dispatch synchronization scopes.
2021-05-06 senorblanco@chromium.org Fixes for OpenGL loader generator.
2021-05-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from 0aeb77c40f89 to d2be7cea9058 (4 revisions)
2021-05-06 cwallez@chromium.org Only run the BoundArrayAccessors transform when robustness is on.
2021-05-06 cwallez@chromium.org Move noop dispatch handling to the Metal backend
2021-05-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from b4a8a15bd216 to 0aeb77c40f89 (1 revision)
2021-05-06 cjj19970505@live.cn Remove unnecessary "#if def"s and type conversion in windows compilation.
2021-05-06 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll Tint from ba08d7bca3c9 to b4a8a15bd216 (3 revisions)

Also rolling transitive DEPS:
  https://dawn.googlesource.com/tint from ba08d7bca3c9 to 698d01383cda

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 bajones@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: bajones@google.com
Change-Id: I0956e5f9ccd8142feaf60eda22f386b4b6712866
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405528
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-07 05:08:57 +00:00
Mike Reed
c48c3e5d57 Try new factory for ShapedLines
Known hacks for now:
- only default typeface
- only ascii support

Fonts have several limitations for now.

SkParagraph (our temporary backend) wants a fontmgr up front,
rather than just relying on the typefaces in its styles. This makes it
hard to inter-op with our JS api. Not a long-term problem, as this
backend is short-term. The hacky work-around is just to pass NULL for
the typeface for now.

Related but different, I haven't yet figured out how to "return" a
JS Typeface object. Something about bare-pointers and sk_sp. I'll figure
it out eventually, but for now I just set the output slot to null
as well. (there's a TODO in the .cpp)

Ascii support

JS strings are UTF16 (afaik). However, our current backend thinks in
terms of UTF8 offsets. Plus, (at the moment) when I try to access the
JS string for C++, it coerces to utf8 (std::string).

We can fix both of these eventually, but for now I'll just test with
ascii input characters, and the API can still work.


Change-Id: I62ca71b0b45d017ac8e3881c06720776dc2d75a1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405400
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Julia Lavrova <jlavrova@google.com>
2021-05-06 23:01:47 +00:00
Chris Dalton
2ed22faaa1 Rename GrTessellatingStencilFillOp -> GrPathStencilFillOp
This makes the class name conform to the same pattern as the other
tessellation ops: stroke tessellation ops begin with GrStroke* and
fill tessellation ops now begin with GrPath*.

Change-Id: I454341ec95438637ee2a4e501a374f8f59622550
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405018
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-05-06 22:59:47 +00:00
Ben Wagner
04e643e462 Fix cache race in SkTypeface_Mac::Make
It was possible that multiple threads could detect that an entry did not
exist in the cache, both create a new entry, and both add to the cache.
The first to put an entry into the cache would be what subsequent
threads would retrieve from the cache.

Re-organize the code to avoid this race, make it easier to see that
typefaces created from data are not cached, and only take the mutex
once when using the cache.

Change-Id: I9a45a85ecc142d03d901037519eea0e56d30e877
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405436
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2021-05-06 22:46:47 +00:00
Jim Van Verth
6a1c8adf2a Direct3D: enable texture copies
Copying textures has been implemented but the caps flag wasn't set. Also
adds some comments about format requirements.

Change-Id: I8b9b3b9c88c72fad44a3a7191fc17054d5def938
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/403599
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2021-05-06 21:46:17 +00:00
Jim Van Verth
7589aa0bbc Direct3D: handle odd widths and heights for mipmap generation.
Uses an approximate triangle filter to replace the simple bilerp
in these cases.

Change-Id: I7cd32a5bce168a99563d0e834413a58c486cb6f9
Bug: skia:10446
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404976
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-05-06 20:49:57 +00:00
Michael Ludwig
0a0f4f5c35 Simplify quickReject implementation in SkCanvas
- SkCanvas no longer keeps fIsScaleTranslate bool that has to stay in
   sync with the type of the matrix.
 - No more fast or slow path for quickReject, the Sk4f code has been
   completely removed.
 - Uses SkM44::mapRect instead of SkMatrix::mapRect. This is slightly
   slower for S+T, but much faster for other transforms. I'm hopeful we
   won't notice the regression in the grand scheme for S+T, since the
   code is a lot simpler now.
 - The final isFinite() and intersects() check for quickReject uses
   SkRect's functions instead of hand-written SSE/NEON. If we think this
   is optimization is necessary, I'm hoping we can rewrite it in terms
   of skvx instead of specific instructions.
 - Consolidated how the quick-reject bounds outsetting into
   computeDeviceClipBounds, and added an option to skip outsetting for
   the one call site that doesn't want it.

Bug: skia:10987
Change-Id: I3cf2a73636cdeed06d12cab4548cfb94d1eb074a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405198
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-05-06 20:45:17 +00:00
Julia Lavrova
85a51865f9 LRU Cache requires exact float comparison
Bug: oss-fuzz:30314
Change-Id: Id5dccdbab2a4801e6796254a68e417dbdc0f7a4a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404780
Commit-Queue: Julia Lavrova <jlavrova@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2021-05-06 20:25:27 +00:00
Greg Daniel
4a58bdea4d Correctly handle failure to allocate samplers in Vulkan backend.
Change-Id: I2e69e62c49e153437b93e082419e6981f438dfc3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405262
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-05-06 19:39:17 +00:00
Florin Malita
71863fa787 [androidkit] Canvas save/concat/restore
Change-Id: Ide67a67e542b4e0962475e0638b95d3edb416c68
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405279
Reviewed-by: Jorge Betancourt <jmbetancourt@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-05-06 17:39:57 +00:00
Julia Lavrova
a6bcec7dd8 Ensure TextBlobCache is populated before getShapedRuns.
Also fixing a small problem with offsets that never appeared
because we never use this code path (but could)

Bug: skia:11947
Change-Id: I8c02c696797ea45d35fcab5746fbc079326e4539
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404897
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-05-06 17:39:37 +00:00
Michael Ludwig
97f85bb7fd Remove SkTextBlobDiffCanvas, use tracking device directly with base SkCanvas
Chromium has been updated to use makeAnalysisCanvas directly and there are
no more references to SkTextBlobDiffCanvas as a type in its code base.

Since the GlyphTrackingDevice extends SkNoPixelsDevice, any SkCanvas that
uses it is effectively a "no-draw" canvas. However, by returning a base
SkCanvas the text tracking now automatically happens in the context of
the base's AutoLayerForImageFilter handling it applies on every draw. This
means that drawing a text blob with an image filter that modifies the
transform state will now be analyzed in that context automatically
(simplifying code in chrome after this lands).

Another behavioral change is that all non-text draws will still go through
the base SkCanvas' virtuals and invoke the device function. Since it's an
SkNoPixelsDevice, it'll still be a no-op, it just happens a little later.
This won't really impact performance because oop-r already inspects their
operations and only plays back text and transform related ones to the
analysis canvas, so we shouldn't really see non-text draws being invoked
anyways.

Bug: chromium:1187246
Change-Id: I83f86571300751f385b3065dfe889f218fa1edc6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405196
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-05-06 16:11:57 +00:00
Ethan Nicholas
722cb67b09 Improved DSL APIs in preparation for DSLParser
This includes several new array variants of existing APIs, DSLBlock now
supporting SymbolTables, and a couple of other minor changes needed by
the upcoming DSLParser.

Change-Id: I71feb268feb27cf7ff453cc59046091779bffe06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404779
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-05-06 15:46:47 +00:00