aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Lots of little cleanup improvements to VulkanGravatar egdaniel2016-09-13
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2336763002 Review-Url: https://codereview.chromium.org/2336763002
* Implement Fill() for incomplete decodes to RGBA_F16Gravatar msarett2016-09-13
| | | | | | | | | Before this patch, we would hit an SkASSERT(false). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2335203002 Review-Url: https://codereview.chromium.org/2335203002
* Add Nexus5 to CQ as an experimentGravatar kjlubick2016-09-13
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2332353002 Review-Url: https://codereview.chromium.org/2332353002
* Add tests for gamma correction of gradient stops to gamma GMGravatar brianosman2016-09-13
| | | | | | | | | Includes three different cases to exercise different cases in Ganesh. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2336973003 Review-Url: https://codereview.chromium.org/2336973003
* add pipecanvasGravatar reed2016-09-13
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2201323003 Review-Url: https://codereview.chromium.org/2201323003
* SkPDF: SkTypeface_FreeType ToUnicode table improvement.Gravatar halcanary2016-09-13
| | | | | | | | | | | | Currently the SkTypeface_FreeType::onGetAdvancedTypefaceMetrics synthesized glyph to Unicode mapping returns the Unicode point of the last character to map to the glyph. In practice it is better to guess the first character to map to the glyph instead. BUG=359065 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2329953003 Review-Url: https://codereview.chromium.org/2329953003
* I missed an infra_step, pushing directories.Gravatar mtklein2016-09-13
| | | | | | | | | NOTREECHECKS=true BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2337793003 Review-Url: https://codereview.chromium.org/2337793003
* Encode kIndex8 to PNG more efficientlyGravatar msarett2016-09-13
| | | | | | | | | Only write non-opaque alpha values to the tRNS chunk. BUG=skia:5616 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2330053002 Review-Url: https://codereview.chromium.org/2330053002
* Mark infra steps as infra_step in GN recipe flavors.Gravatar mtklein2016-09-13
| | | | | | | | | NOTREECHECKS=true BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2329943004 Review-Url: https://codereview.chromium.org/2329943004
* Fixup SkRRectsGaussianEdgeShader's shadersGravatar robertphillips2016-09-12
| | | | | | | | This fixes some visual artifacts in the original CL. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2335783003 Review-Url: https://codereview.chromium.org/2335783003
* [SVGDom] Initial linear gradient supportGravatar fmalita2016-09-12
| | | | | | | | | | | | | | | Kind of a big change, to connect several new bits into something useful: * ID tracking & lookup * new asPaint() node virtual to support shader (and in the future filter) based paint servers * <defs>, <linearGradient> and <stop> element support * 'href', 'offset', 'stop-color', 'stop-opacity' attribute support * IRI/FuncIRI and rgb(...) parsing BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2327233003 Review-Url: https://codereview.chromium.org/2327233003
* Change shared_sources.gni to use relative pathGravatar mikejurka2016-09-12
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2333923003 Review-Url: https://codereview.chromium.org/2333923003
* Disable png encodes from Alpha8, Float16Gravatar msarett2016-09-12
| | | | | | | | | | These don't behave as we would want anyway. They just copy to N32, and then encode. BUG=skia:5616 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2332743003 Review-Url: https://codereview.chromium.org/2332743003
* Alternate approach to turn on freetype in Fuchsia.Gravatar mtklein2016-09-12
| | | | | | | | | | | | | | | | | | | What do you think of this? It's basically what you wrote, factored differently. Flipping on skia_use_freetype will enable the SkFontHost_Freetype*.cpp files via the :typeface_freetype target. Then we just pull out the SkFontMgr Fuchsia wants to use into its own little :fontmgr_fuchsia target. No major difference here, except the availability of freetype headers, etc, is a bit more tightly scoped to just those that need them. We (obviously?) don't have Fuchsia builders, so I've got to rely on you for sanity testing this. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2333913002 Review-Url: https://codereview.chromium.org/2333913002
* Support RGBA/BGRA Premul/Unpremul from SkPNGImageEncoderGravatar msarett2016-09-12
| | | | | | | BUG=skia:5616 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2325223002 Review-Url: https://codereview.chromium.org/2325223002
* Add back the GalaxyS3 and GalaxyS4 entries in recipesGravatar borenet2016-09-12
| | | | | | | | | | S3 is needed for some recipe simulation stuff and in general having these present does not hurt us. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2336513003 Review-Url: https://codereview.chromium.org/2336513003
* Remove unused GrGLSLGeometryProcessor::emitTransform variationGravatar bsalomon2016-09-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2338453002 Review-Url: https://codereview.chromium.org/2338453002
* Revert of SkLiteRecorder: don't tell SkCanvas about clips (patchset #1 id:1 ↵Gravatar liyuqian2016-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/2227833004/ ) Reason for revert: This CL breaks Android CTS tests CanvasStateTests#testClipPathReturnValues, CanvasStateTests#testClipRectReturnValues, and CanvasStateTests#testQuickReject. Reverting it won't significantly affect Android's performance. See the following test result of testInvalidateTree Jank test. (Derek said that this is the only test closely related to this CL.) **After reverting** INSTRUMENTATION_STATUS: gfx-max-slow-draw=0.0 INSTRUMENTATION_STATUS: gfx-max-high-input-latency=0.0 INSTRUMENTATION_STATUS: gfx-max-slow-ui-thread=100.0 INSTRUMENTATION_STATUS: gfx-avg-slow-bitmap-uploads=100.0 INSTRUMENTATION_STATUS: gfx-avg-missed-vsync=72.96467105972435 INSTRUMENTATION_STATUS: gfx-avg-high-input-latency=0.0 INSTRUMENTATION_STATUS: gfx-max-slow-bitmap-uploads=100.0 INSTRUMENTATION_STATUS: gfx-max-missed-vsync=73.56181150550796 INSTRUMENTATION_STATUS: gfx-avg-frame-time-90=69.0 INSTRUMENTATION_STATUS: gfx-avg-frame-time-95=69.0 INSTRUMENTATION_STATUS: gfx-avg-frame-time-99=69.0 INSTRUMENTATION_STATUS: gfx-max-jank=100.0 INSTRUMENTATION_STATUS: gfx-avg-slow-draw=0.0 INSTRUMENTATION_STATUS: gfx-avg-slow-ui-thread=100.0 INSTRUMENTATION_STATUS: gfx-max-frame-time-90=69 INSTRUMENTATION_STATUS: gfx-max-frame-time-95=69 INSTRUMENTATION_STATUS: gfx-max-frame-time-99=69 INSTRUMENTATION_STATUS: gfx-avg-jank=100.0 INSTRUMENTATION_STATUS_CODE: -1 . Test results for InstrumentationTestRunner=. Time: 77.404 **Before Reverting** gfx-max-slow-draw=1.1135857461024499 INSTRUMENTATION_STATUS: gfx-max-high-input-latency=0.0 INSTRUMENTATION_STATUS: gfx-max-slow-ui-thread=100.0 INSTRUMENTATION_STATUS: gfx-avg-slow-bitmap-uploads=100.0 INSTRUMENTATION_STATUS: gfx-avg-missed-vsync=70.79687591131983 INSTRUMENTATION_STATUS: gfx-avg-high-input-latency=0.0 INSTRUMENTATION_STATUS: gfx-max-slow-bitmap-uploads=100.0 INSTRUMENTATION_STATUS: gfx-max-missed-vsync=76.94174757281553 INSTRUMENTATION_STATUS: gfx-avg-frame-time-90=67.66666666666667 INSTRUMENTATION_STATUS: gfx-avg-frame-time-95=67.66666666666667 INSTRUMENTATION_STATUS: gfx-avg-frame-time-99=69.0 INSTRUMENTATION_STATUS: gfx-max-jank=100.0 INSTRUMENTATION_STATUS: gfx-avg-slow-draw=0.5317509395832639 INSTRUMENTATION_STATUS: gfx-avg-slow-ui-thread=100.0 INSTRUMENTATION_STATUS: gfx-max-frame-time-90=69 INSTRUMENTATION_STATUS: gfx-max-frame-time-95=69 INSTRUMENTATION_STATUS: gfx-max-frame-time-99=69 INSTRUMENTATION_STATUS: gfx-avg-jank=100.0 INSTRUMENTATION_STATUS_CODE: -1 . Test results for InstrumentationTestRunner=. Time: 77.411 OK (1 test) Original issue's description: > SkLiteRecorder: don't tell SkCanvas about clips > > If no one reads our clip, and we don't expect quickReject() to help, > we can probably get away without maintaining a proper clip stack. > > This puts us at about 0.6-0.7x of previous record cost. > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2227833004 > > Committed: https://skia.googlesource.com/skia/+/8369e32a05543c2619b1d7e740fe6ff6d2f03af3 TBR=reed@google.com,mtklein@google.com,mtklein@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=skia: Review-Url: https://codereview.chromium.org/2335773002
* Remove base class for installed transforms in GrPrimitiveProcessorGravatar bsalomon2016-09-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2336723002 Review-Url: https://codereview.chromium.org/2336723002
* GN: Android perf/testsGravatar mtklein2016-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | Just to take inventory of which old problems still linger and which are now moot, I've gone out of my way to have this stand alone. All of gn_android_flavor's logic is self contained, without any dependency on the platform_tools scripts. The tricky bits turn out to be, copying directories containing symlinks---or really any copying involving more than one file---and getting the exit code back from adb shell. Luckily the ADB I've got on my desktop and my Nexus 5x seems to handle this all without the awkward workarounds you see here, so there's hope that One Day Soon the weird parts (basically, anything with inline python) can go away. Once we've got these bots landed green, I'll go see whether the fixes are due to ADB updates, Android updates, or perhaps something else like hardware. The parts marked TEMPORARY are a nod to the fact that the devices are used by gn_android_flavor and android_flavor both today. It's mostly about not stepping on each other's toes or leaving anything laying around that might confuse each other. The marked parts can go away when bots are either gn_ or non-gn_ but not both. I have omitted a few steps that may be important, but which are easy independent follow-ups: - running as root - locking clocks - waiting on battery levels - fancier wait-for-ready than adb wait-for-usb-device It'd be nice to, e.g., reaffirm that locking clocks helps perf stability, and that we're locking to the best policy. I've tried to keep this CL as trim as possible, leaving any of these vaguely optional steps for later. As of PS 41 or so, it looks like the trybots are all behaving as expected. We should expect no new images in Gold. Can we see trybots in Perf yet? BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2320153002 CQ_INCLUDE_TRYBOTS=master.client.skia.android:Perf-Android-Clang-AndroidOne-CPU-MT6582-arm-Debug-GN_Android-Trybot,Perf-Android-Clang-AndroidOne-CPU-MT6582-arm-Release-GN_Android-Trybot,Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-GN_Android-Trybot,Perf-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-GN_Android-Trybot,Test-Android-Clang-AndroidOne-CPU-MT6582-arm-Debug-GN_Android-Trybot,Test-Android-Clang-AndroidOne-CPU-MT6582-arm-Release-GN_Android-Trybot,Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Debug-GN_Android-Trybot,Test-Android-Clang-AndroidOne-GPU-Mali400MP2-arm-Release-GN_Android-Trybot Review-Url: https://codereview.chromium.org/2320153002
* Gamut transformation of the paint color in GaneshGravatar brianosman2016-09-12
| | | | | | | | | | | | Conversion from sRGB to destination gamut is going to be very common, so I'm caching that xform (if there is one) on the draw context. Results verified in the gamut GM (two more boxes correct). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2330553003 Review-Url: https://codereview.chromium.org/2330553003
* Match Android framework's non-AA point and line offsetGravatar bsalomon2016-09-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2336623002 Review-Url: https://codereview.chromium.org/2336623002
* Add shader-based GaussianEdgeShader for reveal caseGravatar robertphillips2016-09-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2321713004 Review-Url: https://codereview.chromium.org/2321713004
* Remove GrPrimitiveProcessor::hasTransformedLocalCoordsGravatar bsalomon2016-09-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2327613002 Review-Url: https://codereview.chromium.org/2327613002
* change SkStreams to work with sk_sp<SkData> instead of SkData*Gravatar reed2016-09-12
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2333713002 Review-Url: https://codereview.chromium.org/2333713002
* Fix device cfg for GalaxyS7Gravatar borenet2016-09-12
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2330093002 Review-Url: https://codereview.chromium.org/2330093002
* Documentation: MSKPGravatar halcanary2016-09-12
| | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2332783002 NOTRY=true DOCS_PREVIEW= https://skia.org/?cl=2332783002 Review-Url: https://codereview.chromium.org/2332783002
* Add workaround for Adreno copyImageToBuffer calls on VulkanGravatar egdaniel2016-09-12
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2328823003 Review-Url: https://codereview.chromium.org/2328823003
* Run recipes.py with --timestampsGravatar borenet2016-09-12
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2330123002 Review-Url: https://codereview.chromium.org/2330123002
* Fix GaussianEdgeShader GLSL codeGravatar jvanverth2016-09-12
| | | | | | | | | | | | Implicit conversion of int constants to float is not always guaranteed GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2328263004 TBR=herbderby@google.com NOTRY=true NOTREECHECKS=true Review-Url: https://codereview.chromium.org/2328263004
* Remove unneeded GrGLSLTransformedCoordsArray typeGravatar bsalomon2016-09-12
| | | | | | | Rename GrGLSLFragmentBuilder::ensureFSCoords2D to ensureCoords2D and make it take an arbitrary GrShaderVar. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2324663004 Review-Url: https://codereview.chromium.org/2324663004
* Revert of Turned on SkSL->GLSL compiler (patchset #12 id:220001 of ↵Gravatar ethannicholas2016-09-12
| | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/2288033003/ ) Reason for revert: Compilation errors on some bots. Original issue's description: > Turned on SkSL->GLSL compiler > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288033003 > > Committed: https://skia.googlesource.com/skia/+/9b0fe3d125f237d9884732a48414fa85fc71b4e3 TBR=benjaminwagner@google.com,bsalomon@google.com,egdaniel@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2337553002
* Remove unneeded bounds outset in GrDrawContext::drawVertices.Gravatar bsalomon2016-09-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2329403004 Review-Url: https://codereview.chromium.org/2329403004
* glTexStorage requires sized formats, ensure that we're following that ruleGravatar brianosman2016-09-12
| | | | | | | | | | In some situations (at least ANGLE ES3), we were passing GL_BGRA, rather than GL_BGRA8. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2336613002 Review-Url: https://codereview.chromium.org/2336613002
* Remove ability to skip coord transform comparison in pipeline comparison.Gravatar bsalomon2016-09-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2316413003 Review-Url: https://codereview.chromium.org/2316413003
* SkPDF: refactor & code cleanup ahead of https://crrev.com/2322403002Gravatar halcanary2016-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | SkPDFDevice::GraphicStateEntry: remove unnecessary fFont and fTextSize. SkPDFDevice::updateFont(): replace with update_font() and inlined code. De-duplicate this block of code. SkPDFResourceDict::GetResourceTypePrefix function made public: removes need for temporary SkString returned by SkPDFResourceDict::getResourceName() GlyphPositioner: delay writing intial matrix until first glyph. Assert that widechars is a constant. SkPDFFont::FontType(): make public so that PDFDevice can know about multibyte status. SkPDFFont::countStretch() removed, and the stretch loop flattened. *no changes in PDF output* BUG=skia:5434 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2327953002 Review-Url: https://codereview.chromium.org/2327953002
* Two changes:Gravatar brianosman2016-09-12
| | | | | | | | | | | | | | | | | 1. Remove special premul handling from gamut xform code Alpha is a constant, so the gamut transformation results remain unchanged (it distributes across the linear matrix multiply). 2. Use SkMatrix44 rather than array of floats Preserves semantic intention, and makes upcoming code (where we transform colors on the CPU by that matrix) simpler. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2329553002 Review-Url: https://codereview.chromium.org/2329553002
* Turned on SkSL->GLSL compilerGravatar ethannicholas2016-09-12
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2288033003 Review-Url: https://codereview.chromium.org/2288033003
* Update SampleAndroidShadows to use algorithm closer to Android OpenGLGravatar jvanverth2016-09-12
| | | | | | | | | | | | | | | Includes: * Update light position to be at a similar distance to Android OS * Scale spot shadows correctly * Compute stroke shapes and radii correctly * Allow for larger blur radius for shadows GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2319003003 TBR=reed@google.com NOTRY=true NOTREECHECKS=true Review-Url: https://codereview.chromium.org/2319003003
* helper to SkRect to create from SkISizeGravatar reed2016-09-12
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2332733002 TBR= NOTREECHECKS=True NOTRY=True Review-Url: https://codereview.chromium.org/2332733002
* check for identity in translateGravatar reed2016-09-12
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2331943002 TBR= NOTREECHECKS=True NOTRY=True Review-Url: https://codereview.chromium.org/2331943002
* fix code behind SK_SUPPORT_LEGACY_MINOR_EFFECT_PTRGravatar reed2016-09-12
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2337433002 TBR= NOTREECHECKS=True NOTRY=True Review-Url: https://codereview.chromium.org/2337433002
* use expected name for setDrawLooper/getDrawLooperGravatar reed2016-09-11
| | | | | | | | | | | | Needed for future pipe cl. Next cl should be to guard the looper entirely (since its deprecated) BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2326173002 TBR= Review-Url: https://codereview.chromium.org/2326173002
* Update SKP versionGravatar update-skps2016-09-11
| | | | | | | | | | Automatic commit by the RecreateSKPs bot. TBR= NO_MERGE_BUILDS GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2334483002 Review-Url: https://codereview.chromium.org/2334483002
* SkPDF: SkShaper_primitive uses new textblob APIGravatar halcanary2016-09-10
| | | | | | | | | | This will enable me to test the new API in unit tests without depending on HarfBuzz (after https://crrev.com/2322403002 lands). TBR= BUG=skia:5434 Review-Url: https://codereview.chromium.org/2332473003
* Adds missing and removes duplicate tracing macros.Gravatar carlosk2016-09-09
| | | | | | | | | | | | | | This fixes the missing tracing nested instant call without any arguments and removes the duplicate of the one with 2 arguments. This is a follow up on https://crrev.com/2326483004 BUG=645308 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2321283002 NOPRESUBMIT=true CQ_EXCLUDE_TRYBOTS=client.skia.fyi:skia_presubmit-Trybot Review-Url: https://codereview.chromium.org/2321283002
* made point lights linear attenuation; also fixed point light depth bugGravatar vjiaoblack2016-09-09
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2323383002 Review-Url: https://codereview.chromium.org/2323383002
* SkPDF/Tests: imporve test coverage.Gravatar halcanary2016-09-09
| | | | | | | | | | | | | | | | Also: make sure that all SkPDF unit tests are named SkPDF_* to make testing changes to SkPDF easier. Other cleanup. Add test: SkPDF_pdfa_document to verify that flag in public API works. SkPDF_JpegIdentification test: test slightly malformed JPEGs to verify that all code paths work. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2322133003 Review-Url: https://codereview.chromium.org/2322133003
* Fix color gamut xform matrices in GPU codeGravatar brianosman2016-09-09
| | | | | | | | | | | Now that we're not storing them transposed, we can plumb them to the shader column-major all the way, and then multiply colors on the right, as it should be. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2326093002 Review-Url: https://codereview.chromium.org/2326093002
* GN: port a few missing Android bits from GYP.Gravatar mtklein2016-09-09
| | | | | | | | | | | | | The SK_GAMMA_ defines change text rendering on Android. This is how they're set in GYP for Android... everyone else is default (sRGB). Linking AndroidSkDebugToStdOut.o causes SkDebugf to go to both logcat and stdout on Android. Without it, it only goes to logcat. The file has no effect on non-Android platforms. BUG=skia: Review-Url: https://codereview.chromium.org/2323353002