Commit Graph

55247 Commits

Author SHA1 Message Date
skia-autoroll
1648dede8b Roll SwiftShader from be169ef35238 to c4d054c6ad41 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/be169ef35238..c4d054c6ad41

2021-05-12 capn@google.com Work around MemorySanitizer scalar SSE false positives
2021-05-12 capn@google.com Work around MemorySanitizer movmsk false positives

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: Ib1b43d7220c59a8eac06f472a2f33c6c66bd2c0e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407768
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-13 05:03:23 +00:00
Michael Ludwig
537b750834 Fix bit shift overflow making bots sad
TBR=robertphillips@google.com
Change-Id: I8dee1a3c804bd7966e79da9d60ba1659f57525ee
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407822
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-05-12 23:22:03 +00:00
skia-autoroll
66441d4ea0 Roll ANGLE from 930db294639d to 25b53ceb65b7 (18 revisions)
930db29463..25b53ceb65

2021-05-12 gert.wollny@collabora.com Revert "Change to module directory when loading swiftshader ICD."
2021-05-12 jmadill@chromium.org Test Runner: Handle skipped gtests.
2021-05-12 lubosz.sarnecki@collabora.com Tests: Add Dr. Driving trace.
2021-05-12 lubosz.sarnecki@collabora.com FrameCapture: Use gl*Separate functions only when required.
2021-05-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from dcb33711bd4b to be169ef35238 (1 revision)
2021-05-12 lubosz.sarnecki@collabora.com Tests: Add Summoners War trace.
2021-05-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from fff9d6fb8ddf to 3fb708290557 (495 revisions)
2021-05-12 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from dab93ea8f88c to 6498f4042d9f (9 revisions)
2021-05-11 ynovikov@chromium.org Follow up on Vulkan headers update to 1.2.177
2021-05-11 jplate@google.com Refactor CL platform object
2021-05-11 jplate@google.com Implement CL device object for front end and passthrough
2021-05-11 j.vigil@samsung.com EGL: setup extension EGL_EXT_protected_content
2021-05-11 jmadill@chromium.org infra: Switch Android ARM64 bots to compile-and-test.
2021-05-11 lubosz.sarnecki@collabora.com FrameCapture: Capture GLES1 specific states.
2021-05-11 cclao@google.com Vulkan: set DS layout before using it in the endRenderPass
2021-05-11 jmadill@chromium.org infra: Remove old TODO.
2021-05-11 timvp@google.com Suppress MultithreadingTest.MultiContextClear on Linux+Nvidia
2021-05-11 jonahr@google.com Change to module directory when loading swiftshader ICD.

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 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: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: robertphillips@google.com
Test: Test: angle_perftests --gtest_filter="*dr_driving*"
Test: Test: angle_perftests --gtest_filter="*summoners_war*"
Change-Id: I11bc93e5bfb59514ec06210a37a58cfd19109de3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407759
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-12 21:42:52 +00:00
Chris Dalton
0d0b1b3b56 Delete the index buffer from middle-out tessellation
This gives us more flexibility for customizing triangulations in
future modes. It is also hopefully cheaper than the extra memory
indirection from indexed draws.

Bug: skia:10419
Bug: chromium:1202607
Change-Id: Iba41a35a634edf8f962c3d604c7e035e7a85801d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407296
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-05-12 21:23:02 +00:00
Chris Dalton
84f70136ab Use conics with w=Inf to describe triangles for the tessellator
Previously, only the indirect tessellator could draw triangles, and
only with special index data. Using conics with w=Inf will allow us to
draw triangles with the hardware tessellator as well, in addition to
being able to wean the indirect tessellator off an index buffer.

Bug: skia:10419
Bug: chromium:1202607
Change-Id: I180af9cb5410c0e0bb25a2edcfb01e17d4a2f590
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406977
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-05-12 20:57:23 +00:00
Robert Kroeger
1a14c4aa0a Revert "When running on ANGLE GL backend use the underlying GL driver info"
This reverts commit bb006430ae.

Reason for revert: https://crbug.com/1208437 in Chrome: multiple
breakage on Android devices.

Original change's description:
> When running on ANGLE GL backend use the underlying GL driver info
> to setup caps.
>
> Bug: 1203705
> Change-Id: Ia50dfc6aef44848d81c735dc98dafdc692e8da40
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406117
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Bug: 1203705
Change-Id: Idb3183ddb8c2564005871c27d19feff6c4292d7f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407498
Reviewed-by: Robert Kroeger <rjkroege@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Auto-Submit: Robert Kroeger <rjkroege@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-12 20:35:03 +00:00
Brian Salomon
33ec611316 viewer can show offscreen layers in MSKPSlide
Also three fixes for drawing to offscreen layers in MSKPPlayer:
*Only play from last full redraw to next cmd
*Clear before full redraw
*Actually track current cmd in layer state.

Bug: skia:11900
Change-Id: I988afb61f96c8acb7e7554d65bfa6cd6020196c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407460
Reviewed-by: Nathaniel Nifong <nifong@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-12 19:49:03 +00:00
Robert Phillips
09b2bcbb81 Add SkBaseGpuDevice ...
between SkBaseDevice/SkClipStackDevice and SkGpuDevice/SkGpuDevice_nga

The idea is that SkCanvas will deal with SkBaseGpuDevices rather than SkGpuDevice*s

Change-Id: I1bffeccab44d2a2b73413f50d7c905fa2df8eedc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407459
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-05-12 19:26:52 +00:00
Michael Ludwig
4e9d5e2bdf Use Wang's formula for quadratic and cubic point counts
- most of the small diffs are because I moved GrWangsFormula.h out
   of the tessellate/ directory and into the geometry/ directory since
   it's more general than HW tessellation.

The previous implementation was based on the heuristic that the distance
from the true curve to the line segment would be divided by 4 every time
the curve was recursively subdivided. This was a reasonable
approximation if the curve had balanced curvature on both sides of the
split. However, in the case of the new GM's curve, the left half was
already very linear and the right half had much higher curves.

This lead to the approximation reporting fewer points than required.
Theoretically, those few points that weren't utilized by the left half
of the curve could have been made available to the right half, but the
implementation of that would be tricky.

Instead, it now uses Wang's formula to compute the number of points.
Since recursive subdivision leads to linearly spaced samples assuming it
can't stop early, this point count represents a valid upper bound on
what's needed. It also then ensures both left and right halves of a
curve have the point counts they might need w/o updating the
generation implementations. However, since the recursive point
generation exits once each section has reached the error tolerance, in
scenarios where the prior approximation was reasonable, we'll end up
using fewer points than reported by Wang's. Hopefully that means there
is negligible performance regression since we won't be increasing
vertex counts by that much (except where needed for correctness).

Bug: skia:11886
Change-Id: Iba39dbe4de82011775524583efd461b10c9259fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405197
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2021-05-12 18:33:33 +00:00
John Stiles
90508f02dc Revert "The Matrices test now verifies its results."
This reverts commit 86121f6c0e.

Reason for revert: tree sad

Original change's description:
> The Matrices test now verifies its results.
>
> Previously, this test did a bunch of matrix math but never actually
> checked its results for correctness.
>
> Change-Id: I353be58049286266c2d561b0939b3874d2684403
> Bug: skia:11985
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407360
> 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>

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

Change-Id: I1335f01c14ee955426e02efaa3c30421cd41aa34
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:11985
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407617
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-05-12 18:15:04 +00:00
Mike Reed
e3bea7a60a Can ctrl-key work on non-macs?
Change-Id: I9cd06689c209941a45a8e842eb0dca99abc11a5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407497
Reviewed-by: Mike Reed <reed@google.com>
2021-05-12 17:53:41 +00:00
Ethan Nicholas
22dcb738b0 Revert "Revert "Added DSL flags""
This reverts commit 9eb0bb6256.

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

Change-Id: I685478018bf48e5c06a57e9ca5542501d41c2b27
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407458
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-05-12 17:50:22 +00:00
Herb Derby
4ce8189c4d switch to SkMutex in SkStrike
The docs team is producing thumbnails for pages using 20
threads. About 0.1% of their machines are showing massive
slowdown and contention. When looking at /profilez most of the
threads are waiting in spin locks to find a strike. This is
keeping the server from doing work on other pages that can make
progress. Move from SkSpinlock to SkMutex to allow other threads
to make progress.

Bug: b/182395513

Change-Id: I96448d784198041390e62bc5507ab0081d8f71b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407097
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2021-05-12 17:23:23 +00:00
Mike Reed
0270bf5d10 Add shader styling
Change-Id: I0ce66418d98160ae9bd343fbe62b47fd86f328f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407496
Reviewed-by: Mike Reed <reed@google.com>
2021-05-12 16:35:59 +00:00
Brian Salomon
71f5b92f4c Remove workaround for angle bug 4536
Bug is fixed in angle

Bug: angleproject:4536
Change-Id: I79e6560ea5afc330e98bb2a7e1be7b4e366a1f51
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407016
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-12 16:34:42 +00:00
John Stiles
86121f6c0e The Matrices test now verifies its results.
Previously, this test did a bunch of matrix math but never actually
checked its results for correctness.

Change-Id: I353be58049286266c2d561b0939b3874d2684403
Bug: skia:11985
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407360
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-05-12 16:11:04 +00:00
Michael Ludwig
9ec377e999 Reland "Simplify quickReject implementation in SkCanvas"
This is a reland of 0a0f4f5c35

This change makes SkCanvas::quickReject always reject empty draw bounds,
whereas previously scale+translate CTMs allowed bounds with w or h == 0
but otherwise contained in the clip to be drawn. This uncovered some
bugs in Skia where bounds shouldn't be empty, and in Flutter where
bounds were legit empty but not expected by the test.

No code changes needed. The issues that required its revert have been
fixed with:
1. https://github.com/flutter/engine/pull/26053 so that platforms that
use an empty typeface, leading to empty draws are just skipped.
2. https://skia-review.googlesource.com/c/skia/+/406140 so that path
effects update bounds so that Android's 1D dash path effect applied to
a horizontal line is properly not rejected.

Based on the period of time where the original CL was landed, some perf
data was collected.
- There were no significant changes in most SKPs or SVGs, except for a
Flutter page flip skp, which saw a 10% net improvement (perhaps the
flip is drawn with perspective?)
- A 10-20% regression in the motionmark paths skp, but dominated by the MSVC
compiler, so I'm not too concerned about that.
- Perspective microbenchmarks for drawing rectangles are 1.5-2x faster.
- quickReject microbenchmarks are about 2x slower.

The last two microbenchmark results aren't surprising since perspective
was the largest improvement in perf for SkM44::MapRect vs.
SkMatrix::mapRect, and the scale+translate specializations in Skmatrix
were maybe 50% faster than SkM44's. That would account for some of the
slow downs, and the rest could be explained by moving away from the
SIMD rect intersection and nan test.

Since these microreductions don't seem to bleed into more complex
benchmarks, I'm inclined to keep the code simple and not bring back the
custom intrinsics.

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>

Bug: skia:10987
Change-Id: Id0d4b4ecebf0b83ae30f7e1a263961ab25de28dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407358
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2021-05-12 15:46:12 +00:00
Jorge Betancourt
2446196688 3d cube initial demo
Change-Id: Idc3d05eeac13715d2cb57d5930e9642181fc670d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406436
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2021-05-12 15:41:52 +00:00
Mike Reed
433d25c947 Safeguard against wacky keys for now
Change-Id: I48e8a5a6bbf66a11c71d676e11b3d5f7c84cb29d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407456
Reviewed-by: Mike Reed <reed@google.com>
2021-05-12 15:33:23 +00:00
John Stiles
cc29ca5196 Remove SK_DISABLE_NONSQUARE_MATRIX_TRANSFORM guard flag.
Do not land until http://go/jrev/c/2889593 has been submitted into
Chromium.

Change-Id: I40f2543d89c6aa56c24c84f50ab6c89fcb40e465
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407156
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-05-12 15:08:22 +00:00
Brian Osman
bb3966ad4e Update GN reference to recently moved SkSpan.h
Fixes CMake build

Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian10-Clang-x86_64-Release-CMake
Change-Id: If4da32306e6735dced70412216e43f0b8bbca48c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407357
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-05-12 14:53:33 +00:00
Brian Salomon
827bb729a8 Use rescale in async-rescale-and-read to do non-rescaling conversions.
Removes some redundand code.

Change-Id: Iea2f2e4785f669eaff21f908bcd6e490cc8ed8c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/405497
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2021-05-12 14:06:04 +00:00
Brian Osman
a5842bc903 Move SkSpan to include/, for use in public API
Change-Id: I674f038600afd6d49316c1ece515941ee5579068
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406939
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-05-12 13:19:32 +00:00
skia-autoroll
d9a7c5953d Roll Chromium from 5d4a69b076e1 to 51f0f14b5681 (472 revisions)
5d4a69b076..51f0f14b56

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: I38ce08aaa114591a1a502a2139e8f8aec552de99
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407061
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-12 06:03:59 +00:00
skia-autoroll
982a5d1911 Roll Dawn from e2f083e4b0f5 to f0fdfa0d61df (1 revision)
https://dawn.googlesource.com/dawn.git/+log/e2f083e4b0f5..f0fdfa0d61df

2021-05-11 bclayton@google.com ShaderModule: Keep the tint::Source::File alive

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 kainino@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: kainino@google.com
Change-Id: I7b8001dd9f91cb0d661414f864a9f87ea4ececbf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407060
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-12 05:14:59 +00:00
skia-autoroll
c1b6b6c615 Roll SwiftShader from dcb33711bd4b to be169ef35238 (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/dcb33711bd4b..be169ef35238

2021-05-11 swiftshader.regress@gmail.com Regres: Update test lists @ dcb33711

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: I2b84f170567d9a6e0582b3c8cbc9956bf2e1139d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407058
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-12 05:01:39 +00:00
John Stiles
8fac6c13fa Reland "Transform verts using nonsquare matrices when available."
This reverts commit 34db2ddc92.

Reason for revert: guarding with a macro

Original change's description:
> Revert "Transform verts using nonsquare matrices when available."
>
> This reverts commit 048b5a2967.
>
> Reason for revert: Okay feeling confident this guess is right about who is breaking chrome roll.
>
> Original change's description:
> > Transform verts using nonsquare matrices when available.
> >
> > We were previously doing a square-matrix multiply then discarding one
> > third of the result; now, when available, we just get the result we need
> > via a non-square multiply.
> >
> > Change-Id: Ie13ae6f2c7f23e3a4c1f2c4eeb6361a97cdccf67
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/403079
> > Auto-Submit: John Stiles <johnstiles@google.com>
> > 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: I5e1026def7e7ade019c2543b6f30387bec1bc004
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/404596
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

Change-Id: I58e744cd1865602a098c4df4c6869fa7b60204ad
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407098
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-05-12 00:20:39 +00:00
skia-autoroll
acda7ec455 Roll ANGLE from 125f128e6239 to 930db294639d (2 revisions)
125f128e62..930db29463

2021-05-11 jmadill@chromium.org infra: Add Android swarming spec placeholder.
2021-05-11 lubosz.sarnecki@collabora.com FrameCapture: Don't capture shader functions on GLES1.

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 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: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: robertphillips@google.com
Change-Id: Ie58a4061d7c6c2377570bf41057b7563d0276f89
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407125
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-11 23:41:09 +00:00
Brian Osman
2305b7914e Use SkMakeSpan in SkShaper_harfbuzz
Fixes G3 roll

Change-Id: I0d7c3c74f793fb2c22db969fb2a6f93e39931918
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407099
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-05-11 22:33:59 +00:00
Robert Phillips
0c9962a7c8 Revert "Switching SkText to UTF16"
This reverts commit a3262aa1d2.

Reason for revert: I believe this is blocking the Flutter roll

Original change's description:
> Switching SkText to UTF16
>
> Required some changes in SkUnicode to support it
> SkShaper still works on UTF8
>
> Change-Id: I76645668e1d9bf95eb4539a066deea2b24ecf5e9
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406360
> Reviewed-by: Julia Lavrova <jlavrova@google.com>
> Commit-Queue: Julia Lavrova <jlavrova@google.com>

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

Change-Id: I68b66dfbc4f3668a8fb765d5f557699e396cd3f5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407177
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2021-05-11 22:24:20 +00:00
Brian Osman
9eb0bb6256 Revert "Added DSL flags"
This reverts commit 71430593f0.

Reason for revert: Clang-tidy bot unhappy. (Not sure how this slipped by).

Original change's description:
> Added DSL flags
>
> This adds some basic flags to the DSL initialization which allows us to
> toggle things like optimization and validation.
>
> Change-Id: I35b10526af1678c88901eaacd5a2c4a9f5cd21a7
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406896
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>

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

Change-Id: I7512b8bcc6e94707949904eec42c396faa7fdaf8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407176
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-05-11 22:04:10 +00:00
Ethan Nicholas
71430593f0 Added DSL flags
This adds some basic flags to the DSL initialization which allows us to
toggle things like optimization and validation.

Change-Id: I35b10526af1678c88901eaacd5a2c4a9f5cd21a7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406896
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-05-11 20:44:29 +00:00
Brian Salomon
594a1af19e Remove unused pixel ops caps from GrGLCaps.
Change-Id: Ic568a6774175741ca4765288ecd90c07471200db
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406996
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2021-05-11 20:32:29 +00:00
Julia Lavrova
a3262aa1d2 Switching SkText to UTF16
Required some changes in SkUnicode to support it
SkShaper still works on UTF8

Change-Id: I76645668e1d9bf95eb4539a066deea2b24ecf5e9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406360
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-05-11 20:31:29 +00:00
Chris Dalton
7d979919a4 Tune up tessellated stroke gms
* Make sure to actually use hardware tessellation on the *_tess_segs_5
  gms. These had started using the fixed count tessellator.

* Add a trickycubicstrokes version with round caps to test upcoming
  coverage AA modes.

* Make the colors more appealing since I spend all day looking at
  these gms.

Bug: skia:10419
Change-Id: Ie7ab4e936ffa3ccffe4999e51fac4c3d4ab97f06
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406976
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-05-11 20:26:49 +00:00
Brian Osman
ae87bf1e49 Remove SkSpan class template deduction guides
This effectively reverts a80ce1a36d,
and goes back to using SkMakeSpan (which works in C++14).

Change-Id: Iaa63c86b5acaadbdd60588b0a5c703820e810770
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406938
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-05-11 20:06:29 +00:00
John Stiles
543fd5f279 Revert "Transform verts using nonsquare matrices in FPs."
This reverts commit f3c38a3d0a.

Reason for revert: this breaks the Chrome roll

Original change's description:
> Transform verts using nonsquare matrices in FPs.
>
> IF THE CHROME ROLL BREAKS, ROLL BACK THIS CL!
>
> This relands one portion of http://review.skia.org/403079, which was
> rolled back due to a Chrome roll issue (a pixel-gap introduced in a form
> rendering test).
>
> Change-Id: I3d8f900c80c79f20e876ae360a93febe16a0a4bc
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406836
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

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

Change-Id: I45fced067ee18acfc7a36273bf9421f55eeaab5e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/407096
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2021-05-11 20:03:40 +00:00
Ethan Nicholas
b22fcaf627 Added DSL layout() support
Change-Id: I698dd607ff4676b6fb29be0a718c6073b66dc7c7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406336
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2021-05-11 19:52:59 +00:00
Brian Salomon
3945895ea8 Fix prefer-flat in GrGLCaps
Another accidental logic change when removing GrGLDriver::kANGLE.

Change-Id: I3b79e86d66ad2edc6801d879ed54f9556aa97aa6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406940
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-05-11 18:57:29 +00:00
Julia Lavrova
6d14195309 Multi line + LTR/RTL
Change-Id: I0859773c00b6a4bd19047d25b75ee7c6727bc470
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/403837
Reviewed-by: Julia Lavrova <jlavrova@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2021-05-11 18:20:29 +00:00
Florin Malita
4882f97829 [svgcanvas] Add support for relative path encoding
- expand SkParsePath to support relative path encoding
 - introduce a new SkSVGCanvas flag for clients to opt into relative
   encoding

Bug: skia:11981
Change-Id: I2d6c63254df23311f1a86dee9481bde9531c3b61
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406876
Reviewed-by: Tyler Denniston <tdenniston@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@google.com>
2021-05-11 17:44:59 +00:00
Michael Ludwig
4e1c1a77ad Implement computeFastBounds for PathEffects
Makes computeFastBounds not part of the public API, it's only accessible
to subclasses of SkPathEffect, GrStyle, and SkPaint. Subclasses can
invoke it other path effects using SkPathEffectPriv::ComputeFastBounds.

Changes the internal function to
  bool computeFastBounds(SkRect* bounds) const;

Subclasses of SkPathEffect must implement this, and can choose to return
false when fast bounds aren't computable.

Provides implementations of computeFastBounds() for path effects
bundled with Skia.

Bug: skia:11974
Change-Id: I545ccf99b4e669d3af9df13acfac28573306fab8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406140
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-05-11 17:01:59 +00:00
John Stiles
33ef30ec68 Optimize remaining simple 1-argument intrinsics.
Aside from sqrt() and normalize(), we now optimize all the intrinsics
which take a single argument as input, and return that argument with
each of its components permuted as output.

This CL also introduces a minor restriction--we no longer optimize
intrinsics which evaluate to inf or nan, such as `inversesqrt(-1)`.
These will be left in the source as-is.

Change-Id: I4919b3c18a2df81accd6daf2f650b9f587ff43fc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406577
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-05-11 16:44:09 +00:00
John Stiles
f3c38a3d0a Transform verts using nonsquare matrices in FPs.
IF THE CHROME ROLL BREAKS, ROLL BACK THIS CL!

This relands one portion of http://review.skia.org/403079, which was
rolled back due to a Chrome roll issue (a pixel-gap introduced in a form
rendering test).

Change-Id: I3d8f900c80c79f20e876ae360a93febe16a0a4bc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406836
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-05-11 16:09:40 +00:00
John Stiles
7c328b4b42 Replace macro with constexpr now that we require C++14.
Change-Id: I71531f4cb3b306687c0d532d5e5e9c1c36ed5357
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406476
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2021-05-11 15:28:29 +00:00
skia-autoroll
dae1676d56 Roll ANGLE from 2e84e59ab3e3 to 125f128e6239 (7 revisions)
2e84e59ab3..125f128e62

2021-05-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from d3354ebca460 to 055e71b2a367 (1 revision)
2021-05-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from e260190edbd2 to dcb33711bd4b (3 revisions)
2021-05-11 lubosz.sarnecki@collabora.com FrameCatpure: Move capturing default vertex attribs to function.
2021-05-11 lubosz.sarnecki@collabora.com FrameCapture: Add GLES1 support to CaptureVertexArrayData.
2021-05-11 lubosz.sarnecki@collabora.com DEPS: Add Android tombstone resolution dependencies.
2021-05-11 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 518c3462c0a9 to fff9d6fb8ddf (568 revisions)
2021-05-11 gert.wollny@collabora.com Capture/Replay: reset CWD after the test ends

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 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: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: robertphillips@google.com
Change-Id: I5b828b1333a3dcfceee71e7b2c03edf1d407a93e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406797
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2021-05-11 15:15:52 +00:00
Chris Dalton
85dbeb5e93 Move tessellation back doors into GrGLSLGeometryProcessor
This makes them easier to integrate with other shader code than having
them in GrGeometryProcessor.

Bug: skia:11396
Change-Id: I572348b8484ae46e00ac15832cd818390d536441
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406437
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2021-05-11 15:05:48 +00:00
Mike Reed
a5b17fd8d0 Move paragraph extra into demos
Change-Id: I5006e412084ad8e82eae5671577228f9241dbc1d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406176
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2021-05-11 14:46:28 +00:00
John Stiles
be0eedcf6d Remove obsolete forward declaration of ExternalValue.
This IRNode was removed when the bytecode interpreter was replaced with
SkVM.

Change-Id: Iaade5632e4b76bced00dfb3766c7d911064d2722
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406758
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>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2021-05-11 14:37:29 +00:00
Brian Salomon
96bc12d19b Fix workaround for anglebug.com/4536.
Accidentally changed the triggering of this. (Though, it looks like
it probably isn't necessary anymore).

Bug: 1203705
Change-Id: Id7f1f4efa80b50fae602b6bd8b520d76edf79d6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/406756
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2021-05-11 14:27:09 +00:00