aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders
Commit message (Collapse)AuthorAge
* Add back raster pipeline image tiling guardGravatar Florin Malita2017-08-18
| | | | | | | | | | | | | (SK_SUPPORT_LEGACY_TILED_BITMAPS) We have a couple of M61 regressions related to this change. Adding the guard back in case we decide to revert. TBR= Change-Id: I0703e61d70aa919b71ff9711ec28bcfc67e3e84a Reviewed-on: https://skia-review.googlesource.com/36120 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Revert "Switched highp float to highfloat and mediump float to half."Gravatar Brian Salomon2017-08-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 88d99c63878c2d3d340120f0321676f72afcb4f0. Reason for revert: Believed to be causing unit test failures in Chrome roll: https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/364433 https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Ftryserver.chromium.android%2Flinux_android_rel_ng%2F364433%2F%2B%2Frecipes%2Fsteps%2Fcontent_browsertests__with_patch__on_Android%2F0%2Flogs%2FWebRtcCaptureFromElementBrowserTest.VerifyCanvasWebGLCaptureColor%2F0 Original change's description: > Switched highp float to highfloat and mediump float to half. > > The ultimate goal is to end up with "float" and "half", but this > intermediate step uses "highfloat" so that it is clear if I missed a > "float" somewhere. Once this lands, a subsequent CL will switch all > "highfloats" back to "floats". > > Bug: skia: > Change-Id: Ia13225c7a0a0a2901e07665891c473d2500ddcca > Reviewed-on: https://skia-review.googlesource.com/31000 > Commit-Queue: Ethan Nicholas <ethannicholas@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,csmartdalton@google.com,ethannicholas@google.com Change-Id: I8bfa97547ac3920d433665f161d27df3f15c83aa No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/35705 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Switched highp float to highfloat and mediump float to half.Gravatar Ethan Nicholas2017-08-16
| | | | | | | | | | | | | The ultimate goal is to end up with "float" and "half", but this intermediate step uses "highfloat" so that it is clear if I missed a "float" somewhere. Once this lands, a subsequent CL will switch all "highfloats" back to "floats". Bug: skia: Change-Id: Ia13225c7a0a0a2901e07665891c473d2500ddcca Reviewed-on: https://skia-review.googlesource.com/31000 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Replace SkFAIL with SK_ABORT.Gravatar Ben Wagner2017-08-16
| | | | | | | | | | | | SkFAIL is a legacy macro which is just SK_ABORT. This CL mechanically changes uses of SkFAIL to SK_ABORT in preparation for its removal. The related sk_throw macro will be changed independently, due to needing to actually clean up its users. Change-Id: Id70b5c111a02d2458dc60c8933f444df27d9cebb Reviewed-on: https://skia-review.googlesource.com/35284 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Make GrFragmentProcessor be non-refcounted and use std::unique_ptr.Gravatar Brian Salomon2017-08-11
| | | | | | | Change-Id: I985e54a071338e99292a5aa2f42c92bc115b4008 Reviewed-on: https://skia-review.googlesource.com/32760 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* use rasterpipeline for images if matrix is >= scale+translateGravatar Mike Reed2017-08-08
| | | | | | | | | Bug: skia: Change-Id: I36112fe54c6f2d0965d0b88f0291d7ffe0902715 Reviewed-on: https://skia-review.googlesource.com/30480 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Remove unneeded GrGradientEffect Tegra3 workaroundGravatar Florin Malita2017-08-08
| | | | | | | | | | | | The workaround for canUseMinAndAbsTogether() is implemented in GLSLCodeGenerator, so presumably not needed here. (https://cs.chromium.org/chromium/src/third_party/skia/src/sksl/SkSLGLSLCodeGenerator.cpp?rcl=0ac06e47269a40c177747310a613d213c95d1d6d&l=223) Change-Id: Id8179ff17b929ed2d79ef9463c0f2008f3591b00 Reviewed-on: https://skia-review.googlesource.com/32181 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Relocate gradient negative fract() workaround to GLSLCodeGeneratorGravatar Florin Malita2017-08-08
| | | | | | | Change-Id: If5aba5b266f86f677b6e63b0f79792f1d3213336 Reviewed-on: https://skia-review.googlesource.com/32202 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Streamline GrGradientEffect mirror tilingGravatar Florin Malita2017-08-08
| | | | | | | | | Using the same branch-less method as raster pipeline. Change-Id: Iaaa36330dbf49961bdfc288cad031d891d8ff589 Reviewed-on: https://skia-review.googlesource.com/31280 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Consolidate GrGradientEffect analytical implsGravatar Florin Malita2017-08-08
| | | | | | | | | There's a lot of commonality, we can share more code. Change-Id: I6528358763459c4e8af17fe5f6763752cfffdf39 Reviewed-on: https://skia-review.googlesource.com/31023 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Tiling support for GrGradientEffect kTwo_ColorType/kThree_ColorTypeGravatar Florin Malita2017-08-08
| | | | | | | | | | | | | | | (re-land of https://skia-review.googlesource.com/c/30780) Currently only the hard-stop specializations support tiling. Consolidate the tiling code and expand to kTwo_ColorType, kThree_ColorType also. BUG=6925 Change-Id: I017b4accba30e87367e139333e96246cb362b6a4 Reviewed-on: https://skia-review.googlesource.com/31422 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* simplify shaderbase -- remove shaderproc -- no measurable speed diffGravatar Mike Reed2017-08-07
| | | | | | | | Bug: skia: Change-Id: Id355e3e480847fe78f904735e59353c4eb3ba2bb Reviewed-on: https://skia-review.googlesource.com/31560 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Avoid int overflow in LinearGradientContext::shade4_dx_clampGravatar Florin Malita2017-08-07
| | | | | | | Change-Id: I86e01aa00b14f8a4b6e64169821768ab5ece9aa3 Reviewed-on: https://skia-review.googlesource.com/31481 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* remove unused shadeSpanAlpha -- handled by rasterpipelineGravatar Mike Reed2017-08-07
| | | | | | | | Bug: skia: Change-Id: If13510cbc340b920342d7d4df9ce34ef1081e434 Reviewed-on: https://skia-review.googlesource.com/31420 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Remove SkLightingShader and associated classesGravatar Robert Phillips2017-08-07
| | | | | | | | Change-Id: I8050414c30dfdb5df23ca79955adc5ba3a29d3f5 Reviewed-on: https://skia-review.googlesource.com/31140 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* clean up useage of SkFloatBitsGravatar Mike Reed2017-08-07
| | | | | | | | Bug: skia: Change-Id: I6d3a0019f2fcf11feca69123e4ce6eb35de43613 Reviewed-on: https://skia-review.googlesource.com/31222 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "Tiling support for GrGradientEffect kTwo_ColorType/kThree_ColorType"Gravatar Florin Malita2017-08-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b86aaeb7b0841c2c23f7b36b0bb0520ce2fb3256. Reason for revert: Nexus7/Tegra3 crashing on lcdblendmodes Original change's description: > Tiling support for GrGradientEffect kTwo_ColorType/kThree_ColorType > > Currently only the hard-stop specializations support tiling. > > Consolidate the tiling code and expand to kTwo_ColorType, > kThree_ColorType also. > > Change-Id: I0c04997f563a7150a486ccc03f8121099a651c0b > Reviewed-on: https://skia-review.googlesource.com/30780 > Reviewed-by: Brian Osman <brianosman@google.com> > Commit-Queue: Florin Malita <fmalita@chromium.org> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com,fmalita@chromium.org Change-Id: I89c89c630f206c3a330e4b31aa3834dfbc5cd9e0 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/31244 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Tiling support for GrGradientEffect kTwo_ColorType/kThree_ColorTypeGravatar Florin Malita2017-08-04
| | | | | | | | | | | | Currently only the hard-stop specializations support tiling. Consolidate the tiling code and expand to kTwo_ColorType, kThree_ColorType also. Change-Id: I0c04997f563a7150a486ccc03f8121099a651c0b Reviewed-on: https://skia-review.googlesource.com/30780 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* GrGradientEffect::onIsEqual() must also consider tilingGravatar Florin Malita2017-08-04
| | | | | | | | | Without this fix, the newly added GM draws incorrectly. Change-Id: Ic159ab3201c10369ad5f8151186245d8d076cc25 Reviewed-on: https://skia-review.googlesource.com/30484 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Rename append_uniform_color() to append_constant_color().Gravatar Mike Klein2017-08-03
| | | | | | | | | | | | | | | | | The color appended here is both uniform and constant, and it's the constantness that makes this custom append method useful over just append(SkRasterPipeline::uniform_color, ...). Uniform colors that are not constant have to be loaded from the pointer each time (the caller might have changed the color out-of-band), but constant uniform colors can be analyzed once and implemented with specalizations like black_color and white_color. Change-Id: I3cfc00ccc578dd915367bca7113010557181224c Reviewed-on: https://skia-review.googlesource.com/30560 Commit-Queue: Mike Klein <mtklein@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Delete legacy radial gradient implGravatar Florin Malita2017-08-02
| | | | | | | | | | Raster pipeline FTW! Change-Id: Ia2e600cf6c6e780f5a1519374c178197cf229776 Reviewed-on: https://skia-review.googlesource.com/29884 Commit-Queue: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Fix sweep gradient tiling w/ makeColorSpaceGravatar Florin Malita2017-08-02
| | | | | | | Change-Id: If989c2262b174af042af13cda991b999d9b6d596 Reviewed-on: https://skia-review.googlesource.com/29881 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Tiling support for SkSweepGradientGravatar Florin Malita2017-08-01
| | | | | | | | | | | | | | | | | | Expand the sweep gradient definition to include a color stop angular range ([0, 360] by default). Color stop positions in [0,1] are mapped to this range, and drawing outside is controlled by a tile mode param. This is closer to the CSS gradients spec and allows us to use fewer color stops in Blink conic gradients. Impl-wise, the remapping is effected after t calculation, and before tiling. Change-Id: I5d71be01d134404d6eb9d7e2a904ec636b39f855 Reviewed-on: https://skia-review.googlesource.com/27704 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Require clone() be implemented by GrFragmentProcessor subclassesGravatar Brian Salomon2017-07-31
| | | | | | | Change-Id: I66ba0978e5748806d563ff4f26000e4e0095ed24 Reviewed-on: https://skia-review.googlesource.com/29042 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Gradient stages cleanupGravatar Florin Malita2017-07-30
| | | | | | | | | | | | | Hoist the matrix setup into SkGradientShaderBase. Drop the bool return for adjustMatrixAndAppendStages(), and rename to appendGradientStages(). Change-Id: Iad412f638f86223e5af46a7d3dea6f768f52bcad Reviewed-on: https://skia-review.googlesource.com/26427 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Remove stale SkTwoPointConicalGradient assertGravatar Florin Malita2017-07-29
| | | | | | | | | Change-Id: If46426393e5151dad4f66ee5a54341024701e87e TBR= NOTRY=true Reviewed-on: https://skia-review.googlesource.com/28500 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Don't instantiate degenerate 2pt gradientsGravatar Florin Malita2017-07-29
| | | | | | | | | We can catch the condition at construction time, no need to defer. Change-Id: I973b9e1b79998e2b334e3a91694c793882dfd65a Reviewed-on: https://skia-review.googlesource.com/26564 Commit-Queue: Florin Malita <fmalita@chromium.org> Reviewed-by: Mike Klein <mtklein@google.com>
* Remove now-dead SK_SUPPORT_LEGACY_GRADIENT_MATRIX_MATH codeGravatar Florin Malita2017-07-29
| | | | | | | | Change-Id: I080942c44d2ce1a018ba127944c0a477af876158 TBR= Reviewed-on: https://skia-review.googlesource.com/28480 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* renamed SkSL types in preparation for killing precision modifiersGravatar Ethan Nicholas2017-07-28
| | | | | | | | Bug: skia: Change-Id: Iff0289e25355a89cdc289a0892ed755dd1b1c900 Reviewed-on: https://skia-review.googlesource.com/27703 Commit-Queue: Ethan Nicholas <ethannicholas@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Implement clone() for Gradient GrFragmentProcessorsGravatar Brian Salomon2017-07-27
| | | | | | | | | Also removes the hard stop gradient conditional compilation macro. Change-Id: Idd56b5f3061db063d650a0090406ec192acc0b53 Reviewed-on: https://skia-review.googlesource.com/27661 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Greg Daniel <egdaniel@google.com>
* Implement GrFragmentProcessor::clone() for lighting and perlin noise classesGravatar Brian Salomon2017-07-26
| | | | | | | Change-Id: I4c6d426f170711a06d833257422092bb4b9de20c Reviewed-on: https://skia-review.googlesource.com/26945 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Always postConcat() pipeline gradient matricesGravatar Florin Malita2017-07-25
| | | | | | | | | | | | | In order to unblock https://skia-review.googlesource.com/c/26564 & https://skia-review.googlesource.com/c/26427, switch all impls to use a single/atomic postConcat for the gradient matrix. This is much easier to guard than the changes above. Change-Id: Ib72dbc7b5a56a96390f4468fd12caf8b6a0e46ef Reviewed-on: https://skia-review.googlesource.com/26620 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* remove guard for tilingGravatar Mike Reed2017-07-24
| | | | | | | | Bug: skia: Change-Id: Ie8e4a6d209fc9623a30cac9f66b312c36876ac40 Reviewed-on: https://skia-review.googlesource.com/25940 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Revert "use rasterpipeline for filtering for very large images"Gravatar Mike Klein2017-07-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 97d4cf0e7eb15340b1f513ff8cfba4e55ee3acf2. Reason for revert: looks like this is breaking one cc unit test, LayerTreeHostScrollbarsPixelTest.HugeTransformScale, which appears to be a comparison against a golden .png. Original change's description: > use rasterpipeline for filtering for very large images > > Bug: skia: > Change-Id: I8d1c2fca1bf2ad94cdfbef32d068f47503ea1e03 > Reviewed-on: https://skia-review.googlesource.com/24140 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Mike Klein <mtklein@google.com> > Reviewed-by: Florin Malita <fmalita@chromium.org> TBR=mtklein@google.com,fmalita@chromium.org,reed@google.com Change-Id: Idc94873cca90a73fbd567b16ed2c45b961e76e85 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/25806 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* use rasterpipeline for filtering for very large imagesGravatar Mike Reed2017-07-22
| | | | | | | | | Bug: skia: Change-Id: I8d1c2fca1bf2ad94cdfbef32d068f47503ea1e03 Reviewed-on: https://skia-review.googlesource.com/24140 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* Revert "Revert "Always use raster pipeline for radial gradients""Gravatar Florin Malita2017-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8b8b2244c3056cb4ee4f2ea30ff7876f0b4d2b99. Reason for revert: guard landed in g3 Original change's description: > Revert "Always use raster pipeline for radial gradients" > > This reverts commit 5a5207ae677f92f2055be1211237cbc913978e71. > > Reason for revert: suspect this is the reason for Google3 roll failure. > > First color mismatch. Expected ff0006f9, got ff0004fb > Expected output mismatch apps/cereal/skia_expected/radialGradient.png (3392 pixels) > > > Original change's description: > > Always use raster pipeline for radial gradients > > > > Change-Id: Id4c9ed45c28becf0e25ed9ff1b3380c7ca65aa4b > > Reviewed-on: https://skia-review.googlesource.com/25363 > > Reviewed-by: Mike Klein <mtklein@chromium.org> > > Commit-Queue: Florin Malita <fmalita@chromium.org> > > TBR=mtklein@chromium.org,mtklein@google.com,fmalita@chromium.org,reed@google.com > > Change-Id: I382a22f354d3c0a1465bd9c1555f226b0f1abb58 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://skia-review.googlesource.com/25441 > Reviewed-by: Mike Klein <mtklein@google.com> > Commit-Queue: Mike Klein <mtklein@google.com> TBR=mtklein@chromium.org,mtklein@google.com,fmalita@chromium.org,reed@google.com Change-Id: I1a53c98735e5b344d0c2a18800ec94520f328931 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/25660 Reviewed-by: Florin Malita <fmalita@google.com> Commit-Queue: Florin Malita <fmalita@google.com>
* Revert "Always use raster pipeline for radial gradients"Gravatar Mike Klein2017-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 5a5207ae677f92f2055be1211237cbc913978e71. Reason for revert: suspect this is the reason for Google3 roll failure. First color mismatch. Expected ff0006f9, got ff0004fb Expected output mismatch apps/cereal/skia_expected/radialGradient.png (3392 pixels) Original change's description: > Always use raster pipeline for radial gradients > > Change-Id: Id4c9ed45c28becf0e25ed9ff1b3380c7ca65aa4b > Reviewed-on: https://skia-review.googlesource.com/25363 > Reviewed-by: Mike Klein <mtklein@chromium.org> > Commit-Queue: Florin Malita <fmalita@chromium.org> TBR=mtklein@chromium.org,mtklein@google.com,fmalita@chromium.org,reed@google.com Change-Id: I382a22f354d3c0a1465bd9c1555f226b0f1abb58 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/25441 Reviewed-by: Mike Klein <mtklein@google.com> Commit-Queue: Mike Klein <mtklein@google.com>
* Always use raster pipeline for radial gradientsGravatar Florin Malita2017-07-20
| | | | | | | Change-Id: Id4c9ed45c28becf0e25ed9ff1b3380c7ca65aa4b Reviewed-on: https://skia-review.googlesource.com/25363 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Use raster pipeline for repeat/mirror radial gradientsGravatar Florin Malita2017-07-20
| | | | | | | | | | | | (reland of https://skia-review.googlesource.com/c/24283/) The legacy clamp specialization is still faster, but for repeat and mirror RP wins (at low color stop counts). Change-Id: I97a77188e912239f31e94600021b469ce7c40797 Reviewed-on: https://skia-review.googlesource.com/24742 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* sk_sp: act as if operator bool() not implicit.Gravatar Hal Canary2017-07-20
| | | | | | | Change-Id: Icd426a162ca0c778db7b3373efcb2c546da50273 Reviewed-on: https://skia-review.googlesource.com/22543 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Hal Canary <halcanary@google.com>
* Retry cleaning up SkLinearBitmapPipeline.Gravatar Mike Klein2017-07-20
| | | | | | | | | | | | | | | | | | This is mostly dead code. In order to make it truly dead, we need to opt drawing unpremul images into SkRasterPipelineBlitter. They had been handled by SkLinearBitmapPipeline, but can't be draw by SkBitmapProcLegacyShader. Drawing unpremul images is tested by the GM all_variants_8888, which gave us trouble last time around (serialize-8888 drew right, 8888 wrong) but now draws fine. I think this was probably also the root of the revert, drawing some unpremul image in Chrome's tests somewhere. Change-Id: I453f9df44ade807316935921cbae82961e2f08aa Reviewed-on: https://skia-review.googlesource.com/24862 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
* Assume HQ is handled by pipeline, delete legacy code-pathGravatar Mike Reed2017-07-20
| | | | | | | | | CQ_INCLUDE_TRYBOTS=skia.primary:Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD Bug: skia: Change-Id: If6f0d0a57463bf99a66d674e65a62ce3931d0116 Reviewed-on: https://skia-review.googlesource.com/24644 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Revert "Use raster pipeline for repeat/mirror radial gradients"Gravatar Florin Malita2017-07-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2f924b4b0e5d364d608e181da8270241038de6c9. Reason for revert: IOS nanobench crashes Original change's description: > Use raster pipeline for repeat/mirror radial gradients > > The legacy clamp specialization is still faster, but for repeat and > mirror RP wins (at low color stop counts). > > Change-Id: Ifef3eb5b3111b3741d3a033310a4cdb58e592247 > Reviewed-on: https://skia-review.googlesource.com/24283 > 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: I65db31b149b6b2507cbe470049f67774e3bf40a0 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/24660 Reviewed-by: Florin Malita <fmalita@google.com> Commit-Queue: Florin Malita <fmalita@google.com>
* Use raster pipeline for repeat/mirror radial gradientsGravatar Florin Malita2017-07-19
| | | | | | | | | | The legacy clamp specialization is still faster, but for repeat and mirror RP wins (at low color stop counts). Change-Id: Ifef3eb5b3111b3741d3a033310a4cdb58e592247 Reviewed-on: https://skia-review.googlesource.com/24283 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* remove gather_i8, unify memory-touching contextsGravatar Mike Klein2017-07-18
| | | | | | | | | | | | | | | gather_i8 is now unused, so we can remove it. That in turn makes the ctable field of SkJumper_GatherCtx unused. After removing ctable, SkJumper_GatherCtx and SkJumper_PtrStride look identical, so I've now fused them into SkJumper_MemoryCtx, which will eventually be used by everything loading from, gathering from, or storing to memory. Change-Id: Ia882d2dbd54c9fcf9a8250a1ce83304389dd284a Reviewed-on: https://skia-review.googlesource.com/24085 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
* guard references to SkColorTableGravatar Mike Reed2017-07-18
| | | | | | | | Bug: skia:6828 Change-Id: I0c8c78e70b118f51cb59dc45675e4ddcd4776108 Reviewed-on: https://skia-review.googlesource.com/24260 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Leon Scroggins <scroggo@google.com>
* Index8 is dead, remove guarded codeGravatar Mike Reed2017-07-17
| | | | | | | | | | Needs google3 to be updated before this can land. Bug: skia:6828 Change-Id: I2c16be13c6937ffa48768cc24f9f980171c824d6 Reviewed-on: https://skia-review.googlesource.com/23940 Reviewed-by: Leon Scroggins <scroggo@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Remove (now-dead) SK_LEGACY_SWEEP_GRADIENT codeGravatar Florin Malita2017-07-17
| | | | | | | | | | | Reland of https://skia-review.googlesource.com/c/17982 TBR= Change-Id: If29d60d60a45562715fddfaff56b1e694be13034 Reviewed-on: https://skia-review.googlesource.com/24042 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Purge cached SkPictureShader entries on shader deletionGravatar Florin Malita2017-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're currently adding picture shader cache entries to the resource cache, but we don't ever purge. To avoid exhausting the budget, add logic to associate cached entries with their owning picture shader, and purge when the shader is deleted. -- Side note -- The current cache key is K(pictureID, ...) so technically the cache entries are associated with the picture, not the shader. One could resonably argue we should only purge when the *picture* is deleted. Unfortunately, this doesn't work: the cache entries contain indirect refs to the picture (SkImageShader -> SkImage_Generated -> SkPictureImageGenerator -> SkPicture), so the picture is always kept alive. Associating the cache entries with the shader itself seems like a reasonable alternative, even if we give up some cache persistence in the process. Change-Id: Ia115dbb5ae627e5ee171da7c4430fecfd42f4292 Reviewed-on: https://skia-review.googlesource.com/23380 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
* Avoid unneeded picture shader color space transformsGravatar Florin Malita2017-07-13
| | | | | | | | | | Also update SkPictureImageFilter to use SkColorSpace::Equals instead of direct comparison. Change-Id: I434cd6d1afcb869d2a56601b72edf56d207d9868 Reviewed-on: https://skia-review.googlesource.com/23201 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>