Commit Graph

41287 Commits

Author SHA1 Message Date
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
Mike Klein
832d3c5007 update some FM flags
fm itself can always be verbose.  We'll rarely call it directly
and when we do and we don't want to see its output, we can always
pipe to /dev/null.

Switch fm_bot.go over to random shuffle by default, and to verbose by
default with a -q/-quiet flag to only print failures.

Change-Id: Ibd53bf7f1d29e0fd5deb7d4689dc0ca100df648f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205587
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-04-02 20:09:44 +00:00
Michael Ludwig
c47e81bdd7 Do not lose existing paint shaders when drawing alpha images
This fixes the case where SkBitmapDevice or SkDraw falls back to use an SkShader
to draw the image. Previously it just assigned a new shader to a paint clone,
which worked fine with color images that are defined to ignore any set shader.
However, with alpha images it would overwrite the effect. This changes it to
compose the image shader with the original shader.

It fixes the behavior of GMs bleed_alpha_image_shader, bleed_alpha_bmp_shader,
and alpha_image.

Bug: skia:
Change-Id: Iaf0552ddb9991dd8d414b76f625a45cd167b7070
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/190677
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-04-02 20:01:14 +00:00
recipe-roller
58f9950a45 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/e30d05137000c2f1ab463b394734c7faaa8cf447 roll_dep: update blacklist with new recipe roller. (tandrii@chromium.org)
  https://crrev.com/c1e4405da985a39e4211b999c19b00fb12c5b2ae Revert "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: I2a4da37dd986bd3d182096b20cd7661e515525dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205583
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-02 19:53:34 +00:00
Mike Klein
71c0e94220 We don't actually use thesee extensions with GLES
Bug: skia:8946
Change-Id: If0ed9aa440b5927d3fe2efb1698044d88afc4c62
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205581
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-04-02 19:30:34 +00:00
Brian Salomon
7044f4ac7f Revert "Inset blur domain a tiny bit to prevent certain GPUs from sampling transparent black from scratch textures."
This reverts commit 730c53ae3c.

Reason for revert: Requires Layout Test suppressions.

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>

TBR=bsalomon@google.com,mvujovic@adobe.com

Change-Id: I3b35965183e47b69167bb8763c433685c30e286a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://bugs.chromium.org/p/skia/issues/detail?id=8942
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205585
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-04-02 19:24:26 +00:00
Mike Klein
2292426cb1 add skottie support to fm
Draws the same as DM.

Change-Id: I741655786c3345dfd824438f9dcaca0d5046b197
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205493
Reviewed-by: Florin Malita <fmalita@chromium.org>
2019-04-02 19:14:44 +00:00
Mike Klein
a5c27173ea allow skipped source/backend pairs in fm
GMs sometimes want to skip instead of drawing or failing.
E.g. GPU-only GMs with a non-GPU backend.

Change-Id: I5bd8acecbef1aa88b4d7e6cfb88dfde04424aa8b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205349
Reviewed-by: Mike Klein <mtklein@google.com>
2019-04-02 19:08:44 +00:00
Jim Van Verth
f16e0744d0 Fix some more Metal and iOS leaks
Bug: skia:8243
Change-Id: I2b9a4cd898bbb665dc250c2310311cdcdd75d064
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205497
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-04-02 19:05:04 +00:00
Brian Osman
29c8808ef6 Initialize renderability in GrMockOptions
Change-Id: I30a042a41991a47ff1a4e008b88431b4767453dd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205496
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-04-02 19:00:28 +00:00
Greg Daniel
ab79ff989e Remove read access flags from src of memory barriers.
The src access flags on memory barriers are used to make writes to a specific
memory location by a specific agent and reference object available to the
entire domain (device in this case). When the previous operation done on a
reference was a read, we don't not need to make changes to that memory available.

Bug: skia:8933
Change-Id: I756b391f02cb8bf47bbe386a0b9e3b7ba788098e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/204960
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2019-04-02 18:41:47 +00:00
Robert Phillips
ce0a2bf678 Add tracking of work to GrVkCommandBuffer
Change-Id: I504e93e2031df0d31f960f04dba079478493f06f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205485
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-04-02 18:08:58 +00:00
Brian Osman
47ba54d382 Remove samples that aren't built
Change-Id: Ied09d28149cdb38ab1b4a4b704c993a726324220
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/205488
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-04-02 18:07:18 +00:00