platform/upstream/libSkiaSharp.git
8 years agoGrDrawContext now holds GrRenderTarget pointer
robertphillips [Thu, 15 Oct 2015 15:01:48 +0000 (08:01 -0700)]
GrDrawContext now holds GrRenderTarget pointer

Review URL: https://codereview.chromium.org/1404823005

8 years agoRenable image benchmarking
scroggo [Thu, 15 Oct 2015 14:51:28 +0000 (07:51 -0700)]
Renable image benchmarking

- Remove --images '' to renable image benchmarking
- Add a flag to disable testing JPEG's buildTileIndex, since it also leaks memory
- Do not run images on GPU
- Do not run large interlaced images on 32 bit bots
- When buildTileIndex is not being used in the subset benches, do not use it for BRD

BUG=skia:3418
BUG=skia:4469
BUG=skia:4471
BUG=skia:4360

Review URL: https://codereview.chromium.org/1396113002

8 years agosmall tidy of benchmarkstream
joshualitt [Thu, 15 Oct 2015 14:18:29 +0000 (07:18 -0700)]
small tidy of benchmarkstream

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/691b6af907e55250a29a7a2a346b63c2026011c3

Review URL: https://codereview.chromium.org/1395703002

8 years agoReenable warnings in src/codec
msarett [Thu, 15 Oct 2015 13:41:06 +0000 (06:41 -0700)]
Reenable warnings in src/codec

BUG=skia:

Review URL: https://codereview.chromium.org/1400343005

8 years agoAdd a comment to explain clip intersection in crop rects.
senorblanco [Thu, 15 Oct 2015 12:04:27 +0000 (05:04 -0700)]
Add a comment to explain clip intersection in crop rects.

BUG=skia:
R=robertphillips

Review URL: https://codereview.chromium.org/1401973003

8 years agoFix floating point data loss in SkPictureShader
ericrk [Thu, 15 Oct 2015 00:33:29 +0000 (17:33 -0700)]
Fix floating point data loss in SkPictureShader

SkPictureShader had an invalid use of SkMax32 on two SkScalars which
ended up converting the result to an integer which caused us to lose
necessary floating point data.

BUG=473166

Review URL: https://codereview.chromium.org/1401743004

8 years agoRevert of Supply separate flags for onBuildTileIndex (patchset #1 id:1 of https:...
msarett [Wed, 14 Oct 2015 22:21:11 +0000 (15:21 -0700)]
Revert of Supply separate flags for onBuildTileIndex (patchset #1 id:1 of https://codereview.chromium.org/1402783008/ )

Reason for revert:
Missing an important line.

Original issue's description:
> Supply separate flags for onBuildTileIndex
>
> This is a follow up to:
> https://codereview.chromium.org/1401283003/
>
> Supply separate flags for onBuildTileIndex
>
> Since png and jpeg's implementations of onBuildTileIndex rely on
> modifications to their underlying libraries, rather than whether we are
> running on Android, use separate flags that can be disabled
> independently.
>
> This will allow us to easily turn off the feature. It also is a step
> towards building and running on other platforms for testing (e.g.
> valgrind/ASAN to find memory leaks etc).
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/fc06e9c0e621744654e231ae6fa4460d88c0e27e

TBR=scroggo@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1394433005

8 years agoDon't abort analytic clipping if using MSAA until elements are examined
bsalomon [Wed, 14 Oct 2015 22:01:50 +0000 (15:01 -0700)]
Don't abort analytic clipping if using MSAA until elements are examined

TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1399223005

8 years agoRevert of small tidy of benchmarkstream (patchset #2 id:20001 of https://codereview...
joshualitt [Wed, 14 Oct 2015 21:45:07 +0000 (14:45 -0700)]
Revert of small tidy of benchmarkstream (patchset #2 id:20001 of https://codereview.chromium.org/1395703002/ )

Reason for revert:
Breaks visualbench

Original issue's description:
> small tidy of benchmarkstream
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/691b6af907e55250a29a7a2a346b63c2026011c3

TBR=robertphillips@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1392833006

8 years agoSupply separate flags for onBuildTileIndex
msarett [Wed, 14 Oct 2015 21:42:44 +0000 (14:42 -0700)]
Supply separate flags for onBuildTileIndex

This is a follow up to:
https://codereview.chromium.org/1401283003/

Supply separate flags for onBuildTileIndex

Since png and jpeg's implementations of onBuildTileIndex rely on
modifications to their underlying libraries, rather than whether we are
running on Android, use separate flags that can be disabled
independently.

This will allow us to easily turn off the feature. It also is a step
towards building and running on other platforms for testing (e.g.
valgrind/ASAN to find memory leaks etc).

BUG=skia:

Review URL: https://codereview.chromium.org/1402783008

8 years agoStore texture target on GrGLTexture. This is in preparation for using texture targets...
bsalomon [Wed, 14 Oct 2015 19:54:52 +0000 (12:54 -0700)]
Store texture target on GrGLTexture. This is in preparation for using texture targets other than 2D.

Review URL: https://codereview.chromium.org/1403123002

8 years agoRemove unnecessary allocation in nanobench
scroggo [Wed, 14 Oct 2015 16:00:35 +0000 (09:00 -0700)]
Remove unnecessary allocation in nanobench

Review URL: https://codereview.chromium.org/1408593002

8 years agoFix clipping when all analytic FP creations can be skipped
bsalomon [Wed, 14 Oct 2015 15:31:34 +0000 (08:31 -0700)]
Fix clipping when all analytic FP creations can be skipped

BUG=skia:

Review URL: https://codereview.chromium.org/1400343004

8 years agoFix TextBlobTest valgrind error
fmalita [Wed, 14 Oct 2015 15:11:40 +0000 (08:11 -0700)]
Fix TextBlobTest valgrind error

When converting text to glyph IDs, the paint needs to reflect the actual
text encoding.

R=bungeman@google.com,herb@google.com

Review URL: https://codereview.chromium.org/1404153002

8 years agosmall tidy of benchmarkstream
joshualitt [Wed, 14 Oct 2015 15:04:22 +0000 (08:04 -0700)]
small tidy of benchmarkstream

BUG=skia:

Review URL: https://codereview.chromium.org/1395703002

8 years agoSupply separate flags for onBuildTileIndex
scroggo [Wed, 14 Oct 2015 14:54:34 +0000 (07:54 -0700)]
Supply separate flags for onBuildTileIndex

Since png and jpeg's implementations of onBuildTileIndex rely on
modifications to their underlying libraries, rather than whether we are
running on Android, use separate flags that can be disabled
independently.

This will allow us to easily turn off the feature. It also is a step
towards building and running on other platforms for testing (e.g.
valgrind/ASAN to find memory leaks etc).

Review URL: https://codereview.chromium.org/1401283003

8 years agochange back to method for localmatrix imagefilter
reed [Wed, 14 Oct 2015 14:49:35 +0000 (07:49 -0700)]
change back to method for localmatrix imagefilter

This method is different from MatrixFilter, in that MatrixFilter does not require a pre-existing
filter, but LocalM does. Also change the comment to be more general, as there is no promise that
we return a different subclass, and certainly not a specific subclass.

This pattern of obj->newWithModifiers() also more closely matches the pattern in SkImage (newSubset).

BUG=skia:

Review URL: https://codereview.chromium.org/1402133002

8 years agoCreate VisualStreamTimingModule
joshualitt [Wed, 14 Oct 2015 14:49:28 +0000 (07:49 -0700)]
Create VisualStreamTimingModule

BUG=skia:

Review URL: https://codereview.chromium.org/1385073002

8 years agoImplement SkLocalMatrixImageFilter.
senorblanco [Wed, 14 Oct 2015 11:53:31 +0000 (04:53 -0700)]
Implement SkLocalMatrixImageFilter.

At draw time, this filter simply concatenates the given matrix to the
CTM, and recurses on its input. The matrix is thus applied to any
upstream filter parameters and crop rects.

BUG=skia:

Review URL: https://codereview.chromium.org/1392833005

8 years agoStop benching PNG buildTileIndex by default
scroggo [Tue, 13 Oct 2015 20:33:33 +0000 (13:33 -0700)]
Stop benching PNG buildTileIndex by default

It leaks memory and kills the bots. Supply an option to run it for
local comparison.

BUG=skia:4360
BUG=skia:3418

Review URL: https://codereview.chromium.org/1396613007

8 years agoFix dm with Chromium command buffer driver
kkinnunen [Tue, 13 Oct 2015 19:58:37 +0000 (12:58 -0700)]
Fix dm with Chromium command buffer driver

Fix a crash in dm when run with Chromium command buffer driver.

Also removes glCopyTextureCHROMIUM, it does not seem to be used.
This is removed on the grounds that it would need similar change,
if it was used. The variable fCopyTextureCHROMIUM does not seem to
be populated in the Chromium side, either.

BUG=skia:2992

Review URL: https://codereview.chromium.org/1389213004

8 years agoAdd subsetting to SkScanlineDecoder
msarett [Tue, 13 Oct 2015 19:50:14 +0000 (12:50 -0700)]
Add subsetting to SkScanlineDecoder

This CL allows the SkScanlineDecoder to decode partial
scanlines.

This is a first step in efficiently implementing subsetting
in SkScaledCodec.

BUG=skia:4209

Review URL: https://codereview.chromium.org/1390213002

8 years agoFix text axis alignment calculation
herb [Tue, 13 Oct 2015 18:47:54 +0000 (11:47 -0700)]
Fix text axis alignment calculation

BUG=skia:

Review URL: https://codereview.chromium.org/1405583002

8 years ago[SkTextBlob] Remove incorrect builder assert
fmalita [Tue, 13 Oct 2015 15:59:23 +0000 (08:59 -0700)]
[SkTextBlob] Remove incorrect builder assert

At the end of TightRunBounds, glyphPosX cannot exceed the start of the
next run.  But glyphPosY is running ahead of glyphPosX (for
kFull_Positioning) => the glyphPosY assert is incorrect.

Since the two pointers advance in lock-step, there isn't much value in
the glyphPosY assert anyway - we might as well remove it.

BUG=chromium:542643
R=reed@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/1405463004

8 years agoWhitespace change to test CQ waiting for l-g-t-m
rmistry [Tue, 13 Oct 2015 11:44:40 +0000 (04:44 -0700)]
Whitespace change to test CQ waiting for l-g-t-m

BUG=skia:

Review URL: https://codereview.chromium.org/1401333002

8 years agoadjust size of new apply-filter gm
reed [Mon, 12 Oct 2015 21:38:34 +0000 (14:38 -0700)]
adjust size of new apply-filter gm

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1395303003

8 years agoSkBitmapRegionCanvas bug fix
msarett [Mon, 12 Oct 2015 20:33:18 +0000 (13:33 -0700)]
SkBitmapRegionCanvas bug fix

BUG=skia:

Review URL: https://codereview.chromium.org/1393423004

8 years agopost-commit fixes to applyFilter CL
reed [Mon, 12 Oct 2015 20:17:23 +0000 (13:17 -0700)]
post-commit fixes to applyFilter CL

BUG=skia:

Review URL: https://codereview.chromium.org/1404483002

8 years agoWhitespace change to turn Android bots green
rmistry [Mon, 12 Oct 2015 20:07:28 +0000 (13:07 -0700)]
Whitespace change to turn Android bots green

BUG=skia:
TBR=borenet

Review URL: https://codereview.chromium.org/1405433002

8 years agoSkPDF: fall back on paths for unembeddable fonts.
halcanary [Mon, 12 Oct 2015 20:05:04 +0000 (13:05 -0700)]
SkPDF: fall back on paths for unembeddable fonts.

Add GM, SkPDFFont::CanEmbedTypeface

BUG=skia:3866

Review URL: https://codereview.chromium.org/1401763002

8 years agoadd applyFilter() to SkImage
reed [Mon, 12 Oct 2015 18:30:02 +0000 (11:30 -0700)]
add applyFilter() to SkImage

Result:
- clients can get a filtered version of an image without having to setup a temp drawing environment
- for some cases, the process is more efficient even than (deprecated) drawSprite, since there is no need to draw/copy the result

Impl:
- made Proxy virtual so we don't need to have an existing device to use it

This, in conjunction with LocalMatrixImageFilter, should allow us to simplify and optimize ApplyImageFilter() in cc/output/gl_renderer.cc

BUG=skia:

Review URL: https://codereview.chromium.org/1390913005

8 years agochange more effects to only expose factories
reed [Mon, 12 Oct 2015 18:10:10 +0000 (11:10 -0700)]
change more effects to only expose factories

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1395403002

8 years agoRemove SK_SUPPORT_LEGACY_GRADIENT_DITHERING from Skia proper
fmalita [Mon, 12 Oct 2015 17:41:48 +0000 (10:41 -0700)]
Remove SK_SUPPORT_LEGACY_GRADIENT_DITHERING from Skia proper

Migrating the flag to embedder defines (Chromium already guarded).

Also augment gradient-focused GMs to generate both dithered/undithered
results.

BUG=skia:4436
R=reed@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/1400813006

8 years agoRemove image usage type enum. Use GrTextureParams instead.
bsalomon [Mon, 12 Oct 2015 17:39:46 +0000 (10:39 -0700)]
Remove image usage type enum. Use GrTextureParams instead.

BUG=skia:

Review URL: https://codereview.chromium.org/1404433002

8 years agoSkBitmapRegionDecoder clean-up
msarett [Mon, 12 Oct 2015 17:24:38 +0000 (10:24 -0700)]
SkBitmapRegionDecoder clean-up

Use SkCodecPrintf instead of SkDebugf.

Check if the conversion is possible rather than starting many decodes
that will certainly fail.

Small refactor to code that deals with subsets that fall outside
of the image.

BUG=skia:

Review URL: https://codereview.chromium.org/1395383002

8 years agoSkPDF: Optionally output PDF/A-2b archive format.
halcanary [Mon, 12 Oct 2015 17:11:18 +0000 (10:11 -0700)]
SkPDF: Optionally output PDF/A-2b  archive format.

Note: this format does not yet pass validation tests.

Add skia_pdf_generate_pdfa GYP flag.  Default to off for now.
PDF/A files are not reproducable, so they make correctness
testing harder.

Turn the Metadata struct into te SkPDFMetadata struct.  This
splits out a lot of functionality around both kinds of metadata.

When PDF/A is used, add an ID entry to the trailer.

Add SkPDFObjNumMap::addObjectRecursively.

Test with

    GYP_DEFINES=skia_pdf_generate_pdfa=1 bin/sync-and-gyp
    ninja -C out/Release dm
    out/Release/dm --config pdf --src skp gm -w /tmp/dm

With skia_pdf_generate_pdfa=0, all PDFs generated from GMs and
SKPs are identical.  With skia_pdf_generate_pdfa=1, all PDFs
generated from GMs and SKPs render identically in Pdfium.

BUG=skia:3110

Review URL: https://codereview.chromium.org/1394263003

8 years agoEnable more testing for scaled webps
msarett [Mon, 12 Oct 2015 15:14:40 +0000 (08:14 -0700)]
Enable more testing for scaled webps

BUG=skia:

Review URL: https://codereview.chromium.org/1401093002

8 years agoUpdate SKP version
update-skps [Sun, 11 Oct 2015 07:20:57 +0000 (00:20 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1401013002

8 years ago[TextBlob] Fall back to TightRunBounds when the font bounds are empty
fmalita [Fri, 9 Oct 2015 21:46:28 +0000 (14:46 -0700)]
[TextBlob] Fall back to TightRunBounds when the font bounds are empty

Empty font bounds are likely an indication of a font bug.  As a best
effort, we can use TightRunBounds in this easily detectable case.

Since TightRunBounds only supports kDefault_Positioning currently, the
CL also reinstates handling of kFull_Positioning and
kHorizontal_Positioning (removed in http://crrev.com/858153007).

BUG=507022
R=reed@google.com,bungeman@google.com

Review URL: https://codereview.chromium.org/1399123002

8 years agoFix SkWindow.cpp includes for non-gpu mode
Brian Salomon [Fri, 9 Oct 2015 20:54:48 +0000 (16:54 -0400)]
Fix SkWindow.cpp includes for non-gpu mode

TBR=bungeman@google.com

Review URL: https://codereview.chromium.org/1400933002 .

8 years agoRevert of SkPDF: Optionally output PDF/A-2b archive format. (patchset #5 id:80001...
bungeman [Fri, 9 Oct 2015 20:45:50 +0000 (13:45 -0700)]
Revert of SkPDF: Optionally output PDF/A-2b  archive format. (patchset #5 id:80001 of https://codereview.chromium.org/1394263003/ )

Reason for revert:
SkMD5 is not really part of the Skia library. This is breaking the roll by using it, since Chromium doesn't build it.

Original issue's description:
> SkPDF: Optionally output PDF/A-2b  archive format.
>
> Note: this format does not yet pass validation tests.
>
> Add skia_pdf_generate_pdfa GYP flag.  Default to off for now.
> PDF/A files are not reproducable, so they make correctness
> testing harder.
>
> Turn the Metadata struct into te SkPDFMetadata struct.  This
> splits out a lot of functionality around both kinds of metadata.
>
> When PDF/A is used, add an ID entry to the trailer.
>
> Add SkPDFObjNumMap::addObjectRecursively.
>
> Test with
>
>     GYP_DEFINES=skia_pdf_generate_pdfa=1 bin/sync-and-gyp
>     ninja -C out/Release dm
>     out/Release/dm --config pdf --src skp gm -w /tmp/dm
>
> With skia_pdf_generate_pdfa=0, all PDFs generated from GMs and
> SKPs are identical.  With skia_pdf_generate_pdfa=1, all PDFs
> generated from GMs and SKPs render identically in Pdfium.
>
> BUG=skia:3110
>
> Committed: https://skia.googlesource.com/skia/+/939c0fe51f157104758bcb268643c8b6d317a530

TBR=tomhudson@google.com,halcanary@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3110

Review URL: https://codereview.chromium.org/1398193002

8 years agoMove functions from SkGr to SkGrPriv.h
bsalomon [Fri, 9 Oct 2015 20:36:42 +0000 (13:36 -0700)]
Move functions from SkGr to SkGrPriv.h

Review URL: https://codereview.chromium.org/1397123002

8 years agoAdd test with GLFW framework
jvanverth [Fri, 9 Oct 2015 20:27:33 +0000 (13:27 -0700)]
Add test with GLFW framework

BUG=skia:

Review URL: https://codereview.chromium.org/1367403006

8 years agoSkPDF: Optionally output PDF/A-2b archive format.
halcanary [Fri, 9 Oct 2015 20:09:58 +0000 (13:09 -0700)]
SkPDF: Optionally output PDF/A-2b  archive format.

Note: this format does not yet pass validation tests.

Add skia_pdf_generate_pdfa GYP flag.  Default to off for now.
PDF/A files are not reproducable, so they make correctness
testing harder.

Turn the Metadata struct into te SkPDFMetadata struct.  This
splits out a lot of functionality around both kinds of metadata.

When PDF/A is used, add an ID entry to the trailer.

Add SkPDFObjNumMap::addObjectRecursively.

Test with

    GYP_DEFINES=skia_pdf_generate_pdfa=1 bin/sync-and-gyp
    ninja -C out/Release dm
    out/Release/dm --config pdf --src skp gm -w /tmp/dm

With skia_pdf_generate_pdfa=0, all PDFs generated from GMs and
SKPs are identical.  With skia_pdf_generate_pdfa=1, all PDFs
generated from GMs and SKPs render identically in Pdfium.

BUG=skia:3110

Review URL: https://codereview.chromium.org/1394263003

8 years agoFix codec memory leaks in nanobench
scroggo [Fri, 9 Oct 2015 19:15:57 +0000 (12:15 -0700)]
Fix codec memory leaks in nanobench

SubsetTranslateBench.cpp:
Unref the color table, so it gets deleted.

SkBitmapRegionDecoderInterface.cpp:
Delete the stream if it is not used.

BUG=skia:3418

Review URL: https://codereview.chromium.org/1396113003

8 years agoFill incomplete images in SkCodec parent class
msarett [Fri, 9 Oct 2015 18:07:34 +0000 (11:07 -0700)]
Fill incomplete images in SkCodec parent class

Rather than implementing some sort of "fill" in every
SkCodec subclass for incomplete images, let's make the
parent class handle this situation.

This includes an API change to SkCodec.h

SkCodec::getScanlines() now returns the number of lines it
read successfully, rather than an SkCodec::Result enum.
getScanlines() most often fails on an incomplete input, in
which case it is useful to know how many lines were
successfully decoded - this provides more information than
kIncomplete vs kSuccess.  We do lose information when the
API is used improperly, as we are no longer able to return
kInvalidParameter or kScanlineNotStarted.

Known Issues:
Does not work for incomplete fFrameIsSubset gifs.
Does not work for incomplete icos.

BUG=skia:

Review URL: https://codereview.chromium.org/1332053002

8 years agoFix gpu drawBitmap to work when BM is A8 and we have a shader
egdaniel [Fri, 9 Oct 2015 17:55:16 +0000 (10:55 -0700)]
Fix gpu drawBitmap to work when BM is A8 and we have a shader

BUG=skia:

Review URL: https://codereview.chromium.org/1399763002

8 years agoOptional gradient dithering
fmalita [Fri, 9 Oct 2015 17:22:46 +0000 (10:22 -0700)]
Optional gradient dithering

Update raster gradient impls to observe the paint dithering flag.

For now this new behavior is disabled pending internal/external
client updates to mitigate diffs.

BUG=skia:4436
R=reed@google.com,mtklein@google.com,tomhudson@google.com

Review URL: https://codereview.chromium.org/1391303002

8 years agoFocus SkScaledCodec on BitmapRegionDecoder
scroggo [Fri, 9 Oct 2015 15:40:59 +0000 (08:40 -0700)]
Focus SkScaledCodec on BitmapRegionDecoder

The primary goal of SkScaledCodec is to replace the current
implementation of BitmapRegionDecoder, which depends on modified
versions of libjpeg and libpng, with an implementation that uses
standard versions of the libaries. Since BitmapRegionDecoder only
supports PNG, WEBP and JPEG, limit SkScaledCodec to those classes.
We will focus on those three until we complete this primary goal.
Then we can continue to make SkScaledCodec work for other formats.

Fix some bugs in SkScaledCodec::NewFromStream:
- Handle a NULL input stream properly
- Ensure that the input stream is deleted as expected on bad data

Add tests for these error cases.

BUG=skia:4428

Review URL: https://codereview.chromium.org/1389053002

8 years agoReland of Pass --images '' to nanobench to disable image benchmarking. (patchset...
scroggo [Thu, 8 Oct 2015 21:44:51 +0000 (14:44 -0700)]
Reland of Pass --images '' to nanobench to disable image benchmarking. (patchset #1 id:1 of https://codereview.chromium.org/1400633002/ )

Reason for revert:
Still breaking. e.g.

http://build.chromium.org/p/client.skia/builders/Test-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug/builds/1466/steps/nanobench/logs/stdio

http://build.chromium.org/p/client.skia.android/builders/Perf-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release/builds/2280/steps/nanobench/logs/stdio

Original issue's description:
> Revert of Pass --images '' to nanobench to disable image benchmarking. (patchset #1 id:1 of https://codereview.chromium.org/1381703003/ )
>
> Reason for revert:
> I have attempted to fix the problems that caused running nanobench with images to fail, so testing to see if they are in fact fixed.
>
> Original issue's description:
> > Pass --images '' to nanobench to disable image benchmarking.
> >
> > Enabling image benchmarking has caused most nanobench runs to fail,
> > both Debug and Release.
> >
> > BUG=skia:3418
> > NOTREECHECKS=true
> > TBR=scroggo@google.com
> >
> > Committed: https://skia.googlesource.com/skia/+/1f7039c6c5f0f118b629994b0bac255345e5abd6
>
> BUG=skia:3418
>
> Committed: https://skia.googlesource.com/skia/+/c2e59caa0a466040f4b4f08cb5604c86b2615efa

TBR=mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:3418

Review URL: https://codereview.chromium.org/1396843003

8 years agoRevert of Pass --images '' to nanobench to disable image benchmarking. (patchset...
scroggo [Thu, 8 Oct 2015 21:09:41 +0000 (14:09 -0700)]
Revert of Pass --images '' to nanobench to disable image benchmarking. (patchset #1 id:1 of https://codereview.chromium.org/1381703003/ )

Reason for revert:
I have attempted to fix the problems that caused running nanobench with images to fail, so testing to see if they are in fact fixed.

Original issue's description:
> Pass --images '' to nanobench to disable image benchmarking.
>
> Enabling image benchmarking has caused most nanobench runs to fail,
> both Debug and Release.
>
> BUG=skia:3418
> NOTREECHECKS=true
> TBR=scroggo@google.com
>
> Committed: https://skia.googlesource.com/skia/+/1f7039c6c5f0f118b629994b0bac255345e5abd6

BUG=skia:3418

Review URL: https://codereview.chromium.org/1400633002

8 years agoUpdate Subset benches to support interlacing and fix bugs
scroggo [Thu, 8 Oct 2015 19:01:39 +0000 (12:01 -0700)]
Update Subset benches to support interlacing and fix bugs

Instead of decoding one line at a time, if the ScanlineOrder is kNone,
decode all of the lines in one pass, and then copy the subset into the
output. This will allow us to more realistically test subset decodes
for interlaced png. It also makes running them not take forever.

Do *not* support other modes (besides kTopDown), since they are not
used by the big three we need to replace BitmapRegionDecoder
implementation (skbug.com/4428).

Fix a bug in SubsetTranslateBench and SubsetZoomBench:
When we decode another subset, we need to reset the scanline decode
first. This bug appears to have been present since the introduction of
these tests in crrev.com/1160953002

BUG=skia:4205
BUG=skia:3418

Review URL: https://codereview.chromium.org/1387233002

8 years agoremove internalDrawBitmap, as it is no longer shared with any other caller, and can...
reed [Thu, 8 Oct 2015 16:22:02 +0000 (09:22 -0700)]
remove internalDrawBitmap, as it is no longer shared with any other caller, and can be folded into onDrawBitmap

BUG=skia:

Review URL: https://codereview.chromium.org/1391333004

8 years agoUpdates nvpr text blobs to not store a direct reference to the
cdalton [Thu, 8 Oct 2015 15:04:09 +0000 (08:04 -0700)]
Updates nvpr text blobs to not store a direct reference to the
per-glyph GPU path object, but rather store a key for looking it up in
the resource cache. This allows the cache to purge glyphs when needed.
Also indirectly fixes a memory leak that was introduced with nvpr text
blobs.

BUG=skia:

Review URL: https://codereview.chromium.org/1374853004

8 years agoSkPath::fFirstDirection: seq-cst -> relaxed
mtklein [Wed, 7 Oct 2015 19:46:43 +0000 (12:46 -0700)]
SkPath::fFirstDirection: seq-cst -> relaxed

We landed this originally with lazily-correct sequentially-consistent memory
order.  It turns out that's regressed performance, we think particularly when
recording paths.  We also think there's no need for anything but relaxed memory
order here.

We should see this chart go down if all goes well: https://perf.skia.org/#4329
There are also Chrome performance charts to watch in the linked bug.

BUG=chromium:537700

CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-TSAN-Trybot,Test-Ubuntu-GCC-Golo-GPU-GT610-x86_64-Release-TSAN

No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1393833003

8 years agoAutomatically add TSAN bots to the CQ for changes affecting SkAtomics.h
mtklein [Wed, 7 Oct 2015 18:49:00 +0000 (11:49 -0700)]
Automatically add TSAN bots to the CQ for changes affecting SkAtomics.h

BUG=skia:

Review URL: https://codereview.chromium.org/1396523002

8 years agoAdd DrawShipSim sample.
jvanverth [Wed, 7 Oct 2015 17:43:05 +0000 (10:43 -0700)]
Add DrawShipSim sample.

Adds a version of the DrawShip sample that uses drawRect with a bitmap.
For testing batching.

BUG=skia:

Review URL: https://codereview.chromium.org/1395533002

8 years agoRemove ClipMaskType from GrCMM
bsalomon [Wed, 7 Oct 2015 16:30:05 +0000 (09:30 -0700)]
Remove ClipMaskType from GrCMM

Review URL: https://codereview.chromium.org/1391653002

8 years agoInsert clip fragment processor outside GrCMM
bsalomon [Wed, 7 Oct 2015 16:20:28 +0000 (09:20 -0700)]
Insert clip fragment processor outside GrCMM

Review URL: https://codereview.chromium.org/1393553002

8 years agoRevert "Revert of factories should return baseclass, allowing the impl to specialize...
reed [Tue, 6 Oct 2015 21:05:32 +0000 (14:05 -0700)]
Revert "Revert of factories should return baseclass, allowing the impl to specialize (patchset #4 id:60001 of https://codereview.chromium.org/1390523005/ )"

This reverts commit 95376a0dde3cdf414eb97a20cef3af19ed7e0151.

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1389083002

8 years agoRevert of factories should return baseclass, allowing the impl to specialize (patchse...
schenney [Tue, 6 Oct 2015 19:59:55 +0000 (12:59 -0700)]
Revert of factories should return baseclass, allowing the impl to specialize (patchset #4 id:60001 of https://codereview.chromium.org/1390523005/ )

Reason for revert:
Breaks Chrome with this link error: ../../third_party/skia/include/effects/SkMorphologyImageFilter.h:75: error: undefined reference to 'SkMorphologyImageFilter::SkMorphologyImageFilter(int, int, SkImageFilter*, SkImageFilter::CropRect const*)'
../../third_party/skia/include/effects/SkMorphologyImageFilter.h:104: error: undefined reference to 'SkMorphologyImageFilter::SkMorphologyImageFilter(int, int, SkImageFilter*, SkImageFilter::CropRect const*)'

Presumably due to code in third_party/WebKit/Source/platform/graphics/filters/FEMorphology.cpp that contains:
#include "SkMorphologyImageFilter.h"

...

    if (m_type == FEMORPHOLOGY_OPERATOR_DILATE)
        return adoptRef(SkDilateImageFilter::Create(radiusX, radiusY, input.get(), &rect));
    return adoptRef(SkErodeImageFilter::Create(radiusX, radiusY, input.get(), &rect));

Original issue's description:
> factories should return baseclass, allowing the impl to specialize
>
> waiting on https://codereview.chromium.org/1386163002/# to land
>
> BUG=skia:4424
>
> Committed: https://skia.googlesource.com/skia/+/80a6dcaa1b757826ed7414f64b035d512d9ccbf8

TBR=senorblanco@google.com,robertphillips@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4424

Review URL: https://codereview.chromium.org/1389063002

8 years agoBlacklisting imagefilterscropexpand on s4 since it often causes the bot to hang and...
egdaniel [Tue, 6 Oct 2015 18:20:09 +0000 (11:20 -0700)]
Blacklisting imagefilterscropexpand on s4 since it often causes the bot to hang and crash.

BUG=skia:4079

Review URL: https://codereview.chromium.org/1373763005

8 years agofactories should return baseclass, allowing the impl to specialize
reed [Tue, 6 Oct 2015 18:12:23 +0000 (11:12 -0700)]
factories should return baseclass, allowing the impl to specialize

waiting on https://codereview.chromium.org/1386163002/# to land

BUG=skia:4424

Review URL: https://codereview.chromium.org/1390523005

8 years agoAllow SkIcoCodec to fail due to conversion
scroggo [Tue, 6 Oct 2015 17:47:52 +0000 (10:47 -0700)]
Allow SkIcoCodec to fail due to conversion

Even if the client chooses dimensions that were suggested by
SkIcoCodec, it is possible for the color conversion to be incorrect,
so it can still reach the exit case of kInvalidConversion.

For example, when running nanobench, we attempt to decode the image
to Alpha_8, which the codec does not support. This allows running
nanobench in debug mode without asserting.

BUG=skia:3418

Review URL: https://codereview.chromium.org/1389943002

8 years agoSkPDF: when drawing stroked path, draw using SVG rules for zero-length segments
halcanary [Tue, 6 Oct 2015 16:41:47 +0000 (09:41 -0700)]
SkPDF: when drawing stroked path, draw using SVG rules for zero-length segments

The "zeroPath" and emptystroke GMs capture this issue.

This CL changes the following PDF GMs: emptystroke dashing4
lineclosepath dashing3 zeroPath linepath
complexclip3_complex complexclip3_simple roundrects
degeneratesegments filltypes strokerect pathfill
inverse_paths desk_chalkboard.skp

After this change, all PDF GMs look better (closer to 8888).
The dashing4, emptystroke, and zeroPath GMs still need a lot
of work to make them look right.

BUG=538726

Review URL: https://codereview.chromium.org/1374383004

8 years agoBye bye processor data manager.
bsalomon [Tue, 6 Oct 2015 15:40:50 +0000 (08:40 -0700)]
Bye bye processor data manager.

Review URL: https://codereview.chromium.org/1388113002

8 years agoFix for visualbench loops forever
joshualitt [Tue, 6 Oct 2015 15:25:15 +0000 (08:25 -0700)]
Fix for visualbench loops forever

TBR=robertphillips@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1387823004

8 years agonvpr removal from VisualBench base context
joshualitt [Tue, 6 Oct 2015 15:05:10 +0000 (08:05 -0700)]
nvpr removal from VisualBench base context

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1391633002

8 years agoFix SkGifCodec to handle gifs where frameSize != imageSize
msarett [Tue, 6 Oct 2015 14:46:02 +0000 (07:46 -0700)]
Fix SkGifCodec to handle gifs where frameSize != imageSize

These are quite rare, causing us to miss a few bugs in how
we deal with these images.

Additionally, there is a behavior change.  If the imageSize
is not large enough to contain the frame, we will "fix" the
image by increasing the image size.

SkScaledCodec is still buggy with regard to these gifs.
See skbug.com/4421. We will fix that after 1332053002
lands.

BUG=skia:

Review URL: https://codereview.chromium.org/1386973002

8 years agoRemove duplicate .cpp which should have been a .h
herb [Tue, 6 Oct 2015 14:42:53 +0000 (07:42 -0700)]
Remove duplicate .cpp which should have been a .h

Review URL: https://codereview.chromium.org/1389923002

8 years agoDynamically allocate the GrDrawContexts
robertphillips [Tue, 6 Oct 2015 14:38:23 +0000 (07:38 -0700)]
Dynamically allocate the GrDrawContexts

This CL moves the allocation and storage of the GrTextContexts into the DrawingManager. The GrDrawContexts now just get their GrTextContext from the DrawingManager.

Review URL: https://codereview.chromium.org/1375153007

8 years ago[SkDebugger] Handle path empty-bounds gracefully
fmalita [Tue, 6 Oct 2015 14:24:03 +0000 (07:24 -0700)]
[SkDebugger] Handle path empty-bounds gracefully

Paths with empty bounds crash the debugger: mapping their bounds onto
the shapshot area gets the canvas into an unhappy state.

R=robertphillips@google.com

Review URL: https://codereview.chromium.org/1387173003

8 years agoRevert of Stop using SkScalerContext::getAdvance() in SkGlyphCache. (patchset #2...
mtklein [Tue, 6 Oct 2015 14:00:45 +0000 (07:00 -0700)]
Revert of Stop using SkScalerContext::getAdvance() in SkGlyphCache. (patchset #2 id:20001 of https://codereview.chromium.org/1321243004/ )

Reason for revert:
Suspect this is the cause of regressions in crbug.com/527445.  It's triggering on Windows and Linux, where getting advances does less than getting full metrics.  It's not triggering on Mac, where this CL was a no-op.

Original issue's description:
> Stop using SkScalerContext::getAdvance() in SkGlyphCache.
>
> We think it'll simplify things to just always get the full metrics.
> On most platforms, it's no different, and we think the platforms that
> do differ (FreeType) will be nearly just as cheap.
>
> Removing this distinction helps us make SkGlyphCaches concurrent by
> removing a state (we-have-only-advances) from its logical state machine.
>
> We see no significant changes running SKPs before and after this CL.
> That makes sense, of course, because the SKPs bake some of this into drawPosText.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/518a2923f11b819fa44ed5cff54155326959540f

TBR=reed@google.com,bungeman@google.com,herb@google.com,mtklein@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1383403003

8 years agoMake path range loading explicit
cdalton [Mon, 5 Oct 2015 22:56:34 +0000 (15:56 -0700)]
Make path range loading explicit

Requires the caller to explicitly preload paths within a range before
calling drawPaths. This allows us to remove the implicit lazy load,
thereby eliminating a redundant check on every redraw of a text blob.

BUG=skia:

Review URL: https://codereview.chromium.org/1382013002

8 years agoImplement cached nvpr text blobs
cdalton [Mon, 5 Oct 2015 22:37:35 +0000 (15:37 -0700)]
Implement cached nvpr text blobs

BUG=skia:

Review URL: https://codereview.chromium.org/1381073002

8 years agoUse SkTextBlob for nvpr color bitmap fallbacks
cdalton [Mon, 5 Oct 2015 22:28:20 +0000 (15:28 -0700)]
Use SkTextBlob for nvpr color bitmap fallbacks

BUG=skia:

Review URL: https://codereview.chromium.org/1381873003

8 years agoAdd TextRun object to nvpr text
cdalton [Mon, 5 Oct 2015 21:57:20 +0000 (14:57 -0700)]
Add TextRun object to nvpr text

Adds a TextRun object that defines a resolution-independent, paint-
indepent draw for a string of nvpr text.

BUG=skia:

Review URL: https://codereview.chromium.org/1375353004

8 years agoSkScaledCodec should implement onRewind()
msarett [Mon, 5 Oct 2015 21:20:27 +0000 (14:20 -0700)]
SkScaledCodec should implement onRewind()

This is a bug fix.  I'm also adding a test.

BUG=skia:

Review URL: https://codereview.chromium.org/1385703002

8 years agoCleanup timing state machine
joshualitt [Mon, 5 Oct 2015 20:58:26 +0000 (13:58 -0700)]
Cleanup timing state machine

BUG=skia:

Review URL: https://codereview.chromium.org/1386933002

8 years agoAdd more .h files to the .gypi
herb [Mon, 5 Oct 2015 20:28:59 +0000 (13:28 -0700)]
Add more .h files to the .gypi

BUG=skia:

Review URL: https://codereview.chromium.org/1386963002

8 years agomove visual bench interactive module to timing state machine
joshualitt [Mon, 5 Oct 2015 20:24:55 +0000 (13:24 -0700)]
move visual bench interactive module to timing state machine

BUG=skia:

Review URL: https://codereview.chromium.org/1382883003

8 years agoValidate text blob runs after SkTextBlob construction.
fmalita [Mon, 5 Oct 2015 18:09:57 +0000 (11:09 -0700)]
Validate text blob runs after SkTextBlob construction.

This avoids tripping CFI when casting uninitialized SkTextBlob ptrs.

BUG=chromium:538754
R=bungeman@google.com,reed@google.com,krasin@google.com

Review URL: https://codereview.chromium.org/1388543005

8 years agoAdd ship sample
jvanverth [Mon, 5 Oct 2015 18:05:07 +0000 (11:05 -0700)]
Add ship sample

BUG=skia:

Review URL: https://codereview.chromium.org/1359033005

8 years agoSpecify bench_type & source_type for image benches
scroggo [Mon, 5 Oct 2015 18:03:34 +0000 (11:03 -0700)]
Specify bench_type & source_type for image benches

This will allow us to use perf filtering for comparing SkImageDecoder
to SkCodec.

BUG=skia:3418

Review URL: https://codereview.chromium.org/1387863002

8 years agoPass --images '' to nanobench to disable image benchmarking.
mtklein [Mon, 5 Oct 2015 17:24:59 +0000 (10:24 -0700)]
Pass --images '' to nanobench to disable image benchmarking.

Enabling image benchmarking has caused most nanobench runs to fail,
both Debug and Release.

BUG=skia:3418
NOTREECHECKS=true
TBR=scroggo@google.com

Review URL: https://codereview.chromium.org/1381703003

8 years agoFix gpu dashing for case where all intervals are 0.
egdaniel [Mon, 5 Oct 2015 15:11:49 +0000 (08:11 -0700)]
Fix gpu dashing for case where all intervals are 0.

BUG=skia:4409

Review URL: https://codereview.chromium.org/1381803005

8 years agoForce cache SkTestScalerContext path bounds.
mtklein [Mon, 5 Oct 2015 14:29:22 +0000 (07:29 -0700)]
Force cache SkTestScalerContext path bounds.

Looks like a race on this:

http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-ASAN/builds/2608/steps/dm/logs/stdio

BUG=skia:

Review URL: https://codereview.chromium.org/1373363007

8 years agoFactor out VisualBench timing code into a helper class
joshualitt [Mon, 5 Oct 2015 14:23:30 +0000 (07:23 -0700)]
Factor out VisualBench timing code into a helper class

BUG=skia:

Review URL: https://codereview.chromium.org/1375363003

8 years agoRevert of Have GrRectBlurEffect use Linear filtering (rather than Nearest Neighbor...
robertphillips [Sun, 4 Oct 2015 19:21:33 +0000 (12:21 -0700)]
Revert of Have GrRectBlurEffect use Linear filtering (rather than Nearest Neighbor) (patchset #2 id:20001 of https://codereview.chromium.org/1378023004/ )

Reason for revert:
Trial run confirmed layout test expectations - will reland after suppressions

Original issue's description:
> Have GrRectBlurEffect use Linear filtering (rather than Nearest Neighbor)
>
> Committed: https://skia.googlesource.com/skia/+/2d70bcccc9ba8f3898a7ae506ba7410ed8e9c9db
>
> Committed: https://skia.googlesource.com/skia/+/5175b9563055926b4969d57f06e4ae49b86e055b

TBR=bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1378813004

8 years agoSkImage doesn't use props, so don't need to store it
reed [Sun, 4 Oct 2015 18:28:36 +0000 (11:28 -0700)]
SkImage doesn't use props, so don't need to store it

BUG=skia:
TBR=bsalomon

Review URL: https://codereview.chromium.org/1372153006

8 years agoFix memory leak in ClipMaskManager
robertphillips [Sun, 4 Oct 2015 15:40:31 +0000 (08:40 -0700)]
Fix memory leak in ClipMaskManager

TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1385823002

8 years agoHave GrRectBlurEffect use Linear filtering (rather than Nearest Neighbor)
robertphillips [Sun, 4 Oct 2015 15:36:51 +0000 (08:36 -0700)]
Have GrRectBlurEffect use Linear filtering (rather than Nearest Neighbor)

Committed: https://skia.googlesource.com/skia/+/2d70bcccc9ba8f3898a7ae506ba7410ed8e9c9db

Review URL: https://codereview.chromium.org/1378023004

8 years agoUpdate SKP version
update-skps [Sun, 4 Oct 2015 07:22:10 +0000 (00:22 -0700)]
Update SKP version

Automatic commit by the RecreateSKPs bot.

TBR=
NO_MERGE_BUILDS

Review URL: https://codereview.chromium.org/1390433002

8 years agoSimplify nvpr text
cdalton [Sat, 3 Oct 2015 20:28:35 +0000 (13:28 -0700)]
Simplify nvpr text

- Drops device-space glyphs in favor of perf/simplicity.

- Removes residual complexities that would flip glyphs vertically for
  compatibility with nvpr glyph loading, which is no longer used.

- Drops hairline support since they required new paths for every draw
  matrix, and could only be supported under certain circumstances.

- Quits checking for color bitmap fonts in canDrawText since the
  normal color emoji fallback will handle them anyway.

BUG=skia:

Review URL: https://codereview.chromium.org/1380973002

8 years agoStop calling jpeg_finish_decompress()
msarett [Fri, 2 Oct 2015 20:44:12 +0000 (13:44 -0700)]
Stop calling jpeg_finish_decompress()

jpeg_finish_decompress() does several things:
(1) Reads to the end of the image stream.
(2) Calls term_src(), a client provided function that
indicates we are done with the memory stream.  Our current
implementation of term_src() does nothing.
(3) Calls jpeg_abort() which aborts the decode and cleans
up some memory.

I don't think we need to call this anymore.

(1) seems irrelevant.

It seems a little dangerous to get rid of (2), but it is
fine while our implementation of term_src() does nothing.

(3) We will call jpeg_destroy() on destruction of the
JpegDecoderManager.  This should free all the memory,
making it unnecessary to call jpeg_abort() beforehand.

BUG=skia:4040

Review URL: https://codereview.chromium.org/1370323004

8 years agoMove all knowledge of X sampling into SkScaledCodec
scroggo [Fri, 2 Oct 2015 20:14:46 +0000 (13:14 -0700)]
Move all knowledge of X sampling into SkScaledCodec

Prior to this CL, each SkCodec subclass that allows sampling does an
extra check in onStartScanlineDecode to determine whether the X dimension
is supported for sampling. Remove this check, and provide a way for
SkScaledCodec to directly access the SkSwizzler, and update it to do
sampling. This way, the SkCodec knows nothing of sampling, but we can
still save the extra step of sampling afterwards.

FIXME: SkBmpRLECodec still calls SkScaledCodec::DimensionsSupported. It
seems like it could directly support sampling, rather than dealing with
SkScaledCodec (partially).

Add a new base class for SkSwizzler. It allows updating the swizzler
after it was created, which is done by SkScaledCodec. Modify SkSwizzler's
constructor/factory function to stop taking any info about sampling,
assume the sample size is one, and move modifying that into a virtual
function overridden from the base class.

BUG=skia:4284

Review URL: https://codereview.chromium.org/1372973002

8 years agoSkPDF: remove suppression
halcanary [Fri, 2 Oct 2015 19:15:55 +0000 (12:15 -0700)]
SkPDF: remove suppression

Review URL: https://codereview.chromium.org/1379183005

8 years agoIncrementally flush GrDrawTarget
joshualitt [Fri, 2 Oct 2015 18:27:14 +0000 (11:27 -0700)]
Incrementally flush GrDrawTarget

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/a7e878064509ef96b54d5507dab0b50def66dc13

Review URL: https://codereview.chromium.org/1386463004

8 years agoFix CrOS SampleApp
jvanverth [Fri, 2 Oct 2015 17:42:36 +0000 (10:42 -0700)]
Fix CrOS SampleApp

Add compile-time check for GPU build when using GPU flag

TBR=robertphillips@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1376423004

8 years agoRevert of Incrementally flush GrDrawTarget (patchset #8 id:130001 of https://coderevi...
joshualitt [Fri, 2 Oct 2015 17:16:03 +0000 (10:16 -0700)]
Revert of Incrementally flush GrDrawTarget (patchset #8 id:130001 of https://codereview.chromium.org/1386463004/ )

Reason for revert:
breaking bots

Original issue's description:
> Incrementally flush GrDrawTarget
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/a7e878064509ef96b54d5507dab0b50def66dc13

TBR=robertphillips@google.com,bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1386683002