Commit Graph

50644 Commits

Author SHA1 Message Date
Ethan Nicholas
30d3022f72 Moved SkSL type into IRNode, now accessed via a method
This change doesn't accomplish anything by itself, but is a necessary
prerequisite for followup changes to node handling. Eventually all data
is going to be stored within IRNode itself, and the subclasses will not
add any fields; this is just the first step in that process.

Change-Id: If2bea4c62bd8f680e9d9f39248bb9679332b245b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315867
Reviewed-by: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
2020-09-11 17:08:04 +00:00
John Stiles
9344262e2f Reland "Add InlineCandidateAnalyzer to locate candidate functions for inlining."
This is a reland of ff9dc8240e

ASAN errors were resolved at http://review.skia.org/316451

Original change's description:
> Add InlineCandidateAnalyzer to locate candidate functions for inlining.
>
> The analyzer will be enabled in followup CLs. At present, if the
> commented-out code is enabled, it will properly identify candidate
> functions that should be inlined.
>
> Change-Id: Icb6e7c2394a3828df81f75b855c69a25bf297842
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315217
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

Change-Id: I851bde66c5e490c237b88606f23fb3c5077a2393
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316452
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-11 16:48:14 +00:00
John Stiles
759880ab05 Pass non-temporary Program::Settings to convertProgram.
This will fix ASAN errors such as these:
https://logs.chromium.org/logs/skia/4e924a3651708511/+/steps/symbolized_dm/0/stdout

Change-Id: I49756df6e077cc8813f51f70082c88d861fa337f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316451
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2020-09-11 16:37:34 +00:00
Greg Daniel
98df291b2a Reduce the amount of forced dedicated allocations we do in Vulkan.
This removes the always use dedicated allocations for newer Mali's
and removes the "small image" check in GrVkMemory. The later is not
needed since the allocators we use have their own heuristics for using
dedicated memory which includes querying the driver itself to see if
it is recommended or not. We can also add a limit back here if we find
it necessary.

Bug: chromium:1127358
Change-Id: Ia7fa6281abb058293805c9c1c3dba9b79e7e12fd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314320
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-09-11 16:25:34 +00:00
Jamie Madill
f1003a7758 Port to ANGLE's GN files
Bug: skia:7647
Change-Id: Ic4709817804610783de8ff3d9eaa32f57fb72729
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/313316
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-09-11 15:22:34 +00:00
John Stiles
ab5010493d Revert "Add InlineCandidateAnalyzer to locate candidate functions for inlining."
This reverts commit ff9dc8240e.

Reason for revert: tree on fire

Original change's description:
> Add InlineCandidateAnalyzer to locate candidate functions for inlining.
> 
> The analyzer will be enabled in followup CLs. At present, if the
> commented-out code is enabled, it will properly identify candidate
> functions that should be inlined.
> 
> Change-Id: Icb6e7c2394a3828df81f75b855c69a25bf297842
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315217
> Commit-Queue: John Stiles <johnstiles@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Auto-Submit: John Stiles <johnstiles@google.com>

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

Change-Id: I1f07b406c4d56f2fdb6d3c5360f15397fc26d783
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316448
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-11 15:02:16 +00:00
John Stiles
a003e8184e Fix inline code generation when literals appear in the argument list.
We don't expect raw literals to ever appear here; this is a defensive
maneuver. See http://review.skia.org/316440 for an example case where
raw literals accidentally made it all the way to the inlining pass, due
to a missing `coerce`.

Change-Id: I80198f2f135791931aa53e0d6d92f1edfe4fb3b5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315970
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-11 14:57:14 +00:00
Florin Malita
66b45a7f40 [skottie] Add support for invert/YIQ
The Invert layer effect [1] also supports YIQ selectors [2]:

  -- YIQ
  -- Luminance (Y)
  -- In Phase Chrominance (I)
  -- Quadrature Chrominance (Q)

[1] https://helpx.adobe.com/after-effects/using/channel-effects.html#invert_effect
[2] https://en.wikipedia.org/wiki/YIQ

Change-Id: I54b1c81a786ff6f2bdea6456b45b435b2c0fea07
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316446
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-09-11 14:55:44 +00:00
Greg Daniel
d358cbebd4 Add support for plumbing GrDstSampleType through Ops and Pipeline creation.
This CL adds a new type GrDstSampleType to say how we will sample the dst.

We add tracking of the GrDstSampleType in the recording of GrOps and
then during execution passing the information along to the GrPipeline.

In general the tracking of GrDstSampleType is a global state of a GrOpsTask
so it is kept separate fro the DstProxyView which is more specific to a
single Op on the GrOpsTask.

Bug: skia:10409
Change-Id: Ie843c31f2e48a887daf96cee99ed159b196cb545
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315645
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-09-11 14:42:34 +00:00
Florin Malita
4748c17557 [skottie] Initial Displacement Map effect
Plumb layer size information and add machinery for retrieving layer
content as an SkPicture.

Implement the effect in SkSL.

Current limitations:

  * displacement source layer must be above (on top in stacking order)
    of the target layer
  * if animated, the displacement layer timeline (in/out points) must
    fully cover the target layer timeline
  * Hue/Sat/Lightness selectors are not supported at the moment

These will be addressed in follow-up CLs.

Note: Bodymovin does not export hidden layers by default; if the
displacement source layer is hidden, one should select the "Hidden"
export option.

Change-Id: I11a5c760a9df1e75835a51371f60d5b798e7e38a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314798
Commit-Queue: Florin Malita <fmalita@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-09-11 14:15:44 +00:00
Ethan Nicholas
1d88152de6 Fixed an SkSL optimizer error around constant propagation
Constant propagation wasn't performing type coercions, so we'd end up
propagating a constant into its final location and using the constant's
type rather than the destination type. This allowed things like
$floatLiteral to sneak into final output.

Change-Id: I5b63c70370095e291dea6374e139329b695fa0b0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316440
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
2020-09-11 14:02:44 +00:00
Jorge Betancourt
b862131f49 organize deps so that modules/audioplayer is listed as a dep for samples
Change-Id: I0592c66f12fe7db5d88fac0ba4ba8cb0c87911ff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316256
Reviewed-by: Florin Malita <fmalita@google.com>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
2020-09-11 13:59:14 +00:00
Brian Osman
6518d77a22 Disambiguate '.' from '::' in the SkSL parser
'::' is now the only way to access enum members, and it can no longer be
used to do swizzles and other field-access type things. This also
prevents a parser assert when there's a dangling '::' (that fell through
to the float-literal case and didn't see the expected '.').

Bug: skia:10627
Change-Id: I26f6ddeec33e45182a587dbb266ca4b45459cb2d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316230
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-11 13:48:54 +00:00
skia-autoroll
bbe69951b4 Roll dawn from 87f25134a8c1 to 948b3a05550b (3 revisions)
https://dawn.googlesource.com/dawn.git/+log/87f25134a8c1..948b3a05550b

2020-09-11 hidehiko@chromium.org Expand is_linux to is_linux || is_chromeos.
2020-09-10 bryan.bernhart@intel.com Fix ASSERT in WindowsDebugLogger again
2020-09-10 cwallez@chromium.org Rename BC6HRGBSfloat to BC6HRGBFloat

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 cwallez@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: cwallez@google.com
Test: Test: Build locally.
Change-Id: Idd43e74631c27d3f23e0327af22c798ef1aaed5a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316202
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-11 05:21:33 +00:00
skia-autoroll
48069567c1 Roll ANGLE from 29b1f07f4ab2 to 0c8f66c7169c (15 revisions)
29b1f07f4a..0c8f66c716

2020-09-11 jiawei.shao@intel.com OpenGL: Get VendorID and DeviceID with angle::GetSystemInfo()
2020-09-11 jmadill@chromium.org Enable -Wweak-template-vtables.
2020-09-11 courtneygo@google.com Fix mismatch issue with precision qualifiers.
2020-09-11 courtneygo@google.com Refactor to pass ProgramMergedVaryings to link impl
2020-09-11 jmadill@chromium.org De-templatize ResourceManagerBase.
2020-09-10 jonahr@google.com Cleanup disable_program_binary workaround
2020-09-10 hidehiko@chromium.org Expand is_linux to is_linux || is_chromeos.
2020-09-10 sugoi@google.com Added integer overflow detection to ClipRectangle
2020-09-10 syoussefi@chromium.org Make gl::DrawBufferMask a BitSet8
2020-09-10 emaxx@chromium.org Fix useless move() in SizedMRUCache_unittest.cpp
2020-09-10 timvp@google.com Vulkan: Avoid linking to SPIR-V validation if possible
2020-09-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Vulkan-ValidationLayers from 4ede8ee6e2ec to fcb7ecbe49c5 (5 revisions)
2020-09-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from ce08265ba5b7 to b24900a1aa39 (1 revision)
2020-09-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from a715b1b40535 to 2de7d3af0c0e (2 revisions)
2020-09-10 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from e9ccdaed3414 to 30a5da059e5d (421 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 reed@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
Bug: chromium:1091364,chromium:1110266,chromium:1122844
Tbr: reed@google.com
Test: Test: Built locally. Tryjob.Test: Test: CQ
Change-Id: Id9e8104860e66d1b6b46a28901d417a8a57796ef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316204
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-11 04:50:08 +00:00
skia-autoroll
3435101c9c Roll SwiftShader from b24900a1aa39 to 41974f57973e (1 revision)
https://swiftshader.googlesource.com/SwiftShader.git/+log/b24900a1aa39..41974f57973e

2020-09-10 jaebaek@google.com Allow OpTypeVoid for debug function return type

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 reed@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: reed@google.com
Change-Id: I1b6833d3fc0a7b957ef351e693af7819f421c541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316203
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-11 04:47:33 +00:00
skia-autoroll
0cad688801 Roll Chromium from b68279c2c191 to d14e6a0b90c2 (413 revisions)
b68279c2c1..d14e6a0b90

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 reed@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: reed@google.com
Change-Id: Ia675411de3ed8531effd65966632de213b69c0aa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316205
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-11 04:45:03 +00:00
Chris Dalton
9d6f955f52 Chop tessellated strokes in the vertex shader
The stroke tessellator can't handle inflections and can't handle
rotations greater than 180 degrees. Before this CL we had to use the CPU
to chop curves at their inflections and midtangents in order to meet
these constraints. This CL adds a vertex shader to the tessellation
pipeline that handles all the chopping logic on the GPU.

Bug: skia:10419
Change-Id: I2d3279076bafa415395e014772a305e616fcff71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315797
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-09-11 01:15:40 +00:00
Julia Lavrova
0f64e0dfd8 An attempt to make font resolution more predictable.
In case the default font family is not there.
Bug: skia:10701

Change-Id: Ie1155d820bfcc25870bedcd0310b0e779d55e942
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316087
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-09-10 20:35:11 +00:00
Brian Osman
401a009aaa Clean up SkSL operator utility functions
We had two copies of IsAssignment. Move everything into Compiler, with
consistent parameter names, etc...

Change-Id: Icc91da69075f4d20cac9b1a7328b717b05984b3f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316223
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-10 19:30:02 +00:00
John Stiles
ff9dc8240e Add InlineCandidateAnalyzer to locate candidate functions for inlining.
The analyzer will be enabled in followup CLs. At present, if the
commented-out code is enabled, it will properly identify candidate
functions that should be inlined.

Change-Id: Icb6e7c2394a3828df81f75b855c69a25bf297842
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315217
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-10 19:19:12 +00:00
Brian Osman
c4cb3a6140 Refactoring determine_binary_type to fix some bugs
Four of the first 12 cases in the new unit test previously failed (the
logic to reduce from vector to scalar type coercion didn't test the
reverse order, so (half * float4) would only test if (half * float) was
possible going right-to-left.

Also, the matrix multiplication logic was missing a check when doing *=,
allowing things like (matrix *= vector) to compile (then fail later in
GL, etc.)

Finally, we were never checking if the op was valid for vectors when
doing the vector/scalar combination. Added test cases to
BinaryTypeMismatch that previously failed, and now work.

Change-Id: I1e2709e3ba4df31f9300672189826151eabe017a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315964
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-10 18:34:08 +00:00
Ben Wagner
457cad134f Mark FreeType bitmap font bounds as unknown.
In FreeType bitmap strikes don't have any inexpensive conservative
bounds. The existing code was covering for this by guessing at some
possible likely bounds, but they are likely to be wrong. Leave the old
guess but mark these bounds as unreliable to prevent bogus clipping when
used in relation to text blobs.

Change-Id: I6eb4448bf40237ac0b15aec6c06c98025d1e58b1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316219
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-09-10 18:33:08 +00:00
John Stiles
991b09db3c Prevent inlining of recursive calls.
This is necessary to avoid an infinite death spiral of inlining once we
enable the inline-analysis pass of optimization. Right now it has no
effect because the IR generator can't inline recursive calls.

Change-Id: I5e5a13962e3fc3901f2a340ef11d6483379c063d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315640
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-10 17:34:35 +00:00
Herb Derby
734f8e3729 combine origin and drawing matrix for drawGlyphRunList
Combine the drawingMatrix and drawingOrigin in
GrRenderTargetContext::drawGlyphRunList. This simplifies canReuse
and GrTextBlob::Make.

Change-Id: I4be4b67c26df90564b10ee803ae81edf5722dfcf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315969
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-10 16:45:15 +00:00
skia-autoroll
0b6bf1c966 Roll dawn from 0a1061da0c7f to 87f25134a8c1 (7 revisions)
https://dawn.googlesource.com/dawn.git/+log/0a1061da0c7f..87f25134a8c1

2020-09-10 jiawei.shao@intel.com Vulkan: Combine all the barriers before dispatch() in one call
2020-09-09 cwallez@chromium.org ShaderModule: Add support for multiple entryPoints
2020-09-09 cwallez@chromium.org D3D12: Make HLSL generation per-entrypoint.
2020-09-09 cwallez@chromium.org OpenGL: Make GLSL generation per-entrypoint.
2020-09-09 cwallez@chromium.org Metal: Use ShaderModule reflection when possible.
2020-09-09 cwallez@chromium.org Make ShaderModuleBase use its own spirv_cross for reflection.
2020-09-09 aleksi@sapon.ca Add missing CMake spirv-cross dependency

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 cwallez@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: cwallez@google.com
Change-Id: If75be6bda4996881d53d9a49eba292057611a550
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315991
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-10 15:53:25 +00:00
Brian Salomon
18f6a54fc3 Revert "Temporary hack to force text texture index varying to be float."
This reverts commit 038ba443a0.

Reason for revert: Perf data is in

Original change's description:
> Temporary hack to force text texture index varying to be float.
> 
> Previous experiment showed disabling integer support in GrShaderCaps
> improved ANGLE D3D11 ES3 perf.
> 
> Trying to determine if perf hit on ANGLE D3D11 ES3 is from
> integer vertex attribs and unpack operations in VS or from
> using an int varying to communicate the index to the FS.
> 
> Will revert this after observing trend on perf.skia.org.
> 
> Change-Id: I40f4c0397b1377922c3018be864c1b7048bcfba9
> Bug: skia:10644
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315866
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=jvanverth@google.com,bsalomon@google.com

Change-Id: I4b32ff2c2472a046769d68a468642aa63e79a0df
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10644
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316082
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-10 14:20:18 +00:00
Kevin Lubick
fb5e0ebef0 [canvaskit] Pass in paints via reference
I don't believe this impacts performance, but we'll see.

Change-Id: I5eb0843c186b61f4d34162c6fbc25c92b49a55a9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315862
Reviewed-by: Nathaniel Nifong <nifong@google.com>
2020-09-10 12:38:14 +00:00
skia-autoroll
3d41d509a6 Roll SwiftShader from 5f71fdf34b76 to b24900a1aa39 (2 revisions)
https://swiftshader.googlesource.com/SwiftShader.git/+log/5f71fdf34b76..b24900a1aa39

2020-09-09 sugoi@google.com Update PowerVR Samples to ToT
2020-09-09 capn@google.com Fix register assignment for constant arrays

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 reed@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: reed@google.com
Change-Id: Ib01d67a55bf09266bb6633e3dbb6bb947d78e745
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315992
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-10 07:56:45 +00:00
skia-autoroll
d5244109f7 Roll ANGLE from 41c93c550b07 to 29b1f07f4ab2 (9 revisions)
41c93c550b..29b1f07f4a

2020-09-10 syoussefi@chromium.org Vulkan: Boilerplate for vkCmdNextSubpass
2020-09-10 courtneygo@google.com Fix ASAN issue with accessing application name
2020-09-09 jonahr@google.com Workaround bogus MscRate reported by some XWayland drivers.
2020-09-09 shrekshao@google.com Suppress AtomicCounterBufferRangeRead failure on Nexus6P
2020-09-09 jdapena@igalia.com GCC: init kImageMemoryBarrierData with initializer constructor
2020-09-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SwiftShader from 10121443c16d to ce08265ba5b7 (3 revisions)
2020-09-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll SPIRV-Tools from 1ab52e54abfd to a715b1b40535 (2 revisions)
2020-09-09 syoussefi@chromium.org Vulkan: Free 8 bits in RenderPassDesc
2020-09-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 4a41eb42842c to e9ccdaed3414 (365 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 reed@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
Bug: chromium:1042393,chromium:819294
Tbr: reed@google.com
Change-Id: I8aab9c151f2d0d96daa99b88a03ebfda6484ac60
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315993
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-10 07:53:45 +00:00
skia-autoroll
917a2d741e Roll Chromium from 02f4f19d6283 to b68279c2c191 (442 revisions)
02f4f19d62..b68279c2c1

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 reed@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: reed@google.com
Change-Id: I504cc37ecc1e128c00fd4d54e0e3cf9156edb7e1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/316044
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-10 07:44:45 +00:00
Brian Osman
5eea6aea02 SkSL: Fail harder when trying to return a value from a void function
This prevents the inliner from getting really confused when the result
variable is null, but a return statement appears and tries to use it.

Bug: oss-fuzz:25525
Change-Id: Ief85990f707e68e104931a9778ffab35a27acfb1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315963
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-09 21:07:32 +00:00
Brian Osman
d8070397d6 SkSL: Disallow 'void' except as a function return type
Bug: oss-fuzz:24498
Change-Id: I8d20814c4bbcef8fa6ca05387ac45efcef591d18
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315960
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-09 20:58:07 +00:00
Herb Derby
1d0ee96ebf remove initialOrigin - no longer needed
When the subrun data was encoded as vertex lists, this was needed
to facilitate translation of the vertices. Now that subruns are
stored with no initial origin, this can be folded into the
initial matrix for all calculations.

Other clean up:
Remove unused variable fTextType.

Change-Id: I588d4ae68d63ea1bb0aa6fa4fa887c410ab6e2b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315959
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2020-09-09 20:48:17 +00:00
John Stiles
98c1f820d2 Add a new statement type 'InlineMarker' to indicate inlined functions.
This will be leveraged in followup CLs to avoid recursive inlining death
spirals.

Change-Id: Icf99c88c4acaaa766e0dc0971830329e24d70509
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315861
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
2020-09-09 19:55:27 +00:00
Brian Osman
db16c4845f Fix use-after-free when variable declarations become unreachable
Bug: oss-fuzz:24289
Change-Id: I79ea84f8a0b7f593a79b6cc2904bf03879ed0eb9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315956
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-09 19:50:47 +00:00
Chris Dalton
c2ae19caa5 Add more flat line cases to trickycubicstrokes
Bug: skia:10419
Change-Id: Ie3eba0181d59d6ab759bcf8cc4b53dfac135cbd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315857
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-09-09 19:18:07 +00:00
Brian Salomon
038ba443a0 Temporary hack to force text texture index varying to be float.
Previous experiment showed disabling integer support in GrShaderCaps
improved ANGLE D3D11 ES3 perf.

Trying to determine if perf hit on ANGLE D3D11 ES3 is from
integer vertex attribs and unpack operations in VS or from
using an int varying to communicate the index to the FS.

Will revert this after observing trend on perf.skia.org.

Change-Id: I40f4c0397b1377922c3018be864c1b7048bcfba9
Bug: skia:10644
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315866
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-09 18:34:47 +00:00
Brian Osman
c95d3a124d SkSL: Catch any dangling Type or Function references before optimization
Bug: oss-fuzz:24108
Change-Id: I3af9d5dcdd2fbda39abf24c7e55f10f6d8aa916c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315859
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-09-09 18:27:28 +00:00
John Stiles
73a6bff204 Run the optimizer until we stop finding improvements.
This will be especially important once more aggressive inlining is
enabled, as the optimizer will need to run dead-function elimination
passes after inlining.

Change-Id: I8ccd5d6a9a041ee2b0a3ec5ef305e5df875b6947
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315738
Commit-Queue: John Stiles <johnstiles@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-09 18:16:47 +00:00
Weston Tracey
9fd0394c3a [infra] Target Android10 for GalaxyS9
Change-Id: I14092e8c41fb09a2d883a96a7b95f984b475846f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315864
Reviewed-by: Weston Tracey <westont@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Weston Tracey <westont@google.com>
2020-09-09 18:06:37 +00:00
Jorge Betancourt
646d6c5860 add oboe version 1.4.3 to third_party dependencies for Android's skottie audio player
Change-Id: I756acd1b70ad9b93fd79af6521015829f72318be
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/314356
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
Reviewed-by: Heather Miller <hcm@google.com>
2020-09-09 17:39:57 +00:00
Mike Klein
215d2b0fa4 impl SkMulDiv255Round with SkMul16ShiftRound
Inlining shift=8 is trivial for any compiler.
This eliminates the need to unit test the two functions are the same.

Change-Id: Icd181ff11eab73fba26755a9fbecd57260c38bbf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315887
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-09-09 17:01:17 +00:00
Brian Salomon
a0d6dc76f6 Revert "Perf bot experiment, disable GLSL integers on ANGLE ES3"
This reverts commit 27e7f77212.

Reason for revert: was a temporary hack to check perf

Original change's description:
> Perf bot experiment, disable GLSL integers on ANGLE ES3
> 
> Only affects Skia tools builds, not clients.
> 
> Change-Id: I9b713b74480359c7eea8a8db7b49fb49341c7ee1
> Bug: skia:10644
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315644
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=egdaniel@google.com,bsalomon@google.com

Change-Id: Id947c724e2f17a43d276df078f98482af8e4a02a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:10644
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315865
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-09-09 16:18:19 +00:00
skia-autoroll
21bebc68fd Roll dawn from 880013579381 to 0a1061da0c7f (14 revisions)
https://dawn.googlesource.com/dawn.git/+log/880013579381..0a1061da0c7f

2020-09-09 aleksi@sapon.ca Fix CMake build with MSVC
2020-09-09 jiawei.shao@intel.com Transition bind group resource states before dispatch in compute pass
2020-09-09 enga@chromium.org Typeify ColorAttachmentIndex
2020-09-08 aleksi@sapon.ca Vulkan: unused resolve attachments must be marked as such
2020-09-04 jiawei.shao@intel.com D3D12: Combine all the barriers before dispatch() in one call
2020-09-03 rharrison@chromium.org Remove SPVC toggles and excise remaining references
2020-09-03 rharrison@chromium.org Roll 4 dependencies
2020-09-03 cwallez@chromium.org Fix compilation with dawn_enable_wgsl=false
2020-09-02 rharrison@chromium.org Remove usages of SPVC
2020-09-02 enga@chromium.org Cleanup: always clear Vulkan textures with vkCmdClear*Image
2020-09-02 enga@chromium.org Cleanup: Make TexelBlockInfo a member of Format, not superclass
2020-09-02 cwallez@chromium.org Make ShaderModule reflection go through EntryPointMetadata
2020-09-02 cwallez@chromium.org TextureVk: Add a couple TODOs related to barriers.
2020-09-02 rharrison@chromium.org Roll third_party/tint/ 765348516..464928ed9 (3 commits)

Also rolling transitive DEPS:
  https://chromium.googlesource.com/external/github.com/google/shaderc from b6c82a149ed8 to 011139094ec7

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 cwallez@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: cwallez@google.com
Change-Id: I9cdcabe73ce3091ab4f269a38dcae08c9bfaf3d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315766
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-09-09 15:26:47 +00:00
John Stiles
0cc193a15a Return a 'made-changes' flag from control-flow optimization.
Change-Id: I735c8172b50c30d87e2326ef012f8771ac0193b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315652
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2020-09-09 15:21:57 +00:00
Mike Reed
81606b5d97 remove unused (and bit-rotting) Lua support
Change-Id: I1ee2d21b79e929e5976825ae75aa4db960b034c9
Docs-Preview: https://skia.org/?cl=315856
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315856
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
2020-09-09 14:33:32 +00:00
Nathaniel Nifong
2b1b2b2e8e Add a short description for concat and setmatrix saying whether it's a translate or something else
Change-Id: I3bb849f9e09a71ad5609840420f8f8d803e56634
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315737
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Nathaniel Nifong <nifong@google.com>
2020-09-09 14:16:42 +00:00
Corentin Wallez
759770666b Roll third_party/externals/spirv-cross/ 7778792ae..bdbef7b1f (19 commits)
Also remove fInverseW uses that are fixed by it now.

7778792aec..bdbef7b1f3

$ git log 7778792ae..bdbef7b1f --date=short --no-merges --format='%ad %ae %s'
2020-09-04 cwallez Fix -Wduplicate-enum and -Wrange-for-analysis.
2020-09-04 post Roll glslang/SPIRV-Tools deps.
2020-09-04 post Handle OpUndef %void.
2020-08-27 cdavis MSL: Support layered input attachments.
2020-09-02 post MSL: Fix OpCompositeInsert and OpVectorInsertDynamic.
2020-08-23 cdavis MSL: Don't set the layer for multiview if the device doesn't support it.
2020-08-07 cdavis MSL: Fix multiview view index calculation with a non-zero base instance.
2020-08-24 post Run format_all.sh.
2020-08-24 post Work around annoying warning on GCC 10.2.
2020-08-21 post Overhaul how we deal with reserved identifiers.
2020-08-20 post HLSL: Fix FragCoord.w.
2020-08-20 post HLSL: Deal with partially filled 16-byte word in cbuffers.
2020-08-20 post HLSL: Fix bug in is_packing_standard for cbuffer.
2020-08-13 lehoangq Fix #1445: MSL: Enclose args when convert distance(a,b) to abs(a-b)
2020-08-03 cdavis MSL: Fix handling of matrices and structs in the output control point array.
2020-07-29 post Add some test cases for complex type aliasing scenario.
2020-07-29 post Ensure that we use primary alias type when emitting flattened members.
2020-07-29 post GLSL: Be more aggressive about using type_alias.
2020-07-29 post Only rewrite type aliases for the base type.

Created with:
  roll-dep third_party/externals/spirv-cross

Change-Id: I24a6a12cbb08b1c2915de66cf707571b66aefe1c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315776
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-09-09 14:06:52 +00:00
Brian Osman
1313d1aa7a Make enum symbol tables standalone (no parent table)
Fixes cases where symbol lookup inside an enum would be allowed to
resolve things from the outer scope.

Bug: oss-fuzz:24674
Change-Id: I841224a7449d2a4f97e41a9d2edd4631ba888a7d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/315602
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2020-09-09 13:09:10 +00:00