SkCanonicalizeFont default fScale to 0, and in later code checks
for 0 and treats it like 1.0. Just make 1.0 mean 1.0.
Change-Id: Ibb6c8ed31013d6adc280d1105e2efcf4274f84dc
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215164
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Herb Derby <herb@google.com>
Also makes sure to flag _cached_ atlas textures as ignored by the
resource allocator.
Bug: skia:
Change-Id: I30d4af1832798bc325fd082143755cf84d40515a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215140
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
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/aca5b6aca87dd7872c457ae6589902876556c854 Add JSON-parsing presubmit check (agable@chromium.org)
TBR=borenet@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I19c86fa3d2a1957fa911ceeae921e878e0570c9a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215161
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>
- type is never used
- sp[foo].fTarget can just be sp[foo], with C++ handling types
- same deal in negates
Change-Id: If325fa620e89aa55f96dffd5e559a7ed5f4e1846
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215141
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Bug: angleproject:3414
Change-Id: Ibb4a9ebfd1c07a28c48ca55bbb9f1b7c28375390
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215044
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
This should give us plenty of coding space.
If anything this seems to run faster:
Before: 21/21 MB 1 4.33ms 4.33ms 4.34ms 4.36ms 0% ▁▁▃▁▂▂▁▂▂█ 8888 GM_runtime_cf_interp_1
After: 21/21 MB 1 4.17ms 4.17ms 4.17ms 4.18ms 0% ▃▂▁▅▄▃█▅▅▆ 8888 GM_runtime_cf_interp_1
Change-Id: I6beb785fc0d00fb274a1f87c2fdd5ed530b96b8f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215046
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
The same negate should work fine for unsigned, right?
This seems to eliminate the need for kInvaid.
~ $ cat test.c
int main(void) {
unsigned u = 0;
do {
unsigned nu = -u,
ns = -(int)u;
if (nu != ns) {
return 1;
}
} while (++u != 0);
return 0;
}
~ $ clang -Os test.c
~ $ ./a.out && echo ok
ok
Change-Id: If4eec8aa24dce634e3196c8631adec4362a3b69b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215045
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This reverts commit 3fb1503700.
PS 2 puts the if (n) { memcpy() } check back.
Cq-Include-Trybots: skia.primary:Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN
Change-Id: I58ead198e89c2d0e6d58d81825cd4a2d9cb4e7f5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215042
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
This file pulls in Windows headers in a custom way, which is somewhat
awkward for a library header. The only use in include/ has been replaced
with a single forward declaration.
Change-Id: Ibef4cf7a2d1c9957a6a5b145b95aca1a6868cb5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214689
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
This reverts commit 2cfc6b3020.
Reason for revert: ASAN issue
Original change's description:
> SkSLInterpreter refactoring
>
> A zillion little refactors:
>
> - small implementation simplifications all over,
> dead code removal, singleton code inlining,
> macro -> lambda, etc.
>
> - copy args to stack in outer run(),
> which is where we copy from stack to args.
>
> - scope temporaries more closely to the switch
> cases that use them rather than to all of run()
>
> - vertically align analogous cases,
> especially fall through
>
> Change-Id: I7694b85724500717e6015bf7600f125c83a0d408
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214900
> Commit-Queue: Mike Klein <mtklein@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
TBR=mtklein@google.com,brianosman@google.com,ethannicholas@google.com
Change-Id: I88046e0c2a67ab8d599597da00e81f3f004f8791
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/215000
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
70958d15db..e8247a5749
git log 70958d15db70..e8247a574956 --date=short --no-merges --format='%ad %ae %s'
2019-05-20 jgilbert@mozilla.com Add scripts/export_targets.py.
2019-05-20 thomasanderson@chromium.org Remove non-source sources from binary targets
2019-05-20 jmadill@chromium.org Fix Android data dir for KHR dEQP tests.
Created with:
gclient setdep -r third_party/externals/angle2@e8247a574956
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=csmartdalton@google.com
Change-Id: I5aeb1c0618a4f3a9f706be40d9b369032f7dd40e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214961
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
1. not married to the name
2. should probably update the legacy pipeline as well...
Speeds up filteredrect (in rasterpipeline) by 15-20%
Change-Id: Ie98c4605baaae95362182880703152c543f71d36
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214862
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
A zillion little refactors:
- small implementation simplifications all over,
dead code removal, singleton code inlining,
macro -> lambda, etc.
- copy args to stack in outer run(),
which is where we copy from stack to args.
- scope temporaries more closely to the switch
cases that use them rather than to all of run()
- vertically align analogous cases,
especially fall through
Change-Id: I7694b85724500717e6015bf7600f125c83a0d408
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214900
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Bug: skia:
Change-Id: Ibcbad9252f2da468549792bf7c3bb4e9a5b77805
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214380
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
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).
Please review the expectation changes, and LGTM+CQ.
More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug.
depot_tools:
https://crrev.com/99fe071354e3b3f176ee345bc98328e96d6c1fd1 Reland "bot_update: Pass target-ref to gclient." (ehmaldonado@chromium.org)
R=rmistry@google.com
Recipe-Tryjob-Bypass-Reason: Autoroller
Bugdroid-Send-Email: False
Change-Id: I1d80fac2bb431febe0189bc27e75615de7432667
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214698
Reviewed-by: Edward Lemur <ehmaldonado@google.com>
Reviewed-by: Ravi Mistry <rmistry@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Change-Id: I78d076fe0bc0c49f57734b2b517f39407d92feea
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214693
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
Auto-Submit: Brian Salomon <bsalomon@google.com>
Reviewed-by: Chris Dalton <csmartdalton@google.com>
- tweak comments to be immune to tools/rewrite_headers.py
- remove a few bonkers settings no user should change
While I'm at it, re-run tools/rewrite_headers.py.
Change-Id: Ie588d604010dd26abcdd277c586cd6c58568dcf5
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214740
Auto-Submit: Mike Klein <mtklein@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Previous structure didn't measure anything but new/free cost. All of the
constructs turned into (eventually) drawRect + color.
New version also measures that, but in a clearer way, so we can examine
all the variants, and assume that they should all be about the same.
Change-Id: I1b4a0120a3e663ce1b9daa3c1e3e26ae6b397677
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214687
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
Change-Id: I7f6fe83cfb653819c1b5d865421f4fd2121e9b4d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/212418
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
Change-Id: Id2f2d76dfc7ba6865c7bd5c87960ff50b1ebd774
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214690
Auto-Submit: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
This is a reland of 451b01fe09
Original change's description:
> Make SkSurface::asyncRescaleAndRead use kStrict constraint
>
> Also fix crash if SkSurface has no color space.
>
> Bug: skia:8962
> Change-Id: I5826ddb10daa46f286d2405b7229ea4f0aefa8f2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214306
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Osman <brianosman@google.com>
Bug: skia:8962
Change-Id: I05713351f62cc738ec8a4bba6377e9aa7a044975
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214684
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
This initial portion of the API should be ready to go. Follow on CLs will add the other entry points.
Change-Id: Ia9c708046ba08b16f9a71558e2bf2c38279abe5d
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214680
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This partially undoes 774168efac "Allow
CCPR in DDL mode (take 2)". The issue appears to have been the use of a
not fully defined type (destructor could not be instantiated) because
the private fields were also dllexported, requiring the destructors to
exist in all translation units which included the header. Only the parts
of the class which are actually public are now marked as exported.
Change-Id: I8a79bd5d8962e94c24f7563d496744bb278153fa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214020
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
For a modified bench, that installs colorfilterimagefilters and then draws a colored rect:
before:
13/13 MB 18 1.66µs 1.67µs 1.67µs 1.73µs 1% █▂▂▃▄▁▂▁▁▃ 8888
after:
13/13 MB 17 874ns 878ns 882ns 920ns 2% █▁▂▂▁▂▂▁▁▁ 8888
Some observations
- we can sometimes build several rasterpipelines in a single draw
- filterColor4f (can be called more than once)
- actual_blit
- imagefilter::affectsTransparentBlack
- calls through to the colorfilter
- this in-turn invokes filterColor4f, which makes a pipeline
+ if we had elimnated the imagefilter (for a colorfilter) sooner,
we would not have called affectsTransparentBlack
+ adding a virtual to colorfilter for affectsTransparentBlack might
also avoid having to call filterColor4f (at least for filters
that know how to determine this simply)
For now however, increasing the arena's stack-budget seems to brush over
these other inefficiencies.
More observations
- we decide to use pipeline before we fold-away the colorfilter (w/ no shader)
- the pipeline later notices this, and becomes just a color draw
- if we had removed the colorfilter earlier, we would have taken a different
(legacy, slightly faster) blitter (logically using memset).
Change-Id: I1a63414acbf23967c4d4daed9956bdc4d81148c6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214682
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Bug: skia:
Change-Id: Ie8c873bf7fc795567ad812f56c37bee4c06213bb
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214307
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This reverts commit 046ecb1b5e.
Reason for revert: Flutter
Original change's description:
> remove SkMiniPicture and co.
>
> This was an optimization for Chromium that I believe is no longer
> relevant in a world of PaintOpBuffers.
>
> Change-Id: Ic7526715a0ef1c3cec387a44189b7d56d5107af5
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/213680
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
TBR=mtklein@google.com,reed@google.com,chinmaygarde@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Ibf1ccee88c9ea140210cb9258ec96f9841e84c24
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214661
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
06de90c66c..70958d15db
git log 06de90c66c18..70958d15db70 --date=short --no-merges --format='%ad %ae %s'
2019-05-19 cnorthrop@google.com Let attribute aliasing logic detect overflow
2019-05-18 syoussefi@chromium.org Vulkan: Add support for surface multisampling
2019-05-17 jonahr@google.com Fix formatting issue in generate_stats
2019-05-17 ynovikov@chromium.org docs: Update Android Test Instructions reference
2019-05-17 syoussefi@chromium.org Vulkan: Tighten descriptor stage usage hints
2019-05-17 cnorthrop@google.com Allow attribute linking for ES2
2019-05-17 jmadill@chromium.org Fix KHR-GLES dEQP test paths.
2019-05-17 angle-autoroll@skia-public.iam.gserviceaccount.com Roll ./third_party/spirv-headers/src 4b0985f29277..9674a1a54754 (2 commits)
Created with:
gclient setdep -r third_party/externals/angle2@70958d15db70
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=csmartdalton@google.com
Change-Id: I1a410f181b52e189478ffccd2b610100b1304a57
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214642
Reviewed-by: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: skia-autoroll <skia-autoroll@skia-public.iam.gserviceaccount.com>
fix google3 build (don't build the new gm)
This reverts commit 9cc53fa4bd.
Change-Id: I3de8aa4959f62a380f1d4aaf2b788d250775e194
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214442
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
This is a reland of e5288369c8,
with newly added calls to align() removed.
Original change's description:
> byte align everything in SkSLInterpreter
>
> It's nicer to write code without having to think about alignment,
> and this appears to be faster too:
>
> $ ninja -C out nanobench && out/nanobench --config 8888 -m GM_runtime_cf_interp_1 --loops 0
> Before: 24/24 MB 1 18.4ms 18.5ms 18.5ms 18.6ms 0% █▆▅▅▅▁▅▅▅▅ 8888 GM_runtime_cf_interp_1
> After: 23/23 MB 1 16.6ms 16.6ms 16.6ms 16.7ms 0% ▁▁▃█▅▂▁▁█▅ 8888 GM_runtime_cf_interp_1
>
> While byte-aligning things I noticed the write16 and write32 calls could
> do all their bytes at once, in one call to resize() instead of 2-4 calls
> push_back.
>
> Looking at that disassembly, I noticed vector_instruction can be static.
>
> Change-Id: I22985b49d6745797da10bbd6b6f2002a7618f2ae
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214338
> Reviewed-by: Brian Osman <brianosman@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>
Change-Id: Ibb990bc3c3334115e22cf36234aa58b662b8ca4f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214354
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
This reverts commit 69596470d1.
Reason for revert: breaks google3 roll
third_party/skia/HEAD/gm/video_decoder.cpp:8:10: fatal error: 'experimental/ffmpeg/SkVideoDecoder.h' file not found
#include "experimental/ffmpeg/SkVideoDecoder.h"
Original change's description:
> Experimental SkVideoDecoder, to wrap calls to ffmpeg
>
> If you want to build ffmpeg locally, here is how I configured it:
> ./configure --disable-all --enable-avcodec --enable-avformat --enable-decoder=h264 --enable-parser=h264 --enable-demuxer=mov --enable-static --enable-protocol=file
>
> Bug: skia: 9085
> Change-Id: If1892b62314af26e56ecb0293850f7554106c3d0
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/213664
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Nathaniel Nifong <nifong@google.com>
TBR=mtklein@google.com,bsalomon@google.com,scroggo@google.com,brianosman@google.com,fmalita@chromium.org,reed@google.com,nifong@google.com
Change-Id: I33d68e11a67ccf3616296e3377b42438c7f95edc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia: 9085
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214441
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Change-Id: I072f5d72f64eb683cc90c2890313ee289487cff3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214403
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Do idea why the old pages were failing. Updated the deep links.
NoTry: true
Bug: skia:9083
Change-Id: Iba7c5777f8eaf69d2f0d84c07f8fad385e683422
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214302
Reviewed-by: Ravi Mistry <rmistry@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>