aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkMaskBlurFilter.cpp
Commit message (Collapse)AuthorAge
* Revert "Revert "SkTypes: extract SkTo""Gravatar Hal Canary2018-06-14
| | | | | | | | | | | | | | | | This reverts commit fdcfb8b7c23fbf18f872d2c31d27978235033876. > Original change's description: > > SkTypes: extract SkTo > > > > Change-Id: I8de790d5013db2105ad885fa2683303d7c250b09 > > Reviewed-on: https://skia-review.googlesource.com/133620 > > Reviewed-by: Mike Klein <mtklein@google.com> Change-Id: Ida74fbc5c21248a724a5edbf9fae18a33bcb23aa Reviewed-on: https://skia-review.googlesource.com/134506 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Revert "SkTypes: extract SkTo"Gravatar Hal Canary2018-06-13
| | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2a2f67592602b18527bc3fd449132d420cd5b62e. Reason for revert: this appears to be what is holding up the Chrome roll. Original change's description: > SkTypes: extract SkTo > > Change-Id: I8de790d5013db2105ad885fa2683303d7c250b09 > Reviewed-on: https://skia-review.googlesource.com/133620 > Reviewed-by: Mike Klein <mtklein@google.com> TBR=mtklein@google.com,halcanary@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: Iafd738aedfb679a23c061a51afe4b98a8d4cdfae Reviewed-on: https://skia-review.googlesource.com/134504 Reviewed-by: Hal Canary <halcanary@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* SkTypes: extract SkToGravatar Hal Canary2018-06-12
| | | | | | Change-Id: I8de790d5013db2105ad885fa2683303d7c250b09 Reviewed-on: https://skia-review.googlesource.com/133620 Reviewed-by: Mike Klein <mtklein@google.com>
* Correctly handle empty outer blurs.Gravatar Ben Wagner2018-05-14
| | | | | | | | | | | Most blur styles approach the original mask as the sigma goes to zero. The outer style however approaches nothing as the mask sigma goes to zero. Handle this case correctly. Change-Id: I14f76e144d7cfc78aeaff30ff5444a21f1e5f98b Reviewed-on: https://skia-review.googlesource.com/128006 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Non-normal blur styles to work with non-a8.Gravatar Ben Wagner2018-05-10
| | | | | | | | | BUG=skia:7941 Change-Id: I500561c2fec1bcab324fd9519f1d20d356afdfb5 Reviewed-on: https://skia-review.googlesource.com/127500 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Herb Derby <herb@google.com>
* SkBlurMask to blur all the things.Gravatar Ben Wagner2018-05-08
| | | | | | | | | | | | | | | SkBlurMask used to handle only A8 as input, and was recently extended to ARGB as input. This adds LCD16 and A1 as inputs as well, allowing SkScalerContext to no longer force all requests with a mask filter to A8. This also fixes the shadows for LCD16 and A1 glyphs, which at small sigma were quite obviously wrong since they were generated from an A8 version. Change-Id: I151cdbf5556d18c2938da990ecee5bcd8ee31be8 Reviewed-on: https://skia-review.googlesource.com/126615 Reviewed-by: Herb Derby <herb@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Use MaskFilter to create SDFs for text.Gravatar Jim Van Verth2018-05-04
| | | | | | | | | | Easy way to store SDFs in the glyph cache. Change-Id: Ia67e5c8619862bdee6aa3b293e30507d029e3bf1 Bug: skia: Reviewed-on: https://skia-review.googlesource.com/123748 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Just pass color glyph masks to filters.Gravatar Ben Wagner2018-04-27
| | | | | | | | | | | | | | | Allow the filters to try to apply themselves to the color mask. Most mask filters will just return false, but allow them the opprotunity. This removes the behavior of trying to create a mask from the color mask. This updates the blur mask filter to handle kARGB32_Format directly by using just the alpha (which mirrors current behavior). Change-Id: I15eb736060ecf9b24aca874758c167b74d9ebc22 Reviewed-on: https://skia-review.googlesource.com/124185 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Remove legacy mask blur code.Gravatar Herbert Derby2018-01-26
| | | | | | | | | | | | | This was flag flipped about last year in the chrome code, and flag flipped about three weeks ago in Android. All the *_LEGACY_*BLUR flags are gone. Change-Id: I046f3a040ccbf12ff3a810c41b02131095df3368 Reviewed-on: https://skia-review.googlesource.com/96001 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* don't include SkMalloc.h from SkTypes.hGravatar Mike Reed2018-01-04
| | | | | | | | | | | | Needed chrome CLs https://chromium-review.googlesource.com/c/chromium/src/+/850741 https://chromium-review.googlesource.com/c/chromium/src/+/850920 Bug: skia: Change-Id: Ic568174a56590a65bfa284c59fd104275ee78da9 Reviewed-on: https://skia-review.googlesource.com/90823 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Transition to using size_t for only byte allocation sizes.Gravatar Herbert Derby2017-12-07
| | | | | | | | | | This will simplify coming refactorings, and make the code similar to the image blur code. Change-Id: I4d61ac21e3428b0e4fce03159c66539b9b032fe7 Reviewed-on: https://skia-review.googlesource.com/81961 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Remove api call from SkGaussFilterGravatar Herb Derby2017-11-17
| | | | | | | | | | | Simplify the SkGaussFilter API to facilitate using ranged-for loops. Change-Id: Id853bd6bfe342ae95b7c6248c459fbf865f75d1e Reviewed-on: https://skia-review.googlesource.com/73262 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Ben Wagner <bungeman@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Revert "Direct evaluation of gaussian""Gravatar Herb Derby2017-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a53d999007f92ecd4244b078fa909b76fd0d9f3b. Reason for revert: Bug in SkNx_sse fixed. Original change's description: > Revert "Direct evaluation of gaussian" > > This reverts commit 5e18cdea0a0a3f23d8e8b8140c82a4b54e121402. > > Reason for revert: ASAN > Original change's description: > > Direct evaluation of gaussian > > > > The SVG(CSS) standard allows the 3 pass algorithm for sigma >= 2. But > > sigma < 2, the code must evaluate to the convolution. The old code used > > an interpolation scheme between windowed filters. This code directly > > evaluates the gaussian kernel for sigma < 2. > > > > This code produces cleaner results, is 25% faster, and does not use a > > temporary memory buffer. > > > > Change-Id: Ibd0caa73cadd06b637f55ba7bd4fefcfe7ac73db > > Reviewed-on: https://skia-review.googlesource.com/62540 > > Commit-Queue: Herb Derby <herb@google.com> > > Reviewed-by: Mike Klein <mtklein@google.com> > > TBR=mtklein@google.com,herb@google.com > > Change-Id: I936077dfa659d71bc361339d98340c55545a1eb8 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/72481 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Brian Osman <brianosman@google.com> TBR=mtklein@google.com,herb@google.com,brianosman@google.com Change-Id: I4c30e3481308a8148d40223519e286885ec6f880 Reviewed-on: https://skia-review.googlesource.com/72900 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Herb Derby <herb@google.com>
* Revert "Direct evaluation of gaussian"Gravatar Brian Osman2017-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 5e18cdea0a0a3f23d8e8b8140c82a4b54e121402. Reason for revert: ASAN Original change's description: > Direct evaluation of gaussian > > The SVG(CSS) standard allows the 3 pass algorithm for sigma >= 2. But > sigma < 2, the code must evaluate to the convolution. The old code used > an interpolation scheme between windowed filters. This code directly > evaluates the gaussian kernel for sigma < 2. > > This code produces cleaner results, is 25% faster, and does not use a > temporary memory buffer. > > Change-Id: Ibd0caa73cadd06b637f55ba7bd4fefcfe7ac73db > Reviewed-on: https://skia-review.googlesource.com/62540 > Commit-Queue: Herb Derby <herb@google.com> > Reviewed-by: Mike Klein <mtklein@google.com> TBR=mtklein@google.com,herb@google.com Change-Id: I936077dfa659d71bc361339d98340c55545a1eb8 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/72481 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Direct evaluation of gaussianGravatar Herbert Derby2017-11-16
| | | | | | | | | | | | | | | The SVG(CSS) standard allows the 3 pass algorithm for sigma >= 2. But sigma < 2, the code must evaluate to the convolution. The old code used an interpolation scheme between windowed filters. This code directly evaluates the gaussian kernel for sigma < 2. This code produces cleaner results, is 25% faster, and does not use a temporary memory buffer. Change-Id: Ibd0caa73cadd06b637f55ba7bd4fefcfe7ac73db Reviewed-on: https://skia-review.googlesource.com/62540 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Extract code for safely creating SkMasks try 2Gravatar Herb Derby2017-11-10
| | | | | | | | | | | | This is in preparation for adding a faster small radii blur. Be sure to obey the original semantics about handling dst when src.fImage is null. Change-Id: Ic0ff0ac81494799e2d5037283904f1094309c622 Reviewed-on: https://skia-review.googlesource.com/70025 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "Extract code for safely creating SkMasks."Gravatar Greg Daniel2017-11-10
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 66f2b5eab2ba03950b9d502ed3fc1863d55a9664. Reason for revert: breaking lots of bots Original change's description: > Extract code for safely creating SkMasks. > > This is in preparation for adding a faster small radii blur. > > Change-Id: I8afd4642ebafa63a45031a7a0bd7a720951dc102 > Reviewed-on: https://skia-review.googlesource.com/70040 > Reviewed-by: Florin Malita <fmalita@chromium.org> > Commit-Queue: Herb Derby <herb@google.com> TBR=herb@google.com,fmalita@chromium.org,fmalita@google.com Change-Id: I83a6953f9ae240cc5f09206e3f77490882869a9f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/70104 Reviewed-by: Greg Daniel <egdaniel@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Extract code for safely creating SkMasks.Gravatar Herb Derby2017-11-10
| | | | | | | | | This is in preparation for adding a faster small radii blur. Change-Id: I8afd4642ebafa63a45031a7a0bd7a720951dc102 Reviewed-on: https://skia-review.googlesource.com/70040 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Remove dead code for the incorrect handling of small radii blurs.Gravatar Herb Derby2017-11-09
| | | | | | | Change-Id: I06be8fb092ee50df7be89c51d512791278bc4e27 Reviewed-on: https://skia-review.googlesource.com/69280 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Limit maximum sigma to avoid overflowsGravatar Herb Derby2017-09-26
| | | | | | | | | | | | | | | Limit the maximum sigma to avoid overflowing the blur calculation, and more importantly to limit the size of buffers. I checked that this failed on my linux box, and this CL fixes the problem. BUG=chromium:768294 Change-Id: I7ed14acc47f546db9c00c78c148a898459852a9f Reviewed-on: https://skia-review.googlesource.com/50920 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Remove legacy code for box blur.Gravatar Herb Derby2017-09-19
| | | | | | | Change-Id: I2a4ca5d623adcf923981dd27be40dcbf81152954 Reviewed-on: https://skia-review.googlesource.com/48583 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Sk4i version of blur.Gravatar Herb Derby2017-09-14
| | | | | | | | | | | | | | | | | For the blur_1.50_normal_low_quality benchmark, this code goes from about 120us to 85us. The original implementation executes at about 95us. This changed in controlled by the flag: SK_SUPPORT_LEGACY_SLOW_SMALL_BLUR BUG=chromium:759070 CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Change-Id: If722cb8ffd8c47a94b7a6b4e6dd26fd1474b6209 Reviewed-on: https://skia-review.googlesource.com/45300 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Clean up mask blur code.Gravatar Herb Derby2017-09-06
| | | | | | | | | | | | | | | | | | | | | | This code has interpolation for small radii like the old code. This code is protected by the flag: SK_LEGACY_SUPPORT_INTEGER_SMALL_RADII In addition, I have improved the scale calculation for Gauss to be more accurate, and it is also protected by the flag: SK_LEGACY_SUPPORT_INTEGER_SMALL_RADII When SK_LEGACY_SUPPORT_INTEGER_SMALL_RADII is defined, then there is no difference. Bug: skia: Change-Id: I588299c3768dd009852ce41f33a6a8572d9f4ad3 Reviewed-on: https://skia-review.googlesource.com/41746 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Use interpolating blur for sigma < 2Gravatar Herb Derby2017-08-31
| | | | | | | | | | | | | Reimplemnet the original interpolating code. Moving from the integer blur code to this code is controled by the flag: SK_LEGACY_SUPPORT_INTEGER_SMALL_RADII BUG=chromium:759273 Change-Id: I17205d704a0cae68a8a027c6bb235f81b5c62e24 Reviewed-on: https://skia-review.googlesource.com/41082 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Fix poor handling of nullptr for new blur codeGravatar Herb Derby2017-08-22
| | | | | | | | | BUG=chromium:749147 Change-Id: I2d4259805300c3f5ed9d25e142e9f12570c59781 Reviewed-on: https://skia-review.googlesource.com/37121 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Use SkSafeMath to calculate memory sizes.Gravatar Herb Derby2017-08-16
| | | | | | | | | BUG=chromium:749147 Change-Id: I07d18e089be1138ad83bfde392c7daf2d01d388c Reviewed-on: https://skia-review.googlesource.com/34747 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Add an average mode for sigma < 2Gravatar Herb Derby2017-08-15
| | | | | | | | | | | | | | | | | The original code had an optimization when sigma < 2 that averaged pixels instead of Gaussian bluring them. This CL adds that behavior back to the new implementation. Add the flag SK_LEGACY_USE_GAUSS_FOR_SMALL_RADII to control the new behavior. BUG=chromium:745290 Change-Id: I6e7417ce7f42949f88376b549743a9f047667f09 Reviewed-on: https://skia-review.googlesource.com/34624 Commit-Queue: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Revert "Revert "Revert "Add an average mode for sigma < 2"""Gravatar Herb Derby2017-08-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit f6975ea5fb178c572cf4c1cd255e5fe623418d45. Reason for revert: Did not take into account there are layout test problems too. Adding a legacy flag. Original change's description: > Revert "Revert "Add an average mode for sigma < 2"" > > We are going to have the google3 auto roller build the CL, > and add the fixes to the failing tests to that CL. Because > these are scuba changes, this should be simpler. > > This reverts commit 8e7503195c40492df6a9c072d3303c9df9ec32dc. > > Reason for revert: <INSERT REASONING HERE> > > Original change's description: > > Revert "Add an average mode for sigma < 2" > > > > This reverts commit ba8275148ab8b10393b053e2586b852796c4afc2. > > > > Reason for revert: layout tests, Google3 equivalent failing. > > > > Original change's description: > > > Add an average mode for sigma < 2 > > > > > > The original code had an optimization when sigma < 2 that averaged > > > pixels instead of Gaussian bluring them. This CL adds that > > > behavior back to the new implementat. > > > > > > BUG=chromium:745290 > > > Change-Id: I35b7de2138a859d546439cc2053b4b599a94ebe1 > > > Reviewed-on: https://skia-review.googlesource.com/34180 > > > Commit-Queue: Herb Derby <herb@google.com> > > > Reviewed-by: Mike Klein <mtklein@chromium.org> > > > > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com > > > > Change-Id: Ie8f38b042acec42260913cb7bed5538a2c957e9b > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: chromium:745290 > > Reviewed-on: https://skia-review.googlesource.com/34640 > > Reviewed-by: Mike Klein <mtklein@google.com> > > Commit-Queue: Mike Klein <mtklein@google.com> > > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com > > Change-Id: I5f7b706a2f8c8d52b3576c638ecddf12a1652031 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:745290 > Reviewed-on: https://skia-review.googlesource.com/34641 > Reviewed-by: Herb Derby <herb@google.com> > Commit-Queue: Herb Derby <herb@google.com> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com Change-Id: I9064f8494e5a1a4a78dd545697e22f52985c0fa1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:745290 Reviewed-on: https://skia-review.googlesource.com/34623 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Revert "Add an average mode for sigma < 2""Gravatar Herb Derby2017-08-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are going to have the google3 auto roller build the CL, and add the fixes to the failing tests to that CL. Because these are scuba changes, this should be simpler. This reverts commit 8e7503195c40492df6a9c072d3303c9df9ec32dc. Reason for revert: <INSERT REASONING HERE> Original change's description: > Revert "Add an average mode for sigma < 2" > > This reverts commit ba8275148ab8b10393b053e2586b852796c4afc2. > > Reason for revert: layout tests, Google3 equivalent failing. > > Original change's description: > > Add an average mode for sigma < 2 > > > > The original code had an optimization when sigma < 2 that averaged > > pixels instead of Gaussian bluring them. This CL adds that > > behavior back to the new implementat. > > > > BUG=chromium:745290 > > Change-Id: I35b7de2138a859d546439cc2053b4b599a94ebe1 > > Reviewed-on: https://skia-review.googlesource.com/34180 > > Commit-Queue: Herb Derby <herb@google.com> > > Reviewed-by: Mike Klein <mtklein@chromium.org> > > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com > > Change-Id: Ie8f38b042acec42260913cb7bed5538a2c957e9b > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:745290 > Reviewed-on: https://skia-review.googlesource.com/34640 > Reviewed-by: Mike Klein <mtklein@google.com> > Commit-Queue: Mike Klein <mtklein@google.com> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com Change-Id: I5f7b706a2f8c8d52b3576c638ecddf12a1652031 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:745290 Reviewed-on: https://skia-review.googlesource.com/34641 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Herb Derby <herb@google.com>
* Revert "Add an average mode for sigma < 2"Gravatar Mike Klein2017-08-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit ba8275148ab8b10393b053e2586b852796c4afc2. Reason for revert: layout tests, Google3 equivalent failing. Original change's description: > Add an average mode for sigma < 2 > > The original code had an optimization when sigma < 2 that averaged > pixels instead of Gaussian bluring them. This CL adds that > behavior back to the new implementat. > > BUG=chromium:745290 > Change-Id: I35b7de2138a859d546439cc2053b4b599a94ebe1 > Reviewed-on: https://skia-review.googlesource.com/34180 > Commit-Queue: Herb Derby <herb@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com Change-Id: Ie8f38b042acec42260913cb7bed5538a2c957e9b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:745290 Reviewed-on: https://skia-review.googlesource.com/34640 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Add an average mode for sigma < 2Gravatar Herb Derby2017-08-14
| | | | | | | | | | | | The original code had an optimization when sigma < 2 that averaged pixels instead of Gaussian bluring them. This CL adds that behavior back to the new implementat. BUG=chromium:745290 Change-Id: I35b7de2138a859d546439cc2053b4b599a94ebe1 Reviewed-on: https://skia-review.googlesource.com/34180 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Revert "check for no blur and exit early""Gravatar Mike Reed2017-07-21
| | | | | | | | | | This reverts commit 8825a09fc88f46dcec1d547dfbe7457ea224790b. Bug: skia: Change-Id: I01df7bf9e398012b5320655da3cab306256e31fb Reviewed-on: https://skia-review.googlesource.com/25740 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "check for no blur and exit early"Gravatar Cary Clark2017-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 35a5e418b96053bbdebef2cceb33db995f960010. Reason for revert: breaks google 3 Original change's description: > check for no blur and exit early > > Bug: skia: > Change-Id: I98c07c5fd77ec67398dd4df12fb6a24aa4ca7731 > Reviewed-on: https://skia-review.googlesource.com/25567 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> > Reviewed-by: Florin Malita <fmalita@chromium.org> TBR=mtklein@chromium.org,mtklein@google.com,fmalita@chromium.org,reed@google.com Change-Id: I9c4b50bb2fda504e5c61ed03c0722abff327ca72 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/25568 Reviewed-by: Cary Clark <caryclark@google.com> Commit-Queue: Cary Clark <caryclark@google.com>
* check for no blur and exit earlyGravatar Mike Reed2017-07-21
| | | | | | | | | Bug: skia: Change-Id: I98c07c5fd77ec67398dd4df12fb6a24aa4ca7731 Reviewed-on: https://skia-review.googlesource.com/25567 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "Revert "Experimental blur code with 32 bit fix.""Gravatar Mike Reed2017-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 27b3d272a8fcce24813212f5816b177090111ec6. Reason for revert: guard has landed in android Original change's description: > Revert "Experimental blur code with 32 bit fix." > > This reverts commit d4b2c537d058ad4cb890ba116d00aa86c3416c08. > > Reason for revert: speculative fix for android-roll > > java.lang.AssertionError: expected:<0> but was:<255> > at org.junit.Assert.fail(Assert.java:88) > at org.junit.Assert.failNotEquals(Assert.java:834) > at org.junit.Assert.assertEquals(Assert.java:645) > at org.junit.Assert.assertEquals(Assert.java:631) > at android.graphics.cts.BlurMaskFilterTest.verifyColor(BlurMaskFilterTest.java:79) > at android.graphics.cts.BlurMaskFilterTest.verifyQuadrants(BlurMaskFilterTest.java:72) > at android.graphics.cts.BlurMaskFilterTest.testBlurMaskFilter(BlurMaskFilterTest.java:56) > > Original change's description: > > Experimental blur code with 32 bit fix. > > > > 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> > > TBR=herb@google.com,reed@google.com > > Change-Id: Ie84f6bf8872cae08c06d679f0c2f2e6c3d8a02a2 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: skia: > Reviewed-on: https://skia-review.googlesource.com/22880 > Reviewed-by: Mike Reed <reed@google.com> > Commit-Queue: Mike Reed <reed@google.com> TBR=herb@google.com,reed@google.com Change-Id: I393d1c05f83ccf98137201bc7b4e7d8e8b0e8742 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/23121 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "Experimental blur code with 32 bit fix."Gravatar Mike Reed2017-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d4b2c537d058ad4cb890ba116d00aa86c3416c08. Reason for revert: speculative fix for android-roll java.lang.AssertionError: expected:<0> but was:<255> at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotEquals(Assert.java:834) at org.junit.Assert.assertEquals(Assert.java:645) at org.junit.Assert.assertEquals(Assert.java:631) at android.graphics.cts.BlurMaskFilterTest.verifyColor(BlurMaskFilterTest.java:79) at android.graphics.cts.BlurMaskFilterTest.verifyQuadrants(BlurMaskFilterTest.java:72) at android.graphics.cts.BlurMaskFilterTest.testBlurMaskFilter(BlurMaskFilterTest.java:56) Original change's description: > Experimental blur code with 32 bit fix. > > 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> TBR=herb@google.com,reed@google.com Change-Id: Ie84f6bf8872cae08c06d679f0c2f2e6c3d8a02a2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/22880 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* 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>
* 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>