Commit Graph

42903 Commits

Author SHA1 Message Date
Ben Wagner
c3f28e3cf0 Roll FreeType
7edc937fe6..05439f5cc6

321 commits, ~1 year.

Change-Id: I1d4d59998c55fe042680b20e3b53b43768eda4d9
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226515
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2019-07-11 21:16:53 +00:00
Mike Reed
1ec17042ff reimpl parts of arctTo using doubles to handle shallow angles
Bug: 982968
Change-Id: Ieaf70a406265876655447bd0584717063483808f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226847
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-07-11 20:58:44 +00:00
Jim Van Verth
d361e64326 Enable MSAA for Metal.
Adds a separate resolve texture to GrMtlRenderTarget, which can be used
to do a resolve for the main multisample color texture. The resolve is
handled by setting a special Store action for the RenderCommandEncoder.

Bug: skia:8243
Change-Id: I1ffd756c01a9b363116ffefee2c4c50ba9a3e637
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225536
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-07-11 20:57:24 +00:00
Ravi Mistry
649774b686 [perf_skottiewasm_lottieweb] Turn on skottie+wasm flush for a better comparison
This enables us to use the same termination checks as for lottie-web.

NoTry: true
Bug: skia:9237
Change-Id: I9d5d0c450196c3800020e12b45868c656cdcc46a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226858
Commit-Queue: Ravi Mistry <rmistry@google.com>
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
2019-07-11 19:58:25 +00:00
Brian Salomon
f6da14697e Move compatible stencil tracking from GrGLCaps::fConfigTable to ::fFormatTable.
Also adds the following to the format table:

*base internal format
*sized internal format
*compressed internal format
*the internal format to use with glTexImage
*the external type to use with glTexImage when there is no data to upload
 (i.e., no GrColorType for data)

Bug: skia:6718


Change-Id: Ica51a8d4588bd24078c7d61805f6eef9c02ae14d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226558
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-07-11 18:49:20 +00:00
Jim Van Verth
658d499afc New approach to fixing Vulkan MSAA.
MakeFromBackendTextureAsRenderTarget is planned to be deprecated, so we
should use MakeFromBackendTexture with a sampleCount parameter instead.
On Vulkan, this ran into issues because we assumed an allocation for the
VkImage and the swapchain doesn't provide us with one. Fixed so we don't
need an allocation for Borrowed textures.

Bug: skia:
Change-Id: Ib26888020e093f4a734a4159eae898539c2273b7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226839
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-07-11 18:34:19 +00:00
Ravi Mistry
37a4bedfc8 [perf_skottiewasm_lottieweb] Do 2 loops with 25 points each and then pick 25 from the middle
Doing this will avoid the unreliable frames at the start (setup related) and at the end (teardown related). Also:
* Increase timeouts in lottie-web-perf.js and skottie-wasm-perf.js since we are looping twice now.
* Fix bug where ret code was 0 if puppeteer test failed.

NoTry: true
Bug: skia:9237
Change-Id: I0933ecb87113b40c162712076c38fb7379b352d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226836
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Ravi Mistry <rmistry@google.com>
2019-07-11 18:23:17 +00:00
Jim Van Verth
d1e9c338a2 Remove deprecated discard method and GrCaps support
Change-Id: I231949c90342a44e9c0b6030818139d3164819da
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226837
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-07-11 18:15:19 +00:00
Mike Klein
4cfe3ed0f2 instructions for JIT tail support on ARM
This adds a bunch of instructions we'll need to handle the N < 4 tail
within the JIT code on ARM.

   - ldrb/strb are 1-byte load and stores
   - sub subtracts without setting flags
   - cmp just sets flags (actually just subs with an xzr destination)
   - add b and b.lt, just like b.ne
   - cbz and cbnz... we only need cbz but I accidentally did cbnz first

Once I add support for forward jumps, we'll be able to use these
instructions to restructure the loop to

    entry:
        hoisted setup
    loop:
        if N < 4, jump tail      (cmp N,#4; b.lt tail)
        ... handle 4 values ...
        jump loop                (b loop)
    tail:
        if N == 0, jump end      (cbz N, end)
        ... handle 1 value ...
        jump tail                (b tail)
    end:
        ret

Change-Id: I62d2d190f670f758197a25d99dfde13362189993
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226828
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-07-11 17:49:44 +00:00
Ben Wagner
7825d4983f Add comparison of rendered SkPictures to Serialization unit test
This identifies a possible bug with font serialization (changing the
typeface on line 444 causes the test to fail).

Change-Id: I4e2c9d21cd03586e043b8d82eeff6607bb02b380
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226510
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner aka dogben <benjaminwagner@google.com>
2019-07-11 15:33:13 +00:00
Greg Daniel
e877dce203 Add kRGBA_8888_SRGB GrColorType and remove GrSRGBEncoded.
Change-Id: Iad1c72eb81ffd9c006e39c96191fada990d9dbd6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226224
Commit-Queue: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-07-11 15:22:23 +00:00
Hal Canary
455c41a014 Sample/Camera: make it work without /skimages
Change-Id: I7e876ffb7e59ccedb3da80ef3cd5ca385ab89873
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225547
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-07-11 14:22:51 +00:00
Mike Klein
da69d5929d rename to bt709_luminance_or_luma_to_alpha
We conflate luminance (dot of linear r,g,b) and luma (dot of
gamma-encoded r',g',b') all over the place in Skia.  This one is
possibly the most confusing of any of them, in that the dot-product
coefficients for BT.709 luma were somewhat arbitrarily chosen to be the
same as the coefficients for luminance.

So, big old ridiculously new long name to make it clear it works
for both luma and luminance, but that it's hardcoded to BT.709.

My quick reference when I forget things:
https://en.wikipedia.org/wiki/Luma_(video)

Change-Id: I5a6567de296795f558acc5dd3c39974b8035234e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226762
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-07-11 14:18:41 +00:00
Julia Lavrova
b5c69a4a46 Fix for Windows specific compiler issues (constexpr).
Change-Id: Icc1c43dfc1e9f0f8355d5cdd5e446518a9cbec44
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226698
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Julia Lavrova <jlavrova@google.com>
2019-07-11 14:16:11 +00:00
Hal Canary
c726ca637b experimental/tools: set-change-id-hook
No-Try: true
Change-Id: I585d14f9614fc9b1ae03b04bb838e79d1efc2bb2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226511
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-07-11 14:07:21 +00:00
Robert Phillips
f9fcf7ffa8 Alter approximate scratch texture binning after 1024
As the powers-of-2 get larger the coarse binning can burn a lot of VRAM.

Granted it isn't the best metric but, with this CL, the number of textures created and scratch textures reused remains unchanged when running the GMs.

Change-Id: I84abbbae0ed01aabb387671b5ee0e4fcdb82b671
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226226
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-07-11 13:29:41 +00:00
Leon Scroggins
aed8009a6d Revert "Update Wuffs version"
This reverts commit 42ece2b7c9.

Reason for revert: Requiring the latest version of wuffs broke the flutter roll.

Original change's description:
> Update Wuffs version
> 
> The primary purpose of this commit is to track upstream Wuffs more
> closely.
> 
> A side effect is to pull in the Wuffs commit
> 5bea867f72
> "Allow an LZW literal width of 1", which eliminates a difference between
> the old third_party/gif decoder and the new third_party/wuffs decoder.
> 
> As the CodecTest.cpp comment says, the GIF spec explicitly says that the
> LZW literal width should be at least 2, but in practice, GIF encoders
> violate the spec. After that upstream commit, Wuffs has followed other
> GIF decoders in being more liberal in what it accepts.
> 
> Codec_InvalidAnimated therefore no longer has a separate "#ifdef
> SK_HAS_WUFFS_LIBRARY" section. The first frame of the test's GIF image
> data, being the required frame of the third frame, no longer has an
> invalid LZW literal width according to Wuffs.
> 
> Bug: skia:8235
> Change-Id: Ie94537f5232128ffc1d1547f4c0b84992e54ab02
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226476
> Commit-Queue: Leon Scroggins <scroggo@google.com>
> Reviewed-by: Leon Scroggins <scroggo@google.com>

TBR=scroggo@google.com,nigeltao@google.com

Change-Id: I9e636e81f57eefd836a53738872ddb9f5c9b13c3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8235
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226697
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2019-07-11 13:14:33 +00:00
Eric Boren
620b7e9b01 [infra] No relative path for infra_tests.isolate
This should allow dependent repos to use their own version of this
isolate file.

Change-Id: I4afe08cc35da51f4bade0c4a80964dcece91bd8d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226514
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2019-07-11 12:40:21 +00:00
recipe-roller
4e6a4416e5 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/78dec0421b6903c0d260d51aff69d6b7ebf09781 Show nice error on failure to enumerage input files. (eliribble@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iaa2eaf4cd30568b438423a054b0c7f7bd764cb16
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226747
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-07-11 05:38:30 +00:00
skia-autoroll
e56292cb8c Roll third_party/externals/angle2 4e71b2bc2546..9668237739a2 (7 commits)
4e71b2bc25..9668237739


git log 4e71b2bc2546..9668237739a2 --date=short --no-merges --format='%ad %ae %s'
2019-07-11 jiajia.qin@intel.com Fix the RTV and SRV conflict
2019-07-11 shrekshao@google.com Add flags to shader translator to emulate gl_BaseVertex and gl_BaseInstance
2019-07-11 kbr@chromium.org Support blitFramebuffer to and from IOSurface-backed textures.
2019-07-10 jonahr@google.com Fix CopyTexture to support GL_LUMINANCE/ALPHA/LUMINANCE_ALPHA
2019-07-10 jonahr@google.com Update trigger.py to take extra arguments
2019-07-10 timvp@google.com Vulkan: Fix khr-gles3.shaders.uniform_block.common.name_matching test failure
2019-07-10 geofflang@chromium.org GL: Implement EGL_ANDROID_native_fence_sync


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

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:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
TBR=fmalita@google.com

Change-Id: Iba322249c5820cc63a131c1affd2d636b36f489c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226736
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-07-11 05:37:10 +00:00
skia-recreate-skps
0aa1858c8d Update Go deps
Change-Id: Ifc719381e4af167c4f6b9fdf4735700176b57a56
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226745
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-07-11 05:29:00 +00:00
skia-autoroll
07a5906a43 Roll ../src 9d81bd852e09..17462d53f92d (335 commits)
9d81bd852e..17462d53f9


Created with:
  gclient setdep -r ../src@17462d53f9

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=fmalita@google.com

Change-Id: I8f47501bce14b972a8d08959822cb821044b5b5b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226738
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-07-11 04:53:00 +00:00
skia-autoroll
a3be4d749f Roll third_party/externals/swiftshader 8c4c9e37bf96..28ae0a4b2810 (3 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/8c4c9e37bf96..28ae0a4b2810


git log 8c4c9e37bf96..28ae0a4b2810 --date=short --no-merges --format='%ad %ae %s'
2019-07-10 bclayton@google.com Reactor: Add new 'EarlyCSEPass' optimization pass.
2019-07-10 bclayton@google.com Use Nucleus::adjustDefaultConfig for Vulkan's default reactor config.
2019-07-10 bclayton@google.com Reactor: Add support for specifying and modifying default configuration settings.


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

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=fmalita@google.com

Change-Id: I35ec7f7b2a338b91121a895a9d229d6ccfe2efdd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226737
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-07-11 04:37:30 +00:00
recipe-roller
f304969e0f 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/3768f8421f8f62c133221e5da136d578a5d73e03 [lucicfg] Update to the latest version. (vadimsh@chromium.org)
recipe_engine:
  https://crrev.com/ce9672b4fa31f12efc35008478675193aa98a433 [swarming] Update presentation (joshuaseaton@google.com)
  https://crrev.com/c311cdcc9e6de9c2decaa69ce54f9a5fbe00fa16 [isolated] Roll client (joshuaseaton@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iba9d26b53414f32a2d572277109c38fa190a7bc1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226696
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-07-11 01:39:04 +00:00
Brian Salomon
4e9cde8632 Blacklist GrTestingBackendTextureUploadTest on MoltenVk.
TBR: jvanverth@google.com

Change-Id: I4c254fae30ee30bb4f84140f47cc69c9bfa1b8cd
Bug: skia:9247
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226676
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-07-11 00:38:43 +00:00
Brian Salomon
c38cfa99a7 Third land of "Restore GL_UNPACK_ROW_LENGTH to 0 between MIP levles"
Fix: Use non-zero rowbytes when uploading zeros for initial texture clear

This reverts commit f16020ba1b.

Bug: chromium:981254
Change-Id: Iafd5893dd1b397ec1d91c64d48d46059e62488a7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226557
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-07-10 22:58:58 +00:00
Greg Daniel
554b492ace Add missing RGB_888x colorType to GL RGBA format.
Bug: b/137017906
Change-Id: I98bfc9607fa78536e1cf44707636558ed1980b4a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226616
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2019-07-10 22:38:07 +00:00
recipe-roller
0797a3bd85 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.
recipe_engine:
  https://crrev.com/b077e6d7b5e202070b28b0e7e1be95396c423eec [fetch] Actually fetch from the provided ref. (iannucci@chromium.org)
  https://crrev.com/4cf2107dcc2dd67bb3e84154700ee5023eea02b3 [fetch] Fix docstring typos/inaccuracy. (iannucci@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I15d78a3c66ef240544a6284866a972afc9f12f6f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226602
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-07-10 22:29:47 +00:00
Mike Klein
49d32524f4 lifetime analysis readability refactor
This is basically a no-op CL, with two changes designed to make
SkVM lifetime analysis easier to reason about:

  1) rename Analysis.life to Analysis.death,
     since it indicates the instruction when the value dies
  2) use death == 0 to mark dead code instead of an NA sentinel

The life->death change really is just a naming thing, something I
realized makes a little more sense this way around after talking about
how this code works out loud.  'death' holds the time of a Val's death.

The second change also isn't very important, but I realized that there
is a perfectly good in-band value to mark dead code, 0, and there's no
need to use NA as a sentinel.  If we mark an instruction as death == 0,
that indicates the value is needed only until instruction 0 executes,
i.e. never.  They're sort of pre-dead.  This cuts one of the overloads
for what NA means in SkVM.cpp; now it only means "no value".

All the code that tested against the NA sentinel now tests against 0
instead.  We could go a step further and rewrite the tests to be death >
id for live code or death < id for dead code, but that amounts to
roughly the same thing in the end: instructions either live for some
time with a death that is later than their own ID, or are dead with
death == 0.  There is some small ambiguity around whether we should mark
store instruction's deaths as id or id+1 and which of the tests should
be <= or >=, but checking against 0 makes that all moot, and I think the
checks also stand out more clearly with the literal '0' in the code.

This is a little warmup to refamiliarize myself with the code, with an
ultimate goal of moving hoisting and register assignment to the backends
so they can be influenced by instruction selection: platform specific
ways to handle immediates or splats, choosing destination registers and
instructions that play well with the available argument registers, etc.

Change-Id: I6978abf0bd01dcd0e7a142d632826e7692060ade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226549
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-07-10 22:00:37 +00:00
Brian Osman
6b03ea0905 Remove MSVC 2015 toolchain remnants
We haven't built with 2015 in a long time (and are no
longer able to). Also, this asset doesn't exist (it is
available as V6 of win_toolchain, though).

Change-Id: I5113293e9b9d6652520029f003a29d1c52d092e6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226559
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-07-10 21:46:57 +00:00
Robert Phillips
409d2aa8bf Fix assert
Change-Id: I23a88524d741cecefa16ae7e364d2294db1c6030
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226508
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-07-10 21:41:27 +00:00
Brian Salomon
9e9ea91092 Try GrGLSizedInternalFormat enum
Change-Id: I970fe3547caf4fa363f20aa8246b293a19c4ba8c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226225
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-07-10 21:30:38 +00:00
Stephen White
0d70b716ca Add first Dawn dependencies.
Add Dawn repo to DEPS.
Add skia_use_dawn flag to BUILD.gn (default false).
Add Metal.framework for Mac when building for Dawn/Metal.
Add d3d12, dxgi, d3dcompiler libs when building for Dawn/D3D12.
Disable SPIRV validation when building for Dawn.
Add BUILD.gn for dawn and dawn/third_party libraries.

(Note that I had to split the declare_args() section of BUILD.gn
into two, so that I could refer to skia_use_dawn in skia_enable_spirv_validation.
If there's a better way to do this, I'm open to suggestions.)

Change-Id: I9bdaf990694f6b8bcce6b77c1a8b1620a7396e34
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225137
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-07-10 21:21:17 +00:00
Brian Salomon
44a84fb802 Blacklist ColorTypeBackendAllocationTest on MoltenVK
Bug: skia:9247
Change-Id: I8b4261fc81f31f56d24ae3aa84ae81c33ea2b2b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226501
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-07-10 21:13:08 +00:00
recipe-roller
f778ad6449 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/986505f4893ae4c0cd11f0f2a6ea4a2cc27f9488 Updated error message format (debrian@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I08561668c201d8643bd3374aea052bb60dabdaae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226547
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-07-10 20:56:08 +00:00
Mike Reed
3a8ff230ab Move test around in cubic_solver to test function, not delta_t.
Add SkOpts variant for avx2 to get FMA
Decrease tolerance now that we're testing the function

Before

  15/15  MB	1	1.13ms	1.17ms	1.18ms	1.26ms	4%	cubicmap_0_1_1_1
  15/15  MB	1	1.08ms	1.13ms	1.12ms	1.17ms	3%	cubicmap_0_1_1_0
  15/15  MB	1	862µs	904µs	900µs	937µs	3%	cubicmap_0_1_0_1
  15/15  MB	1	861µs	878µs	882µs	934µs	3%	cubicmap_0_1_0_0
  15/15  MB	1	1.44ms	1.47ms	1.49ms	1.55ms	3%	cubicmap_1_0_1_1
  15/15  MB	1	1.44ms	1.48ms	1.48ms	1.55ms	3%	cubicmap_1_0_1_0
  15/15  MB	1	1.42ms	1.42ms	1.46ms	1.53ms	3%	cubicmap_1_0_0_1
  15/15  MB	1	1.42ms	1.42ms	1.44ms	1.51ms	2%	cubicmap_1_0_0_0

After moving the check to the function, not delta_t

  15/15  MB	1	900µs	900µs	915µs	971µs	3%	cubicmap_0_1_1_1
  15/15  MB	1	899µs	900µs	914µs	988µs	3%	cubicmap_0_1_1_0
  15/15  MB	1	865µs	896µs	890µs	946µs	3%	cubicmap_0_1_0_1
  15/15  MB	1	866µs	910µs	914µs	959µs	3%	cubicmap_0_1_0_0
  15/15  MB	1	1.29ms	1.29ms	1.33ms	1.44ms	4%	cubicmap_1_0_1_1
  15/15  MB	1	1.28ms	1.29ms	1.34ms	1.54ms	6%	cubicmap_1_0_1_0
  15/15  MB	1	1.26ms	1.26ms	1.27ms	1.34ms	3%	cubicmap_1_0_0_1
  15/15  MB	1	1.26ms	1.26ms	1.27ms	1.3ms	2%	cubicmap_1_0_0_0

After SkOpts (on an avx2 machine)

  15/15  MB	1	613µs	613µs	616µs	646µs	2%	cubicmap_0_1_1_1
  15/15  MB	1	613µs	613µs	624µs	654µs	3%	cubicmap_0_1_1_0
  15/15  MB	1	862µs	865µs	867µs	887µs	1%	cubicmap_0_1_0_1
  15/15  MB	1	865µs	901µs	896µs	949µs	3%	cubicmap_0_1_0_0
  15/15  MB	1	849µs	850µs	868µs	929µs	4%	cubicmap_1_0_1_1
  15/15  MB	1	849µs	850µs	873µs	940µs	4%	cubicmap_1_0_1_0
  15/15  MB	1	831µs	831µs	856µs	950µs	5%	cubicmap_1_0_0_1
  15/15  MB	1	831µs	831µs	848µs	911µs	3%	cubicmap_1_0_0_0

(not checked in) if we also enable the pragma in cubic_solver

  15/15  MB	1	593µs	594µs	597µs	623µs	2%	cubicmap_0_1_1_1
  15/15  MB	1	593µs	595µs	605µs	629µs	2%	cubicmap_0_1_1_0
  15/15  MB	1	864µs	867µs	869µs	890µs	1%	cubicmap_0_1_0_1
  15/15  MB	1	864µs	866µs	886µs	950µs	4%	cubicmap_0_1_0_0
  15/15  MB	1	809µs	831µs	841µs	891µs	4%	cubicmap_1_0_1_1
  15/15  MB	1	809µs	810µs	855µs	1.11ms	11%	cubicmap_1_0_1_0
  15/15  MB	1	794µs	861µs	856µs	914µs	4%	cubicmap_1_0_0_1
  15/15  MB	1	794µs	821µs	818µs	853µs	3%	cubicmap_1_0_0_0

Change-Id: I260391be956d31a5cf3d0367d1285e56af7568f8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226499
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
2019-07-10 20:28:28 +00:00
Robert Phillips
cc32642882 Fix SkPixmap and SkBitmap dox for computeByteSize
The SIZE_MAX behavior was added in response to https://bugs.chromium.org/p/skia/issues/detail?id=7132

Bug: skia:9242
Change-Id: If4bd0649c738f68967b0aaa83e43cd7930c87823
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225730
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-07-10 19:43:59 +00:00
Brian Salomon
f16020ba1b Reland "Revert "Restore GL_UNPACK_ROW_LENGTH to 0 between MIP levles""
This reverts commit 4b40a1d5bf.

Reason for revert: Breaking iOS/GL

Original change's description:
> Revert "Revert "Restore GL_UNPACK_ROW_LENGTH to 0 between MIP levles""
> 
> This reverts commit abb5a315af.
> 
> Two fixes:
>   1) GMs pass valid rowBytes when calling directly to GrGpu.
>   2) Check for non-null data before trying to set UNPACK_ROW_LENGTH
> 
> Bug: chromium:981254
> 
> Change-Id: I24e46b0d2b14562d6b84a29fefe3410ce5c06c94
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226498
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: I7f22151aad7fefd6896a57d4448d03fd3bdec0e2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:981254
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226556
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-07-10 19:22:20 +00:00
Florin Malita
ccacfa02d2 [skottie] Caching motion tile
Update MotionTileEffect to avoid rebuilding shaders redundantly,
at render time:

  1) build all shaders at revalidation time
  2) cache the layer content picture separately, and only rebuild when
     the layer content changes

To support #2, add some SG helpers for querying subtree inval state.

With this change, we avoid all render time allocations.

Notry: true
Change-Id: I55a1f95752704af6a667b266e725492de6640387
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226512
Commit-Queue: Florin Malita <fmalita@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2019-07-10 19:13:41 +00:00
Nigel Tao
42ece2b7c9 Update Wuffs version
The primary purpose of this commit is to track upstream Wuffs more
closely.

A side effect is to pull in the Wuffs commit
5bea867f72
"Allow an LZW literal width of 1", which eliminates a difference between
the old third_party/gif decoder and the new third_party/wuffs decoder.

As the CodecTest.cpp comment says, the GIF spec explicitly says that the
LZW literal width should be at least 2, but in practice, GIF encoders
violate the spec. After that upstream commit, Wuffs has followed other
GIF decoders in being more liberal in what it accepts.

Codec_InvalidAnimated therefore no longer has a separate "#ifdef
SK_HAS_WUFFS_LIBRARY" section. The first frame of the test's GIF image
data, being the required frame of the third frame, no longer has an
invalid LZW literal width according to Wuffs.

Bug: skia:8235
Change-Id: Ie94537f5232128ffc1d1547f4c0b84992e54ab02
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226476
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
2019-07-10 17:45:43 +00:00
Eric Boren
51146b47db Revert "[infra] No relative path for infra_tests.isolate"
This reverts commit 5cc450b609.

Reason for revert: breaking dependent repos

Original change's description:
> [infra] No relative path for infra_tests.isolate
> 
> This should allow dependent repos to use their own version of this
> isolate file.
> 
> Change-Id: I5f20eafbd10319eef70ddb65b434269ca99d5c9f
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226416
> Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
> Commit-Queue: Eric Boren <borenet@google.com>

TBR=borenet@google.com,benjaminwagner@google.com

Change-Id: I91d59aefa943aab371c1cdb14087309c60f29d35
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226505
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2019-07-10 16:59:57 +00:00
Robert Phillips
3cd5432331 Add protected status to SkSurfaceCharacterization
Change-Id: I27bd051c1fce0239faff7fc073eaf82976fb63ae
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225940
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-07-10 16:30:35 +00:00
Brian Salomon
4b40a1d5bf Revert "Revert "Restore GL_UNPACK_ROW_LENGTH to 0 between MIP levles""
This reverts commit abb5a315af.

Two fixes:
  1) GMs pass valid rowBytes when calling directly to GrGpu.
  2) Check for non-null data before trying to set UNPACK_ROW_LENGTH

Bug: chromium:981254

Change-Id: I24e46b0d2b14562d6b84a29fefe3410ce5c06c94
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226498
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-07-10 16:13:44 +00:00
Eric Boren
5cc450b609 [infra] No relative path for infra_tests.isolate
This should allow dependent repos to use their own version of this
isolate file.

Change-Id: I5f20eafbd10319eef70ddb65b434269ca99d5c9f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226416
Reviewed-by: Ben Wagner aka dogben <benjaminwagner@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2019-07-10 16:08:41 +00:00
Brian Osman
6f5358f505 Interpreter: Disallow recursion
I think this is the minimum rule that's easy to understand when writing
SkSL for the interpreter that ensures we'll be able to statically
determine total stack usage of a particular function.

While writing the new test, I also noticed that we still return
(invalid) byte code, even when there are errors. Fixed that.

Change-Id: I625a8592c9ba1656074e5f0d4227d41968af7b37
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226218
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2019-07-10 16:08:39 +00:00
Brian Salomon
abb5a315af Revert "Restore GL_UNPACK_ROW_LENGTH to 0 between MIP levles"
This reverts commit 65eb084e78.

Reason for revert:blocking chrome roll and asserting in GMs

Original change's description:
> Restore GL_UNPACK_ROW_LENGTH to 0 between MIP levles
> 
> Bug: chromium:98125
> Change-Id: I7a5184872e92b9e0994a5175461b4f46191ccc9d
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226223
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: I71799990a128ade8e769bffd69841dafdf47a871
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:98125
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226496
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-07-10 12:42:34 +00:00
Eric Boren
f1a7c21d4c [infra] Fix WASM Gold aggregator build
Change-Id: If960640ba74916226d8cdf912f48142cee0ef2c2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226317
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
2019-07-10 12:18:13 +00:00
skia-autoroll
42ef17dc9b Roll third_party/externals/angle2 5dfad811ce32..4e71b2bc2546 (11 commits)
5dfad811ce..4e71b2bc25


git log 5dfad811ce32..4e71b2bc2546 --date=short --no-merges --format='%ad %ae %s'
2019-07-09 jmadill@chromium.org Framebuffer: Clean up query naming.
2019-07-09 geofflang@chromium.org Refactor the wait/signalSemaphore entry points to be on the Semaphore object
2019-07-09 shrekshao@google.com Fix regex parenthesis missing escaping backslash
2019-07-09 ianelliott@google.com Vulkan: Add support for GL_RGBA8-to-GL_RGB5_A1
2019-07-09 ianelliott@google.com Vulkan: Note that KHR-GLES3.texture_repeat_mode.* tests pass
2019-07-09 clemendeng@google.com Rename "opengl32" to "libGL"
2019-07-09 geofflang@chromium.org Move member initializers from Caps.cpp into the struct definitions.
2019-07-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/glslang/src 4b4b41a63499..8aa9a7bb8f74 (1 commits)
2019-07-09 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-tools/src 9702d47c6fe4..0c4feb643b89 (7 commits)
2019-07-09 cwallez@chromium.org PRESUBMIT.py: Don't require "Bug:" for autoroller CLs.
2019-07-09 syoussefi@chromium.org Vulkan: Add storage buffer support


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

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:Test-Win10-Clang-AlphaR2-GPU-RadeonR9M470X-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC5i7RYH-GPU-IntelIris6100-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUC8i5BEK-GPU-IntelIris655-x86_64-Debug-All-ANGLE;skia.primary:Test-Win10-Clang-NUCD34010WYKH-GPU-IntelHD4400-x86_64-Debug-All-ANGLE
TBR=fmalita@google.com

Change-Id: I7abdc674b4ef563f87cba8ab551d756f29c5fa27
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226376
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-07-10 05:23:15 +00:00
skia-autoroll
af4e7b6cf6 Roll ../src 9a8eb165a861..9d81bd852e09 (434 commits)
9a8eb165a8..9d81bd852e


Created with:
  gclient setdep -r ../src@9d81bd852e

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=fmalita@google.com

Change-Id: Ife23e8e78bfb0dafc5da83a4a420db37306040bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226377
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-07-10 04:38:15 +00:00
Ben Wagner
96fdfe0fe8 Fix test TextBlob_serialize
Previously, this test was passing only because it used the default
typeface. In deserialization code, if the typeface can't be
deserialized, it is replaced with the default typeface. I changed the
test to use a non-default typeface, which caused it to fail. I then
changed the custom typeface serializer/deserializer functions so that
the test passes.

Change-Id: I14e33f7fd18342e76a1fa624ae97fd894e010b6a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/226221
Commit-Queue: Ben Wagner <bungeman@google.com>
Auto-Submit: Ben Wagner aka dogben <benjaminwagner@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
2019-07-09 22:40:01 +00:00