Commit Graph

41099 Commits

Author SHA1 Message Date
Kevin Lubick
a064c2812e [canvaskit] Make SkImageShader from SkImage
This removes a few src/ includes as well, to avoid using private
implementations like we did.

Change-Id: Ic9a21d04a131c30e17dfca6d8ea45bdefd362aa7
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/206062
Reviewed-by: Mike Reed <reed@google.com>
2019-04-04 13:42:41 +00:00
Ethan Nicholas
f06576b9af SkSL now properly errors when invocations are used outside of a geometry shader
Bug: skia:8843
Change-Id: Ibe1e57358520bc989dd5e479aaa1dd38fe573d5c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205928
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
2019-04-04 13:18:19 +00:00
Robert Phillips
76cf552e28 Stop using pendingIO in read/writeSurfacePixels
This changes the implementation to always flush for these operations.
Once partial DAG flushes are implemented this behavior will be better than the old method.

Change-Id: I1f9edd33dcf5aa15cc5dcdf8f0e06a3b3cd88f48
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205584
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-04-04 13:04:39 +00:00
Kevin Lubick
ee91c07a76 [canvaskit] adding drawAtlas to canvas API
Also re-works colors in the JS part to be unsigned,
so there's less chance for oopsies when passing them
to the C++ side.

Change-Id: I3f56d22e873e1407c402606444c50b76dd34ffd4
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204543
Reviewed-by: Mike Reed <reed@google.com>
2019-04-04 13:03:35 +00:00
Mike Reed
98f4e81d49 rely on clients to opt in to legacy enums
Bug: skia:8937
Change-Id: I4cd9d44e87ce3309884d563c8e11336f0c39faf0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205934
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
2019-04-04 12:56:29 +00:00
Greg Daniel
f346df396a Minor refactoring of where we call addingWork in GrVkCommandBuffer.
This is a quick refactor that a pulled out to setup for a follow on change.

Bug: skia:
Change-Id: I3be36b44396e7b72abe5d9627c92263ee13b529a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205923
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-04-04 11:46:19 +00:00
skia-recreate-skps
dde12a25bb Update go_deps asset
Automatic commit by the UpdateGoDEPS bot.

TBR=borenet@google.com

Change-Id: I63cb58322976946909cac90e07b0d88b3a05a36c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205976
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-04-04 05:45:59 +00:00
skia-autoroll
74c61cd2f1 Roll ../src 38969ffb5d49..3ae962179e68 (476 commits)
38969ffb5d..3ae962179e


Created with:
  gclient setdep -r ../src@3ae962179e

The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=jlavrova@google.com

Change-Id: I8f26cd1cc17775876fa7274047516736cb948c47
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205983
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-04 05:18:59 +00:00
skia-autoroll
74d11186fe Roll third_party/externals/angle2 89899748a858..43997017b0ed (9 commits)
89899748a8..43997017b0


git log 89899748a858..43997017b0ed --date=short --no-merges --format='%ad %ae %s'
2019-04-04 syoussefi@chromium.org Vulkan: fix non-float clear with draw
2019-04-03 syoussefi@chromium.org Vulkan: Allow vertex-only pipelines
2019-04-03 jmadill@chromium.org Minor cleanups to run_code_generation.
2019-04-03 jmadill@chromium.org Add presubmit to commit queue.
2019-04-03 jmadill@chromium.org Fix OOB access for dynamic attribs with offsets.
2019-04-03 syoussefi@chromium.com Disable Clear and TextureUpload perf tests on D3D11
2019-04-03 jmadill@chromium.org D3D11: Skip DepthTexturesWithMipmaps on AMD/D3D11.
2019-04-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src e0d59bbe1857..ef807f4bc543 (1 commits)
2019-04-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 320a7de5c9a5..e2ddb9371edb (3 commits)


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

The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=jlavrova@google.com

Change-Id: I7726bc40e831c5b6b618d9851adb1ff22fc2976b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205981
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-04 04:51:39 +00:00
skia-autoroll
b06a0c63c9 Roll third_party/externals/swiftshader 2b9fb4bf5ece..225a13016b1c (11 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/2b9fb4bf5ece..225a13016b1c


git log 2b9fb4bf5ece..225a13016b1c --date=short --no-merges --format='%ad %ae %s'
2019-04-03 bclayton@google.com Implement dynamic buffer offsets.
2019-04-03 sugoi@google.com Removed SwiftShader's custom DrawType enum
2019-04-03 chrisforbes@google.com Add support for OpKill
2019-04-03 bclayton@google.com VkPipeline: Add basic optimization passes.
2019-04-03 bclayton@google.com SpirvShader: Ignore unreachable inputs for Phis.
2019-04-03 bclayton@google.com Regres: Reduce dEQP logging efforts
2019-04-03 bclayton@google.com Regres: Remove hack to always start with a daily test
2019-04-03 bclayton@google.com Regres: Include failure reasons in CI message
2019-04-03 bclayton@google.com Regres: Really kill timed-out processes
2019-04-03 bclayton@google.com Regres: Changes to reduce timeouts
2019-04-03 swiftshader.regress@gmail.com Regres: Update test lists @ 2b9fb4bf


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

The AutoRoll server is located here: https://autoroll.skia.org/r/swiftshader-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
TBR=jlavrova@google.com

Change-Id: Ia43bbbdeb59663f5cfc2893cf2afa43c5189564b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205982
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-04 04:38:09 +00:00
recipe-roller
b6d04556c3 Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/b8268cad11b722e682b519f78990205f3f98f6c0 Reland "git cl status: differentiate "dry-run" from generic "commit"." (tandrii@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Id80802ccbfca55e26d012c93c89bc2a950d9eac2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205968
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-04-04 00:27:37 +00:00
Mike Reed
5c5de21463 no more legacy enum references
Bug: skia:8937
Change-Id: I64ba9dffe340769ead0de54a82cd32b61f87c57d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205838
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-04-03 21:24:17 +00:00
Hal Canary
3571169f51 Fix SkTypeface_Mac::getGlyphToUnicodeMap
Fix the slow fallback to actually fill out the table.

Always use the first non-zero glyph to codepoint mapping.

Change-Id: Ib76daecee21d1b81b7c6e0361e7d8aae5494b19a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205925
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Hal Canary <halcanary@google.com>
2019-04-03 21:10:37 +00:00
Florin Malita
866e262a21 [skottie] Fix gradient ramp for non-solid layers
Two issues:

  1) Empirically (per AE's model), only solid layers transform the effect space.
     All other layer types implement their effects ignoring the layer xform.

  2) Due to the effect deferral mechanism in sksg, shader effects are
     sometimes applied with a different transform than intended.

To address #1, tweak the layer builder logic to attach the effects
before/after the transform node, depending on the layer type.

For #2, track the CTM active when the shader effect is attached and undo
any intervening transformations via a local matrix when the shader is
actually applied to SkPaint.

Change-Id: I29b5a4df3b223e7da9dfc36b0d7d40055d192ac0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205922
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-04-03 20:46:35 +00:00
Ethan Nicholas
147c08709e fix SkSL constant comparisons involving negated vectors
Bug: skia:8852
Change-Id: I8ff7c0b38f32a6cb908f9067bb473aa779f1518c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205835
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-04-03 20:34:25 +00:00
Ethan Nicholas
595540b321 fixed error reporting in SkSL->Metal
Bug: skia:8843
Change-Id: Ie27e805fb4fc1efd34253645cb82cc88f682884d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205926
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-04-03 20:32:04 +00:00
Herb Derby
2273c900ea GM for SkOverdrawCanvas
Change-Id: Ice39bca25df0255448dce726e5c0d86dce889a60
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205940
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-04-03 20:28:54 +00:00
Chris Dalton
a8fbeba6cb Add a cap to allow coverage counting or not
We don't want to just disable the "ccpr" path renderer anymore (or
whatever it should be called), because we are adding an MSAA
implementation. This new cap will eventually tell ccpr whether it can
use coverage counting, or if it should just use the MSAA impl.

Bug: skia:
Change-Id: Ie6e5ca1a637ca4408bc6bb844153afa9da26f58e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204883
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-04-03 19:39:24 +00:00
Mike Klein
22a5e345c9 set PNG compression level back to 1
On my machine, this cuts the CPU time to run all GMs and write out
PNGs by about half, from ~67s to ~34s (wall, 4s -> 3s).  File size
goes from 148M to 180M, about a 22% increase.

Change-Id: I50f051e5c87cc6854797d6838e0342cbd7e95003
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204130
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-04-03 19:39:05 +00:00
Chris Dalton
baa1b357ef Rename GrPipeline::Flags to GrPipeline::InputFlags
Renames the Flags to InputFlags and makes it a strongly typed enum.
Simplifies the relationship between GrSimpleMeshDrawOpHelper::Flags
and GrPipeline::InputFlags.

Bug: skia:
Change-Id: Ia25b8526ff96a47428dfbb82da18dbebdd382c5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204906
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-04-03 19:29:54 +00:00
recipe-roller
908413c8cb Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/25eb154c14012bdd38e975769bd6257820d924f3 Add angle_root custom var to ANGLE gclient config. (jmadill@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ice2f6941f538544158a505a76573d4348e103091
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205837
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-04-03 18:40:24 +00:00
Robert Phillips
04d2ce2df4 Reset GrVkCommandBuffer's work status in end()
Since GrVkCommandBuffers are recycled, the persistant work status was disabling the skipping of empty flushes

Change-Id: Id551b967a8a73c07f802a393ba00053a0115e96b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205834
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-04-03 18:23:52 +00:00
Herb Derby
8557174e34 Remove SkFindAndPlaceGlyph from gn
Change-Id: I66274290ce56104a33b9c9b2196bd87675d64c9d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205839
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-04-03 18:14:20 +00:00
Brian Salomon
2c791fcdf2 Track the number of resources that would become purgeable after flush
in GrResourceCache.

Bug: skia:8927
Change-Id: Ia00ba0ea541a22e29e9a8208044e1fabd5296782
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205484
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-04-03 18:06:08 +00:00
Brian Osman
f71b070ffd Fix the GLSL persistent cache (and add a config to test it)
We need to store (up to) three GLSL strings in the cache entry,
along with the bookkeeping to reconstruct them. To make things
simpler, we now store the null terminators.

Change-Id: Ic4fe03cb5d774464372ceec8740da1bfe9069550
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205823
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-04-03 18:05:22 +00:00
Michael Ludwig
31ba7182d5 Support strict constraints for bulk texture sets
Change-Id: I67f2f60d4a8913c7ae18bfbea68825294b693562
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205824
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2019-04-03 18:01:02 +00:00
Hal Canary
0f2f522246 SkMD5 returns digest
Change-Id: I9eb9095131adb5862d286b211501bf194ef8e91e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205822
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-04-03 17:52:22 +00:00
Herb Derby
73f23f97df Move overdraw canvas to using new painter
Change-Id: I8b7cda23fd244e03dfac1cdadbe7826532cfe99a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205828
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-04-03 17:32:23 +00:00
Mike Klein
d0389c596d split cpu+gpu work queues
Split work queues for CPU and GPU, assigning using a --backend
whitelist.  This lets us up the CPU process limit to NumCPUs,
while keeping the GPU process limit at 8.

On my desktop this speeds up this mixed workload about 2x:

cat <<EOF | go run tools/fm/fm_bot.go -quiet -script - out/fm
    b=cpu gms ct=8888 w=$WHERE/8888 legacy=true  # old and busted
    b=cpu gms ct=8888 w=$WHERE/srgb              # new hotness
    b=gl  gms ct=8888 w=$WHERE/gl
    b=mtl gms ct=8888 w=$WHERE/mtl
    b=cpu gms ct=565  w=$WHERE/565
    b=cpu gms ct=f16  w=$WHERE/f16
    b=skp gms         w=$WHERE/skp
EOF

Before:        44.37 real       303.87 user        15.40 sys
After:         21.87 real       480.05 user        27.10 sys

Change-Id: Ibea4537c8cdf278f8e4621f26ebacd942952eec3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205833
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-03 17:12:33 +00:00
Brian Osman
fbe2406693 Reland "Remove the NullGL interface (and associated test context)"
This reverts commit 215da624d1.

Reason for revert: Blink issues ironed out.

Original change's description:
> Revert "Remove the NullGL interface (and associated test context)"
> 
> This reverts commit de206c75c2.
> 
> Reason for revert: Chrome is having issues with the switch to Mock in blink tests.
> 
> Original change's description:
> > Remove the NullGL interface (and associated test context)
> > 
> > Bug: skia:
> > Change-Id: Ie3c9ee39fc1e0a4406de085c60d8433ffb4419df
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/203708
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Commit-Queue: Brian Osman <brianosman@google.com>
> 
> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com
> 
> Change-Id: Iff0cbf29dcea26957efc800a8c33d0ad8285de0a
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205343
> Reviewed-by: Brian Osman <brianosman@google.com>
> Commit-Queue: Brian Osman <brianosman@google.com>

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

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

Bug: skia:
Change-Id: I1f4fbbcb00f302c5d830cb1392badd6ec7a33c69
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205832
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-04-03 16:38:10 +00:00
Mike Klein
1450a47409 support comments
E.g.

    cat <<EOF | go run tools/fm/fm_bot.go -processLimit 0 -quiet -script - out/fm
        b=cpu gms ct=8888 w=$WHERE/8888 legacy=true  # old and busted
        b=cpu gms ct=8888 w=$WHERE/srgb              # new hotness
    EOF

Change-Id: Ia92ba113ae95478313e1f2cc18b7270ea1aa8a42
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205831
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-03 16:00:00 +00:00
Mike Klein
4daf637187 add --legacy to fm, legacy=true to fm_bot
E.g.

    ~/skia (make-from-memory↑2|●1…) $ cat test.sh
    #!/bin/bash

    set -e
    set -x

    WHERE=${1:-foo}

    ninja -C out fm

    rm -rf $WHERE
    mkdir -p $WHERE

    cat <<EOF | go run tools/fm/fm_bot.go -processLimit 0 -quiet -script - out/fm
        b=cpu gms ct=8888 w=$WHERE/8888 legacy=true
        b=cpu gms ct=8888 w=$WHERE/srgb
        b=cpu gms ct=565  w=$WHERE/565
        b=cpu gms ct=f16  w=$WHERE/f16
    EOF

    ~/skia (make-from-memory↑2|●1…) $ time ./test.sh
    + WHERE=foo
    + ninja -C out fm
    ninja: Entering directory `out'
    ninja: no work to do.
    + rm -rf foo
    + mkdir -p foo
    + cat
    + go run tools/fm/fm_bot.go -processLimit 0 -quiet -script - out/fm
           11.81 real       318.92 user        14.51 sys

    ~/skia (make-from-memory↑2|●1…) $ idiff foo/8888/ foo/srgb/
    671 files are identical.
    25 diffs written to diff.html

Change-Id: I01fe1ceeada971d8d18efc11961b9f753624fcf2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205830
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-03 15:52:40 +00:00
Mike Klein
1b56cdbd9b -script - for stdin
These do the same thing:

 $ go run tools/fm_bot.go out/fm b=cpu gms
 $ echo "b=cpu gms" | go run tools/fm/fm_bot.go -s - out/fm

~/skia (make-from-memory↑2|…) $ cat test.sh

set -e
set -x

mkdir -p foo
cat <<EOF | go run tools/fm/fm_bot.go -j 0 -q -s - out/fm
    b=cpu ct=8888 gms w=foo/8888
    b=cpu ct=565  gms w=foo/565
    b=cpu ct=f16  gms w=foo/f16
EOF
~/skia (make-from-memory↑2|…) $ time ./test.sh
+ mkdir -p foo
+ cat
+ go run tools/fm/fm_bot.go -j 0 -q -s - out/fm
        9.47 real       234.71 user         9.12 sys

Change-Id: If0e8de2772f12de4257671d24f70662c423581c3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205826
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-04-03 15:34:00 +00:00
Mike Reed
fae8fceb4a Use SkTileMode instead of nested enum
Add guard to transition clients

Change-Id: Ia7a3e8f95722f91e84af262168dadf89a78707da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205720
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
2019-04-03 15:24:18 +00:00
Mike Klein
408c3eaada don't have fm_bot send fm empty sources to run
Running fm_bot at head I'm confronted with a puzzling error:

    2019/04/03 10:26:01
    out/fm -b cpu -w foo -s big_rrect_rect_aa_effect filterbitmap_image_mandrill_512.png                    #failed (exit status 1):
    Don't understand --source ... bailing out.

    2019/04/03 10:26:05 1 invocations of out/fm failed

And of course running that command works fine.  Puzzling!

To fix this, we must take care not to subslice sources past its end,
which fills with defaults, a bunch of extra "" sources.  And add some ''
around the unknown source to make the error message easier to parse.

Serves me right for not testing this before I landed that tweak...

Change-Id: I5c2abb35733b32a1142b0f42c4323112969ad2bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205825
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
2019-04-03 15:15:04 +00:00
Max Vujovic
1cc7874152 Reland "Inset blur domain a tiny bit to prevent certain GPUs from sampling transparent black from scratch textures."
This is a reland of 730c53ae3c

Original change's description:
> Inset blur domain a tiny bit to prevent certain GPUs from sampling transparent black from scratch textures.
> 
> When running Skia GPU blur on an iPhone X, I noticed a bit a of transparency seeping into my clamped blur on the right and/or bottom edges of certain-sized rectangular blurs with large blur radii.
> 
> I could only repro this on an iPhone X; I couldn't repro on a retina Macbook Pro or a 1x external screen.
> 
> I think the iPhone X GPU is rounding the sampling coordinate a little differently than most other GPUs or there's some floating point error involved in the shader that makes it sample pixels outside of the desired blur domain. Since the blur source is inside a scratch texture filled with transparent black, some undesirable transparent black gets pulled in when we're decimating and blurring the source.
> 
> Bug: https://bugs.chromium.org/p/skia/issues/detail?id=8942
> 
> Change-Id: Iff28c3ee5d069c6999a831d4b156a650be3a9eb8
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205208
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Bug: https://bugs.chromium.org/p/skia/issues/detail?id=8942
Change-Id: Id7737476e36ab824d5e50b8d7c3c8a7468a7807b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205821
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-04-03 14:46:48 +00:00
recipe-roller
ea04219e6b Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/9a5e3bd817833545f8bc0ebdcbde5c86051c8bc6 gclient_scm: Simplify fetching refs. (ehmaldonado@chromium.org)
  https://crrev.com/52f1494ca34df2d2b5d20c24e6b16a85ed76b460 [lucicfg] Bump lucicfg version v1.5.12 -> v1.6.0. (vadimsh@chromium.org)
  https://crrev.com/865445eb8a457bd1acf643d427e722f640c31f6f [bb] Deploy bb (nodir@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I786301f78ac899c968a59b5deb27f4a00cabab43
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205820
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-04-03 14:10:28 +00:00
Mike Klein
290690c73a GrContext abandon: fail -> skip
It's hard to run the preAbandonGpuContext bots if we consider abandoned
to be a hard failure.

Actually, can you double check my suspicion that checking
ctx->abandoned() here might kind of make the whole bot moot?  If we
check ctx->abandoned() here before drawing any GpuGM's content, isn't
the bot just spinning through without ever attempting to draw anything?

Cq-Include-Trybots: skia.primary:Test-Ubuntu18-Clang-Golo-GPU-QuadroP400-x86_64-Release-All-PreAbandonGpuContext
Change-Id: Id545ce88faef3bab6150cb5229422ab48399f5b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205594
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-03 14:06:18 +00:00
Mike Klein
176da0bb8a tiny tweak: no need to reload lottie files
Change-Id: I759637016becb5e257c21134224ad44129c28ab0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205760
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-04-03 13:29:01 +00:00
skia-autoroll
38cbbb86df Roll ../src b3f3a36219a1..38969ffb5d49 (477 commits)
b3f3a36219..38969ffb5d


Created with:
  gclient setdep -r ../src@38969ffb5d

The AutoRoll server is located here: https://autoroll.skia.org/r/chromium-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Perf-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Release-All-CommandBuffer;skia.primary:Test-Mac10.13-Clang-MacBookPro11.5-GPU-RadeonHD8870M-x86_64-Debug-All-CommandBuffer
TBR=jlavrova@google.com

Change-Id: Ia6f7175d6adfddd72ee0e162cfff62b617f26c57
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205478
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-03 13:21:28 +00:00
skia-autoroll
60ab988635 Roll third_party/externals/angle2 6cb0cff57376..89899748a858 (11 commits)
6cb0cff573..89899748a8


git log 6cb0cff57376..89899748a858 --date=short --no-merges --format='%ad %ae %s'
2019-04-03 jie.a.chen@intel.com ParallelCompile: D3D compute
2019-04-03 jdarpinian@chromium.org Mac: Support using an IOSurface as the default framebuffer
2019-04-02 geofflang@chromium.org Vulkan: Have the WindowSurfaceVk own the submit semaphores.
2019-04-02 jgilbert@mozilla.com Windows SDK includes need to be lowercase for MinGW builds.
2019-04-02 syoussefi@chromium.org Vulkan: glClearBuffer* implementation
2019-04-02 jonahr@google.com Ignore flaky dEQP failures on Windows
2019-04-02 geofflang@chromium.org Add a mac_toolchain update DEP. Update use_system_xcode to match Chrome.
2019-04-02 syoussefi@chromium.org Add a test for glClearBuffers of render targets of same FBO
2019-04-02 syoussefi@chromium.org Add a test for glClearColor followed by glClearBuffer
2019-04-02 jmadill@chromium.org Use revision.h for glslang dirty checks.
2019-04-02 jmadill@chromium.org Move presubmit from ci -> try.


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

The AutoRoll server is located here: https://autoroll.skia.org/r/angle-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Build-Debian9-Clang-x86_64-Release-ANGLE;skia.primary:Perf-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Perf-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-ShuttleC-GPU-GTX960-x86_64-Debug-All-ANGLE
TBR=jlavrova@google.com

Change-Id: I5141c8490151e522855a8a18d477a5c330ca487d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205476
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-03 13:16:24 +00:00
Brian Salomon
01ceae9352 Control access to adding ref to a GrGpuResource when it's ref count is zero.
We want GrResourceCache to be able to track which resources are held by
refs (as opposed to pending IOs) so that it can track the affect of
flushing on resource purgeability. Therefore, all cases that can add the
first ref to a GrGpuResource must funnel through GrResourceCache. This
lays the groundwork by restricting initial refs.

No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Bug: skia:8927
Change-Id: I1213c3db258d2412df6666e3222419211ceaa192
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205482
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-04-03 13:16:23 +00:00
Ethan Nicholas
c1c686b4d4 added support for half input variables in SkSL fragment processors
Bug: skia:
Change-Id: Iccdd98d9949c2a5f3da650282f520c65f2bb5094
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205350
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jonathan Backer <backer@chromium.org>
2019-04-03 13:11:20 +00:00
skia-autoroll
4d254af314 Roll third_party/externals/swiftshader 459453a96257..2b9fb4bf5ece (7 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/459453a96257..2b9fb4bf5ece


git log 459453a96257..2b9fb4bf5ece --date=short --no-merges --format='%ad %ae %s'
2019-04-03 capn@google.com Switch to LLVM 7.0 for Visual Studio solution
2019-04-03 capn@google.com Default to 64-bit MSVC toolchain
2019-04-03 capn@google.com Add missing LLVM 7.0 source files
2019-04-03 capn@google.com Rename swiftshader_icd.def to libvk_swiftshader.def
2019-04-02 bclayton@google.com .gitignore: .vscode/settings.json & .vscode/launch.json
2019-04-02 capn@google.com Fix materialization of function arguments
2019-04-02 swiftshader.regress@gmail.com Regres: Update test lists @ 459453a9


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

The AutoRoll server is located here: https://autoroll.skia.org/r/swiftshader-skia-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
TBR=jlavrova@google.com

Change-Id: I09884939593e01b55b0bc5e0dbbd382b77ef0db5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205477
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-04-03 13:11:19 +00:00
recipe-roller
a620150cae Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls recipe
changes from upstream projects (e.g. depot_tools) into downstream projects
(e.g. tools/build).


More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
  https://crrev.com/fdd25811154d75cca803137ce54df96853548f1d [bot_update] Set output commit of the build (nodir@google.com)
  https://crrev.com/422c432dd25db33631432920a628934044d27968 Add ANGLE revision to gclient config. (jmadill@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Id7babfd75f768854a2c58635efcb280e8b1a93eb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205593
Reviewed-by: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2019-04-03 13:06:15 +00:00
Florin Malita
9a9e723f02 [skottie] Add support for (non-standard) v-centered text
Introduce a Skottie JSON extension for controlling vertical text
alignment ("sk_vj"), with a single public value for now: 1 (centered).

Refactor SkottieShaper to handle vertical adjustments based on a VAlign
enum:

  kTop         - the topmost line is ascent-aligned with the box top
                 (AE text-box behavior)
  kTopBaseline - the topmost line is baseline-aligned with the top box
                 (AE text-point behavior)
  kCenter      - the text center is aligned with the box center
                 ("sk_vj": 1, Skottie extension)

Also externalize the vertical adjustment as a text blob offset (instead
of baking into blob glyph offsets).

Change-Id: I29a414d4c6ccfafc534ca7b61f48ef96d8cff86e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205590
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-04-03 13:06:14 +00:00
skia-recreate-skps
9894a89218 Update go_deps asset
Automatic commit by the UpdateGoDEPS bot.

TBR=borenet@google.com

Change-Id: Ib10e667c29b9055f65d281a4107b43378eeabddf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204905
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-04-03 13:01:10 +00:00
Mike Klein
cbe93ee197 have FM run GMs in command line order
Compare running

   $ out/fm -b gl -s encode skps/desk_wikipedia.skp drawbitmaprect lotties/inattentive.json xfermodeimagefilter encode encode encode

Before:
           xfermodeimagefilter	92218904a9ae8a0a6d3eee03541b632a	    240ms
                        encode	d2d6eb57feb83662a84dc728dbd4649d	     99ms
                drawbitmaprect	d915acc291ecd0e7bbbd8b497d44cd1e	     88ms
            desk_wikipedia.skp	2bd4560dfba002395b7d5665d37a5d83	     80ms
              inattentive.json	63dfb23e06ee2557bb441523003fb4eb	     43ms

After:
                        encode	d2d6eb57feb83662a84dc728dbd4649d	    116ms
            desk_wikipedia.skp	2bd4560dfba002395b7d5665d37a5d83	     80ms
                drawbitmaprect	d915acc291ecd0e7bbbd8b497d44cd1e	     93ms
              inattentive.json	63dfb23e06ee2557bb441523003fb4eb	     42ms
           xfermodeimagefilter	92218904a9ae8a0a6d3eee03541b632a	    214ms
                        encode	d2d6eb57feb83662a84dc728dbd4649d	     90ms
                        encode	d2d6eb57feb83662a84dc728dbd4649d	     89ms
                        encode	d2d6eb57feb83662a84dc728dbd4649d	     89ms

Change-Id: I448da4c991b91a8f3e4fc0cf32af0a4ff712e19e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205591
Commit-Queue: Mike Klein <mtklein@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-03 13:01:08 +00:00
Mike Reed
e25b4472cd Move SkTileModes to top level
- move shader factories to their host (e.g. picture->makeShader)

More to do to formally deprecated SkShader::TileMode

Bug: skia:8937
Change-Id: I101e42fb9fba4ab91d028a34888f1fde16fdece4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205589
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
2019-04-03 00:18:35 +00:00
Ben Wagner
c9eeab3d85 Remove Skia version number.
The value hasn't changed in a long time, and is unlikely to be useful
anytime soon.

Change-Id: Iec5ca31558bd427087f4b7f90cdde5c3c09f12ef
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205586
Commit-Queue: Ben Wagner <bungeman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Ben Wagner <bungeman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-04-02 20:10:54 +00:00