aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
Commit message (Collapse)AuthorAge
* disable coverage optimization for hairlinesGravatar Mike Reed2017-06-07
| | | | | | | | | | | | | The coverage blitter is an optimization of regular blitting to A8. It can go faster because it never tries to blend with itself... because it was intended to be called only by fill-path, which is written to never draw twice in the same place. Hairlines don't make this promise, so we can use the coverage optimization for hairlines. Change-Id: I0a4816f886462017ad81378d5928357ef038ae8f Reviewed-on: https://skia-review.googlesource.com/18666 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* Fix use of uninitialized value in SkColor4Shader::CreateProcGravatar Brian Osman2017-06-07
| | | | | | | | | Bug: chromium:727678 Change-Id: I4c59d9222d47b866b3c30408322ec456f304aa53 Reviewed-on: https://skia-review.googlesource.com/18938 Commit-Queue: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* we can std::move work to avoid copying itGravatar Mike Klein2017-06-07
| | | | | | | | | clang-tidy pointed out this opportunity in the Google3 build. Change-Id: Id3c7b291fec12cbf860e7fc2583c1a34ad23f697 Reviewed-on: https://skia-review.googlesource.com/18927 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Mark SkThreadedBMPDevice destructors with overrideGravatar Kevin Lubick2017-06-07
| | | | | | | | | | Very new versions of Clang (5.0 TOT) call out this problem. Bug: skia: Change-Id: Ie86d3936c26769c0d3387a81fd2c247ea1272d1c Reviewed-on: https://skia-review.googlesource.com/18930 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* we can move dst hereGravatar Mike Klein2017-06-07
| | | | | | | | | clang-tidy pointed out this opportunity in the Google3 build. Change-Id: I2ab01602fae2d3132a229006c06625371342e18a Reviewed-on: https://skia-review.googlesource.com/18926 Commit-Queue: Matt Sarett <msarett@google.com> Reviewed-by: Matt Sarett <msarett@google.com>
* Opt-in burst mechanism for pipeline shadersGravatar Florin Malita2017-06-06
| | | | | | | | | | | | | | Add a dedicated virtual for shaders to select burst mode. Enabled for linear gradients with more than 8 stops, as a start. BUG=skia:6710 Change-Id: I1b19124f42d1d805de27a5db6a26601c386bb9ff Reviewed-on: https://skia-review.googlesource.com/18628 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* define HWCAP_* ourselves in SkCpu.cppGravatar Mike Klein2017-06-06
| | | | | | | | | | | | | For compatibility with older system headers, instead of looking for HWCAP_ values in asm/hwcap.h, just define the bits we want to test ourselves. This lets us compile this code on systems before those bits were defined. At runtime the bits will harmlessly test as zero. Change-Id: I44b6aba7d6f0fc2c5df08ad262c2b0537d900209 Reviewed-on: https://skia-review.googlesource.com/18844 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* move Coeff into blendmodeGravatar Mike Reed2017-06-06
| | | | | | | | Bug: skia: Change-Id: Ib4f3398b0cdc6b0f575f6db80d2ce0bf9666f077 Reviewed-on: https://skia-review.googlesource.com/18843 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Create an SkColorSpaceXform image generatorGravatar Matt Sarett2017-06-06
| | | | | | | | | | | | | | | | | This should be immediately useful in the Skia-Android rendering pipeline. Possible future uses include creating a "renderable" SkImage from a bitmap with a funny color space. Inspired by: https://skia-review.googlesource.com/c/13981/ Bug: b/62347704 Change-Id: I388c7af1fc43834b8ad22022d0caf3ac90b734c8 Reviewed-on: https://skia-review.googlesource.com/18598 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* remove unused xfermode methodsGravatar Mike Reed2017-06-06
| | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Bug: skia: Change-Id: Ibc7d581bcc40134ee7cf57bb65fee2d70e119bc7 Reviewed-on: https://skia-review.googlesource.com/18842 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Add TiledDrawScheduler so we can concurrently draw and enqueGravatar Yuqian Li2017-06-05
| | | | | | | | | | | | | | | | | (instead of finishing enque before draw). The highlight is that we can now achieve 9x speedup compared to 5x in all our previous approaches (including multi-picture draw). The schedulers here are experimental. I'd like to move on to try initializing once for each draw before further polishing and optimizing the schedule mechanism. Bug: skia: Change-Id: Idc3d030d475af9645c24c5372ff62b9a402206cc Reviewed-on: https://skia-review.googlesource.com/17826 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Real fix for stage perf regression.Gravatar Mike Klein2017-06-05
| | | | | | | | | | | | | | | | | When we made start_pipeline() return void, the call into the tail!=0 run of the pipeline became eligble to be a tail-call, and Clang made that choice. This had the side effect of not going through vzeroupper on those tails. We now mark start_pipeline() as inelligible for tail calls when targeting AVX+. All paths go through the vzeroupper at the end. BUG=chromium:729237 Change-Id: I2099931284214f24c67b38979b3ad4b4d10e8bba Reviewed-on: https://skia-review.googlesource.com/18591 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* add testing flag to force rasterpipelineGravatar Mike Reed2017-06-05
| | | | | | | | Bug: skia: Change-Id: I8e195e90dc00b9be9072858086f7541e993428da Reviewed-on: https://skia-review.googlesource.com/18585 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Make instantiate return a BooleanGravatar Robert Phillips2017-06-05
| | | | | | | | | | | | From an off-line conversation: The longer term idea will be to create a helper class isolates the ability to instantiate proxies until flush time. The peek* methods could then be moved to GrSurfaceProxy. Change-Id: I8e8c02c098475b77d515791c0d6b81f7e4a327dd Reviewed-on: https://skia-review.googlesource.com/18076 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* have start_pipeline() return limit againGravatar Mike Klein2017-06-05
| | | | | | | | | | | | | | | | | | | This is spooky. I don't quite yet understand why, but this makes things much faster. Performance regressed across the board when we no longer needed the value and changed it to return void: https://perf.skia.org/e/?begin=1496176469&keys=6994&xbaroffset=28513 You can see similar regressions following this Chromium bug link. BUG=chromium:729237 Change-Id: I68371b0456014f909acf819aca52aa4f4f187460 Reviewed-on: https://skia-review.googlesource.com/18580 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* implement SkRasterPipelineBlitter::blitAntiH2()Gravatar Mike Klein2017-06-05
| | | | | | | | | | The default blitAntiH2() calls blitAntiH() with two length-1 runs, but for this blitter creating a small mask is better. We can stamp both pixels out with a single pipeline invocation. Change-Id: If356975e85310a4545e54f2231a142d6e537944d Reviewed-on: https://skia-review.googlesource.com/18581 Reviewed-by: Mike Reed <reed@google.com>
* start on SkJumper lowp modeGravatar Mike Klein2017-06-04
| | | | | | | | | | | | | | | | Just 3 stages implemented so far: load_8888 swap_rb store_8888 That's enough to make the shortest non-trivial pipeline that you see in the new unit test. Change-Id: Iabf90866ab452f7183d8c8dec1405ece2db695dc Reviewed-on: https://skia-review.googlesource.com/18458 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com>
* remove unused blittersGravatar Mike Reed2017-06-03
| | | | | | | | Bug: skia: Change-Id: Iaa2ead32a4025071c3592f83d47f174ffeb63a49 Reviewed-on: https://skia-review.googlesource.com/18530 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Remove support in GPU backend for distance vector field.Gravatar Brian Salomon2017-06-02
| | | | | | | | | Also, remvoes SkNormalBevelSource as this was the last use case for the distance vector field. Change-Id: Ib0176c78e500e6b5130310934253a75860245812 Reviewed-on: https://skia-review.googlesource.com/18482 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* simplify verts in certain modesGravatar Mike Reed2017-06-02
| | | | | | | | Bug: skia: Change-Id: I7cc54c940b61332f06b8d21eeba1def8bd9cb3dc Reviewed-on: https://skia-review.googlesource.com/18495 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* default impl of appendStages now calls shaderContextGravatar Mike Reed2017-06-02
| | | | | | | | | | | | | | | | | | this is approximately a revert of https://skia-review.googlesource.com/c/17768/ I propose if/when we want to experiment with a fast-path for coherent shaders (e.g. 2-color linear gradients, up-scaling images) that we just create a new mechanism for shaders to opt into that, knowing that it will be driven by the rasterpipeline (and never by the old context convention). This CL now makes it legal/clear that a new shader subclass can *just* implement stages for raster, and never needs to make a context. Bug: skia: Change-Id: I525a8b1cece100f0993f75e28128e0927a4ea35c Reviewed-on: https://skia-review.googlesource.com/18481 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Remove deprecated SkRWBuffer snapshot methodsGravatar Florin Malita2017-06-02
| | | | | | | Change-Id: I98fc6059fe74458fb359eaf00ccfcae50996a9e1 Reviewed-on: https://skia-review.googlesource.com/18480 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* minor refactor to SkRasterPipeline::BuildPipelineGravatar Mike Klein2017-06-02
| | | | | | | | | I don't see any reason to have it be static... Change-Id: I0fdc9c0629e2194c469f7c9c696d1bb55ffbc98a Reviewed-on: https://skia-review.googlesource.com/18455 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* add API to change max pointsize for font cacheGravatar Mike Reed2017-06-01
| | | | | | | | Bug: skia:6585 Change-Id: I6df8c439dca0a154e8fbfce6d66c536665dff1d7 Reviewed-on: https://skia-review.googlesource.com/18314 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Rm int flavor of GrNextPow2 in favor of uint32_t flavorGravatar Robert Phillips2017-06-01
| | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=18384 Change-Id: I8f62c5ea6146626916389429ac4f2f80c57a7d72 Reviewed-on: https://skia-review.googlesource.com/18384 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* have shaders that need seed_shader call it themselvesGravatar Mike Klein2017-06-01
| | | | | | | | | | | | This ought to make compose shader and our sprite blitter a bit more efficient. Compose shader can simply re-seed instead of saving the xy values off to a buffer. The sprite blitter doesn't need xy at all. Change-Id: Ib4b3509288810f74a4c8e2978ce2ca14d8644980 Reviewed-on: https://skia-review.googlesource.com/18405 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* plumb y through to SkJumperGravatar Mike Klein2017-06-01
| | | | | | | | | | | | | | | There'll still be a little more refactoring after this, but this is the main thing we want to do. This makes y available in a general-purpose register in pipeline stages, just like x. Stages that need y (seed_shader and dither) can just use it rather than pulling it off a context pointer. seed_shader loses its context pointer, and dither's gets simpler. Change-Id: Ic2d1e13b03fb45b73e308b38aafbb3a14c29cf7f Reviewed-on: https://skia-review.googlesource.com/18383 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* update SkRasterPipeline::run() to also take yGravatar Mike Klein2017-06-01
| | | | | | | | | y isn't used yet. This is just a warmup that updates the callers. Change-Id: I78f4f44e2b82f72b3a39fa8a8bdadef1d1b8a99e Reviewed-on: https://skia-review.googlesource.com/18381 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Add smartptr SkRWBuffer snapshot methodsGravatar Florin Malita2017-06-01
| | | | | | | Change-Id: Id816a38213a86bf090230ebaaef00d98a9487965 Reviewed-on: https://skia-review.googlesource.com/18266 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* raster pipeline sprite blitterGravatar Mike Klein2017-06-01
| | | | | | | | | | | The color in the unit test turned out to be right on the edge of not round tripping well, and I guess rounding pushed it over the edge, so I've tweaked it to a new one that seems better. Change-Id: I46095fafc9d6b68fd417ff9dc32003f42929c5a5 Reviewed-on: https://skia-review.googlesource.com/18238 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* make SkColorFilter::onAppendStages() pureGravatar Mike Klein2017-06-01
| | | | | | | Change-Id: I2851e19648fb0478db9b940e86c6ddb2020000b3 Reviewed-on: https://skia-review.googlesource.com/18264 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* slant colorfilter away from filterSpan4fGravatar Mike Reed2017-05-31
| | | | | | | | | | | rename to make it easy to delete any impl that also had onAppendStages... i.e. rename to make it clear that it is just an impl trick for rasterpipeline. Bug: skia: Change-Id: If3c3b2811eff12d399cdf7a77552c01e72c06996 Reviewed-on: https://skia-review.googlesource.com/18234 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* remove 565 sprite blitter tooGravatar Mike Klein2017-05-31
| | | | | | | | | While we're deleting sprite blitters, here's another good candidate. Change-Id: If10fc677e6bd120413b6ec54ae2e7876c2de7091 Reviewed-on: https://skia-review.googlesource.com/18232 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* allow sprite blitter for equal color spacesGravatar Mike Klein2017-05-31
| | | | | | | Change-Id: Id64aadcc372b856c4ddbf7144b3d67e618efbeb3 Reviewed-on: https://skia-review.googlesource.com/18231 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* remove unused spanprocs (leftover from spriteblitter simplification)Gravatar Mike Reed2017-05-31
| | | | | | | | Bug: skia: Change-Id: Iaa8cd1e5700610cddfb2092fcf7b13d12cf117bd Reviewed-on: https://skia-review.googlesource.com/18228 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* remove sprite blitters for non-legacy targets, rely on rasterpiplineGravatar Mike Reed2017-05-31
| | | | | | | | | | preliminary step to trying to remove filterSpan4f() from colorfilter Bug: skia: Change-Id: I6aa6cfde506ffac22188e9641a23a8285e80a5b9 Reviewed-on: https://skia-review.googlesource.com/18185 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* call compile in convert_with_pipeline()Gravatar Mike Klein2017-05-31
| | | | | | | | | | We used to do this a while ago, then I removed compile(). This puts things back how they used to be. Change-Id: I676ec1a06249f2356f426fd2847af093526f54d2 Reviewed-on: https://skia-review.googlesource.com/18079 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* [Reland] Relocate shaders to own dirGravatar Florin Malita2017-05-30
| | | | | | | | | | | Consolidate all shader impls under src/shaders/. (reland of https://skia-review.googlesource.com/c/17927/) Change-Id: I7918bdc1aafe842ed194412ba95b9ae53a2ec1d7 Reviewed-on: https://skia-review.googlesource.com/18146 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* bug fix in convert_with_pipeline()Gravatar Mike Klein2017-05-30
| | | | | | | | | | | | What do you supppose happens if we put an SkColorSpaceTransferFn on the stack, pass its address to SkRasterPipeline, then pop it off the stack? BUG=skia:6671 Change-Id: I17c777d9dc55a67cca6196a01c076a6be8283d3d Reviewed-on: https://skia-review.googlesource.com/18078 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Hide ctors of SkShader, SkImage & SkColorSpaceGravatar Florin Malita2017-05-26
| | | | | | | | | To prevent external clients from subclassing. Change-Id: I60a3833bf64019aea2f537850ca2a1ae38bb8767 Reviewed-on: https://skia-review.googlesource.com/18038 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* no sprite blitters support gamut conversionGravatar Mike Klein2017-05-26
| | | | | | | | | | | This fixes the None/Low bitmap filtering in gamut GM. BUG=skia:6679 Change-Id: Ic6e0efa6a23b537aea69b4beb24f3c8b8c6ca347 Reviewed-on: https://skia-review.googlesource.com/17923 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Brian Osman <brianosman@google.com>
* Explicitly check edge count >= 2 in non-debug buildGravatar Yuqian Li2017-05-26
| | | | | | | | | | | We also preserve the check in debug mode that the count should never be 1 when the path is convex. Bug: skia:6684 Change-Id: I4d4c9ad9f9d704e94bbe51f10a96f8b3066afaa1 Reviewed-on: https://skia-review.googlesource.com/17983 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Delete onChooseBlitProcs() and related codeGravatar Florin Malita2017-05-26
| | | | | | | | | | | | All dead code now. Change-Id: I3d88103fef90d9e2ceee8b13db143ac9704689f5 Reviewed-on: https://skia-review.googlesource.com/18034 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* avoid rebuilding pipeline w/ only tricolorsGravatar Mike Reed2017-05-26
| | | | | | | | | | patch_primitive: 2.0 --> 1.4 Bug: skia: Change-Id: Ia43c31873b9438332c94958232f6367240ba9a62 Reviewed-on: https://skia-review.googlesource.com/18030 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Initialize rects in SkValidatingReadBuffer readRect & readIRect on failureGravatar Robert Phillips2017-05-26
| | | | | | | | | BUG: 726199 Change-Id: I2afeebbd2240e1c2f3b7d7298cb11572eef18acd Reviewed-on: https://skia-review.googlesource.com/17984 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Unexport private SkShader classesGravatar Florin Malita2017-05-26
| | | | | | | | | | Alternative to https://skia-review.googlesource.com/c/18025/: these subclasses are private, we shouldn't need to SK_API-tag them. Change-Id: I94fc38e76ee4468132e41ab16f21ae6ad61fe1f2 Reviewed-on: https://skia-review.googlesource.com/18029 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* rasterpipeline:Gravatar Mike Reed2017-05-26
| | | | | | | | | | | | | | + only dither if the paint asks for it - don't special case if the shader is a gradient guard: SK_SUPPORT_LEGACY_RASTERPIPELINE Bug: skia: Change-Id: I7f0c101049e5cb32a80306dcfff3bc21bcf318be Reviewed-on: https://skia-review.googlesource.com/17931 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Add method to GrContext to purge unlocked resources.Gravatar Derek Sollenberger2017-05-26
| | | | | | | | | | | Beyond setting the total cache limits this method enables clients to request to purge a specific number of bytes, as well as specify their preference to purge scratch resources over resources of other types. Change-Id: I9259d5544d34251575d77eebe599388f213ff3ce Reviewed-on: https://skia-review.googlesource.com/17987 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
* add SK_API to SkShaderBaseGravatar Mike Klein2017-05-26
| | | | | | | | | | | | | Ought to fix Chrome roll: warning C4275: non dll-interface class 'SkShaderBase' used as base for dll-interface class 'SkEmptyShader' etc. May fix Android too? Change-Id: Ic8ff988b9000c484aa54959e49a1ff17e5635340 Reviewed-on: https://skia-review.googlesource.com/18025 Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "Relocate shaders to own dir"Gravatar Stan Iliev2017-05-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit fabe0b26d05624ce7374f6ca89bd66df6142534e. Reason for revert: Last android roll failed with "external/skia/src/effects/SkGaussianEdgeShader.h:11:10: fatal error: 'SkShaderBase.h' file not found" Original change's description: > Relocate shaders to own dir > > Consolidate all shader impls under src/shaders/. > > Change-Id: I450e37541214704c1ad9e379d9d753b7cc62fac3 > Reviewed-on: https://skia-review.googlesource.com/17927 > Commit-Queue: Florin Malita <fmalita@chromium.org> > Reviewed-by: Herb Derby <herb@google.com> > TBR=mtklein@google.com,herb@google.com,fmalita@chromium.org,reed@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: Idbb2b75053969df1dad9d8ce0217cd39189b9ddb Reviewed-on: https://skia-review.googlesource.com/18020 Reviewed-by: Stan Iliev <stani@google.com> Commit-Queue: Stan Iliev <stani@google.com>