Commit Graph

48370 Commits

Author SHA1 Message Date
Greg Daniel
690b4c4644 Add create backend texture with color upload bench.
Change-Id: Id4994cb809d6e19ca511b63dba71b45257eca927
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287618
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-05-04 19:33:17 +00:00
Adlai Holler
1ed4391fe7 Support large kernels on GPU in matrix convolution effect
Currently matrix convolution falls back to CPU execution for large kernels, due to the argument limit for fragment shaders.

Now for large kernels, we store them in a texture and sample them in a shader to sidestep the limit.

Change-Id: Icc069a701ea8e9cd0adf75f4bfd149fd22e31afd
Bug: skia:8449
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/263495
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Adlai Holler <adlai@google.com>
2020-05-04 19:26:48 +00:00
Chris Dalton
8d3eb24f2e Delete ToolUtils::set_path_pt
This can be done more simply with SkPathRef::Editor::writablePoints.

Change-Id: Icef31bf3a6cc2c8c4ef6da36167c574c73a0d944
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287497
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-05-04 19:00:57 +00:00
Kevin Lubick
8a2f29eae7 [infra] use more unique task id for perf upload
Change-Id: Ic68adf8cb8444b0ad2a704aecd0eb4362a11e27c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287386
Reviewed-by: Ravi Mistry <rmistry@google.com>
2020-05-04 17:19:03 +00:00
Chris Dalton
4b72661368 Remove RawIter usage cases from SkPath.cpp
Change-Id: I0a41c640f1eb423eb3ce53a36055226463991fcd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287004
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-05-04 16:27:50 +00:00
Brian Osman
2c9cc2f788 Blacklist glyph_pos GMs on the various cache-test configs
These are flaky on the Quadro bots, leading to errors in the cache
configs (that expect pixel-perfect replays).

Bug: skia:8534
Change-Id: I1ac06f5abbb13955951be9c9a8aad18fe1f00aa6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287382
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-05-04 15:50:29 +00:00
Brian Salomon
f686fa9af9 Make backdrop_hintrect_clipping GM use kClamp tile mode
Change-Id: Ic9d9200a7c1346d0e6bd70029331f9213db5e374
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287380
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2020-05-04 15:25:19 +00:00
Ben Wagner
b71e7121ab Fix potential leak of DWriteFontTypeface.
While disposing DWriteFontTypeface the base class must be disposed, but
if the resource releases fail before that then they currently return
instead of continuing. This means the DWriteFontTypeface is never
deleted.

Change-Id: I842a74a2ea5141210fae0cbd038f62266156c1c0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286816
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-05-04 15:12:49 +00:00
Brian Osman
3479a955fa Add declaration for pow() to sksl_interp.inc
... and a comment to try and prevent any more of these.

Change-Id: I58ddd0523710c66600020e9d4e2b93614a5f9d01
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287379
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-05-04 15:08:30 +00:00
Greg Daniel
b698ad3f2b Add d3d pipeline state cache
Change-Id: Iab9d4288a54d0743dfbf94f078b206e5df3b5f87
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287378
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2020-05-04 15:05:59 +00:00
Brian Osman
8842b37fc7 Adding some intrinsics to the interpreter
Includes all of the vectorized comparisons, as well as the selecting
and lerping variants of mix. The previous implementations of lerping mix
were available based on the compiler front-end, this moves them to the
byte code generator, so they're available in runtime effects (not just
generic interpreter programs).

Change-Id: I88d10c8a18a7e63e49acac8181b687e2b40ad66b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287008
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-05-04 15:00:29 +00:00
Jim Van Verth
280d4f76c7 Add rendertarget clear to D3D.
Change-Id: Ifccabb59f7cd9faa4bcbfc89785e9ee739a0e076
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286042
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-05-04 14:48:29 +00:00
Ethan Nicholas
9fdab9fea2 fixed an SkSL ASAN issue
Bug: oss-fuzz:20029
Change-Id: I8fcd6ab6a76dd003f90be6751bb9abaf21b2a0b9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286937
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2020-05-04 14:41:49 +00:00
Brian Osman
4dab280c28 Add some missing declarations to SkSL .inc files
Some new intrinsics were recently implemented in ByteCodeGenerator.
Those are visible to runtime effects via sksl_gpu.inc, but not to
generic interpreter prorgrams - added them to sksl_interp.inc to fix
that. (atan, fract).

length() is similar, but it still had a pure SkSL implementation. Remove
that, so that generic interpreter programs get the builtin version.

All of the others were missing half-precision overloads of existing
intrinsics. These don't matter much, but (I think) prevent confusing
type errors when calling these intrinsics with half-precision arguments
and getting float-precision results.

Change-Id: I87270efc2f0520d1ac2f18eee890147b5b1c93d0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287376
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-05-04 14:06:24 +00:00
Florin Malita
3facc9c886 [skottie] Non-legacy brightness effect
Includes POW intrinsic plumbing.

Change-Id: Ida961718e28822c8559f17f97003f67082dd44cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287156
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
2020-05-04 14:04:24 +00:00
Michael Ludwig
3d919c5301 Fix uninitialized read in simplifyRect()
Bug: oss-fuzz:21976
Change-Id: I635b9092bc4a30bb6a23ddcf1430a3ec06b9d598
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287377
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-05-04 14:01:19 +00:00
Robert Phillips
2329db1171 Switch to using the gpu-ddl sink(s) to generate the DDL images
The previous settings used the ddl-via - which doesn't use threads as effectively.

Change-Id: I82a0632d99c772421afc645f53bb749420275460
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285812
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-05-04 13:59:19 +00:00
skia-autoroll
cdf23dd9f1 Roll third_party/externals/dawn 303a3daf0dec..ccc40f6ffaa6 (1 commits)
https://dawn.googlesource.com/dawn.git/+log/303a3daf0dec..ccc40f6ffaa6

git log 303a3daf0dec..ccc40f6ffaa6 --date=short --first-parent --format='%ad %ae %s'
2020-05-04 yunchao.he@intel.com Fix a bug in ResourceUsageTrackingTests

Also rolling transitive DEPS:
  https://chromium.googlesource.com/chromium/src/third_party/markupsafe 8f45f5cfa000..8f45f5cfa000
  https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang 39281fb710c3..39281fb710c3
  https://chromium.googlesource.com/external/github.com/google/shaderc 41f271e6139c..41f271e6139c
  https://chromium.googlesource.com/chromium/src/third_party/jinja2 b41863e42637..b41863e42637

Created with:
  gclient setdep -r third_party/externals/dawn@ccc40f6ffaa6

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/+/master/autoroll/README.md

Bug: None
Tbr: cwallez@google.com
Change-Id: I70cf6bd9934a13a099fc81e693e7f86237a393eb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287278
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-04 06:10:58 +00:00
skia-recreate-skps
a1184aca58 Update Go Deps
Change-Id: I1cf3e926e95318d15840159639b1b3279a9125c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287256
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-05-04 05:35:23 +00:00
skia-autoroll
bd87bf432d Roll third_party/externals/angle2 df31624eaf3d..040e4f6fcf54 (14 commits)
df31624eaf..040e4f6fcf

git log df31624eaf3d..040e4f6fcf54 --date=short --first-parent --format='%ad %ae %s'
2020-05-01 tobine@google.com Vulkan: Minor command buffer refactor
2020-05-01 ianelliott@google.com Vulkan: Improve viewport and scissor for pre-rotation
2020-05-01 jmadill@chromium.org Work around strange git cl format issue.
2020-05-01 geofflang@google.com Handle 3D texture entire-mip initialization for FBO attachments
2020-05-01 cnorthrop@google.com Capture/Replay: Refactor default uniform handling for arrays
2020-05-01 tobine@google.com Vulkan: Migrate trace events and occlusion queries
2020-05-01 ynovikov@chromium.org doc: fix link to pre-commit try waterfall
2020-05-01 jmadill@chromium.org Capture/Replay: Use BindAttribLocation to force MEC compat.
2020-05-01 jmadill@chromium.org Validation: Fix some function types.
2020-05-01 jmadill@chromium.org Revert "Add type for attribute locations."
2020-05-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 39281fb710c3..2c53baedbb64 (2 commits)
2020-05-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/spirv-tools/src 49ca250b44c6..2e1d208ed9de (3 commits)
2020-05-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src 70eeffc7ca3d..b179a50e9c9c (8 commits)
2020-05-01 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 98d2cab108ce..694e21400ee5 (5 commits)

Created with:
  gclient setdep -r third_party/externals/angle2@040e4f6fcf54

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 bsalomon@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/+/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: None
Tbr: bsalomon@google.com
Change-Id: Idb9e07df50cd93543c2c61ffa1b715e36aeecde5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287198
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-04 04:50:29 +00:00
skia-autoroll
48eaa24e4d Roll ../src b39ec968b468..06a27cbea2e5 (419 commits)
b39ec968b4..06a27cbea2


Created with:
  gclient setdep -r ../src@06a27cbea2

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 bsalomon@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/+/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
Bug: None
Tbr: bsalomon@google.com
Change-Id: I8083ec91c1f9ddd3bdfbda303aa9a73fc3f17a65
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287196
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-04 04:41:28 +00:00
skia-autoroll
a92362484c Roll third_party/externals/swiftshader 694e21400ee5..b798cfa374eb (9 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/694e21400ee5..b798cfa374eb

git log 694e21400ee5..b798cfa374eb --date=short --first-parent --format='%ad %ae %s'
2020-05-02 capn@google.com Enable the shaderStorageImageArrayDynamicIndexing feature
2020-05-02 capn@google.com Enable the shaderStorageBufferArrayDynamicIndexing feature
2020-05-02 capn@google.com Enable the shaderSampledImageArrayDynamicIndexing feature
2020-05-02 capn@google.com Enable the shaderUniformBufferArrayDynamicIndexing feature
2020-05-02 capn@google.com Implement dynamic descriptor array indexing
2020-05-02 capn@google.com Skip image sampling if no SIMD lanes are active
2020-05-01 capn@google.com Move the OFFSET() macro to Reactor
2020-05-01 amaiorano@google.com Regres: use Subzero backend by default
2020-04-30 bclayton@google.com Update Marl to 3c643dd4c

Created with:
  gclient setdep -r third_party/externals/swiftshader@b798cfa374eb

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 bsalomon@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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: bsalomon@google.com
Change-Id: I6be990f565bdf65c94a68cba2e462ccbe762b2ec
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287197
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-04 04:37:23 +00:00
skia-recreate-skps
05c1e1c474 Update SKP version
Automatic commit by the RecreateSKPs bot.

TBR=rmistry@google.com
NO_MERGE_BUILDS

Change-Id: Ib98f93a3263114dc3aaa0603cc15c881a77bacda
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287150
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-05-03 08:43:56 +00:00
skia-recreate-skps
57f289d742 Update Go Deps
Change-Id: Ica0c5f35093bae2ca388cc539df14dc5018ef33b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287146
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-05-03 05:41:16 +00:00
skia-recreate-skps
80cab81409 Update Go Deps
Change-Id: I860add063c9c11c1b2e5fb9126bc9e336e6a653e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287085
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-05-02 05:33:57 +00:00
Chris Dalton
64964bb115 Update GrTriangulator to use SkPathPriv::Iterate
Change-Id: I0998f22e3ce958fd651c359c930a2e48af27ce73
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285985
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-05-01 22:35:28 +00:00
Ben Wagner
c19459bf1e Don't trust glyph runs in XPS.
In XPS if a glyph is out of range, ignore it. Also resolve the default
font in the new way, removing the last user of SkTypefacePriv.

In PDF handle fonts with zero glyphs correctly.

Rewrite SkBitSet to keep track of its size, move properly, and make it
more obvious when certain checks are actually made instead of relying on
undefined behavior.

Add a test in a GM to ensure we don't draw anything when a glyph is
out of range on all backends.

Fix the DirectWrite SkScalerContext to pass this new test for
consistency.

Bug: chromium:1071311
Change-Id: I2583970bf1425f59d0d64e3dd7d28109991f9ea9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286776
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-05-01 22:17:17 +00:00
Mike Klein
33951266c5 improve QOL of local fm_driver runs
The default Task Driver logging gets in the way on the console, so I've
sent it to /dev/null for local runs.  We control the horizontal and the
vertical.

Instead, print out each isolated failure and how to reproduce it:

    out/fm -i resources -b cpu -s ducky_yuv_blend #failed:
    	Resource "resources/images/ducky.jpg" not found.
    	../tools/fm/fm.cpp:573: fatal error: "Image(s) failed to load."

    	Signal 5:
    	_sigtramp (+0x1d)
    	sk_abort_no_print() (+0x5)
    	std::__1::__function::__func<...
    	_GLOBAL__sub_I_fm.cpp (+0x0)
    	main (+0x12d5)

    out/fm -i resources -b cpu --skvm true -s ducky_yuv_blend #failed:
    	Resource "resources/images/ducky.jpg" not found.
    	../tools/fm/fm.cpp:573: fatal error: "Image(s) failed to load."

    	Signal 5:
    	_sigtramp (+0x1d)
    	sk_abort_no_print() (+0x5)
    	std::__1::__function::__func<...
    	_GLOBAL__sub_I_fm.cpp (+0x0)
    	main (+0x12d5)

    2 runs of out/fm failed after retries.
    exit status 1

Bot runs still look ok,
https://task-driver.skia.org/td/TEaSLB6jtmRq5XDBUIwS?ifNotFound=https%3A%2F%2Fchromium-swarm.appspot.com%2Ftask%3Fid%3D4bea6af25506c010

Change-Id: I56adacdaeed5545785a3096a4e495eb524db442f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287017
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2020-05-01 21:54:47 +00:00
Brian Salomon
f1c9eaed95 Allow multiple closed observers on GrOpsTask.
Bug: skia:10188

Change-Id: Ibed96f10c07feddbbf1e78d014c8ea346c91e53c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287002
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2020-05-01 21:40:47 +00:00
Chris Dalton
c259202113 Remove SkPathVerb::kDone
This was meant as a "stop" verb for the old iterators. With the new
iterator, it simply leads to more SkUNREACHABLEs and SkASSERTs.

Change-Id: I9edd0cefaf4aff782f753560aebd528ed7f4ec04
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/287043
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2020-05-01 21:27:18 +00:00
Mike Klein
962020fe39 simplify binary ops too
Rename apply() to unary(), then add binary().

Fix unary to calculate N=base-inst+1.

Convert to simpler `auto&& fn` mode by renaming
approx_atan(y,x) to approx_atan2.  Now we can pass
functions, lambdas, non-lambda functors, whatever.

Change-Id: I17a6aa137f224edc0accd0509c5023a30980fe39
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286900
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2020-05-01 20:43:09 +00:00
Adlai Holler
6f994a880d Add benchmarks for large kernel matrix convolutions
Change-Id: I999881aae3666fa92d83a9cb23582d8fa3f5cf81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286998
Commit-Queue: Adlai Holler <adlai@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2020-05-01 20:40:04 +00:00
skia-autoroll
54d269dd0b Roll third_party/externals/angle2 957417438089..df31624eaf3d (13 commits)
9574174380..df31624eaf

git log 957417438089..df31624eaf3d --date=short --first-parent --format='%ad %ae %s'
2020-05-01 cclao@google.com Vulkan: Reduce the onBufferRead/onBufferWrite API verbosity a bit
2020-05-01 tobine@google.com Vulkan: Fix dbg util label bug
2020-05-01 jmadill@chromium.org Tweaks to presubmit script.
2020-05-01 jiajia.qin@intel.com GL: Implement EGL_EXT_image_dma_buf_import
2020-05-01 jiajia.qin@intel.com Enable GL_BGRA_EXT for es backend
2020-04-30 jmadill@chromium.org Capture/Replay: Fix tool after parameter change.
2020-04-30 timvp@google.com Detect non-ascii characters during presubmit
2020-04-30 jmadill@chromium.org Add type for attribute locations.
2020-04-30 cnorthrop@google.com Capture/Replay: Disable default uniform updates for arrays
2020-04-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader 941293d512fe..98d2cab108ce (2 commits)
2020-04-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src f03cb290ac10..39281fb710c3 (1 commits)
2020-04-30 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/vulkan-validation-layers/src f0f3d8b75af9..70eeffc7ca3d (10 commits)
2020-04-30 cclao@google.com Vulkan: use fine grain stage for buffer barriers

Created with:
  gclient setdep -r third_party/externals/angle2@df31624eaf3d

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 ethannicholas@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/+/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: None
Tbr: ethannicholas@google.com
Change-Id: I3139eab741ec61d5527ced1750c97bb8b17847cc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286859
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-01 20:38:06 +00:00
Robert Phillips
d58a2705bd Add path bounds to SW path mask key
This was a potential issue before but DDLs greatly exacerbate
the situation. If the same path is rasterized multiple times
w/ a slightly different offset or w/ slightly different floating
point math, the actual size of the mask can change slightly.
This causes problems when the mask is cached since, if a prior
differently sized version is found in the cache, the fulfillment
code will assert.

Since our DDL test harness renders using tiles, this problem
arises more often in that configuration especially when
CCPR is unavailable.

Change-Id: Ie344b031cb49fedd9527f66b17ff610afa4a2f12
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286902
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2020-05-01 20:33:05 +00:00
Xianzhu Wang
a91e478ceb Restore SkCanvas::kPreserveLCDText_SaveLayerFlag
Will use this in Chrome to support LCDText in saveLayer/restore with
opacity.

This partly reverts https://skia-review.googlesource.com/c/skia/+/181841.

Bug: 1076019
Change-Id: Id870fb1dcc95c9b319797e936725b4447a97d1d5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285956
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Auto-Submit: Xianzhu Wang <wangxianzhu@chromium.org>
2020-05-01 20:33:04 +00:00
Greg Daniel
cba4ee23c4 Fill in d3d program desc with d3d specifics.
This desc will allow us to add a pipeline state cache for d3d.

Change-Id: I0cdf4166e7253df1c184f81a883878e707b77f36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286956
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
2020-05-01 20:28:00 +00:00
Brian Salomon
24dcd207ea Revert "Put top level FPs into their own functions"
This reverts commit 4e7ee6e0af.

Bug: chromium: 1073106

Change-Id: Ifb02fef97560d2eaf3070b6d0daf130c8bff11a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285105
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-05-01 20:27:59 +00:00
skia-recreate-skps
bf85984306 Update Go Deps
Change-Id: Icae34f6600b8896d6ef0fe2524eca94739cca1f2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286860
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2020-05-01 20:22:54 +00:00
Jim Van Verth
a1c140afed Remove linear filter from Metal layer.
Metal layer was using linear filter which was introducing blur.
Changed to nearest filter.

Bug: skia:10172
Change-Id: Ia69d6c9a56f9a2f69b5e98fd9941be52ec01b7d3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286616
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2020-05-01 20:22:53 +00:00
skia-autoroll
82e2a84247 Roll third_party/externals/dawn 754c161fd366..303a3daf0dec (6 commits)
https://dawn.googlesource.com/dawn.git/+log/754c161fd366..303a3daf0dec

git log 754c161fd366..303a3daf0dec --date=short --first-parent --format='%ad %ae %s'
2020-04-30 bryan.bernhart@intel.com D3D12: Decouple descriptor heap allocations.
2020-04-30 yunchao.he@intel.com Add tests for resource tracking in compute - 1
2020-04-30 enga@chromium.org Suppress MSVC warnings about invalid switch values
2020-04-30 cwallez@chromium.org Enable -Wno-language-extension-token except on Windows
2020-04-30 cwallez@chromium.org Fix and enable -Wgnu-anonymous-struct
2020-04-30 cwallez@chromium.org Fix and enable -Wnested-anon-types

Also rolling transitive DEPS:
  https://chromium.googlesource.com/chromium/src/third_party/jinja2 b41863e42637..b41863e42637
  https://chromium.googlesource.com/chromium/src/third_party/markupsafe 8f45f5cfa000..8f45f5cfa000
  https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang 39281fb710c3..39281fb710c3
  https://chromium.googlesource.com/external/github.com/google/shaderc 41f271e6139c..41f271e6139c

Created with:
  gclient setdep -r third_party/externals/dawn@303a3daf0dec

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/+/master/autoroll/README.md

Bug: None
Tbr: cwallez@google.com
Change-Id: I387aa4e45352d3caa648fd9d37eb485e24561cb1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286857
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-01 20:17:50 +00:00
Jim Van Verth
5ce94405e4 Add RenderTargetViews to D3D render targets
Change-Id: I352cc4db7fc1353992b4c127d8e2104a46d88ded
Bug: skia:9935
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286936
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2020-05-01 20:17:48 +00:00
Julia Lavrova
8335ab694d Hide more of leftToRight checks
Moving some code down from paragraph to line.

Change-Id: I9408951fe8d05a5956e4bbe4b50c9ef3f3dc1f9c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285838
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2020-05-01 20:12:44 +00:00
Brian Osman
b32d66b296 Add layout(srgb_unpremul) to SkSL
For 3 and 4 channel float uniforms, this states that the data supplied
is unpremul sRGB, and transforms that data to the destination color
space (still unpremul) automatically.

Change-Id: I1b420d2fd10640963fa8e6736af3747cfc6e7d5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286656
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2020-05-01 20:12:43 +00:00
Mike Klein
45be07785d length()
- add length() as a special intrinsic
 - style refactoring I wrote to help debug the CL
 - impl dup2,3,4 in program_fn
 - (better) fix dup2,3,4 in byte code interpreter

Change-Id: I7cd94a4bc03efc6af2053e9e6ae18b4da94363ed
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286896
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2020-05-01 20:07:40 +00:00
skia-autoroll
cd7732b05a Roll ../src c4c6cbc6102b..b39ec968b468 (449 commits)
c4c6cbc610..b39ec968b4


Created with:
  gclient setdep -r ../src@b39ec968b4

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 ethannicholas@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/+/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
Bug: None
Tbr: ethannicholas@google.com
Change-Id: I44e139e1356baf5181bcb6f405e8f7c8114710b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286858
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-01 20:07:38 +00:00
Brian Osman
d9bde07f1e Add SkRuntimeShaderBuilder, clean up SkRuntimeEffect API a bit
Utility class for getting named access to uniforms and children of an
SkRuntimeEffect (also functions as an example of using the
SkRuntimeEffect public API).

Moved several internal SkRuntimeEffect functions to private, and added
findInput/findChild helpers.

Change-Id: I8c2e7745ea81670a49b7ab2f51ce44a8d8169278
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286516
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-05-01 20:02:35 +00:00
skia-autoroll
f30454180f Roll third_party/externals/swiftshader 7d6b5913c98c..694e21400ee5 (6 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/7d6b5913c98c..694e21400ee5

git log 7d6b5913c98c..694e21400ee5 --date=short --first-parent --format='%ad %ae %s'
2020-04-30 bclayton@google.com Vulkan/Debug: Don't step for column updates
2020-04-30 bclayton@google.com Vulkan/Debug: Fix build with clang-10.
2020-04-30 bclayton@google.com Device: Use std::unique_ptr instead of raw pointers
2020-04-30 amaiorano@google.com CMake: add graphviz generation scripts
2020-04-30 jrprice@google.com Fix null dereference in OFFSET macro
2020-04-30 capn@google.com Fix JIT on separate thread

Created with:
  gclient setdep -r third_party/externals/swiftshader@694e21400ee5

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 ethannicholas@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/+/master/autoroll/README.md

Cq-Include-Trybots: skia/skia.primary:Test-Debian10-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
Tbr: ethannicholas@google.com
Change-Id: I70f080b8b0c64eb205ebd99a470196987054db10
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286856
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2020-05-01 20:02:34 +00:00
Chris Dalton
f7a3307a22 Update tessellation to use SkPathPriv::Iterate
Change-Id: I7133b3e4de246bab08c503084e1b46f20de26b91
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285753
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-05-01 20:00:19 +00:00
Kevin Lubick
5443bb32a2 [canvaskit] Start a generic puppeteer perfing system.
IMPORTANT LESSON: when bringing in node (and possibly other
executables) via CIPD, add them to the path in gen_tasks_logic
so the parent executable (the task driver itself) has the right
PATH set. Otherwise, the subprocesses it spawns might grab the
wrong version because of how golang handles environments of
subprocesses.

This is starting as a fork of Skottie WASM. I hope to have a more unified
system for creating and running benchmarks.

Overall overview:
gen_tasks_logic.go creates a task in task.json that compiles
CanvasKit and the task drivers and then executes our task
(i.e. perf_puppeteer.go)

perf_puppeteer runs a node program (perf-with-puppeteer.js)
that uses puppeteer to execute benchmarking code on an
html page (canvaskit-skottie-frames-load.html).

I needed to update the node package so npm could be updated from
3.x to 6.14.4 so it knew about `npm ci`. This may not have been
entirely necessary, given the problems of executing the correct
npm (see important lesson above), but it hasn't broken things
further, so more up-to-date is probably a good thing.

Suggested Review Order:
 - canvaskit-skottie-frames-load.html (note it is similar to
   skottie-wasm-perf.html, but it waits for a button click
   to start animating and records times from the main JS thread
   itself)
 - perf-with-puppeteer.js (similar to skottie-wasm-perf.js, but
   has some things made optional [e.g. tracing])
 - perf_puppeteer_test.go (shows the inputs/outputs of various steps)
 - perf_puppeteer.go
 - Everything else.


Change-Id: I380e81b825f36682c257664d488267edaf36369e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285783
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2020-05-01 19:23:08 +00:00
Florin Malita
e55e56038c Hoist pixel geometry adjustments out of SkBaseDevice::CreateInfo()
We only call CreateInfo() from internalSaveLayer(), and always pass
kNever_TileUsage.  Move the related pixel geo override to
internalSaveLayer, and remove CreateInfo::AdjustPixelGeometry().

(also swap the args order to "prove" we're covering all callers)

NOTREECHECKS=true
Change-Id: Ie11c3f501d262f070cf97797cb549d3afa87d679
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286876
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2020-05-01 16:35:32 +00:00