aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
Commit message (Collapse)AuthorAge
* Add some raster pipeline perspective assertsGravatar Florin Malita2017-07-12
| | | | | | | | | | | | | | | | | | | | | I meant to add these when removing the guard, but since we landed without a guard, might as well do it now. A couple of things exposed by these asserts: 1) we need to also catch perspective in local matrices 2) we need to disallow burst mode with perspective Also tweak the predicate to hasPerspective() instead of explicit mask check. Change-Id: I099e5125fca52dccffca77c60fc800bbdf539b53 Reviewed-on: https://skia-review.googlesource.com/22483 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Experimental blur code with 32 bit fix.Gravatar Herb Derby2017-07-12
| | | | | | | | | | | | | | | | | This uses a new method of blurring that runs the three passes of the box filter in a single pass. This implementation currently only does 1x1 pixel at a time, but it should be simple to expand to 4x4 pixels at a time. On the blur_10_normal_high_quality benchmark, the new is 7% faster than the old code. For the blur_100.50_normal_high_quality benchmark, the new code is 11% slower. Bug: skia: Change-Id: I847270906b0ceac1dfbf43ab5446756689ef660f Reviewed-on: https://skia-review.googlesource.com/22700 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Implement Sk4i's abs, min, maxGravatar Yuqian Li2017-07-12
| | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Bug: skia: Change-Id: Ia9ec3f72095e1c744f88df7bb990d99e0f87d578 Reviewed-on: https://skia-review.googlesource.com/22720 Commit-Queue: Yuqian Li <liyuqian@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Extend final point in closed degenerate hairline segmentsGravatar Brian Osman2017-07-12
| | | | | | | | | | | | | | | For single-contour paths (MLZ), the close is ignored during iteration, and we instead process the 'Done', which does extend in both directions. But if there's a second contour (MLZM), then we process the 'Close', and only extend the degenerate segment in one direction. Depending on where the path was positioned (relative to pixel centers), this led to some contours not drawing at all. Bug: skia: Change-Id: I88aeaecc94c0e69532479e50920ba2e0cc6f4bda Reviewed-on: https://skia-review.googlesource.com/22520 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Revert "Change image encode api to return sk_sp""Gravatar Mike Reed2017-07-12
| | | | | | | | | | This reverts commit 64778d9f275d8ce3df8f4ab39ff334b7ef5b70d3. Bug: skia: Change-Id: I779515ff1e16a40c33890a4bac7a8a07171aadfe Reviewed-on: https://skia-review.googlesource.com/22261 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* remove unreachable perspective code for imageshaderGravatar Mike Reed2017-07-12
| | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Bug: skia: Change-Id: If9a7df3e1c387098b00bf1cc1a37c36c6d256ef1 Reviewed-on: https://skia-review.googlesource.com/22348 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Always enable Analytic AA for rectsGravatar Yuqian Li2017-07-12
| | | | | | | | | | | | Previously, suitableForAAA disabled Analytic AA for small rects. But that's a mistake. Re-enabling AAA will bring 10-20% speedup for small rects (~800ns -> ~700ns measured by path_fill_small_rect nanobench). Bug: skia: Change-Id: I943f1c754669391f55e46471781fa65840629377 Reviewed-on: https://skia-review.googlesource.com/22205 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Always use raster pipeline for perspectiveGravatar Florin Malita2017-07-12
| | | | | | | | | Change-Id: I6205769ea77e12647985496a5c74d3754edd3108 Reviewed-on: https://skia-review.googlesource.com/22365 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Revert "Experimental blur code."Gravatar Florin Malita2017-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d96ed9d0def2d660f537e4ab5c79e9e66470ee22. Reason for revert: dm crashing https://luci-milo.appspot.com/swarming/task/374d82c1d1263910/steps/symbolized_dm/0/stdout Likely culprit: unit test BlurDrawing Stack trace: /mnt/pd0/s/w/ir/out/Debug/dm(+0x2440eb) [0x568770eb] linux-gate.so.1(__kernel_sigreturn+0) [0xf7714ca0] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNK16SkMaskBlurFilter11blurOneScanENS_10FilterInfoEPKhjS2_PhjS3_+0x236) [0x5766301e] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNK16SkMaskBlurFilter4blurERK6SkMaskPS0_+0x285) [0x57663491] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN10SkBlurMask7BoxBlurEP6SkMaskRKS0_f11SkBlurStyle13SkBlurQualityP8SkIPointb+0x5c) [0x5720d48e] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNK20SkBlurMaskFilterImpl10filterMaskEP6SkMaskRKS0_RK8SkMatrixP8SkIPoint+0x67) [0x5720e427] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNK20SkBlurMaskFilterImpl17filterRectsToNineEPK6SkRectiRK8SkMatrixRK7SkIRectPN12SkMaskFilter9NinePatchE+0x579) [0x5721a247] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNK12SkMaskFilter10filterPathERK6SkPathRK8SkMatrixRK12SkRasterClipP9SkBlitterN11SkStrokeRec9InitStyleE+0xf6) [0x5706c2bc] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNK6SkDraw11drawDevPathERK6SkPathRK7SkPaintbP9SkBlitterb+0x1bb) [0x57034f1b] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNK6SkDraw8drawPathERK6SkPathRK7SkPaintPK8SkMatrixbbP9SkBlitter+0x47f) [0x57035dd3] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN14SkBitmapDevice8drawPathERK6SkPathRK7SkPaintPK8SkMatrixb+0x6e) [0x56f937fc] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN8SkCanvas10onDrawPathERK6SkPathRK7SkPaint+0x39d) [0x56fb12e5] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN8SkCanvas8drawPathERK6SkPathRK7SkPaint+0x18) [0x56fad926] /mnt/pd0/s/w/ir/out/Debug/dm(+0x3f71b3) [0x56a2a1b3] /mnt/pd0/s/w/ir/out/Debug/dm(+0x2450bd) [0x568780bd] /mnt/pd0/s/w/ir/out/Debug/dm(+0x2450fb) [0x568780fb] /mnt/pd0/s/w/ir/out/Debug/dm(+0xae53e7) [0x571183e7] /mnt/pd0/s/w/ir/out/Debug/dm(_ZNKSt8functionIFvvEEclEv+0x20) [0x569f98de] /mnt/pd0/s/w/ir/out/Debug/dm(_ZN12SkThreadPool4LoopEPv+0x298) [0x57045b2f] /mnt/pd0/s/w/ir/out/Debug/dm(+0xbbd92c) [0x571f092c] /lib/i386-linux-gnu/libpthread.so.0(+0x627a) [0xf76e827a] /lib/i386-linux-gnu/libc.so.6(clone+0x66) [0xf70ecb56] Segmentation fault Original change's description: > Experimental blur code. > > This uses a new method of blurring that runs the three > passes of the box filter in a single pass. This implementation > currently only does 1x1 pixel at a time, but it should be simple > to expand to 4x4 pixels at a time. > > On the blur_10_normal_high_quality benchmark, the new is 7% faster > than the old code. For the blur_100.50_normal_high_quality > benchmark, the new code is 11% slower. > > Change-Id: Iea37294abc7c27de5ad569adf8bc62df77eafd02 > Reviewed-on: https://skia-review.googlesource.com/21739 > Commit-Queue: Herb Derby <herb@google.com> > Reviewed-by: Mike Reed <reed@google.com> TBR=herb@google.com,reed@google.com Change-Id: I9e896c548d0a4cd3308d6a311c8bd16719a08a85 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/22421 Reviewed-by: Florin Malita <fmalita@google.com> Commit-Queue: Florin Malita <fmalita@google.com>
* Experimental blur code.Gravatar Herb Derby2017-07-12
| | | | | | | | | | | | | | | | This uses a new method of blurring that runs the three passes of the box filter in a single pass. This implementation currently only does 1x1 pixel at a time, but it should be simple to expand to 4x4 pixels at a time. On the blur_10_normal_high_quality benchmark, the new is 7% faster than the old code. For the blur_100.50_normal_high_quality benchmark, the new code is 11% slower. Change-Id: Iea37294abc7c27de5ad569adf8bc62df77eafd02 Reviewed-on: https://skia-review.googlesource.com/21739 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Check first deserialized verb of path is a move.Gravatar Ben Wagner2017-07-12
| | | | | | | | | | | | | SkPathRef::Iter::next and several other bits of code depend on the first verb of a path always being a move. Contructors and builders currently enforce this, so the deserializer must do so also. BUG=chromium:740789 Change-Id: Iad0f6fc6d2b2fe40064c674fa7dd1612c120bb8f Reviewed-on: https://skia-review.googlesource.com/22216 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Serialize the new TileMode in SkBlurImageFilterImpl.Gravatar wutao2017-07-11
| | | | | | | | | | | | | Serialize the new TileMode in SkBlurImageFilterImpl. And also update the SkReadBuffer::Version and CURRENT_PICTURE_VERSION in SkPicture. Bug: 622128 Change-Id: I3b04be2a36406227c6d8112e943d7415566c0c42 Reviewed-on: https://skia-review.googlesource.com/22079 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Stephen White <senorblanco@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Change image encode api to return sk_sp"Gravatar Mike Reed2017-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit dc799550e2d9965aa5b7cda496465b2a76b310a5. Reason for revert: need to fix sites in Document_none Original change's description: > Change image encode api to return sk_sp > > Bug: skia: > Change-Id: I238289bc630be27795cb1384955dd6e887597c05 > Reviewed-on: https://skia-review.googlesource.com/22208 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> TBR=scroggo@google.com,fmalita@chromium.org,reed@google.com Change-Id: Id7f67027e5f1405a60fdbde29863cdf8daef0cb7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/22280 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Change image encode api to return sk_spGravatar Mike Reed2017-07-11
| | | | | | | | Bug: skia: Change-Id: I238289bc630be27795cb1384955dd6e887597c05 Reviewed-on: https://skia-review.googlesource.com/22208 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Add serialize + catalog api to SkTextBlobGravatar Mike Reed2017-07-11
| | | | | | | | Bug: skia:6836 Change-Id: I858cf936b015c14f12a41a4912e19bb15de8abaa Reviewed-on: https://skia-review.googlesource.com/21730 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Convert NonAALatticeOp to non-legacy GrMeshDrawOp.Gravatar Brian Salomon2017-07-11
| | | | | | | | | | Also adds a test factory and fixes a bug in the lattice iter validator where it compared each div value against the start rather than the previous div. Bug: skia: Change-Id: I30e9ddfcbaab7829a2f646ad851f99d1e518ab4a Reviewed-on: https://skia-review.googlesource.com/21871 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Revert "Always enable Analytic AA for rects"Gravatar Yuqian Li2017-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 6d70274ccf6e7a3729af53e401d2d9e6726035a3. Reason for revert: need rebaseline Original change's description: > Always enable Analytic AA for rects > > Previously, suitableForAAA disabled Analytic AA for small rects. > But that's a mistake. Re-enabling AAA will bring 10-20% speedup for small rects > (~800ns -> ~700ns measured by path_fill_small_rect nanobench). > > Bug: skia: > Change-Id: I1d8bf4c105d8d116ea441a46e6c955c546bcbb22 > Reviewed-on: https://skia-review.googlesource.com/22074 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Yuqian Li <liyuqian@google.com> TBR=mtklein@chromium.org,herb@google.com,caryclark@google.com,liyuqian@google.com,reed@google.com Change-Id: I87011bf7b8f30fa3be5d46287afbaf38c0be7da9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/22140 Reviewed-by: Yuqian Li <liyuqian@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Correctly stroke zero length segments in multi-contour pathsGravatar Brian Osman2017-07-10
| | | | | | | | Bug: skia: Change-Id: I959287780ef94a258a6746132f3acb9f90e6c6cc Reviewed-on: https://skia-review.googlesource.com/21863 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Always enable Analytic AA for rectsGravatar Yuqian Li2017-07-10
| | | | | | | | | | | | Previously, suitableForAAA disabled Analytic AA for small rects. But that's a mistake. Re-enabling AAA will bring 10-20% speedup for small rects (~800ns -> ~700ns measured by path_fill_small_rect nanobench). Bug: skia: Change-Id: I1d8bf4c105d8d116ea441a46e6c955c546bcbb22 Reviewed-on: https://skia-review.googlesource.com/22074 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
* Make SkImage_Lazy::onMakeColorSpace return a SkImage_LazyGravatar Christopher Cameron2017-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | Make SkImage_Lazy::onMakeColorSpace return a new SkImage_Lazy with the color space of SkImage_Lazy::fInfo changed. Update the call to SkImageGenerator::getPixels to specify image info with this new color space. Update the call to SkImageGenerator::generateTexture to specify this new color space. Update SkPictureImageGenerator to respect the color space argument. Add a SkTransferFunctionBehavior argument to SkImageGenerator::generateTexture to indicate if color conversion is to be doing using an xform canvas. Update Generator_GrYUVProvider::refAsTextureProxy to include a color conversion step to respect this new color space. TBR=reed@google.com Bug:739559 Change-Id: I156a858884659e9dfae739a653bab2ef89274959 Reviewed-on: https://skia-review.googlesource.com/21605 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Christopher Cameron <ccameron@chromium.org> Reviewed-by: Christopher Cameron <ccameron@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* ICC: SkICCGetColorProfileTag supports special casesGravatar Hal Canary2017-07-10
| | | | | | | | | | | | | | | | | | | | | | | | Special cases: - "sRGB" - "AdobeRGB" - "DCI-P3" - "Linear Transfer with sRGB Gamut" - "2.2 Transfer with sRGB Gamut" - "sRGB Transfer with DCI-P3 Gamut" - "Linear Transfer with DCI-P3 Gamut" - "sRGB Transfer with Rec-BT-2020 Gamut" - "Linear Transfer with Rec-BT-2020 Gamut" tools/colorspaceinfo now prints out the Tag. Also: constants representing gSRGB_TransferFn, g2Dot2_TransferFn, and gLinear_TransferFn, gDCIP3_TransferFn. BUG=skia:6720 Change-Id: I92a3f9db9d744d3ec366e4e59afd759ba043c235 Reviewed-on: https://skia-review.googlesource.com/20225 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* [Reland] More SkColorSpaceXformer cachingGravatar Florin Malita2017-07-10
| | | | | | | | | | | | * apply(SkColorFilter*) * apply(SkImage*) Also add purge logic to minimize caching scope. Change-Id: I295d20f760f8be0c3746858d6f9c73e351f10a36 Reviewed-on: https://skia-review.googlesource.com/22030 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* Revert "More SkColorSpaceXformer caching"Gravatar Florin Malita2017-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8d1fc16ba6161afc1174e29e30bae4fc9939264f. Reason for revert: looks like it broke a couple of Chrome unit tests - https://uberchromegw.corp.google.com/i/chromium.win/builders/Win%207%20Tests%20x64%20%281%29/builds/26292 Original change's description: > More SkColorSpaceXformer caching > > * apply(SkColorFilter*) > * apply(SkImage*) > > Change-Id: I9b55632edd73dbbc5edb8b5ca9bb5bead1131260 > Reviewed-on: https://skia-review.googlesource.com/21736 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Florin Malita <fmalita@chromium.org> TBR=mtklein@google.com,herb@google.com,fmalita@chromium.org,reed@google.com Change-Id: I86bc61fca370796125b66419ad89bfe3610b996f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/21980 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* More SkColorSpaceXformer cachingGravatar Florin Malita2017-07-08
| | | | | | | | | | * apply(SkColorFilter*) * apply(SkImage*) Change-Id: I9b55632edd73dbbc5edb8b5ca9bb5bead1131260 Reviewed-on: https://skia-review.googlesource.com/21736 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Add mock config to tools and run through gms and benchs without crashing.Gravatar Brian Salomon2017-07-07
| | | | | | | Change-Id: I7e2474129ef2b15899ad2baeb8d18f39d05da98c Reviewed-on: https://skia-review.googlesource.com/21820 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Plumb through need for unpremul/premulGravatar Mike Reed2017-07-07
| | | | | | | | | | Update unittest to build test image with legal premul pixels. Bug: skia: Change-Id: Iebd1d2f81cac77f8913bd79f6ac25983ed710641 Reviewed-on: https://skia-review.googlesource.com/21735 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Minor SkColorSpaceXformer cleanupGravatar Florin Malita2017-07-06
| | | | | | | | | Instead of plugging private fields from the factory, pass to ctor. Change-Id: Iea186e394182bddb6a569de1a05f2e40d6815c80 Reviewed-on: https://skia-review.googlesource.com/21734 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Add an SkColorSpaceXformer image filter cacheGravatar Florin Malita2017-07-06
| | | | | | | | | | | | The cache is scoped with the SkColorSpaceXformer object. This ensures we're not transforming nodes with a degree > 1 multiple times, and preserves the DAG topology. Change-Id: I0b072cdac95f9f1c34e0565ed4f258aba986e1ae Reviewed-on: https://skia-review.googlesource.com/21726 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* guard legacy bilerp-ignorning hackGravatar Mike Reed2017-07-06
| | | | | | | | Bug: skia:6835 Change-Id: I7f3136595299f9193bc9173a03b782888043aeb5 Reviewed-on: https://skia-review.googlesource.com/21722 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* add stages for black and white colorsGravatar Mike Reed2017-07-06
| | | | | | | | | | | | | | histogram of test skps: black: 1/7 white: 2/7 other: 4/7 Bug: skia: Change-Id: I3a092899d31ce87837e66e5c8ea9ec5e0f239361 Reviewed-on: https://skia-review.googlesource.com/21408 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Reed <reed@google.com>
* only create new instance if needed for colorspacexformerGravatar Mike Reed2017-07-06
| | | | | | | | | | just an experiment to address performance when imagefilters are cached. Bug: skia: Change-Id: Ic1033c897d0a569b46a339fb3ae7f8f961882953 Reviewed-on: https://skia-review.googlesource.com/21395 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* GR_TEST_UTILS fixesGravatar Brian Salomon2017-07-06
| | | | | | | | | | | | | | Fixes build of Skia lib when GR_TEST_UTILS=0 Makes GR_TEST_UTILS=0 for official builds Makes "Mini" builder bot exercise building GPU with is_official_build=true Bug: skia:6786 Change-Id: I6186683a3a216d2e779645bd9e8276a66bcff4d5 Reviewed-on: https://skia-review.googlesource.com/21524 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* srgb conversion needs to be in unpremulGravatar Mike Reed2017-07-06
| | | | | | | | Bug: skia: Change-Id: Ic7dffb2cb30aae33a6c127ab10ea4282e1360114 Reviewed-on: https://skia-review.googlesource.com/21536 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* protect against fuzzerGravatar Cary Clark2017-07-06
| | | | | | | | | | | | Fuzzer data may generate path without a computable length. R=reed@google.com Bug: 739190 Change-Id: I052540932937f24951ce66699080b8b959fb1a46 Reviewed-on: https://skia-review.googlesource.com/21500 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* SkDocument: consolidate trimBox codeGravatar Hal Canary2017-07-05
| | | | | | | | Change-Id: I56f651320964eb3bd33475d21e6977803c4ca140 Reviewed-on: https://skia-review.googlesource.com/21370 Reviewed-by: Ben Wagner <bungeman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* add srgb gamma colorfiltersGravatar Mike Reed2017-07-05
| | | | | | | | | | | | | ... faster and more accurate than using SkTableColorFilter todo: update blink after this lands Bug:737981 Change-Id: I55b5c60dd23b9d2cbe9d60f83c74be1a8f3dcfcf Reviewed-on: https://skia-review.googlesource.com/21368 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* optimize for diff matrix typesGravatar Mike Reed2017-07-05
| | | | | | | | Bug: skia: Change-Id: I671e07c5bbb9e4ced92303c9959143324f7a6bdc Reviewed-on: https://skia-review.googlesource.com/21523 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Herb Derby <herb@google.com>
* header cleanupGravatar Hal Canary2017-07-05
| | | | | | | Change-Id: I3f7667a1357194ae2bdd341ad9d46eb93920f404 Reviewed-on: https://skia-review.googlesource.com/21374 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* consolidate logic for matrix stageGravatar Mike Reed2017-07-04
| | | | | | | | Bug: skia: Change-Id: Id1559b31692a1aed9aa4d15620b2019ae9c7c22b Reviewed-on: https://skia-review.googlesource.com/21404 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Added new edge handling mode (clamp and repeat) to Gaussian blur filter.Gravatar wutao2017-06-30
| | | | | | | | | | | | | | | | | | | Gaussian blur filter will interpolate value by using out of bounds coords, which is 0. This makes it appears darker near the bounds in the blurred images. There are two issues: 1) when downsampling and upsampling, we should use GrTextureDomainEffect kClamp_Mode to clamp the texture coords to the bounds; 2) during Gaussian blur, we need to clamp to texture bounds. BUG=622128 TEST=cc_unittests, GM image test & manual. Some test results can be found at: https://bugs.chromium.org/p/chromium/issues/detail?id=622128#c49 Change-Id: I9283da1d91efb0da94a991f2d372e9f62c288bdc Reviewed-on: https://skia-review.googlesource.com/20465 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Stephen White <senorblanco@chromium.org> Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Mike Reed <reed@google.com>
* clean up GCC 6.3 workaroundGravatar Mike Klein2017-06-30
| | | | | | | | | | | This is all kind of silly... this is just a little bit of code that's not really reachable, but there to satisfy compilers that can't figure that out. Change-Id: Ib39e8bf0fd26e28541cfad37c7ea135a30dbe85a Reviewed-on: https://skia-review.googlesource.com/21365 Reviewed-by: Eric Boren <borenet@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Speculative "fix" for crash in analyzeProcessorsGravatar Robert Phillips2017-06-30
| | | | | | | | | | | | | | From the bug it looks like a null fragment processors may be getting into the processor set. This CL tries to plug any gaps in our fragmentProcessor handling. The only real substantive part to this CL is the addition of some "if (!fp) { return nullptr; }" blocks. Everything else is just to add chokepoints for processor allocation. Bug: 734076 Change-Id: I4952b1a05bc6690d5aa09de977fa6dc54c80338a Reviewed-on: https://skia-review.googlesource.com/21267 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* remove unreachable samples for non-N32 imageshadersGravatar Mike Reed2017-06-29
| | | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Bug: skia: Change-Id: I2d9a22b22d72c81a742b8fd497797bff8174915b Reviewed-on: https://skia-review.googlesource.com/21264 Commit-Queue: Eric Boren <borenet@google.com> Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Decrease the tolerance for classifying degenerate cubicsGravatar Chris Dalton2017-06-29
| | | | | | | | Bug: skia: Change-Id: I118f52301146ed7a7333d4f6bd2297d500a0df97 Reviewed-on: https://skia-review.googlesource.com/21187 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Chris Dalton <csmartdalton@google.com>
* update long out of date commentGravatar Mike Klein2017-06-29
| | | | | | | Change-Id: I3dead53a30992edd032f16e6711b97bbf76a0e36 Reviewed-on: https://skia-review.googlesource.com/21261 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* remove filterSpan from SkColorFilterGravatar Mike Reed2017-06-29
| | | | | | | | | | Bug: skia: Change-Id: Ie8a31ea8131c08d251a825622484342e3e174474 Reviewed-on: https://skia-review.googlesource.com/21207 Commit-Queue: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Fix memory leak in SkImageFilterGravatar xidachen2017-06-29
| | | | | | | | | | | | | | | | | | | In our current implementation of SkImageFilterCache, when the removeInternal() function is called, the Value is removed, but their corresponding keys are not always removed in SkImageFilter. That could result in memory leak. In this CL, we made changes such that the Value structure now keeps a pointer to the SkImageFilter. Each time when the removeInternal() is called, we ask the SkImageFilter to remove the associated keys. Bug: 689740 Change-Id: I0807fa3581881ad1530536df5289e3976792281f Reviewed-on: https://skia-review.googlesource.com/20960 Commit-Queue: Xida Chen <xidachen@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Stephen White <senorblanco@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* 2pt conical stage for focal-point-outside caseGravatar Florin Malita2017-06-29
| | | | | | | | | | | | | | | | | A couple of annoyances here: 1) the prev vector_scale stage is not usable for masking, as NaN values can propagate through => switch to actual masking 2) for the outside case, we must select the min root when the gradient is flipped => split into two templated stages (_min, _max) (I'm not convinced that we need to flip the gradient for RP at all; we can investigate later) Change-Id: I0283812d613a53124f2987d1aea1f26e4533655e Reviewed-on: https://skia-review.googlesource.com/21162 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* clean up colorfilter sprite blittersGravatar Mike Klein2017-06-29
| | | | | | | | | | | | Instead of rejecting all sprite blitters when there's a color filter, just remove the old legacy color filter sprite blitters. The SkRasterPipelineSpriteBlitter can still handle color filters... no need to fall back to the general shader (gather) blitter. Change-Id: Ib27f3e153612d0d904093da68223c2b862b17f63 Reviewed-on: https://skia-review.googlesource.com/21204 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* remove S4444 sprite blittersGravatar Mike Klein2017-06-29
| | | | | | | | | These can fall through to the SkRasterPipelineSpriteBlitter just fine. Change-Id: I56f4f177475b233fd2d3352df1ecddc47be0d37d Reviewed-on: https://skia-review.googlesource.com/21203 Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>