Commit Graph

44736 Commits

Author SHA1 Message Date
Herb Derby
740f85949d Redo removing annoying link messages
From mac's man libtool
   Libtool with -static is intended to replace ar(5) and ranlib

Libtool allows RSP files, and has -no_warning_for_no_symbols

Change-Id: I1d61095db02ae83fdf491c26eae7d9d4cefc2d17
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250337
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-10-24 18:04:54 +00:00
Hal Canary
e107faa062 SkRemoteGlyphCache Add tracing to diff canvas
Use `extra_cflags=["-DSK_CAPTURE_DRAW_TEXT_BLOB"]` to enable.

Change-Id: I1d6db478ee91696cdce090647b889c17a83a2718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250259
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-24 17:09:31 +00:00
Mike Klein
96bce8f919 Reland "hide color filters from blitters"
This is a reland of cba64462d2

... with a fix to SkColorFilterShader::onAppendStages() to
copy out the alpha.  The blitters sometimes outlive the shader.

Original change's description:
> hide color filters from blitters
>
> This is all guarded by the old define we never rebaselined.
>
> Had to make some upgrades to SkColorFilterShader to support
> replacing an SkPaint's shader and color filter with a single
> merged SkColorFilterShader.  Our pipeline's order of operations
> is
>
>    1) shader
>    2) scale by paint alpha
>    3) color filter
>
> but SkColorFilterShader had no way to get that paint alpha in
> the middle there, so I added one.
>
> Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN
Change-Id: Ia98dbeaba6220a60d195c0ef967772c9dce882a2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250596
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-10-24 16:57:02 +00:00
Brian Salomon
1a217eb410 Type usage improvements in GrTextureProducer classes
Make better use of SkISize and GrImageInfo.

Change-Id: Ie3c9f16d7db05e6527baf1aae4607d74d020ee49
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250577
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-24 16:38:57 +00:00
recipe-roller
4a4400d9e9 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/1906f405ba0f00b960b89b751d36630d558a4211 gclient: When deleting untracked files, gracefully handle symlinks that point to dirs. (bpastene@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iab3b0a0d226baccce148a80e388bd81772d2b970
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250601
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-10-24 16:34:22 +00:00
Herb Derby
4a1af26f1a Fix fuzzer bug in SkDescriptor::isValid
This is following up chrome bug:
https://bugs.chromium.org/p/chromium/issues/detail?id=996211

BUG=skia:18491

Change-Id: I4c85bc916903aaa2fdf7eb226bdf3e57f8b1c66c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250578
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
2019-10-24 16:33:52 +00:00
Florin Malita
a8392b79fb Slightly faster hsl_to_rgb stage
Reduce the number of branches, similar to GrHSLToRGBFilterEffect.fp.

colorfilter_matrix_hsla   500.92 -> 482.47

Change-Id: I7d11a226f7db314dd284be538eee37fbe59f60b4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250339
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-10-24 16:26:02 +00:00
Robert Phillips
df4601b484 Revert "Allow direct readback for formats in non-ES OpenGL"
This reverts commit 162d16891f.

Reason for revert: red on bots

Original change's description:
> Allow direct readback for formats in non-ES OpenGL
> 
> Bug: skia:8962
> Change-Id: I85a2e228892a54cc2a0abd607d034515a9af12af
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250258
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

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

Change-Id: I9509665678e3f4984143ff4f2d91565c4339a006
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:8962
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250656
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-24 16:23:53 +00:00
Chris Dalton
2e1381ec86 Don't keep "outResultsFile" open in nanobench
There is a bug on Pixel and Pixel2 devices where the program
eventually terminates with a non-zero exit code. Closing the
outResultsFile between JSON flushes seems to fix it (for whatever
reason).

Bug: b/143074513
Change-Id: I935e982e88758fda19292129c8031f8501cca615
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249821
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-24 16:09:02 +00:00
Mike Klein
37bc8f9652 restore _DXDY image shader on ARM
This is mostly the patch we've been looking at, rebased,
with some of my comments from the review folded in.

The perf speedup is qualitatively the same as I saw on the other patch.
On that same Snapdragon 835, with draw_bitmap_aa_rotate runs about 30%
faster (543.39 vs 712.71us) and draw_bitmap_noaa_rotate about 15% faster
(481.93 vs.  572.13us).

The main thing I have omitted is the NEON specialization of matrix
procs.  It looks like both nofilter_affine() and filter_affine() are
autovectorized well, and we seem to perform fine enough without manual
specialization here.  I'm even tempted to remove [no]filter_scale_neon()
as a follow up.

Image diffs look mostly fine.  This unexpectedly fixes rotated lighting
shaders in GMs.  Clearly that lighting shader must get a lot of use...

Change-Id: I67ee0b3ab92d6e56584ece05feb6e66d6fb7c660
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249860
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-10-24 15:51:12 +00:00
recipe-roller
9136bd7686 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/3671a6a21726da161152fd4f8a7816ba512e78fa Revert "git-cl: Add diff lines of context setting." (jmadill@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iff91ce40d30041f7e16414d98dc09c7bf1e21d87
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250597
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-10-24 15:39:26 +00:00
Brian Salomon
162d16891f Allow direct readback for formats in non-ES OpenGL
Bug: skia:8962
Change-Id: I85a2e228892a54cc2a0abd607d034515a9af12af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250258
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-24 15:31:56 +00:00
Brian Salomon
4ab4e641f1 Narrow fix for creating BGRA backend texture from pixmaps on desktop GL.
GrTestingBackendTextureUploadTest creates backend textures from BGRA
pixmaps. There is a bug on desktop GL. We choose a RGBA format for the
texture. We then infer the color type of the data from the format (via
a hop through GrPixelConfig) as RGBA and upload it as such.

Currently we don't fail the test because the test fails to read the data
back (because we don't support direct reading of BGRA data from textures
in GL).

Fixing the read back causes the test to fail.

This change removes the inference of color type from the format and
instead uses the pixmaps' color type.

This doesn't fix several larger issues, including:

1) The intended color type is not specified when creating a texture of a
solid color so we still infer it from the format in that case.

2) We may not support direct uploading of data in the pixmaps' color type
to the chosen texture format but must first convert it to some other
color type on the CPU.


Change-Id: I3b1022c40201fc107cb39bbb5cca775795c828e8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250336
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-24 13:29:04 +00:00
recipe-roller
3d8b9b8347 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/ad557c41da7ce606ef3c26cf9ab465f9e4c81456 presubmit: deprecate vpython_spec_path (tikuta@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7808d89cf55eccaf0a0edae3c2fe86a9a03e9ae7
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250539
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-10-24 08:34:34 +00:00
skia-autoroll
d0b2029c2d Roll third_party/externals/angle2 d4affcdd2ac9..b2885bc4a40f (8 commits)
d4affcdd2a..b2885bc4a4

git log d4affcdd2ac9..b2885bc4a40f --date=short --no-merges --format='%ad %ae %s'
2019-10-23 tobine@google.com Vulkan:Enable UpdateBufferInUse test on AMD
2019-10-23 xinyi.he@arm.com Vulkan: Mipmap is unconditionally enabled in ANGLE
2019-10-23 tobine@google.com Vulkan:Roll Loader
2019-10-23 tobine@google.com OES_depth32 is for render buffer capability
2019-10-23 tobine@google.com Vulkan:Store full 64bit handle in GarbageObject
2019-10-23 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/SwiftShader a68a80a4dbf9..7738ed713e7b (6 commits)
2019-10-23 jmadill@chromium.org GN: Separate out constructor/destructor warnings.
2019-10-23 lehoangq@gmail.com Move Vulkan GlslangWrapper code to a shared location.

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

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC michaelludwig@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.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
Bug: None
TBR=michaelludwig@google.com
Change-Id: Ia206b5ff62f4b3ee57f6680c45d5d84970935996
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250427
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-24 06:08:24 +00:00
skia-recreate-skps
9f7c56e0b4 Update Go deps
Change-Id: I20daa103e2a0da23b00f2ab213e4c583a104c19b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250496
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-10-24 05:26:54 +00:00
skia-autoroll
3ac668ca6c Roll third_party/externals/swiftshader 7738ed713e7b..883e817b14bf (1 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/7738ed713e7b..883e817b14bf

git log 7738ed713e7b..883e817b14bf --date=short --no-merges --format='%ad %ae %s'
2019-10-23 webmaster@saschawillems.de Added vkGetPhysicalDeviceWin32PresentationSupportKHR to Vulkan ICD

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

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC michaelludwig@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
TBR=michaelludwig@google.com
Change-Id: I448ee8b3dee88690469ac0b82d6dbff6cb9c2ade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250426
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-24 04:36:34 +00:00
recipe-roller
3f4e52c407 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/5cc95b8ccfc26f201fd5c62b76121614090d0d67 vpython: e317c7d2c17d4c3460ee37524dfce4e1dee4306a. (tandrii@google.com)
  https://crrev.com/76c2e50d3bb9198e4e8c024ff0b46616ec1b9a9f simplify the chromite wrappers (vapier@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I6faa8b593a8f4c6b1c8eb7649ee50135f8d0aeba
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250457
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-10-24 03:21:58 +00:00
recipe-roller
e83f334d45 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/a7c808a4655cfb6d40fc3467b295ac1b4cacef12 vpython: new release 10e1d79ac9ced2b819221e06535f457093b2a14c. (tandrii@google.com)
  https://crrev.com/d2a5a4c043375083ddf1c49c4379e79f0941b3b0 Revert "presubmit_support: Fix tests on Python 3." (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I186cc0f8125cc750bae49e080725424df34e4cf1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250456
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-10-23 23:52:38 +00:00
recipe-roller
fd1b164088 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/8ded266425e8a197ce33cf2794374d2a9df707f5 depot_tools: Always use depot_tools .vpython to execute presubmit recipes. (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iee260bca0eddde481f3f44bafa7ed47059774ade
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250340
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-10-23 22:43:59 +00:00
Herb Derby
1213041957 Use common path drawing code
Currently, there are two methods for drawing paths. The device metrics
version that uses the glyphs from the mask paths directly, and the common
path (font size 64) version that uses scaling to generate the paths.

This change removes the device metrics version. This is a very rare execution
path because, the font size needs to be < 132, but still generate a glyph with
dimensions > 256. I have only seen this in the wild once.

This change simplifies the code, and does not change the behavior very much.
There are only two GMs show big numerical changes. One has visible differences
(textblobmixedsizes), and the other is very slight visible difference(mixedtextblobs),
 but it is not wrong.

Change-Id: Ieb10cd73c81196c66be5f791d591471e15175917
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249888
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Herb Derby <herb@google.com>
2019-10-23 22:43:58 +00:00
recipe-roller
fbaef603de 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/ea98ebbe654ab38b812c8dfe1f4affc081c1cb73 chromite_wrapper: modernize a bit (vapier@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ic900dd8e4a5e71f5c9e61d7ea72e848ce2bbd943
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250299
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-10-23 21:30:28 +00:00
Florin Malita
953efcc2a5 Color filter benchmarks
Add a bunch of color filter benches:

      3.35 !	colorfilter_matrix_runtime  gl
      2.43  	colorfilter_src_runtime     gl
      2.41 !	colorfilter_lerp_src        gl
      2.40 ?	colorfilter_compose_src     gl
      6.72  	colorfilter_matrix_hsla     gl
      3.41 ?	colorfilter_matrix_rgba     gl
      4.41 !	colorfilter_srgb_to_linear  gl
      4.31 ?	colorfilter_linear_to_srgb  gl
      2.53  	colorfilter_blend_srcover   gl
      2.43 ?	colorfilter_blend_src	    gl
      2.44 !	colorfilter_none            gl

    753.31 ?	colorfilter_matrix_runtime  8888
    257.59 ?	colorfilter_src_runtime     8888
    111.94 ?	colorfilter_lerp_src        8888
     82.35 ?	colorfilter_compose_src     8888
    600.24 !	colorfilter_matrix_hsla     8888
    304.49  	colorfilter_matrix_rgba     8888
    457.25 ?	colorfilter_srgb_to_linear  8888
    493.23 ?	colorfilter_linear_to_srgb  8888
     95.61 ?	colorfilter_blend_srcover   8888
     74.41 ?	colorfilter_blend_src	    8888
     19.15 ?	colorfilter_none            8888


Change-Id: I08dfc81b14cba098b00edf2af150b82541003139
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250260
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Reed <reed@google.com>
2019-10-23 21:11:08 +00:00
recipe-roller
e0cec7391a 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/efd15ecf30fa1ed2376e6a0ea3cf1b3659732f05 Avoid accessing the None json output on gclient sync failure. (gbeaty@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I58eef1b7e1c1351678b2d8181db87b556840426d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250298
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-10-23 20:44:28 +00:00
Chris Dalton
6e38ce7c08 Disable msaa on Pixel3a
Bug: b/143074513
Change-Id: I1110ee542483b07b12e808bcd2decd6ce24f0a15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249920
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
2019-10-23 20:25:17 +00:00
Hal Canary
a255358d98 [minor] SkRemoteGlyphCache impl: add explicit
Change-Id: I3a1d97b867a66ed86e4c97bee72150b74d9dc112
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249877
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-10-23 19:45:55 +00:00
Jim Van Verth
6863bb0930 Set Metal rendertargetproxy via drawableSize
Bug: skia:
Change-Id: Idfe709836a9c0be5ce9b6fd200956ff8e284596d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249981
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
2019-10-23 19:32:25 +00:00
Stephen White
dd78efd0f5 Dawn: implement unified UBOs.
This fixes the fpcoordinateoverride GM, and others.

Change-Id: I715e39201a4c77aa49395a3b9259caaf3ca0328e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249893
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Greg Daniel <egdaniel@google.com>
2019-10-23 19:26:35 +00:00
Michael Ludwig
11eeb94bfe Revert "hide color filters from blitters"
This reverts commit cba64462d2.

Reason for revert: ASAN failures: https://logs.chromium.org/logs/skia/4812b6e5916f3d11/+/steps/symbolized_dm/0/stdout

Original change's description:
> hide color filters from blitters
> 
> This is all guarded by the old define we never rebaselined.
> 
> Had to make some upgrades to SkColorFilterShader to support
> replacing an SkPaint's shader and color filter with a single
> merged SkColorFilterShader.  Our pipeline's order of operations
> is
> 
>    1) shader
>    2) scale by paint alpha
>    3) color filter
> 
> but SkColorFilterShader had no way to get that paint alpha in
> the middle there, so I added one.
> 
> Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Mike Reed <reed@google.com>

TBR=mtklein@google.com,reed@google.com

Change-Id: Icc3a3916ca763de979c01d65746d74c49e14544c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250261
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2019-10-23 19:15:06 +00:00
Mike Klein
cba64462d2 hide color filters from blitters
This is all guarded by the old define we never rebaselined.

Had to make some upgrades to SkColorFilterShader to support
replacing an SkPaint's shader and color filter with a single
merged SkColorFilterShader.  Our pipeline's order of operations
is

   1) shader
   2) scale by paint alpha
   3) color filter

but SkColorFilterShader had no way to get that paint alpha in
the middle there, so I added one.

Change-Id: Ibc1448c1b421747086030337c1a30b8f0af4aa5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250296
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-10-23 18:14:03 +00:00
Brian Salomon
5918e8313b Rewrite ReadPixels_Gpu test to be more exhaustive and share code.
Implementation is shared with with AsyncReadPixels.

Change-Id: If40705e96cc7fb073ab6024ab59819784c8be0ca
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/244717
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-23 18:06:03 +00:00
Robert Phillips
e9462dd2da Rename *worstCase* to backingStore* in GrSurfaceProxy
These names are more appropriate after:

https://skia-review.googlesource.com/c/skia/+/241356 (Always create an approx-size texture for approx-fit proxies))

Note that this CL does have one substantive change in GrCoordTransform::hasSameEffectAs where we use our knowledge of the size at which the backing stores will be allocated to remove a sly usage of GrSurfaceProxy::underlyingUniqueID.

Change-Id: Ibbb8cb23c4503f267abbdf4794610f3262a6f515
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250257
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-10-23 17:15:01 +00:00
Florin Malita
36031207dc GPU support for SkColorFilters::HSLAMatrix
Change-Id: I5b762811b44861fcedd2fa5c0e48a82718458605
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/232398
Reviewed-by: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-10-23 16:10:27 +00:00
Robert Phillips
32803ff744 Add PrePreparedDesc to GrTextureOp
This centralizes the information we are preparing and reduces duplicate computation (e.g., of the VertexSpec).

Change-Id: Iac2c4d0890389e641ee9a7453dace31c0a4ca965
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249983
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
2019-10-23 13:37:07 +00:00
Robert Phillips
40b815db97 Revert "Rename gl_SampleMask to sk_SampleMask"
This reverts commit 23716d42f7.

Reason for revert: red bots and GMs

Original change's description:
> Rename gl_SampleMask to sk_SampleMask
> 
> Change-Id: I3924c6f76edf310a984e4fd89478b00eeec69722
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249931
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Chris Dalton <csmartdalton@google.com>

TBR=egdaniel@google.com,csmartdalton@google.com,ethannicholas@google.com

Change-Id: I74848e95972cf2c41cc28887e26214136ce79e08
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250180
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-23 12:28:48 +00:00
Robert Phillips
d9ddd07554 Revert "Rename sampleVariablesSupport() to sampleMaskSupport()"
This reverts commit 766b4c9c21.

Reason for revert: GMs and bots

Original change's description:
> Rename sampleVariablesSupport() to sampleMaskSupport()
> 
> We have only implemented support for the sample mask. Renaming the cap
> to reflect that.
> 
> Change-Id: I10b5923c7464093187336016963a8ac51ebd54f5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249932
> Commit-Queue: Chris Dalton <csmartdalton@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>

TBR=egdaniel@google.com,csmartdalton@google.com,ethannicholas@google.com

Change-Id: I712169e86ee479bffd71d6665710f731d6c0e042
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250179
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2019-10-23 12:27:08 +00:00
Stephen White
8e3e431dad Dawn: fix compile.
Change-Id: Ibbba2824224f5c4b9ed0a68cafe58e0e91c22a31
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250097
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
2019-10-23 12:22:27 +00:00
Kevin Lubick
a12f6cbff3 [fuzzing] Fix skdescriptor deserialize compile
Change-Id: I03cf0b61099845ed1a931b30662830ffb883fa05
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250177
Reviewed-by: Kevin Lubick <kjlubick@google.com>
2019-10-23 11:54:14 +00:00
skia-autoroll
184a300a24 Roll third_party/externals/angle2 5335faaece2a..d4affcdd2ac9 (9 commits)
5335faaece..d4affcdd2a

git log 5335faaece2a..d4affcdd2ac9 --date=short --no-merges --format='%ad %ae %s'
2019-10-23 jmadill@chromium.org Vulkan: Roll validation layers.
2019-10-23 jmadill@chromium.org Vulkan: Fix sampler object lifetime.
2019-10-23 jie.a.chen@intel.com Remove forceNonZeroScissor workaround
2019-10-23 jie.a.chen@intel.com Add SH_REMOVE_DYNAMIC_INDEXING_OF_SWIZZLED_VECTOR
2019-10-22 geofflang@chromium.org GL: Emulate primitive restart when PRIMITIVE_RESTART_FIXED_INDEX is unavailable.
2019-10-22 tobine@google.com Vulkan: Enable VK_EXT_line_rasterization
2019-10-22 mihu@microsoft.com Fix EXT_multisample_render_to_texture perf regression
2019-10-22 jmadill@chromium.org Metal: Move ldflags to Metal backend config.
2019-10-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll third_party/glslang/src 834ee546f93d..5e634c8999e6 (3 commits)

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

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/angle-skia-autoroll
Please CC michaelludwig@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.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
Bug: None
TBR=michaelludwig@google.com
Change-Id: I92b833fb4898433e58b5d7ed05f6a95aa171a2b3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250157
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-23 06:09:06 +00:00
skia-recreate-skps
b7950c00e9 Update Go deps
Change-Id: I0d8d8650b564c7d3382d97a4b51bd3691b8d8588
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250165
Reviewed-by: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
Commit-Queue: <skia-recreate-skps@skia-swarming-bots.iam.gserviceaccount.com>
2019-10-23 05:26:06 +00:00
recipe-roller
d327d3eb6b 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/b1ae481f7fe335d11f579854e2a2fefd07d7623d git-cl: Remove hack to ask for random mirrors when querying Gerrit. (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: Iab3ecb9fceaae817dc1447299c393dc2845ab02e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250164
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-10-23 05:21:06 +00:00
skia-autoroll
220caa898c Roll third_party/externals/swiftshader 23f9c25f60ee..7738ed713e7b (3 commits)
https://swiftshader.googlesource.com/SwiftShader.git/+log/23f9c25f60ee..7738ed713e7b

git log 23f9c25f60ee..7738ed713e7b --date=short --no-merges --format='%ad %ae %s'
2019-10-22 amaiorano@google.com Fix sRGB conversion not applying generally
2019-10-22 bclayton@google.com regres: Automatically build dEQP based on new config file
2019-10-22 amaiorano@google.com Fix unary minus warnings

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

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/swiftshader-skia-autoroll
Please CC michaelludwig@google.com on the revert to ensure that a human
is aware of the problem.

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

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

CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-Clang-GCE-GPU-SwiftShader-x86_64-Debug-All-SwiftShader
Bug: None
TBR=michaelludwig@google.com
Change-Id: I88c74f6c46864b62ade02d82631dfc5abf7d46f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250156
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
2019-10-23 04:34:46 +00:00
recipe-roller
65456999ca 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/401b25c878da7821eda5d3f60b0970d799666659 presubmit: Convert literals to strings before setting env variables. (ehmaldonado@google.com)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I58436d0b9f28de3c2847a4d54d182402e93ce8fe
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250129
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-10-23 04:11:06 +00:00
recipe-roller
4d727acb24 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/db1e79c1c5deb122aa3b05de8a83179dfae37446 Fix gclient crash with unicode strings in .gclient files. (dpranke@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I5040dfb486b03e87ed6fea3369df3cebeaf94ba0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250121
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-10-23 02:23:06 +00:00
Florin Malita
3d5ccfd9d7 Skip unneeded reallocs in SkTDArray::shrinkToFit()
Change-Id: I885eb1769ffa639026929dc7aa68312e0dbf91b8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250037
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2019-10-23 02:06:36 +00:00
Heather Miller
cc13acbffe Fix up release notes file
Bug: skia:
Change-Id: I124abbb54f13e70e5d9c6a71f43cea5adf0ce49a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250038
Auto-Submit: Heather Miller <hcm@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2019-10-23 01:49:36 +00:00
recipe-roller
1ab27a2b5c 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/53f9e0979a583470e6504e73a1789b23ff0b0464 Roll led to latest version (martiniss@google.com)
  https://crrev.com/67fccdf0c90e11031f9e6f3043b7d0f6cc7c664f gerrit_util: Add tests for CookiesAuthenticator (ehmaldonado@chromium.org)
  https://crrev.com/bb1354e256e82c084e3d6af0de6cf23f1c515ea6 depot_tools: Remove oauth2client. (ehmaldonado@chromium.org)
  https://crrev.com/a834f39e213247945fad24605839e2d3c65b0070 presubmit_support: Fix tests on Python 3. (ehmaldonado@chromium.org)


TBR=borenet@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I7b1ab848aa90f26facf130d1d7bacf6455413dd1
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250073
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-10-22 22:54:25 +00:00
Mike Klein
d48488b5ea reorder to minimize register pressure
Rewrite program instructions so that each value becomes available as
late as possible, just before it's used by another instruction.  This
reorders blocks of instructions to reduce them number of temporary
registers in flight.

Take this example of the sort of program that we naturally write,
noting the registers needed as we progress down the right:

    src = load32 ...          (1)
    sr = extract src ...      (2)
    sg = extract src ...      (3)
    sb = extract src ...      (4)
    sa = extract src ...      (4, src dies)

    dst = load32 ...          (5)
    dr = extract dst ...      (6)
    dg = extract dst ...      (7)
    db = extract dst ...      (8)
    da = extract dst ...      (8, dst dies)

    r = add sr dr             (7, sr and dr die)
    g = add sg dg             (6, sg and dg die)
    b = add sb db             (5, sb and db die)
    a = add sa da             (4, sa and da die)

    rg   = pack r g ...       (3, r and g die)
    ba   = pack b a ...       (2, b and a die)
    rgba = pack rg ba ...     (1, rg and ba die)
    store32 rgba ...          (0, rgba dies)

That original ordering of the code needs 8 registers (perhaps with a
temporary 9th, but we'll ignore that here).  This CL will rewrite the
program to something more like this by recursively issuing inputs only
once needed:

    src = load32 ...       (1)
    sr  = extract src ...  (2)
    dst = load32 ...       (3)
    dr  = extract dst ...  (4)
     r  = add sr dr        (3, sr and dr die)

    sg  = extract src ...  (4)
    dg  = extract dst ...  (5)
     g  = add sg dg        (4, sg and dg die)

    rg  = pack r g         (3, r and g die)

    sb  = extract src ...  (4)
    db  = extract dst ...  (5)
     b  = add sb db        (4, sb and db die)

    sa  = extract src ...  (4, src dies)
    da  = extract dst ...  (4, dst dies)
     a  = add sa da        (3, sa and da die)

    ba  = pack b a         (2, b and a die)

    rgba = pack rg ba ...  (1, rg and ba die)
    store32 rgba  ...      (0)

That trims 3 registers off the example, just by reordering!
I've added the real version of this example to SkVMTest.cpp.
(Its 6th register comes from holding the 0xff byte mask used
by extract, in case you're curious).

I'll admit it's not exactly easy to work out how this reordering works
without a pen and paper or trial and error.  I've tried to make the
implementation preserve the original program's order as much as makes
sense (i.e. when order is an otherwise arbitrary choice) to keep it
somewhat sane to follow.

This reordering naturally skips dead code, so pour one out for ☠️ .
We lose our cute dead code emoji marker, but on the other hand all code
downstream of Builder::done() can assume every instruction is live.

Change-Id: Iceffcd10fd7465eae51a39ef8eec7a7189766ba2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249999
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2019-10-22 21:49:05 +00:00
Chris Dalton
766b4c9c21 Rename sampleVariablesSupport() to sampleMaskSupport()
We have only implemented support for the sample mask. Renaming the cap
to reflect that.

Change-Id: I10b5923c7464093187336016963a8ac51ebd54f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/249932
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
2019-10-22 21:08:55 +00:00
Florin Malita
c1b501c352 [skottie] Shift Channels effect support
(https://helpx.adobe.com/after-effects/using/channel-effects.html#shift_channels_effect)

Limitations: no HSL sources for now.

Change-Id: Iffd63f2bbfc8c5f1de00846412be26847e822420
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/250036
Commit-Queue: Florin Malita <fmalita@chromium.org>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-10-22 20:36:01 +00:00