aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
Commit message (Collapse)AuthorAge
* Bump min picture to 7+ months agoGravatar Mike Reed2017-06-08
| | | | | | | | | | | Delete lots of support code, including need for SkXfermode objects which are no longer used anywhere else. Bug: skia: Change-Id: Id6b7ef0f529691041ff2b206c35e336e8a4c974d Reviewed-on: https://skia-review.googlesource.com/19059 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* remove unused xfermode methodsGravatar Mike Reed2017-06-08
| | | | | | | Bug: skia: Change-Id: Ib0dfa7bbf3d4e73aab355df4d5f5e2a53f653809 Reviewed-on: https://skia-review.googlesource.com/19035 Reviewed-by: Mike Reed <reed@google.com>
* 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>
* 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>
* Ensure SkPictureImageFilter::onFilterImage doesn't double-convert colorGravatar Christopher Cameron2017-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider the following sequence of events: 1. SkPictureImageFilter::onFilterImage creates a local canvas, wraps it in a SkColorSpaceXformCanvas, and passed to... 2. SkPictureImageFilter::drawPictureAtLocalResolution creates a local canvas (localCanvas) wraps that in a SkColorSpaceXformCanvas, draws the picture to it, doing sRGB->fColorSpace conversion 3. We then call makeImageSnapshot to produce a SkSpecialImage, localImg, which is not tagged with any color space. 4. When the draw that localImg to the passed-in SkColorSpaceXformCanvas, which then performs sRGB->fColorSpace conversion a second time. We now have performed color conversion twice. One fix for this would be to have the image produced by the call to localSurface->makeImageSnapshot() be tagged with fColorSpace. This is somewhat involved. The less invasive fix is to remove the SkColorSpaceXformCanvas in SkPictureImageFilter::onFilterImage, and push it down into the two branches, SkPictureImageFilter::drawPictureAtLocalResolution and SkPictureImageFilter::drawPictureAtDeviceResolution. BUG=728332 Change-Id: If2aa32e18ad660b3e361f1d90845eeb8555fe404 Reviewed-on: https://skia-review.googlesource.com/18282 Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Christopher Cameron <ccameron@google.com> Commit-Queue: Christopher Cameron <ccameron@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>
* Revert "Revert "Delete SkGaussianEdgeShader""Gravatar Florin Malita2017-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9d14f936cc09de2a37c05c7af2cf60aa31f74722. Reason for revert: Android fix merged. Original change's description: > Revert "Delete SkGaussianEdgeShader" > > This reverts commit 64790a3714467300848971aa153aca8cea91cf7b. > > Reason for revert: pending Android fix merge. > > Original change's description: > > Delete SkGaussianEdgeShader > > > > No longer used. > > > > Change-Id: I65a61696060ca19f528066ea587e140798450e36 > > Reviewed-on: https://skia-review.googlesource.com/18132 > > Reviewed-by: Jim Van Verth <jvanverth@google.com> > > Commit-Queue: Florin Malita <fmalita@chromium.org> > > > > TBR=jvanverth@google.com,fmalita@chromium.org,reed@google.com > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > > Change-Id: I88a428e942c78b1fc8e70501ba7fdda5727b2ab2 > Reviewed-on: https://skia-review.googlesource.com/18156 > Reviewed-by: Florin Malita <fmalita@chromium.org> > Commit-Queue: Florin Malita <fmalita@chromium.org> > TBR=mtklein@google.com,jvanverth@google.com,reviews@skia.org,fmalita@chromium.org,reed@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: Ia6c97a79a6425a28fab49984691505bf89ac9736 Reviewed-on: https://skia-review.googlesource.com/18227 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Fix outset for blurs when using ignoreXform flag on GPUGravatar Greg Daniel2017-05-31
| | | | | | | | Bug: skia: Change-Id: I7d77bfc4e7652a0ab432b1137f918862ac2009cb Reviewed-on: https://skia-review.googlesource.com/18223 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Allow GPU blur fast path for circles and rects when using ignore xformGravatar Greg Daniel2017-05-31
| | | | | | | | | | | | | Since the only thing it looks like we alter when using the ignore xform flag is the blur radius, this is already handled by the computeXformedSigma function call. Thus it should be safe to just use the current fps and draws for circle and rect. Bug: chromium:724735 Change-Id: I7a2f52dc965dcd875b8c2802141f30607a966347 Reviewed-on: https://skia-review.googlesource.com/18122 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Delete SkGaussianEdgeShader"Gravatar Florin Malita2017-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 64790a3714467300848971aa153aca8cea91cf7b. Reason for revert: pending Android fix merge. Original change's description: > Delete SkGaussianEdgeShader > > No longer used. > > Change-Id: I65a61696060ca19f528066ea587e140798450e36 > Reviewed-on: https://skia-review.googlesource.com/18132 > Reviewed-by: Jim Van Verth <jvanverth@google.com> > Commit-Queue: Florin Malita <fmalita@chromium.org> > TBR=jvanverth@google.com,fmalita@chromium.org,reed@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: I88a428e942c78b1fc8e70501ba7fdda5727b2ab2 Reviewed-on: https://skia-review.googlesource.com/18156 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@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>
* Delete SkGaussianEdgeShaderGravatar Florin Malita2017-05-30
| | | | | | | | | No longer used. Change-Id: I65a61696060ca19f528066ea587e140798450e36 Reviewed-on: https://skia-review.googlesource.com/18132 Reviewed-by: Jim Van Verth <jvanverth@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* move perlinenoise2 into effectsGravatar Mike Reed2017-05-30
| | | | | | | | Bug: skia: Change-Id: I5c178bdc5901d15c6924b3fb1f29119ab3cc701d Reviewed-on: https://skia-review.googlesource.com/18131 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Don't pull private headers in SkOverdrawColorFilter.hGravatar Florin Malita2017-05-30
| | | | | | | Change-Id: I16254709ffaf6c85110964568ec9422a1ffbb970 Reviewed-on: https://skia-review.googlesource.com/18129 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Revise system for checking for uninstantiated proxiesGravatar Robert Phillips2017-05-29
| | | | | | | | | | | | | | The new pattern is: we will "instantiate" pipelines at flush time at flush time we will only access the backing GrSurface by peeking If instantiation fails we should never try to access the GrSurfaces Change-Id: I87f7ff41bd0e84d9ca3dbdd61d3361d3d4ceefd6 Reviewed-on: https://skia-review.googlesource.com/17932 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@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>
* Revert "Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT code"Gravatar Mike Klein2017-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 04d22c04838fb312aa5ecc770299aff31076e7e3. Reason for revert: Android roll? junit.framework.AssertionFailedError: res/drawable/vector_icon_gradient_1.xml: totalDiffPixelCount is 123 Original change's description: > Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT code > > Behold the first raster pipeline-only gradient! > > Change-Id: Ib6f53224e4ff9506aafdae1d2303102fc5235dfc > Reviewed-on: https://skia-review.googlesource.com/17982 > Commit-Queue: Mike Klein <mtklein@chromium.org> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,fmalita@chromium.org,reed@google.com No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: I328585f5412068f4eff1d0a2a6083cb4c1a3c078 Reviewed-on: https://skia-review.googlesource.com/18022 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* 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>
* Relocate shaders to own dirGravatar Florin Malita2017-05-25
| | | | | | | | | 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>
* Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT codeGravatar Florin Malita2017-05-25
| | | | | | | | | Behold the first raster pipeline-only gradient! Change-Id: Ib6f53224e4ff9506aafdae1d2303102fc5235dfc Reviewed-on: https://skia-review.googlesource.com/17982 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Reland of SkShaderBaseGravatar Florin Malita2017-05-25
| | | | | | | | | | Introduce a private base class (SkShaderBase), to hide implementation details from the public interface (SkShader). Change-Id: Ib1d76cde880bd51868b97408710f8bb38128e536 Reviewed-on: https://skia-review.googlesource.com/17925 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Revert "SkShaderBase"Gravatar Florin Malita2017-05-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 58a756435ca3700d9766a4580bb0771a9774f603. Reason for revert: g3, Android borkage. Original change's description: > SkShaderBase > > Introduce a private base class (SkShaderBase), to hide > implementation details from the public interface (SkShader). > > Change-Id: If3ec26ca6abc9da20e3f139c11fdc023bdd85176 > Reviewed-on: https://skia-review.googlesource.com/17241 > Commit-Queue: Florin Malita <fmalita@chromium.org> > Reviewed-by: Mike Reed <reed@google.com> > TBR=mtklein@google.com,fmalita@chromium.org,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I32b012ee466dd006c074593f211f43ed602f1078 Reviewed-on: https://skia-review.googlesource.com/17845 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* SkShaderBaseGravatar Florin Malita2017-05-24
| | | | | | | | | | Introduce a private base class (SkShaderBase), to hide implementation details from the public interface (SkShader). Change-Id: If3ec26ca6abc9da20e3f139c11fdc023bdd85176 Reviewed-on: https://skia-review.googlesource.com/17241 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* SkRasterPipeline in SkArenaAllocGravatar Mike Klein2017-05-24
| | | | | | | | | Bug: skia:6673 Change-Id: Ia2bae4f6a9039a007a10b6b45bcf2f0854bf6e5c Reviewed-on: https://skia-review.googlesource.com/17794 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* move all details for dashing into implGravatar Mike Reed2017-05-24
| | | | | | | | Bug: skia: Change-Id: I035603ad75158d9984cce7807bef6a668d9eb014 Reviewed-on: https://skia-review.googlesource.com/17793 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Reed <reed@google.com>
* Make SkPictureImageFilter::drawPictureAtLocalResolution use color xformGravatar Christopher Cameron2017-05-23
| | | | | | | | | | | | This creates a temporary SkCanvas, which needs to be wrapped in a color xform canvas to behave appropriately. bug:725372 Change-Id: I572437770f271b7fb813519c0966cd3177b9eeaf Reviewed-on: https://skia-review.googlesource.com/17658 Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Christopher Cameron <ccameron@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
* retry tilers against 1Gravatar Mike Klein2017-05-23
| | | | | | | | | These weren't the Valgrind problem. Change-Id: Ic76df460cf0ce7f7ae8155d549f4e92a7f8de040 Reviewed-on: https://skia-review.googlesource.com/17701 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Revert "add tilers against 1"Gravatar Brian Osman2017-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8110b849d60455d6fb594f26919f0f38c3ec9925. Reason for revert: Valgrind requires reverting ancestor commit. Original change's description: > add tilers against 1 > > Change-Id: I2482972a43cb89a93cbfb9e708614e0334002e53 > Reviewed-on: https://skia-review.googlesource.com/17483 > Reviewed-by: Herb Derby <herb@google.com> > Commit-Queue: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,herb@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Icbc3a2212f800854ef7b2b17aa99fedad182d53e Reviewed-on: https://skia-review.googlesource.com/17523 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* add tilers against 1Gravatar Mike Klein2017-05-22
| | | | | | | Change-Id: I2482972a43cb89a93cbfb9e708614e0334002e53 Reviewed-on: https://skia-review.googlesource.com/17483 Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Switch to SkVertices version of drawVerticesGravatar Brian Osman2017-05-22
| | | | | | | | Bug: skia: Change-Id: I2966a5f6d1c0a953d5fe0d257550ae7f16e87e41 Reviewed-on: https://skia-review.googlesource.com/17455 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Remove ambient and spot mask filters.Gravatar Jim Van Verth2017-05-18
| | | | | | | | | Also remove a deprecated interface in SkShadowUtils. Change-Id: I32e67271be953f11071c512cb39a47ea1e7dcaaf Reviewed-on: https://skia-review.googlesource.com/17266 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Jim Van Verth <jvanverth@google.com>
* Hide SkPerlinNoiseShader impl detailsGravatar Florin Malita2017-05-18
| | | | | | | | | | Move the shader impl to a private class, leave SkPerlinNoiseShader as a factory class only (similar to e.g. SkLightingShader). Change-Id: Ic1180db8f5dfd3d8f6fba133c6bf6bbdfa4f97a4 Reviewed-on: https://skia-review.googlesource.com/17318 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* scalarize SkGradientShader stop setupGravatar Mike Klein2017-05-17
| | | | | | | | | | | | One of Clankium's GCC 4.9 builds is crashing when compiling the existing Sk4f version, so let's try ordinary scalar math. BUG=chromium:721682 Change-Id: Ie37bf530ada537363119acd31814ae46cd3adf73 Reviewed-on: https://skia-review.googlesource.com/17210 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* remove some stray semicolonsGravatar Mike Klein2017-05-17
| | | | | | | Change-Id: I00db78597f6c19b309569e771a5ff843365f7850 Reviewed-on: https://skia-review.googlesource.com/17207 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Move lambdas to statics.Gravatar Herb Derby2017-05-16
| | | | | | | | Change-Id: I53663197de96402152c07e2ff208fd74e380b0c6 Reviewed-on: https://skia-review.googlesource.com/17061 Commit-Queue: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Always use raster pipeline for SkSweepGradientGravatar Florin Malita2017-05-16
| | | | | | | | | | | | | Add an opt-in mechanism (SkShader::isRasterPipelineOnly) and switch SkSweepGradient to always-RP. This also repurposes the existing SK_LEGACY_SWEEP_GRADIENT guard. Change-Id: Iabf0a701eda56f009d331120f0c987f96bd35d27 Reviewed-on: https://skia-review.googlesource.com/16912 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Add evenly spaced stops and unify gradient contextsGravatar Herb Derby2017-05-15
| | | | | | | Change-Id: I17ac13b9d1ea6765e2c1a2b53aa6975eab408856 Reviewed-on: https://skia-review.googlesource.com/16713 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* fix legacy/SkRasterPipeline SkHighContrastFilterGravatar Mike Klein2017-05-12
| | | | | | | Change-Id: I395be972abf571af79ccf6ed5917bf463fd2166d Reviewed-on: https://skia-review.googlesource.com/16709 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* refactor gradient stage namesGravatar Mike Klein2017-05-12
| | | | | | | | | | | | | | | | | | | | | | This is just a name refactor and I'm happy to delay it until we're done with the current wave of gradient CLs. The main ideas: - we use the "linear_gradient" stages for all gradients, so cut the "linear" and just call them "gradient"; - remind ourselves that the 2-stop stage requires even spacing, i.e. stops at 0 and 1. This name should harmonize with Herb's new general evenly spaced gradient stage, currently "evenly_spaced_linear_gradient", and after it lands and I rebase, "evenly_spaced_gradient" - remind ourselves which polar coordinate xy_to_polar_unit returns, the angle. Change-Id: I0fd0c8bd4c1ead7d2d0fff45a199d318b71f34ac Reviewed-on: https://skia-review.googlesource.com/16500 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Reed <reed@google.com>
* Revert "Evenly space gradient stage."Gravatar Mike Klein2017-05-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 892501d09bc8608704362235c73a59bb23a386b3. Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=721682 :( Original change's description: > Evenly space gradient stage. > > This seems like an experiment at this point because I don't know how to do > this kind of thing on arm. > > > Numbers from Skylake... > Before: > ./out/Release/nanobench --config srgb \ > --match gradient_linear_clamp_3color gradient_linear_clamp_hicolor -q 19:48:13 > Timer overhead: 36.7ns > ! -> high variance, ? -> moderate variance > micros bench > 439.92 ? gradient_linear_clamp_3color srgb > 2697.60 gradient_linear_clamp_hicolor srgb > 437.28 gradient_linear_clamp_3color_4f srgb > 2700.50 gradient_linear_clamp_hicolor_4f srgb > > > After: > micros bench > 382.35 gradient_linear_clamp_3color srgb > 593.49 gradient_linear_clamp_hicolor srgb > 382.36 gradient_linear_clamp_3color_4f srgb > 565.60 gradient_linear_clamp_hicolor_4f srgb > > > Numbers on my Mac Trashcan are about even; there is no > speedup or slowdown between master and this change. > > Change-Id: I04402452e23c0888512362fd1d6d5436cea61719 > Reviewed-on: https://skia-review.googlesource.com/15960 > Commit-Queue: Herb Derby <herb@google.com> > Reviewed-by: Mike Klein <mtklein@chromium.org> > TBR=mtklein@chromium.org,mtklein@google.com,herb@google.com,fmalita@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: Ic6a064c66686b6f238ca1417ba1abd9ce25de1b4 Reviewed-on: https://skia-review.googlesource.com/16660 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Evenly space gradient stage.Gravatar herb2017-05-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This seems like an experiment at this point because I don't know how to do this kind of thing on arm. Numbers from Skylake... Before: ./out/Release/nanobench --config srgb \ --match gradient_linear_clamp_3color gradient_linear_clamp_hicolor -q 19:48:13 Timer overhead: 36.7ns ! -> high variance, ? -> moderate variance micros bench 439.92 ? gradient_linear_clamp_3color srgb 2697.60 gradient_linear_clamp_hicolor srgb 437.28 gradient_linear_clamp_3color_4f srgb 2700.50 gradient_linear_clamp_hicolor_4f srgb After: micros bench 382.35 gradient_linear_clamp_3color srgb 593.49 gradient_linear_clamp_hicolor srgb 382.36 gradient_linear_clamp_3color_4f srgb 565.60 gradient_linear_clamp_hicolor_4f srgb Numbers on my Mac Trashcan are about even; there is no speedup or slowdown between master and this change. Change-Id: I04402452e23c0888512362fd1d6d5436cea61719 Reviewed-on: https://skia-review.googlesource.com/15960 Commit-Queue: Herb Derby <herb@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* spin off: always clamp linear gradientsGravatar Mike Klein2017-05-11
| | | | | | | | | | | | | | | | | | While we're refactoring how gradients work it's going to be easier to centralized how and when we tile. - PS2 changed linear and radial in place to alwys clamp. - PS3 moved tiling to the base class, where it's even harder to screw up. Sweeps don't need but don't mind tiling. - PS4 clamps when iff evenly spaced PS4 has image diffs for only a few GMs that I'm not familiar with. If its logic reads as correct to you, they may be bug fixes? Change-Id: I5e37d6e88aaea898356d4c57db0cd5bf414c0295 Reviewed-on: https://skia-review.googlesource.com/16501 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* remove TODO in SkGradientShader.cppGravatar Mike Klein2017-05-11
| | | | | | | | | | | | | | | As we have factored things, we _do_ need to map y. This matrix maps us back from dst to src space now, but not all the way to t. We let the subclass inject its own logic for x,y -> t. (Linear gradients do actually still do this by modifying the first matrix rather than appending another matrix for x,y -> t. But in general we cannot not map y here anymore.) Change-Id: I2f9a87c7b510269a8b218a0247cbff416fe8d6c9 Reviewed-on: https://skia-review.googlesource.com/16495 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Fix transparent ambient shadowsGravatar Jim Van Verth2017-05-11
| | | | | | | | | Add a clamp value to indicate the percentage of the blurWidth to apply. Change-Id: I962dc57ed786fa67ed1606b1148f1b2c568025e5 Reviewed-on: https://skia-review.googlesource.com/16424 Commit-Queue: Jim Van Verth <jvanverth@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Make SkCreateRasterPipelineBlitter() not fail.Gravatar Mike Klein2017-05-10
| | | | | | | | | | | | | | Mostly this is about extending the fallback in SkShader::appendStages() to cover more cases, and making sure subclasses call appendStages() so they can get the fallback, not onAppendStages() directly. We still need to watch for SkShader::makeContext() failing in the fallback itself, so sadly SkShader::appendStages() may still fail. Change-Id: I2314b234a24bdcecac401a385ce050d7fdf0a83e Reviewed-on: https://skia-review.googlesource.com/16369 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* void SkColorFilter::onAppendStages(...)Gravatar Mike Klein2017-05-09
| | | | | | | | | | | SkColorFilter::onAppendStages() can't actually fail today. Let's enforce that. This means the fallback is now used only for color filters that have not implemented onAppendStages(). Change-Id: Ica3939685694f6186727766b54914b9ba05ca68c Reviewed-on: https://skia-review.googlesource.com/16231 Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Make SkColorFilter::appendStages() not fail.Gravatar Mike Klein2017-05-09
| | | | | | | | | | | | | | | | | | This makes SkColorFilter::appendStages() first try onAppendStages(), and if it's unimplemented or fails, fall back to filterSpan4f(). This also makes onAppendStages() private to try to ensure that appendStages() is now its only caller, ensuring everyone goes through this fallback path. The fallback uses the color filter transformed into the dst colorspace using our new SkColorSpaceXformer... that seem ok Matt? Change-Id: I4751a6859596fa4f7e844e69ef0d986f005b52c7 Reviewed-on: https://skia-review.googlesource.com/16031 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* SkPerlinNoiseShader: handle pathological inputsGravatar Hal Canary2017-05-09
| | | | | | | | BUG=skia:6429 Change-Id: Ifc20c1f480c1396e40ab7fc3a3789aa7c2ae5d85 Reviewed-on: https://skia-review.googlesource.com/15896 Commit-Queue: Hal Canary <halcanary@google.com> Reviewed-by: Kevin Lubick <kjlubick@google.com>
* Add radial gradient stage.Gravatar Herb Derby2017-05-09
| | | | | | | Change-Id: Ie1f9640f5149f21bd8b3b864ff8b176232e1b0a9 Reviewed-on: https://skia-review.googlesource.com/15461 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Herb Derby <herb@google.com>
* Minimize computeTotalInverse()'s inputsGravatar Florin Malita2017-05-08
| | | | | | | | | The helper doesn't need a full context rec - it only looks at the CTM and external local matrix. Pass these explicitly instead. Change-Id: I6a5884f65cd383c2df0e8d83c9086789bd96f345 Reviewed-on: https://skia-review.googlesource.com/15870 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>